index.ejs 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <% include ../tender/tender_sub_menu.ejs %>
  2. <div class="panel-content">
  3. <div class="panel-title">
  4. <div class="title-main d-flex justify-content-between">
  5. <% include ../tender/tender_sub_mini_menu.ejs %>
  6. <div>
  7. <div class="d-inline-block">
  8. <div class="btn-group group-tab">
  9. <a class="btn btn-sm btn-light <%- type === 0 ? 'active' : '' %>" href="/tender/<%- ctx.tender.id %>/advance/start">
  10. 开工预付款<%- type === 0 && latestOrder ? `(第${latestOrder.order}期)` : '' %>
  11. </a>
  12. <a class="btn btn-sm btn-light <%- type === 1 ? 'active' : '' %>" href="/tender/<%- ctx.tender.id %>/advance/material">
  13. 材料预付款<%- type === 1 && latestOrder ? `(第${latestOrder.order}期)` : '' %>
  14. </a>
  15. <a class="btn btn-sm btn-light <%- type === 2 ? 'active' : '' %>" href="/tender/<%- ctx.tender.id %>/advance/safe">
  16. 安全生产费预付款<%- type === 2 && latestOrder ? `(第${latestOrder.order}期)` : '' %>
  17. </a>
  18. <a class="btn btn-sm btn-light <%- type === 3 ? 'active' : '' %>" href="/tender/<%- ctx.tender.id %>/advance/dust">
  19. 扬尘污染费预付款<%- type === 3 && latestOrder ? `(第${latestOrder.order}期)` : '' %>
  20. </a>
  21. </div>
  22. </div>
  23. <div class="d-inline-block ml-2">
  24. <%- typeColMap[type].text%>
  25. <b><%- ctx.helper.formatMoney(advancePayTotal, ',', parseFloat(advancePayTotal).toString().split('.')[1] && parseFloat(advancePayTotal).toString().split('.')[1].length || 0) %></b> 元
  26. </div>
  27. <div class="d-inline-block ml-4" style="width:300px">
  28. <div class="progress">
  29. <div class="progress-bar bg-success" style="width: <%- progress.p_ratio%>%;" data-placement="bottom"
  30. data-toggle="tooltip" data-original-title="截止上期金额:¥<%- ctx.helper.formatMoney(progress.p_amount, ',', parseFloat(progress.p_amount).toString().split('.')[1] && parseFloat(progress.p_amount).toString().split('.')[1].length || 0) %>"><%- progress.p_ratio.toFixed() %>%</div>
  31. <div class="progress-bar bg-info" style="width:<%- progress.c_ratio%>%;" data-placement="bottom"
  32. data-toggle="tooltip" data-original-title="本期金额:¥<%- ctx.helper.formatMoney(progress.c_amount, ',', progress.c_amount && parseFloat(progress.c_amount).toString().split('.')[1] && parseFloat(progress.c_amount).toString().split('.')[1].length || 0) %>"><%- progress.c_ratio.toFixed() %>%</div>
  33. <div class="progress-bar bg-gray" style="width:<%- progress.s_ratio%>%;" data-placement="bottom"
  34. data-toggle="tooltip" data-original-title="未完成:¥<%- ctx.helper.formatMoney(progress.s_amount, ',', parseFloat(progress.s_amount).toString().split('.')[1] && parseFloat(progress.s_amount).toString().split('.')[1].length || 0) %>"><%- progress.s_ratio.toFixed() %>%</div>
  35. </div>
  36. </div>
  37. </div>
  38. <div class="ml-auto">
  39. <% if(showAddBtn) { %>
  40. <form action="<%- preUrl %>" method="POST">
  41. <input type="hidden" name="_csrf_j" value="<%= ctx.csrf %>">
  42. <button type="submit" class="btn btn-primary btn-sm">开始新一期</button>
  43. </form>
  44. <!-- <a id="advance_add" href="" class="btn btn-primary btn-sm pull-right"></a> -->
  45. <% } %>
  46. </div>
  47. </div>
  48. </div>
  49. <div class="content-wrap">
  50. <div class="c-body">
  51. <div class="sjs-height-0" >
  52. <table class="table table-bordered">
  53. <thead>
  54. <tr>
  55. <th>期数</th>
  56. <th class="text-center" width="10%">支付比例</th>
  57. <th class="text-center" width="15%">本期金额</th>
  58. <th class="text-center" width="15%">截止上期</th>
  59. <th class="text-center" width="15%">截止本期金额</th>
  60. <th class="text-center">附件</th>
  61. <th class="text-center">进度</th>
  62. <th class="text-center" width="150">操作</th>
  63. </tr>
  64. </thead>
  65. <tbody id="advanceList">
  66. <% advanceList.forEach((item, idx) => { %>
  67. <tr>
  68. <td><a href="/tender/<%- ctx.tender.id %>/advance/<%- item.id %>/detail" data-id="<%- item.id %>">第<%- item.order %>期</a></td>
  69. <td><%- item.pay_ratio %>%</td>
  70. <td class="text-right"><%- item.cur_amount %></td>
  71. <td class="text-right"><%- item.prev_amount %></td>
  72. <td class="text-right"><%- item.prev_total_amount %></td>
  73. <td><a class="btn btn-sm" href="#file" data-toggle="modal" data-target="#file" data-id="<%- item.id %>"><i
  74. class="fa fa-paperclip"></i> <%- item.fileList.length %></a></td>
  75. <td>
  76. <% if (item.curAuditor) { %>
  77. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" data-vid="<%- item.id %>"><%- item.curAuditor.name %><%if (item.curAuditor.role !== '' && item.curAuditor.role !== null) { %>-<%- item.curAuditor.role %><% } %></a>
  78. <% } %>
  79. <span class="<%- auditConst.statusClass[item.status] %>">
  80. <%- auditConst.statusString[item.status] %>
  81. </span>
  82. </td>
  83. <td>
  84. <% if((item.status === auditConst.status.uncheck || item.status === auditConst.status.checkNo) && item.uid === ctx.session.sessionUser.accountId) { %>
  85. <a href="/tender/<%- ctx.tender.id %>/advance/<%- item.id %>/detail" class="btn btn-primary btn-sm">编辑</a>
  86. <a href="del-qi" class="btn btn-outline-danger btn-sm ml-1" data-toggle="modal" data-target="#del-qi" data-id="<%- item.id %>" data-order="<%- item.order %>">删除</a>
  87. <% } else if(item.status === auditConst.status.checking && item.curAuditor.audit_id === ctx.session.sessionUser.accountId) {%>
  88. <a href="/tender/<%- ctx.tender.id %>/advance/<%- item.id %>/detail" class="btn btn-success btn-sm">审批</a>
  89. <% } else {%>
  90. <span class="<%- auditConst.statusClass[item.status] %>"><%- auditConst.statusString[item.status] %></span>
  91. <% } %>
  92. <% if (item.status === auditConst.status.checked && !!ctx.session.sessionUser.is_admin && item.order === advanceList.length) { %>
  93. <a href="del-qi" class="btn btn-outline-danger btn-sm ml-1" data-toggle="modal" data-target="#del-qi" data-id="<%- item.id %>" data-order="<%- item.order %>">删除</a>
  94. <% } %>
  95. </td>
  96. </tr>
  97. <% }) %>
  98. </tbody>
  99. </table>
  100. </div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <script>
  106. const type = parseInt('<%- type %>');
  107. const auditConst = JSON.parse('<%- JSON.stringify(auditConst) %>');
  108. const advanceList = JSON.parse('<%- JSON.stringify(advanceList) %>');
  109. const decimal = parseInt('<%- decimal %>');
  110. const advancePayTotal = parseFloat('<%- advancePayTotal %>');
  111. </script>