dispatch-info.blade.php 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. @extends('layouts.base')
  2. @section('content')
  3. @section('title', trans('配送模板详情'))
  4. <div class="rightlist">
  5. <!-- 新增加右侧顶部三级菜单 -->
  6. <div class="right-titpos">
  7. <ul class="add-snav">
  8. <li class="active"><a href="#">配送方式设置</a></li>
  9. </ul>
  10. </div>
  11. <!-- 新增加右侧顶部三级菜单结束 -->
  12. <form action="" method="post" class="form-horizontal form" enctype="multipart/form-data"
  13. onsubmit='return formcheck()'>
  14. <div class="panel panel-default">
  15. <div class="panel-body">
  16. <div class="form-group">
  17. <label class="col-xs-12 col-sm-3 col-md-2 control-label">排序</label>
  18. <div class="col-sm-9 col-xs-12">
  19. <input type="text" name="dispatch[display_order]" class="form-control"
  20. value="{{ $dispatch['sort'] }}"/>
  21. </div>
  22. </div>
  23. <div class="form-group">
  24. <label class="col-xs-12 col-sm-3 col-md-2 control-label"><span style="color:red">*</span>配送方式名称</label>
  25. <div class="col-sm-9 col-xs-12">
  26. <input type="text" id='dispatchname' name="dispatch[dispatch_name]" class="form-control"
  27. value="{{ $dispatch['name'] }}"/>
  28. </div>
  29. </div>
  30. <div class="form-group">
  31. <label class="col-xs-12 col-sm-3 col-md-2 control-label">是否为默认快递模板</label>
  32. <div class="col-sm-9 col-xs-12">
  33. <label class='radio-inline'>
  34. <input type='radio' name='dispatch[is_default]' id="isdefault1" value='1'
  35. @if ( $dispatch['is_default'] == 1 )checked @endif /> 是
  36. </label>
  37. <label class='radio-inline'>
  38. <input type='radio' name='dispatch[is_default]' id="isdefault0" value='0'
  39. @if ( $dispatch['is_default'] == 0 )checked @endif /> 否
  40. </label>
  41. </div>
  42. </div>
  43. <div class="form-group">
  44. <label class="col-xs-12 col-sm-3 col-md-2 control-label">计费方式</label>
  45. <div class="col-sm-9 col-xs-12">
  46. <label class='radio-inline'>
  47. <input type='radio' name='dispatch[calculate_type]' value='1'
  48. @if ( $dispatch['charge_type'] == 1 || empty($dispatch['charge_type']) )checked @endif /> 按重量计费
  49. </label>
  50. <label class='radio-inline'>
  51. <input type='radio' name='dispatch[calculate_type]' value='2'
  52. @if ( $dispatch['charge_type'] == 2 ) checked @endif /> 按件计费
  53. </label>
  54. </div>
  55. </div>
  56. <div class="form-group dispatch0">
  57. <label class="col-xs-12 col-sm-3 col-md-2 control-label">配送区域</label>
  58. <div class="col-sm-9 col-xs-12">
  59. <table class="show_h" areas="1">
  60. <thead>
  61. <tr>
  62. <th style="height:40px;width:400px;">运送到</th>
  63. <th style="width:120px;">首重(克)</th>
  64. <th style="width:120px;">首费(元)</th>
  65. <th style="width:120px;">续重(克)</th>
  66. <th style="width:120px;">续费(元)</th>
  67. </tr>
  68. </thead>
  69. <tbody class='tbody-areas'>
  70. <tr>
  71. <td style="padding:10px;">
  72. 全国 [默认运费]
  73. <input type="hidden" value="全国 [默认运费]" class="form-control"
  74. name="dispatch[areas]">
  75. </td>
  76. <td class=" text-center">
  77. <input type="number" value="{{ $dispatch['default']['f'] ? $dispatch['default']['f'] :0 }}" class="form-control"
  78. name="dispatch[first_weight]" style="width:100px;"></td>
  79. <td class=" text-center">
  80. <input type="text" value="{{ $dispatch['default']['fp'] ? $dispatch['default']['fp']/100 : 0 }}"
  81. class="form-control" name="dispatch[first_weight_price]"
  82. style="width:100px;"></td>
  83. <td class=" text-center">
  84. <input type="number" value="{{ $dispatch['default']['n'] ? $dispatch['default']['n'] : 0 }}"
  85. class="form-control" name="dispatch[another_weight]"
  86. style="width:100px;"></td>
  87. <td class=" text-center">
  88. <input type="text" value="{{ $dispatch['default']['np'] ? $dispatch['default']['np']/100 : 0 }}"
  89. class="form-control" name="dispatch[another_weight_price]"
  90. style="width:100px;"></td>
  91. <td class=""></td>
  92. </tr>
  93. @foreach($dispatch['other'] as $key=>$weight)
  94. <tr>
  95. <td style="padding:10px;" class="{{$key}}">
  96. <span class="areas">{{$weight['a']}}</span>
  97. <input type="hidden" value="{{$weight['a']}}" class="form-control areas-name"
  98. name="dispatch[weight][{{$key}}][areas]">
  99. <input type="hidden" value="{{$weight['area_ids']}}" class="form-control areas-ids"
  100. name="dispatch[weight][{{$key}}][area_ids]">
  101. <a href='javascript:;' onclick='editArea(this)' random="{{$key}}">编辑</a>
  102. </td>
  103. <td class=" text-center">
  104. <input type="number" value="{{ $weight['f'] ? $weight['f'] : 0 }}"
  105. class="form-control"
  106. name="dispatch[weight][{{$key}}][first_weight]" style="width:100px;">
  107. </td>
  108. <td class=" text-center">
  109. <input type="text" value="{{ $weight['fp'] ? $weight['fp']/100 : 0}}"
  110. class="form-control"
  111. name="dispatch[weight][{{$key}}][first_weight_price]"
  112. style="width:100px;"></td>
  113. <td class=" text-center">
  114. <input type="number" value="{{ $weight['n'] ? $weight['n'] : 0}}"
  115. class="form-control"
  116. name="dispatch[weight][{{$key}}][another_weight]"
  117. style="width:100px;"></td>
  118. <td class=" text-center">
  119. <input type="text" value="{{ $weight['np'] ? $weight['np']/100 :0}}"
  120. class="form-control"
  121. name="dispatch[weight][{{$key}}][another_weight_price]"
  122. style="width:100px;">
  123. </td>
  124. <td><a href="javascript:;" onclick="$(this).parent().parent().remove()"><i class='fa fa-remove'></i></td>
  125. </tr>
  126. @endforeach
  127. </tbody>
  128. </table>
  129. <!--=================================================-->
  130. <table class='show_n' areas="2">
  131. <thead>
  132. <tr>
  133. <th style="height:40px;width:400px;">运送到</th>
  134. <th class="show_n" style="width:120px;">首件(个)</th>
  135. <th class="show_n" style="width:120px;">运费(元)</th>
  136. <th class="show_n" style="width:120px;">续件(个)</th>
  137. <th class="show_n" style="width:120px;">续费(元)</th>
  138. </tr>
  139. </thead>
  140. <tbody class='tbody-areas'>
  141. <tr>
  142. <td style="padding:10px;">
  143. 全国 [默认运费]
  144. <input type="hidden" value="全国 [默认运费]" class="form-control"
  145. name="dispatch[areas]">
  146. </td>
  147. <td class=" text-center">
  148. <input type="number" value="{{ $dispatch['default']['f'] ? $dispatch['default']['f'] : 0 }}" class="form-control"
  149. name="dispatch[first_piece]" style="width:100px;"></td>
  150. <td class=" text-center">
  151. <input type="text" value="{{ $dispatch['default']['fp'] ? $dispatch['default']['fp']/100 : 0 }}"
  152. class="form-control" name="dispatch[first_piece_price]"
  153. style="width:100px;"></td>
  154. <td class=" text-center">
  155. <input type="number" value="{{ $dispatch['default']['n'] ? $dispatch['default']['n'] : 0 }}" class="form-control"
  156. name="dispatch[another_piece]" style="width:100px;"></td>
  157. <td class=" text-center">
  158. <input type="text" value="{{ $dispatch['default']['np'] ? $dispatch['default']['np']/100 : 0 }}"
  159. class="form-control" name="dispatch[another_piece_price]"
  160. style="width:100px;"></td>
  161. <td></td>
  162. </tr>
  163. @foreach($dispatch['other'] as $key=>$piece)
  164. <tr>
  165. <td style="padding:10px;" class="{{$key}}">
  166. <span class="areas">{{$piece['a']}}</span>
  167. <input type="hidden" value="{{$piece['a']}}" class="form-control areas-name"
  168. name="dispatch[piece][{{$key}}][areas]">
  169. <input type="hidden" value="{{$piece['area_ids']}}" class="form-control areas-ids"
  170. name="dispatch[piece][{{$key}}][area_ids]">
  171. <a href='javascript:;' onclick='editArea(this)' random="{{$key}}">编辑</a>
  172. </td>
  173. <td class=" text-center">
  174. <input type="number" value="{{ $piece['f'] ? $piece['f'] :0 }}"
  175. class="form-control"
  176. name="dispatch[piece][{{$key}}][first_piece]" style="width:100px;">
  177. </td>
  178. <td class=" text-center">
  179. <input type="text" value="{{ $piece['fp'] ? $piece['fp']/100 :0 }}"
  180. class="form-control"
  181. name="dispatch[piece][{{$key}}][first_piece_price]"
  182. style="width:100px;"></td>
  183. <td class=" text-center">
  184. <input type="number" value="{{ $piece['n'] ? $piece['n'] :0 }}"
  185. class="form-control" name="dispatch[piece][{{$key}}][another_piece]"
  186. style="width:100px;"></td>
  187. <td class=" text-center">
  188. <input type="text" value="{{ $piece['np'] ? $piece['np']/100 :0 }}"
  189. class="form-control"
  190. name="dispatch[piece][{{$key}}][another_piece_price]"
  191. style="width:100px;">
  192. </td>
  193. <td>
  194. <a href='javascript:;' onclick='$(this).parent().parent().remove()'>
  195. <i class='fa fa-remove'></i>
  196. </td>
  197. </tr>
  198. @endforeach
  199. </tbody>
  200. </table>
  201. <!--====================================================================================================-->
  202. <a class='btn btn-default' href="javascript:;" onclick='selectAreas()'><span
  203. class="fa fa-plus"></span> 新增配送区域</a>
  204. <span class='help-block show_h'
  205. @if ( $dispatch['charge_type'] == 1 ) style='display:block' @endif>根据重量来计算运费,当物品不足《首重重量》时,按照《首重费用》计算,超过部分按照《续重重量》和《续重费用》乘积来计算</span>
  206. <span class='help-block show_n'
  207. @if ( $dispatch['charge_type'] == 2 ) style='display:block' @endif>根据件数来计算运费,当物品不足《首件数量》时,按照《首件费用》计算,超过部分按照《续件数量》和《续件费用》乘积来计算</span>
  208. </div>
  209. </div>
  210. </div>
  211. <div class="form-group">
  212. <label class="col-xs-12 col-sm-3 col-md-2 control-label">是否启用</label>
  213. <div class="col-sm-9 col-xs-12">
  214. <label class='radio-inline'>
  215. <input type='radio' name='dispatch[enabled]' value='1'
  216. @if ( $dispatch['publish'] == 1 ) checked @endif /> 是
  217. </label>
  218. <label class='radio-inline'>
  219. <input type='radio' name='dispatch[enabled]' value='0'
  220. @if ( $dispatch['publish'] == 0 ) checked @endif /> 否
  221. </label>
  222. </div>
  223. </div>
  224. <div class="form-group"></div>
  225. <div class="form-group">
  226. <label class="col-xs-12 col-sm-3 col-md-2 control-label"></label>
  227. <div class="col-sm-9 col-xs-12">
  228. <input type="submit" name="submit" value="提交" class="btn btn-success "
  229. onclick="return formcheck()"/>
  230. <input type="button" name="back" onclick='history.back()' value="返回列表"
  231. class="btn btn-default back"/>
  232. </div>
  233. </div>
  234. </div>
  235. </form>
  236. </div>
  237. <script>
  238. var calculateType = '{{ $dispatch['ChargeType'] ?: 1 }}';
  239. var random = "{{$random}}";
  240. function show_type(flag) {
  241. calculateType = flag;
  242. if (flag == 2) {
  243. $('.weight').css("display", "none");
  244. $('.fnum').css("display", "");
  245. $('.show_h').hide();
  246. $('.show_n').show();
  247. } else {
  248. $('.weight').css("display", "");
  249. $('.fnum').css("display", "none");
  250. $('.show_h').show();
  251. $('.show_n').hide();
  252. }
  253. }
  254. $(function () {
  255. show_type(calculateType);
  256. $(':radio[name="dispatch[calculate_type]"]').click(function () {
  257. var val = $(this).val();
  258. show_type(val);
  259. })
  260. });
  261. function clearSelects() {
  262. $('.city').attr('checked', false).removeAttr('disabled');
  263. $('.cityall').attr('checked', false).removeAttr('disabled');
  264. $('.citycount').html('');
  265. }
  266. function selectAreas() {
  267. clearSelects();
  268. $("#modal-areas").modal();
  269. var citystrs = '';
  270. var citystrIds = '';
  271. $('#btnSubmitArea').unbind('click').click(function () {
  272. random++;
  273. $('.city:checked').each(function () {
  274. citystrs += $(this).attr('city') + ";";
  275. citystrIds += $(this).attr('city_id') + ";";
  276. });
  277. if (calculateType == 1) {
  278. var content = `
  279. <tr class="show_h">
  280. <td style="padding:10px;" name="areas" class="${random}">
  281. <span class="areas">${citystrs}</span>
  282. <input type="hidden" value="${citystrs}" class="form-control areas-name" name="dispatch[weight][${random}][areas]">
  283. <input type="hidden" value="${citystrIds}" class="form-control areas-ids" name="dispatch[weight][${random}][area_ids]">
  284. <a href='javascript:;' onclick='editArea(this)' random="${random}">编辑</a>
  285. </td>
  286. <td class=" text-center">
  287. <input type="number" value="{{ $dispatch->first_weight }}" class="form-control" name="dispatch[weight][${random}][first_weight]" style="width:100px;"></td>
  288. <td class=" text-center">
  289. <input type="text" value="{{ $dispatch->first_weight_price }}" class="form-control" name="dispatch[weight][${random}][first_weight_price]" style="width:100px;"></td>
  290. <td class=" text-center">
  291. <input type="number" value="{{ $dispatch->another_weight }}" class="form-control" name="dispatch[weight][${random}][another_weight]" style="width:100px;"></td>
  292. <td class=" text-center">
  293. <input type="text" value="{{ $dispatch->another_weight_price }}" class="form-control" name="dispatch[weight][${random}][another_weight_price]" style="width:100px;"></td>
  294. <td><a href='javascript:;' onclick='$(this).parent().parent().remove()'><i class='fa fa-remove'></i></td>
  295. </tr>
  296. `;
  297. $("[areas=" + calculateType + "]").children(".tbody-areas").append(content);
  298. } else {
  299. var content = `
  300. <tr class="show_n" class="${random}">
  301. <td style="padding:10px;">
  302. <span class="areas">${citystrs}</span>
  303. <input type="hidden" value="${citystrs}" class="form-control areas-name" name="dispatch[piece][${random}][areas]">
  304. <input type="hidden" value="${citystrIds}" class="form-control areas-ids" name="dispatch[piece][${random}][area_ids]">
  305. <a href='javascript:;' onclick='editArea(this)' random="${random}">编辑</a>
  306. </td>
  307. <td class=" text-center">
  308. <input type="number" value="{{ $dispatch->first_piece }}" class="form-control" name="dispatch[piece][${random}][first_piece]" style="width:100px;"></td>
  309. <td class=" text-center">
  310. <input type="text" value="{{ $dispatch->first_piece_price }}" class="form-control" name="dispatch[piece][${random}][first_piece_price]" style="width:100px;"></td>
  311. <td class=" text-center">
  312. <input type="number" value="{{ $dispatch->another_piece }}" class="form-control" name="dispatch[piece][${random}][another_piece]" style="width:100px;"></td>
  313. <td class=" text-center">
  314. <input type="text" value="{{ $dispatch->another_piece_price }}" class="form-control" name="dispatch[piece][${random}][another_piece_price]" style="width:100px;"></td>
  315. <td><a href='javascript:;' onclick='$(this).parent().parent().remove()'><i class='fa fa-remove'></i></td>
  316. </tr>
  317. `;
  318. $("[areas=" + calculateType + "]").children(".tbody-areas").append(content);
  319. }
  320. })
  321. }
  322. function editArea(btn){
  323. current = $(btn).attr('random');
  324. clearSelects();
  325. var old_citys = $(btn).prev().val().split(';');
  326. $('.city').each(function(){
  327. var parentcheck = false;
  328. for(var i in old_citys){
  329. if(old_citys[i]==$(this).attr('city_id')){
  330. parentcheck = true;
  331. $(this).get(0).checked = true;
  332. break;
  333. }
  334. }
  335. if(parentcheck){
  336. $(this).parent().parent().parent().parent().find('.cityall').get(0).checked= true;
  337. }
  338. });
  339. $("#modal-areas").modal();
  340. var citystrs = '';
  341. var citystrIds = '';
  342. $('#btnSubmitArea').unbind('click').click(function(){
  343. $('.city:checked').each(function(){
  344. citystrs += $(this).attr('city') + ";";
  345. citystrIds += $(this).attr('city_id') + ";";
  346. });
  347. $('.' + current + ' .areas').html(citystrs);
  348. $('.' + current + ' .areas-name').val(citystrs);
  349. $('.' + current + ' .areas-ids').val(citystrIds);
  350. });
  351. var currents = getCurrents(current);
  352. currents = currents.split(';');
  353. var citys = "";
  354. $('.city').each(function(){
  355. var parentdisabled =false;
  356. for(var i in currents){
  357. if(currents[i]!='' && currents[i]==$(this).attr('city_id')){
  358. $(this).attr('disabled',true);
  359. $(this).parent().parent().parent().parent().find('.cityall').attr('disabled',true);
  360. }
  361. }
  362. });
  363. }
  364. function getCurrents(withOutRandom){
  365. var citys = "";
  366. $('.citys').each(function(){
  367. var crandom = $(this).prev().val();
  368. if(withOutRandom && crandom==withOutRandom){
  369. return true;
  370. }
  371. citys+=$(this).val();
  372. });
  373. return citys;
  374. }
  375. </script>
  376. @include('area.dispatchselectprovinces')
  377. @endsection