form.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. {extend name='admin@main'}
  2. {block name="content"}
  3. <div class="think-box-shadow" >
  4. <form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
  5. <div class="layui-card-body" style="width: 85%">
  6. <div class="layui-form-item">
  7. <label class="layui-form-label label-required">模板名称</label>
  8. <div class="layui-input-block">
  9. <input name="name" maxlength="20" value='{$vo.name|default=""}' placeholder="请输入商品名称" class="layui-input">
  10. </div>
  11. </div>
  12. <div class="layui-form-item">
  13. <label class="layui-form-label label-required">首件</label>
  14. <div class="layui-input-block">
  15. <div class="layui-input-inline" style="width: 50%" >
  16. <input type="number" name="base_num" value='{$vo.base_num|default=""}' placeholder="请输入件数量" class="layui-input">
  17. </div>
  18. <div class="layui-form-mid layui-word-aux">X件(含)内以首件费用计算</div>
  19. </div>
  20. </div>
  21. <div class="layui-form-item">
  22. <label class="layui-form-label label-required">首件费用</label>
  23. <div class="layui-input-block" >
  24. <input type="number" name="base_price" style="width: 50%" value='{$vo.base_price|default=""}' placeholder="请输入首件费用" class="layui-input">
  25. </div>
  26. </div>
  27. <div class="layui-form-item">
  28. <label class="layui-form-label label-required">续件费用</label>
  29. <div class="layui-input-block" >
  30. <div class="layui-input-inline" style="width: 50%" >
  31. <input type="number" name="base_keep_price" value='{$vo.base_keep_price|default=""}' placeholder="请输入续件费用" class="layui-input">
  32. </div>
  33. <div class="layui-form-mid layui-word-aux">每续加1件额外增加的运费</div>
  34. </div>
  35. </div>
  36. <div class="layui-form-item">
  37. <label class="layui-form-label label-required">不发货地区</label>
  38. <div class="layui-input-block">
  39. <table class="layui-table margin-top-10" lay-skin="line" style="width: 100% ; border-width: 1px 1px 1px !important;">
  40. <thead>
  41. <tr>
  42. <th class='text-left nowrap' style="width: 90% ; border-width: 1px 1px 1px !important;">地区</th>
  43. <th class='text-left nowrap' style=" border-width: 1px 1px 1px !important;">操作</th>
  44. </tr>
  45. </thead>
  46. <tbody class="no_html">
  47. <tr>
  48. <input type="hidden" name="no_express" class="area_input" value='{$vo.no_express|default=""}' />
  49. <td class='text-left area_part' style=" border-width: 1px 1px 1px !important;">
  50. </td>
  51. <td class='text-left' style=" border-width: 1px 1px 1px !important;"><span class='edit_area' >编辑</span></td>
  52. </tr>
  53. </tbody>
  54. </table>
  55. </div>
  56. </div>
  57. <div class="layui-form-item">
  58. <label class="layui-form-label label-required">自定义分组</label>
  59. <div class="layui-input-block">
  60. <table class="layui-table margin-top-10" lay-skin="line">
  61. <thead>
  62. <tr>
  63. <th class='text-left nowrap' style="width: 60%">地区</th>
  64. <th class='text-left nowrap' style=" border-width: 1px 1px 1px !important;">首件(个)</th>
  65. <th class='text-left nowrap' style=" border-width: 1px 1px 1px !important;">运费(元)</th>
  66. <th class='text-left nowrap' style=" border-width: 1px 1px 1px !important;">续件费(元)</th>
  67. <th class='text-left nowrap' style="width: 10%; border-width: 1px 1px 1px !important;">操作</th>
  68. </tr>
  69. </thead>
  70. <tbody class="mud_html">
  71. {if isset($vo.custom) && $vo.custom}
  72. {foreach :json_decode($vo.custom,true) as $k=>$v}
  73. <tr>
  74. <input type="hidden" name="express[]" class="area_input" value="{$v.express|default=0}" />
  75. <td class='text-left area_part'></td>
  76. <td class='text-left ' style=" border-width: 1px 1px 1px !important;">
  77. <input class="layui-input" type="number" step="1" min="0" name="first_num[]" value="{$v.first_num|default=0}" />
  78. </td>
  79. <td class='text-left ' style=" border-width: 1px 1px 1px !important;">
  80. <input class="layui-input" type="number" step="0.01" min="0" name="first_price[]" value="{$v.first_price|default=0}" />
  81. </td>
  82. <td class='text-left ' style=" border-width: 1px 1px 1px !important;">
  83. <input class="layui-input" type="number" step="0.01" min="0" name="keep_price[]" value="{$v.keep_price|default=0}" />
  84. </td>
  85. <td class='text-left ' style=" border-width: 1px 1px 1px !important;">
  86. <span class='edit_area' >编 辑</span> &nbsp;&nbsp;&nbsp;
  87. {if $k == 0}
  88. <span class="add_mud">添加分组</span>
  89. {else}
  90. <span class="del_mud">删 除</span>
  91. {/if}
  92. </td>
  93. </tr>
  94. {/foreach}
  95. {else}
  96. <tr>
  97. <input type="hidden" name="express[]" class="area_input" value="" />
  98. <td class='text-left area_part'></td>
  99. <td class='text-left ' style=" border-width: 1px 1px 1px !important;">
  100. <input class="layui-input" type="number" step="1" min="0" name="first_num[]" value="" />
  101. </td>
  102. <td class='text-left ' style=" border-width: 1px 1px 1px !important;">
  103. <input class="layui-input" type="number" step="0.01" min="0" name="first_price[]" value="" />
  104. </td>
  105. <td class='text-left ' style=" border-width: 1px 1px 1px !important;">
  106. <input class="layui-input" type="number" step="0.01" min="0" name="keep_price[]" value="" />
  107. </td>
  108. <td class='text-left ' style=" border-width: 1px 1px 1px !important;">
  109. <span class='edit_area' >编 辑</span> &nbsp;&nbsp;&nbsp;<span class="add_mud">添加分组</span>
  110. </td>
  111. </tr>
  112. {/if}
  113. </tbody>
  114. </table>
  115. </div>
  116. </div>
  117. {notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
  118. <div class="layui-form-item text-center">
  119. <button class="layui-btn" type='submit'>保 存</button>
  120. <button class="layui-btn layui-btn-danger" type='button' onclick="history.go(-1)" data-close>返回</button>
  121. </div>
  122. </div>
  123. </form>
  124. <input type="hidden" id="edit_index" value="0"/>
  125. <div style="display: none" id="area_div">
  126. </div>
  127. <script>
  128. form.render()
  129. var all_area = {:json_encode($city_area)};
  130. $(document).on('click','.edit_area',function () {
  131. var edit_index = $('.edit_area').index(this);
  132. console.log(edit_index);
  133. $("#edit_index").val(edit_index);
  134. var sel_ids = $(".area_input").eq(edit_index).val().split(',');
  135. var html =''
  136. html += '<div class="think-box-shadow" id="city_area">'
  137. $.each(all_area,function (k,v) {
  138. var is_sel_sheng = $.inArray( v.id.toString(),sel_ids);
  139. html += '<table class="layui-table margin-top-5" lay-skin="line">'
  140. html += '<thead>'
  141. html += '<tr>'
  142. if(is_sel_sheng >=0 ){
  143. html += '<th class="text-left nowrap list-table-check-td think-checkbox"><input class="sheng_class" value="'+v.id+'" checked type="checkbox"> <span class="sheng_span" style="color: #1E9FFF">'+v.name+'</span></th>'
  144. } else{
  145. html += '<th class="text-left nowrap list-table-check-td think-checkbox"><input class="sheng_class" value="'+v.id+'" type="checkbox"> <span class="sheng_span" style="color: #1E9FFF">'+v.name+'</span></th>'
  146. }
  147. html += '</tr>'
  148. html += '</thead>'
  149. html += '<tbody>'
  150. html += '<tr>'
  151. html += '<td class="text-left list-table-check-td think-checkbox" style="padding-left: 40px !important">'
  152. $.each(v.children,function (rk,rv) {
  153. var is_sel_shi = $.inArray(rv.id.toString(),sel_ids);
  154. if(is_sel_shi>= 0) {
  155. html += '<div style="float:left;word-wrap: normal;margin-right:10px"><input class="shi_class" value="'+rv.id+'" checked type="checkbox"><span class="shi_span"> '+rv.name+'</span></div>'
  156. }else{
  157. html += '<div style="float:left;word-wrap: normal;margin-right:10px"><input class="shi_class" value="'+rv.id+'" type="checkbox"><span class="shi_span"> '+rv.name+'</span></div>'
  158. }
  159. })
  160. html += '</td>'
  161. html += '</tr>'
  162. html += '</tbody>'
  163. html += '</table>'
  164. })
  165. html += '<div class="layui-form-item text-center">'
  166. html += '<button class="layui-btn" id="save_area">保 存</button>'
  167. html += '</div>'
  168. html += '</div>'
  169. layer.open({
  170. type: 1,
  171. title: false,
  172. area: ['80%', '80%'],
  173. shade: [0.3, 'rgb(14, 16, 22)'],
  174. skin: 'demo-class',
  175. content: html
  176. });
  177. layer.render()
  178. });
  179. $.each($(".area_input"),function (k,v) {
  180. var has_sel_ids = $(".area_input").eq(k).val().split(',');
  181. console.log(has_sel_ids);
  182. var aht = '';
  183. $.each(all_area,function (ak,av) {
  184. var sel_sheng = $.inArray( av.id.toString(),has_sel_ids);
  185. if(sel_sheng >= 0){
  186. console.log(av.id.toString())
  187. aht += '<span style="color: #1E9FFF">'+av.name+"</span>" ;
  188. aht += '( ';
  189. $.each(av.children,function (rk,rv) {
  190. if( $.inArray( rv.id.toString(),has_sel_ids) >=0){
  191. aht += rv.name +' ';
  192. }
  193. })
  194. aht += ')、 ';
  195. }
  196. })
  197. $(".area_part").eq(k).html(aht);
  198. form.render()
  199. })
  200. $(document).on('click','.add_mud',function () {
  201. var mh = '';
  202. mh += '<tr>';
  203. mh += '<input type="hidden" name="express[]" class="area_input" value="" />';
  204. mh += '<td class=\'text-left area_part\'></td>';
  205. mh += '<td class=\'text-left \' style=" border-width: 1px 1px 1px !important;">';
  206. mh += ' <input class="layui-input" type="number" step="1" min="0" name="first_num[]" value="0" />';
  207. mh += '</td>';
  208. mh += '<td class=\'text-left \' style=" border-width: 1px 1px 1px !important;">';
  209. mh += ' <input class="layui-input" type="number" step="1" min="0" name="first_price[]" value="0" />';
  210. mh += '</td>';
  211. mh += '<td class=\'text-left \' style=" border-width: 1px 1px 1px !important;">';
  212. mh += ' <input class="layui-input" type="number" step="1" min="0" name="keep_price[]" value="0" />';
  213. mh += '</td>';
  214. mh += '<td class=\'text-left \' style=" border-width: 1px 1px 1px !important;">';
  215. mh += '<span class=\'edit_area\' >编 辑</span>&nbsp;&nbsp; &nbsp;&nbsp;<span class="del_mud">删 除</span>';
  216. mh += '</td>';
  217. mh += '</tr>';
  218. $(".mud_html").append(mh)
  219. layer.render()
  220. })
  221. $(document).on('click','.del_mud',function () {
  222. $(this).parents('tr').remove();
  223. layer.render()
  224. })
  225. $(document).on('click','.sheng_class',function () {
  226. if($(this).is(':checked')){
  227. $(this).parents('.layui-table').find('.shi_class').prop('checked',true)
  228. }else{
  229. $(this).parents('.layui-table').find('.shi_class').prop('checked',false)
  230. }
  231. form.render()
  232. })
  233. $(document).on('click','.shi_class',function () {
  234. if($(this).is(':checked')){
  235. $(this).parents('.layui-table').find('.sheng_class').prop('checked',true)
  236. }else{
  237. var sel_num = 0;
  238. var box = $(this).parents('.layui-table').find('.shi_class');
  239. $.each(box,function (bk,bv) {
  240. if(box.eq(bk).is(':checked')) sel_num = 1;
  241. })
  242. if(sel_num) {
  243. $(this).parents('.layui-table').find('.sheng_class').prop('checked',true)
  244. }else{
  245. $(this).parents('.layui-table').find('.sheng_class').prop('checked',false)
  246. }
  247. }
  248. form.render()
  249. })
  250. $(document).on('click','.sheng_span',function () {
  251. $(this).siblings('.sheng_class').click();
  252. })
  253. $(document).on('click','.shi_span',function () {
  254. $(this).siblings('.shi_class').click();
  255. })
  256. // 保存所選的地區
  257. $(document).on('click','#save_area',function () {
  258. var sel_area = '';
  259. var sel_id = [];
  260. $.each($("#city_area .sheng_class"),function (sk,sv) {
  261. if($("#city_area .sheng_class").eq(sk).is(":checked"))
  262. {
  263. sel_id.push($("#city_area .sheng_class").eq(sk).val());
  264. var sh_name = $("#city_area .sheng_class").eq(sk).siblings('.sheng_span').text();
  265. sel_area += '<span style="color: #1E9FFF">'+sh_name+"</span>" ;
  266. sel_area += '( ';
  267. var shi_input = $("#city_area .sheng_class").eq(sk).parents('.layui-table').find('.shi_class');
  268. $.each(shi_input,function (ck,cv) {
  269. if(shi_input.eq(ck).is(":checked")) {
  270. sel_id.push(shi_input.eq(ck).val());
  271. var city_name = shi_input.eq(ck).siblings('.shi_span').text();
  272. sel_area += city_name+' ';
  273. }
  274. })
  275. sel_area += ')、';
  276. }
  277. })
  278. $(".area_part").eq($("#edit_index").val()).html(sel_area);
  279. $(".area_input").eq($("#edit_index").val()).val(sel_id.join(','));
  280. layer.closeAll();
  281. form.render()
  282. })
  283. </script>
  284. </div>
  285. {/block}