setting.ejs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. <% include ./sub_menu.ejs %>
  2. <div class="panel-content">
  3. <div class="panel-title">
  4. <div class="title-main">
  5. <h2>功能设置</h2>
  6. </div>
  7. </div>
  8. <div class="content-wrap">
  9. <div class="c-body">
  10. <div class="sjs-height-0">
  11. <div class="row m-0 mt-3">
  12. <div class="col-6">
  13. <div class="card mb-3">
  14. <div class="card-header" style="min-height: 47px;">
  15. <div class="float-left">合同类型</div>
  16. <div class="float-right" id="show-type-btn" style="display: none">
  17. <button id="cancel-type-btn" class="btn btn-sm btn-secondary">取消</button>
  18. <button id="set-type-btn" class="btn btn-sm btn-success">保存</button>
  19. </div>
  20. </div>
  21. <div class="card-body" id="contract-type-set">
  22. <nav class="nav nav-tabs" id="type-tabs">
  23. <a class="nav-link nav-item <% if (types_from === 'subProject') { %>active<% } %>" data-toggle="tab" data-tab="subProject-type-tab" href="#subProject-type-tab" role="tab" type="subProject">项目</a>
  24. <a class="nav-link nav-item <% if (types_from !== 'subProject') { %>active<% } %>" data-toggle="tab" data-tab="tender-type-tab" href="#tender-type-tab" role="tab" type="tender">标段</a>
  25. <div class="ml-auto">
  26. <a href="javascript:void(0);" style="vertical-align: sub;" id="add-type-btn">新增类型</a>
  27. </div>
  28. </nav>
  29. <div class="tab-content my-2">
  30. <div class="tab-pane <% if (types_from === 'subProject') { %>active<% } %>" id="subProject-type-tab" style="max-height: 400px;overflow: auto;">
  31. <table class="table table-bordered">
  32. <thead><tr class="text-center">
  33. <th width="60%">名称</th>
  34. <th>操作</th>
  35. </tr>
  36. </thead>
  37. <tbody class="text-center" id="subProject-type-table">
  38. <% for (const type of types) { %>
  39. <tr>
  40. <td><input class="form-control form-control-sm" name="value" placeholder="请输入值" value="<%- type %>"></td>
  41. <td>
  42. <a href="javascript:void(0);" class="btn btn-sm text-danger remove-type-btn"><i class="fa fa-remove"></i></a>
  43. </td>
  44. </tr>
  45. <% } %>
  46. </tbody>
  47. </table>
  48. </div>
  49. <div class="tab-pane <% if (types_from !== 'subProject') { %>active<% } %>" id="tender-type-tab" style="max-height: 400px;overflow: auto;">
  50. <table class="table table-bordered">
  51. <thead><tr class="text-center">
  52. <th width="60%">名称</th>
  53. <th>操作</th>
  54. </tr>
  55. </thead>
  56. <tbody class="text-center" id="tender-type-table">
  57. <% for (const type of tender_types) { %>
  58. <tr>
  59. <td><input class="form-control form-control-sm" name="value" placeholder="请输入值" value="<%- type %>"></td>
  60. <td>
  61. <a href="javascript:void(0);" class="btn btn-sm text-danger remove-type-btn"><i class="fa fa-remove"></i></a>
  62. </td>
  63. </tr>
  64. <% } %>
  65. </tbody>
  66. </table>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. </div>
  72. <div class="col-6">
  73. <div class="card mb-3">
  74. <div class="card-header" style="min-height: 47px;">
  75. <div class="float-left">资金用途</div>
  76. <div class="float-right" id="show-used-btn" style="display: none">
  77. <button id="cancel-used-btn" class="btn btn-sm btn-secondary">取消</button>
  78. <button id="set-used-btn" class="btn btn-sm btn-success">保存</button>
  79. </div>
  80. </div>
  81. <div class="card-body" id="contract-used-set">
  82. <nav class="nav nav-tabs" id="used-tabs">
  83. <a class="nav-link nav-item <% if (types_from === 'subProject') { %>active<% } %>" data-toggle="tab" data-tab="subProject-used-tab" href="#subProject-used-tab" role="tab" type="subProject">项目</a>
  84. <a class="nav-link nav-item <% if (types_from !== 'subProject') { %>active<% } %>" data-toggle="tab" data-tab="tender-used-tab" href="#tender-used-tab" role="tab" type="tender">标段</a>
  85. <div class="ml-auto">
  86. <a href="javascript:void(0);" style="vertical-align: sub;" id="add-used-btn">新增用途</a>
  87. </div>
  88. </nav>
  89. <div class="tab-content my-2">
  90. <div class="tab-pane <% if (types_from === 'subProject') { %>active<% } %>" id="subProject-used-tab" style="max-height: 400px;overflow: auto;">
  91. <table class="table table-bordered">
  92. <thead><tr class="text-center">
  93. <th width="60%">名称</th>
  94. <th>操作</th>
  95. </tr>
  96. </thead>
  97. <tbody class="text-center" id="subProject-used-table">
  98. <tr>
  99. <td>合同</td>
  100. <td></td>
  101. </tr>
  102. <% for (const type of used) { %>
  103. <tr>
  104. <td><input class="form-control form-control-sm" name="value" placeholder="请输入值" value="<%- type %>"></td>
  105. <td>
  106. <a href="javascript:void(0);" class="btn btn-sm text-danger remove-used-btn"><i class="fa fa-remove"></i></a>
  107. </td>
  108. </tr>
  109. <% } %>
  110. </tbody>
  111. </table>
  112. </div>
  113. <div class="tab-pane <% if (types_from !== 'subProject') { %>active<% } %>" id="tender-used-tab" style="max-height: 400px;overflow: auto;">
  114. <table class="table table-bordered">
  115. <thead><tr class="text-center">
  116. <th width="60%">名称</th>
  117. <th>操作</th>
  118. </tr>
  119. </thead>
  120. <tbody class="text-center" id="tender-used-table">
  121. <tr>
  122. <td>合同</td>
  123. <td></td>
  124. </tr>
  125. <% for (const type of tender_used) { %>
  126. <tr>
  127. <td><input class="form-control form-control-sm" name="value" placeholder="请输入值" value="<%- type %>"></td>
  128. <td>
  129. <a href="javascript:void(0);" class="btn btn-sm text-danger remove-used-btn"><i class="fa fa-remove"></i></a>
  130. </td>
  131. </tr>
  132. <% } %>
  133. </tbody>
  134. </table>
  135. </div>
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. <div class="col-9">
  141. <div class="card mb-3">
  142. <div class="card-header d-flex justify-content-between" style="min-height: 47px;">
  143. <div class="float-left">合同附加属性(项目/标段合同同步生效)</div>
  144. <div class="float-right" id="show-attribute-btn" style="display: none">
  145. <button id="cancel-attribute-btn" class="btn btn-sm btn-secondary">取消</button>
  146. <button id="set-attribute-btn" class="btn btn-sm btn-success">保存</button>
  147. </div>
  148. </div>
  149. <div class="card-body">
  150. <table class="table">
  151. <tr class="text-center">
  152. <th width="15%">名称</th>
  153. <th width="15%">类型</th>
  154. <th width="15%">别名</th>
  155. <th width="10%">显示</th>
  156. <th width="">说明</th>
  157. <th width="15%">操作</th>
  158. </tr>
  159. <tbody class="text-center" id="attribute-set-table">
  160. <% for (const cs of attributeSet) { %>
  161. <tr code="<%- cs.field %>">
  162. <td><%- cs.name %></td><td><%- cs.type_name %></td>
  163. <% if (cs.fixed.indexOf('alias') >= 0) { %>
  164. <td class="disabled">-</td>
  165. <% } else {%>
  166. <td><input type="text" class="form-control form-control-sm" value="<%- cs.alias %>"></td>
  167. <% } %>
  168. <% if (cs.fixed.indexOf('show') >= 0 ) { %>
  169. <td>
  170. <div class="form-check">
  171. <input class="form-check-input" type="checkbox" id="inlineCheckbox-<%- cs.code %>" checked="" disabled="">
  172. <label class="form-check-label" for="inlineCheckbox-<%- cs.code %>"></label>
  173. </div>
  174. </td>
  175. <% } else { %>
  176. <td>
  177. <div class="form-check">
  178. <input class="form-check-input" type="checkbox" id="inlineCheckbox-<%- cs.code %>" <% if (cs.show) { %> checked <% } %> >
  179. <label class="form-check-label" for="inlineCheckbox-<%- cs.code %>"></label>
  180. </div>
  181. </td>
  182. <% } %>
  183. <td><%- cs.tip %></td>
  184. <td>
  185. <a href="javascript:;" class="move-up text-primary mr-2" style="text-decoration: none;">上移</a>
  186. <a href="javascript:;" class="move-down text-primary" style="text-decoration: none;">下移</a>
  187. </td>
  188. </tr>
  189. <% } %>
  190. </tbody>
  191. </table>
  192. </div>
  193. </div>
  194. <div class="card mb-3">
  195. <div class="card-header">
  196. <div class="float-left">审批设置</div>
  197. </div>
  198. <div class="card-body" id="contract-shenpi-set">
  199. <label class="mb-2"><i class="fa fa-list-ul"></i> 项目合同</label>
  200. <div class="form-group mb-1 ml-3">
  201. <div class="form-check form-check-inline mr-3">
  202. <input class="form-check-input" type="checkbox" id="openContractSubProjectShenpi" <% if (ctx.subProject.page_show.openContractSubProjectShenpi) { %>checked<% } %>>
  203. <label class="form-check-label" for="openContractSubProjectShenpi">开启「合同审批」功能</label>
  204. </div>
  205. <div class="form-check form-check-inline ml-3">
  206. <input class="form-check-input" type="checkbox" id="openContractPaySubProjectShenpi" <% if (ctx.subProject.page_show.openContractPaySubProjectShenpi) { %>checked<% } %>>
  207. <label class="form-check-label" for="openContractPaySubProjectShenpi">开启「支付/回款审批」功能</label>
  208. </div>
  209. </div>
  210. <label class="my-2"><i class="fa fa-list-ul"></i> 标段合同</label>
  211. <div class="form-group mb-1 ml-3">
  212. <div class="form-check form-check-inline mr-3">
  213. <input class="form-check-input" type="checkbox" id="openContractTenderShenpi" <% if (ctx.subProject.page_show.openContractTenderShenpi) { %>checked<% } %>>
  214. <label class="form-check-label" for="openContractTenderShenpi">开启「合同审批」功能</label>
  215. </div>
  216. <div class="form-check form-check-inline ml-3">
  217. <input class="form-check-input" type="checkbox" id="openContractPayTenderShenpi" <% if (ctx.subProject.page_show.openContractPayTenderShenpi) { %>checked<% } %>>
  218. <label class="form-check-label" for="openContractPayTenderShenpi">开启「支付/回款审批」功能</label>
  219. </div>
  220. </div>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. <script>
  230. const types_from = JSON.parse(unescape('<%- escape(JSON.stringify(types_from)) %>'));
  231. let subProject_type = JSON.parse(unescape('<%- escape(JSON.stringify(types)) %>'));
  232. let tender_type = JSON.parse(unescape('<%- escape(JSON.stringify(tender_types)) %>'));
  233. let subProject_used = JSON.parse(unescape('<%- escape(JSON.stringify(used)) %>'));
  234. let tender_used = JSON.parse(unescape('<%- escape(JSON.stringify(tender_used)) %>'));
  235. let attributeSet = JSON.parse(unescape('<%- escape(JSON.stringify(attributeSet)) %>'));
  236. </script>