add.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <div class="row-content am-cf">
  2. <div class="row">
  3. <div class="am-u-sm-12 am-u-md-12 am-u-lg-12">
  4. <div id="app" class="widget am-cf" v-cloak>
  5. <form id="my-form" class="am-form tpl-form-line-form" method="post">
  6. <div class="widget-body">
  7. <fieldset>
  8. <div class="widget-head am-cf">
  9. <div class="widget-title am-fl"><?= isset($model) ? '编辑' : '新增' ?>运费模版</div>
  10. </div>
  11. <div class="am-form-group">
  12. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require">模版名称 </label>
  13. <div class="am-u-sm-9 am-u-end">
  14. <input type="text" class="tpl-form-input" name="delivery[name]"
  15. v-model="name" required>
  16. </div>
  17. </div>
  18. <div class="am-form-group">
  19. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require">计费方式 </label>
  20. <div class="am-u-sm-9 am-u-end">
  21. <label class="am-radio-inline">
  22. <input type="radio" name="delivery[method]" value="10" data-am-ucheck
  23. v-model="method" checked> 按件数
  24. </label>
  25. <label class="am-radio-inline">
  26. <input type="radio" name="delivery[method]" value="20" v-model="method"
  27. data-am-ucheck>
  28. 按重量
  29. </label>
  30. </div>
  31. </div>
  32. <div class="am-form-group">
  33. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require">
  34. 配送区域及运费
  35. </label>
  36. <div class="am-u-sm-9 am-u-lg-10 am-u-end">
  37. <div class=" am-scrollable-horizontal">
  38. <table class="regional-table am-table am-table-bordered
  39. am-table-centered am-margin-bottom-xs">
  40. <tbody>
  41. <tr>
  42. <th width="42%">可配送区域</th>
  43. <th>
  44. <span class="first">{{ method == 10 ? '首件 (个)' : '首重 (Kg)' }}</span>
  45. </th>
  46. <th>运费 (元)</th>
  47. <th>
  48. <span class="additional">{{ method == 10 ? '续件 (个)' : '续重 (Kg)' }}</span>
  49. </th>
  50. <th>续费 (元)</th>
  51. </tr>
  52. <tr v-for="(item, formIndex) in forms">
  53. <td class="am-text-left">
  54. <p class="selected-content am-margin-bottom-xs">
  55. <span v-if="item.citys.length == <?= $cityCount ?>">全国</span>
  56. <template v-else v-for="(province, index) in item.treeData">
  57. <span>{{ province.name }}</span>
  58. <template v-if="!province.isAllCitys">
  59. (<span class="am-link-muted">
  60. <template v-for="(city, index) in province.citys">
  61. <span>{{ city.name }}</span><span
  62. v-if="(index + 1) < province.citys.length">、</span>
  63. </template>
  64. </span>)
  65. </template>
  66. </template>
  67. </p>
  68. <p class="operation am-margin-bottom-xs">
  69. <a class="edit" @click.stop="onEditerForm(formIndex, item)"
  70. href="javascript:void(0);">编辑</a>
  71. <a class="delete" href="javascript:void(0);"
  72. @click.stop="onDeleteForm(formIndex)">删除</a>
  73. </p>
  74. <input type="hidden" name="delivery[rule][region][]"
  75. :value="item.citys" required>
  76. </td>
  77. <td>
  78. <input type="number" name="delivery[rule][first][]"
  79. v-model="item.first" required>
  80. </td>
  81. <td>
  82. <input type="number" name="delivery[rule][first_fee][]"
  83. v-model="item.first_fee" required>
  84. </td>
  85. <td>
  86. <input type="number" name="delivery[rule][additional][]"
  87. v-model="item.additional">
  88. </td>
  89. <td>
  90. <input type="number" name="delivery[rule][additional_fee][]"
  91. v-model="item.additional_fee">
  92. </td>
  93. </tr>
  94. <tr>
  95. <td colspan="5" class="am-text-left">
  96. <a class="add-region am-btn am-btn-default am-btn-xs"
  97. href="javascript:void(0);" @click.stop="onAddRegionEvent">
  98. <i class="iconfont icon-dingwei"></i>
  99. 点击添加可配送区域和运费
  100. </a>
  101. </td>
  102. </tr>
  103. </tbody>
  104. </table>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="am-form-group">
  109. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require"> 排序 </label>
  110. <div class="am-u-sm-9 am-u-end">
  111. <input type="number" class="tpl-form-input" name="delivery[sort]"
  112. value="100" required>
  113. <small>数字越小越靠前</small>
  114. </div>
  115. </div>
  116. <div class="am-form-group">
  117. <div class="am-u-sm-9 am-u-sm-push-3 am-margin-top-lg">
  118. <button type="submit" class="j-submit am-btn am-btn-secondary"> 提交
  119. </button>
  120. </div>
  121. </div>
  122. </fieldset>
  123. </div>
  124. </form>
  125. <!-- 地区选择 -->
  126. <div ref="choice" class="regional-choice">
  127. <div class="place-div">
  128. <div>
  129. <div class="checkbtn">
  130. <label>
  131. <input type="checkbox" @change="onCheckAll(!checkAll)" :checked="checkAll">
  132. 全选</label>
  133. <a class="clearCheck" href="javascript:void(0);" @click="onCheckAll(false)">清空</a>
  134. </div>
  135. <div class="place clearfloat">
  136. <div class="smallplace clearfloat">
  137. <div v-for="item in regions"
  138. v-if="!isPropertyExist(item.id, disable.treeData) || !disable.treeData[item.id].isAllCitys"
  139. class="place-tooltips">
  140. <label>
  141. <input type="checkbox" class="province"
  142. :value="item.id"
  143. :checked="inArray(item.id, checked.province)"
  144. @change="onCheckedProvince">
  145. <span class="province_name">{{ item.name }}</span><span
  146. class="ratio"></span>
  147. </label>
  148. <div class="citys">
  149. <i class="jt"><i></i></i>
  150. <div class="row-div clearfloat">
  151. <p v-for="city in item.city"
  152. v-if="!inArray(city.id, disable.citys)">
  153. <label>
  154. <input class="city" type="checkbox"
  155. :value="city.id"
  156. :checked="inArray(city.id, checked.citys)"
  157. @change="onCheckedCity($event, item.id)">
  158. <span>{{ city.name }}</span>
  159. </label>
  160. </p>
  161. </div>
  162. </div>
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. <script src="assets/common/js/vue.min.js?v=<?= $version ?>"></script>
  174. <script src="assets/store/js/delivery.js?v=<?= $version ?>"></script>
  175. <script>
  176. $(function () {
  177. new delivery({
  178. el: '#app',
  179. name: "<?= isset($model) ? $model['name'] : '' ?>",
  180. method: <?= isset($model) ? $model['method']['value'] : 10 ?>,
  181. regions: JSON.parse('<?= $regionData ?>'),
  182. cityCount: <?= $cityCount ?>,
  183. formData: JSON.parse('<?= isset($formData) ? $formData : '[]' ?>')
  184. });
  185. /**
  186. * 表单验证提交
  187. * @type {*}
  188. */
  189. $('#my-form').superForm();
  190. });
  191. </script>