lists.html 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740
  1. {extend name="base"/}
  2. {block name="resources"}
  3. <link rel="stylesheet" href="SHOP_CSS/goods_lists.css">
  4. <link rel="stylesheet" type="text/css" href="__STATIC__/ext/searchable_select/searchable_select.css"/>
  5. <link rel="stylesheet" type="text/css" href="__STATIC__/ext/layui/extend/cascader/cascader.css"/>
  6. <style>
  7. .marked-message {height:48px;background:#FFF5ED;font-size:14px;font-family:Source Han Sans SC;font-weight:400;color:#666;line-height:50px;padding:0 16px;display:flex;}
  8. .promote-flex {display:flex;margin-top:15px;padding:0 10px 0;}
  9. .promote-img {background-color:#f8f8f8;display:flex;justify-content:center;align-items:center;width:200px;height:200px;}
  10. .promote-img img {width:140px;height:140px;}
  11. .label-width {width:100px;}
  12. .block-left {margin-left:100px !important;display:flex;}
  13. .promote-download {margin-left:20px;}
  14. .h5-path {margin-left:20px;width:300px;}
  15. .h5-path .fuzhi {width:1px;height:0px;border:0px;}
  16. .h5-path span {display:block;margin-bottom:10px;}
  17. .h5-path p input {height:30px;line-height:30px;border:1px solid #e6e6e5;width:150px;padding:0px 5px;border-radius:5px;margin-right:10px;}
  18. .layui-table .table-btn {justify-content:flex-end;}
  19. .batch-operation-sku {display:block;}
  20. .batch-operation-sku .layui-form-label {width:unset}
  21. .batch-operation-sku span {margin-right:10px;display:inline-block;height:34px;line-height:34px;cursor:pointer;}
  22. .batch-operation-sku input {display:inline-block;}
  23. .batch-operation-sku input,.batch-operation-sku button {display:none;}
  24. .sku-table {display:none;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:none}
  25. .sku-table .layui-input-block .img-wrap {display:inline-block;position:relative;margin:8px;border:1px solid #e5e5e5;}
  26. .sku-table .layui-input-block .img-wrap a {display:block;width:50px;height:50px;line-height:50px;text-align:center;overflow:hidden;}
  27. .sku-table .layui-input-block .img-wrap a img {width:100%;}
  28. .sku-table .layui-input-block .img-wrap .operation {position:absolute;top:0;z-index:10;width:50px;height:50px;background:rgba(0,0,0,0.3);color:#fff;cursor:pointer;line-height:50px;text-align:center;display:none;}
  29. .sku-table .layui-input-block .img-wrap:hover .operation {display:block;}
  30. .sku-table .layui-input-block .img-wrap .operation i {font-size:20px;}
  31. .sku-table .layui-input-block .upload-sku-img {border:1px dashed #d9d9d9;width:50px;height:50px;border-radius:2px;background-color:#fbfbfb;text-align:center;cursor:pointer;margin:8px;display:inline-block;padding:15px 0;box-sizing:border-box;}
  32. .sku-table .layui-input-block .layui-form-radio {margin:6px 0px 0 0;padding:0;}
  33. .sku-table .layui-input-block .layui-form-radio>i {margin-right:3px;}
  34. .batch-operation-sku .batch-btn {display:flex}
  35. .batch-operation-sku .batch-btn input {margin-right:10px}
  36. .category-wrap {width:185px!important;display: inline-block}
  37. .el-input__inner {height:34px;line-height:34px;border-radius:2px;}
  38. .goods-class-name {display: inline-block;white-space: nowrap;background: #eee;color: #999;font-size: 12px;padding: 3px 5px; line-height: 1;border-radius: 4px;}
  39. .promotion-addon {display: flex;flex-wrap: wrap;}
  40. </style>
  41. {/block}
  42. {block name="main"}
  43. <!-- 按钮容器 -->
  44. <div class="single-filter-box top">
  45. <button class="layui-btn" onclick="add()">添加商品</button>
  46. </div>
  47. <!-- 筛选面板 -->
  48. <div class="screen layui-collapse" lay-filter="selection_panel">
  49. <div class="layui-colla-item">
  50. <form class="layui-colla-content layui-form layui-show">
  51. <div class="layui-form-item">
  52. <div class="layui-inline">
  53. <label class="layui-form-label">商品名称</label>
  54. <div class="layui-input-inline">
  55. <input type="text" name="search_text" placeholder="请输入商品名称" autocomplete="off" class="layui-input">
  56. </div>
  57. </div>
  58. <div class="layui-inline">
  59. <label class="layui-form-label">商品编码</label>
  60. <div class="layui-input-inline">
  61. <input type="text" name="sku_no" placeholder="请输入商品编码" autocomplete="off" class="layui-input">
  62. </div>
  63. </div>
  64. <div class="layui-inline">
  65. <label class="layui-form-label">商品分类</label>
  66. <div class="layui-input-inline category-wrap">
  67. <input type="text" autocomplete="off" show="false" class="layui-input select-category" placeholder="请选择" readonly="">
  68. <input type="hidden" name="category_id">
  69. </div>
  70. </div>
  71. <div class="layui-inline">
  72. <label class="layui-form-label">商品品牌</label>
  73. <div class="layui-input-inline">
  74. <select name="brand_id" lay-filter="brand_id">
  75. <option value="">全部</option>
  76. {foreach name="$brand_list" item="brand_vo"}
  77. <option value="{$brand_vo['brand_id']}">{$brand_vo['brand_name']}</option>
  78. {/foreach}
  79. </select>
  80. </div>
  81. </div>
  82. </div>
  83. <div class="layui-form-item">
  84. <div class="layui-inline">
  85. <label class="layui-form-label">商品类型</label>
  86. <div class="layui-input-inline">
  87. <select name="goods_class" lay-filter="goods_class">
  88. <option value="">全部</option>
  89. {foreach name="$goods_class" item="vo"}
  90. <option value="{$vo['goods_class']}">{$vo['goods_class_name']}</option>
  91. {/foreach}
  92. </select>
  93. </div>
  94. </div>
  95. <div class="layui-inline">
  96. <label class="layui-form-label">商品标签</label>
  97. <div class="layui-input-inline">
  98. <select name="label_id" lay-filter="label_id">
  99. <option value="">全部</option>
  100. {foreach name="$label_list" item="vo"}
  101. <option value="{$vo['id']}">{$vo['label_name']}</option>
  102. {/foreach}
  103. </select>
  104. </div>
  105. </div>
  106. <div class="layui-inline">
  107. <label class="layui-form-label">营销活动</label>
  108. <div class="layui-input-inline">
  109. <select name="promotion_type" lay-filter="promotion_type">
  110. <option value="">全部</option>
  111. {foreach name="$promotion_type" item="vo"}
  112. <option value="{$vo['type']}">{$vo['name']}</option>
  113. {/foreach}
  114. </select>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="layui-form-item">
  119. <div class="layui-inline">
  120. <label class="layui-form-label">商品销量</label>
  121. <div class="layui-input-inline">
  122. <input type="number" name="start_sale" id="start_sale" lay-verify="int" placeholder="最低销量" class="layui-input" autocomplete="off">
  123. </div>
  124. <div class="layui-form-mid">-</div>
  125. <div class="layui-input-inline">
  126. <input type="number" name="end_sale" id="end_sale" lay-verify="int" placeholder="最高销量" class="layui-input" autocomplete="off">
  127. </div>
  128. </div>
  129. <div class="layui-inline">
  130. <label class="layui-form-label">商品价格</label>
  131. <div class="layui-input-inline input-append">
  132. <input type="flaot" name="start_price" id="start_price" lay-verify="float" placeholder="最低价格" class="layui-input" autocomplete="off">
  133. </div>
  134. <div class="layui-form-mid">元</div>
  135. <div class="layui-form-mid">-</div>
  136. <div class="layui-input-inline input-append">
  137. <input type="flaot" name="end_price" id="end_price" lay-verify="float" placeholder="最高价格" class="layui-input" autocomplete="off">
  138. </div>
  139. <div class="layui-form-mid">元</div>
  140. </div>
  141. </div>
  142. <input type="hidden" name="stockalarm" value="{$stockalarm}"/>
  143. <input type="hidden" name="goods_state" value="{$goods_state}"/>
  144. <div class="form-row">
  145. <button class="layui-btn" lay-submit lay-filter="search">筛选</button>
  146. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  147. <button class="layui-btn layui-btn-primary" lay-submit lay-filter="batch_export_goods">导出商品</button>
  148. <a class="layui-btn layui-btn-primary" href="{:addon_url('shop/goods/export')}" target="_blank">查看导出记录</a>
  149. </div>
  150. </form>
  151. </div>
  152. </div>
  153. <div class="layui-tab table-tab" lay-filter="goods_list_tab">
  154. <ul class="layui-tab-title">
  155. <li {if $goods_state=='' && $stockalarm==0}class="layui-this" {/if} lay-id="">全部</li>
  156. <li {if $goods_state=='1' }class="layui-this" {/if} lay-id="1" data-type="goods_state">销售中</li>
  157. <li {if $goods_state=='0' }class="layui-this" {/if} lay-id="0" data-type="goods_state">仓库中</li>
  158. <li {if $stockalarm=='1' } class="layui-this" {/if} lay-id="1" data-type="stockalarm">预警中</li>
  159. </ul>
  160. <div class="layui-tab-content">
  161. <!-- 列表 -->
  162. <table id="goods_list" lay-filter="goods_list"></table>
  163. </div>
  164. </div>
  165. <!-- 商品信息 -->
  166. <script type="text/html" id="goods_info">
  167. <div class="table-title">
  168. <div class="contraction" data-goods-id="{{d.goods_id}}" data-open="0">
  169. <span>+</span>
  170. </div>
  171. <div class="title-pic" id="goods_img_{{d.goods_id}}" {if addon_is_exit('pc')} onclick="pc_url({{d.sku_id}})" {/if}>
  172. <!--layer-src="{{ns.img(d.goods_image.split(',')[0], 'big')}}" -->
  173. <img src="{{ns.img(d.goods_image.split(',')[0], 'small')}}"/>
  174. </div>
  175. {if addon_is_exit('pc')}
  176. <div class="title-content" onclick="pc_url({{d.sku_id}})">
  177. <a href="javascript:;" class="multi-line-hiding text-color-sub" title="{{d.goods_name}}">{{d.goods_name}}</a>
  178. {else /}
  179. <div class="title-content">
  180. <a href="javascript:;" class="multi-line-hiding text-color-sub" title="{{d.goods_name}}" lay-event="preview">{{d.goods_name}}</a>
  181. {/if}
  182. <!-- <span class="goods-class-name">{{ d.goods_class_name }}</span>-->
  183. {{# if(d.promotion_addon && d.promotion_addon_list){ }}
  184. <span class="promotion-addon">
  185. {{# for(var i=0;i<d.promotion_addon_list.length;i++){ }}
  186. <a href="{{ns.url( d.promotion_addon_list[i].url )}}">
  187. <span class="bg-color" title="{{d.promotion_addon_list[i].name}}">{{ d.promotion_addon_list[i].short }}</span>
  188. </a>
  189. {{# } }}
  190. </span>
  191. {{# } }}
  192. {{# if(d.label_name){ }}
  193. <span class="promotion-addon" >
  194. <span class="bg-color" style="background:red !important;">{{d.label_name}}</span>
  195. </span>
  196. {{# } }}
  197. {{# if(d.is_consume_discount ==1){ }}
  198. <span class="promotion-addon vips_price" data-goods-id="{{d.goods_id}}" data-open="0">
  199. <span class="layui-bg-black " title="会员价"><span class="iconfont icon"> VIP</span></span>
  200. </span>
  201. {{# } }}
  202. {{# if(d.sku_no){ }}
  203. <div>
  204. <span>{{d.sku_no}}</span>
  205. </div>
  206. {{# } }}
  207. </div>
  208. </div>
  209. </script>
  210. <!-- 操作 -->
  211. <script type="text/html" id="operation">
  212. <div class="operation-wrap" data-goods-id="{{d.goods_id}}">
  213. <div class="popup-qrcode-wrap"><img class="popup-qrcode-loadimg" src="__STATIC__/loading/loading.gif"/></div>
  214. <div class="table-btn">
  215. <a class="layui-btn text-color" lay-event="edit">编辑</a>
  216. {{# if(d.goods_class == 2 || d.goods_class == 4){ }}
  217. <a class="layui-btn" lay-event="verify">核销码</a>
  218. {{# } }}
  219. {{# if(d.goods_class == 3){ }}
  220. <a class="layui-btn" lay-event="carmichael">卡密管理</a>
  221. {{# } }}
  222. {{# if(d.goods_class == 1 || d.goods_class == 2 || d.goods_class == 4 || d.goods_class == 5 || d.goods_class == 6){ }}
  223. <a class="layui-btn" lay-event="editStock">库存</a>
  224. {{# } }}
  225. {if $memberprice_is_exit == 1}
  226. <a class="layui-btn" lay-event="member_price">会员价</a>
  227. {/if}
  228. {if $cardservice_is_exit == 1}
  229. {{# if(d.goods_class == 5){ }}
  230. <a class="layui-btn" lay-event="goods_card">卡项</a>
  231. {{# } }}
  232. {/if}
  233. <a class="layui-btn" lay-event="more">更多</a>
  234. <div class="more-operation">
  235. <a class="operation" lay-event="spread">推广</a>
  236. {{# if(d.goods_state == 1){ }}
  237. <!-- <a class="layui-btn" lay-event="preview">预览</a> -->
  238. <a class="operation" lay-event="off_goods">下架</a>
  239. {{# }else{ }}
  240. <a class="operation" lay-event="on_goods">上架</a>
  241. {{# } }}
  242. <a class="operation" lay-event="browse_records">浏览记录</a>
  243. <a class="operation" lay-event="evaluate">评论</a>
  244. <a class="operation" lay-event="copy">复制</a>
  245. <a class="operation" lay-event="delete">删除</a>
  246. </div>
  247. </div>
  248. </div>
  249. </script>
  250. <!-- 批量操作 -->
  251. <script type="text/html" id="toolbarOperation">
  252. <button class="layui-btn layui-btn-primary" lay-event="delete">批量删除</button>
  253. <button class="layui-btn layui-btn-primary" lay-event="on_goods">批量上架</button>
  254. <button class="layui-btn layui-btn-primary" lay-event="off_goods">批量下架</button>
  255. <button class="layui-btn layui-btn-primary" lay-event="batch_set">批量设置</button>
  256. </script>
  257. <!-- 批量操作 -->
  258. <script type="text/html" id="batchOperation">
  259. <button class="layui-btn layui-btn-primary" lay-event="delete">批量删除</button>
  260. <button class="layui-btn layui-btn-primary" lay-event="on_goods">批量上架</button>
  261. <button class="layui-btn layui-btn-primary" lay-event="off_goods">批量下架</button>
  262. <button class="layui-btn layui-btn-primary" lay-event="batch_set">批量设置</button>
  263. </script>
  264. <!-- SKU商品列表 -->
  265. <script type="text/html" id="skuList">
  266. <tr class="js-sku-list-{{d.index}}" id="sku_img_{{d.index}}">
  267. <td></td>
  268. {{# if (d.member_price_is_exit == 1) { }}
  269. <td colspan="9">
  270. {{# } else { }}
  271. <td colspan="8">
  272. {{# } }}
  273. <ul class="sku-list">
  274. {{# for(var i=0;i<d.list.length;i++){ }}
  275. <li>
  276. <div class="img-wrap">
  277. <img layer-src="{{ns.img(d.list[i].sku_image, 'small')}}" src="{{ns.img(d.list[i].sku_image)}}">
  278. </div>
  279. <div class="info-wrap">
  280. <span class="sku-name">{{d.list[i].sku_name}}</span>
  281. <div>
  282. {{# if(d.list[i].stock_alarm> 0 && d.list[i].stock<=d.list[i].stock_alarm){ }}
  283. <span class="stock">库存:<label style="color:red;">{{d.list[i].stock}}(库存不足)</label></span>
  284. {{# }else{ }}
  285. <span class="stock">库存:{{d.list[i].stock}}</span>
  286. {{# } }}
  287. <span class="sale_num">销量:{{d.list[i].sale_num}}</span>
  288. </div>
  289. </div>
  290. <div class="prices">
  291. 原价: ¥{{d.list[i].price}}
  292. {{# if (d.list[i].member_price_list) { }}
  293. {{# layui.each(d.list[i].member_price_list, function(index, item){ }}
  294. <p class="vip_price">{{ item.level_name }}: ¥{{ item.member_price }}</p>
  295. {{# }); }}
  296. {{# } }}
  297. </div>
  298. </li>
  299. {{# } }}
  300. </ul>
  301. </td>
  302. </tr>
  303. </script>
  304. <!-- 商品推广 -->
  305. {include file="app/shop/view/promote.html"}
  306. <!-- 编辑排序 -->
  307. <script type="text/html" id="editSort">
  308. <input name="sort" type="number" onchange="editSort({{d.goods_id}}, this)" value="{{d.sort}}" class="layui-input edit-sort len-short">
  309. </script>
  310. <!-- 编辑库存 -->
  311. <script type="text/html" id="editStock">
  312. <input name="sort" type="number" onchange="editSort({{d.goods_id}}, this)" value="{{d.sort}}" class="layui-input edit-sort len-short">
  313. </script>
  314. {/block}
  315. {block name="script"}
  316. <!-- 编辑库存html -->
  317. <script type="text/html" id="edit_stock">
  318. <div class="layui-form" id="edit_stock_block" lay-filter="form">
  319. <div class="layui-form-item batch-operation-sku">
  320. <label class="layui-form-label">批量操作:</label>
  321. <div class="layui-input-inline batch-btn">
  322. <span class="text-color" data-field="price" data-verify="price">销售价</span>
  323. <span class="text-color" data-field="market_price" data-verify="market_price">划线价</span>
  324. <span class="text-color" data-field="cost_price" data-verify="cost_price">成本价</span>
  325. <span class="text-color" data-field="stock" data-verify="stock">库存</span>
  326. {{# if(d.goods_class == 1){ }}
  327. <span class="text-color" data-field="weight" data-verify="weight">重量(kg)</span>
  328. <span class="text-color" data-field="volume" data-verify="volume">体积(m³)</span>
  329. {{# } }}
  330. {{# if(d.goods_class == 2 && d.virtual_deliver_type == 'verify'){ }}
  331. <span class="text-color" data-field="verify_num" data-verify="verify_num">核销次数</span>
  332. {{# } }}
  333. <span class="text-color" data-field="sku_no" data-verify="">商品编码</span>
  334. <input type="text" class="layui-input len-short batch-val" autocomplete="off" />
  335. <button class="layui-btn confirm" type="button">确定</button>
  336. <button class="layui-btn layui-btn-primary cancel" type="button">取消</button>
  337. </div>
  338. </div>
  339. <table class="layui-table" lay-skin="line">
  340. <colgroup>
  341. <col width="16%">
  342. <col width="12%">
  343. <col width="12%">
  344. <col width="12%">
  345. <col width="12%">
  346. {{# if(d.goods_class == 1){ }}
  347. <col width="12%">
  348. <col width="12%">
  349. {{# } }}
  350. {{# if(d.goods_class == 2 && d.virtual_deliver_type == 'verify'){ }}
  351. <col width="12%">
  352. {{# } }}
  353. <col width="12%">
  354. </colgroup>
  355. <thead>
  356. <tr>
  357. <th>商品名称</th>
  358. <th>销售价</th>
  359. <th>划线价</th>
  360. <th>成本价</th>
  361. <th>库存</th>
  362. {{# if(d.goods_class == 1){ }}
  363. <th>重量(kg)</th>
  364. <th>体积(m³)</th>
  365. {{# } }}
  366. {{# if(d.goods_class == 2 && d.virtual_deliver_type == 'verify'){ }}
  367. <th>核销次数</th>
  368. {{# } }}
  369. <th>商品编码</th>
  370. </tr>
  371. </thead>
  372. <tbody>
  373. {{# layui.each(d.sku_list, function(index, item){ }}
  374. <tr>
  375. <td><input type="hidden" name="sku_list[{{index}}][sku_id]" value="{{ item.sku_id }}" class="layui-input">{{ item.sku_name }}</td>
  376. <td><input type="number" name="sku_list[{{index}}][price]" value="{{ item.price }}" class="layui-input price" lay-verify="price"></td>
  377. <td><input type="number" name="sku_list[{{index}}][market_price]" value="{{ item.market_price }}" class="layui-input market_price" lay-verify="market_price"></td>
  378. <td><input type="number" name="sku_list[{{index}}][cost_price]" value="{{ item.cost_price }}" class="layui-input cost_price" lay-verify="cost_price"></td>
  379. <td><input type="number" name="sku_list[{{index}}][stock]" value="{{ item.stock }}" class="layui-input stock" lay-verify="goods_stock"></td>
  380. {{# if(d.goods_class == 1){ }}
  381. <td><input type="number" name="sku_list[{{index}}][weight]" value="{{ item.weight }}" class="layui-input weight" lay-verify="weight"></td>
  382. <td><input type="number" name="sku_list[{{index}}][volume]" value="{{ item.volume }}" class="layui-input volume" lay-verify="volume"></td>
  383. {{# } }}
  384. {{# if(d.goods_class == 2 && d.virtual_deliver_type == 'verify'){ }}
  385. <td><input type="number" name="sku_list[{{index}}][verify_num]" value="{{ item.verify_num }}" class="layui-input verify_num" lay-verify="verify_num"></td>
  386. {{# } }}
  387. <td><input type="text" name="sku_list[{{index}}][sku_no]" value="{{ item.sku_no }}" class="layui-input sku_no"></td>
  388. </tr>
  389. {{# }); }}
  390. </tbody>
  391. </table>
  392. <div class="form-row">
  393. <button class="layui-btn" lay-submit lay-filter="edit_stock">确定</button>
  394. <button class="layui-btn layui-btn-primary" onclick="closeStock()">返回</button>
  395. </div>
  396. </div>
  397. </script>
  398. <!-- 批量操作 -->
  399. <script type="text/html" id="batchSet">
  400. <div class="batch-set-wrap">
  401. <div class="tips">每次仅能设置一项,点击保存成功之后生效</div>
  402. <div class="set-wrap">
  403. <div class="tab-wrap">
  404. <ul>
  405. <li class="active" data-type="group">商品标签</li>
  406. <li data-type="service">商品服务</li>
  407. <li data-type="sale">虚拟销量</li>
  408. <li data-type="purchase_limit">商品限购</li>
  409. <li data-type="shipping">包邮设置</li>
  410. <li data-type="category">商品分类</li>
  411. {if $memberprice_is_exit == 1}
  412. <li data-type="member_price">会员价</li>
  413. {/if}
  414. <li data-type="stock">库存设置</li>
  415. <li data-type="price">修改价格</li>
  416. {if $form_is_exit == 1}
  417. <li data-type="goods_form">商品表单</li>
  418. {/if}
  419. <li data-type="goods_brand">商品品牌</li>
  420. </ul>
  421. </div>
  422. <div class="content-wrap">
  423. <div class="tab-item tab-show group">
  424. <div class="layui-form">
  425. <div class="layui-form-item">
  426. <label class="layui-form-label">商品标签:</label>
  427. <div class="layui-input-inline">
  428. <select name="batch_goods_label" lay-search="">
  429. <option value="0">请选择商品标签</option>
  430. {foreach name="$label_list" item="vo"}
  431. <option value="{$vo['id']}">{$vo['label_name']}</option>
  432. {/foreach}
  433. </select>
  434. </div>
  435. </div>
  436. </div>
  437. </div>
  438. <div class="tab-item service">
  439. <div class="layui-form">
  440. <div class="layui-form-item">
  441. <label class="layui-form-label">商品服务:</label>
  442. <div class="layui-input-block">
  443. {foreach name="$service_list" item="vo"}
  444. <input type="checkbox" name="batch_goods_service" value="{$vo.id}" title="{$vo.service_name}" lay-skin="primary">
  445. {/foreach}
  446. </div>
  447. </div>
  448. </div>
  449. </div>
  450. <div class="tab-item sale">
  451. <div class="layui-form">
  452. <div class="layui-form-item">
  453. <label class="layui-form-label">已售出数:</label>
  454. <div class="layui-input-block">
  455. <input type="number" name="batch_virtual_sale" placeholder="0" value="0" lay-verify="virtual_sale" class="layui-input len-short" autocomplete="off">
  456. <div class="layui-form-mid">/件</div>
  457. </div>
  458. <div class="word-aux">该设置不计入商品统计数据</div>
  459. </div>
  460. </div>
  461. </div>
  462. <div class="tab-item purchase_limit">
  463. <div class="layui-form">
  464. <div class="layui-form-item">
  465. <label class="layui-form-label">商品限购:</label>
  466. <div class="layui-input-block">
  467. <input type="number" name="batch_max_buy" value="0" lay-verify="max_buy" class="layui-input len-short" autocomplete="off">
  468. <div class="layui-form-mid">/件</div>
  469. </div>
  470. <div class="word-aux">该限购为终身限购,0为不限购</div>
  471. </div>
  472. </div>
  473. </div>
  474. <div class="tab-item shipping">
  475. <div class="layui-form">
  476. <div class="layui-form-item">
  477. <label class="layui-form-label">是否包邮:</label>
  478. <div class="layui-input-block">
  479. <div class="layui-input-inline">
  480. <input type="radio" name="is_free_shipping" value="1" title="是" checked>
  481. <input type="radio" name="is_free_shipping" value="0" title="否">
  482. </div>
  483. </div>
  484. </div>
  485. <div class="layui-form-item hide shipping_template">
  486. <label class="layui-form-label">运费模板:</label>
  487. <div class="layui-input-inline">
  488. <select name="batch_shipping_template" lay-search="">
  489. <option value="0">请选择运费模板</option>
  490. {foreach name="$express_template_list" item="vo"}
  491. <option value="{$vo['template_id']}">{$vo['template_name']}</option>
  492. {/foreach}
  493. </select>
  494. </div>
  495. </div>
  496. <div class="word-aux">该设置仅对实物商品有效</div>
  497. </div>
  498. </div>
  499. <div class="tab-item category">
  500. <div class="layui-form-item">
  501. <label class="layui-form-label goods-category-css"><span class="required">*</span>商品分类:</label>
  502. <div class="layui-input-block goods-cate">
  503. <div class="layui-block first">
  504. <div class="category-wrap">
  505. <input type="text" readonly lay-verify="required" autocomplete="off" class="layui-input select-category"/>
  506. <input type="hidden" class="category_id"/>
  507. </div>
  508. <a href="javascript:;" class="text-color js-add-category">添加分类</a>
  509. </div>
  510. </div>
  511. <div class="word-aux">商品可以属于多个分类,最多10个</div>
  512. </div>
  513. </div>
  514. <div class="tab-item member_price">
  515. <div class="layui-form">
  516. <div class="layui-form-item">
  517. <label class="layui-form-label">是否参与:</label>
  518. <div class="layui-input-inline">
  519. <input type="radio" name="is_consume_discount" value="0" title="不参与" checked>
  520. <input type="radio" name="is_consume_discount" value="1" title="参与">
  521. </div>
  522. </div>
  523. <div class="word-aux">批量设置参与会员等级折扣的商品,如果之前未单独配置过优惠规则,则按照默认会员等级折扣优惠</div>
  524. </div>
  525. </div>
  526. <div class="tab-item stock">
  527. <div class="layui-form">
  528. <div class="layui-form-item">
  529. <label class="layui-form-label">修改库存:</label>
  530. <div class="layui-input-inline">
  531. <input type="radio" name="stock_type" value="inc" title="添加库存" checked>
  532. <input type="radio" name="stock_type" value="dec" title="减少库存">
  533. </div>
  534. </div>
  535. <div class="layui-form-item">
  536. <label class="layui-form-label">目标数值:</label>
  537. <div class="layui-input-block">
  538. <input type="number" name="stock_num" placeholder="0" value="0" class="layui-input len-short" autocomplete="off" onblur="stockinput(this)">
  539. </div>
  540. </div>
  541. <div class="word-aux">批量调整商品库存,该操作不会改变电子卡密的库存</div>
  542. </div>
  543. </div>
  544. <div class="tab-item price">
  545. <div class="layui-form">
  546. <div class="layui-form-item">
  547. <label class="layui-form-label">计算方式:</label>
  548. <div class="layui-input-inline">
  549. <input type="radio" name="type" lay-filter="type"value="money" title="固定金额" checked>
  550. <input type="radio" name="type" lay-filter="type"value="calculate" title="公式计算">
  551. </div>
  552. </div>
  553. </div>
  554. <div class="layui-form">
  555. <div class="layui-form-item">
  556. <label class="layui-form-label"></label>
  557. <div class="layui-input-block">
  558. <div class="layui-input-inline" style="width:84px;">
  559. <select name="price_type" lay-verify="required">
  560. <option value="sale">销售价</option>
  561. <option value="market">划线价</option>
  562. <option value="cost">成本价</option>
  563. </select>
  564. </div>
  565. <div class="layui-input-inline">=</div>
  566. <div class="layui-input-inline price-calculate-block" style="display:none;">
  567. <div class="layui-input-inline" style="width:84px;">
  568. <select name="calculate_price_type" lay-verify="required">
  569. <option value="sale">销售价</option>
  570. <option value="market">划线价</option>
  571. <option value="cost">成本价</option>
  572. </select>
  573. </div>
  574. <div class="layui-input-inline" style="width:50px;">
  575. <select name="sign" lay-filter="sign" lay-verify="required">
  576. <option value="add">+</option>
  577. <option value="subtract">-</option>
  578. <option value="multiply">x</option>
  579. <option value="division">÷</option>
  580. </select>
  581. </div>
  582. </div>
  583. <div class="layui-input-inline len-short">
  584. <input type="number" name="price" autocomplete="off" class="layui-input"/>
  585. </div>
  586. <div class="layui-input-inline price-unit money-price-unit">元</div>
  587. <div class="layui-input-inline price-unit calculate-price-unit" style="display:none;">元</div>
  588. </div>
  589. </div>
  590. </div>
  591. <div class="layui-form precise-block" style="display:none;">
  592. <div class="layui-form-item">
  593. <label class="layui-form-label">计算精度:</label>
  594. <div class="layui-input-block">
  595. <div class="layui-input-inline">
  596. <input type="radio" name="precise" lay-filter="precise"value="1" title="全部保留" checked>
  597. <input type="radio" name="precise" lay-filter="precise"value="2" title="抹分" >
  598. <input type="radio" name="precise" lay-filter="precise"value="3" title="抹角" >
  599. <input type="radio" name="precise" lay-filter="precise"value="4" title="四舍五入到分" >
  600. <input type="radio" name="precise" lay-filter="precise"value="5" title="四舍五入到角" >
  601. <input type="radio" name="precise" lay-filter="precise"value="6" title="四舍五入到元" >
  602. </div>
  603. </div>
  604. </div>
  605. </div>
  606. </div>
  607. {if $form_is_exit == 1}
  608. <div class="tab-item goods_form">
  609. <div class="layui-form">
  610. <div class="layui-form-item">
  611. <label class="layui-form-label">商品表单:</label>
  612. <div class="layui-input-block">
  613. <div class="layui-input-inline">
  614. <select name="batch_goods_form" lay-search="">
  615. <option value="0">请选择商品表单</option>
  616. {foreach name="$form_list" item="vo"}
  617. <option value="{$vo['id']}">{$vo['form_name']}</option>
  618. {/foreach}
  619. </select>
  620. </div>
  621. </div>
  622. </div>
  623. </div>
  624. </div>
  625. {/if}
  626. <div class="tab-item goods_brand">
  627. <div class="layui-form">
  628. <div class="layui-form-item">
  629. <label class="layui-form-label">商品品牌:</label>
  630. <div class="layui-input-inline">
  631. <select name="batch_goods_brand" lay-search="">
  632. <option value="0">请选择商品品牌</option>
  633. {foreach name="$brand_list" item="vo"}
  634. <option value="{$vo['brand_id']}">{$vo['brand_name']}</option>
  635. {/foreach}
  636. </select>
  637. </div>
  638. </div>
  639. </div>
  640. </div>
  641. <div class="tab-item result">
  642. <img src="SHOP_IMG/success.png">
  643. <div class="text">设置成功</div>
  644. </div>
  645. </div>
  646. </div>
  647. <div class="footer-wrap">
  648. <button class="layui-btn layui-btn-primary" onclick="layer.closeAll()">取消</button>
  649. <button class="layui-btn" onclick="batchSetting()">保存</button>
  650. </div>
  651. </div>
  652. </script>
  653. <!--选择商品分类-->
  654. <script type="text/html" id="selectedCategory">
  655. <div class="category-list">
  656. <div class="item">
  657. <!--后续做搜索-->
  658. <ul>
  659. {foreach name="$goods_category_list" item="vo"}
  660. {{# if(d.category_id_1 == '{$vo['category_id']}' ){ }}
  661. <li data-category-id="{$vo['category_id']}" data-commission-rate="{$vo['commission_rate']}" data-level="{$vo['level']}" class="selected">
  662. {{# }else{ }}
  663. <li data-category-id="{$vo['category_id']}" data-commission-rate="{$vo['commission_rate']}" data-level="{$vo['level']}">
  664. {{# } }}
  665. <span class="category-name">{$vo['category_name']}</span>
  666. <span class="right-arrow">&gt;</span>
  667. </li>
  668. {/foreach}
  669. </ul>
  670. </div>
  671. <div class="item" data-level="2">
  672. <!--后续做搜索-->
  673. <ul></ul>
  674. </div>
  675. <div class="item" data-level="3">
  676. <!--后续做搜索-->
  677. <ul></ul>
  678. </div>
  679. </div>
  680. <div class="selected-category-wrap">
  681. <label>您当前选择的是:</label>
  682. <span class="js-selected-category"></span>
  683. </div>
  684. </script>
  685. <script>
  686. var member_price_is_exit = "{$memberprice_is_exit}";
  687. var goods_sort = '{$goods_sort}';
  688. var pc_domain = '{$pc_domain}';
  689. var goods_class = {:json_encode($goods_class)};
  690. layui.extend({
  691. layCascader: '__STATIC__/ext/layui/extend/cascader/cascader'
  692. })
  693. </script>
  694. <script src="SHOP_JS/goods_list.js"></script>
  695. <script type="text/javascript" charset="utf-8" src="__STATIC__/ext/ueditor/ueditor.config.js"></script>
  696. <script type="text/javascript" charset="utf-8" src="__STATIC__/ext/ueditor/ueditor.all.js"></script>
  697. <script type="text/javascript" charset="utf-8" src="__STATIC__/ext/ueditor/lang/zh-cn/zh-cn.js"></script>
  698. {/block}