apply_information.ejs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <% include ../tender/tender_sub_menu.ejs %>
  2. <div class="panel-content">
  3. <div class="panel-title"><!--收起详解目录添加类名 fluid -->
  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 btn-group-toggle group-tab">
  9. <a class="btn btn-sm btn-light active" href="javascript:void(0);">申请详情</a>
  10. <a class="btn btn-sm btn-light" href="/tender/<%- ctx.tender.id %>/change/apply/<%- ctx.change.id %>/report">输出报表</a>
  11. </div>
  12. </div>
  13. <!-- <div class="d-inline-block">-->
  14. <!-- <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_apply_sort_link" href="/tender/<%- tender.id %>/change/apply"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>-->
  15. <!-- </div>-->
  16. <!-- <div class="d-inline-block" id="change-apply-code">-->
  17. <!-- <%- change.code %>-->
  18. <!-- </div>-->
  19. <% if (!change.readOnly) { %>
  20. <div class="d-inline-block">
  21. <a href="#shuliangguize" data-toggle="modal" data-target="#shuliangguize" class="btn btn-outline-primary btn-sm"><i class="fa fa-cog"></i></a>
  22. </div>
  23. <% } %>
  24. </div>
  25. <div class="ml-auto" id="sp-btn">
  26. <% if (ctx.change.cancancel) { %>
  27. <a href="javascript: void(0);" data-toggle="modal" data-target="#sp-down-cancel" class="btn btn-danger btn-sm mr-2">撤回</a>
  28. <% } %>
  29. <% if (ctx.change.status === auditConst.status.uncheck) { %>
  30. <% if (ctx.session.sessionUser.accountId === ctx.change.uid) { %>
  31. <a id="sub-sp-btn" href="javascript: void(0);" data-toggle="modal" data-target="#sub-sp" class="btn btn-primary btn-sm">上报审批</a>
  32. <% } else { %>
  33. <a id="sub-sp-btn" href="javascript: void(0);" data-toggle="modal" data-target="#sub-sp" class="btn btn-outline-secondary btn-sm">上报中</a>
  34. <% } %>
  35. <% } else if (ctx.change.status === auditConst.status.checking) { %>
  36. <% if (ctx.change.curAuditorIds.indexOf(ctx.session.sessionUser.accountId) >= 0) { %>
  37. <a id="sp-done-btn" href="javascript: void(0);" data-toggle="modal" data-target="#sp-done" class="btn btn-success btn-sm">审批通过</a>
  38. <a href="#sp-back" data-toggle="modal" data-target="#sp-back" class="btn btn-warning btn-sm">审批退回</a>
  39. <% } else { %>
  40. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-secondary btn-sm">审批中</a>
  41. <% } %>
  42. <% } else if (ctx.change.status === auditConst.status.checked) { %>
  43. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-success btn-sm">审批完成</a>
  44. <% if (ctx.change.auditors !== undefined && ctx.change.finalAuditorIds.indexOf(ctx.session.sessionUser.accountId) >= 0) { %>
  45. <!--重新审批-->
  46. <a href="#sp-down-back" data-toggle="modal" data-target="#sp-down-back" class="btn btn-warning btn-sm ml-2">重新审批</a>
  47. <% } %>
  48. <% if (ctx.session.sessionUser.accountId === ctx.change.uid) { %>
  49. <a href="javascript: void(0);" data-toggle="modal" data-target="#sp-down-revise" class="btn btn-warning btn-sm ml-2">修订变更</a>
  50. <% } %>
  51. <% } else if (ctx.change.status === auditConst.status.checkNo || ctx.change.status === auditConst.status.revise) { %>
  52. <a href="#sp-list" data-type="hide" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-warning btn-sm text-muted sp-list-btn">审批<% if (ctx.change.status === auditConst.status.checkNo) { %>退回<% } else { %>修订<% } %></a>
  53. <% if (ctx.session.sessionUser.accountId === ctx.change.uid) { %>
  54. <a href="#sp-list" data-type="show" data-toggle="modal" data-target="#sp-list" class="btn btn-primary btn-sm sp-list-btn">重新上报</a>
  55. <% } %>
  56. <% if (ctx.change.status === auditConst.status.revise && (ctx.session.sessionUser.accountId === ctx.change.uid || ctx.session.sessionUser.is_admin)) { %>
  57. <a href="#sub-revoke" data-toggle="modal" data-target="#sub-revoke" class="btn btn-warning btn-sm ml-2">撤销修订</a>
  58. <% } %>
  59. <% } %>
  60. </div>
  61. </div>
  62. </div>
  63. <div class="content-wrap">
  64. <div class="c-body">
  65. <div class="sjs-height-0" data-spy="scroll" data-target="#navbar-example">
  66. <div class="row mx-0">
  67. <!--<div class="col-xl-2" id="navbar-example">-->
  68. <!--<ul class="nav flex-column nav-pills nav-stacked nav-padding sticky-top">-->
  69. <!--<li class="nav-item"><a class="nav-link active" href="#xinxi">基本信息</a></li>-->
  70. <!--<li class="nav-item"><a class="nav-link" href="#qingdan">变更清单</a></li>-->
  71. <!--<li class="nav-item"><a class="nav-link" href="#fujian">附件</a></li>-->
  72. <!--</ul>-->
  73. <!--</div>-->
  74. <div class="col-xl-8 mx-auto">
  75. <h4 id="xinxi" class="text-center py-2">工程变更申请书</h4>
  76. <h5>基本信息</h5>
  77. <table class="table table-bordered" id="apply-table">
  78. <tr>
  79. <th width="120" class="text-center" style="vertical-align: middle">变更申请编号<b class="text-danger">*&nbsp;</b></th>
  80. <td><input class="form-control form-control-sm" value="<%- change.code %>" data-name="code" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder=""></td>
  81. </tr>
  82. <tr>
  83. <th width="120" class="text-center" style="vertical-align: middle">变更工程名称<b class="text-danger">*&nbsp;</b></th>
  84. <td><input class="form-control form-control-sm" value="<%- change.name %>" data-name="name" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder=""></td>
  85. <th width="140" class="text-center" style="vertical-align: middle">桩号</th>
  86. <td><input class="form-control form-control-sm" type="text" value="<%- change.peg %>" data-name="peg" <% if (change.readOnly) { %>readonly<% } %> placeholder=""></td>
  87. </tr>
  88. <tr>
  89. <th width="" class="text-center" style="vertical-align: middle">原设计图名称</th>
  90. <td><input class="form-control form-control-sm" value="<%- change.org_name %>" data-name="org_name" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder=""></td>
  91. <th width="" class="text-center" style="vertical-align: middle">图号</th>
  92. <td><input class="form-control form-control-sm" type="text" value="<%- change.new_code %>" data-name="new_code" <% if (change.readOnly) { %>readonly<% } %> placeholder=""></td>
  93. </tr>
  94. <tr>
  95. <th width="" class="text-center" style="vertical-align: middle">变更设计名称</th>
  96. <td><input class="form-control form-control-sm" value="<%- change.design_name %>" data-name="design_name" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder=""></td>
  97. <th width="" class="text-center" style="vertical-align: middle">变更图号</th>
  98. <td><input class="form-control form-control-sm" value="<%- change.c_new_code %>" data-name="c_new_code" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder=""></td>
  99. </tr>
  100. <tr>
  101. <th width="" class="text-center" style="vertical-align: middle">变更立项编号</th>
  102. <td><input class="form-control form-control-sm" value="<%- change.project_code %>" data-name="project_code" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder="自动读取,没有就为空,可编辑"></td>
  103. <th width="" class="text-center" style="vertical-align: middle">原工程造价(元)</th>
  104. <td><input class="form-control form-control-sm" type="text" value="<%- change.org_price %>" data-name="org_price" <% if (change.readOnly) { %>readonly<% } %> placeholder=""></td>
  105. </tr>
  106. <tr>
  107. <th width="" class="text-center" style="vertical-align: middle">工程变更类别</th>
  108. <% if (change.readOnly) { %>
  109. <td><input class="form-control form-control-sm" type="text" value="<%- change.class %>" data-name="class" readonly placeholder=""></td>
  110. <% } else { %>
  111. <td><select class="form-control form-control-sm" name="class" data-name="class" <% if (change.readOnly) { %>readonly<% } %>>
  112. <% for (const cc of changeClass) { %>
  113. <% if (cc.checked) { %>
  114. <option <% if (cc.name === change.class || cc.new_name === change.class) { %> selected<% } %>><%- cc.new_name ? cc.new_name : cc.name %></option>
  115. <% } %>
  116. <% } %>
  117. </select></td>
  118. <% } %>
  119. <th width="" class="text-center" style="vertical-align: middle">变更后工程造价(元)</th>
  120. <td><input class="form-control form-control-sm" type="text" value="<%- change.change_price %>" data-name="change_price" <% if (change.readOnly) { %>readonly<% } %> placeholder=""></td>
  121. </tr>
  122. <tr>
  123. <th width="" class="text-center" style="vertical-align: middle">工程变更性质</th>
  124. <% if (change.readOnly) { %>
  125. <td><input class="form-control form-control-sm" type="text" value="<%- change.quality %>" data-name="quality" readonly placeholder=""></td>
  126. <% } else { %>
  127. <td><select class="form-control form-control-sm" name="quality" data-name="quality" <% if (change.readOnly) { %>readonly<% } %>>
  128. <% for (const q in changeConst.quality) { %>
  129. <% const cQuality = changeConst.quality[q] %>
  130. <option <% if (cQuality.name === change.quality) { %> selected<% } %>><%- cQuality.name %></option>
  131. <% } %>
  132. </select></td>
  133. <% } %>
  134. <th width="" class="text-center" style="vertical-align: middle">工程造价增减(元)</th>
  135. <td><input class="form-control form-control-sm" type="text" value="<%- change.crease_price %>" data-name="crease_price" <% if (change.readOnly) { %>readonly<% } %> placeholder=""></td>
  136. </tr>
  137. <tr>
  138. <th width="" class="text-center" style="vertical-align: middle">变更原因<b class="text-danger">*&nbsp;</b></th>
  139. <td colspan="3"><textarea class="form-control form-control-sm" data-name="reason" <% if (change.readOnly) { %>readonly<% } %> rows="3"><%- change.reason %></textarea></td>
  140. </tr>
  141. <tr>
  142. <th width="" class="text-center" style="vertical-align: middle">原设计情况描述</th>
  143. <td colspan="3"><textarea class="form-control form-control-sm" data-name="org_content" <% if (change.readOnly) { %>readonly<% } %> rows="3"><%- change.org_content %></textarea></td>
  144. </tr>
  145. <tr>
  146. <th width="" class="text-center" style="vertical-align: middle">现场实际情况描述</th>
  147. <td colspan="3"><textarea class="form-control form-control-sm" data-name="site_content" <% if (change.readOnly) { %>readonly<% } %> rows="3"><%- change.site_content %></textarea></td>
  148. </tr>
  149. <tr>
  150. <th width="" class="text-center" style="vertical-align: middle">变更内容</th>
  151. <td colspan="3"><textarea class="form-control form-control-sm" data-name="content" <% if (change.readOnly) { %>readonly<% } %> rows="3"><%- change.content %></textarea></td>
  152. </tr>
  153. </table>
  154. <h5 id="qingdan">变更清单</h5>
  155. <div style="height: 300px;" id="apply-spread"></div>
  156. <h5 id="fujian">附件</h5>
  157. <table class="table table-bordered">
  158. <thead>
  159. <tr>
  160. <th></th>
  161. <th>附件</th>
  162. <th>上传者</th>
  163. <th>资料类型</th>
  164. <th>上传时间</th>
  165. <th>操作</th>
  166. </tr>
  167. </thead>
  168. <tbody id="file-content">
  169. </tbody>
  170. </table>
  171. </div>
  172. </div>
  173. </div>
  174. </div>
  175. </div>
  176. </div>
  177. <script>
  178. autoFlashHeight();
  179. const auditConst = JSON.parse('<%- JSON.stringify(auditConst) %>');
  180. const fileTypeConst = JSON.parse(unescape('<%- escape(JSON.stringify(changeConst.file_type)) %>'));
  181. const fileList = JSON.parse(unescape('<%- escape(JSON.stringify(fileList)) %>')) || [];
  182. const whiteList = JSON.parse('<%- JSON.stringify(whiteList) %>');
  183. const deleteFilePermission = <%- deleteFilePermission %>;
  184. const preUrl = '<%- preUrl %>';
  185. const change = JSON.parse(unescape('<%- escape(JSON.stringify(change)) %>'));
  186. let listRule = JSON.parse(unescape('<%- escape(JSON.stringify(listRule)) %>'));
  187. const readOnly = <%- change.readOnly %>;
  188. const totalPriceUnit = '<%- tpUnit %>';
  189. const unitPriceUnit = '<%- upUnit %>';
  190. const precision = JSON.parse('<%- JSON.stringify(precision) %>');
  191. let changeUnits = JSON.parse('<%- JSON.stringify(changeUnits) %>');
  192. changeUnits = _.map(changeUnits, 'unit');
  193. changeUnits.push('');
  194. let changeList = JSON.parse(unescape('<%- escape(JSON.stringify(changeList)) %>'));
  195. </script>