add.html 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. {extend name="../../base/view/common/base" /}
  2. {block name="body"}
  3. <form class="layui-form p-page" lay-filter="form-feerefund">
  4. <h3 class="pb-2">费用返还申请</h3>
  5. <table class="layui-table layui-table-form">
  6. <tr>
  7. <td class="layui-td-gray-2">客户ID<font>*</font></td>
  8. <td colspan="3">
  9. <input type="text" name="customer_id" class="layui-input"
  10. value="{$detail.customer_id|default=''}"
  11. lay-verify="required" lay-reqText="请输入客户ID"
  12. placeholder="请输入客户ID">
  13. </td>
  14. </tr>
  15. <tr>
  16. <td class="layui-td-gray-2">费项维度<font>*</font></td>
  17. <td colspan="3">
  18. {volist name="$fee_dimensions" id="vo"}
  19. <input type="checkbox" name="fee_dim_cb" lay-skin="primary" lay-filter="fee_dim"
  20. value="{$vo.value}" title="{$vo.title}"
  21. {in name="$vo.value" value="$detail.fee_dimension"}checked{/in}>
  22. {/volist}
  23. <input type="hidden" name="fee_dimension" value="{$detail.fee_dimension|default=''}">
  24. </td>
  25. </tr>
  26. <tr>
  27. <td class="layui-td-gray-2">卡号<font>*</font></td>
  28. <td colspan="3">
  29. <input type="text" name="card_no" class="layui-input"
  30. value="{$detail.card_no|default=''}"
  31. lay-verify="required" lay-reqText="请输入卡号"
  32. placeholder="单张卡填卡ID,多张卡的情况下可以填写卡BIN">
  33. </td>
  34. </tr>
  35. <tr>
  36. <td class="layui-td-gray-2">退款项<font>*</font></td>
  37. <td colspan="3">
  38. <select name="refund_item" lay-verify="required" lay-reqText="请选择退款项" lay-filter="refund_item">
  39. <option value="">-- 请选择 --</option>
  40. {volist name="$refund_items" id="vo"}
  41. <option value="{$vo.value}" data-is-other="{$vo.is_other}" {eq name="$detail.refund_item" value="$vo.value"} selected{/eq}>{$vo.title}</option>
  42. {/volist}
  43. </select>
  44. </td>
  45. </tr>
  46. <tr id="row_refund_item_remark" style="display:none;">
  47. <td class="layui-td-gray-2">退款项备注<font>*</font></td>
  48. <td colspan="3">
  49. <input type="text" name="refund_item_remark" class="layui-input"
  50. value="{$detail.refund_item_remark|default=''}"
  51. placeholder="选择【其他】时必填,请说明具体退款项">
  52. </td>
  53. </tr>
  54. <tr>
  55. <td class="layui-td-gray-2">退款原因<font>*</font></td>
  56. <td colspan="3">
  57. <select name="refund_reason" lay-verify="required" lay-reqText="请选择退款原因" lay-filter="refund_reason">
  58. <option value="">-- 请选择 --</option>
  59. {volist name="$refund_reasons" id="vo"}
  60. <option value="{$vo.value}" {eq name="$detail.refund_reason" value="$vo.value"} selected{/eq}>{$vo.title}</option>
  61. {/volist}
  62. </select>
  63. </td>
  64. </tr>
  65. <tr id="row_agreement_no" style="display:none;">
  66. <td class="layui-td-gray-2">约定审批编号<font>*</font></td>
  67. <td colspan="3">
  68. <input type="text" name="agreement_no" class="layui-input"
  69. value="{$detail.agreement_no|default=''}"
  70. placeholder="退款原因为【约定,已过审批】时必填">
  71. </td>
  72. </tr>
  73. <tr>
  74. <td class="layui-td-gray-2">具体退款原因<font>*</font></td>
  75. <td colspan="3">
  76. <input type="text" name="refund_reason_detail" class="layui-input"
  77. value="{$detail.refund_reason_detail|default=''}"
  78. lay-verify="required" lay-reqText="请填写具体退款原因"
  79. placeholder="请填写具体退款原因">
  80. </td>
  81. </tr>
  82. <tr>
  83. <td class="layui-td-gray-2">备注</td>
  84. <td colspan="3">
  85. <textarea name="remark" class="layui-textarea"
  86. placeholder="选填">{$detail.remark|default=''}</textarea>
  87. </td>
  88. </tr>
  89. <tr>
  90. <td class="layui-td-gray-2">附件 <button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon layui-icon-upload"></i></button></td>
  91. <td colspan="3">
  92. <div class="layui-row" id="uploadBox">
  93. <input data-type="file" type="hidden" name="file_ids" value="{$detail.file_ids|default=''}">
  94. {notempty name="$detail.file_ids"}
  95. {volist name="$detail.file_array" id="vo"}
  96. <div class="layui-col-md4">{:file_card($vo)}</div>
  97. {/volist}
  98. {/notempty}
  99. </div>
  100. </td>
  101. </tr>
  102. </table>
  103. <div id="checkBox"
  104. data-status="{$detail.check_status|default=0}"
  105. data-id="{$detail.id|default=0}"
  106. data-checkflowid="{$detail.check_flow_id|default=0}"
  107. class="pt-3"></div>
  108. <div class="pt-4">
  109. <input type="hidden" name="id" value="{$detail.id|default=0}">
  110. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
  111. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  112. </div>
  113. </form>
  114. {/block}
  115. {block name="script"}
  116. <script>
  117. const moduleInit = ['tool', 'uploadPlus', 'oaCheck'];
  118. function gouguInit() {
  119. var form = layui.form, tool = layui.tool,
  120. uploadPlus = layui.uploadPlus, oaCheck = layui.oaCheck;
  121. oaCheck.init({ check_name: 'fee_refund', check_btn: 0 });
  122. var fileUp = new uploadPlus();
  123. // 费项维度(多选):将选中的 value 收集为逗号串写入隐藏域
  124. function syncFeeDimension() {
  125. var arr = [];
  126. $('input[name=fee_dim_cb]:checked').each(function () {
  127. arr.push($(this).val());
  128. });
  129. $('input[name=fee_dimension]').val(arr.join(','));
  130. }
  131. form.on('checkbox(fee_dim)', syncFeeDimension);
  132. // 退款项选择【其他】时显示备注(由 is_other 字段控制)
  133. function checkRefundItemRemark() {
  134. var isOther = $('select[name=refund_item] option:selected').data('is-other');
  135. if (isOther == 1) {
  136. $('#row_refund_item_remark').show();
  137. $('input[name=refund_item_remark]').attr('lay-verify', 'required').attr('lay-reqText', '请填写退款项备注');
  138. } else {
  139. $('#row_refund_item_remark').hide();
  140. $('input[name=refund_item_remark]').removeAttr('lay-verify').removeAttr('lay-reqText');
  141. }
  142. }
  143. checkRefundItemRemark();
  144. form.on('select(refund_item)', function () {
  145. checkRefundItemRemark();
  146. form.render('select');
  147. });
  148. // 退款原因为【约定,已过审批】(value=1)时显示并必填约定审批编号
  149. function checkAgreementNo() {
  150. var reason = $('select[name=refund_reason]').val();
  151. if (reason == 1) {
  152. $('#row_agreement_no').show();
  153. $('input[name=agreement_no]').attr('lay-verify', 'required').attr('lay-reqText', '请填写约定审批编号');
  154. } else {
  155. $('#row_agreement_no').hide();
  156. $('input[name=agreement_no]').removeAttr('lay-verify').removeAttr('lay-reqText');
  157. }
  158. }
  159. checkAgreementNo();
  160. form.on('select(refund_reason)', function () {
  161. checkAgreementNo();
  162. form.render('select');
  163. });
  164. form.on('submit(webform)', function (data) {
  165. syncFeeDimension();
  166. if (!data.field.fee_dimension) {
  167. layer.msg('请选择费项维度');
  168. return false;
  169. }
  170. let callback = function (e) {
  171. layer.msg(e.msg);
  172. if (e.code == 0) {
  173. let checkCallback = function (e) {
  174. layer.msg(e.msg);
  175. if (e.code == 0) tool.sideClose(1000);
  176. };
  177. data.field.check_name = 'fee_refund';
  178. data.field.action_id = e.data.return_id;
  179. oaCheck.submit(data.field, checkCallback);
  180. }
  181. };
  182. let clickbtn = $(this);
  183. tool.post('/finance/feerefund/add', data.field, callback, clickbtn);
  184. return false;
  185. });
  186. }
  187. </script>
  188. {/block}