modal.ejs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. <!--弹出新建台帐修订-->
  2. <div class="modal fade" id="add-bg" data-backdrop="static">
  3. <form class="modal-dialog" role="document" action="<%- preUrl + '/revise/add' %>" method="post" onsubmit="return dbClick();">
  4. <div class="modal-content">
  5. <div class="modal-header">
  6. <h5 class="modal-title">新建修订</h5>
  7. </div>
  8. <div class="modal-body">
  9. <h5>创建修订后,本期计量将暂时锁定,锁定后本期计量无法计量和上报,需修订完成后,才能解锁。</h5>
  10. </div>
  11. <div class="modal-footer">
  12. <input type="hidden" name="_csrf" value="<%= ctx.csrf %>" />
  13. <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
  14. <button id="add-ok" type="submit" class="btn btn-primary btn-sm">确定新建</button>
  15. </div>
  16. </div>
  17. </form>
  18. </div>
  19. <!--审批流程/结果-->
  20. <div class="modal fade" id="sp-list" data-backdrop="static">
  21. <div class="modal-dialog modal-lg" role="document">
  22. <div class="modal-content">
  23. <div class="modal-header">
  24. <h5 class="modal-title">审批流程</h5>
  25. </div>
  26. <div class="modal-body">
  27. <div class="row">
  28. <div class="col-4">
  29. <div class="card mt-3">
  30. <ul class="list-group list-group-flush" id="auditor-list">
  31. <li class="list-group-item"><i class="fa fa fa-play-circle fa-rotate-90"></i> 布尔 <small class="text-muted">施工</small></li>
  32. <li class="list-group-item"><i class="fa fa-chevron-circle-down"></i> 张三 <small class="text-muted">监理</small></li>
  33. <li class="list-group-item"><i class="fa fa-chevron-circle-down"></i> 王五 <small class="text-muted">监理</small></li>
  34. <li class="list-group-item"><i class="fa fa fa-stop-circle"></i> 李四 <small class="text-muted">监理</small></li>
  35. </ul>
  36. </div>
  37. </div>
  38. <div class="col-8 modal-height-500" style="overflow: auto" id="auditor-list2">
  39. <div class="card mt-3">
  40. <ul class="list-group list-group-flush">
  41. <li class="list-group-item">
  42. <span class="text-success pull-right">上报</span>
  43. <h5 class="card-title"><i class="fa fa-play-circle fa-rotate-90 text-success"></i> 布尔 <small class="text-muted">施工</small></h5>
  44. <p class="card-text">2017-11-25</p>
  45. </li>
  46. <li class="list-group-item">
  47. <span class="text-success pull-right">审批通过</span>
  48. <h5 class="card-title"><i class="fa fa-chevron-circle-down text-success"></i> 张三 <small class="text-muted">监理</small></h5>
  49. <p class="card-text">审批意见。2017-11-25</p>
  50. </li>
  51. <li class="list-group-item">
  52. <span class="text-success pull-right">审批通过</span>
  53. <h5 class="card-title"><i class="fa fa-chevron-circle-down text-success"></i> 王五 <small class="text-muted">监理</small></h5>
  54. <p class="card-text">审批通过。2017-11-26</p>
  55. </li>
  56. <li class="list-group-item">
  57. <span class="text-warning pull-right">审批退回 布尔</span>
  58. <h5 class="card-title"><i class="fa fa-stop-circle text-warning"></i> 李四 <small class="text-muted">监理</small></h5>
  59. <p class="card-text">审批退回,审批意见文本。2017-11-27</p>
  60. </li>
  61. </ul>
  62. </div>
  63. <!--退回原报重新上报-->
  64. <div class="card mt-3">
  65. <ul class="list-group list-group-flush">
  66. <li class="list-group-item">
  67. <span class="text-success pull-right">重新上报</span>
  68. <h5 class="card-title"><i class="fa fa-play-circle fa-rotate-90 text-success"></i> 布尔 <small class="text-muted">施工</small></h5>
  69. <p class="card-text">2017-12-01</p>
  70. </li>
  71. <li class="list-group-item">
  72. <span class="text-success pull-right">审批通过</span>
  73. <h5 class="card-title"><i class="fa fa-chevron-circle-down text-success"></i> 张三 <small class="text-muted">监理</small></h5>
  74. <p class="card-text">审批通过 2017-12-02</p>
  75. </li>
  76. <li class="list-group-item">
  77. <span class="text-warning pull-right">审批退回 张三</span>
  78. <h5 class="card-title"><i class="fa fa-chevron-circle-down text-warning"></i> 王五 <small class="text-muted">监理</small></h5>
  79. <p class="card-text">审批退回 2017-12-02</p>
  80. </li>
  81. <!--王五退回上一审批人 张三,张三重新审批-->
  82. <li class="list-group-item">
  83. <span class="pull-right">审批中</span>
  84. <h5 class="card-title"><i class="fa fa-chevron-circle-down"></i> 张三 <small class="text-muted">监理</small></h5>
  85. <p class="card-text"></p>
  86. </li>
  87. <li class="list-group-item">
  88. <h5 class="card-title"><i class="fa fa-stop-circle"></i> 李四 <small class="text-muted">监理</small></h5>
  89. </li>
  90. </ul>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="modal-footer">
  96. <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <% if (ledgerRevise.length > 0 && (ledgerRevise[0].status === auditConst.status.uncheck || ledgerRevise[0].status === auditConst.status.checkNo) && ctx.session.sessionUser.accountId === ledgerRevise[0].uid) { %>
  102. <!--弹出作废-->
  103. <div class="modal fade" id="remove" data-backdrop="static">
  104. <form class="modal-dialog" role="document" action="<%- preUrl + '/revise/cancel' %>" method="post" onsubmit="return $.trim($('#cancel-confirm').val()) === '修订作废';">
  105. <div class="modal-content">
  106. <div class="modal-header">
  107. <h5 class="modal-title">作废修订</h5>
  108. </div>
  109. <div class="modal-body">
  110. <div class="alert alert-danger">
  111. 修订 已有数据,请谨慎操作;
  112. <br>作废后,数据无法恢复,请谨慎操作;
  113. <br>确认作废,请在以下输入框输入"&nbsp;&nbsp;&nbsp;<b>修订作废</b>&nbsp;&nbsp;&nbsp;",再点击“确认作废”按钮。
  114. </div>
  115. <div class="form-group">
  116. <input class="form-control form-control-sm" placeholder="" type="text" id="cancel-confirm">
  117. </div>
  118. </div>
  119. <div class="modal-footer">
  120. <input type="hidden" name="_csrf" value="<%= ctx.csrf %>" />
  121. <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal" >取消</button>
  122. <button type="submit" class="btn btn-danger btn-sm">确认作废</button>
  123. </div>
  124. </div>
  125. </form>
  126. </div>
  127. <% } %>
  128. <script>
  129. let dbClickFlag = true;
  130. function dbClick() {
  131. if(dbClickFlag){
  132. dbClickFlag = false;
  133. return true;
  134. }
  135. return dbClickFlag;
  136. }
  137. const auditConst = JSON.parse('<%- auditConst2 %>');
  138. $(function () {
  139. // 获取审批流程
  140. $('a[data-target="#sp-list" ]').on('click', function () {
  141. const data = {
  142. id: $(this).attr('lr-id'),
  143. };
  144. postData('<%- preUrl + "/revise/auditors" %>', data, function (result) {
  145. const reviseAuditor = result.reviseAuditor;
  146. const auditors = result.auditors;
  147. const auditHistory = result.auditHistory;
  148. // 生成左边列表流程
  149. const lefthtml = [];
  150. lefthtml.push('<li class="list-group-item"><i class="fa fa fa-play-circle fa-rotate-90"></i> '+ reviseAuditor.name +' <small class="text-muted">'+ reviseAuditor.role +'</small><span class="pull-right">原报</span></li>');
  151. for (const [index,a] of auditors.entries()) {
  152. if (index+1 === auditors.length) {
  153. lefthtml.push('<li class="list-group-item"><i class="fa fa-stop-circle"></i> '+ a.name +' <small class="text-muted">'+ a.role +'</small><span class="pull-right">终审</span></li>');
  154. } else {
  155. lefthtml.push('<li class="list-group-item"><i class="fa fa-chevron-circle-down"></i> '+ a.name +' <small class="text-muted">'+ a.role +'</small><span class="pull-right">' + transFormToChinese(index+1) + '审</span></li>');
  156. }
  157. }
  158. $('#auditor-list').html(lefthtml.join(''));
  159. // 生成右边列表流程
  160. const righthtml = [];
  161. for(const ah of auditHistory) {
  162. righthtml.push('<div class="card mt-3"><ul class="list-group list-group-flush">');
  163. for (let iA = 0; iA < ah.length; iA++) {
  164. if (iA === 0) {
  165. righthtml.push('<li class="list-group-item">');
  166. righthtml.push('<h5 class="card-title">');
  167. righthtml.push('<i class="fa fa-play-circle fa-rotate-90 text-success"></i> '+ reviseAuditor.name +' <small class="text-muted">'+ reviseAuditor.role +'</small><span class="pull-right">原报</span></h5>');
  168. righthtml.push('<div class="ml-3">');
  169. righthtml.push('<span class="text-success"><small>' + (ah[iA].begin_time ? moment(ah[iA].begin_time).format('YYYY-MM-DD') : '') + '</small> '+ (auditHistory.indexOf(ah) > 0 ? '重新' : '') + '上报</span></div></li>');
  170. righthtml.push('<li class="list-group-item">');
  171. righthtml.push('<h5 class="card-title"><i class="fa '+ (iA === ah.length - 1 ? 'fa-stop-circle ' : 'fa-chevron-circle-down ') + auditConst.statusClass[ah[iA].status] +'"></i> '+ ah[iA].name +' <small class="text-muted">'+ ah[iA].role +'</small><span class="pull-right">' + (ah[iA].sort === ah[iA].max_sort ? '终' : transFormToChinese(ah[iA].sort)) + '审</span></h5>');
  172. righthtml.push('<div class="ml-3">');
  173. if (ah[iA].status !== auditConst.status.uncheck) {
  174. let timeHtml = '';
  175. if (ah[iA].status === auditConst.status.checked || ah[iA].status === auditConst.status.checkNo) {
  176. timeHtml = '<small>'+ (ah[iA].end_time ? moment(ah[iA].end_time).format('YYYY-MM-DD') : '') +'</small> ';
  177. }
  178. righthtml.push('<span class="' + auditConst.statusClass[ah[iA].status] +'">'+ timeHtml + auditConst.statusString[ah[iA].status] + (ah[iA].status === auditConst.status.checkNo ? ' ' + reviseAuditor.name : '') + '</span>');
  179. }
  180. righthtml.push('<p class="card-text">'+ (ah[iA].opinion !== null ? ah[iA].opinion : '') +'</p></div>');
  181. righthtml.push('</li>');
  182. } else if (iA === ah.length - 1) {
  183. righthtml.push('<li class="list-group-item">');
  184. righthtml.push('<h5 class="card-title"><i class="fa fa-stop-circle '+ auditConst.statusClass[ah[iA].status] +'"></i> '+ ah[iA].name +' <small class="text-muted">'+ ah[iA].role +'</small><span class="pull-right">终审</span></h5>');
  185. righthtml.push('<div class="ml-3">');
  186. if (ah[iA].status !== auditConst.status.uncheck) {
  187. let timeHtml = '';
  188. if (ah[iA].status === auditConst.status.checked || ah[iA].status === auditConst.status.checkNo) {
  189. timeHtml = '<small>'+ (ah[iA].end_time ? moment(ah[iA].end_time).format('YYYY-MM-DD') : '') +'</small> ';
  190. }
  191. righthtml.push('<span class="' + auditConst.statusClass[ah[iA].status] +'">' + timeHtml + auditConst.statusString[ah[iA].status] + (ah[iA].status === auditConst.status.checkNo ? ' ' + reviseAuditor.name : '') + '</span>');
  192. }
  193. righthtml.push('<p class="card-text">'+ (ah[iA].opinion !== null ? ah[iA].opinion : '') +'</p></div>');
  194. righthtml.push('</li>');
  195. } else {
  196. righthtml.push('<li class="list-group-item">');
  197. righthtml.push('<h5 class="card-title"><i class="fa '+ (iA === ah.length - 1 ? 'fa-stop-circle ' : 'fa-chevron-circle-down ') + auditConst.statusClass[ah[iA].status] +'"></i> '+ ah[iA].name +' <small class="text-muted">'+ ah[iA].role +'</small><span class="pull-right">' + (ah[iA].sort === ah[iA].max_sort ? '终' : transFormToChinese(ah[iA].sort)) + '审</span></h5>');
  198. righthtml.push('<div class="ml-3">');
  199. if (ah[iA].status !== auditConst.status.uncheck) {
  200. let timeHtml = '';
  201. if (ah[iA].status === auditConst.status.checked || ah[iA].status === auditConst.status.checkNo) {
  202. timeHtml = '<small>'+ (ah[iA].end_time ? moment(ah[iA].end_time).format('YYYY-MM-DD') : '') +'</small> ';
  203. }
  204. righthtml.push('<span class="' + auditConst.statusClass[ah[iA].status] +'">'+ timeHtml + auditConst.statusString[ah[iA].status] + (ah[iA].status === auditConst.status.checkNo ? ' ' + reviseAuditor.name : '') + '</span>');
  205. }
  206. righthtml.push('<p class="card-text">'+ (ah[iA].opinion !== null ? ah[iA].opinion : '') +'</p></div>');
  207. righthtml.push('</li>');
  208. }
  209. }
  210. righthtml.push('</ul></div>');
  211. }
  212. $('#auditor-list2').html(righthtml.join(''));
  213. })
  214. });
  215. })
  216. </script>