pay_list.ejs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <% include ./sub_menu.ejs %>
  2. <div class="panel-content">
  3. <div class="panel-title">
  4. <div class="title-main d-flex">
  5. <% include ./sub_mini_menu.ejs %>
  6. <div class="col-11 pl-0">
  7. <div class="btn-group group-tab">
  8. <a class="btn btn-sm btn-light account-page-size" href="/sp/<%- ctx.subProject.id %>/financial/pay/stage">支付列表</a>
  9. <a class="btn btn-sm btn-light active" href="javascript:void(0);">汇总列表</a>
  10. <a class="btn btn-sm btn-light" href="/sp/<%- ctx.subProject.id %>/financial/pay/tender">标段统计</a>
  11. </div>
  12. <div class="d-inline-block col-sm-2">
  13. <div class="input-group input-group-sm pr-1">
  14. <select class="form-control form-control-sm col-auto" id="company_select">
  15. <option value="0">筛选单位</option>
  16. <% for (const c of userCompanyList) { %>
  17. <option value="<%- c.id %>" <% if (c.name === company) { %>selected<% } %>><%- c.name %></option>
  18. <% } %>
  19. </select>
  20. </div>
  21. </div>
  22. <div class="d-inline-block col-sm-1 pl-0">
  23. <div class="input-group input-group-sm pr-1">
  24. <select class="form-control form-control-sm col-auto" id="order_select">
  25. <option selected="0">筛选期数</option>
  26. <% for (const uo of userOrderList) { %>
  27. <option value="<%- uo %>" <% if (uo === qi) { %>selected<% } %>>第<%- uo %>期</option>
  28. <% } %>>
  29. </select>
  30. </div>
  31. </div>
  32. <div class="d-inline-block col-sm-2 pl-0">
  33. <div class="input-group input-group-sm pr-1">
  34. <select class="form-control form-control-sm col-auto" id="tid_select">
  35. <option value="0">筛选标段</option>
  36. <% for (const t of tenders) { %>
  37. <option value="<%- t.id %>" <% if (t.id === tid) { %>selected<% } %> ><%- t.name %></option>
  38. <% } %>
  39. </select>
  40. </div>
  41. </div>
  42. <div class="d-inline-block">
  43. <div class="input-group input-group-sm pr-1">
  44. <div class="btn-group">
  45. <button type="button" class="btn btn-sm btn-light text-primary dropdown-toggle" data-toggle="dropdown" id="used_selected" data-value="<%- used %>">资金用途:<%- used ? used : '全部' %></button>
  46. <div class="dropdown-menu" aria-labelledby="used_selected" id="used_select">
  47. <% if (used !== null) { %><a class="dropdown-item to-log-link" data-val="" href="javascript:void(0);">全部</a><% } %>
  48. <% for (const u of usedList) { %>
  49. <% if (used !== u) { %>
  50. <a class="dropdown-item to-log-link" href="javascript:void(0)" data-val="<%- u %>"><%- u %></a>
  51. <% } %>
  52. <% } %>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. <div class="d-inline-block">
  58. <div class="input-group input-group-sm pr-1">
  59. <div class="btn-group">
  60. <button type="button" class="btn btn-sm btn-light text-primary dropdown-toggle" data-toggle="dropdown" id="status_selected" data-value="<%- status %>">审批状态:<% if (status !== 0) { %><%- filter.statusString[status] %>(<%- filter.count[status] %>)<% } else { %>全部<% } %></button>
  61. <div class="dropdown-menu" aria-labelledby="status_selected" id="status_select">
  62. <% if (status !== 0) { %><a class="dropdown-item to-log-link" data-val="0" href="javascript:void(0);">全部</a><% } %>
  63. <% for (const fs in filter.status) { %>
  64. <% const f = filter.status[fs]; %>
  65. <% if (f !== status) { %><a class="dropdown-item to-log-link" data-val="<%- f %>" href="javascript:void(0);"><%- filter.statusString[f] %>(<%- filter.count[f] %>)</a><% } %>
  66. <% } %>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. </div>
  72. <div class="d-inline-block ml-auto">
  73. <!-- <a href="#batch-sp" data-toggle="modal" data-target="#batch-sp" class="btn btn-success btn-sm pull-right mr-2">批量审批</a>-->
  74. </div>
  75. </div>
  76. </div>
  77. <div class="content-wrap">
  78. <div class="sjs-height-0" style="background-color: #fff">
  79. <table class="table table-bordered text-center">
  80. <thead>
  81. <tr>
  82. <th width="250px">申请单位</th>
  83. <th width="100px">关联期数</th>
  84. <th style="min-width: 150px;">标段名称</th>
  85. <th width="200px">支付编号</th>
  86. <th width="150px">申请时间</th>
  87. <th width="100px">申请人</th>
  88. <th width="200px">资金用途</th>
  89. <th width="300px">收款单位</th>
  90. <th width="150px">支付金额</th>
  91. <th width="200px">审批进度</th>
  92. <th width="150px">操作</th>
  93. </tr>
  94. </thead>
  95. <tbody id="pay-list">
  96. <% for (const pay of payList) { %>
  97. <tr class="text-center" data-tid="<%- pay.tid %>">
  98. <td class="text-left"><%- pay.stage ? pay.stage.company : '' %></td>
  99. <td class=""><% if (pay.stage) { %><a href="/sp/<%- ctx.subProject.id %>/financial/pay/stage/<%- pay.stage.id %>?from=list" class="account-page-size">第<%- pay.stage.order %>期</a><% } %></td>
  100. <td class="text-left"><%- pay.tenderName %></td>
  101. <td class=""><a href="/sp/<%- ctx.subProject.id %>/financial/pay/<%- pay.id %>/detail?from=list"><%- pay.code %></a></td>
  102. <td class=""><%- moment(pay.create_time).format('YYYY-MM-DD') %></td>
  103. <td class=""><%- pay.username %></td>
  104. <td class=""><%- pay.used %></td>
  105. <td class=""><%- pay.entities %></td>
  106. <td class="text-right"><%- pay.total_price %></td>
  107. <td class="text-left <%- auditConst.auditProgressClass[pay.status] %>">
  108. <% if (pay.status === auditConst.status.checked && pay.final_auditor_str) { %>
  109. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" c-id="<%- pay.id %>"><%- pay.final_auditor_str %></a>
  110. <% } else if (pay.curAuditors.length > 0) { %>
  111. <% if (pay.curAuditors[0].audit_type === auditType.key.common) { %>
  112. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" c-id="<%- pay.id %>"><%- pay.curAuditors[0].name %><%if (pay.curAuditors[0].role !== '' && pay.curAuditors[0].role !== null) { %>-<%- pay.curAuditors[0].role %><% } %></a>
  113. <% } else { %>
  114. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" c-id="<%- pay.id %>"><%- ctx.helper.transFormToChinese(pay.curAuditors[0].audit_order) + '审' %></a>
  115. <% } %>
  116. <% } %>
  117. <%- auditConst.auditProgress[pay.status] %>
  118. </td>
  119. <td>
  120. <% if (pay.status === auditConst.status.uncheck && pay.uid === ctx.session.sessionUser.accountId) { %>
  121. <a href="/sp/<%- ctx.subProject.id %>/financial/pay/<%- pay.id %>/detail?from=list" class="btn <%- auditConst.statusButtonClass[pay.status] %> btn-sm"><%- auditConst.statusButton[pay.status] %></a>
  122. <% } else if (pay.status === auditConst.status.checkNo && pay.curAuditors && pay.uid === ctx.session.sessionUser.accountId) { %>
  123. <a href="/sp/<%- ctx.subProject.id %>/financial/pay/<%- pay.id %>/detail?from=list" class="btn <%- auditConst.statusButtonClass[pay.status] %> btn-sm"><%- auditConst.statusButton[pay.status] %></a>
  124. <% } else if (pay.status === auditConst.status.checking && pay.curAuditors && pay.curAuditors.findIndex(x => { return x.aid === ctx.session.sessionUser.accountId; }) >= 0) { %>
  125. <% const curAudit = pay.curAuditors.find(x => { return x.aid === ctx.session.sessionUser.accountId; }); %>
  126. <% if (curAudit.status === auditConst.status.checking) { %>
  127. <a href="/sp/<%- ctx.subProject.id %>/financial/pay/<%- pay.id %>/detail?from=list" class="btn <%- auditConst.statusButtonClass[pay.status] %> btn-sm"><%- auditConst.statusButton[pay.status] %></a>
  128. <% } else { %>
  129. <span class="<%- auditConst.auditStringClass[curAudit.status] %>"><%- auditConst.auditString[curAudit.status] %></span>
  130. <% } %>
  131. <% } else { %>
  132. <span class="<%- auditConst.auditStringClass[pay.status] %>"><%- auditConst.auditString[pay.status] %></span>
  133. <% } %>
  134. <% if (pay.uid === ctx.session.sessionUser.accountId && (pay.status === auditConst.status.uncheck || pay.status === auditConst.status.checkNo)) { %><a href="javascript:void(0);" data-id="<%- pay.id %>" class="text-danger del-pay-btn">删除</a><% } %>
  135. </td>
  136. </tr>
  137. <% } %>
  138. </tbody>
  139. </table>
  140. <!--翻页-->
  141. <% include ../layout/page.ejs %>
  142. </div>
  143. </div>
  144. </div>
  145. <link href="/public/css/bootstrap/select2.min.css" rel="stylesheet" />
  146. <link rel="stylesheet" href="/public/css/bootstrap/select2-bootstrap4.min.css">
  147. <script src="/public/js/bootstrap/select2.min.js"></script>
  148. <style>
  149. .select2-container {
  150. /*display: inline-block!important;*/
  151. /*height: 27px;*/
  152. width: 100% !important;
  153. }
  154. .select2-container--bootstrap4 .select2-selection--single {
  155. height: calc(0.9em + .75rem) !important;
  156. }
  157. /*.select2-container--bootstrap4 .select2-selection {*/
  158. /* background-color: #f8f9fa;*/
  159. /* !*border-color: #f8f9fa;*!*/
  160. /* border: 1px solid #f8f9fa;*/
  161. /*}*/
  162. /*.select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered:focus{*/
  163. /* box-shadow: 0 0 0 0.2rem rgba(216,217,219,.5);*/
  164. /*}*/
  165. /*.select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered:hover {*/
  166. /* background-color: #e2e6ea;*/
  167. /* border-color: #dae0e5;*/
  168. /*}*/
  169. .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered {
  170. line-height: calc(0.9em + .75rem);
  171. /*color: #007bff!important;*/
  172. border-radius: 0.2rem;
  173. /*background-color: #f8f9fa;*/
  174. /*border-color: #f8f9fa;*/
  175. }
  176. .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow b {
  177. border-color: #007bff transparent transparent transparent;
  178. border-width: 4px 3.7px 0;
  179. }
  180. .select2-search--dropdown .select2-search__field {
  181. padding: 0.175rem 0.5rem;
  182. }
  183. </style>
  184. <script>
  185. const user_id = <%- ctx.session.sessionUser.accountId %>;
  186. const is_admin = <%- ctx.session.sessionUser.is_admin %>;
  187. const category = JSON.parse(unescape('<%- escape(JSON.stringify(categoryData)) %>'));
  188. const tenders = JSON.parse(unescape('<%- escape(JSON.stringify(tenders)) %>'));
  189. const userCompanyList = JSON.parse(unescape('<%- escape(JSON.stringify(userCompanyList)) %>'));
  190. const fptReportTids = JSON.parse(unescape('<%- escape(JSON.stringify(fptReportTids)) %>'));
  191. const auditConst = JSON.parse(unescape('<%- escape(JSON.stringify(auditConst)) %>'));
  192. const auditType = JSON.parse(unescape('<%- escape(JSON.stringify(auditType)) %>'));
  193. const selfCategoryLevel = '';
  194. const pid = '<%- ctx.session.sessionProject.id %>';
  195. const subProid = '<%- ctx.subProject.id %>';
  196. const uphlname = 'user_' + user_id + '_pro_' + pid + '_sub_' + subProid + '_pay_category_hide_list';
  197. </script>