edit.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <link rel="stylesheet" href="assets/store/css/goods.css?v=<?= $version ?>">
  2. <div class="row-content am-cf">
  3. <div class="row">
  4. <div class="am-u-sm-12 am-u-md-12 am-u-lg-12">
  5. <div class="widget am-cf">
  6. <form id="my-form" class="am-form tpl-form-line-form">
  7. <div class="widget-body">
  8. <fieldset>
  9. <div class="widget-head am-cf">
  10. <div class="widget-title am-fl">编辑秒杀商品</div>
  11. </div>
  12. <div class="am-form-group">
  13. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require"> 商品信息 </label>
  14. <div class="am-u-sm-9 am-u-md-6 am-u-lg-5 am-u-end">
  15. <div class="goods-detail">
  16. <div class="goods-image">
  17. <img src="<?= $goods['goods_image'] ?>" alt="">
  18. </div>
  19. <div class="goods-info dis-flex flex-dir-column flex-x-center">
  20. <p class="goods-title"><?= $goods['goods_name'] ?></p>
  21. <p class="goods-title">ID:<?= $goods['goods_id'] ?></p>
  22. </div>
  23. </div>
  24. </div>
  25. </div>
  26. <!-- 商品单规格 -->
  27. <?php if ($goods['spec_type'] == 10): ?>
  28. <div class="goods-spec-single"
  29. style="display: <?= $goods['spec_type'] == 10 ? 'block' : 'none' ?>;">
  30. <div class="am-form-group">
  31. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require"> 商品编码 </label>
  32. <div class="am-u-sm-9 am-u-md-6 am-u-lg-5 am-u-end">
  33. <div class="am-form--static"><?= $goods['goods_sku']['goods_no'] ?: '--' ?></div>
  34. </div>
  35. </div>
  36. <div class="am-form-group">
  37. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require"> 商品售价 </label>
  38. <div class="am-u-sm-9 am-u-md-6 am-u-lg-5 am-u-end">
  39. <div class="am-form--static"><?= $goods['goods_sku']['goods_price'] ?></div>
  40. </div>
  41. </div>
  42. <div class="am-form-group am-padding-top">
  43. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require"> 秒杀价格 </label>
  44. <div class="am-u-sm-9 am-u-md-6 am-u-lg-5 am-u-end">
  45. <input type="number" min="0" class="tpl-form-input"
  46. name="goods[sku][seckill_price]"
  47. value="<?= $model['goods_sku']['seckill_price'] ?>" required>
  48. </div>
  49. </div>
  50. <div class="am-form-group">
  51. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require"> 秒杀库存数量 </label>
  52. <div class="am-u-sm-9 am-u-md-6 am-u-lg-5 am-u-end">
  53. <input type="number" min="0" class="tpl-form-input"
  54. name="goods[sku][seckill_stock]"
  55. value="<?= $model['goods_sku']['seckill_stock'] ?>" required>
  56. <div class="help-block">
  57. <small>注:秒杀库存为独立库存,与主商品库存不同步</small>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. <?php endif; ?>
  63. <!-- 商品多规格 -->
  64. <?php if ($goods['spec_type'] == 20): ?>
  65. <div class="am-form-group am-padding-top">
  66. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require">商品规格 </label>
  67. <div id="many-app" v-cloak class="goods-spec-many am-u-sm-9 am-u-end"
  68. style="display: block">
  69. <div class="goods-spec-box style-simplify">
  70. <!-- 商品多规格sku信息 -->
  71. <div v-if="spec_list.length > 0" class="goods-sku am-scrollable-horizontal">
  72. <!-- sku 批量设置 -->
  73. <div class="spec-batch am-form-inline">
  74. <div class="am-form-group">
  75. <input type="number" v-model="batchData.seckill_price"
  76. placeholder="秒杀价格">
  77. </div>
  78. <div class="am-form-group">
  79. <input type="number" min="0" v-model="batchData.seckill_stock"
  80. placeholder="秒杀库存">
  81. </div>
  82. <div class="am-form-group">
  83. <button @click="onSubmitBatchData" type="button"
  84. class="am-btn am-btn-sm am-btn-secondaryam-radius">批量设置
  85. </button>
  86. </div>
  87. </div>
  88. <!-- sku table -->
  89. <table class="spec-sku-tabel am-table am-table-bordered am-table-centered
  90. am-margin-bottom-xs am-text-nowrap">
  91. <tbody>
  92. <tr>
  93. <th v-for="item in spec_attr">{{ item.group_name }}</th>
  94. <th>商家编码</th>
  95. <th>商品售价</th>
  96. <th>商品库存</th>
  97. <th class="form-require">
  98. 秒杀价格
  99. </th>
  100. <th class="form-require">
  101. 秒杀库存
  102. </th>
  103. </tr>
  104. <tr v-for="(item, index) in spec_list">
  105. <td v-for="td in item.rows" class="td-spec-value am-text-middle"
  106. :rowspan="td.rowspan">
  107. {{ td.spec_value }}
  108. </td>
  109. <td>{{ item.form.goods_no ? item.form.goods_no : '--' }}</td>
  110. <td>{{ item.form.goods_price }}</td>
  111. <td>{{ item.form.stock_num }}</td>
  112. <td>
  113. <input type="number" min="0" class="ipt-w80"
  114. name="seckill_price"
  115. v-model="item.form.seckill_price" required>
  116. </td>
  117. <td>
  118. <input type="number" min="0" class="ipt-w80"
  119. name="seckill_stock"
  120. v-model="item.form.seckill_stock" required>
  121. </td>
  122. </tr>
  123. </tbody>
  124. </table>
  125. <div class="help-block">
  126. <small>注:秒杀库存为独立库存,与主商品库存不同步</small>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. <?php endif; ?>
  133. <div class="am-form-group am-padding-top">
  134. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require">库存计算方式 </label>
  135. <div class="am-u-sm-9 am-u-md-6 am-u-lg-5 am-u-end">
  136. <label class="am-radio-inline">
  137. <input type="radio" name="goods[deduct_stock_type]" value="10" data-am-ucheck
  138. <?= $model['deduct_stock_type'] == 10 ? 'checked' : '' ?> >
  139. 下单减库存
  140. </label>
  141. <label class="am-radio-inline">
  142. <input type="radio" name="goods[deduct_stock_type]" value="20" data-am-ucheck
  143. <?= $model['deduct_stock_type'] == 20 ? 'checked' : '' ?> >
  144. 付款减库存
  145. </label>
  146. </div>
  147. </div>
  148. <div class="am-form-group">
  149. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require"> 限购数量 </label>
  150. <div class="am-u-sm-9 am-u-md-6 am-u-lg-5 am-u-end">
  151. <input type="number" min="0" class="tpl-form-input" name="goods[limit_num]"
  152. value="<?= $model['limit_num'] ?>" required>
  153. <small>注:每人限制购买的数量,如果填写0则不限购</small>
  154. </div>
  155. </div>
  156. <div class="am-form-group am-padding-top">
  157. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require"> 商品状态 </label>
  158. <div class="am-u-sm-9 am-u-md-6 am-u-lg-5 am-u-end">
  159. <label class="am-radio-inline">
  160. <input type="radio" name="goods[status]" value="1" data-am-ucheck
  161. <?= $model['status'] == 1 ? 'checked' : '' ?>>
  162. 上架
  163. </label>
  164. <label class="am-radio-inline">
  165. <input type="radio" name="goods[status]" value="0" data-am-ucheck
  166. <?= $model['status'] == 0 ? 'checked' : '' ?>>
  167. 下架
  168. </label>
  169. </div>
  170. </div>
  171. <div class="am-form-group">
  172. <label class="am-u-sm-3 am-u-lg-2 am-form-label form-require">排序 </label>
  173. <div class="am-u-sm-9 am-u-md-6 am-u-lg-5 am-u-end">
  174. <input type="number" min="0" class="tpl-form-input" name="goods[sort]"
  175. value="<?= $model['sort'] ?>" required>
  176. <small>数字越小越靠前</small>
  177. </div>
  178. </div>
  179. <div class="am-form-group">
  180. <div class="am-u-sm-9 am-u-sm-push-3 am-margin-top-lg">
  181. <button type="submit" class="j-submit am-btn am-btn-sm am-btn-secondary"> 提交
  182. </button>
  183. </div>
  184. </div>
  185. </fieldset>
  186. </div>
  187. </form>
  188. </div>
  189. </div>
  190. </div>
  191. </div>
  192. <!-- 商品列表 -->
  193. <script id="tpl-goods-list-item" type="text/template">
  194. {{ each $data }}
  195. <div class="file-item">
  196. <a href="{{ $value.image }}" title="{{ $value.goods_name }}" target="_blank">
  197. <img src="{{ $value.image }}">
  198. </a>
  199. <input type="hidden" name="goods_id" value="{{ $value.goods_id }}">
  200. </div>
  201. {{ /each }}
  202. </script>
  203. <script src="assets/common/js/vue.min.js"></script>
  204. <script src="assets/store/js/goods.spec.js?v=<?= $version ?>"></script>
  205. <script>
  206. $(function () {
  207. // 注册商品多规格组件
  208. var specMany = new GoodsSpec({
  209. el: '#many-app',
  210. baseData: <?= \app\common\library\helper::jsonEncode($specData) ?>
  211. });
  212. /**
  213. * 表单验证提交
  214. * @type {*}
  215. */
  216. $('#my-form').superForm({
  217. // 获取多规格sku数据
  218. buildData: function () {
  219. var specData = specMany.appVue.getData();
  220. return {
  221. goods: {
  222. spec_many: {
  223. spec_list: specData.spec_list
  224. }
  225. }
  226. };
  227. }
  228. });
  229. });
  230. </script>