project_info.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. /**
  2. * Created by Mai on 2017/6/21.
  3. */
  4. const {
  5. ValuationType: { BUDGET, BOQ },
  6. } = window.commonConstants;
  7. var projectInfoObj = {
  8. // 头部同时编辑的用户头像
  9. handleAvatarList: function (users) {
  10. const opener = projectObj.project.projectInfo.opener;
  11. if (opener) {
  12. users = users.filter((user) => user._id !== opener._id);
  13. }
  14. const avatarListHtml = users.reduce((acc, user) => {
  15. const avatarSpan = SHARE_TO.getAvatarHTML(user.mobile, user.real_name);
  16. const li = `<li data-toggle="tooltip" data-placement="bottom" title="${user.real_name}" data-original-title="${user.real_name}">
  17. ${avatarSpan}
  18. </li>`;
  19. return (acc += li);
  20. }, "");
  21. $("#avatar-list").html(avatarListHtml);
  22. $('#avatar-list [data-toggle="tooltip"]').tooltip();
  23. },
  24. getReceiveInfo: function (projectReadOnly, projectCooperate, owner) {
  25. if (!projectReadOnly && !projectCooperate) {
  26. return "";
  27. }
  28. const action = projectCooperate ? "可编辑" : "只能查看";
  29. const ownerName = (owner && owner.real_name) || "";
  30. return `
  31. <span class="pl-2" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="来自 ${ownerName} 的分享">
  32. <a href="javascript:;" class="btn btn-xs btn-primary default-cursor"><i class="fa fa-share-alt"></i> ${action}</a>
  33. </span>`;
  34. },
  35. getShareButton: function (projectReadOnly, projectCooperate, shareTip) {
  36. if (projectReadOnly || projectCooperate) {
  37. return "";
  38. }
  39. return `
  40. <span id="share-tip" class="ml-2" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="${shareTip}">
  41. <a id="init-share" href="javascript:;" class="btn btn-xs btn-primary"><i class="fa fa-share-alt"></i> 分享</a>
  42. </span>`;
  43. },
  44. getFullPathHtml: function (proj) {
  45. let fullPath = [],
  46. i,
  47. pm = '<span class="text-truncate"><a href="/pm">项目管理</a></span>',
  48. angleRight = '<span class="text-truncate"><i class="fa fa-angle-right fa-fw"></i></span>';
  49. if (proj) {
  50. let pathArr = proj.fullPath;
  51. let projectName = pathArr[pathArr.length - 2] || "",
  52. folderName = pathArr[pathArr.length - 3] || "";
  53. const receiveInfo = this.getReceiveInfo(projectReadOnly, projectCooperate, proj.owner);
  54. const shareButton = this.getShareButton(projectReadOnly, projectCooperate, proj.shareTip);
  55. let newHtml = ` <span data-toggle="tooltip" data-placement="bottom" data-original-title="${folderName}"><i class="fa fa-folder-open-o"></i>...</span>
  56. <span class="text-muted px-1">\</span>
  57. <span data-toggle="tooltip" data-placement="bottom" data-original-title="${projectName}"><i class="fa fa-cubes"></i>...</span>
  58. <span class="text-muted px-1">\</span>
  59. <span><i class="fa fa-sticky-note-o"></i></span>
  60. <span class="text-truncate" data-toggle="tooltip" data-placement="bottom" data-original-title="${proj.name}">&nbsp;${proj.name}</span>
  61. ${receiveInfo}${shareButton}
  62. <span>
  63. <ul class="avatar-list mb-0" id="avatar-list">
  64. </ul>
  65. </span>
  66. `;
  67. fullPath.push(newHtml);
  68. }
  69. return fullPath.join("");
  70. },
  71. showProjectInfo: function (data) {
  72. if (data) {
  73. //如果是工程量清单项目,则显示导入、分摊功能
  74. if (data.property.valuationType === "ration" || data.property.valuationType === "bill_budget") {
  75. $("#importSpan").show();
  76. $("#tab_divide").show();
  77. }
  78. //打开预算项目时,右侧“清单规则”显示为“项目表”,打开工程量清单项目时,右侧“清单规则”显示为“清单范本”。
  79. $("#stdBillsGuidanceTab").text(data.property.valuationType === BOQ ? "清单范本" : "项目表");
  80. //init decimal
  81. setDecimal(decimalObj, data.property.decimal);
  82. billsQuanDecimal.datas = data.property.billsQuantityDecimal || [billsDecimalView.angleDecimal];
  83. // 建设项目为工程量清单项目显示基本信息,预算项目不显示
  84. if (data.property.projectValuationType !== BOQ) {
  85. // 隐藏基本信息
  86. $("#tab_poj-settings-basicInfo").removeClass("active");
  87. $("#tab_poj-settings-basicInfo").hide();
  88. $("#poj-settings-basicInfo").removeClass("show");
  89. $("#poj-settings-basicInfo").removeClass("active");
  90. // 显示工程特征
  91. $("#tab_poj-settings-projFeature").addClass("active");
  92. $("#poj-settings-projFeature").addClass("show");
  93. $("#poj-settings-projFeature").addClass("active");
  94. }
  95. basicInfoView.orgDatas = data.property.basicInformation ? basicInfoView.toViewDatas(data.property.basicInformation) : [];
  96. projFeatureView.orgDatas = data.property.projectFeature ? projFeatureView.toViewDatas(data.property.projectFeature) : [];
  97. $("#fullpath").html(this.getFullPathHtml(data));
  98. // 分享给
  99. $("#init-share").click(() => {
  100. SHARE_TO.initModal(SHARE_TO.Mode.PROJECT, projectObj.project.ID());
  101. $("#share-tip").tooltip("hide");
  102. });
  103. SHARE_TO.handleEventListener();
  104. $("[data-toggle='tooltip']").tooltip();
  105. if (data.property.valuationType !== BOQ && data.property.valuationType !== "bill_budget") {
  106. $("#tab_tender_price").css("display", "none");
  107. } /* else {
  108. $("#about-calc").css('display', 'none');
  109. }; */
  110. }
  111. },
  112. // 刷新总造价显示span
  113. refreshTotalPriceSpan: function () {
  114. const totalNode = projectObj.project.mainTree.roots.find((node) => node.getFlag() === fixedFlag.TOTAL_COST);
  115. const price = totalNode ? calcTools.getFee(totalNode, "common.tenderTotalFee") : "0";
  116. const standardPrice = commonUtil.standardNumber(price);
  117. const text = `总造价:${standardPrice} 元`;
  118. $("#total-price-span").text(text);
  119. },
  120. };