config.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. {extend name="base"/}
  2. {block name="resources"}
  3. <style>
  4. .layui-card.card-common.card-brief .balance-boday {
  5. padding-left: 20px
  6. }
  7. .layui-card.card-common.card-brief .layui-form-radio {
  8. margin: 0px
  9. }
  10. .invoice-content-block .layui-form-select {
  11. margin-bottom: 10px
  12. }
  13. .invoice-content-block .layui-form-select:last-child {
  14. margin-bottom: 0
  15. }
  16. .invoice-content-block .item {
  17. position: relative;
  18. margin-bottom: 10px
  19. }
  20. .invoice-content-block .item .layui-icon-close {
  21. font-size: 12px;
  22. position: absolute;
  23. top: -8px;
  24. right: -8px;
  25. width: 16px;
  26. height: 16px;
  27. line-height: 16px;
  28. text-align: center;
  29. color: #fff;
  30. -webkit-border-radius: 10px;
  31. -moz-border-radius: 10px;
  32. border-radius: 10px;
  33. background: rgba(0, 0, 0, .3);
  34. cursor: pointer
  35. }
  36. .invoice-tip {
  37. padding-left: 90px;
  38. }
  39. .examples {
  40. cursor: pointer;
  41. }
  42. .examples2 {
  43. cursor: pointer;
  44. font-weight: 600;
  45. }
  46. .radio-type{
  47. display: none;
  48. }
  49. </style>
  50. {/block}
  51. {block name="main"}
  52. <div class="layui-form">
  53. <div class="layui-card card-common card-brief">
  54. <div class="layui-card-header">
  55. <span class="card-title">余额支付</span>
  56. </div>
  57. <div class="layui-form-item balance-boday">
  58. <label class="layui-form-label">是否启用:</label>
  59. <div class="layui-input-block">
  60. <div class="layui-input-inline">
  61. <input type="radio" name="balance_show" value="0" title="关闭" autocomplete="off" class="layui-input len-long" {if $balance_config.balance_show==0} checked {/if}>
  62. <input type="radio" name="balance_show" value="1" title="开启" autocomplete="off" class="layui-input len-long" {if $balance_config.balance_show==1} checked {/if}>
  63. </div>
  64. </div>
  65. <div class="word-aux">当启用余额支付,在客户端待支付订单会显示使用余额,反之,则不显示。 <a onclick="showDemo()" class="examples text-color">查看示例</a></div>
  66. </div>
  67. </div>
  68. <div class="layui-card card-common card-brief">
  69. <div class="layui-card-header">
  70. <span class="card-title">订单设置</span>
  71. </div>
  72. <div class="layui-card-body">
  73. <div class="layui-form-item">
  74. <label class="layui-form-label">未付款自动关闭时间:</label>
  75. <div class="layui-input-block">
  76. <div class="layui-input-inline">
  77. <input type="number" name="order_auto_close_time" value="{$order_event_time_config.auto_close ?? 0}" lay-verify="closetime" autocomplete="off" class="layui-input len-short">
  78. </div>
  79. <span class="layui-form-mid">分钟</span>
  80. </div>
  81. <div class="word-aux">订单创建后多长时间未付款自动关闭</div>
  82. </div>
  83. <div class="layui-form-item">
  84. <label class="layui-form-label">发货后自动收货时间:</label>
  85. <div class="layui-input-block">
  86. <div class="layui-input-inline">
  87. <input type="number" name="order_auto_take_delivery_time" value="{$order_event_time_config.auto_take_delivery ?? ''}" lay-verify="deliverytime" autocomplete="off" class="layui-input len-short">
  88. </div>
  89. <span class="layui-form-mid">天</span>
  90. </div>
  91. <div class="word-aux">订单发货后多长时间后自动收货</div>
  92. </div>
  93. <div class="layui-form-item">
  94. <label class="layui-form-label">收货后自动完成时间:</label>
  95. <div class="layui-input-block">
  96. <div class="layui-input-inline">
  97. <input type="number" name="order_auto_complete_time" value="{$order_event_time_config.auto_complete ?? ''}" lay-verify="positiv" autocomplete="off" class="layui-input len-short">
  98. </div>
  99. <span class="layui-form-mid">天</span>
  100. </div>
  101. <div class="word-aux">收货后,多长时间订单自动完成</div>
  102. </div>
  103. <div class="layui-form-item">
  104. <label class="layui-form-label">完成后可维权时间:</label>
  105. <div class="layui-input-block">
  106. <div class="layui-input-inline">
  107. <input type="number" name="after_sales_time" value="{$order_event_time_config.after_sales_time ?? 0}" lay-verify="positivEinteger" autocomplete="off" class="layui-input len-short">
  108. </div>
  109. <span class="layui-form-mid">天</span>
  110. </div>
  111. <div class="word-aux">订单完成后,多长时间内可申请维权,设置为0则订单完成后不可维权</div>
  112. </div>
  113. <div class="layui-form-item">
  114. <label class="layui-form-label">主动退款设置:</label>
  115. <div class="layui-input-block">
  116. <div class="layui-input-inline">
  117. <input type="radio" name="do_refund" value="1" title="直接确认退款" autocomplete="off" class="layui-input len-long" {if empty($order_event_time_config.do_refund) || $order_event_time_config.do_refund==1} checked {/if}>
  118. <input type="radio" name="do_refund" value="2" title="发起退款申请" autocomplete="off" class="layui-input len-long" {if !empty($order_event_time_config.do_refund) && $order_event_time_config.do_refund==2} checked {/if}>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. <div class="layui-card card-common card-brief">
  125. <div class="layui-card-header">
  126. <span class="card-title">评价设置</span>
  127. </div>
  128. <div class="layui-card-body">
  129. <div class="layui-form-item">
  130. <label class="layui-form-label">订单评价:</label>
  131. <div class="layui-input-block">
  132. <div class="layui-input-inline">
  133. <input type="radio" name="evaluate_status" value="0" title="关闭" autocomplete="off" class="layui-input len-long" {if $order_evaluate_config.evaluate_status==0} checked {/if}>
  134. <input type="radio" name="evaluate_status" value="1" title="开启" autocomplete="off" class="layui-input len-long" {if $order_evaluate_config.evaluate_status==1} checked {/if}>
  135. </div>
  136. </div>
  137. <div class="word-aux">开启订单评价功能</div>
  138. </div>
  139. <div class="layui-form-item">
  140. <label class="layui-form-label">显示评价:</label>
  141. <div class="layui-input-block">
  142. <div class="layui-input-inline">
  143. <input type="radio" name="evaluate_show" value="0" title="关闭" autocomplete="off" class="layui-input len-long" {if $order_evaluate_config.evaluate_show==0} checked {/if}>
  144. <input type="radio" name="evaluate_show" value="1" title="开启" autocomplete="off" class="layui-input len-long" {if $order_evaluate_config.evaluate_show==1} checked {/if}>
  145. </div>
  146. </div>
  147. <div class="word-aux">前台商品详情是否显示评价</div>
  148. </div>
  149. <div class="layui-form-item">
  150. <label class="layui-form-label">评价审核:</label>
  151. <div class="layui-input-block">
  152. <div class="layui-input-inline">
  153. <input type="radio" name="evaluate_audit" value="0" title="关闭" autocomplete="off" class="layui-input len-long" {if $order_evaluate_config.evaluate_audit==0} checked {/if}>
  154. <input type="radio" name="evaluate_audit" value="1" title="开启" autocomplete="off" class="layui-input len-long" {if $order_evaluate_config.evaluate_audit==1} checked {/if}>
  155. </div>
  156. </div>
  157. <div class="word-aux">评价是否需要后台审核</div>
  158. </div>
  159. </div>
  160. </div>
  161. <div class="layui-card card-common card-brief">
  162. <div class="layui-card-header">
  163. <span class="card-title">发票设置</span>
  164. </div>
  165. <div class="layui-card-body">
  166. <div class="layui-form-item">
  167. <label class="layui-form-label"><span class="required">*</span>发票开关:</label>
  168. <div class="layui-input-inline">
  169. <input type="radio" name="invoice_status" value="0" title="关闭" lay-filter='postage' autocomplete="off" class="layui-input len-long" {if $order_event_time_config.invoice_status==0} checked {/if}>
  170. <input type="radio" name="invoice_status" value="1" title="开启" lay-filter='postage' autocomplete="off" class="layui-input len-long" {if $order_event_time_config.invoice_status==1} checked {/if}>
  171. </div>
  172. </div>
  173. <div class="layui-form-item radio-type-box {if $order_event_time_config.invoice_status==0} radio-type {/if}">
  174. <label class="layui-form-label"><span class="required">*</span>发票税率:</label>
  175. <div class="layui-input-inline">
  176. <input type="number" name="invoice_rate" min="0" lay-verify="required" value="{$order_event_time_config.invoice_rate}" placeholder="请输入税率" autocomplete="off" class="layui-input len-short">
  177. </div>
  178. <span class="layui-form-mid">%</span>
  179. </div>
  180. <div class="layui-form-item invoice-content-block radio-type-box {if $order_event_time_config.invoice_status==0} radio-type {/if}">
  181. <label class="layui-form-label"><span class="required">*</span>发票内容:</label>
  182. <div class="layui-input-inline invoice-content-box">
  183. <input type="hidden" lay-verify="invoice_content2">
  184. {if !empty($order_event_time_config.invoice_content)}
  185. {foreach $order_event_time_config.invoice_content as $k => $v}
  186. <div class="item">
  187. <input type="text" name="invoice_content[]" lay-verify="invoice_content" value="{$v}" placeholder="请输入发票内容" autocomplete="off" class="layui-input len-short short-required">
  188. <i class="layui-icon layui-icon-close"></i>
  189. </div>
  190. {/foreach}
  191. {else/}
  192. <div class="item">
  193. <input type="text" name="invoice_content[]" lay-verify="invoice_content" value="" placeholder="请输入发票内容" autocomplete="off" class="layui-input len-short short-required">
  194. <i class="layui-icon layui-icon-close"></i>
  195. </div>
  196. {/if}
  197. </div>
  198. <a class="layui-btn layui-btn-primary add-invoice-content-button">添加</a>
  199. </div>
  200. <div class="layui-form-item radio-type-box {if $order_event_time_config.invoice_status==0} radio-type {/if}">
  201. <label class="layui-form-label"><span class="required">*</span>邮寄费用:</label>
  202. <div class="layui-input-block">
  203. <input type="number" name="invoice_money" min="0" lay-verify="required" value="{$order_event_time_config.invoice_money}" placeholder="请输入费用" autocomplete="off" class="layui-input len-short">
  204. </div>
  205. </div>
  206. <div class="layui-form-item radio-type-box {if $order_event_time_config.invoice_status==0} radio-type {/if}">
  207. <label class="layui-form-label"><span class="required">*</span>支持发票类型:</label>
  208. <div class="layui-input-block">
  209. <div class="layui-input-inline">
  210. <input type="hidden" lay-verify="support_invoice">
  211. <input type="checkbox" class="support-invoice-type" name="invoice_type[]" value="1" title="普通发票" lay-skin="primary" {if !empty($order_event_time_config.invoice_type) && in_array(1, $order_event_time_config['invoice_type'])}checked{/if}>
  212. <input type="checkbox" class="support-invoice-type2" name="invoice_type[]" value="2" title="电子发票" lay-skin="primary" {if !empty($order_event_time_config.invoice_type) && in_array(2, $order_event_time_config['invoice_type'])}checked{/if}>
  213. </div>
  214. </div>
  215. </div>
  216. <div class="layui-form-item radio-type-box {if $order_event_time_config.invoice_status==0} radio-type {/if}">
  217. <label class="invoice-tip text-color">注:普通发票需要给客户进行邮寄,电子发票需要给客户发送对应预留邮件 <a onclick="showDemo2()" class="examples2 text-color">查看示例</a></label>
  218. </div>
  219. <div class="form-row">
  220. <button class="layui-btn" lay-submit lay-filter="save">保存</button>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. {/block}
  226. {block name="script"}
  227. <script>
  228. layui.use(['form'], function() {
  229. var form = layui.form,
  230. repeat_flag = false; //防重复标识
  231. form.render();
  232. form.on('submit(save)', function(data) {
  233. var value = $("input[name='invoice_rate']").val();
  234. var arrMen = value.split(".");
  235. var val = 0;
  236. if (arrMen.length == 2) {
  237. val = arrMen[1];
  238. }
  239. if (val.length > 1) {
  240. layer.msg("发票税率最多保留一位小数!", {icon: 5, anim: 6});
  241. return;
  242. }
  243. if (repeat_flag) return;
  244. repeat_flag = true;
  245. $.ajax({
  246. type: 'POST',
  247. url: ns.url("shop/order/config"),
  248. data: data.field,
  249. dataType: 'JSON',
  250. success: function(res) {
  251. repeat_flag = false;
  252. if (res.code == 0 && !res.message) {
  253. location.reload();
  254. return;
  255. }
  256. layer.msg(res.message);
  257. }
  258. });
  259. });
  260. form.on('radio(postage)',function(data){
  261. if(this.value == 1){
  262. $('.radio-type-box').removeClass("radio-type")
  263. }else if( this.value == 0){
  264. $('.radio-type-box').addClass("radio-type")
  265. }
  266. })
  267. // 验证正整数
  268. form.verify({
  269. support_invoice:function(value){
  270. if(parseInt($("input[name='invoice_status']:checked").val().toString()) == 1){
  271. if($('.support-invoice-type').is(':checked') == false && $('.support-invoice-type2').is(':checked') == false ){
  272. return '发票类型不能为空';
  273. }
  274. }
  275. },
  276. invoice_content2:function(value){
  277. if( $('.invoice-content-box > .item').length == 0 && parseInt($("input[name='invoice_status']:checked").val().toString()) == 1 ){
  278. return '发票内容不能为空';
  279. }
  280. },
  281. positivEinteger: function(value) {
  282. if (!new RegExp("^(\\d|[1-9]\\d|99)$").test(value)) {
  283. return '请输入0-99之间的正整数';
  284. }
  285. },
  286. positiv: function(value) {
  287. if (!new RegExp("^[0-9]+$").test(value)) {
  288. return '时间不能小于0,且必须是整数!';
  289. }
  290. },
  291. invoice_content: function(value) {
  292. if (parseInt($("input[name='invoice_status']:checked").val().toString()) == 1) {
  293. if (value == "") {
  294. return '发票内不能为空';
  295. }
  296. }
  297. },
  298. closetime: function(value) {
  299. if (!new RegExp("^[0-9]+$").test(value)) {
  300. return '自动关闭时间须是整数天数!';
  301. }
  302. if (parseInt(value) < 1) {
  303. return '自动关闭时间须大于0天!';
  304. }
  305. },
  306. deliverytime: function(value) {
  307. if (!new RegExp("^[0-9]+$").test(value)) {
  308. return '自动收货时间须是整数天数!';
  309. }
  310. if (parseInt(value) < 1) {
  311. return '自动收货时间须大于0天!';
  312. }
  313. },
  314. });
  315. //添加发票内容
  316. $(".add-invoice-content-button").click(function() {
  317. var html = '';
  318. html += '<div class="item">';
  319. html +=
  320. '<input type="text" name="invoice_content[]" lay-verify="invoice_content" value="" placeholder="请输入发票内容" autocomplete="off" class="layui-input len-short" >';
  321. html += '<i class="layui-icon layui-icon-close" ></i>';
  322. html += '</div>';
  323. $(".invoice-content-box").append(html);
  324. });
  325. //删除发票内容
  326. $('.invoice-content-block ').on('click', ".layui-icon-close", function() {
  327. $(this).parent().remove();
  328. });
  329. });
  330. function showDemo() {
  331. layer.open({
  332. title: '查看示例',
  333. type: 1,
  334. area: ['500px', '660px'],
  335. content: '<img style="margin:20px 80px;" src="SHOP_IMG/yue_pay.png">'
  336. })
  337. }
  338. function showDemo2() {
  339. layer.open({
  340. title: '查看示例',
  341. type: 1,
  342. area: ['500px', '660px'],
  343. content: '<img style="margin:20px 80px;" src="SHOP_IMG/fapiao.png">'
  344. })
  345. }
  346. </script>
  347. {/block}