edit.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <form class="layui-form p-4">
  5. <h3 class="pb-3">编辑合同</h3>
  6. <table class="layui-table layui-table-form">
  7. {gt name="$detail.pid" value="0"}
  8. <tr>
  9. <td class="layui-td-gray">母合同名称</td>
  10. <td colspan="5">{$detail.pname}</td>
  11. </tr>
  12. {/gt}
  13. <tr>
  14. <td class="layui-td-gray">合同名称<font>*</font></td>
  15. <td colspan="3"><input type="text" name="name" value="{$detail.name}" lay-verify="required" lay-reqText="请输入合同名称" autocomplete="off" placeholder="请输入合同名称" class="layui-input"></td>
  16. <td class="layui-td-gray">合同性质</td>
  17. <td>
  18. {eq name="$detail.type" value="1" }普通合同{/eq}
  19. {eq name="$detail.type" value="2" }框架合同{/eq}
  20. {eq name="$detail.type" value="3" }补充协议{/eq}
  21. {eq name="$detail.type" value="4" }其他合同{/eq}
  22. </td>
  23. </tr>
  24. <tr>
  25. <td class="layui-td-gray">签约主体<span style="font-size:12px;">(乙方)</span><font>*</font></td>
  26. <td>
  27. <select name="subject_id" lay-verify="required" lay-reqText="请选择签约主体公司">
  28. <option value="">请选择签约主体公司</option>
  29. {volist name=":contract_subject()" id="v"}
  30. <option value="{$v.id}" {eq name="$v.id" value="$detail.subject_id" } selected{/eq}>{$v.title}</option>
  31. {/volist}
  32. </select>
  33. </td>
  34. <td class="layui-td-gray">合同编号<font>*</font></td>
  35. <td>
  36. <input type="text" name="code" value="{$detail.code}" autocomplete="off" lay-verify="required" lay-reqText="请输入合同编号" placeholder="请输入合同编号" class="layui-input">
  37. </td>
  38. <td class="layui-td-gray">合同类别<font>*</font></td>
  39. <td>
  40. <select name="cate_id" lay-verify="required" lay-reqText="请选择合同类别">
  41. <option value="">请选择合同类别</option>
  42. {volist name=":contract_cate()" id="v"}
  43. <option value="{$v.id}" {eq name="$v.id" value="$detail.cate_id" } selected{/eq}>{$v.title}</option>
  44. {/volist}
  45. </select>
  46. </td>
  47. </tr>
  48. <tr>
  49. <td class="layui-td-gray">客户名称<span style="font-size:12px;">(甲方)</span><font>*</font></td>
  50. <td>
  51. {if condition="(isModule('customer') > 0) AND ($is_customer == 1)"}
  52. <input type="text" name="customer" value="{$detail.customer}" autocomplete="off" readonly lay-verify="required" lay-reqText="请输入客户名称" placeholder="请输入客户名称" class="layui-input customer-picker">
  53. {else/}
  54. <input type="text" name="customer" value="{$detail.customer}" autocomplete="off" lay-verify="required" lay-reqText="请输入客户名称" placeholder="请输入客户名称" class="layui-input">
  55. {/if}
  56. <input type="hidden" name="customer_id" value="{$detail.customer_id}">
  57. </td>
  58. <td class="layui-td-gray">签约客户代表</td>
  59. <td>
  60. <input type="text" name="customer_name" value="{$detail.customer_name}" autocomplete="off" lay-verify="required" lay-reqText="请输入客户代表姓名" placeholder="请输入客户代表姓名" class="layui-input">
  61. </td>
  62. <td class="layui-td-gray">客户联系电话<font>*</font></td>
  63. <td>
  64. <input type="text" name="customer_mobile" value="{$detail.customer_mobile}" autocomplete="off" lay-verify="required" lay-reqText="请输入客户联系电话" placeholder="请输入客户联系电话" class="layui-input">
  65. </td>
  66. </tr>
  67. <tr>
  68. <td class="layui-td-gray-2">客户联系地址</td>
  69. <td colspan="3">
  70. <input type="text" name="customer_address" value="{$detail.customer_address}" autocomplete="off" placeholder="请输入客户联系地址" class="layui-input">
  71. </td>
  72. <td class="layui-td-gray-2">合同始止日期<font>*</font></td>
  73. <td>
  74. <div id="barDate" class="layui-input-inline">
  75. <div class="layui-input-inline" style="width:110px; margin-bottom:0">
  76. <input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time" value="{$detail.start_time}" readonly lay-verify="required" lay-reqText="请选择合同开始时间">
  77. </div>
  78. ~
  79. <div class="layui-input-inline" style="width:110px;margin-bottom:0">
  80. <input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time" value="{$detail.end_time}" readonly lay-verify="required" lay-reqText="请选择合同结束时间">
  81. </div>
  82. </div>
  83. </td>
  84. </tr>
  85. {neq name="$detail.type" value="2"}
  86. <tr>
  87. <td class="layui-td-gray">合同金额{eq name="$detail.type" value="1"}<font>*</font>{/eq}</td>
  88. <td>
  89. <input type="text" name="cost" value="{$detail.cost}" {eq name="$detail.type" value="1"} lay-verify="required|number"{/eq} lay-reqText="请输入合同金额,数字" placeholder="请输入合同金额,数字" autocomplete="off" class="layui-input">
  90. </td>
  91. <td class="layui-td-gray">是否含税</td>
  92. <td>
  93. <input type="radio" name="is_tax" value="1" title="是" {eq name="$detail.is_tax" value="1" } checked{/eq} lay-filter="tax">
  94. <input type="radio" name="is_tax" value="0" title="否" {eq name="$detail.is_tax" value="0" } checked{/eq} lay-filter="tax">
  95. </td>
  96. <td class="layui-td-gray">税点(百分比)</td>
  97. <td>
  98. <input type="text" name="tax" value="{$detail.tax}"
  99. <input type="text" name="tax" value="" lay-verify="number" placeholder="请输入税点,数字" autocomplete="off" class="layui-input" {eq name="$detail.is_tax" value="0" } style="display:none;"{/eq}>
  100. </td>
  101. </tr>
  102. {/neq}
  103. <tr>
  104. <td colspan="6"><strong>签订信息</strong></td>
  105. </tr>
  106. <tr>
  107. <td class="layui-td-gray-2">合同签订人<font>*</font></td>
  108. <td>
  109. <div class="layui-input-inline" style="width:50%;">
  110. <input type="text" name="sign_name" value="{$detail.sign_name}" autocomplete="off" readonly lay-verify="required" lay-reqText="请选择合同签订人" placeholder="请选择合同签订人" class="layui-input">
  111. </div>
  112. <div class="layui-input-inline gray" style="width:42%;" id="sign_department">部门:{$detail.sign_department}</div>
  113. <input type="hidden" name="sign_uid" value="{$detail.sign_uid}">
  114. <input type="hidden" name="sign_did" value="{$detail.sign_did}">
  115. </td>
  116. <td class="layui-td-gray-2">合同签订时间<font>*</font></td>
  117. <td>
  118. <input type="text" name="sign_time" value="{$detail.sign_time}" readonly lay-verify="required" lay-reqText="请选择合同签订日期" placeholder="请选择合同签订日期" class="layui-input tool-time">
  119. </td>
  120. <td class="layui-td-gray-2">合同制定人<font>*</font></td>
  121. <td>
  122. <input type="text" name="prepared_name" value="{$detail.prepared_name}" autocomplete="off" readonly placeholder="请选择合同制定人" class="layui-input picker-one">
  123. <input type="hidden" name="prepared_uid" value="{$detail.prepared_uid}" lay-verify="required" lay-reqText="请选择合同制定人">
  124. </td>
  125. </tr>
  126. <tr>
  127. <td class="layui-td-gray-2">合同保管人<font>*</font></td>
  128. <td>
  129. <input type="text" name="keeper_name" value="{$detail.keeper_name}" autocomplete="off" readonly placeholder="请选择合同保管人" class="layui-input picker-one">
  130. <input type="hidden" name="keeper_uid" value="{$detail.keeper_uid}" lay-verify="required" lay-reqText="请选择合同保管人">
  131. </td>
  132. <td class="layui-td-gray">合同共享人员</td>
  133. <td colspan="3">
  134. <input type="text" name="share_names" value="{$detail.share_names}" autocomplete="off" readonly placeholder="请选择共享人员" class="layui-input picker-more">
  135. <input type="hidden" name="share_ids" value="{$detail.share_ids}">
  136. </td>
  137. </tr>
  138. <tr>
  139. <td colspan="6"><strong>相关附件</strong></td>
  140. </tr>
  141. <tr>
  142. <td class="layui-td-gray">
  143. <button type="button" class="layui-btn layui-btn-sm" id="uploadBtn"><i class="layui-icon"></i>附件上传</button>
  144. </td>
  145. <td colspan="5" style="line-height:inherit">
  146. <div class="layui-row" id="fileBox">
  147. <input type="hidden" data-type="file" name="file_ids" value="{$detail.file_ids}">
  148. {notempty name="$detail.file_ids"}
  149. {volist name="$detail.fileArray" id="vo"}
  150. <div class="layui-col-md4" id="uploadImg{$vo.id}">{:file_card($vo)}</div>
  151. {/volist}
  152. {/notempty}
  153. </div>
  154. </td>
  155. </tr>
  156. <tr>
  157. <td colspan="6"><strong>备注信息</strong></td>
  158. </tr>
  159. <tr>
  160. <td colspan="6">
  161. <textarea name="remark" placeholder="请输入备注信息" class="layui-textarea">{$detail.remark}</textarea>
  162. </td>
  163. </tr>
  164. </table>
  165. <div class="py-3">
  166. <input type="hidden" name="id" value="{$detail.id}">
  167. <input type="hidden" name="scene" value="edit">
  168. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
  169. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  170. </div>
  171. </form>
  172. {/block}
  173. <!-- /主体 -->
  174. <!-- 脚本 -->
  175. {block name="script"}
  176. <script>
  177. const moduleInit = ['tool','employeepicker','oaTool'];
  178. function gouguInit() {
  179. var form = layui.form,tool=layui.tool,table = layui.table,laydate = layui.laydate,oaTool = layui.oaTool, employeepicker = layui.employeepicker;
  180. //日期范围
  181. laydate.render({
  182. elem: '#barDate',
  183. range: ['#start_time', '#end_time'],
  184. rangeLinked:true
  185. });
  186. //相关附件上传
  187. oaTool.addFile();
  188. //选择关联的客户
  189. $('.customer-picker').on('click', function () {
  190. let that = $(this);
  191. let callback = function(data){
  192. $('[name="customer_id"]').val(data.id);
  193. $('[name="customer"]').val(data.name);
  194. $('[name="customer_name"]').val(data.contact_name);
  195. $('[name="customer_mobile"]').val(data.contact_mobile);
  196. $('[name="customer_address"]').val(data.address);
  197. }
  198. oaTool.customerPicker(callback);
  199. });
  200. //选择合同签订人弹窗
  201. $('body').on('click','[name="sign_name"]',function () {
  202. var ids=$('[name="sign_uid"]').val(),names=$('[name="sign_name"]').val();
  203. employeepicker.init({
  204. ids:ids,
  205. names:names,
  206. type:0,
  207. department_url: "/api/index/get_department_tree",
  208. employee_url: "/api/index/get_employee",
  209. callback:function(ids,names,dids,departments){
  210. $('[name="sign_uid"]').val(ids);
  211. $('[name="sign_name"]').val(names);
  212. $('[name="sign_did"]').val(dids);
  213. $('[name="sign_department"]').val(departments);
  214. }
  215. });
  216. });
  217. //radio选择
  218. form.on('radio(tax)', function(data){
  219. if(data.value == 0){
  220. $('[name="tax"]').val('0').hide();
  221. }else{
  222. $('[name="tax"]').val('').show();
  223. }
  224. });
  225. //监听提交
  226. form.on('submit(webform)', function (data) {
  227. if (data.field.type == 1 && data.field.cost == '') {
  228. layer.msg('请完善合同金额');
  229. return false;
  230. }
  231. if (data.field.is_tax == 1 && data.field.tax == '') {
  232. layer.msg('请完善税点');
  233. return false;
  234. }
  235. if (data.field.is_tax == 1 && data.field.cost == '') {
  236. layer.msg('请完善金额');
  237. return false;
  238. }
  239. let callback = function (e) {
  240. layer.msg(e.msg);
  241. if (e.code == 0) {
  242. tool.sideClose(1000);
  243. }
  244. }
  245. tool.post("/contract/index/add", data.field, callback);
  246. return false;
  247. });
  248. }
  249. </script>
  250. {/block}
  251. <!-- /脚本 -->