plan_information.ejs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. <a <% if (returnUrl) { %>href="<%- returnUrl %>"<% } else { %>class="change_plan_sort_link" href="/tender/<%- tender.id %>/change/plan"<% } %>><i class="fa fa-chevron-left mr-2"></i><span>返回</span></a>
  9. </div>
  10. <div class="d-inline-block" id="change-plan-code">
  11. <%- change.code %>
  12. </div>
  13. <% if (!change.readOnly) { %>
  14. <div class="d-inline-block">
  15. <a href="#shuliangguize" data-toggle="modal" data-target="#shuliangguize" class="btn btn-outline-primary btn-sm"><i class="fa fa-cog"></i></a>
  16. </div>
  17. <% } %>
  18. </div>
  19. <div class="ml-auto" id="sp-btn">
  20. <% if (ctx.change.status === auditConst.status.uncheck) { %>
  21. <% if (ctx.session.sessionUser.accountId === ctx.change.uid) { %>
  22. <a id="sub-sp-btn" href="javascript: void(0);" data-toggle="modal" data-target="#sub-sp" class="btn btn-primary btn-sm">上报审批</a>
  23. <% } else { %>
  24. <a id="sub-sp-btn" href="javascript: void(0);" data-toggle="modal" data-target="#sub-sp" class="btn btn-outline-secondary btn-sm">上报中</a>
  25. <% } %>
  26. <% } else if (ctx.change.status === auditConst.status.checking) { %>
  27. <% if (ctx.change.curAuditor && ctx.change.curAuditor.aid === ctx.session.sessionUser.accountId) { %>
  28. <a id="sp-done-btn" href="javascript: void(0);" data-toggle="modal" data-target="#sp-done" class="btn btn-success btn-sm">审批通过</a>
  29. <a href="#sp-back" data-toggle="modal" data-target="#sp-back" class="btn btn-warning btn-sm">审批退回</a>
  30. <% } else { %>
  31. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-secondary btn-sm">审批中</a>
  32. <% } %>
  33. <% } else if (ctx.change.status === auditConst.status.checked) { %>
  34. <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-success btn-sm">审批完成</a>
  35. <% } else if (ctx.change.status === auditConst.status.checkNo) { %>
  36. <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">审批退回</a>
  37. <% if (ctx.session.sessionUser.accountId === ctx.change.uid) { %>
  38. <a href="#sp-list" data-type="show" data-toggle="modal" data-target="#sp-list" class="btn btn-primary btn-sm sp-list-btn">重新上报</a>
  39. <% } %>
  40. <% } %>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="content-wrap">
  45. <div class="c-body">
  46. <div class="sjs-height-0" data-spy="scroll" data-target="#navbar-example">
  47. <div class="row mx-0">
  48. <div class="col-xl-2" id="navbar-example">
  49. <ul class="nav flex-column nav-pills nav-stacked nav-padding sticky-top">
  50. <li class="nav-item"><a class="nav-link active" href="#xinxi">基本信息</a></li>
  51. <li class="nav-item"><a class="nav-link" href="#qingdan">变更清单</a></li>
  52. <li class="nav-item"><a class="nav-link" href="#fujian">附件</a></li>
  53. </ul>
  54. </div>
  55. <div class="col-xl-8 mx-auto">
  56. <h4 id="xinxi" class="text-center py-2">工程变更方案</h4>
  57. <h5>基本信息</h5>
  58. <table class="table table-bordered" id="plan-table">
  59. <tr>
  60. <th width="120" class="text-center" style="vertical-align: middle">变更方案编号<b class="text-danger">*&nbsp;</b></th>
  61. <td><input class="form-control form-control-sm" value="<%- change.code %>" data-name="code" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder=""></td>
  62. <th width="140" class="text-center" style="vertical-align: middle">变更申请编号</th>
  63. <td><input class="form-control form-control-sm" type="text" value="<%- change.apply_code %>" data-name="apply_code" <% if (change.readOnly) { %>readonly<% } %> placeholder="自动读取,没有就为空,可编辑"></td>
  64. </tr>
  65. <tr>
  66. <th width="120" class="text-center" style="vertical-align: middle">变更工程名称<b class="text-danger">*&nbsp;</b></th>
  67. <td><input class="form-control form-control-sm" value="<%- change.name %>" data-name="name" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder=""></td>
  68. <th width="140" class="text-center" style="vertical-align: middle">桩号</th>
  69. <td><input class="form-control form-control-sm" type="text" value="<%- change.peg %>" data-name="peg" <% if (change.readOnly) { %>readonly<% } %> placeholder=""></td>
  70. </tr>
  71. <tr>
  72. <th width="" class="text-center" style="vertical-align: middle">原设计图名称</th>
  73. <td><input class="form-control form-control-sm" value="<%- change.org_name %>" data-name="org_name" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder=""></td>
  74. <th width="" class="text-center" style="vertical-align: middle">图号</th>
  75. <td><input class="form-control form-control-sm" type="text" value="<%- change.new_code %>" data-name="new_code" <% if (change.readOnly) { %>readonly<% } %> placeholder=""></td>
  76. </tr>
  77. <tr>
  78. <th width="" class="text-center" style="vertical-align: middle">变更设计名称</th>
  79. <td><input class="form-control form-control-sm" value="<%- change.design_name %>" data-name="design_name" <% if (change.readOnly) { %>readonly<% } %> type="text" placeholder=""></td>
  80. <th width="" class="text-center" style="vertical-align: middle">变更图号</th>
  81. <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>
  82. </tr>
  83. <tr>
  84. <th width="" class="text-center" style="vertical-align: middle">工程变更类别</th>
  85. <td><input class="form-control form-control-sm" type="text" value="<%- change.class %>" data-name="class" <% if (change.readOnly) { %>readonly<% } %> placeholder=""></td>
  86. <th width="" class="text-center" style="vertical-align: middle">工程变更性质</th>
  87. <% if (change.readOnly) { %>
  88. <td><input class="form-control form-control-sm" type="text" value="<%- change.quality %>" data-name="quality" readonly placeholder=""></td>
  89. <% } else { %>
  90. <td><select class="form-control form-control-sm" name="quality" data-name="quality" <% if (change.readOnly) { %>readonly<% } %>>
  91. <% for (const q in changeConst.quality) { %>
  92. <% const cQuality = changeConst.quality[q] %>
  93. <option <% if (cQuality.name === change.quality) { %> selected<% } %>><%- cQuality.name %></option>
  94. <% } %>
  95. </select></td>
  96. <% } %>
  97. </tr>
  98. <tr>
  99. <th width="" class="text-center" style="vertical-align: middle">变更原因<b class="text-danger">*&nbsp;</b></th>
  100. <td colspan="3"><textarea class="form-control form-control-sm" data-name="reason" <% if (change.readOnly) { %>readonly<% } %> rows="3"><%- change.reason %></textarea></td>
  101. </tr>
  102. <tr>
  103. <th width="" class="text-center" style="vertical-align: middle">变更内容</th>
  104. <td colspan="3"><textarea class="form-control form-control-sm" data-name="content" <% if (change.readOnly) { %>readonly<% } %> rows="3"><%- change.content %></textarea></td>
  105. </tr>
  106. <tr>
  107. <th width="" class="text-center" style="vertical-align: middle">方案描述</th>
  108. <td colspan="3"><textarea class="form-control form-control-sm" data-name="memo" <% if (change.readOnly) { %>readonly<% } %> rows="3"><%- change.memo %></textarea></td>
  109. </tr>
  110. </table>
  111. <h5 id="qingdan" class="d-inline-block">变更清单</h5>
  112. <% if (change.status === auditConst.status.checked) { %>
  113. <div class="d-inline-block ml-3">
  114. <div class="custom-control custom-checkbox" style="line-height: normal;">
  115. <input type="checkbox" class="custom-control-input" id="show-table-detail">
  116. <label class="custom-control-label" for="show-table-detail">审批过程</label>
  117. </div>
  118. </div>
  119. <% } %>
  120. <div style="height: <%= 21*(changeList.length+3) + 100 %>px;min-height: 300px" id="plan-spread"></div>
  121. <h5 id="fujian">附件</h5>
  122. <table class="table table-bordered">
  123. <thead>
  124. <tr>
  125. <th></th>
  126. <th>附件</th>
  127. <th>上传者</th>
  128. <th>上传时间</th>
  129. <th>操作</th>
  130. </tr>
  131. </thead>
  132. <tbody>
  133. <!--<tr>-->
  134. <!--<td colspan="5"><button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#upload-fj">上传附件</button></td>-->
  135. <!--</tr>-->
  136. <tbody id="file-content">
  137. </tbody>
  138. <!--<tr>-->
  139. <!--<td>1</td>-->
  140. <!--<td>XXX设计图纸</td>-->
  141. <!--<td>仁温书</td>-->
  142. <!--<td>2021-12-09 16:58:47</td>-->
  143. <!--<td><a href="#" class="mr-2"><i class="fa fa-download"></i></a><a href="#" class="text-danger"><i class="fa fa-remove"></i></a></td>-->
  144. <!--</tr>-->
  145. <!--<tr>-->
  146. <!--<td>1</td>-->
  147. <!--<td>XXX资料说明</td>-->
  148. <!--<td>仁温书</td>-->
  149. <!--<td>2021-12-09 16:58:47</td>-->
  150. <!--<td><a href="#" class="mr-2"><i class="fa fa-download"></i></a><a href="#" class="text-danger"><i class="fa fa-remove"></i></a></td>-->
  151. <!--</tr>-->
  152. </tbody>
  153. </table>
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. </div>
  160. <script>
  161. autoFlashHeight();
  162. const auditConst = JSON.parse('<%- JSON.stringify(auditConst) %>');
  163. const fileTypeConst = JSON.parse(unescape('<%- escape(JSON.stringify(changeConst.file_type)) %>'));
  164. const fileList = JSON.parse(unescape('<%- escape(JSON.stringify(fileList)) %>')) || [];
  165. const whiteList = JSON.parse('<%- JSON.stringify(whiteList) %>');
  166. const preUrl = '<%- preUrl %>';
  167. const change = JSON.parse(unescape('<%- escape(JSON.stringify(change)) %>'));
  168. let listRule = JSON.parse(unescape('<%- escape(JSON.stringify(listRule)) %>'));
  169. const readOnly = <%- change.readOnly %>;
  170. const totalPriceUnit = '<%- tpUnit %>';
  171. const unitPriceUnit = '<%- upUnit %>';
  172. const precision = JSON.parse('<%- JSON.stringify(precision) %>');
  173. let changeUnits = JSON.parse('<%- JSON.stringify(changeUnits) %>');
  174. changeUnits = _.map(changeUnits, 'unit');
  175. changeUnits.push('');
  176. let changeList = JSON.parse(unescape('<%- escape(JSON.stringify(changeList)) %>'));
  177. </script>