DeskTop.js 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894
  1. /*
  2. 此处为桌面系统启动应用区域
  3. */
  4. Namespace.register("U.MD.D.I"); //桌面应用处理
  5. //判断图片是否在拖拽,如果是拖拽图标的过程是不会打开图片的
  6. U.MD.D.I.IsDrag;
  7. U.MD.D.I.Ip;
  8. //桌面图标的全局变量
  9. U.MD.D.I.DeskIcon = [
  10. //
  11. // { "Name": "互联办公", "Url": "boomYun", "Img": { "x": "-844", "y": "-419"} },
  12. // { "Name": "Word", "Url": "word", "Img": { "x": "-462", "y": "-296"} },
  13. // { "Name": "Execl", "Url": "excel", "Img": { "x": "-523", "y": "-296"} },
  14. // { "Name": "文本文件", "Url": "txt", "Img": { "x": "-267", "y": "-413"} },
  15. // { "Name": "我的好友", "Url": "friend", "Img": { "x": "-648", "y": "-297"} },
  16. // { "Name": "查找好友", "Url": "lookupFriend", "Img": { "x": "-85", "y": "-413"} },
  17. // { "Name": "我的设置", "Url": "set", "Img": { "x": "-400", "y": "-296"} },
  18. // { "Name": "系统设置", "Url": "systemSet", "Img": { "x": "-144", "y": "-413"} },
  19. // { "Name": "云端下载", "Url": "client", "Img": { "x": "-648", "y": "-357"} },
  20. // { "Name": "云端产品", "Url": "xz", "Img": { "x": "-24", "y": "-413"} }
  21. // { "Name": "FTP", "Url": "ftp", "Img": { "x": "-24", "y": "-413"} },
  22. // { "Name": "群文档", "Url": "group", "Img": { "x": "-85", "y": "-413"} },
  23. // { "Name": "web编程", "Url": "frontEndProgramming", "Img": { "x": "-275", "y": "-297"} },
  24. // { "Name": "后端编程", "Url": "backEndProgramming", "Img": { "x": "-275", "y": "-297"} },
  25. { "Name": "项目管理", "Url": "project", "style": { "cssText": "background-image:url(/img/icon/project.png)" } },
  26. { "Name": "学习中心", "Url": "study", "style": { "cssText": "background-image:url(/img/icon/study.png)" } },
  27. { "Name": "学生管理", "Url": "student", "style": { "cssText": "background-image:url(/img/icon/student.png)" } },
  28. { "Name": "评价管理", "Url": "evaluate", "style": { "cssText": "background-image:url(/img/icon/evaluation.png)" } },
  29. { "Name": "班级管理", "Url": "class", "style": { "cssText": "background-image:url(/img/icon/class.png)" } },
  30. { "Name": "我的资料", "Url": "my", "style": { "cssText": "background-image:url(/img/icon/myMessage.png)" } },
  31. { "Name": "通知公告", "Url": "notice", "style": { "cssText": "background-image:url(/img/icon/news.png)" } },
  32. { "Name": "素材库", "Url": "library", "style": { "cssText": "background-image:url(/img/icon/library.png)" } },
  33. { "Name": "电子白板", "Url": "whiteboard", "style": { "cssText": "background-image:url(/img/icon/whiteBoard.png)" } },
  34. { "Name": "问卷调查", "Url": "investigation", "style": { "cssText": "background-image:url(/img/icon/ask.png)" } },
  35. { "Name": "便签分类", "Url": "note", "style": { "cssText": "background-image:url(/img/icon/note.png)" } },
  36. { "Name": "量规评分", "Url": "score", "style": { "cssText": "background-image:url(/img/icon/score.png)" } },
  37. { "Name": "思维导图", "Url": "mind", "style": { "cssText": "background-image:url(/img/icon/mindMapping.png)" } },
  38. { "Name": "协同文档", "Url": "doc", "style": { "cssText": "background-image:url(/img/icon/doc.png)" } },
  39. { "Name": "思维网格", "Url": "mindNetwork", "style": { "cssText": "background-image:url(/img/icon/mindNetwork.png)" } }
  40. ];
  41. //#region 桌面初始化a
  42. /**
  43. * 初始化桌面的起始函数
  44. *
  45. */
  46. U.MD.D.I.init = function () {
  47. if ($("#U_MD_D_K")[0]) {
  48. //初始化桌面图标
  49. U.MD.D.I.initDesktopIcons($("#U_MD_D_K")[0]);
  50. // var clickUrl = ':12588/requestIp.php';
  51. // U.MD.D.I.Mysqlrequest(clickUrl,function(data){
  52. // U.MD.D.I.Ip = data;
  53. // var AccessUrl = ':12588/useAccess.php?ip=' + U.MD.D.I.Ip;
  54. // U.MD.D.I.Mysqlrequest(AccessUrl,function(data){
  55. // U.selectEl("#U_MD_D_RW").css("width", US.width - 165 + "px");
  56. // })
  57. // //初始化任务栏,因为是静态的,所以直接改变样式即可.
  58. // })
  59. }
  60. }
  61. /**
  62. * 隐藏任务栏
  63. *
  64. * @param {element} 桌面元素
  65. */
  66. U.MD.D.I.hiddenTaskbar = function (el) {
  67. //任务栏位置变小
  68. U.selectEl(el).parentElement(3).css({ "bottom": "-60px" });
  69. //桌面的位置变大
  70. // U.selectEl("#U_MD_D_K").css({ "left": "5px" });
  71. }
  72. /**
  73. * 隐藏任务栏
  74. *
  75. * @param {element} 桌面元素
  76. */
  77. U.MD.D.I.hiddenTaskbarout = function (el) {
  78. //任务栏位置变小
  79. if (!U.UF.EV.stopBubbleMouseOutOrOver(el)) {
  80. //任务栏位置变化
  81. U.selectEl(el).css({ "bottom": "-60px" });
  82. //桌面的位置变大
  83. // U.selectEl("#U_MD_D_K").css({ "left": "5px" });
  84. }
  85. }
  86. /**
  87. * 初始化打印桌面图标
  88. *
  89. * @param {element} 桌面元素
  90. */
  91. U.MD.D.I.initDesktopIcons = function (el) {
  92. var i, //用于循环
  93. _content, //桌面图标元素
  94. _iconcontent, //桌面图标元素
  95. _frag = $$("frag"), //定义一个碎片元素
  96. _DesktopIconInfo = U.MD.D.I.DeskIcon; //获取桌面图标
  97. //清楚桌面图标
  98. el.innerHTML = "";
  99. //循环创建桌面图标
  100. for (i = 0; i < _DesktopIconInfo.length; i++) {
  101. _content = $$("div", {
  102. className: "U_MD_D_KO",
  103. "onmousedown": U.UF.C.closure(function (obj) {
  104. //防止拖动图标即打开了桌面应用
  105. U.MD.D.click(this, obj);
  106. }, [_DesktopIconInfo[i]]),
  107. "onclick": U.UF.C.closure(function (obj) {
  108. //防止拖动图标即打开了桌面应用
  109. U.MD.D.click(this, obj);
  110. }, [_DesktopIconInfo[i]])
  111. }, _frag); //
  112. _iconcontent = $$("div", { className: "U_MD_D_KOA" }, _content);
  113. $$("div", { className: "U_MD_D_KOS U_Img", "style": _DesktopIconInfo[i].style }, _iconcontent); //{ "backgroundPosition": _DesktopIconInfo[i].Img.x + "px " + _DesktopIconInfo[i].Img.y + "px" }
  114. $$("div", { className: "U_MD_D_KOX", "style": { "cssText": "text-shadow: rgb(100 100 100) 2px 1px 3px, rgb(102 102 102) 0px 1px 0px, rgb(85 85 85) -1px 0px 0px, rgb(153 153 153) 0px -1px 0px; -webkit-text-shadow: rgb(100 100 100) 2px 1px 3px, rgb(102 102 102) 0px 1px 0px, rgb(85 85 85) -1px 0px 0px, rgb(153 153 153) 0px -1px 0px; -moz-text-shadow: rgb(100 100 100) 2px 1px 3px, rgb(102 102 102) 0px 1px 0px, rgb(85 85 85) -1px 0px 0px, rgb(153 153 153) 0px -1px 0px; filter: Glow(color=#777777, strength=1)\9;" }, "innerHTML": _DesktopIconInfo[i].Name }, _iconcontent);
  115. }
  116. //加载好后给图标定位
  117. U.MD.D.iconPostion($(_frag).Child());
  118. //把图标加载到页面
  119. el.appendChild(_frag);
  120. }
  121. /**
  122. * 显示任务栏
  123. *
  124. * @param {element} 桌面元素
  125. */
  126. U.MD.D.I.displayTaskbar = function (el) {
  127. //判断是否需要形式任务栏,由于用了mouseover事件会冒泡响应多次,这里做了过滤
  128. if (!U.UF.EV.stopBubbleMouseOutOrOver(el) && U.selectEl(el).css("bottom") != "0px") {
  129. //任务栏位置变化
  130. U.selectEl(el).css({ "bottom": "0px" });
  131. //桌面位置变话
  132. // U.selectEl("#U_MD_D_K").css({ "left": "70px" });
  133. }
  134. }
  135. //#region 桌面图标拖动逻辑
  136. /**
  137. * 桌面排列图标
  138. *
  139. * @param {element} 桌面元素
  140. * @param {object} 上下相距的距离
  141. * @param {object} 左右相距的距离
  142. * @return {object} 命名空间
  143. */
  144. U.MD.D.iconPostion = function (childs, top, left) {
  145. var i; //用于循环处理
  146. top = top || 15; //如果没有设置元素的间距处理默认上间距为15
  147. left = left || 20; //如果没有设置元素的间距处理默认左间距为15
  148. //循环所有的图标,设置每个图标的间距,打印顺序是竖排打印的方式
  149. for (i = 0; i < childs.length; i++) {
  150. //如果竖排top超过了范围处理
  151. if (top + 95 > US.height - 10) {
  152. //left超过了页面范围处理,则向上重叠打印处理
  153. if ((left + 180) > US.width) {
  154. top -= 115;
  155. left -= 90;
  156. }
  157. //没有超过范围,那么left+90添加到下一个竖排打印
  158. else {
  159. left += 90;
  160. top = 15;
  161. };
  162. }
  163. //给图标的位置赋值
  164. U.selectEl(childs[i]).css({ top: top + "px", left: left + "px" });
  165. if (i < childs.length - 1) {
  166. //页面图标每次向下加115
  167. top += 115;
  168. }
  169. }
  170. //返回最后调用的图标的位置
  171. return [top, left];
  172. }
  173. /**
  174. * 桌面点击事件逻辑
  175. *
  176. * @param {element} 桌面元素
  177. * @param {object} 上下相距的距离
  178. * @param {object} 左右相距的距离
  179. * @return {object} 命名空间
  180. */
  181. U.MD.D.click = function (el, obj) {
  182. var _buttonnumber = event.button; //点击的按钮的事件值
  183. U.UF.EV.stopBubble(); //阻止向上冒泡
  184. //onmousedown 包含了左键和右键 这里大于2是为了兼容 所有浏览器的右键处理
  185. if (_buttonnumber < 2) {
  186. //如果是click事件的处理
  187. if (event.type == "click") {
  188. //如果元素在mousemove事件中没有移动则出发click事件
  189. if (!U.MD.D.I.IsDrag) {
  190. //打开应用处理
  191. U.MD.D.I.openApplication(obj.Url, { "userid": US.user.userid, "directoryid": US.FTPFOLDERID });
  192. }
  193. }
  194. //如果是mouse事件的处理
  195. else {
  196. //拖动处理,添加拖动和拖动结束事件
  197. U.UF.F.drag(el, U.MD.D.iconMove, U.MD.D.iconUp);
  198. }
  199. U.MD.D.I.IsDrag = false;
  200. }
  201. }
  202. /**
  203. * 拖动的处理
  204. *
  205. */
  206. U.MD.D.iconMove = function () {
  207. //如果当前位置点击初始化的位置出现了变化,则设置是否拖动的属性 U.MD.D.I.IsDrag为true
  208. U.MD.D.I.IsDrag = true;
  209. }
  210. /**
  211. * 拖动结束后,这里是定位处理,以网状的形式定位
  212. *
  213. * @param {element} 拖动的元素
  214. * @return {object} 命名空间
  215. */
  216. U.MD.D.iconUp = function (el) {
  217. var _top = 15,
  218. _left = 20,
  219. _margin,
  220. _childs = U.selectEl("#U_MD_D_K").Child(), //桌面所有的图标
  221. _positioninfo = U.UF.EL.getElementInfo(el); //获取拖动结束的元素的位置
  222. if (_positioninfo["OT"] > 15) {
  223. //网状的形式定位,如果差超过了55,那么向下定位,否则向上定位
  224. _margin = ((_positioninfo["OT"] - 15) % 115 > 55 && _positioninfo["OT"] + 115 < US.height) ? 1 : 0;
  225. _top = (Math.floor((_positioninfo["OT"] - 15) / 115) + _margin) * 115 + 15;
  226. }
  227. if (_positioninfo["OL"] > 20) {
  228. //网状的形式定位,如果差超过了90,那么向右定位,否则向左定位
  229. _margin = ((_positioninfo["OL"] - 20) % 90 > 45 && _positioninfo["OL"] + 90 < US.width) ? 1 : 0;
  230. _left = (Math.floor((_positioninfo["OL"] - 20) / 90) + _margin) * 90 + 20
  231. }
  232. //while循环判断么一个重叠的元素
  233. do {
  234. _positioninfo = U.MD.D.iconPostion([el], _top, _left); //给重叠的元素向下定位
  235. _top = _positioninfo[0] + 115; //得到定位后的top
  236. _left = _positioninfo[1]; //得到定位后的left
  237. } while (el = U.MD.D.isOverlap(el, _childs, _positioninfo))
  238. }
  239. /**
  240. * 判断拖动后图标是否重叠
  241. *
  242. * @param {element} 拖动的元素
  243. * @param {element} 桌面所有的元素
  244. * @param {array} 拖动元素的位置
  245. ----------[0] 上 top
  246. ----------[1] 左 left
  247. * @return {object} 命名空间
  248. */
  249. U.MD.D.isOverlap = function (el, childs, postionarray) {
  250. //循环所有的图标
  251. for (var i = 0; i < childs.length; i++) {
  252. //判断有没有和该图标诶子重叠的元素
  253. if (el != childs[i] && (childs[i].offsetTop == postionarray[0] && childs[i].offsetLeft == postionarray[1])) {
  254. return childs[i]; //如果有返回
  255. }
  256. }
  257. }
  258. //#endregion
  259. //#endregion
  260. //#region 桌面应用
  261. /**
  262. * 打开应用
  263. *
  264. * @param {string} 类型
  265. -----------------Disk 网盘系统
  266. -----------------PDisk 学习系统网盘
  267. -----------------Poto 图片
  268. -----------------Video 视频
  269. -----------------Music 音乐
  270. -----------------Word word
  271. -----------------Excel excel
  272. -----------------Txt 记事本
  273. -----------------PB 学习系统
  274. -----------------Blog 朋友圈系统
  275. -----------------FTP ftp系统
  276. -----------------Group 好友群
  277. -----------------SY 首页系统
  278. -----------------Set 个人设置
  279. -----------------XSet 系统设置
  280. -----------------App 我们所有的app
  281. -----------------BC c.1473.cn 平台
  282. -----------------CWeb d.1473.cn 变成平台
  283. -----------------其他的外联系统 我们统一用iframe打开
  284. * @param {array} 类型
  285. 如果第一个参数为"disk",则第二个参数为object,里面包含了用户id和目录id{userid:"",directoryid:""}
  286. 如果第一个参数为"word"或者"excel","txt",则第二个参数为文件信息fileinfo。
  287. 如果第一个参数为"blog"或者"PDisk"。建议删除。
  288. 如果第一个参数为其他,则无第二个参数
  289. * @returns {array}
  290. */
  291. window.addEventListener('message', function (e) { // 监听 message 事件
  292. // alert(e.data.type);
  293. if (e.data.type && e.data.type == "1") { //项目管理传入
  294. U.MD.D.I.openInApplication("study", e.data.cid)
  295. }
  296. });
  297. U.MD.D.I.openInApplication = function (str, data) {
  298. var _userid = US.user.userid, //登录用户id
  299. _oid = US.userinfo.organizeid;
  300. switch (str) {
  301. case "study":
  302. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  303. setTimeout(() => {
  304. U.MD.U.L.login();
  305. }, 2000);
  306. } else {
  307. _formdiv = new U.UF.UI.form(
  308. "项目详情",
  309. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-student-table/dist/#/courseDetail?userid=" + _userid + "&oid=" + _oid + "&courseId=" + data }), {
  310. "id": "study",
  311. "style": { "width": "70%", "height": "90%", "overflow": 'hidden' },
  312. "onresize": function () { }
  313. }, {
  314. closecallback: function () { }
  315. }, { "style": { "height": "36px" } }).form; //创建窗体
  316. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/study.png)" }, "name": "学习中心", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  317. break;
  318. }
  319. }
  320. }
  321. U.MD.D.I.openApplication = function (str, obj, info) {
  322. obj = obj || {};
  323. var _taskbar, //_taskbar 作为任务栏显示的元素,包含图标和名字
  324. _formdiv, //创建任务栏时同时弹出的窗体元素。
  325. _userinfo = US.userinfo, //登录用户信息
  326. _userid = obj.userid || US.user.userid, //登录用户id
  327. _oid = obj.organizeid || _userinfo.organizeid
  328. ;
  329. //选择应用处理
  330. switch (str) {
  331. case "project": //好友打开
  332. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  333. setTimeout(() => {
  334. U.MD.U.L.login();
  335. }, 2000);
  336. } else {
  337. _formdiv = new U.UF.UI.form(
  338. "项目管理",
  339. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0; width:100%; height:100%;" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/course?userid=" + _userid + "&oid=" + _oid }), {
  340. "id": "project",
  341. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  342. "onresize": function () { }
  343. }, {
  344. closecallback: function () { }
  345. }, { "style": { "height": "36px" } }).form; //创建窗体
  346. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/project.png)" }, "name": "项目管理", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  347. break;
  348. }
  349. case "student":
  350. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  351. setTimeout(() => {
  352. U.MD.U.L.login();
  353. }, 2000);
  354. } else {
  355. _formdiv = new U.UF.UI.form(
  356. "学生管理",
  357. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/student?userid=" + _userid + "&oid=" + _oid }), {
  358. "id": "student",
  359. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  360. "onresize": function () { }
  361. }, {
  362. closecallback: function () { }
  363. }, { "style": { "height": "36px" } }).form; //创建窗体
  364. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/student.png)" }, "name": "学生管理", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  365. break;
  366. }
  367. case "evaluate":
  368. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  369. setTimeout(() => {
  370. U.MD.U.L.login();
  371. }, 2000);
  372. } else {
  373. _formdiv = new U.UF.UI.form(
  374. "评价管理",
  375. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/works?userid=" + _userid + "&oid=" + _oid }), {
  376. "id": "evaluate",
  377. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  378. "onresize": function () { }
  379. }, {
  380. closecallback: function () { }
  381. }, { "style": { "height": "36px" } }).form; //创建窗体
  382. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/evaluation.png)" }, "name": "评价管理", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  383. break;
  384. }
  385. case "class":
  386. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  387. setTimeout(() => {
  388. U.MD.U.L.login();
  389. }, 2000);
  390. } else {
  391. _formdiv = new U.UF.UI.form(
  392. "班级管理",
  393. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/class?userid=" + _userid + "&oid=" + _oid }), {
  394. "id": "class",
  395. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  396. "onresize": function () { }
  397. }, {
  398. closecallback: function () { }
  399. }, { "style": { "height": "36px" } }).form; //创建窗体
  400. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/class.png)" }, "name": "班级管理", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  401. break;
  402. }
  403. case "my":
  404. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  405. setTimeout(() => {
  406. U.MD.U.L.login();
  407. }, 2000);
  408. } else {
  409. _formdiv = new U.UF.UI.form(
  410. "我的资料",
  411. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/data?userid=" + _userid }), {
  412. "id": "my",
  413. "style": { "width": "42%", "height": "90%", "overflow": 'hidden' },
  414. "onresize": function () { }
  415. }, {
  416. closecallback: function () { }
  417. }, { "style": { "height": "36px" } }).form; //创建窗体
  418. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/myMessage.png)" }, "name": "我的资料", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  419. break;
  420. }
  421. case "notice":
  422. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  423. setTimeout(() => {
  424. U.MD.U.L.login();
  425. }, 2000);
  426. } else {
  427. _formdiv = new U.UF.UI.form(
  428. "通知公告",
  429. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/notice?userid=" + _userid }), {
  430. "id": "notice",
  431. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  432. "onresize": function () { }
  433. }, {
  434. closecallback: function () { }
  435. }, { "style": { "height": "36px" } }).form; //创建窗体
  436. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/news.png)" }, "name": "通知公告", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  437. break;
  438. }
  439. case "library":
  440. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  441. setTimeout(() => {
  442. U.MD.U.L.login();
  443. }, 2000);
  444. } else {
  445. _formdiv = new U.UF.UI.form(
  446. "素材库",
  447. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/library?userid=" + _userid }), {
  448. "id": "library",
  449. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  450. "onresize": function () { }
  451. }, {
  452. closecallback: function () { }
  453. }, { "style": { "height": "36px" } }).form; //创建窗体
  454. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/library.png)" }, "name": "素材库", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  455. break;
  456. }
  457. case "whiteboard":
  458. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  459. setTimeout(() => {
  460. U.MD.U.L.login();
  461. }, 2000);
  462. } else {
  463. _formdiv = new U.UF.UI.form(
  464. "电子白板",
  465. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn" }), {
  466. "id": "whiteboard",
  467. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  468. "onresize": function () { }
  469. }, {
  470. closecallback: function () { }
  471. }, { "style": { "height": "36px" } }).form; //创建窗体
  472. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/whiteBoard.png)" }, "name": "电子白板", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  473. break;
  474. }
  475. case "investigation":
  476. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  477. setTimeout(() => {
  478. U.MD.U.L.login();
  479. }, 2000);
  480. } else {
  481. _formdiv = new U.UF.UI.form(
  482. "问卷调查",
  483. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/ask?userid=" + _userid }), {
  484. "id": "investigation",
  485. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  486. "onresize": function () { }
  487. }, {
  488. closecallback: function () { }
  489. }, { "style": { "height": "36px" } }).form; //创建窗体
  490. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/ask.png)" }, "name": "问卷调查", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  491. break;
  492. }
  493. case "note":
  494. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  495. setTimeout(() => {
  496. U.MD.U.L.login();
  497. }, 2000);
  498. } else {
  499. _formdiv = new U.UF.UI.form(
  500. "便签分类",
  501. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/note?userid=" + _userid }), {
  502. "id": "note",
  503. "style": { "width": "20%", "height": "90%", "overflow": 'hidden' },
  504. "onresize": function () { }
  505. }, {
  506. closecallback: function () { }
  507. }, { "style": { "height": "36px" } }).form; //创建窗体
  508. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/note.png)" }, "name": "便签分类", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  509. break;
  510. }
  511. case "score":
  512. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  513. setTimeout(() => {
  514. U.MD.U.L.login();
  515. }, 2000);
  516. } else {
  517. _formdiv = new U.UF.UI.form(
  518. "量规评分",
  519. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn" }), {
  520. "id": "score",
  521. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  522. "onresize": function () { }
  523. }, {
  524. closecallback: function () { }
  525. }, { "style": { "height": "36px" } }).form; //创建窗体
  526. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/score.png)" }, "name": "量规评分", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  527. break;
  528. }
  529. case "mind":
  530. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  531. setTimeout(() => {
  532. U.MD.U.L.login();
  533. }, 2000);
  534. } else {
  535. _formdiv = new U.UF.UI.form(
  536. "思维导图",
  537. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "/jsmind/example/demo.html" }), {
  538. "id": "mind",
  539. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  540. "onresize": function () { }
  541. }, {
  542. closecallback: function () { }
  543. }, { "style": { "height": "36px" } }).form; //创建窗体
  544. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/mindMapping.png)" }, "name": "思维导图", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  545. break;
  546. }
  547. case "doc":
  548. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  549. setTimeout(() => {
  550. U.MD.U.L.login();
  551. }, 2000);
  552. } else {
  553. _formdiv = new U.UF.UI.form(
  554. "协同文档",
  555. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "/Office/Word/WordEditArea.htm" }), {
  556. "id": "doc",
  557. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  558. "onresize": function () { }
  559. }, {
  560. closecallback: function () { }
  561. }, { "style": { "height": "36px" } }).form; //创建窗体
  562. U.UF.DL.iframeLoad($("iframe", _formdiv)[0], function () {
  563. $("iframe", _formdiv)[0].contentWindow.U.MD.O.W.load();
  564. })
  565. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/doc.png)" }, "name": "协同文档", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  566. break;
  567. }
  568. case "study":
  569. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  570. setTimeout(() => {
  571. U.MD.U.L.login();
  572. }, 2000);
  573. } else {
  574. _formdiv = new U.UF.UI.form(
  575. "学习中心",
  576. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0;width:100%;height:100%" }, "src": "https://pbl.cocorobo.cn/pbl-student-table/dist/#/index?userid=" + _userid + "&oid=" + _oid }), { //https://pbl.cocorobo.cn/pbl-student-table/dist/#/index
  577. "id": "study",
  578. "style": { "width": "70%", "height": "90%", "overflow": 'hidden' },
  579. "onresize": function () { }
  580. }, {
  581. closecallback: function () { }
  582. }, { "style": { "height": "36px" } }).form; //创建窗体
  583. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/study.png)" }, "name": "学习中心", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  584. break;
  585. }
  586. case "mindNetwork": //好友打开
  587. if (!_userinfo || Object.keys(_userinfo).length === 0) {
  588. setTimeout(() => {
  589. U.MD.U.L.login();
  590. }, 2000);
  591. } else {
  592. _formdiv = new U.UF.UI.form(
  593. "思维网络",
  594. $$("iframe", { "frameborder": "no", "border": "0", "scrolling ": "no", "style": { "cssText": "border:0; width:100%; height:100%;" }, "src": "https://pbl.cocorobo.cn/pbl-teacher-table/dist/#/Grid?userid=" + _userid }), {
  595. "id": "mindNetwork",
  596. "style": { "width": "90%", "height": "90%", "overflow": 'hidden' },
  597. "onresize": function () { }
  598. }, {
  599. closecallback: function () { }
  600. }, { "style": { "height": "36px" } }).form; //创建窗体
  601. _taskbar = { "id": str + _formdiv.id, "style": { "backgroundImage": "url(/img/icon/project.png)" }, "name": "项目管理", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  602. break;
  603. }
  604. // case "friend": //好友打开
  605. // U.MD.D.I.IsDrag = true;
  606. // U.MD.F.W.viewFriend(info); //打开好友
  607. // // U.MD.N.urlWrite("friend/" + obj.directoryid, "好友"); //好友的url重写
  608. // break;
  609. // case "domain":
  610. // var _iframe = $$('iframe', { src: '//domain.1473.cn/DomainSystem.aspx/?fileId=' + info.fileId + '&type=' + info.type + '&mode=' + info.mode, frameborder: "0", style: { cssText: "width:100%;height:100%;border:0px" } });
  611. // _formdiv = new U.UF.UI.form("域名管理", _iframe, { id: "U_MD_DS_DomainShare", style: { "width": "370px", "height": "390px" } }).form;
  612. // if (_formdiv) {
  613. // //生成任务栏的变量
  614. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-15px -296px", "name": "网盘", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj, info); } }
  615. // }
  616. // break;
  617. // case "disk": //个人网盘查看
  618. // _formdiv = U.MD.DK.initDisk(_userid, obj.directoryid); //根据网盘数据,并加载网盘,里面包含了url重写
  619. // if (_formdiv) {
  620. // //生成任务栏的变量
  621. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-15px -296px", "name": "网盘", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj); } }
  622. // }
  623. // break;
  624. // case "word": //Word打开
  625. // var _wordinfo = U.MD.O.word(_userinfo, obj, arguments[2]); //初始化word的处理
  626. // _formdiv = _wordinfo[0];
  627. // if (_formdiv) {
  628. // //生成任务栏的变量
  629. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-462px -296px", "name": "文档", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, _wordinfo[1]); } }
  630. // }
  631. // if (obj.UrlType != 'join') {
  632. // U.MD.N.urlWrite("word/" + _formdiv.id.substr(-36), "在线文档"); //word的url重写
  633. // }
  634. // break;
  635. // case "excel": //Excel打开
  636. // _formdiv = U.MD.O.excel(_userinfo, obj);
  637. // if (_formdiv) {
  638. // //生成任务栏的变量
  639. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-523px -296px", "name": "Excel", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj); } }
  640. // }
  641. // U.MD.N.urlWrite("excel/" + _formdiv.id.substr(-36), "Excel");
  642. // break;
  643. // case "txt": //Txt打开
  644. // _formdiv = U.MD.D.Txt.textCreate();
  645. // if (_formdiv) {
  646. // //生成任务栏的变量
  647. // _taskbar = { "id": str + obj.directoryid, "backgroundPostion": "-267px -413px", "name": "文本", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj); } }
  648. // }
  649. // U.MD.N.urlWrite("txt/" + _formdiv.id.substr(-36), "文本");
  650. // break;
  651. // case "lookupFriend":
  652. // _formdiv = U.MD.F.S.popSearchFriendsOrGroupForm(0);
  653. // //生成任务栏的变量
  654. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-85px -413px", "name": "查找好友", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj); } }
  655. // U.MD.N.urlWrite("lookupfriend/" + obj.directoryid.substr(-36), "查找好友"); //查找好友的url重写
  656. // break;
  657. // case "ftp": //Ftp
  658. // _formdiv = U.MD.F.S.popupsSearchFtp();
  659. // //生成任务栏的变量
  660. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-144px -413px", "name": "FTP", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj); } }
  661. // break;
  662. // case "group": //群组
  663. // _formdiv = U.MD.F.S.popupsSearchGroups(0);
  664. // //生成任务栏的变量
  665. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-85px -413px", "name": "群组", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj); } }
  666. // break;
  667. // case "set": //个人设置
  668. // _formdiv = U.MD.U.P.userDataSet();
  669. // if (_formdiv) {
  670. // //生成任务栏的变量
  671. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-400px -296px", "name": "个人设置", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj); } }
  672. // }
  673. // break;
  674. // case "systemSet": //系统设置
  675. // _formdiv = U.MD.D.B.init();
  676. // //生成任务栏的变量
  677. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-400px -296px", "name": "系统设置", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj); } }
  678. // break;
  679. // case "boomYun": //BoomYun
  680. // _formdiv = U.Boom.I.onload();
  681. // //生成任务栏的变量
  682. // _taskbar = { "id": str + _formdiv.id, "backgroundPostion": "-844px -419px", "name": "互联办公", "forms": _formdiv, "click": function () { U.MD.D.I.openApplication(str, obj); } }
  683. // U.MD.N.urlWrite("boomyun", "互联办公"); //boomyun的url重写
  684. // break;
  685. // case "xz": //App下载
  686. // window.open("http://xz.1473.cn");
  687. // break;
  688. // case "client": //App下载
  689. // window.open("http://client.1473.cn");
  690. // break;
  691. // case "backEndProgramming": //在线编程平台打开
  692. // window.open("http://c.1473.cn");
  693. // break;
  694. // case "frontEndProgramming": //在线web编程
  695. // window.open("http://d.1473.cn");
  696. // break;
  697. // default:
  698. // break;
  699. }
  700. //U.MD.D.I.openClick(str);
  701. //如果有任务栏信息
  702. if (_taskbar) {
  703. U.MD.D.T.taskbar(_taskbar); //创建任务处理
  704. }
  705. }
  706. // U.MD.D.I.openClick = function(str){
  707. // var click = '';
  708. // switch(str){
  709. // case 'friend':
  710. // click = '我的好友';
  711. // break;
  712. // case 'domain':
  713. // click = '域名管理';
  714. // break;
  715. // case 'disk':
  716. // click = '我的云盘';
  717. // break;
  718. // case 'word':
  719. // click = 'Word';
  720. // break;
  721. // case 'excel':
  722. // click = 'Execl';
  723. // break;
  724. // case 'txt':
  725. // click = '文本文件';
  726. // break;
  727. // case 'lookupFriend':
  728. // click = '查找好友';
  729. // break;
  730. // case 'ftp':
  731. // click = 'FTP';
  732. // break;
  733. // case 'group':
  734. // click = '群组';
  735. // break;
  736. // case 'set':
  737. // click = '我的设置';
  738. // break;
  739. // case 'systemSet':
  740. // click = '系统设置';
  741. // break;
  742. // case 'boomYun':
  743. // click = '互联办公';
  744. // break;
  745. // case 'xz':
  746. // click = '云端下载';
  747. // break;
  748. // case 'client':
  749. // click = '有思浏览器';
  750. // break;
  751. // case 'backEndProgramming':
  752. // click = '在线后台编程';
  753. // break;
  754. // case 'frontEndProgramming':
  755. // click = '在线前端编程';
  756. // break;
  757. // default: break;
  758. // }
  759. // if(U.MD.D.I.Ip && click){
  760. // var clickUrl = ':12588/useClick.php?name=' + click + '&ip=' + U.MD.D.I.Ip;
  761. // U.MD.D.I.Mysqlrequest(clickUrl,function(data){
  762. // })
  763. // }
  764. // }
  765. /**
  766. *函数作用:ajax简易函数,使用post格式
  767. *@param url {data} 后台地址
  768. *@param data {data} 参数json
  769. *@param fn {data} 回调函数
  770. *
  771. */
  772. // U.MD.D.I.Mysqlrequest = function(url,fn){
  773. // var xhr = new XMLHttpRequest();
  774. // xhr.open("GET",url,true);
  775. // xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  776. // xhr.onreadystatechange = function(){
  777. // if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)){
  778. // fn.call(this,xhr.responseText);
  779. // }
  780. // };
  781. // xhr.send();
  782. // }
  783. /*判断是否是内网IP*/
  784. // U.MD.D.I.isInnerIPFn = function(str){
  785. // var curPageUrl = str;
  786. // var reg1 = /(http|ftp|https|www):\/\//g;//去掉前缀
  787. // curPageUrl =curPageUrl.replace(reg1,'');
  788. // // console.log('curPageUrl-1 '+curPageUrl);
  789. // var reg2 = /\:+/g;//替换冒号为一点
  790. // curPageUrl =curPageUrl.replace(reg2,'.');
  791. // // console.log('curPageUrl-2 '+curPageUrl);
  792. // curPageUrl = curPageUrl.split('.');//通过一点来划分数组
  793. // var ipAddress = curPageUrl[0]+'.'+curPageUrl[1]+'.'+curPageUrl[2]+'.'+curPageUrl[3];
  794. // if(curPageUrl[2] != '16'){
  795. // return ipAddress;
  796. // }else{
  797. // return false;
  798. // }
  799. // }
  800. // U.MD.D.I.getUserIP = function(onNewIP) { // onNewIp - your listener function for new IPs
  801. // //compatibility for firefox and chrome
  802. // var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
  803. // var pc = new myPeerConnection({
  804. // iceServers: []
  805. // }),
  806. // noop = function() {},
  807. // localIPs = {},
  808. // ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
  809. // key;
  810. // function iterateIP(ip) {
  811. // if (!localIPs[ip]) onNewIP(ip);
  812. // localIPs[ip] = true;
  813. // }
  814. // //create a bogus data channel
  815. // pc.createDataChannel("");
  816. // // create offer and set local description
  817. // pc.createOffer().then(function(sdp) {
  818. // sdp.sdp.split('\n').forEach(function(line) {
  819. // if (line.indexOf('candidate') < 0) return;
  820. // line.match(ipRegex).forEach(iterateIP);
  821. // });
  822. // pc.setLocalDescription(sdp, noop, noop);
  823. // }).catch(function(reason) {
  824. // // An error occurred, so handle the failure to connect
  825. // });
  826. // //sten for candidate events
  827. // pc.onicecandidate = function(ice) {
  828. // if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
  829. // ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
  830. // };
  831. // }
  832. // U.MD.D.I.getUserIpBool = function(callback){
  833. // U.MD.D.I.getUserIP(function(ip){
  834. // alert("Got IP! :" + ip);
  835. // });
  836. //}
  837. //#endregion