add.html 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <form class="layui-form p-page">
  5. <h3 class="pb-2">新增采购合同</h3>
  6. <table class="layui-table layui-table-form">
  7. <tr>
  8. <td class="layui-td-gray">合同名称<font>*</font></td>
  9. <td colspan="3"><input type="text" name="name" value="" lay-verify="required" lay-reqText="请输入合同名称" autocomplete="off" placeholder="请输入合同名称" class="layui-input"></td>
  10. <td class="layui-td-gray">合同性质</td>
  11. <td>
  12. <input type="hidden" name="types" value="{$types}">
  13. {eq name="$types" value="1" }普通采购{/eq}
  14. {eq name="$types" value="2" }物品采购{/eq}
  15. {eq name="$types" value="3" }服务采购{/eq}
  16. </td>
  17. </tr>
  18. <tr>
  19. <td class="layui-td-gray">签约主体<span style="font-size:12px;">(甲方)</span><font>*</font></td>
  20. <td colspan="3">
  21. <select name="subject_id" lay-verify="required" lay-reqText="请选择签约主体公司">
  22. <option value="">请选择签约主体公司</option>
  23. {volist name=":get_base_data('Enterprise')" id="v"}
  24. <option value="{$v.id}">{$v.title}</option>
  25. {/volist}
  26. </select>
  27. </td>
  28. <td class="layui-td-gray-2">合同始止日期<font>*</font></td>
  29. <td id="barDate" style="width:320px;">
  30. <div class="layui-input-inline" style="width:150px;">
  31. <input type="text" class="layui-input" id="start_time" value="" placeholder="选择时间区间" readonly name="start_time" lay-verify="required" lay-reqText="请选择合同开始时间">
  32. </div>
  33. ~
  34. <div class="layui-input-inline" style="width:150px;">
  35. <input type="text" class="layui-input" id="end_time" value="" placeholder="选择时间区间" readonly name="end_time" lay-verify="required" lay-reqText="请选择合同结束时间">
  36. </div>
  37. </td>
  38. </tr>
  39. <tr>
  40. <td class="layui-td-gray">供应商名称<span style="font-size:12px;">(乙方)</span><font>*</font></td>
  41. <td colspan="3">
  42. {eq name="$is_supplier" value="1"}
  43. <input type="text" name="supplier" autocomplete="off" value="" readonly lay-verify="required" lay-reqText="请输入供应商名称" placeholder="请输入供应商名称" class="layui-input supplier-picker">
  44. {else/}
  45. <input type="text" name="supplier" autocomplete="off" value="" lay-verify="required" lay-reqText="请输入供应商名称" placeholder="请输入供应商名称" class="layui-input">
  46. {/eq}
  47. <input type="hidden" name="supplier_id" value="0">
  48. </td>
  49. <td class="layui-td-gray">签约供应商代表<font>*</font></td>
  50. <td><input type="text" name="contact_name" value="" autocomplete="off" lay-verify="required" lay-reqText="请输入供应商代表姓名" placeholder="请输入供应商代表姓名" class="layui-input"></td>
  51. </tr>
  52. <tr>
  53. <td class="layui-td-gray-3">供应商联系地址</td>
  54. <td colspan="3"><input type="text" name="contact_address" value="" autocomplete="off" placeholder="请输入供应商联系地址" class="layui-input"></td>
  55. <td class="layui-td-gray-3">供应商联系电话</td>
  56. <td><input type="text" name="contact_mobile" value="" autocomplete="off" placeholder="请输入供应商联系电话" class="layui-input"></td>
  57. </tr>
  58. <tr>
  59. <td class="layui-td-gray">合同金额<font>*</font></td>
  60. <td>
  61. {eq name="$types" value="1"}
  62. <input type="text" name="cost" value="" lay-verify="required|number" lay-reqText="请输入合同金额,数字" placeholder="请输入合同金额,数字" autocomplete="off" class="layui-input">
  63. {/eq}
  64. {eq name="$types" value="2"}
  65. <input type="text" name="cost" value="" lay-verify="required|number" lay-reqText="请完善物品信息" placeholder="完善物品信息,合同金额自动计算" readonly class="layui-input layui-input-readonly">
  66. {/eq}
  67. {eq name="$types" value="3"}
  68. <input type="text" name="cost" value="" lay-verify="required|number" lay-reqText="请完善服务信息" placeholder="完善服务信息,合同金额自动计算" readonly class="layui-input layui-input-readonly">
  69. {/eq}
  70. </td>
  71. <td class="layui-td-gray">合同类别<font>*</font></td>
  72. <td>
  73. <select name="cate_id" lay-verify="required" lay-reqText="请选择合同类别">
  74. <option value="">请选择合同类别</option>
  75. {volist name=":get_base_data('ContractCate');" id="vo"}
  76. <option value="{$vo.id}">{$vo.title}</option>
  77. {/volist}
  78. </select>
  79. </td>
  80. <td class="layui-td-gray">合同编号<font>*</font></td>
  81. <td><input type="text" name="code" value="{$codeno}" autocomplete="off" {eq name="$is_codeno" value="1"}readonly{/eq} lay-verify="required" lay-reqText="请输入合同编号" placeholder="请输入合同编号" class="layui-input"></td>
  82. </tr>
  83. <tr>
  84. <td colspan="6"><strong>签订信息</strong></td>
  85. </tr>
  86. <tr>
  87. <td class="layui-td-gray-2">合同签订人<font>*</font></td>
  88. <td>
  89. <input type="text" name="sign_name" value="" autocomplete="off" readonly lay-verify="required" lay-reqText="请选择合同签订人" placeholder="请选择合同签订人" class="layui-input picker-diy">
  90. <input type="hidden" name="sign_uid" value="0">
  91. </td>
  92. <td class="layui-td-gray-2">合同所属部门<font>*</font></td>
  93. <td>
  94. <input type="text" name="sign_department" value="" autocomplete="off" readonly lay-verify="required" lay-reqText="请选择合同所属部门" placeholder="请选择合同所属部门" class="layui-input picker-oa" data-types="department">
  95. <input type="hidden" name="did" value="0">
  96. </td>
  97. <td class="layui-td-gray-2">合同签订日期<font>*</font></td>
  98. <td><input type="text" name="sign_time" value="" readonly lay-verify="required" lay-reqText="请选择合同签订日期" placeholder="请选择合同签订日期" class="layui-input tool-time"></td>
  99. </tr>
  100. <tr>
  101. <td class="layui-td-gray-2">合同制定人</td>
  102. <td>
  103. <input type="text" name="prepared_name" value="" readonly placeholder="请选择合同制定人" class="layui-input picker-admin">
  104. <input type="hidden" name="prepared_uid" value="0">
  105. </td>
  106. <td class="layui-td-gray-2">合同保管人</td>
  107. <td>
  108. <input type="text" name="keeper_name" value="" readonly placeholder="请选择合同保管人" class="layui-input picker-admin">
  109. <input type="hidden" name="keeper_uid" value="0">
  110. </td>
  111. <td class="layui-td-gray">合同共享人员</td>
  112. <td colspan="3">
  113. <input type="text" name="share_names" value="" readonly placeholder="请选择共享人员" class="layui-input picker-admin" data-type="2">
  114. <input type="hidden" name="share_ids" value="">
  115. </td>
  116. </tr>
  117. {eq name="$types" value="2"}{include file="/purchase/add_purchased"}{/eq}
  118. {eq name="$types" value="3"}{include file="/purchase/add_service"}{/eq}
  119. <tr>
  120. <td colspan="6"><strong>相关附件</strong></td>
  121. </tr>
  122. <tr>
  123. <td class="layui-td-gray">
  124. <button type="button" class="layui-btn layui-btn-sm" id="uploadBtn"><i class="layui-icon"></i>附件上传</button>
  125. </td>
  126. <td colspan="5">
  127. <div class="layui-row" id="uploadBox">
  128. <input type="hidden" id="fileBoxInput" data-type="file" name="file_ids" value="">
  129. </div>
  130. </td>
  131. </tr>
  132. <tr>
  133. <td colspan="6"><strong>备注信息</strong></td>
  134. </tr>
  135. <tr>
  136. <td colspan="6"><textarea name="remark" placeholder="请输入备注信息" class="layui-textarea"></textarea></td>
  137. </tr>
  138. </table>
  139. <div class="pt-4">
  140. <input type="hidden" name="scene" value="add">
  141. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交保存</button>
  142. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  143. </div>
  144. </form>
  145. {/block}
  146. <!-- /主体 -->
  147. <!-- 脚本 -->
  148. {block name="script"}
  149. <script>
  150. const moduleInit = ['tool','oaPicker','uploadPlus'];
  151. function gouguInit() {
  152. var form = layui.form,tool=layui.tool,laydate = layui.laydate, oaPicker = layui.oaPicker,uploadPlus = layui.uploadPlus;
  153. if(typeof purchased_fun==='function'){
  154. purchased_fun(layui);
  155. }
  156. if(typeof service_fun==='function'){
  157. service_fun(layui);
  158. }
  159. //日期范围
  160. laydate.render({
  161. elem: '#barDate',
  162. range: ['#start_time', '#end_time']
  163. });
  164. //附件上传
  165. var attachment = new uploadPlus({
  166. "target":'uploadBtn',
  167. "targetBox":'uploadBox'
  168. });
  169. //选择员工弹窗
  170. $('body').on('click','.picker-diy',function () {
  171. let that = $(this);
  172. let ids=that.next().val()+'',names = that.val()+'';
  173. oaPicker.employeeInit({
  174. ids:ids,
  175. names:names,
  176. type:1,//1是单选,2是多选
  177. callback:function(data){
  178. //这里是选择后的回调方法,可以根据具体需求自定义写哦
  179. let select_id=[],select_name=[];
  180. for(var a=0; a<data.length;a++){
  181. select_id.push(data[a].id);
  182. select_name.push(data[a].name);
  183. }
  184. that.val(select_name.join(','));
  185. that.next().val(select_id.join(','));
  186. }
  187. });
  188. });
  189. //选择供应商弹窗
  190. $('body').on('click','.supplier-picker',function () {
  191. let that = $(this),ids = [],titles=[],contact_name=[],contact_mobile=[],address=[],map = {},types = 'supplier',type = 1;
  192. let callback = function(data){
  193. for ( var i = 0; i <data.length; i++){
  194. ids.push(data[i].id);
  195. titles.push(data[i].title);
  196. contact_name.push(data[i].contact_name);
  197. contact_mobile.push(data[i].contact_mobile);
  198. address.push(data[i].address);
  199. }
  200. that.val(titles.join(','));
  201. that.next().val(ids.join(','));
  202. $('[name="contact_name"]').val(contact_name.join(','));
  203. $('[name="contact_mobile"]').val(contact_mobile.join(','));
  204. $('[name="contact_address"]').val(address.join(','));
  205. }
  206. oaPicker.picker(types,type,callback,map);
  207. });
  208. //监听提交
  209. form.on('submit(webform)', function (data) {
  210. let callback = function (e) {
  211. layer.msg(e.msg);
  212. if (e.code == 0) {
  213. tool.sideClose(1000);
  214. }
  215. }
  216. let clickbtn = $(this);
  217. tool.post("/contract/purchase/add", data.field, callback,clickbtn);
  218. return false;
  219. });
  220. }
  221. </script>
  222. {/block}
  223. <!-- /脚本 -->