delivery.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. {extend name="base"/}
  2. {block name="resources"}
  3. <style>
  4. .layui-layout-admin .layui-body .body-content {padding-bottom: 150px;}
  5. .layui-form-switch{margin-top: 0;}
  6. .layui-card-body{display: flex;justify-content: space-between;align-items: center;}
  7. .layui-card-body p{color: #666666;}
  8. .btn-box{flex-shrink: 0;margin-left: 20px;}
  9. .btn-box a{cursor: pointer;}
  10. .card-common:first-child{margin-top: 0;}
  11. .card-common{border: 1px solid #f1f1f1;}
  12. .single-filter-box {display: block; position: relative;}
  13. .deliver-type .layui-card{user-select:none}
  14. .layui-card-header .table_move.iconfont.icontuodong{flex: 1; cursor: move;}
  15. .layui-card-header .card-title{flex: 60}
  16. .layui-card-header .card-icon,.layui-card-header .ziti-icon,.layui-card-header .waimai-icon{margin-left: 10px;cursor:pointer;}
  17. .kuaidi-list {display: none;min-width: 150px;height: 25px;line-height: 30px;padding-left: 6px;}
  18. .card-list {display: flex;align-items:center;position: absolute;left: 45px;}
  19. .layui-layout-admin .tips-wrap{margin-bottom: 15px;}
  20. </style>
  21. {/block}
  22. {block name="main"}
  23. <div class="single-filter-box">
  24. <div class="layui-form deliver-type">
  25. {foreach name="deliver_type" item="vo"}
  26. {if $vo eq 'express'}
  27. <div class="layui-card card-common" data-type="express">
  28. <div class="layui-card-header">
  29. <div class="table_move iconfont icontuodong"></div>
  30. <!-- <span class="card-title">快递发货</span> -->
  31. <div class="card-list">
  32. {if count($express_config.value) && $express_config.value.express_name != ''}
  33. <input type="text" name="kuaidi-text" class="kuaidi-list" value="{$express_config.value.express_name}" />
  34. <span id="card-title-one" class="card-title kuaidi">{$express_config.value.express_name}</span>
  35. {else}
  36. <input type="text" name="kuaidi-text" class="kuaidi-list" value="快递发货" />
  37. <span class="card-title kuaidi">快递发货</span>
  38. {/if}
  39. <div class="card-icon">
  40. <!-- <img src="SHOP_IMG/express_delivery.png" style="width: 18px;height: 14px;" /> -->
  41. <i class="layui-icon text-color" style="font-size: 16px; !important"> </i>
  42. </div>
  43. </div>
  44. <span class="tips">
  45. <input class="control" type="checkbox" name="" id="express" value="1" lay-skin="switch" {if $express_config.is_use == 1} checked {/if} lay-filter="logistics" />
  46. </span>
  47. </div>
  48. <div class="layui-card-body">
  49. <p>启用物流配送后,买家下单可以选择快递发货,在微信视频号中仅支持物流配送。</p>
  50. <div class="btn-box">
  51. <a class="default text-color" href="{:addon_url('shop/express/expresscompany')}">物流公司</a>
  52. <a class="default text-color" href="{:addon_url('shop/express/template')}">运费模板</a>
  53. <a class="default text-color" href="{:addon_url('shop/express/trace')}">物流跟踪</a>
  54. </div>
  55. </div>
  56. </div>
  57. {/if}
  58. {if $vo eq 'store'}
  59. <div class="layui-card card-common" data-type="store">
  60. <div class="layui-card-header">
  61. <div class="table_move iconfont icontuodong"></div>
  62. <!-- <span class="card-title">门店自提</span> -->
  63. <div class="card-list inputTrigger">
  64. {if count($store_config.value) && $store_config.value.store_name != ''}
  65. <input type="text" name="ziti-text" class="kuaidi-list" value="{$store_config.value.store_name}" />
  66. <span id="card-title-tow" class="card-title ziti">{$store_config.value.store_name}</span>
  67. {else}
  68. <input type="text" name="ziti-text" class="kuaidi-list" value="门店自提" />
  69. <span class="card-title ziti">门店自提</span>
  70. {/if}
  71. <div class="ziti-icon">
  72. <i class="layui-icon text-color" style="font-size: 16px; !important"> </i>
  73. </div>
  74. </div>
  75. <span class="tips">
  76. <input class="control" type="checkbox" name="" id="store" value="1" lay-skin="switch" {if $store_config.is_use == 1} checked {/if} lay-filter="SelfMention" />
  77. </span>
  78. </div>
  79. <div class="layui-card-body">
  80. <p>启用上门自提后,买家可以就近选择商品自提门店,买家下单后,您需要确保买家指定的自提门店商品库存充足。</p>
  81. <div class="btn-box">
  82. {if addon_is_exit('store') == 1}
  83. <a class="default text-color" href="{:addon_url('store://shop/store/lists')}">自提门店</a>
  84. {else /}
  85. <a class="default text-color" href="{:addon_url('shop/store/lists')}">自提门店</a>
  86. {/if}
  87. </div>
  88. </div>
  89. </div>
  90. {/if}
  91. {if $vo eq 'local'}
  92. <div class="layui-card card-common" data-type="local">
  93. <div class="layui-card-header">
  94. <div class="table_move iconfont icontuodong"></div>
  95. <!-- <span class="card-title">外卖配送</span> -->
  96. <div class="card-list">
  97. {if count($local_delivery_config.value) && $local_delivery_config.value.local_name != ''}
  98. <input type="text" name="waimai-text" class="kuaidi-list" value="{$local_delivery_config.value.local_name}"/>
  99. <span id="card-title-three" class="card-title waimai">{$local_delivery_config.value.local_name}</span>
  100. {else}
  101. <input type="text" name="waimai-text" class="kuaidi-list" value="同城配送" />
  102. <span class="card-title waimai">同城配送</span>
  103. {/if}
  104. <div class="waimai-icon">
  105. <i class="layui-icon text-color" style="font-size: 16px; !important"> </i>
  106. </div>
  107. </div>
  108. <span class="tips">
  109. <input class="control" class="inputTrigger" type="checkbox" name="" id="local" value="1" lay-skin="switch" {if $local_delivery_config.is_use == 1} checked {/if} lay-filter="cityDistribution"/>
  110. </span>
  111. </div>
  112. <div class="layui-card-body">
  113. <p>启用同城配送后,在配送范围内的买家可以选择同城配送,您可以接入第三方配送,也可以自己配送。</p>
  114. <div class="btn-box" >
  115. <a class="default text-color" href="{:addon_url('shop/local/deliverlists')}">配送员</a>
  116. <a class="default text-color" href="{:addon_url('shop/local/local')}">同城配送</a>
  117. </div>
  118. </div>
  119. </div>
  120. {/if}
  121. {/foreach}
  122. </div>
  123. </div>
  124. {/block}
  125. {block name="script"}
  126. <script type="text/javascript" src="__STATIC__/ext/drag-arrange.js"></script>
  127. <script>
  128. var expless = {$express_config.is_use};
  129. var store = {$store_config.is_use};
  130. var local = {$local_delivery_config.is_use};
  131. function choice(){
  132. var expressOne =$('#express').prop('checked');
  133. var storeTow=$('#store').prop('checked');
  134. var localThree=$('#local').prop('checked');
  135. $('#express').removeAttr('disabled');
  136. $('#store').removeAttr('disabled');
  137. $('#local').removeAttr('disabled');
  138. if(!expressOne && !storeTow){
  139. $('#local').attr('disabled','disabled')
  140. }else if(!expressOne && !localThree){
  141. $('#store').attr('disabled','disabled')
  142. }else if(!storeTow && !localThree){
  143. $('#express').attr('disabled','disabled')
  144. }
  145. }
  146. choice();
  147. if ($('input[name="kuaidi-text"]').val() != '快递发货' ) {
  148. $('.type-type1').html('{$express_config.value.express_name}');
  149. }
  150. if ($('input[name="ziti-text"]').val() != '快递发货' ) {
  151. $('.type-type2').html('{$store_config.value.store_name}');
  152. }
  153. if ($('input[name="waimai-text"]').val() != '快递发货' ) {
  154. $('.type-type3').html('{$local_delivery_config.value.local_name}');
  155. }
  156. $('.card-icon').click(function(){
  157. $('.kuaidi').css("display","none");
  158. $('input[name="kuaidi-text"]').css("display","block");
  159. $('.card-list').find('input[name="kuaidi-text"]').focus();
  160. $('.card-icon').css("display","none");
  161. });
  162. $('input[name="kuaidi-text"]').blur(function(){
  163. $('.kuaidi').css("display","flex");
  164. $('input[name="kuaidi-text"]').css("display","none");
  165. $('.card-icon').css("display","block");
  166. let value = $('input[name="kuaidi-text"]').val();
  167. if(value != ''){
  168. $.ajax({
  169. dataType: "JSON",
  170. type: "POST",
  171. data:{express_name: value, is_use : expless},
  172. url: ns.url("shop/delivery/modifyExpressStatus"),
  173. success: function(res){
  174. layer.msg(res.message);
  175. $('#card-title-one').html(value);
  176. location.reload();
  177. // if (res.code == 0) {
  178. // location.reload();
  179. // }
  180. }
  181. })
  182. }
  183. });
  184. $('.ziti-icon').click(function(){
  185. $('.ziti').css("display","none");
  186. $('input[name="ziti-text"]').css("display","block");
  187. $('.card-list').find('input[name="ziti-text"]').focus();
  188. $('.ziti-icon').css("display","none");
  189. });
  190. $('input[name="ziti-text"]').blur(function(){
  191. $('.ziti').css("display","flex");
  192. $('input[name="ziti-text"]').css("display","none");
  193. $('.ziti-icon').css("display","block");
  194. let value = $('input[name="ziti-text"]').val();
  195. if(value != ''){
  196. $.ajax({
  197. dataType: "JSON",
  198. type: "POST",
  199. data:{store_name: value, is_use : store},
  200. url: ns.url("shop/delivery/modifyStoreStatus"),
  201. success: function(res){
  202. layer.msg(res.message);
  203. $('#card-title-tow').html(value);
  204. location.reload();
  205. // if (res.code == 0) {
  206. // location.reload();
  207. // }
  208. }
  209. })
  210. }
  211. });
  212. $('.waimai-icon').click(function(){
  213. $('.waimai').css("display","none");
  214. $('input[name="waimai-text"]').css("display","block");
  215. $('.card-list').find('input[name="waimai-text"]').focus();
  216. $('.waimai-icon').css("display","none");
  217. });
  218. $('input[name="waimai-text"]').blur(function(){
  219. $('.waimai').css("display","flex");
  220. $('input[name="waimai-text"]').css("display","none");
  221. $('.waimai-icon').css("display","block");
  222. let value = $('input[name="waimai-text"]').val();
  223. if(value != ''){
  224. $.ajax({
  225. dataType: "JSON",
  226. type: "POST",
  227. data:{local_name: value, "is_use" : local},
  228. url: ns.url("shop/delivery/modifyLocalStatus"),
  229. success: function(res){
  230. layer.msg(res.message);
  231. $('#card-title-three').html(value);
  232. location.reload();
  233. // if (res.code == 0) {
  234. // location.reload();
  235. // }
  236. }
  237. })
  238. }
  239. });
  240. layui.use('form', function() {
  241. var form = layui.form;
  242. form.render();
  243. //物流配置开关
  244. form.on('switch(logistics)', function(data){
  245. choice();
  246. data.value = data.elem.checked ? data.value : 0;
  247. var express_name = $("input[name='kuaidi-text']").val();
  248. $.ajax({
  249. dataType: "JSON",
  250. type: "POST",
  251. data:{"is_use": data.value, "express_name" : express_name},
  252. url: ns.url("shop/delivery/modifyExpressStatus"),
  253. success: function(res){
  254. layer.msg(res.message);
  255. setTimeout(()=>{
  256. location.reload();
  257. },1000)
  258. }
  259. })
  260. });
  261. //门店自提开关
  262. form.on('switch(SelfMention)', function(data){
  263. data.value = data.elem.checked ? data.value : 0;
  264. var store_name = $("input[name='ziti-text']").val();
  265. choice();
  266. $.ajax({
  267. dataType: "JSON",
  268. type: "POST",
  269. data:{"is_use": data.value, "store_name" : store_name},
  270. url: ns.url("shop/delivery/modifyStoreStatus"),
  271. success: function(res){
  272. layer.msg(res.message);
  273. setTimeout(()=>{
  274. location.reload();
  275. },1000)
  276. }
  277. })
  278. });
  279. //外卖配送开关
  280. form.on('switch(cityDistribution)', function(data){
  281. var local = data.elem.checked ? data.value : 0;
  282. data.value = data.elem.checked ? data.value : 0;
  283. var local_name = $("input[name='waimai-text']").val();
  284. choice();
  285. $.ajax({
  286. dataType: "JSON",
  287. type: "POST",
  288. data:{"is_use": data.value, "local_name" : local_name},
  289. url: ns.url("shop/delivery/modifyLocalStatus"),
  290. success: function(res){
  291. layer.msg(res.message);
  292. setTimeout(()=>{
  293. location.reload();
  294. },1000)
  295. }
  296. })
  297. });
  298. $('.layui-card.card-common').arrangeable({
  299. dragSelector: '.table_move',
  300. callback:function(e){
  301. var deliverType = [];
  302. $('.deliver-type .layui-card').each(function(){
  303. deliverType.push($(this).attr('data-type'));
  304. });
  305. setTimeout(function(){
  306. $.ajax({
  307. dataType: "JSON",
  308. type: "POST",
  309. data:{"deliver_type": deliverType.toString()},
  310. url: ns.url("shop/delivery/delivertypesort"),
  311. success: function(res){
  312. }
  313. })
  314. },100);
  315. }
  316. });
  317. $('.tips').on('click',function(){
  318. var expressOne = $('#express').attr('disabled');
  319. var storeTow = $('#store').attr('disabled');
  320. var localThree = $('#local').attr('disabled');
  321. var name=$(this).children().attr('id');
  322. var disabledName;
  323. switch ('disabled') {
  324. case expressOne:
  325. disabledName = 'express';
  326. break;
  327. case storeTow:
  328. disabledName = 'store';
  329. break;
  330. case localThree:
  331. disabledName = 'local';
  332. break;
  333. }
  334. if(name == disabledName){
  335. layer.msg('最少保留一个配送方式');
  336. }
  337. })
  338. });
  339. function showDemo(){
  340. layer.open({
  341. title: '查看示例',
  342. type: 1,
  343. area: ['700px', '660px'],
  344. content: '<img style="margin:20px 50px;" src="SHOP_IMG/delivery.png">'
  345. })
  346. }
  347. document.onkeydown = function (e) {
  348. var theEvent = window.event || e;
  349. var code = theEvent.keyCode || theEvent.which || theEvent.charCode;
  350. var name = $('.kuaidi-list:focus').attr("name");
  351. var val = $('.kuaidi-list:focus').val();
  352. if (code == 13) {
  353. if(name == "kuaidi-text"){
  354. var data = {
  355. "express_name" : val,
  356. "is_use" : expless
  357. };
  358. var url = ns.url("shop/delivery/modifyExpressStatus");
  359. }else if(name == "ziti-text"){
  360. var data = {
  361. "store_name" : val,
  362. "is_use" : store
  363. };
  364. var url = ns.url("shop/delivery/modifyStoreStatus");
  365. }else if(name == "waimai-text"){
  366. var data = {
  367. "local_name" : val,
  368. "is_use" : local
  369. };
  370. var url = ns.url("shop/delivery/modifyLocalStatus");
  371. }
  372. if(val != ''){
  373. $.ajax({
  374. dataType: "JSON",
  375. type: "POST",
  376. data: data,
  377. url: url,
  378. success: function(res){
  379. layer.msg(res.message);
  380. location.reload();
  381. }
  382. })
  383. }
  384. }
  385. }
  386. </script>
  387. {/block}