You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

lr-clientdata.js 26 KiB

4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707
  1. 
  2. (function ($, learun) {
  3. "use strict";
  4. var loadSate = {
  5. no: -1, // 还未加载
  6. yes: 1, // 已经加载成功
  7. ing: 0, // 正在加载中
  8. fail: 2 // 加载失败
  9. };
  10. var clientDataFn = {};
  11. var clientAsyncData = {};
  12. var clientData = {};
  13. var desktopData = {};
  14. var sourceData = {};
  15. var userData = {};
  16. var dataItemData = {};
  17. function initLoad(callback) {
  18. var res = loadSate.yes;
  19. for (var id in clientDataFn) {
  20. var _fn = clientDataFn[id];
  21. if (_fn.state == loadSate.fail) {
  22. res = loadSate.fail;
  23. break;
  24. }
  25. else if (_fn.state == loadSate.no) {
  26. res = loadSate.ing;
  27. _fn.init();
  28. }
  29. else if (_fn.state == loadSate.ing) {
  30. res = loadSate.ing;
  31. }
  32. }
  33. if (res == loadSate.yes) {
  34. callback(true);
  35. } else if (res == loadSate.fail) {
  36. callback(false);
  37. }
  38. else {
  39. setTimeout(function () {
  40. initLoad(callback);
  41. }, 100);
  42. }
  43. }
  44. function get(key, data) {
  45. var res = "";
  46. var len = data.length;
  47. if (len == undefined) {
  48. res = data[key];
  49. }
  50. else {
  51. for (var i = 0; i < len; i++) {
  52. if (key(data[i])) {
  53. res = data[i];
  54. break;
  55. }
  56. }
  57. }
  58. return res;
  59. }
  60. learun.clientdata = {
  61. init: function (callback) {
  62. initLoad(function (res) {
  63. callback(res);
  64. if (res) {// 开始异步加载数据
  65. clientAsyncData.company.init();
  66. }
  67. });
  68. },
  69. get: function (nameArray) {//[key,function (v) { return v.key == value }]
  70. var res = "";
  71. if (!nameArray) {
  72. return res;
  73. }
  74. var len = nameArray.length;
  75. var data = clientData;
  76. for (var i = 0; i < len; i++) {
  77. res = get(nameArray[i], data);
  78. if (res != "" && res != undefined) {
  79. data = res;
  80. }
  81. else {
  82. break;
  83. }
  84. }
  85. res = res || "";
  86. return res;
  87. },
  88. getAsync: function (name, op) {//
  89. return clientAsyncData[name].get(op);
  90. },
  91. getAllAsync: function (name, op) {//
  92. return clientAsyncData[name].getAll(op);
  93. },
  94. getsAsync: function (name, op) {//
  95. return clientAsyncData[name].gets(op);
  96. },
  97. update: function (name) {
  98. clientAsyncData[name].update && clientAsyncData[name].update();
  99. },
  100. getAsyncReal: function (name, op) {
  101. clientAsyncData[name].states = 1;
  102. return clientAsyncData[name].get(op);
  103. }
  104. };
  105. /*******************登录后数据***********************/
  106. // 注册数据的加载方法
  107. // 功能模块数据
  108. clientDataFn.modules = {
  109. state: loadSate.no,
  110. init: function () {
  111. //初始化加载数据
  112. clientDataFn.modules.state = loadSate.ing;
  113. learun.httpAsyncGet($.rootUrl + '/LR_SystemModule/Module/GetModuleList', function (res) {
  114. if (res.code == learun.httpCode.success) {
  115. clientData.modules = res.data;
  116. clientDataFn.modules.toMap();
  117. clientDataFn.modules.state = loadSate.yes;
  118. }
  119. else {
  120. clientData.modules = [];
  121. clientDataFn.modules.toMap();
  122. clientDataFn.modules.state = loadSate.fail;
  123. }
  124. });
  125. },
  126. toMap: function () {
  127. //转化成树结构 和 转化成字典结构
  128. var modulesTree = {};
  129. var modulesMap = {};
  130. var _len = clientData.modules.length;
  131. for (var i = 0; i < _len; i++) {
  132. var _item = clientData.modules[i];
  133. if (_item.F_EnabledMark == 1) {
  134. modulesTree[_item.F_ParentId] = modulesTree[_item.F_ParentId] || [];
  135. modulesTree[_item.F_ParentId].push(_item);
  136. modulesMap[_item.F_ModuleId] = _item;
  137. }
  138. }
  139. clientData.modulesTree = modulesTree;
  140. clientData.modulesMap = modulesMap;
  141. }
  142. };
  143. // 登录用户信息
  144. clientDataFn.userinfo = {
  145. state: loadSate.no,
  146. init: function () {
  147. //初始化加载数据
  148. clientDataFn.userinfo.state = loadSate.ing;
  149. learun.httpAsyncGet($.rootUrl + '/Login/GetUserInfo', function (res) {
  150. if (res.code == learun.httpCode.success) {
  151. clientData.userinfo = res.data;
  152. clientDataFn.userinfo.state = loadSate.yes;
  153. }
  154. else {
  155. clientDataFn.userinfo.state = loadSate.fail;
  156. }
  157. });
  158. }
  159. };
  160. /*******************使用时异步获取*******************/
  161. var storage = {
  162. get: function (name) {
  163. if (localStorage) {
  164. return JSON.parse(localStorage.getItem(name)) || {};
  165. }
  166. else {
  167. return clientData[name] || {};
  168. }
  169. },
  170. set: function (name, data) {
  171. if (localStorage) {
  172. localStorage.setItem(name, JSON.stringify(data));
  173. }
  174. else {
  175. clientData[name] = data;
  176. }
  177. }
  178. };
  179. // 公司信息
  180. clientAsyncData.company = {
  181. states: loadSate.no,
  182. init: function () {
  183. if (clientAsyncData.company.states == loadSate.no) {
  184. clientAsyncData.company.states = loadSate.ing;
  185. var ver = storage.get("companyData").ver || "";
  186. learun.httpAsync('GET', top.$.rootUrl + '/LR_OrganizationModule/Company/GetMap', { ver: ver }, function (data) {
  187. if (!data) {
  188. clientAsyncData.company.states = loadSate.fail;
  189. } else {
  190. if (data.ver) {
  191. storage.set("companyData", data);
  192. }
  193. clientAsyncData.company.states = loadSate.yes;
  194. clientAsyncData.department.init();
  195. }
  196. });
  197. }
  198. },
  199. get: function (op) {
  200. clientAsyncData.company.init();
  201. if (clientAsyncData.company.states == loadSate.ing) {
  202. setTimeout(function () {
  203. clientAsyncData.company.get(op);
  204. }, 100);// 如果还在加载100ms后再检测
  205. }
  206. else {
  207. var data = storage.get("companyData").data || {};
  208. op.callback(data[op.key] || {}, op);
  209. }
  210. },
  211. getAll: function (op) {
  212. clientAsyncData.company.init();
  213. if (clientAsyncData.company.states == loadSate.ing) {
  214. setTimeout(function () {
  215. clientAsyncData.company.getAll(op);
  216. }, 100);// 如果还在加载100ms后再检测
  217. }
  218. else {
  219. var data = storage.get("companyData").data || {};
  220. op.callback(data, op);
  221. }
  222. }
  223. };
  224. // 部门信息
  225. clientAsyncData.department = {
  226. states: loadSate.no,
  227. init: function () {
  228. if (clientAsyncData.department.states == loadSate.no) {
  229. clientAsyncData.department.states = loadSate.ing;
  230. var ver = storage.get("departmentData").ver || "";
  231. learun.httpAsync('GET', top.$.rootUrl + '/LR_OrganizationModule/Department/GetMap', { ver: ver }, function (data) {
  232. if (!data) {
  233. clientAsyncData.department.states = loadSate.fail;
  234. } else {
  235. if (data.ver) {
  236. storage.set("departmentData", data);
  237. }
  238. clientAsyncData.department.states = loadSate.yes;
  239. clientAsyncData.user.init();
  240. }
  241. });
  242. }
  243. },
  244. get: function (op) {
  245. clientAsyncData.department.init();
  246. if (clientAsyncData.department.states == loadSate.ing) {
  247. setTimeout(function () {
  248. clientAsyncData.department.get(op);
  249. }, 100);// 如果还在加载100ms后再检测
  250. }
  251. else {
  252. var data = storage.get("departmentData").data || {};
  253. op.callback(data[op.key] || {}, op);
  254. }
  255. },
  256. getAll: function (op) {
  257. clientAsyncData.department.init();
  258. if (clientAsyncData.department.states == loadSate.ing) {
  259. setTimeout(function () {
  260. clientAsyncData.department.getAll(op);
  261. }, 100);// 如果还在加载100ms后再检测
  262. }
  263. else {
  264. var data = storage.get("departmentData").data || {};
  265. op.callback(data, op);
  266. }
  267. }
  268. };
  269. // 人员信息
  270. clientAsyncData.user = {
  271. states: loadSate.no,
  272. init: function () {
  273. if (clientAsyncData.user.states == loadSate.no) {
  274. clientAsyncData.user.states = loadSate.ing;
  275. //var ver = storage.get("userData").ver || "";
  276. var ver = "";
  277. if (userData) {
  278. ver = userData.ver || "";
  279. }
  280. learun.httpAsync('GET', top.$.rootUrl + '/LR_OrganizationModule/User/GetMap', { ver: ver }, function (data) {
  281. if (!data) {
  282. clientAsyncData.user.states = loadSate.fail;
  283. } else {
  284. if (data.ver) {
  285. userData = data;
  286. //storage.set("userData", data);
  287. }
  288. clientAsyncData.user.states = loadSate.yes;
  289. clientAsyncData.dataItem.init();
  290. }
  291. });
  292. }
  293. },
  294. get: function (op) {
  295. clientAsyncData.user.init();
  296. if (clientAsyncData.user.states == loadSate.ing) {
  297. setTimeout(function () {
  298. clientAsyncData.user.get(op);
  299. }, 100);// 如果还在加载100ms后再检测
  300. }
  301. else {
  302. //var data = storage.get("userData").data || {};
  303. var data = userData.data || {};
  304. var keys = (op.key || '').split(',');
  305. var array = new Array();
  306. if (keys.length > 1) {
  307. $.each(keys,
  308. function (i, item) {
  309. array.push(data[item]);
  310. })
  311. op.callback(array || {}, op);
  312. } else {
  313. op.callback(data[op.key] || {}, op);
  314. }
  315. }
  316. },
  317. getAll: function (op) {
  318. clientAsyncData.user.init();
  319. if (clientAsyncData.user.states == loadSate.ing) {
  320. setTimeout(function () {
  321. clientAsyncData.user.getAll(op);
  322. }, 100);// 如果还在加载100ms后再检测
  323. }
  324. else {
  325. //var data = storage.get("userData").data || {};
  326. var data = userData.data || {};
  327. op.callback(data, op);
  328. }
  329. }
  330. };
  331. // 数据字典
  332. clientAsyncData.dataItem = {
  333. states: loadSate.no,
  334. init: function () {
  335. if (clientAsyncData.dataItem.states == loadSate.no) {
  336. clientAsyncData.dataItem.states = loadSate.ing;
  337. var ver = "";// storage.get("dataItemData").ver || "";
  338. if (dataItemData) {
  339. ver = dataItemData.ver || "";
  340. }
  341. learun.httpAsync('GET', top.$.rootUrl + '/LR_SystemModule/DataItem/GetMap', { ver: ver }, function (data) {
  342. if (!data) {
  343. clientAsyncData.dataItem.states = loadSate.fail;
  344. } else {
  345. if (data.ver) {
  346. dataItemData = data;
  347. //storage.set("dataItemData", data);
  348. }
  349. clientAsyncData.dataItem.states = loadSate.yes;
  350. clientAsyncData.db.init();
  351. }
  352. });
  353. }
  354. },
  355. get: function (op) {
  356. clientAsyncData.dataItem.init();
  357. if (clientAsyncData.dataItem.states == loadSate.ing) {
  358. setTimeout(function () {
  359. clientAsyncData.dataItem.get(op);
  360. }, 100);// 如果还在加载100ms后再检测
  361. }
  362. else {
  363. var data = dataItemData.data || {};// storage.get("dataItemData").data || {};
  364. // 数据字典翻译
  365. var _item = clientAsyncData.dataItem.find(op.key, data[op.code] || {});
  366. if (_item) {
  367. top.learun.language.get(_item.text, function (text) {
  368. _item.text = text;
  369. op.callback(_item, op);
  370. });
  371. }
  372. else {
  373. op.callback({}, op);
  374. }
  375. }
  376. },
  377. getAll: function (op) {
  378. clientAsyncData.dataItem.init();
  379. if (clientAsyncData.dataItem.states == loadSate.ing) {
  380. setTimeout(function () {
  381. clientAsyncData.dataItem.getAll(op);
  382. }, 100);// 如果还在加载100ms后再检测
  383. }
  384. else {
  385. var data = dataItemData.data || {};//storage.get("dataItemData").data || {};
  386. var res = {};
  387. $.each(data[op.code] || {}, function (_index, _item) {
  388. _item.text = top.learun.language.getSyn(_item.text);
  389. res[_index] = _item;
  390. });
  391. op.callback(res, op);
  392. }
  393. },
  394. gets: function (op) {
  395. clientAsyncData.dataItem.init();
  396. if (clientAsyncData.dataItem.states == loadSate.ing) {
  397. setTimeout(function () {
  398. clientAsyncData.dataItem.get(op);
  399. }, 100);// 如果还在加载100ms后再检测
  400. }
  401. else {
  402. var data = dataItemData || {};//storage.get("dataItemData").data || {};
  403. var keyList = (op.key || "").split(',');
  404. var _text = []
  405. $.each(keyList, function (_index, _item) {
  406. var _item = clientAsyncData.dataItem.find(_item, data[op.code] || {});
  407. top.learun.language.get(_item.text, function (text) {
  408. _text.push(text);
  409. });
  410. });
  411. op.callback(String(_text), op);
  412. }
  413. },
  414. find: function (key, data) {
  415. var res = {};
  416. for (var id in data) {
  417. if (data[id].value == key) {
  418. res = data[id];
  419. break;
  420. }
  421. }
  422. return res;
  423. },
  424. update: function () {
  425. clientAsyncData.dataItem.states = loadSate.no;
  426. clientAsyncData.dataItem.init();
  427. }
  428. };
  429. // 数据库连接数据
  430. clientAsyncData.db = {
  431. states: loadSate.no,
  432. init: function () {
  433. if (clientAsyncData.db.states == loadSate.no) {
  434. clientAsyncData.db.states = loadSate.ing;
  435. var ver = storage.get("dbData").ver || "";
  436. learun.httpAsync('GET', top.$.rootUrl + '/LR_SystemModule/DatabaseLink/GetMap', { ver: ver }, function (data) {
  437. if (!data) {
  438. clientAsyncData.db.states = loadSate.fail;
  439. } else {
  440. if (data.ver) {
  441. storage.set("dbData", data);
  442. }
  443. clientAsyncData.db.states = loadSate.yes;
  444. }
  445. });
  446. }
  447. },
  448. get: function (op) {
  449. clientAsyncData.db.init();
  450. if (clientAsyncData.db.states == loadSate.ing) {
  451. setTimeout(function () {
  452. clientAsyncData.db.get(op);
  453. }, 100);// 如果还在加载100ms后再检测
  454. }
  455. else {
  456. var data = storage.get("dbData").data || {};
  457. op.callback(data[op.key] || {}, op);
  458. }
  459. },
  460. getAll: function (op) {
  461. clientAsyncData.db.init();
  462. if (clientAsyncData.db.states == loadSate.ing) {
  463. setTimeout(function () {
  464. clientAsyncData.db.getAll(op);
  465. }, 100);// 如果还在加载100ms后再检测
  466. }
  467. else {
  468. var data = storage.get("dbData").data || {};
  469. op.callback(data, op);
  470. }
  471. }
  472. };
  473. // 数据源数据
  474. clientAsyncData.sourceData = {
  475. states: {},
  476. get: function (op) {
  477. if (clientAsyncData.sourceData.states[op.code] == undefined || clientAsyncData.sourceData.states[op.code] == loadSate.no) {
  478. clientAsyncData.sourceData.states[op.code] = loadSate.ing;
  479. clientAsyncData.sourceData.load(op.code);
  480. }
  481. if (clientAsyncData.sourceData.states[op.code] == loadSate.ing) {
  482. setTimeout(function () {
  483. clientAsyncData.sourceData.get(op);
  484. }, 100);// 如果还在加载100ms后再检测
  485. }
  486. else {
  487. var data = sourceData["sourceData_" + code] || [];// storage.get("sourceData_" + op.code).data || [];
  488. if (!!data) {
  489. //op.callback(sourceData["sourceData_" + code].find(op.key, op.keyId, data) || {}, op);
  490. op.callback(clientAsyncData.sourceData.find(op.key, op.keyId, data) || {}, op);
  491. } else {
  492. op.callback({}, op);
  493. }
  494. }
  495. },
  496. getAll: function (op) {
  497. if (clientAsyncData.sourceData.states[op.code] == undefined || clientAsyncData.sourceData.states[op.code] == loadSate.no) {
  498. clientAsyncData.sourceData.states[op.code] = loadSate.ing;
  499. clientAsyncData.sourceData.load(op.code);
  500. }
  501. if (clientAsyncData.sourceData.states[op.code] == loadSate.ing) {
  502. setTimeout(function () {
  503. clientAsyncData.sourceData.getAll(op);
  504. }, 100);// 如果还在加载100ms后再检测
  505. }
  506. else if (clientAsyncData.sourceData.states[op.code] == loadSate.yes) {
  507. //var data = storage.get("sourceData_" + op.code).data || [];
  508. var data = sourceData["sourceData_" + op.code].data || [];
  509. if (!!data) {
  510. op.callback(data, op);
  511. } else {
  512. op.callback({}, op);
  513. }
  514. }
  515. },
  516. load: function (code) {
  517. // var ver = storage.get("sourceData_" + code).ver || "";
  518. var ver = "";
  519. if (sourceData["sourceData_" + code]) {
  520. ver = sourceData["sourceData_" + code].ver || "";
  521. }
  522. //var ver = sourceData["sourceData_" + code].ver || "";//storage.get("sourceData_" + code).ver || "";
  523. learun.httpAsync('GET', top.$.rootUrl + '/LR_SystemModule/DataSource/GetMap', { code: code, ver: ver }, function (data) {
  524. if (!data) {
  525. clientAsyncData.sourceData.states[code] = loadSate.fail;
  526. } else {
  527. if (data.ver) {
  528. sourceData["sourceData_" + code] = data;
  529. //storage.set("sourceData_" + code, data);
  530. }
  531. clientAsyncData.sourceData.states[code] = loadSate.yes;
  532. }
  533. });
  534. },
  535. find: function (key, keyId, data) {
  536. var res = {};
  537. for (var i = 0, l = data.length; i < l; i++) {
  538. if (data[i][keyId] == key) {
  539. res = data[i];
  540. break;
  541. }
  542. }
  543. return res;
  544. }
  545. };
  546. // 获取自定义数据 url key valueId
  547. clientAsyncData.custmerData = {
  548. states: {},
  549. get: function (op) {
  550. if (clientAsyncData.custmerData.states[op.url] == undefined || clientAsyncData.custmerData.states[op.url] == loadSate.no || op.sync == true) {
  551. clientAsyncData.custmerData.states[op.url] = loadSate.ing;
  552. if (!!op.sync) {
  553. clientAsyncData.custmerData.loadsync(op.url, op);
  554. } else {
  555. clientAsyncData.custmerData.load(op.url);
  556. }
  557. }
  558. if (clientAsyncData.custmerData.states[op.url] == loadSate.ing) {
  559. setTimeout(function () {
  560. clientAsyncData.custmerData.get(op);
  561. }, 100);// 如果还在加载100ms后再检测
  562. }
  563. else {
  564. var data = clientData[op.url] || [];
  565. if (!!data) {
  566. op.callback(clientAsyncData.custmerData.find(op.key, op.keyId, data) || {}, op);
  567. } else {
  568. op.callback({}, op);
  569. }
  570. }
  571. },
  572. gets: function (op) {
  573. if (clientAsyncData.custmerData.states[op.url] == undefined || clientAsyncData.custmerData.states[op.url] == loadSate.no) {
  574. clientAsyncData.custmerData.states[op.url] = loadSate.ing;
  575. clientAsyncData.custmerData.load(op.url);
  576. }
  577. if (clientAsyncData.custmerData.states[op.url] == loadSate.ing) {
  578. setTimeout(function () {
  579. clientAsyncData.custmerData.get(op);
  580. }, 100);// 如果还在加载100ms后再检测
  581. }
  582. else {
  583. var data = clientData[op.url] || [];
  584. if (!!data) {
  585. var keyList = op.key.split(',');
  586. var _text = []
  587. $.each(keyList, function (_index, _item) {
  588. var _item = clientAsyncData.custmerData.find(op.key, op.keyId, data) || {};
  589. if (_item[op.textId]) {
  590. _text.push(_item[op.textId]);
  591. }
  592. });
  593. op.callback(String(_text), op);
  594. } else {
  595. op.callback('', op);
  596. }
  597. }
  598. },
  599. getAll: function (op) {
  600. if (clientAsyncData.custmerData.states[op.url] == undefined || clientAsyncData.custmerData.states[op.url] == loadSate.no) {
  601. clientAsyncData.custmerData.states[op.url] = loadSate.ing;
  602. clientAsyncData.custmerData.load(op.url);
  603. }
  604. if (clientAsyncData.custmerData.states[op.url] == loadSate.ing) {
  605. setTimeout(function () {
  606. clientAsyncData.custmerData.get(op);
  607. }, 100);// 如果还在加载100ms后再检测
  608. }
  609. else {
  610. var data = clientData[op.url] || [];
  611. if (!!data) {
  612. op.callback(data, op);
  613. } else {
  614. op.callback([], op);
  615. }
  616. }
  617. },
  618. load: function (url) {
  619. learun.httpAsync('GET', top.$.rootUrl + url, {}, function (data) {
  620. if (!!data) {
  621. clientData[url] = data;
  622. }
  623. clientAsyncData.custmerData.states[url] = loadSate.yes;
  624. });
  625. },
  626. loadsync: function (url, op) {
  627. learun.httpSync('GET', top.$.rootUrl + url, {}, function (data) {
  628. if (!!data) {
  629. clientAsyncData.custmerData.states[url] = loadSate.yes;
  630. clientData[url] = data;
  631. op.callback(clientAsyncData.custmerData.find(op.key, op.keyId, data) || {}, op);
  632. } else {
  633. op.callback({}, op);
  634. }
  635. });
  636. },
  637. find: function (key, keyId, data) {
  638. var res = {};
  639. for (var i = 0, l = data.length; i < l; i++) {
  640. if (data[i][keyId] == key) {
  641. res = data[i];
  642. break;
  643. }
  644. }
  645. return res;
  646. }
  647. };
  648. //桌面
  649. clientAsyncData.desktop = {
  650. states: loadSate.no,
  651. init: function () {
  652. if (clientAsyncData.desktop.states == loadSate.no) {
  653. clientAsyncData.desktop.states = loadSate.ing;
  654. var j = "";//storage.get("desktopData").ver || "";
  655. learun.httpAsync("GET",
  656. top.$.rootUrl + "/LR_Desktop/DTTarget/GetMap",
  657. {
  658. ver: j
  659. },
  660. function (k) {
  661. if (!k) {
  662. clientAsyncData.desktop.states = loadSate.fail;
  663. } else {
  664. if (k.ver) {
  665. desktopData = k;
  666. //storage.set("desktopData", k);
  667. }
  668. clientAsyncData.desktop.states = loadSate.yes;
  669. clientAsyncData.department.init();
  670. }
  671. });
  672. }
  673. }, get: function (k) {
  674. clientAsyncData.desktop.init();
  675. if (clientAsyncData.desktop.states == loadSate.ing) {
  676. setTimeout(function () {
  677. clientAsyncData.desktop.get(k);
  678. }, 100)
  679. } else {
  680. var j = desktopData;//storage.get("desktopData").data || {};
  681. k.callback(j || {}, k);
  682. }
  683. }
  684. }
  685. })(window.jQuery, top.learun);