index.ejs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. <div>
  6. <div class="d-inline-block">
  7. <div class="btn-group group-tab">
  8. <a class="btn btn-sm btn-light <%- type === 0 ? 'active' : '' %>" href="/tender/<%- ctx.tender.id %>/advance">
  9. 开工预付款<%- type === 0 && latestOrder ? `(第${latestOrder.order}期)` : '' %>
  10. </a>
  11. <a class="btn btn-sm btn-light <%- type === 1 ? 'active' : '' %>" href="/tender/<%- ctx.tender.id %>/advance/material">
  12. 材料预付款<%- type === 1 && latestOrder ? `(第${latestOrder.order}期)` : '' %>
  13. </a>
  14. </div>
  15. </div>
  16. <div class="d-inline-block ml-2">
  17. 签约<%- type === 0 ? '开工' : '材料' %>预付款
  18. <b><%- ctx.helper.formatMoney(advancePayTotal, ',', parseFloat(advancePayTotal).toString().split('.')[1] && parseFloat(advancePayTotal).toString().split('.')[1].length || 0) %></b> 元
  19. </div>
  20. <div class="d-inline-block ml-4" style="width:300px">
  21. <div class="progress">
  22. <div class="progress-bar bg-success" style="width: <%- progress.p_ratio%>%;" data-placement="bottom"
  23. 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>
  24. <div class="progress-bar bg-info" style="width:<%- progress.c_ratio%>%;" data-placement="bottom"
  25. 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>
  26. <div class="progress-bar bg-gray" style="width:<%- progress.s_ratio%>%;" data-placement="bottom"
  27. 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>
  28. </div>
  29. </div>
  30. </div>
  31. <div class="ml-auto">
  32. <% if(showAddBtn) { %>
  33. <form action="<%- preUrl %>" method="POST">
  34. <input type="hidden" name="_csrf" value="<%= ctx.csrf %>">
  35. <button type="submit" class="btn btn-primary btn-sm">开始新一期</button>
  36. </form>
  37. <!-- <a id="advance_add" href="" class="btn btn-primary btn-sm pull-right"></a> -->
  38. <% } %>
  39. </div>
  40. </div>
  41. </div>
  42. <div class="content-wrap">
  43. <div class="c-body">
  44. <div class="sjs-height-0" >
  45. <table class="table table-bordered">
  46. <thead>
  47. <tr>
  48. <th>期数</th>
  49. <th class="text-center" width="10%">支付比例</th>
  50. <th class="text-center" width="15%">本期金额</th>
  51. <th class="text-center" width="15%">截止上期</th>
  52. <th class="text-center" width="15%">截止本期金额</th>
  53. <th class="text-center">附件</th>
  54. <th class="text-center">进度</th>
  55. <th class="text-center" width="100">操作</th>
  56. </tr>
  57. </thead>
  58. <tbody id="advanceList">
  59. <% advanceList.forEach(item => { %>
  60. <tr>
  61. <td><a href="/tender/<%- ctx.tender.id %>/advance/<%- item.id %>/detail" data-id="<%- item.id %>">第<%- item.order %>期</a></td>
  62. <td><%- item.pay_ratio %>%</td>
  63. <td class="text-right"><%- item.cur_amount %></td>
  64. <td class="text-right"><%- item.prev_amount %></td>
  65. <td class="text-right"><%- item.prev_total_amount %></td>
  66. <td><a class="btn btn-sm" href="#file" data-toggle="modal" data-target="#file" data-id="<%- item.id %>"><i
  67. class="fa fa-paperclip"></i> <%- item.fileList.length %></a></td>
  68. <td>
  69. <% if (item.curAuditor) { %>
  70. <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>
  71. <% } %>
  72. <span class="<%- auditConst.statusClass[item.status] %>">
  73. <%- auditConst.statusString[item.status] %>
  74. </span>
  75. </td>
  76. <td>
  77. <% if((item.status === auditConst.status.uncheck || item.status === auditConst.status.checkNo) && item.uid === ctx.session.sessionUser.accountId) { %>
  78. <a href="/tender/<%- ctx.tender.id %>/advance/<%- item.id %>/detail" class="btn btn-primary btn-sm">编辑</a>
  79. <% } else if(item.status === auditConst.status.checking && item.curAuditor.audit_id === ctx.session.sessionUser.accountId) {%>
  80. <a href="/tender/<%- ctx.tender.id %>/advance/<%- item.id %>/detail" class="btn btn-success btn-sm">审批</a>
  81. <% } else {%>
  82. <span class="<%- auditConst.statusClass[item.status] %>"><%- auditConst.statusString[item.status] %></span>
  83. <% } %>
  84. </td>
  85. </tr>
  86. <% }) %>
  87. </tbody>
  88. </table>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. <script>
  95. const type = parseInt('<%- type %>');
  96. const auditConst = JSON.parse('<%- JSON.stringify(auditConst) %>');
  97. const advanceList = JSON.parse('<%- JSON.stringify(advanceList) %>');
  98. const decimal = parseInt('<%- decimal %>');
  99. const advancePayTotal = parseFloat('<%- advancePayTotal %>');
  100. </script>