Onload2.js 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333
  1. //------------------------------------------------------------------------------------用户桌面和程序数据初始化区域----------------------------------------------------------------------------------------------------------------
  2. Namespace.register("U.MD.D"); //桌面onload和桌面总控的命名空间
  3. /*
  4. window.onload的流程:
  5. 1、自由属性的设置,例如:页面识别id。允许浏览器多页面浏览www.1473.cn
  6. 2、加载各种事件绑定,如:页面大小监视,不允许选择桌面文字,ie7以下浏览器页面提示
  7. 3、加载桌面图标。
  8. 4、加载跨域设置,如果没有跨域,首页数据无法获取
  9. 4、加载首页
  10. 5、加载广告,QQ登录等外链。
  11. UD和UC区别 uc是框架函数 ud为操作系统原壳 这里的简化的目标很简单 只要有人应用ud 就会引用一个web操作系统 提供操作系统的功能应用
  12. 难题 :
  13. 1、命名和用户冲突 会导致原web系统不可使用
  14. 2、函数冲突 如 用户自带window.resize这样的函数 我们提供了接口 但是这个接口的的暴露性可见性体现出文档的重要 宣传文档也就是文宣的重要性高了
  15. 3、有参数注释的都为暴露接口类型 其他都为内部使用 更好的体现方式
  16. */
  17. //#region 配置区域,相当于全局变量定义
  18. U.MD.D.IsUseStudio = true;
  19. //本地存储类
  20. U.MD.D.LocalStorage = null;
  21. //#endregion
  22. //#region onload处理
  23. /**
  24. * 系统初始化处理
  25. *
  26. * @param {function} 在外部项目应用该项目的时候 可以传入cb这个参数,如果传入了这个参数在回调跨域main.1473.cn加载成功会就会直接回调
  27. */
  28. window.onload = function () {
  29. U.MD.D.Load();
  30. // U.MD.U.L.login();
  31. //U.MD.D.isLogin();
  32. // U.MD.D.fullscreen();
  33. U.MD.D.stopSafari();
  34. const params = ['type', 'courseid', 'orgnum', 'classcode'].reduce((acc, key) => {
  35. const value = U.UF.C.queryString(key);
  36. if (value) acc[key] = value;
  37. return acc;
  38. }, {});
  39. U.MD.D.I.openApplication('liyuanLogin', params);
  40. let _hashSearch = "?" + (window.location.hash.split("?")[1] || "");
  41. let shareCourseId = U.UF.C.queryString("shareCourseId", _hashSearch);
  42. let _shareType = U.UF.C.queryString("type", _hashSearch);
  43. if (shareCourseId && _shareType === "prievew") {
  44. console.log(shareCourseId);
  45. U.MD.D.I.openInApplication("studyDetailNo", shareCourseId, 5, 1)
  46. }
  47. // window.addEventListener('resize', () => {
  48. // var realHeight = window.innerHeight
  49. // var realWidth = window.innerWidth
  50. // initViewport(realHeight, realWidth);
  51. // // window.location.reload();
  52. // })
  53. }
  54. US.Config = {
  55. server: '//beta.api.cocorobo.cn/api/',
  56. api: '//beta.api.cocorobo.cn/',
  57. chat: "//chat.api.cocorobo.cn/",
  58. edu: '//api.edu.cocorobo.cn/edu/',
  59. origin: '//cocorobo.cn',
  60. pbl: "//pbl.cocorobo.cn/api/pbl/",
  61. bpbl:"//pbl.cocorobo.cn",//正式链接
  62. // bpbl:"//beta.pbl.cocorobo.cn",//测试链接
  63. // pbl: "http://localhost:7003/api/pbl/",
  64. basename: '',
  65. type:1,
  66. // background:'url("/img/icon/bgImg4.png")'
  67. background:''
  68. }
  69. /**
  70. * 供外部调用的window.onload函数云端系统启动项
  71. *
  72. * @param {function} 在外部项目应用该项目的时候 可以传入cb这个参数,如果传入了这个参数在回调跨域main.1473.cn加载成功会就会直接回调
  73. */
  74. U.MD.D.Load = U.MD.D.FLoad = function (cb) {
  75. //这里判断是如果是www.1473.cn 或者 www.boomyun.com项目的时候 或者是 通过ufrom的跨域函数加载成功页面时候可以执行window.onload, 添加判断的目的主要是反正 其他项目引用uformd的时候自动执行window.onload报错。
  76. //当引用云端硬盘,好友模块时需要在自己的js文件中添加window.onload入口函数,否则会触发云端的window.onload,导致系统报错,
  77. //初始化桌面,如果是1473主站点那么初始化桌面系统,否则外部引入1473不加载桌面
  78. //系统初始化、第一个就是加载桌面,然后初始化全局变量、绑定事件、最后加载数据(加载数据需要跨域加载,因为项目分离的原因,我们有disk.1473.cn、user.1473.cn、firend.1473.cn里面有静态数据,还有动态的后台)
  79. if (U.MD.D.IsUseStudio) {
  80. //桌面初始化弹出
  81. U.selectEl("#UD_Dtop")[0].style.display = "block";
  82. //桌面做为一个置底的窗体
  83. new U.UF.UI.form(false, U.selectEl("#UD_Dtop")[0], { onresize: true, style: { "cssText": "width:100%;height:100%;padding:0;border:0;border-radius:0;box-shadow:0;position:static;" }, "className": "" }, { istop: false, isdrag: false, isdrag: false, isstretching: false, isenlarge: false, isnarrow: false, isclose: false }, null, { style: { "padding": "0" } });
  84. }
  85. //这里加判断的原因是怕有开发者开发的过程中直接调用uformd.js没有写跨域加载,没有写window.onload导致再运行的过程中找不到元素报错
  86. if ($("#U_MD_Home")[0]) {
  87. //设置页面大小等的全局变量
  88. U.MD.D.settingGlobalVariables();
  89. //浏览器事件监视及处理
  90. U.MD.D.addEvents();
  91. //var _browserinfo = U.UF.CI.getBrowser(); //获取浏览器
  92. ////ie7以下的浏览器弹出不兼容的处理
  93. //if (_browserinfo["browser"] == "msie" && parseInt(_browserinfo["ver"]) < 7) {
  94. // //弹出不兼容的处理
  95. // U.MD.D.A.browserCompatibleForm();
  96. //}
  97. }
  98. //跨域加载
  99. U.MD.D.crossDomain(cb); //跨域初始化,里面包含了用户登录
  100. }
  101. /**
  102. * 设置当前使用页面大小
  103. */
  104. U.MD.D.settingGlobalVariables = function () {
  105. //获取页面的大小
  106. var _size = U.selectEl("body").getElementInfo();
  107. US.height = _size["CH"]; //获取高度
  108. US.width = _size["CW"]; //获取宽度
  109. //1473的登录识别id
  110. US.systemId = 1;
  111. //页面识别id 页面唯一的识别 作为用户访问1473的唯一识别码,在之前用户获取聊天室的信息的唯一识别码
  112. US.pageId = Guid.newGuid();
  113. }
  114. /**
  115. * 系统监视
  116. */
  117. U.MD.D.addEvents = function () {
  118. //页面活动状态监视,失焦的时候停止五秒刷新,聚焦的时候开始刷新
  119. U.UF.EV.IsActivity(U.MD.D.focus, U.MD.D.blur);
  120. //监视页面的点击 使得窗体点击为顶部
  121. U.UF.F.clickTopWindow();
  122. //页面大小变化监视
  123. U.MD.D.reSize();
  124. window.onresize = U.MD.D.reSize;
  125. //如果是云端1473则屏蔽菜单和错误弹框
  126. if (U.MD.D.IsUseStudio) {
  127. if (window.print) { //判断是否有右键菜单
  128. document.oncontextmenu = U.UF.EV.stopDefault; //阻止桌面右键默认菜单
  129. }
  130. document.onselectstart = U.UF.C.shieldedSelect; //禁止文本选择处理
  131. U.UF.EV.addElementEvent("keydown", document, U.UF.C.shieldedBackspace); //禁止浏览器回退
  132. //window.onerror = U.MD.D.error; //错误提示屏蔽
  133. }
  134. //允许错误提示和右键菜单
  135. else {
  136. window.onerror = null;
  137. }
  138. //页面路由事件处理
  139. U.UF.N.route(U.MD.N.urlGuide);
  140. }
  141. /**
  142. * 页面大小变化时,需要重新排列图标及任务栏大小的变化.
  143. */
  144. U.MD.D.reSize = function () {
  145. //页面变化处理
  146. //获取页面的大小
  147. // US.height = window.innerHeight > window.innerWidth ? window.innerWidth : window.innerHeight;
  148. // US.width = window.innerHeight > window.innerWidth ? window.innerHeight : window.innerWidth;
  149. var _size = U.selectEl("html").getElementInfo();
  150. if (_size["CH"] > 500) {
  151. //处理窗体区域 随着页面大小变化而变化
  152. U.UF.UI.form.windowResize();
  153. // var _size = U.selectEl("body").getElementInfo();
  154. US.height = _size["CH"]; //获取高度
  155. US.width = _size["CW"]; //获取宽度;
  156. document.body.style.width = US.width + 'px';
  157. document.body.style.height = US.height + 'px';
  158. //任务栏处理
  159. if ($("#U_MD_D_RW")) {
  160. U.selectEl("#U_MD_D_RW").css("width", US.width - 165 + "px");
  161. U.MD.D.T.taskbar.multitask($("#U_MD_D_RW")[0]);
  162. //桌面图标处理
  163. if(US.Config.type == '1'){
  164. U.MD.D.iconPostion($("#U_MD_D_K").Child());
  165. }else{
  166. U.MD.D.iconPostion2($("#U_MD_D_K").Child());
  167. }
  168. }
  169. }
  170. }
  171. /**
  172. * 跨域引入1473
  173. * @param {function} 跨域加载成功后的回调函数
  174. */
  175. U.MD.D.crossDomain = function (cb) {
  176. U.MD.D.loadApplication(cb);
  177. ////跨域加载,如果是1473的跨域,那么则添加跨域的iframe处理
  178. //if (document.domain == "1473.cn") {
  179. // U.UF.CD.loadAjaxCrossDomain(function () {
  180. // U.MD.D.loadApplication(cb);
  181. // });
  182. //}
  183. ////如果是非1473的跨域,添加跨域的iframe
  184. //else {
  185. // U.UF.CD.thirdPartyLoadAjaxCrossDomain(function () {
  186. // U.MD.D.loadApplication(cb);
  187. // });
  188. //}
  189. }
  190. /**
  191. * 加载user 、 friend 、disk的js
  192. */
  193. U.MD.D.loadApplication = function (cb) {
  194. //U.UF.CD.loadApplication(function () {
  195. // U.MD.D.asynCrossDomain(cb);
  196. //});
  197. U.MD.D.asynCrossDomain(cb);
  198. }
  199. /**
  200. * 域名加载成功后异步 此处可正式获取数据
  201. * @param {function} 跨域加载成功后的回调函数
  202. */
  203. U.MD.D.asynCrossDomain = function (cb) {
  204. ////初始化url的处理
  205. //U.MD.N.urlGuide();
  206. ////通过cookie登录
  207. //U.MD.U.L.cookieLogin();
  208. ////如果是1473则弹出1473的首页
  209. //if (U.MD.D.IsUseStudio) {
  210. // U.MD.D.I.openApplication("boomYun");
  211. //}
  212. ////其它模块加载处理
  213. //U.MD.D.otherModularLoad();
  214. ////添加用户访问记录
  215. //U.UF.CI.getUserLocation(U.MD.D.visitLog);
  216. //桌面开始点,起始函数
  217. // if ($("#UD_Dtop")[0]) {
  218. // U.MD.D.I.init();
  219. // }
  220. //如果其他站点进入1473,这里是引入成功的回调处理
  221. if (U.UF.C.isFunction(cb)) {
  222. cb(); //回调处理
  223. }
  224. setInterval(function () {
  225. U.MD.D.getuser(); //用户登录
  226. }, 2000)
  227. setInterval(function () {
  228. U.MD.D.addLoginTime(); //用户登录
  229. }, 600000)
  230. }
  231. /**
  232. * 其它模块的加载
  233. */
  234. U.MD.D.otherModularLoad = function () {
  235. //计时器消息初始化 每个3秒刷一次消息
  236. U.MD.C.T.onesetInterval();
  237. //加载如广告 各模块加载
  238. U.MD.D.thirdPartyLoad(); //页面插件加载
  239. //html5本地存储,暂时用来完成本地页面交互消息 作用共享页面信息,还未完善。
  240. //U.MD.D.record();
  241. }
  242. /**
  243. * 第三方广告和登录加载处理
  244. */
  245. U.MD.D.thirdPartyLoad = function () {
  246. //阿里巴巴广告加载
  247. // U.UF.DL.C.AD.alimama([
  248. // { pid: "mm_32325420_3265865_24254681", appkey: "", unid: "" },
  249. // { pid: "mm_32325420_3265865_14752067", appkey: "", unid: "" },
  250. // { pid: "mm_32325420_3265865_24246760", appkey: "", unid: "" },
  251. // { pid: "mm_32325420_3265865_24254681", appkey: "", unid: ""}]);
  252. //qq登录加载按钮
  253. // U.MD.U.OT.qqLoadJs({ btnId: "U_MD_U_L_login_O_T_app_QQ", size: "C_S" });
  254. //微博登录加载按钮
  255. // U.MD.U.OT.weiboLoadJs({ id: "U_MD_U_L_login_O_T_app_I", type: "3,2", show_head: false, show_name: false, show_cancel: false,
  256. // callback: { login: U.MD.U.OT.weiboLoginCallBack }
  257. // });
  258. //百度统计加载
  259. // U.UF.DL.C.AD.onloadBaiduJs("1fce47ee7e8655ddd108fca7116f0752");
  260. // U.UF.DL.C.AD.onloadBaiduJs("f0ececeb4f687bc4d4ffb7719f4cf6a7");
  261. }
  262. /**
  263. * 写入访问用户信息
  264. */
  265. U.MD.D.visitLog = function () {
  266. U.A.Request(US.USER, ["AddToLoginLog", US.userInfo.UserId || US.EMPTYGUID, US.city.userAllLocation || ""], function () { }); //访问日志添加消息
  267. }
  268. //#endregion
  269. //#region 页面事件处理
  270. //关闭页面处理 把页面的活动数-1
  271. window.onunload = function () {
  272. try {
  273. var _userinfo = US.userInfo;
  274. if (U.MD.D.LocalStorage) {
  275. var _count = U.MD.D.LocalStorage.get("ati") || 0;
  276. if (_count > 0) { _count-- };
  277. U.MD.D.LocalStorage.set("ati", _count); //这是活动用户-1
  278. }
  279. if (_userinfo.UserId && U.A) { //在状态中让这个活动用户下线
  280. U.A.Request(US.USER, ["UserOffline", _userinfo.UserId], function () { }, []);
  281. }
  282. } catch (e) { }
  283. }
  284. //错误处理,前端错误需要在控制台输出,同时提交到错误数据库
  285. //window.onerror = function(sMessage,sUrl,sLine,columnNumber,errorObj){};
  286. //onerror函数的五个参数用于确定错误确切的信息,代表的意思依次为:
  287. //* @param {String} errorMessage errorMessage 错误信息
  288. //* @param {String} scriptURI 出错的文件
  289. //* @param {Long} lineNumber 出错代码的行号
  290. //* @param {Long} columnNumber 出错代码的列号
  291. //* @param {Object} errorObj 错误的详细信息,Anything
  292. U.MD.D.error = function (errorMessage, scripturi, linenumber, columnnumber, errorobj) {
  293. errorobj = errorobj || {}; //屏蔽js错误
  294. U.A.Request(US.USER, ["SetError", 0, (event.errorMessage || event || errorMessage), (scripturi || event.filename || event.errorUr) + "。行号:" + (linenumber || event.lineno || event.errorLine)], function () { }, []); //错误消息发送到数据库
  295. U.UF.C.console(event.errorMessage || event || errorobj); //console 输出错误信息
  296. return true; //不让浏览器弹出错误报告,浏览器会弹出一个comfirm的错误。
  297. }
  298. /**
  299. * 用户登录处理
  300. */
  301. let LoginState = false
  302. let CookieS = ''
  303. U.MD.D.getuser = function () {
  304. // $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/gif/longhuaBg.gif")'
  305. var userInfo = US.userInfo;
  306. var panId = userInfo && userInfo.accountNumber
  307. let loginType = U.UF.Cookie.get("cocoroboLoginType");
  308. if (!LoginState && !panId && !U.UF.C.queryString('code') && !U.UF.C.queryString('tycode')) {
  309. LoginState = true
  310. var _cookie = U.UF.Cookie.get("cocorobo");
  311. try {
  312. if (!panId && _cookie && loginType != 1) {
  313. U.A.Request(US.Config.server + "getcookieuserid", [], function (res) {
  314. if (res.value && res.value[0] && res.value[0][0]) {
  315. var _user = res.value[0][0];
  316. U.A.Request(US.Config.edu + "admin/userinfo/userinfoById/" + _user.userid, [], function (res) {
  317. if (res.value && res.value[0] && res.value[0][0]) {
  318. US.userInfo = res.value[0][0]; //记录用户数据
  319. US.userInfo.userid = _user.userid;
  320. // if ($("#U_MD_HomeC_Pop")[0]) {
  321. // $("#U_MD_HomeC_Pop")[0].close(); //关闭登陆
  322. // }
  323. selectUser(_user.userid, (res) => {
  324. loginSet(res.value[0][0], res);
  325. });
  326. }else {
  327. LoginState = false
  328. }
  329. }, [], { "type": "GET", "withCredentials": true });
  330. }else {
  331. LoginState = false
  332. }
  333. }, [], { "type": "GET", "withCredentials": true });
  334. }else {
  335. LoginState = false
  336. }
  337. } catch (error) {
  338. LoginState = false
  339. }
  340. }else if(!LoginState && !panId && U.UF.C.queryString('code').length === 32){
  341. if($("#U_MD_HomeC_Pop")[0]){
  342. $("#U_MD_HomeC_Pop")[0].close()
  343. }
  344. LoginState = true
  345. // console.log('新华跳转',U.UF.C.queryString('code'))
  346. let url = "https://cloud.cocorobo.cn/api/getTeacherInfoByCode"
  347. var myHeaders = new Headers();
  348. // myHeaders.append("User-Agent", "Apifox/1.0.0 (https://apifox.com)");
  349. myHeaders.append("Content-Type", "application/json");
  350. // myHeaders.append("Access-Control-Allow-Origin","*")
  351. var raw = JSON.stringify({
  352. "code": U.UF.C.queryString('code')
  353. });
  354. var requestOptions = {
  355. method: 'POST',
  356. headers: myHeaders,
  357. body: raw,
  358. redirect: 'follow',
  359. credentials: 'include'
  360. };
  361. fetch(url, requestOptions)
  362. .then(response => response.text())
  363. .then(result => {
  364. // console.log(result)
  365. let data = JSON.parse(result).data
  366. if(JSON.parse(result).code == 200){
  367. let diqu = `${data.province}-${data.city}-${data.county}-${data.street}-${data.schoolName}`
  368. let diquId = data.schoolId
  369. U.A.Request(US.Config.pbl + "batchRegistrationSzdjg3", [data.realName, data.userUniqueId+"@xhly.com", 'a5efd078-20f6-4185-bef9-6d1c688bee70', data.schoolName || "", "", "", 1, data.userUniqueId,diqu,diquId], function (res) {
  370. // console.log(res);
  371. let loginData = JSON.stringify({
  372. openid: data.userUniqueId,
  373. edu: true
  374. })
  375. var requestOptionsLogin = {
  376. method: 'POST',
  377. headers: myHeaders,
  378. body: loginData,
  379. redirect: 'follow',
  380. credentials: 'include'
  381. };
  382. fetch("https://beta.api.cocorobo.cn/api/user", requestOptionsLogin)
  383. .then(response => response.text())
  384. .then(result => {
  385. let a = JSON.parse(result)
  386. if(a.length>0){
  387. let userId = a[0][0].userid
  388. US.userInfo.userid = userId
  389. selectUser(userId, (res) => {
  390. loginSet(res.value[0][0], res);
  391. });
  392. }
  393. })
  394. .catch(error => {
  395. LoginState = false
  396. console.log('error', error)
  397. });
  398. }, [], { "type": "POST", "withCredentials": true })
  399. }else{
  400. U.Alert("用户登录已失效,请重新获取登录信息!");
  401. }
  402. })
  403. .catch(error => {
  404. LoginState = false
  405. console.log('error', error)
  406. });
  407. }else if(!LoginState && !panId && U.UF.C.queryString('code').length < 32 && U.UF.C.queryString('code').length > 9){
  408. if($("#U_MD_HomeC_Pop")[0]){
  409. $("#U_MD_HomeC_Pop")[0].close()
  410. }
  411. LoginState = true
  412. let url = "https:" + US.Config.pbl + "luohugetTeacherInfo?code=" + encodeURIComponent(U.UF.C.queryString('code'));
  413. var myHeaders = new Headers();
  414. myHeaders.append("Content-Type", "application/json");
  415. var requestOptions = {
  416. method: 'GET',
  417. redirect: 'follow'
  418. };
  419. fetch(url, requestOptions)
  420. .then(response => response.text())
  421. .then(result => {
  422. // console.log(result)
  423. let data = JSON.parse(result).data
  424. // return
  425. if(JSON.parse(result).code == 0){
  426. let diqu = ``
  427. let diquId = data.loginid
  428. U.A.Request(US.Config.pbl + "batchRegistrationSzdjg3", [data.empname, data.loginid+"@luohu.com", 'c05b87d3-3d8e-4415-9dba-f3deccac4822', data.schoolname || "", data.mobile, "", data.identity === 1 ? 1 : 2, data.loginid,diqu,diquId], function (res) {
  429. // console.log(res);
  430. let loginData = JSON.stringify({
  431. openid: data.loginid,
  432. edu: true
  433. })
  434. var requestOptionsLogin = {
  435. method: 'POST',
  436. headers: myHeaders,
  437. body: loginData,
  438. redirect: 'follow',
  439. credentials: 'include'
  440. };
  441. fetch("https://beta.api.cocorobo.cn/api/user", requestOptionsLogin)
  442. .then(response => response.text())
  443. .then(result => {
  444. let a = JSON.parse(result)
  445. if(a.length>0){
  446. let userId = a[0][0].userid
  447. US.userInfo.userid = userId
  448. selectUser(userId, (res) => {
  449. loginSet(res.value[0][0], res);
  450. });
  451. }
  452. })
  453. .catch(error => {
  454. LoginState = false
  455. console.log('error', error)
  456. });
  457. }, [], { "type": "POST", "withCredentials": true })
  458. }else{
  459. U.Alert("用户登录已失效,请重新获取登录信息!");
  460. }
  461. })
  462. .catch(error => {
  463. LoginState = false
  464. console.log('error', error)
  465. });
  466. }else if(!LoginState && !panId && U.UF.C.queryString('tycode')){
  467. U.UF.DL.loading(document.body)
  468. if($("#U_MD_HomeC_Pop")[0]){
  469. $("#U_MD_HomeC_Pop")[0].close()
  470. }
  471. LoginState = true
  472. let url = "https://cloud.cocorobo.cn/api/getUserInfoByCode";
  473. var myHeaders = new Headers();
  474. myHeaders.append("Content-Type", "application/json");
  475. var requestOptions = {
  476. method: 'POST',
  477. headers: myHeaders,
  478. body: JSON.stringify({
  479. code: U.UF.C.queryString('tycode'),
  480. signature: U.UF.C.queryString('signature')
  481. }),
  482. redirect: 'follow'
  483. };
  484. fetch(url, requestOptions)
  485. .then(response => response.text())
  486. .then(result => {
  487. // console.log(result)
  488. let data = JSON.parse(result).data
  489. // return
  490. if(JSON.parse(result).code == 200){
  491. U.A.Request(US.Config.pbl + "batchRegistrationSzdjg3", [data.nickName, data.userId+"@tianyuan.com", 'b47d2ea8-7044-4810-9cb7-3aaf8b74cfbc', data.orgName ? data.orgName : "e5cdf6b8-abdc-11ef-b887-005056b86db5", '', "", 1, data.userId,'',data.userId], function (res) {
  492. // console.log(res);
  493. let loginData = JSON.stringify({
  494. openid: data.userId,
  495. edu: true
  496. })
  497. var requestOptionsLogin = {
  498. method: 'POST',
  499. headers: myHeaders,
  500. body: loginData,
  501. redirect: 'follow',
  502. credentials: 'include'
  503. };
  504. fetch("https://beta.api.cocorobo.cn/api/user", requestOptionsLogin)
  505. .then(response => response.text())
  506. .then(result => {
  507. let a = JSON.parse(result)
  508. if(a.length>0){
  509. let userId = a[0][0].userid
  510. US.userInfo.userid = userId
  511. selectUser(userId, (res) => {
  512. loginSet(res.value[0][0], res)
  513. U.UF.DL.uploading(document.body)
  514. });
  515. }
  516. })
  517. .catch(error => {
  518. LoginState = false
  519. console.log('error', error)
  520. });
  521. }, [], { "type": "POST", "withCredentials": true })
  522. }else{
  523. U.Alert("用户登录已失效,请重新获取登录信息!");
  524. U.UF.DL.uploading(document.body)
  525. }
  526. })
  527. .catch(error => {
  528. LoginState = false
  529. console.log('error', error)
  530. });
  531. } else if(panId){
  532. try {
  533. if(US.Config.type == '2'){
  534. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/easyBg.png")'
  535. if (userInfo.org == 'eb2af5e9-ac3d-46b6-9fe3-3c1c364f0217') {
  536. U.MD.D.getNotice();
  537. }else if (userInfo.org == '150e3120-9195-11ed-b13d-005056b86db5') {
  538. U.MD.D.getNotice();
  539. } else if (userInfo.org == 'ee40e8e3-e36c-4872-8105-cf395481012s') {
  540. U.MD.D.getNotice();
  541. }
  542. }else{
  543. if (userInfo.organizeid == '91305d49-01ba-11ed-8c78-005056b86db4') {
  544. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/mingdeBg.png")'
  545. } else if (userInfo.organizeid == 'c7df0bd4-6e75-401a-a137-4e163aa62263') {
  546. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/zhongshanBg.png")'
  547. } else if (userInfo.organizeid == '580aac24-a939-49f7-a75a-40a7b5af3a17') {
  548. // $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/longweiBg.png")'
  549. } else if (userInfo.organizeid == 'b1095a3c-1d06-4ac8-854f-7c0d97f4ab41') {
  550. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/yunhaiBg.jpg")'
  551. } else if (userInfo.organizeid == '857af1c7-c8ee-4b04-85b5-fd182903adb7') {
  552. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/beijingBg.png")'
  553. } else if (userInfo.organizeid == '69893dca-1d47-11ed-8c78-005056b86db5') {
  554. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/weilaiBg.png")'
  555. } else if (userInfo.organizeid == 'efdef564-4064-11ed-8c78-005056b86db5') {
  556. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/pz.jpg")'
  557. } else if (userInfo.organizeid == 'd9db3320-503a-11ed-8c78-005056b86db5') {
  558. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/hzBg.png")'
  559. } else if (userInfo.organizeid == 'ccb9754d-59c1-11ed-8c78-005056b86db5') {
  560. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/nanfangBg.png")'
  561. } else if (userInfo.organizeid == 'f30a6615-5379-11ed-8c78-005056b86db5') {
  562. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/longhuaBg.png")'
  563. } else if (userInfo.organizeid == '4787cc87-6588-11ed-8c78-005056b86db5') {
  564. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/nanfangBg.png")'
  565. } else if (userInfo.organizeid == '9f888eae-7558-11ed-8c78-005056b86db5') {
  566. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/song.png")'
  567. } else if (userInfo.organizeid == '2b9ceb66-a1dd-11ed-b13d-005056b86db5') {
  568. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/gmxxBg.png")'
  569. } else if (userInfo.organizeid == '1c3b9def-8fbe-11ed-b13d-005056b86db5') {
  570. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/wankeBg.png")'
  571. } else if (userInfo.organizeid == '82fcb5c7-c13b-11ed-8d51-005056b86db5') {
  572. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/qiaoxiangBg.png")'
  573. } else if (userInfo.organizeid == '4c686762-1d0a-11ed-8c78-005056b86db5') {
  574. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/sies.png")'
  575. } else if (userInfo.organizeid == 'ea2a8c65-f38c-11ed-91d8-005056b86db5') {
  576. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/longhuaZXBg.png")'
  577. } else if (userInfo.organizeid == 'f297fbdc-f0a0-11ee-b534-005056b86db5') {
  578. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/010606.png")'
  579. }
  580. if (userInfo.org == 'eb2af5e9-ac3d-46b6-9fe3-3c1c364f018d') {
  581. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/yantianOrgBg.png")'
  582. } else if (userInfo.org == '7ada499f-4ec7-11ed-8c78-005056b86db5') {
  583. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/csteamBg.png")'
  584. } else if (userInfo.org == 'eb2af5e9-ac3d-46b6-9fe3-3c1c364f0217') {
  585. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/gm/bg.png")'
  586. U.MD.D.getNotice();
  587. } else if (userInfo.org == '97c4ee8b-d010-4042-986d-e9d3c217264f') {
  588. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/zhoujia.jpg")'
  589. } else if (userInfo.org == '150e3120-9195-11ed-b13d-005056b86db5') {
  590. if (!$("#tc_desktop_css")[0]) {
  591. const link = document.createElement("link");
  592. link.rel = "stylesheet";
  593. link.href =
  594. "./css/tencent/Desktop.css";
  595. link.id = "tc_desktop_css"
  596. document.body.appendChild(link);
  597. $(".avatar")[0].onclick= function(){
  598. U.MD.D.I.openApplication('tcData')
  599. }
  600. }
  601. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/tencentBg.jpg")'
  602. U.MD.D.getNotice();
  603. } else if (userInfo.org == 'ee40e8e3-e36c-4872-8105-cf395481012s') {
  604. $(".avatar")[0].onclick= function(){
  605. U.MD.D.I.openApplication('tcData')
  606. }
  607. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/szscBg.png")'
  608. U.MD.D.getNotice();
  609. } else if (userInfo.org == 'ec0af97a-7c10-4259-a7eb-db9cc8174cdc') {
  610. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/futianBg.png")'
  611. } else if (userInfo.org == 'e632b86c-f89d-11ed-91d8-005056b86db5') {
  612. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/gdjgBg.png")'
  613. } else if (userInfo.org == '54f09f1e-09f0-11ee-91d8-005056b86db5') {
  614. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/szlhyjBg.jpeg")'
  615. } else if (userInfo.org == '7b016f69-0f4f-11ee-91d8-005056b86db5') {
  616. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/dseiBg.png")'
  617. } else if (userInfo.org == '1973f6c7-1561-11ee-91d8-005056b86db5') {
  618. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/szjkyBg2.png")'
  619. } else if (userInfo.org == '2fa75e51-189a-11ee-91d8-005056b86db5') {
  620. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/chjyjBg.png")'
  621. } else if (userInfo.org == '2a9f32ea-88df-49eb-aba1-0a286f691474') {
  622. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/qhBg.jpg")'
  623. } else if (userInfo.org == '884c5665-a453-46f3-b7b6-01d575290aa9') {
  624. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/scnuaiBg.png")'
  625. } else if (userInfo.org == '2fe1a080-4425-4620-b7a0-be2f3750ffd4') {
  626. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/x010607bgImg.png")'
  627. } else if (userInfo.org == 'ec84034b-8ea4-4d27-9cba-1adcb4720bb3') {
  628. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/SPROUTLabBg.png")'
  629. }
  630. }
  631. } catch (error) {
  632. if ($("#U_MD_HomeC_Pop")[0]) {
  633. $("#U_MD_HomeC_Pop")[0].close(); //关闭登陆
  634. }
  635. selectUser(userInfo.userid, (res) => {
  636. loginSet(res.value[0][0], res);
  637. });
  638. }
  639. }
  640. var _cookie = U.UF.Cookie.get("cocorobo");
  641. if(LoginState && !_cookie){
  642. window.onbeforeunload = null
  643. window.location.reload();
  644. }else if(LoginState && !CookieS){
  645. CookieS = _cookie
  646. U.UF.Cookie.set("cocoroboLoginType=2");
  647. }else if(LoginState && _cookie != CookieS){
  648. US.userInfo = {}
  649. U.A.Request(US.Config.server + "getcookieuserid", [], function (res) {
  650. if (res.value && res.value[0] && res.value[0][0]) {
  651. var _user = res.value[0][0];
  652. U.A.Request(US.Config.edu + "admin/userinfo/userinfoById/" + _user.userid, [], function (res) {
  653. if (res.value && res.value[0] && res.value[0][0]) {
  654. US.userInfo = res.value[0][0]; //记录用户数据
  655. US.userInfo.userid = _user.userid;
  656. selectUser(_user.userid, (res) => {
  657. loginSet(res.value[0][0], res);
  658. });
  659. U.UF.Cookie.set("cocoroboLoginType=2");
  660. }else {
  661. LoginState = false
  662. }
  663. }, [], { "type": "GET", "withCredentials": true });
  664. }else {
  665. window.onbeforeunload = null
  666. window.location.reload();
  667. }
  668. }, [], { "type": "GET", "withCredentials": true });
  669. }
  670. }
  671. U.MD.D.addLoginTime = function(){
  672. var userInfo = US.userInfo;
  673. if(Object.keys(userInfo).length !== 0){
  674. U.A.Request(US.Config.pbl + "addOperationTimeT", [userInfo.userid,'','3','600'], function (res) {
  675. }, [], { "type": "POST", "withCredentials": true });
  676. }
  677. }
  678. U.MD.D.getuser2 = function (userid, cid) {
  679. var myHeaders = new Headers();
  680. myHeaders.append("Content-Type", "application/json");
  681. let loginData = JSON.stringify({
  682. openid: userid,
  683. edu: true
  684. })
  685. var requestOptionsLogin = {
  686. method: 'POST',
  687. headers: myHeaders,
  688. body: loginData,
  689. redirect: 'follow',
  690. credentials: 'include' // 设置withCredentials为true
  691. };
  692. fetch("https://beta.api.cocorobo.cn/api/user", requestOptionsLogin)
  693. .then(response => response.text())
  694. .then(result => {
  695. let a = JSON.parse(result)
  696. if(a.length>0){
  697. if($(".U_PBL_Check2")[0]){
  698. $(".U_PBL_Check2")[0].style.display = "none";
  699. }
  700. let userId = a[0][0].userid
  701. US.userInfo.userid = userId
  702. selectUser(userId, (res) => {
  703. if ($("#U_MD_HomeC_Pop")[0]) {
  704. $("#U_MD_HomeC_Pop")[0].close(); //关闭登陆
  705. }
  706. loginPan(res.value[0][0], userid)
  707. US.userInfo = res.value[0][0];
  708. $(".avatar")[0].style.display = "block";
  709. if (res.value[0][0].type === 1 && $(".U_PBL_Check")[0] && res.value[0][0].org != '150e3120-9195-11ed-b13d-005056b86db5' && res.value[0][0].org != 'b47d2ea8-7044-4810-9cb7-3aaf8b74cfbc') {
  710. $(".U_PBL_Check")[0].style.display = "block";
  711. }
  712. $(".login")[0].style.display = "none";
  713. $(".register")[0].style.display = "none";
  714. $(".userName")[0].style.display = "block";
  715. $(".userName")[0].innerHTML = US.userInfo.username || US.userInfo.alias;
  716. $(".exit")[0].style.display = "block";
  717. let _vipbox = $('.U_MD_D_BD_vip_box')[0]
  718. _vipbox && (_vipbox.style.right = $(".U_MD_D_BD")[0].offsetWidth + 20 + 'px')
  719. if(res.value[0][0].type === 1 && res.value[0][0].org == 'c95e0a56-c205-11ed-8d51-005056b86db5'){
  720. U.MD.D.I.ModeCheck(2)
  721. }else{
  722. U.MD.D.I.initDesktopIcons($("#U_MD_D_K")[0], 1);
  723. }
  724. if(res.value[0][0].type === 1 && window.location.hash.indexOf('project') != -1){
  725. U.MD.D.I.openApplication("project")
  726. }
  727. if(res.value[0][0].type === 1 && window.location.hash.indexOf('study') != -1){
  728. U.MD.D.I.openApplication("study")
  729. }
  730. if(res.value[0][0].type === 2 && window.location.hash.indexOf('study') != -1){
  731. U.MD.D.I.openApplication("studentStudy")
  732. }
  733. U.MD.O.P.connect(); //登录成功后连接socket服务同步协同编辑
  734. U.UF.Cookie.set("cocoroboLoginType=2");
  735. LoginState = true
  736. if(cid){
  737. U.MD.D.I.openInApplication("studyDetail", cid, 2, 2)
  738. U.MD.D.addOp3("1", "", { type: "user_login_inviteCode" }, "success")
  739. }
  740. });
  741. }
  742. })
  743. .catch(error => {
  744. LoginState = false
  745. console.log('error', error)
  746. });
  747. }
  748. //#endregion
  749. //#region 获取ifram下的html
  750. //U.MD.D.getIfraemHtml = function (src) {
  751. // var _iframe = $$("iframe", { src: src, style: { display: "none"} });
  752. // //跨域回调设置
  753. // U.UF.DL.iframeLoad(_iframe, function () {
  754. // var _html = _iframe.contentWindow.document.body.innerHTML;
  755. // console.log(_html);
  756. // U.selectEl(_iframe).remove();
  757. // });
  758. // U.selectEl(_iframe).appendTo($('body')[0]);
  759. //};
  760. //#endregion
  761. U.MD.D.fullscreen = function () {
  762. //if (document.body.offsetWidth < 1025) {
  763. U.UF.C.fullScreen()
  764. //}
  765. document.body.addEventListener('dblclick', () => {
  766. U.UF.C.fullScreen()
  767. // const isFullScreen = document.fullscreenElement
  768. // if (isFullScreen) {
  769. // U.UF.C.cancelfullScreen()
  770. // } else {
  771. // U.UF.C.fullScreen()
  772. // }
  773. })
  774. }
  775. U.MD.D.stopSafari = function () {
  776. //阻止safari浏览器双击放大功能
  777. let lastTouchEnd = 0 //更新手指弹起的时间
  778. document.documentElement.addEventListener("touchstart", function (event) {
  779. //多根手指同时按下屏幕,禁止默认行为
  780. if (event.touches.length > 1) {
  781. event.preventDefault();
  782. }
  783. });
  784. document.documentElement.addEventListener("touchend", function (event) {
  785. let now = (new Date()).getTime();
  786. if (now - lastTouchEnd <= 300) {
  787. //当两次手指弹起的时间小于300毫秒,认为双击屏幕行为
  788. event.preventDefault();
  789. } else { // 否则重新手指弹起的时间
  790. lastTouchEnd = now;
  791. }
  792. }, false);
  793. //阻止双指放大页面
  794. document.documentElement.addEventListener("gesturestart", function (event) {
  795. event.preventDefault();
  796. });
  797. }
  798. U.MD.D.noticeBlock = '1'
  799. U.MD.D.OpenNotice = function () {
  800. let box = $('.U_MD_D_BD_notice')[0]
  801. box.style.display = 'block'
  802. }
  803. U.MD.D.cancelNotice = function () {
  804. U.UF.EV.stopBubble();
  805. let box = $('.U_MD_D_BD_notice')[0]
  806. box.style.display = 'none'
  807. U.MD.D.noticeBlock = '2'
  808. }
  809. U.MD.D.getNotice = function () {
  810. // a77e9404-efec-11e9-96f9-028edca3b798&oid=45facc0a-1211-11ec-80ad-005056b86db5&org=undefined&role=1
  811. var uid = US.userInfo.userid,
  812. oid = US.userInfo.organizeid,
  813. org = US.userInfo.org;
  814. U.A.Request(US.Config.pbl + "selectNotice?uid=" + uid + "&oid=" + oid + "&org=" + org + "&page=1", [], function (res) {
  815. if (res.value && res.value[0].length > 0) {
  816. let box = $('.U_MD_D_BD_noticeBox_box')[0]
  817. let _res = res.value[0]
  818. if (U.MD.D.noticeBlock == '1') {
  819. $('.U_MD_D_BD_notice')[0].style.display = 'block'
  820. }
  821. $('.U_MD_D_BD_notice_img')[0].style.display = 'block'
  822. box.innerHTML = ''
  823. var num = _res.length > 3 ? 3 : _res.length
  824. for (var i = 0; i < num; i++) {
  825. var _box = $$('div', { className: 'U_MD_D_BD_noticeBox' }, box)
  826. var _title = $$('div', { className: 'U_MD_D_BD_noticeBox_title' }, _box)
  827. // $$('span', { innerHTML: '消息通知' }, _title)
  828. $$('span', { innerHTML: _res[i].title }, _title)
  829. var _content = $$('div', { className: 'U_MD_D_BD_noticeBox_content' }, _box)
  830. $$('span', { innerHTML: _res[i].content.replace(/<[^>]*>/g, "") }, _content)
  831. var _time = $$('div', { className: 'U_MD_D_BD_noticeBox_time' }, _box)
  832. $$('span', { innerHTML: _res[i].creatTime }, _time)
  833. }
  834. } else {
  835. $('.U_MD_D_BD_notice')[0].style.display = 'none'
  836. $('.U_MD_D_BD_notice_img')[0].style.display = 'none'
  837. }
  838. // setTimeout(() => {
  839. // U.MD.D.getNotice();
  840. // }, 5000);
  841. }, [], { "type": "GET", "withCredentials": true });
  842. }
  843. // // 创建 video 元素并设置属性
  844. // const video = document.createElement("video");
  845. // video.src = "../../img/icon/video/mxStart.mp4";
  846. // video.autoplay = true;
  847. // video.muted = true;
  848. // video.style="width: 100%;"
  849. // // 添加 video 元素到页面
  850. // document.body.appendChild(video);
  851. // // 在视频播放完成后删除 video 元素
  852. // video.addEventListener("ended", () => {
  853. // document.body.removeChild(video);
  854. // });
  855. function formatDate(_date) {
  856. let time = _date.replace(/-/g, '/')
  857. let date = new Date(time);
  858. const year = date.getFullYear();
  859. const month = (date.getMonth() + 1).toString().padStart(2, "0");
  860. const day = date.getDate().toString().padStart(2, "0");
  861. const hours = date.getHours().toString().padStart(2, "0");
  862. const minutes = date.getMinutes().toString().padStart(2, "0");
  863. const seconds = date.getSeconds().toString().padStart(2, "0");
  864. return `${year}年${month}月${day}日`;
  865. }
  866. function formatDate2(_date) {
  867. let date = _date;
  868. const year = date.getFullYear();
  869. const month = (date.getMonth() + 1).toString().padStart(2, "0");
  870. const day = date.getDate().toString().padStart(2, "0");
  871. const hours = date.getHours().toString().padStart(2, "0");
  872. const minutes = date.getMinutes().toString().padStart(2, "0");
  873. const seconds = date.getSeconds().toString().padStart(2, "0");
  874. return `${year}年${month}月${day}日`;
  875. }
  876. function loginPan(userInfo, userId) {
  877. const currentDate = new Date();
  878. // 判断 isLogin1 和 isLogin2 是否为 2 或者是否过期(且过期时间是有效的日期格式)
  879. if (
  880. userInfo.isLogin1 == 2 ||
  881. (userInfo.isLogin1 &&
  882. userInfo.isLogin1 != 1 &&
  883. userInfo.isLogin1 != 2 &&
  884. new Date(userInfo.isLogin1) < currentDate) ||
  885. userInfo.isLogin2 == 2 ||
  886. (userInfo.isLogin2 != 1 &&
  887. userInfo.isLogin2 != 2 &&
  888. new Date(userInfo.isLogin2) < currentDate) ||
  889. userInfo.state != 1
  890. ) {
  891. U.MD.U.LO.logoutSystem2();
  892. return;
  893. }
  894. let vipbox = $(".U_MD_D_BD_vip_box")[0];
  895. vipbox && (vipbox.style.display = "block");
  896. let vip_time = $(".vip_time")[0];
  897. let vtime = "";
  898. let vMember = "基础用户";
  899. // 获取 isLogin1 和 isLogin2 的值
  900. let isLogin1 = userInfo.isLogin1;
  901. let isLogin2 = userInfo.isLogin2;
  902. if (isLogin2 != 1 && isLogin2 != null) {
  903. vtime = formatDate(isLogin2);
  904. vMember = "高级用户";
  905. } else if (isLogin1 != 1 && isLogin1 != null) {
  906. vtime = formatDate(isLogin1);
  907. vMember = "高级用户";
  908. } else if (
  909. (isLogin1 == 1 && isLogin2 == 1) ||
  910. (isLogin1 == null && isLogin2 == 1)
  911. ) {
  912. vtime = formatDate2(new Date(currentDate.setFullYear(currentDate.getFullYear() + 1)));
  913. vMember = "基础用户";
  914. }
  915. vip_time && (vip_time.innerHTML = vtime);
  916. let orgName = userInfo.orgName;
  917. let schoolName = userInfo.schoolName;
  918. let vip_school = $(".vip_school")[0];
  919. vip_school && (vip_school.innerHTML = orgName ? orgName : schoolName);
  920. let vip_member = $(".vip_member")[0];
  921. vip_member && (vip_member.innerHTML = vMember);
  922. // addOp('','cocoflowLogin','')
  923. // addOp('','cocoflowOpen','')
  924. // U.A.Request(
  925. // US.Config.pbl + "addLoginOperation",
  926. // [userId],
  927. // function (res) {},
  928. // [],
  929. // { type: "POST", withCredentials: true }
  930. // );
  931. if (userInfo.organizeid == "91305d49-01ba-11ed-8c78-005056b86db4") {
  932. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/mingdeBg.png")';
  933. US.Config.background = 'url("/img/icon/mingdeBg.png")';
  934. } else if (
  935. userInfo.organizeid == "c7df0bd4-6e75-401a-a137-4e163aa62263"
  936. ) {
  937. $("#U_MD_D_BG")[0].style.backgroundImage =
  938. 'url("/img/icon/zhongshanBg.png")';
  939. US.Config.background = 'url("/img/icon/zhongshanBg.png")';
  940. } else if (
  941. userInfo.organizeid == "580aac24-a939-49f7-a75a-40a7b5af3a17"
  942. ) {
  943. // $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/longweiBg.png")'
  944. } else if (
  945. userInfo.organizeid == "b1095a3c-1d06-4ac8-854f-7c0d97f4ab41"
  946. ) {
  947. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/yunhaiBg.jpg")';
  948. US.Config.background = 'url("/img/icon/yunhaiBg.png")';
  949. } else if (
  950. userInfo.organizeid == "857af1c7-c8ee-4b04-85b5-fd182903adb7"
  951. ) {
  952. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/beijingBg.png")';
  953. US.Config.background = 'url("/img/icon/beijingBg.png")';
  954. } else if (
  955. userInfo.organizeid == "69893dca-1d47-11ed-8c78-005056b86db5"
  956. ) {
  957. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/weilaiBg.png")';
  958. US.Config.background = 'url("/img/icon/weilaiBg.png")';
  959. } else if (
  960. userInfo.organizeid == "efdef564-4064-11ed-8c78-005056b86db5"
  961. ) {
  962. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/pz.jpg")';
  963. US.Config.background = 'url("/img/icon/pz.png")';
  964. } else if (
  965. userInfo.organizeid == "d9db3320-503a-11ed-8c78-005056b86db5"
  966. ) {
  967. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/hzBg.png")';
  968. US.Config.background = 'url("/img/icon/hzBg.png")';
  969. } else if (
  970. userInfo.organizeid == "ccb9754d-59c1-11ed-8c78-005056b86db5"
  971. ) {
  972. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/nanfangBg.png")';
  973. US.Config.background = 'url("/img/icon/nanfangBg.png")';
  974. } else if (
  975. userInfo.organizeid == "f30a6615-5379-11ed-8c78-005056b86db5"
  976. ) {
  977. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/longhuaBg.png")';
  978. US.Config.background = 'url("/img/icon/longhuaBg.png")';
  979. } else if (
  980. userInfo.organizeid == "4787cc87-6588-11ed-8c78-005056b86db5"
  981. ) {
  982. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/nanfangBg.png")';
  983. US.Config.background = 'url("/img/icon/nanfangBg.png")';
  984. } else if (
  985. userInfo.organizeid == "9f888eae-7558-11ed-8c78-005056b86db5"
  986. ) {
  987. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/song.png")';
  988. US.Config.background = 'url("/img/icon/song.png")';
  989. } else if (
  990. userInfo.organizeid == "2b9ceb66-a1dd-11ed-b13d-005056b86db5"
  991. ) {
  992. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/gmxxBg.png")';
  993. US.Config.background = 'url("/img/icon/gmxxBg.png")';
  994. } else if (
  995. userInfo.organizeid == "1c3b9def-8fbe-11ed-b13d-005056b86db5"
  996. ) {
  997. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/wankeBg.png")';
  998. US.Config.background = 'url("/img/icon/wankeBg.png")';
  999. } else if (
  1000. userInfo.organizeid == "82fcb5c7-c13b-11ed-8d51-005056b86db5"
  1001. ) {
  1002. $("#U_MD_D_BG")[0].style.backgroundImage =
  1003. 'url("/img/icon/qiaoxiangBg.png")';
  1004. US.Config.background = 'url("/img/icon/qiaoxiangBg.png")';
  1005. } else if (
  1006. userInfo.organizeid == "4c686762-1d0a-11ed-8c78-005056b86db5"
  1007. ) {
  1008. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/sies.png")';
  1009. US.Config.background = 'url("/img/icon/sies.png")';
  1010. } else if (
  1011. userInfo.organizeid == "ea2a8c65-f38c-11ed-91d8-005056b86db5"
  1012. ) {
  1013. $("#U_MD_D_BG")[0].style.backgroundImage =
  1014. 'url("/img/icon/longhuaZXBg.png")';
  1015. US.Config.background = 'url("/img/icon/longhuaZXBg.png")';
  1016. } else if (
  1017. userInfo.organizeid == "f297fbdc-f0a0-11ee-b534-005056b86db5"
  1018. ) {
  1019. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/010606.png")';
  1020. US.Config.background = 'url("/img/icon/010606.png")';
  1021. }
  1022. if (userInfo.org == "eb2af5e9-ac3d-46b6-9fe3-3c1c364f018d") {
  1023. $("#U_MD_D_BG")[0].style.backgroundImage =
  1024. 'url("/img/icon/yantianOrgBg.png")';
  1025. US.Config.background = 'url("/img/icon/yantianOrgBg.png")';
  1026. } else if (userInfo.org == "7ada499f-4ec7-11ed-8c78-005056b86db5") {
  1027. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/csteamBg.png")';
  1028. US.Config.background = 'url("/img/icon/csteamBg.png")';
  1029. } else if (userInfo.org == "eb2af5e9-ac3d-46b6-9fe3-3c1c364f0217") {
  1030. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/gm/bg.png")';
  1031. US.Config.background = 'url("/img/icon/bg.png")';
  1032. U.MD.D.getNotice();
  1033. } else if (userInfo.org == "97c4ee8b-d010-4042-986d-e9d3c217264f") {
  1034. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/zhoujia.jpg")';
  1035. US.Config.background = 'url("/img/icon/zhoujia.png")';
  1036. } else if (userInfo.org == "150e3120-9195-11ed-b13d-005056b86db5") {
  1037. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/tencentBg.jpg")';
  1038. US.Config.background = 'url("/img/icon/tencentBg.png")';
  1039. U.MD.D.getNotice();
  1040. } else if (userInfo.org == "ee40e8e3-e36c-4872-8105-cf395481012s") {
  1041. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/szscBg.png")';
  1042. US.Config.background = 'url("/img/icon/szscBg.png")';
  1043. U.MD.D.getNotice();
  1044. } else if (userInfo.org == "ec0af97a-7c10-4259-a7eb-db9cc8174cdc") {
  1045. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/futianBg.png")';
  1046. US.Config.background = 'url("/img/icon/futianBg.png")';
  1047. } else if (userInfo.org == "e632b86c-f89d-11ed-91d8-005056b86db5") {
  1048. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/gdjgBg.png")';
  1049. US.Config.background = 'url("/img/icon/gdjgBg.png")';
  1050. } else if (userInfo.org == "54f09f1e-09f0-11ee-91d8-005056b86db5") {
  1051. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/szlhyjBg.jpeg")';
  1052. US.Config.background = 'url("/img/icon/szlhyjBg.jpeg")';
  1053. } else if (userInfo.org == "7b016f69-0f4f-11ee-91d8-005056b86db5") {
  1054. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/dseiBg.png")';
  1055. US.Config.background = 'url("/img/icon/dseiBg.png")';
  1056. } else if (userInfo.org == "1973f6c7-1561-11ee-91d8-005056b86db5") {
  1057. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/szjkyBg2.png")';
  1058. US.Config.background = 'url("/img/icon/szjkyBg2.png")';
  1059. } else if (userInfo.org == "2fa75e51-189a-11ee-91d8-005056b86db5") {
  1060. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/chjyjBg.png")';
  1061. US.Config.background = 'url("/img/icon/chjyjBg.png")';
  1062. } else if (userInfo.org == "2a9f32ea-88df-49eb-aba1-0a286f691474") {
  1063. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/qhBg.jpg")';
  1064. US.Config.background = 'url("/img/icon/qhBg.jpg")';
  1065. } else if (userInfo.org == "884c5665-a453-46f3-b7b6-01d575290aa9") {
  1066. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/scnuaiBg.png")';
  1067. US.Config.background = 'url("/img/icon/scnuaiBg.png")';
  1068. } else if (userInfo.org == "2fe1a080-4425-4620-b7a0-be2f3750ffd4") {
  1069. $("#U_MD_D_BG")[0].style.backgroundImage =
  1070. 'url("/img/icon/x010607bgImg.png")';
  1071. US.Config.background = 'url("/img/icon/x010607bgImg.png")';
  1072. } else if (userInfo.org == "ec84034b-8ea4-4d27-9cba-1adcb4720bb3") {
  1073. $("#U_MD_D_BG")[0].style.backgroundImage =
  1074. 'url("/img/icon/SPROUTLabBg.png")';
  1075. US.Config.background = 'url("/img/icon/SPROUTLabBg.png")';
  1076. } else if (
  1077. userInfo.org == "b47d2ea8-7044-4810-9cb7-3aaf8b74cfbc"
  1078. ) {
  1079. $("#U_MD_D_BG")[0].style.backgroundImage = 'url("/img/icon/Tianyuan.png")';
  1080. US.Config.background = 'url("/img/icon/Tianyuan.png")';
  1081. }
  1082. US.userInfo = userInfo;
  1083. $(".avatar")[0].style.display = "block";
  1084. if (
  1085. userInfo.type === 1 &&
  1086. $(".U_PBL_Check")[0] &&
  1087. userInfo.org != "150e3120-9195-11ed-b13d-005056b86db5" && userInfo.org != 'b47d2ea8-7044-4810-9cb7-3aaf8b74cfbc'
  1088. ) {
  1089. $(".U_PBL_Check")[0].style.display = "block";
  1090. }
  1091. }
  1092. function loginSet(userInfo, res){
  1093. let userId = userInfo.userid
  1094. if (res.value == null || res.value[0].length == 0) {
  1095. // U.MD.D.I.openApplication("my")
  1096. let _name = US.userInfo.alias ? US.userInfo.alias : US.userInfo.username
  1097. let _type = US.userInfo == 1 ? 2 : 1
  1098. // US.Config.pbl
  1099. // "http://localhost:7003/api/pbl/"
  1100. U.A.Request(US.Config.pbl + "updatePblMessage", [userId, _name, _type, '16d397f3-b192-11ed-9211-005056b86db5', '', '', "0"], function (res) {
  1101. window.location.reload();
  1102. }, [], { "type": "POST", "withCredentials": true });
  1103. } else {
  1104. loginPan(userInfo, userId)
  1105. // U.MD.D.I.openApplication('cocoflowDeskTop')
  1106. }
  1107. if($(".U_PBL_Check2")[0]){
  1108. $(".U_PBL_Check2")[0].style.display = "none";
  1109. }
  1110. $(".login")[0].style.display = "none";
  1111. $(".register")[0].style.display = "none";
  1112. $(".userName")[0].style.display = "block";
  1113. $(".userName")[0].innerHTML = US.userInfo.username || US.userInfo.alias;
  1114. $(".exit")[0].style.display = "block";
  1115. let _vipbox = $('.U_MD_D_BD_vip_box')[0]
  1116. _vipbox && (_vipbox.style.right = $(".U_MD_D_BD")[0].offsetWidth + 20 + 'px')
  1117. // if(userInfo.type === 1 && userInfo.org == 'c95e0a56-c205-11ed-8d51-005056b86db5'){
  1118. // U.MD.D.I.ModeCheck(2)
  1119. // }else{
  1120. // U.MD.D.I.initDesktopIcons($("#U_MD_D_K")[0], 1);
  1121. // }
  1122. // if(userInfo.type === 1 && userInfo.org == "f3b243b2-75e2-4b00-8f66-7644946a2a25"){
  1123. // U.MD.D.I.openApplication("appStore")
  1124. // }
  1125. let shareCourseId = window.location.href.indexOf("?shareCourseId=")!=-1?window.location.href.split("?shareCourseId=")[1].toString():''
  1126. if(shareCourseId){
  1127. console.log(shareCourseId);
  1128. U.MD.D.I.openInApplication("studyDetail", shareCourseId, 5, 1)
  1129. }
  1130. if(userInfo.type === 1 && window.location.hash.indexOf('project') != -1){
  1131. U.MD.D.I.openApplication("project")
  1132. }
  1133. if(userInfo.type === 1 && window.location.hash.indexOf('study') != -1){
  1134. U.MD.D.I.openApplication("study")
  1135. }
  1136. if(userInfo.type === 2 && window.location.hash.indexOf('study') != -1){
  1137. U.MD.D.I.openApplication("studentStudy")
  1138. }
  1139. if(userInfo.type === 1 && U.UF.C.queryString('tycode') && U.UF.C.queryString('app')){
  1140. U.MD.D.I.openApplication(U.UF.C.queryString('app'))
  1141. }
  1142. U.MD.O.P.connect(); //登录成功后连接socket服务同步协同编辑
  1143. }
  1144. function selectUser(uid, callback) {
  1145. var userInfo = US.userInfo;
  1146. var panId = userInfo && userInfo.accountNumber
  1147. if(panId){
  1148. let res = {value:[[userInfo]]}
  1149. if (callback) callback(res);
  1150. return
  1151. }
  1152. const requestUser = () => {
  1153. U.A.Request(`${US.Config.pbl}selectUser?userid=${uid}`, [], function (res) {
  1154. if(res && res.value && res.value.length && res.value[0].length && res.value[0][0].userid){
  1155. if (callback) callback(res);
  1156. }else {
  1157. U.alert("获取用户信息失败,正在重试!")
  1158. LoginState = false
  1159. requestUser();
  1160. }
  1161. }, [], { "type": "GET", "withCredentials": true });
  1162. };
  1163. try {
  1164. requestUser();
  1165. } catch (error) {
  1166. U.alert("登录失败,正在重试!")
  1167. LoginState = false
  1168. requestUser();
  1169. }
  1170. }
  1171. function addOp(text,type,time){
  1172. var userInfo = US.userInfo;
  1173. if(Object.keys(userInfo).length !== 0){
  1174. U.A.Request(US.Config.pbl + "addOperationTimeT", [userInfo.userid,text,type,time], function (res) {
  1175. }, [], { "type": "POST", "withCredentials": true });
  1176. }
  1177. }
  1178. function detectBrowser() {
  1179. const ua = navigator.userAgent;
  1180. // 按优先级顺序检测
  1181. if (ua.includes("Edg/") || ua.includes("Edge/")) {
  1182. return "Microsoft Edge";
  1183. } else if (ua.includes("Firefox")) {
  1184. return "Mozilla Firefox";
  1185. } else if (ua.includes("Trident") || ua.includes("MSIE")) {
  1186. return "Internet Explorer";
  1187. } else if (ua.includes("360EE")) {
  1188. return "360 Browser (极速模式)";
  1189. } else if (ua.includes("360SE")) {
  1190. return "360 Browser (安全模式)";
  1191. } else if (ua.includes("SLBrowser")) {
  1192. return "QQ Browser";
  1193. } else if (ua.includes("UCBrowser")) {
  1194. return "UC Browser";
  1195. } else if (ua.includes("Opera") || ua.includes("OPR/")) {
  1196. return "Opera";
  1197. } else if (ua.includes("Chrome") && !ua.includes("Edg/")) {
  1198. return "Google Chrome";
  1199. } else if (ua.includes("Safari/") && !ua.includes("Chrome")) {
  1200. return "Safari";
  1201. } else {
  1202. return "Other Browser";
  1203. }
  1204. }
  1205. U.MD.D.addOp3 = async (userTime, loadTime, object, status) => {
  1206. let browser = detectBrowser()
  1207. let _time = new Date().toLocaleString('zh-CN', { hour12: false, timeZone: 'Asia/Shanghai' }).replace(/\//g, '-');
  1208. let params = {
  1209. userid: US.userInfo.userid,
  1210. username: US.userInfo.name,
  1211. accountNumber: US.userInfo.accountNumber,
  1212. org: US.userInfo.orgName,
  1213. school: US.userInfo.schoolName,
  1214. role: US.userInfo.type == '1' ? '老师' : '学生',
  1215. browser: browser,
  1216. userTime: userTime == '1' ? _time : userTime, // 使用时间 1次的就1 其次传秒
  1217. loadTime: loadTime, //load的时间没有就“”
  1218. object: JSON.stringify(object), //执行信息传json
  1219. status: status, //成功返回success。失败返回error的信息
  1220. }
  1221. fetch("https://pbl.cocorobo.cn/api/mongo/updateUserData2P", { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(params) }).then(res => {
  1222. if (res.status == 200) {
  1223. console.log('保存成功')
  1224. } else {
  1225. console.log('保存失败')
  1226. }
  1227. }).catch(e => {
  1228. console.log('保存失败')
  1229. console.log(e);
  1230. })
  1231. }