Onload.js 58 KB

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