project_info.js 5.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /**
  2. * Created by Mai on 2017/6/21.
  3. */
  4. var projectInfoObj = {
  5. // 头部同时编辑的用户头像
  6. handleAvatarList: function (users) {
  7. const opener = projectObj.project.projectInfo.opener;
  8. if (opener) {
  9. users = users.filter(user => user._id !== opener._id);
  10. }
  11. const avatarListHtml = users.reduce((acc, user) => {
  12. const avatarSpan = SHARE_TO.getAvatarHTML(user.mobile, user.real_name);
  13. const li =
  14. `<li data-toggle="tooltip" data-placement="bottom" title="${user.real_name}" data-original-title="${user.real_name}">
  15. ${avatarSpan}
  16. </li>`
  17. return acc += li;
  18. }, '');
  19. $('#avatar-list').html(avatarListHtml);
  20. $('#avatar-list [data-toggle="tooltip"]').tooltip();
  21. },
  22. getReceiveInfo: function (projectReadOnly, projectCooperate, owner) {
  23. if (!projectReadOnly && !projectCooperate) {
  24. return '';
  25. }
  26. const action = projectCooperate ? '可编辑' : '只能查看';
  27. const ownerName = owner && owner.real_name || '';
  28. return `
  29. <span class="pl-2" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="来自 ${ownerName} 的分享">
  30. <a href="javascript:;" class="btn btn-xs btn-primary default-cursor"><i class="fa fa-share-alt"></i> ${action}</a>
  31. </span>`;
  32. },
  33. getShareButton: function (projectReadOnly, projectCooperate, shareTip) {
  34. if (projectReadOnly || projectCooperate) {
  35. return '';
  36. }
  37. return `
  38. <span id="share-tip" class="ml-2" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="${shareTip}">
  39. <a id="init-share" href="javascript:;" class="btn btn-xs btn-primary"><i class="fa fa-share-alt"></i> 分享</a>
  40. </span>`;
  41. },
  42. getFullPathHtml: function (proj) {
  43. let fullPath = [], i, pm = '<span class="text-truncate"><a href="/pm">项目管理</a></span>', angleRight = '<span class="text-truncate"><i class="fa fa-angle-right fa-fw"></i></span>';
  44. if (proj) {
  45. let pathArr = proj.fullPath;
  46. let projectName = pathArr[pathArr.length - 2] || '',
  47. folderName = pathArr[pathArr.length - 3] || '';
  48. const receiveInfo = this.getReceiveInfo(projectReadOnly, projectCooperate, proj.owner);
  49. const shareButton = this.getShareButton(projectReadOnly, projectCooperate, proj.shareTip);
  50. let newHtml = ` <span data-toggle="tooltip" data-placement="bottom" data-original-title="${folderName}"><i class="fa fa-folder-open-o"></i>...</span>
  51. <span class="text-muted px-1">\</span>
  52. <span data-toggle="tooltip" data-placement="bottom" data-original-title="${projectName}"><i class="fa fa-cubes"></i>...</span>
  53. <span class="text-muted px-1">\</span>
  54. <span><i class="fa fa-sticky-note-o"></i></span>
  55. <span class="text-truncate" data-toggle="tooltip" data-placement="bottom" data-original-title="${proj.name}">&nbsp;${proj.name}</span>
  56. ${receiveInfo}${shareButton}
  57. <span>
  58. <ul class="avatar-list mb-0" id="avatar-list">
  59. </ul>
  60. </span>
  61. `;
  62. fullPath.push(newHtml);
  63. }
  64. return fullPath.join('');
  65. },
  66. showProjectInfo: function (data) {
  67. if (data) {
  68. //如果是工程量清单项目,则显示导入功能
  69. if (data.property.valuationType === 'ration') {
  70. $('#importSpan').show();
  71. }
  72. if (!data.engineeringInfo.billsGuidance_lib || data.engineeringInfo.billsGuidance_lib.length === 0) {
  73. $('#stdBillsGuidanceTab').addClass('disabled');
  74. } else {
  75. //打开预算项目时,右侧“清单规则”显示为“项目表”,打开工程量清单项目时,右侧“清单规则”显示为“清单范本”。
  76. $('#stdBillsGuidanceTab').text(data.property.valuationType === 'bill' ? '项目表' : '清单范本');
  77. }
  78. //init decimal
  79. setDecimal(decimalObj, data.property.decimal);
  80. billsQuanDecimal.datas = data.property.billsQuantityDecimal || [billsDecimalView.angleDecimal];
  81. basicInfoView.orgDatas = data.property.basicInformation ? basicInfoView.toViewDatas(data.property.basicInformation) : [];
  82. projFeatureView.orgDatas = data.property.projectFeature ? projFeatureView.toViewDatas(data.property.projectFeature) : [];
  83. $('#fullpath').html(this.getFullPathHtml(data));
  84. // 分享给
  85. $('#init-share').click(() => SHARE_TO.initModal(projectObj.project.ID()));
  86. SHARE_TO.handleEventListener();
  87. $("[data-toggle='tooltip']").tooltip();
  88. if (data.property.valuationType == 'bill') {
  89. $("#tab_tender_price").css('display', 'none');
  90. } else {
  91. $("#about-calc").css('display', 'none');
  92. };
  93. }
  94. }
  95. };