edit.html 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <form class="layui-form p-page">
  5. <h3 class="pb-3">编辑报销申请</h3>
  6. <table class="layui-table layui-table-form">
  7. <tr>
  8. <td class="layui-td-gray-2">报销员工</td>
  9. <td>{$detail.admin_name}</td>
  10. <td class="layui-td-gray">报销部门</td>
  11. <td>{$detail.department|default=''}</td>
  12. <td class="layui-td-gray">报销主体</td>
  13. <td>
  14. <select name="subject_id" lay-verify="required" lay-reqText="请选择报销主体">
  15. <option value="">请选择报销主体</option>
  16. {volist name=":get_base_data('enterprise')" id="vo"}
  17. <option value="{$vo.id}" {eq name="$detail.subject_id" value="$vo.id"} selected{/eq}>{$vo.title}</option>
  18. {/volist}
  19. </select>
  20. </td>
  21. </tr>
  22. <tr>
  23. <td class="layui-td-gray">凭证编号<font>*</font></td>
  24. <td><input type="text" name="code" autocomplete="off" {eq name="$is_codeno" value="1"}readonly{/eq} lay-verify="required" placeholder="报销凭证编号" lay-reqText="请填写报销凭证编号" class="layui-input" value="{$detail.code}"></td>
  25. <td class="layui-td-gray-2">原始单据日期<font>*</font></td>
  26. <td><input type="text" class="layui-input tool-time" id="expense_time" name="expense_time" lay-verify="required" placeholder="请选择原始单据日期" lay-reqText="请选择原始单据日期" readonly value="{$detail.expense_time}"></td>
  27. <td class="layui-td-gray">入账月份<font>*</font></td>
  28. <td><input type="text" class="layui-input tool-time" data-type="month" name="income_month" lay-verify="required" placeholder="请选择入账月份" lay-reqText="请选择入账月份" readonly value="{$detail.income_month_str}"></td>
  29. </tr>
  30. <tr>
  31. <td class="layui-td-gray">关联项目</td>
  32. <td colspan="5">
  33. <input type="text" class="layui-input picker-oa" name="ptname" data-types="project" placeholder="请选择需要关联的项目" readonly value="{$detail.ptname|default=""}">
  34. <input type="hidden" class="layui-input" name="project_id" value="{$detail.project_id}">
  35. </td>
  36. </tr>
  37. <tr>
  38. <td class="layui-td-gray">冲抵借支</td>
  39. <td colspan="5">
  40. <input type="text" class="layui-input picker-oa" data-types="loan" name="loan" placeholder="请选择需要冲抵借支记录" readonly value="{$detail.loan}">
  41. <input type="hidden" class="layui-input" name="loan_id" value="{$detail.loan_id}">
  42. </td>
  43. </tr>
  44. <tr>
  45. <td class="layui-td-gray">报销选项<font>*</font></td>
  46. <td colspan="5">
  47. <table id="interfix" class="layui-table layui-table-min" style="margin:0;">
  48. <tr>
  49. <th width="100">报销金额</th>
  50. <th width="120">报销类别</th>
  51. <th>备注信息</th>
  52. <th width="60">操作</th>
  53. </tr>
  54. {volist name="$detail.list" id="val"}
  55. <tr class="more_interfix">
  56. <td><input type="text" name="amount[]" value="{$val.amount}" class="layui-input" lay-verify="required|number" lay-reqText="请完善报销金额"></td>
  57. <td style="text-align:left">
  58. <select name="cate_id[]" lay-verify="required" lay-reqText="请选择报销项目">
  59. <option value="">请选择</option>
  60. {volist name="$expense_cate" id="vo"}
  61. <option value="{$vo.id}" {eq name="$vo.id" value="$val.cate_id"} selected{/eq}>{$vo.title}</option>
  62. {/volist}
  63. </select>
  64. </td>
  65. <td><input type="text" name="remarks[]" class="layui-input" value="{$val.remarks}"><input type="hidden" name="expense_id[]" class="layui-input" value="{$val.id}"></td>
  66. <td><a class="layui-btn layui-btn-danger layui-btn-xs" data-id="{$val.id}" lay-event="del">删除</a></td>
  67. </tr>
  68. {/volist}
  69. </table>
  70. <div class="pt-2">
  71. <button class="layui-btn layui-btn-sm" type="button" id="addInterfix">+ 报销选项</button>
  72. </div>
  73. </td>
  74. </tr>
  75. <tr>
  76. <td class="layui-td-gray">
  77. <div class="layui-input-inline">附件</div>
  78. <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button></div>
  79. </td>
  80. <td colspan="5">
  81. <div class="layui-row" id="uploadBox">
  82. <input type="hidden" name="file_ids" data-type="file" value="{$detail.file_ids}">
  83. {notempty name="$detail.file_ids"}
  84. {volist name="$detail.file_array" id="vo"}
  85. <div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo)}</div>
  86. {/volist}
  87. {/notempty}
  88. </div>
  89. </td>
  90. </tr>
  91. </table>
  92. <div id="checkBox" data-status="{$detail.check_status}" data-id="{$detail.id}" data-checkflowid="{$detail.check_flow_id}"></div>
  93. <div class="pt-4">
  94. <input name="id" id="id" type="hidden" value="{$detail.id}">
  95. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">保存并提交审核</button>
  96. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  97. </div>
  98. </form>
  99. <div id="selectTem" style="display:none;">
  100. <select name="cate_id[]" lay-verify="required" lay-reqText="请选择报销项目">
  101. <option value="">请选择</option>
  102. {volist name="$expense_cate" id="vo"}
  103. <option value="{$vo.id}">{$vo.title}</option>
  104. {/volist}
  105. </select>
  106. </div>
  107. {/block}
  108. <!-- /主体 -->
  109. <!-- 脚本 -->
  110. {block name="script"}
  111. <script>
  112. const moduleInit = ['tool','oaPicker','uploadPlus','oaCheck'];
  113. function gouguInit() {
  114. var form = layui.form,tool=layui.tool,table=layui.table,uploadPlus = layui.uploadPlus,oaCheck = layui.oaCheck;
  115. //相关附件上传
  116. var attachment = new uploadPlus();
  117. //审批相关
  118. oaCheck.init({
  119. check_name:'expense',
  120. check_btn:0
  121. });
  122. //添加报销信息表格
  123. $('#addInterfix').on('click',function(){
  124. var html = '';
  125. var selectTem=$('#selectTem').html();
  126. html += '<tr class="more_interfix">\
  127. <td><input type="text" name="amount[]" class="layui-input" lay-verify="required|number" lay-reqText="请完善报销金额"></td>\
  128. <td style="text-align:left">'+selectTem+'</td>\
  129. <td><input type="text" name="remarks[]" class="layui-input"><input type="hidden" name="expense_id[]" class="layui-input" value="0"></td>\
  130. <td><a class="layui-btn layui-btn-danger layui-btn-xs" data-id="0" lay-event="del">删除</a></td>\
  131. </tr>';
  132. $("#interfix").append(html).find('.tr-none').remove();
  133. form.render();
  134. });
  135. $('#interfix').on('click', '[lay-event="del"]', function() {
  136. if($('.more_interfix').length<2){
  137. layer.msg('至少保留一个报销选项');
  138. return false;
  139. }
  140. var that=$(this);
  141. var _id = that.data('id');
  142. if(_id>0){
  143. layer.confirm('确定删除该报销数据项?', {
  144. icon: 3,
  145. title: '提示'
  146. }, function(index) {
  147. $.ajax({
  148. url: "/finance/api/del_expense_interfix",
  149. type:'post',
  150. data: {id: _id},
  151. success: function(res) {
  152. layer.msg(res.msg);
  153. if (res.code == 0) {
  154. that.parents(".more_interfix").remove();
  155. }
  156. }
  157. })
  158. layer.close(index);
  159. });
  160. }
  161. else{
  162. that.parents(".more_interfix").remove();
  163. }
  164. });
  165. //监听提交
  166. form.on('submit(webform)', function(data){
  167. var interfix = $('.more_interfix');
  168. if(interfix.length <1 ){
  169. layer.msg('至少要保留一个报销选项');
  170. return false;
  171. }
  172. tool.ask('审核期间不能编辑修改,确定报销数据无误?', function(index) {
  173. let callback = function (e) {
  174. layer.msg(e.msg);
  175. if (e.code == 0) {
  176. let checkCallback = function (e) {
  177. layer.msg(e.msg);
  178. if (e.code == 0) {
  179. tool.sideClose(1000);
  180. }
  181. }
  182. data.field.check_name = 'expense';
  183. data.field.action_id = e.data.return_id;
  184. oaCheck.submit(data.field,checkCallback);
  185. }
  186. }
  187. tool.post("/finance/expense/add", data.field, callback);
  188. layer.close(index);
  189. });
  190. return false;
  191. });
  192. }
  193. </script>
  194. {/block}
  195. <!-- /脚本 -->