init.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. const GLJ_INIT = (() => {
  2. const params = location.href.split('/');
  3. const curUserID = params[params.length - 1];
  4. console.log('curUserID', curUserID);
  5. // 头部按钮相关
  6. function initHeaderTools(receiveList, shareList) {
  7. // 设置下拉项
  8. const selectHtml = `
  9. <select class="form-control form-control-sm" id="glj-libs">
  10. </select>`;
  11. // 设置分享按钮
  12. const shareHtml = `
  13. <span id="share-tip" class="ml-2" data-toggle="tooltip" data-placement="bottom" data-original-title="">
  14. <a id="init-share" style="width: 63px;" href="javascript:;" class="btn btn-xs btn-primary ${isReadOnly ? 'disabled' : ''}"><i class="fa fa-share-alt"></i> 分享</a>
  15. </span>`;
  16. const html = `
  17. <div style="display: flex; align-items: center">
  18. ${selectHtml}
  19. ${shareHtml}
  20. </div>
  21. `
  22. $('#fullpath').html(html);
  23. initShareTip(shareList);
  24. $('[data-toggle="tooltip"]').tooltip();
  25. initLibOptions(receiveList);
  26. // 分享给
  27. SHARE_TO.handleEventListener();
  28. $('#init-share').click(() => {
  29. SHARE_TO.initModal(SHARE_TO.Mode.GLJ_LIB);
  30. $('#share-tip').tooltip('hide');
  31. });
  32. // 库下拉
  33. function initShareTip(shareList) {
  34. if (shareList.length) {
  35. const owners = shareList.map(owner => owner.real_name);
  36. const tips = `已分享给 ${owners.join(' ')}`;
  37. $('#share-tip').attr('data-original-title', tips);
  38. }
  39. }
  40. // 库下拉
  41. function initLibOptions(receiveList) {
  42. const libList = [
  43. `<option value="${userID}">我的补充人材机库</option>`
  44. ];
  45. const options = receiveList.map(owner => `<option value=${owner._id} ${curUserID === owner._id ? 'selected' : ''}>${owner.real_name}的补充人材机库</option>`);
  46. libList.push(...options);
  47. $('#glj-libs').html(libList.join(''))
  48. }
  49. $('#glj-libs').change(function () {
  50. const userID = $(this).val();
  51. window.location.href = `/complementaryGlj/${userID}`;
  52. });
  53. }
  54. $(document).ready(() => {
  55. $.bootstrapLoading.start();
  56. const projection = {
  57. _id: 0,
  58. ID: 1,
  59. code: 1,
  60. unit: 1,
  61. name: 1,
  62. priceProperty: 1,
  63. basePrice: 1
  64. };
  65. CommonAjax.post('/complementartGlj/api/initData', { projection, userID: curUserID }, res => {
  66. if (res.error) {
  67. alert('数据初始化失败,请重试。');
  68. setTimeout(() => {
  69. window.location.href = '/'
  70. }, 1200);
  71. } else {
  72. const { receiveLibs, shareLibs, gljItems, mixTree, distTypeData } = res;
  73. initHeaderTools(receiveLibs, shareLibs);
  74. pageOprObj.stdGljLibId = stdGljLibId;
  75. repositoryGljObj.currentRepositoryId = stdGljLibId;
  76. pageOprObj.userId = userId;
  77. pageOprObj.compilationId = compilationId;
  78. repositoryGljObj.buildSheet($("#GLJListSheet")[0]);
  79. gljComponentOprObj.buildSheet($('#gljComponentSheet')[0]);
  80. componentOprObj.buildSheet($("#componentSheet")[0]);
  81. // distTypeTree
  82. repositoryGljObj.distTypeTree = repositoryGljObj.getComboData(distTypeData);
  83. // tree
  84. gljClassTreeObj.treeData = mixTree;
  85. if (mixTree.comple && mixTree.comple.length > 0) {
  86. gljClassTreeObj.gljCurTypeId = mixTree.comple[0].ID;
  87. }
  88. gljClassTreeObj.buildSheet();
  89. gljClassTreeObj.initTree(mixTree.comple);
  90. gljClassTreeObj.cache = gljClassTreeObj.tree.items;
  91. repositoryGljObj.updateParentNodeIds(gljClassTreeObj.cache, repositoryGljObj);
  92. gljClassTreeObj.initController(gljClassTreeObj.tree, gljClassTreeObj.sheet, gljClassTreeObj.setting.sheet);
  93. gljClassTreeObj.controller.showTreeData();
  94. gljClassTreeObj.sheet.setFormatter(-1, 0, '@');
  95. // gljItems
  96. repositoryGljObj.stdGljList = gljItems.stdGljs;
  97. // 兼容多单价情况
  98. for (const sGlj of repositoryGljObj.stdGljList) {
  99. if (sGlj.priceProperty && typeof sGlj.priceProperty.price1 !== 'undefined') {
  100. sGlj.basePrice = sGlj.priceProperty.price1;
  101. }
  102. }
  103. repositoryGljObj.sortGlj(repositoryGljObj.stdGljList);
  104. repositoryGljObj.setProp('isStd', true, repositoryGljObj.stdGljList);
  105. repositoryGljObj.complementaryGljList = gljItems.complementaryGljs;
  106. repositoryGljObj.sortGlj(repositoryGljObj.complementaryGljList);
  107. gljClassTreeObj.initSelection(gljClassTreeObj.tree.selected);
  108. }
  109. $.bootstrapLoading.end();
  110. });
  111. });
  112. })();