apply.ejs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <% include ../tender/tender_sub_menu.ejs %>
  2. <div class="panel-content">
  3. <div class="panel-title">
  4. <div class="title-main d-flex">
  5. <% include ../tender/tender_sub_mini_menu.ejs %>
  6. <div>
  7. <div class="d-inline-block">
  8. <div class="btn-group" id="sort-dropdown">
  9. <button type="button" class="btn btn-sm btn-light text-primary dropdown-toggle" data-toggle="dropdown" id="bpaixu">排序:创建时间</button>
  10. <div class="dropdown-menu" aria-labelledby="bpaixu">
  11. <ul class="list-unstyled px-3 mb-0" id="sort-radio">
  12. <li class="mb-2">
  13. <div class="custom-control custom-radio">
  14. <input type="radio" class="custom-control-input" id="pai1" name="paizhi" value="time" checked="">
  15. <label class="custom-control-label" for="pai1">创建时间</label>
  16. </div>
  17. </li>
  18. <li class="mb-2">
  19. <div class="custom-control custom-radio">
  20. <input type="radio" class="custom-control-input" id="pai3" name="paizhi" value="code">
  21. <label class="custom-control-label" for="pai3">变更申请编号</label>
  22. </div>
  23. </li>
  24. </ul>
  25. <ul class="list-unstyled px-3 pt-2 mb-0 border-top" id="order-radio">
  26. <li class="mb-2">
  27. <div class="custom-control custom-radio">
  28. <input type="radio" class="custom-control-input" id="pdown" name="paixu" value="desc" checked="">
  29. <label class="custom-control-label" for="pdown">降序</label>
  30. </div>
  31. </li>
  32. <li class="mb-2">
  33. <div class="custom-control custom-radio">
  34. <input type="radio" class="custom-control-input" id="pup" name="paixu" value="asc">
  35. <label class="custom-control-label" for="pup">升序</label>
  36. </div>
  37. </li>
  38. </ul>
  39. </div>
  40. </div>
  41. </div>
  42. <div class="d-inline-block">
  43. <div class="btn-group">
  44. <button type="button" class="btn btn-sm btn-light text-primary dropdown-toggle" data-toggle="dropdown" id="zhankai"><% if (status !== 0) { %><%- filter.statusString[status] %>(<%- filter.count[status] %>)<% } else { %>全部<% } %></button>
  45. <div class="dropdown-menu" aria-labelledby="zhankai" id="status_select">
  46. <% if (status !== 0) { %><a class="dropdown-item" data-val="0" href="javascript:void(0);">全部</a><% } %>
  47. <% for (const fs in filter.status) { %>
  48. <% const f = filter.status[fs]; %>
  49. <% if (f !== status) { %><a class="dropdown-item" data-val="<%- f %>" href="javascript:void(0);"><%- filter.statusString[f] %>(<%- filter.count[f] %>)</a><% } %>
  50. <% } %>
  51. </div>
  52. </div>
  53. </div>
  54. <div class="d-inline-block">
  55. <span class="ml-3">本页小计:<%- page_total %>元</span><span class="ml-3">合计:<%- tp %>元</span>
  56. </div>
  57. </div>
  58. <% if (tender.user_id === uid) { %>
  59. <div class="ml-auto">
  60. <a href="#add-bj" data-toggle="modal" data-target="#add-bj" class="btn btn-sm btn-primary pull-right ml-1">新建变更申请</a>
  61. <a href="#setting" data-toggle="modal" data-target="#setting" class="btn btn-sm btn-outline-primary pull-right ml-1"><i class="fa fa-cog"></i></a>
  62. </div>
  63. <% } %>
  64. </div>
  65. </div>
  66. <div class="content-wrap">
  67. <div class="c-body">
  68. <div class="sjs-height-0">
  69. <table class="table table-bordered">
  70. <thead class="text-center">
  71. <tr>
  72. <th width="13%" id="sort_change">变更申请编号</th><th width="15%">变更工程名称</th>
  73. <th width="10%">变更金额</th><th width="15%">变更立项书</th><th width="13%">变更通知书</th>
  74. <th width="7%">通知书发出人</th><th width="7%">审批状态</th><th width="13%">审批进度</th><th width="5%">操作</th>
  75. </tr>
  76. </thead>
  77. <tbody id="changeList">
  78. <% for (const c of changes) { %>
  79. <tr><td><a href="/tender/<%- tender.id %>/change/apply/<%- c.id %>/information"><%- c.code %></a></td><td><%- c.name %></td>
  80. <td style="text-align: right"><%- c.total_price %></td>
  81. <td><% if (c.project_code) { %><% if (ctx.helper._.find(changeProjectList, { code: c.project_code })) { %><a href="/tender/<%- tender.id %>/change/project/<%- ctx.helper._.find(changeProjectList, { code: c.project_code }).id %>/information" target="_blank"><%- c.project_code %></a><% } else { %><%- c.project_code %><% } %><% } %></td>
  82. <td><% if (c.notice_code) { %><a href="/tender/<%- tender.id %>/change/apply/<%- c.id %>/information/notice"><%- c.notice_code %></a><% } %></td>
  83. <td><%- c.account_name %></td>
  84. <td class="text-center">
  85. <% if (c.status === auditConst.status.uncheck && c.uid === ctx.session.sessionUser.accountId) { %>
  86. <a href="/tender/<%- tender.id %>/change/apply/<%- c.id %>/information" class="btn <%- auditConst.statusButtonClass[c.status] %> btn-sm"><%- auditConst.statusButton[c.status] %></a>
  87. <% } else if ((c.status === auditConst.status.checkNo || c.status === auditConst.status.revise) && c.curAuditors && c.aid === ctx.session.sessionUser.accountId) { %>
  88. <a href="/tender/<%- tender.id %>/change/apply/<%- c.id %>/information" class="btn <%- auditConst.statusButtonClass[c.status] %> btn-sm"><%- auditConst.statusButton[c.status] %></a>
  89. <% } else if (c.status === auditConst.status.checking && c.curAuditors && c.curAuditors.findIndex(x => { return x.aid === ctx.session.sessionUser.accountId; }) >= 0) { %>
  90. <% const curAudit = c.curAuditors.find(x => { return x.aid === ctx.session.sessionUser.accountId; }); %>
  91. <% if (curAudit.status === auditConst.status.checking) { %>
  92. <a href="/tender/<%- tender.id %>/change/apply/<%- c.id %>/information" class="btn <%- auditConst.statusButtonClass[c.status] %> btn-sm"><%- auditConst.statusButton[c.status] %></a>
  93. <% } else { %>
  94. <span class="<%- auditConst.auditStringClass[curAudit.status] %>"><%- auditConst.auditString[curAudit.status] %></span>
  95. <% } %>
  96. <% } else { %>
  97. <span class="<%- auditConst.auditStringClass[c.status] %>"><%- auditConst.auditString[c.status] %></span>
  98. <% } %>
  99. </td>
  100. <td class="<%- auditConst.auditProgressClass[c.status] %>">
  101. <% if (c.status === auditConst.status.checked && c.final_auditor_str) { %>
  102. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" c-id="<%- c.id %>"><%- c.final_auditor_str %></a>
  103. <% } else if (c.curAuditors.length > 0) { %>
  104. <% if (c.curAuditors[0].audit_type === auditType.key.common) { %>
  105. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" c-id="<%- c.id %>"><%- c.curAuditors[0].name %><%if (c.curAuditors[0].role !== '' && c.curAuditors[0].role !== null) { %>-<%- c.curAuditors[0].role %><% } %></a>
  106. <% } else { %>
  107. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" c-id="<%- c.id %>"><%- ctx.helper.transFormToChinese(c.curAuditors[0].audit_order) + '审' %></a>
  108. <% } %>
  109. <% } %>
  110. <%- auditConst.auditProgress[c.status] %>
  111. </td>
  112. <td>
  113. <% if (c.uid === uid && (c.status === auditConst.status.uncheck || c.status === auditConst.status.checkNo)) { %><a href="#del-bg" caid="<%= c.id %>" data-toggle="modal" data-target="#del-bg" class="btn btn-outline-danger btn-sm delete-caid-modal">删除</a><% } %>
  114. </td>
  115. </tr>
  116. <% } %>
  117. </tbody>
  118. </table>
  119. <!--翻页-->
  120. <% include ../layout/page.ejs %>
  121. </div>
  122. </div>
  123. </div>
  124. </div>
  125. <script>
  126. autoFlashHeight();
  127. const tenderId = parseInt('<%- tender.id %>');
  128. const tenderName = JSON.parse(unescape('<%- escape(JSON.stringify(tender.name)) %>'));
  129. const dealCode = JSON.parse(unescape('<%- escape(JSON.stringify(dealCode)) %>'));
  130. const ruleConst = JSON.parse(unescape('<%- escape(JSON.stringify(ruleConst)) %>'));
  131. let codeRule = JSON.parse(unescape('<%- escape(JSON.stringify(codeRule)) %>'));
  132. let connectorRule = '<%- c_connector %>';
  133. const cRuleFirst = parseInt('<%- c_rule_first %>');
  134. const ruleType = parseInt('<%- ruleType %>');
  135. const openChangeProject = parseInt('<%- ctx.subProject.page_show.openChangeProject %>');
  136. const rulesType = '<%- rule_type %>';
  137. const auditType = JSON.parse(unescape('<%- escape(JSON.stringify(auditType)) %>'));
  138. const auditConst = JSON.parse(unescape('<%- escape(JSON.stringify(auditConst)) %>'));
  139. const changeProjectList = JSON.parse(unescape('<%- escape(JSON.stringify(changeProjectList)) %>'));
  140. </script>