index.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718
  1. {extend name="app/shop/view/base.html"/}
  2. {block name="resources"}
  3. <style>
  4. .progress-layer {width:400px;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:1px 1px 50px rgba(0,0,0,.3);padding:20px 20px;z-index:100;display:none;}
  5. .progress-layer h3 {line-height:1;margin-bottom:15px;text-align:center;font-size:14px;}
  6. .progress-layer .layui-progress-big,.progress-layer .layui-progress-big .layui-progress-bar {height:14px;line-height:14px;}
  7. .progress-layer .layui-progress-text {line-height:14px;}
  8. .goods-info {padding: 5px 0;align-items: center;flex-wrap:unset!important;float: left !important;}
  9. .goods-info .room-name {padding-left: 5px;line-height: 1}
  10. .goods-info img {width:50px;height: 50px;}
  11. .single-filter-box{justify-content: end}
  12. .add-good-form .layui-input-block {width: 450px;}
  13. .add-good-form .layui-form-item {position: relative;}
  14. .add-good-form .category-wrap {position: absolute; left: 150px; top: 40px; z-index: 9; background-color: #FFFFFF; border: 1px solid #EEEEEE;}
  15. .add-good-form .category-wrap .category-list {display: flex;}
  16. .add-good-form .category-wrap ul {width: 151px; height: 300px; overflow: auto; background-color: #FFFFFF; border-right: 1px solid #EEEEEE; box-sizing: border-box;}
  17. .add-good-form .category-wrap ul:last-child {border-right: 1px solid #EEEEEE;}
  18. .add-good-form .category-wrap ul li {line-height: 26px; padding: 0 15px; cursor: pointer;}
  19. .add-good-form .category-wrap .category-btn {width: 100%; padding: 10px 15px; box-sizing: border-box; border-top: 1px solid #EEEEEE;}
  20. .layui-layer-page .layui-layer-content {overflow: auto !important; position: relative;}
  21. .goods-category-mask {width: 100%; height: 100%; position: absolute; left: 0; top: 0; z-index: 9;}
  22. .selected-style {color: #FFFFFF;}
  23. .reject-reason {height: 100%;padding-bottom: 20px;}
  24. .reason .layui-layer-content {overflow: unset!important}
  25. </style>
  26. {/block}
  27. {block name="main"}
  28. {if $checkres['code'] != 0 || $checkres['data']['status'] != 2}
  29. <div>
  30. <div style="margin-top:10% ">
  31. <div style="text-align:center;margin: auto;">
  32. <img src="SHOP_IMG/empty.jpg.png" alt="">
  33. </div>
  34. <div style="text-align:center;margin: auto;margin-top: 10px">
  35. <span >视频号未入驻,请先完成视频号入驻</span>
  36. </div>
  37. <div style="text-align:center;margin: auto;margin-top: 10px">
  38. <a href="{:addon_url('shopcomponent://shop/goods/access')}" class="text-color">立即处理</a>
  39. </div>
  40. </div>
  41. </div>
  42. {else/}
  43. <div class="single-filter-box">
  44. <a href="#" class="layui-btn " onclick="addGood()">添加商品</a>
  45. <!-- <button class="layui-btn layui-btn-primary " onclick="sync()">同步刷新</button>-->
  46. </div>
  47. <table id="goods_list" lay-filter="goods_list"></table>
  48. {/if}
  49. <!-- 直播间信息 -->
  50. <script type="text/html" id="goodsinfo">
  51. <div class="table-btn goods-info">
  52. <img src="{{ ns.img(d.cover_img) }}">
  53. <span class="room-name" title="{{ d.goods_name }}">{{ d.goods_name }}</span>
  54. </div>
  55. </script>
  56. <script type="text/html" id="cat">
  57. <div class="table-btn goods-info" style="position: relative">
  58. <!-- <input type="text" value="{{d.out_product_id}}" hidden id="goods_id">-->
  59. <span class="room-name" style="float: right; width: 100%; overflow: hidden; z-index: 1" title="{{ d.cat_name }}">{{ d.cat_name }}</span> | <span class="text-color" style="float:left;z-index: 100; margin-right: 1px;cursor:pointer" onclick="check_cat({{d.out_product_id}})">修改</span>
  60. </div>
  61. </script>
  62. <script type="text/html" id="reason">
  63. <div class="reject-reason">{{d.reject_reason}}</div>
  64. </script>
  65. <!-- 状态修改 -->
  66. <script type="text/html" id="goodsStatus">
  67. <div class="table-btn goods-info" style="position: relative">
  68. <span class="room-name {{# if(d.status==5){ }} text-color {{# } }} " {{# if(d.status!=5){ }}style="color:#808080" {{# } }} title="{{ d.status_name }}">{{ d.status_name }}</span>
  69. </div>
  70. </script>
  71. <!-- 操作 -->
  72. <script type="text/html" id="operation">
  73. <div class="table-btn">
  74. <a class="layui-btn" lay-event="delete">删除</a>
  75. {{# if(d.edit_status==3){ }}
  76. <a class="layui-btn" lay-event="reason">查看失败原因</a>
  77. {{# } }}
  78. {{# if(d.edit_status==4){ }}
  79. {{# if(d.status==5){ }}
  80. <a class="layui-btn" lay-event="dellisting">下架</a>
  81. {{# } }}
  82. {{# if(d.status!=5){ }}
  83. <a class="layui-btn" lay-event="listing">上架</a>
  84. {{# } }}
  85. {{# } }}
  86. </div>
  87. </script>
  88. <!-- 批量操作 -->
  89. <script type="text/html" id="batchOperation">
  90. <button class="layui-btn layui-btn-primary" lay-event="delete">批量删除</button>
  91. <button class="layui-btn layui-btn-primary" lay-event="listing">批量上架</button>
  92. <button class="layui-btn layui-btn-primary" lay-event="dellisting">批量下架</button>
  93. </script>
  94. <div class="progress-layer">
  95. <h3>正在同步中...</h3>
  96. <div class="layui-progress layui-progress-big" lay-showPercent="true" lay-filter="progress">
  97. <div class="layui-progress-bar layui-bg-blue" lay-percent="0%"></div>
  98. </div>
  99. </div>
  100. {/block}
  101. {block name="script"}
  102. <script>
  103. var form, table, element, laytpl, syncClick = false,
  104. delete_flag = false,
  105. save_flag = false,saveEdit_flag = false,
  106. dellisting_flag = false,
  107. listing_flag = false,
  108. goodsId = [], selectedGoodsId = [], goods_list = [],out_product_id='',
  109. cate_level_1_id = 0, cate_level_2_id = 0, cate_level_3_id = 0;
  110. reLoad();
  111. function reLoad() {
  112. layui.use(['form', 'element', 'laytpl'], function () {
  113. form = layui.form;
  114. element = layui.element;
  115. laytpl = layui.laytpl;
  116. table = new Table({
  117. elem: '#goods_list',
  118. url: ns.url("shopcomponent://shop/goods/lists"),
  119. bottomToolbar: "#batchOperation",
  120. cols: [
  121. [{
  122. type: 'checkbox',
  123. unresize: 'false',
  124. width: '3%'
  125. }, {
  126. title: '商品信息',
  127. unresize: 'false',
  128. width: '15%',
  129. templet: "#goodsinfo",
  130. align:'left'
  131. }, {
  132. title: '微信商品类目',
  133. unresize: 'false',
  134. width: '15%',
  135. templet: "#cat",
  136. align:'left'
  137. }, {
  138. title: '价格',
  139. unresize: 'false',
  140. width: '10%',
  141. field: 'price'
  142. }, {
  143. field: 'goods_stock',
  144. title: '库存',
  145. unresize: 'false',
  146. width: '6%'
  147. }, {
  148. templet: "#goodsStatus",
  149. title: '状态',
  150. unresize: 'false',
  151. width: '10%',
  152. }, {
  153. field: 'create_time',
  154. title: '提交时间',
  155. unresize: 'false',
  156. width: '10%',
  157. }, {
  158. field: 'audit_time',
  159. title: '审核时间',
  160. unresize: 'false',
  161. width: '10%',
  162. }, {
  163. field: 'edit_status_name',
  164. title: '审核状态',
  165. unresize: 'false',
  166. width: '10%',
  167. }, {
  168. title: '操作',
  169. toolbar: '#operation',
  170. unresize: 'false',
  171. align:'right'
  172. }]
  173. ]
  174. });
  175. table.tool(function (obj) {
  176. var data = obj.data;
  177. switch (obj.event) {
  178. case 'delete': //删除
  179. deleteGoods(data.out_product_id);
  180. break;
  181. case 'listing': //上架
  182. listingGoods(data.out_product_id);
  183. break;
  184. case 'dellisting': //下架
  185. dellistingGoods(data.out_product_id);
  186. break;
  187. case 'reason': //查看失败原因
  188. laytpl($("#reason").html()).render(data, function (html) {
  189. layer.open({
  190. type: 1,
  191. shadeClose: true,
  192. shade: 0.3,
  193. offset: 'auto',
  194. fixed: false,
  195. title: "失败原因",
  196. area: ['450px', 'auto'],
  197. btn: ['退出'],
  198. content: html,
  199. skin: 'reason'
  200. });
  201. });
  202. break;
  203. }
  204. })
  205. /**
  206. * 保存添加商品
  207. */
  208. form.on('submit(save)', function (data) {
  209. if (save_flag) return;
  210. save_flag = true;
  211. if (selectedGoodsId == '') {
  212. layer.msg('请选择商品');
  213. }
  214. if (cate_level_3_id == '') {
  215. layer.msg('请选择分类');
  216. }
  217. data.field.goods_ids = selectedGoodsId;
  218. data.field.third_cat_id = cate_level_3_id;
  219. $.ajax({
  220. type: 'POST',
  221. dataType: 'JSON',
  222. url: ns.url("shopcomponent://shop/goods/add"),
  223. data: data.field,
  224. success: function (res) {
  225. save_flag = false;
  226. if (res.code == 0) {
  227. layer.confirm('添加成功', {
  228. title: '操作提示',
  229. btn: ['返回列表', '继续操作'],
  230. yes: function () {
  231. location.href = ns.url("shopcomponent://shop/goods/lists")
  232. },
  233. btn2: function () {
  234. location.reload();
  235. }
  236. });
  237. } else {
  238. layer.msg(res.message);
  239. }
  240. }
  241. })
  242. });
  243. /**
  244. * 保存编辑分类
  245. */
  246. form.on('submit(saveEdit)', function (data) {
  247. // let goods_id = $('#goods_id').val()
  248. let goods_id = out_product_id;
  249. if (saveEdit_flag) return;
  250. saveEdit_flag = true;
  251. if (goods_id == '') {
  252. layer.msg('请选择商品');
  253. }
  254. if (cate_level_3_id == '') {
  255. layer.msg('请选择分类');
  256. }
  257. data.field.goods_id = goods_id;
  258. data.field.third_cat_id = cate_level_3_id;
  259. $.ajax({
  260. type: 'POST',
  261. dataType: 'JSON',
  262. url: ns.url("shopcomponent://shop/goods/edit"),
  263. data: data.field,
  264. success: function (res) {
  265. save_flag = false;
  266. if (res.code == 0) {
  267. layer.confirm('编辑成功', {
  268. title: '操作提示',
  269. btn: ['返回列表', '继续操作'],
  270. yes: function () {
  271. location.href = ns.url("shopcomponent://shop/goods/lists")
  272. },
  273. btn2: function () {
  274. location.reload();
  275. }
  276. });
  277. } else {
  278. layer.msg(res.message);
  279. }
  280. }
  281. })
  282. });
  283. // 批量操作
  284. table.bottomToolbar(function (obj) {
  285. if (obj.data.length < 1) {
  286. layer.msg('请选择要操作的数据');
  287. return;
  288. }
  289. var id_array = new Array();
  290. for (i in obj.data) id_array.push(obj.data[i].out_product_id);
  291. switch (obj.event) {
  292. case "delete":
  293. deleteGoods(id_array.toString());
  294. break;
  295. case "listing":
  296. listingGoods(id_array.toString());
  297. break;
  298. case "dellisting":
  299. dellistingGoods(id_array.toString());
  300. break;
  301. }
  302. });
  303. });
  304. }
  305. function deleteGoods(goods_ids){
  306. layer.confirm('是否确定要删除所选商品?', {title: '提示'}, function () {
  307. if (delete_flag) return;
  308. delete_flag = true;
  309. $.ajax({
  310. url: ns.url("shopcomponent://shop/goods/delete"),
  311. data: {out_product_ids: goods_ids},
  312. dataType: 'JSON',
  313. type: 'POST',
  314. success: function (res) {
  315. layer.msg(res.message);
  316. delete_flag = false;
  317. if (res.code == 0) {
  318. table.reload();
  319. }
  320. }
  321. });
  322. });
  323. }
  324. function listingGoods(goods_ids){
  325. layer.confirm('是否确定要上架所选商品?', {title: '提示'}, function () {
  326. if (listing_flag) return;
  327. listing_flag = true;
  328. $.ajax({
  329. url: ns.url("shopcomponent://shop/goods/listing"),
  330. data: {out_product_ids: goods_ids},
  331. dataType: 'JSON',
  332. type: 'POST',
  333. success: function (res) {
  334. layer.msg(res.message);
  335. listing_flag = false;
  336. if (res.code == 0) {
  337. table.reload();
  338. }
  339. }
  340. });
  341. });
  342. }
  343. function dellistingGoods(goods_ids){
  344. layer.confirm('是否确定要下架所选商品?', {title: '提示'}, function () {
  345. if (dellisting_flag) return;
  346. dellisting_flag = true;
  347. $.ajax({
  348. url: ns.url("shopcomponent://shop/goods/dellisting"),
  349. data: {out_product_ids: goods_ids},
  350. dataType: 'JSON',
  351. type: 'POST',
  352. success: function (res) {
  353. layer.msg(res.message);
  354. dellisting_flag = false;
  355. if (res.code == 0) {
  356. table.reload();
  357. }
  358. }
  359. });
  360. });
  361. }
  362. // 同步商品
  363. function sync(start) {
  364. if (syncClick) return;
  365. syncClick = true;
  366. var start = start == undefined ? 0 : start;
  367. $.ajax({
  368. url: ns.url("shopcomponent://shop/goods/sync"),
  369. data: {
  370. start: start,
  371. },
  372. dataType: 'JSON',
  373. type: 'POST',
  374. success: function(res) {
  375. syncClick = false;
  376. if (res.code == 0) {
  377. var data = res.data,
  378. next = parseInt(start) + 1;
  379. if (next < data.total_page) {
  380. if (start == 0) {
  381. $(".progress-layer").fadeOut();
  382. }
  383. var progress = (next / data.total_page * 100).toFixed(2);
  384. element.progress('progress', progress + '%');
  385. // 拉取下一页
  386. sync(next);
  387. } else {
  388. if (!$(".progress-layer").is(':hidden')) $(".progress-layer").fadeOut();
  389. layer.closeAll();
  390. layer.msg('同步成功');
  391. table.reload();
  392. }
  393. } else {
  394. layer.msg(res.message);
  395. }
  396. }
  397. });
  398. }
  399. /**
  400. * 添加商品
  401. */
  402. function addGood() {
  403. laytpl($("#add_good").html()).render({}, function(html) {
  404. add_good_layer = layer.open({
  405. type: 1,
  406. title: '添加商品',
  407. area: ['700px', '500px'],
  408. content: html,
  409. success: function(layero, index) {
  410. form.render();
  411. }
  412. });
  413. })
  414. }
  415. /**
  416. * 修改微信商品分类
  417. */
  418. function check_cat(goods_id){
  419. if(goods_id!=''){
  420. out_product_id = goods_id;
  421. }
  422. laytpl($("#check_cat").html()).render({}, function(html) {
  423. add_good_layer = layer.open({
  424. type: 1,
  425. title: '修改商品分类',
  426. area: ['700px', '500px'],
  427. content: html,
  428. success: function(layero, index) {
  429. form.render();
  430. }
  431. });
  432. })
  433. }
  434. function selectGoods() {
  435. goodsSelect(function(res) {
  436. if (!res.length) return false;
  437. for(var i=0;i<res.length;i++) {
  438. goodsId.push(res[i].goods_id);
  439. res[i].buy_num = 2;
  440. goods_list.push(res[i]);
  441. }
  442. laytpl($("#table_goods_list").html()).render(goods_list, function(html) {
  443. $(".add-good-form .layui-table tbody").html(html);
  444. })
  445. $("input[name='goods_ids']").val(JSON.stringify(goodsId));
  446. selectedGoodsId = goodsId.toString();
  447. }, selectedGoodsId);
  448. }
  449. function closeAddGoodsLayer() {
  450. layer.close(add_good_layer);
  451. }
  452. // 选择分类
  453. function selectCategory() {
  454. $(".category-wrap").removeClass("layui-hide");
  455. $(".goods-category-mask").removeClass("layui-hide");
  456. }
  457. $('body').on('click', '.goods-category-mask', function() {
  458. $(".category-wrap").addClass("layui-hide");
  459. $(".goods-category-mask").addClass("layui-hide");
  460. })
  461. function selectThird(event){
  462. cate_level_3_id = $(event).attr('lay-id');
  463. $(event).addClass('selected-style bg-color').siblings('li').removeClass("selected-style bg-color");
  464. }
  465. // 选中分类
  466. function selectedCategory(event, level, id) {
  467. $(event).addClass('selected-style bg-color').siblings('li').removeClass("selected-style bg-color");
  468. $.ajax({
  469. url: ns.url("shopcomponent://shop/category/getCategoryByParent"),
  470. data: {
  471. level: level,
  472. pid: id
  473. },
  474. dataType: 'JSON',
  475. type: 'POST',
  476. success: function(res) {
  477. $(".cate-select").val('');
  478. var obj = {};
  479. obj.level = level;
  480. obj.list = res.data;
  481. if (obj.list.length > 0 && obj.level < 4) {
  482. renderCategory(obj);
  483. }
  484. if (level == 2) cate_level_1_id = id;
  485. else cate_level_2_id = id;
  486. }
  487. });
  488. }
  489. function renderCategory(data) {
  490. laytpl($("#category_wrap").html()).render(data, function(html) {
  491. if (data.level == 2) {
  492. $(".category-level-2").removeClass("layui-hide");
  493. $(".category-level-2").html(html);
  494. $(".category-level-3").addClass("layui-hide");
  495. $(".category-level-3").html();
  496. } else if (data.level == 3) {
  497. $(".category-level-3").removeClass("layui-hide");
  498. $(".category-level-3").html(html);
  499. }
  500. form.render();
  501. })
  502. }
  503. function saveCate() {
  504. if (!$('.category-level-1 li.selected-style').length) {
  505. layer.msg('请选择一级分类', {icon: 5, anim: 6});
  506. return false;
  507. }
  508. if (!$('.category-level-2 li.selected-style').length) {
  509. layer.msg('请选择二级分类', {icon: 5, anim: 6});
  510. return false;
  511. }
  512. if (!$('.category-level-3 li.selected-style').length) {
  513. layer.msg('请选择三级分类', {icon: 5, anim: 6});
  514. return false;
  515. }
  516. var firstLevel = $('.category-level-1 li.selected-style'),
  517. secondLevel = $('.category-level-2 li.selected-style'),
  518. thirdLevel = $('.category-level-3 li.selected-style');
  519. $(".cate-select").val(firstLevel.text() + '>' + secondLevel.text() + '>' + thirdLevel.text());
  520. $.ajax({
  521. type: 'POST',
  522. dataType: 'JSON',
  523. url: ns.url("shopcomponent://shop/goods/check"),
  524. data: {third_cat_id:thirdLevel.attr('lay-id')},
  525. success: function(res) {
  526. if (res.code != 0) {
  527. layer.confirm('该类目需上传相应资质', {
  528. title:'操作提示',
  529. btn: ['上传资质', '暂不上传'],
  530. yes: function(){
  531. location.href = ns.url("shopcomponent://shop/category/lists?third_cat_id="+cate_level_3_id)
  532. },
  533. btn2: function() {
  534. location.reload();
  535. }
  536. });
  537. }
  538. }
  539. });
  540. $(".category-wrap").addClass("layui-hide");
  541. $(".goods-category-mask").addClass("layui-hide");
  542. }
  543. </script>
  544. <script type="text/html" id="check_cat">
  545. <div class="goods-category-mask layui-hide"></div>
  546. <div class="layui-form add-good-form">
  547. <div class="layui-form-item">
  548. <label class="layui-form-label mid"><span class="required">*</span>商品分类:</label>
  549. <div class="layui-input-block">
  550. <input type="text" readonly lay-verify="required" autocomplete="off" class="layui-input len-long cate-select" onclick="selectCategory()">
  551. </div>
  552. <p class="word-aux mid">分类必选,此分类为调取的微信分类内容</p>
  553. <div class="category-wrap layui-hide">
  554. <div class="category-list">
  555. <ul class="category-level-1">
  556. {foreach $first_cat as $first_k => $first_v}
  557. <li onclick="selectedCategory(this, 2, {$first_v.first_cat_id})" lay-id="{$first_v.first_cat_id}">{$first_v.first_cat_name}</li>
  558. {/foreach}
  559. </ul>
  560. <ul class="category-level-2 layui-hide"></ul>
  561. <ul class="category-level-3 layui-hide"></ul>
  562. </div>
  563. <div class="category-btn">
  564. <button class="layui-btn" onclick="saveCate()">确定</button>
  565. </div>
  566. </div>
  567. </div>
  568. <div class="form-row mid">
  569. <button class="layui-btn" lay-submit lay-filter="saveEdit">保存</button>
  570. <button class="layui-btn layui-btn-primary" onclick="closeAddGoodsLayer()">取消</button>
  571. </div>
  572. </div>
  573. </script>
  574. <script type="text/html" id="add_good">
  575. <div class="goods-category-mask layui-hide"></div>
  576. <div class="layui-form add-good-form">
  577. <div class="layui-form-item">
  578. <label class="layui-form-label mid"><span class="required">*</span>商品分类:</label>
  579. <div class="layui-input-block">
  580. <input type="text" readonly lay-verify="required" autocomplete="off" class="layui-input len-long cate-select" onclick="selectCategory()">
  581. </div>
  582. <p class="word-aux mid">分类必选,此分类为调取的微信分类内容</p>
  583. <div class="category-wrap layui-hide">
  584. <div class="category-list">
  585. <ul class="category-level-1">
  586. {foreach $first_cat as $first_k => $first_v}
  587. <li onclick="selectedCategory(this, 2, {$first_v.first_cat_id})" lay-id="{$first_v.first_cat_id}">{$first_v.first_cat_name}</li>
  588. {/foreach}
  589. </ul>
  590. <ul class="category-level-2 layui-hide"></ul>
  591. <ul class="category-level-3 layui-hide"></ul>
  592. </div>
  593. <div class="category-btn">
  594. <button class="layui-btn" onclick="saveCate()">确定</button>
  595. </div>
  596. </div>
  597. </div>
  598. <div class="layui-form-item">
  599. <label class="layui-form-label mid"><span class="required">*</span>选择商品:</label>
  600. <div class="layui-input-block">
  601. <button class="layui-btn" onclick="selectGoods()">选择商品</button>
  602. </div>
  603. <p class="word-aux mid">请选择需要关联至视频号直播的商品</p>
  604. </div>
  605. <div class="layui-form-item">
  606. <label class="layui-form-label mid"></label>
  607. <div class="layui-input-block">
  608. <table class="layui-table" lay-skin="line" lay-size="lg">
  609. <colgroup>
  610. <col width="100%">
  611. </colgroup>
  612. <thead>
  613. <tr>
  614. <th>商品</th>
  615. </tr>
  616. </thead>
  617. <tbody>
  618. <tr><td>暂无商品</td></tr>
  619. </tbody>
  620. </table>
  621. </div>
  622. </div>
  623. <div class="form-row mid">
  624. <button class="layui-btn" lay-submit lay-filter="save">保存</button>
  625. <button class="layui-btn layui-btn-primary" onclick="closeAddGoodsLayer()">取消</button>
  626. </div>
  627. </div>
  628. </script>
  629. <script type="text/html" id="table_goods_list">
  630. {{# layui.each(d, function(index, item) { }}
  631. <tr>
  632. <td>
  633. <div class="table-title">
  634. <div class="title-pic">
  635. {{# if(item.goods_image){ }}
  636. <img layer-src src="{{ns.img(item.goods_image.split(',')[0],'small')}}"/>
  637. {{# } }}
  638. </div>
  639. <div class="title-content">
  640. <a href="javascript:;" class="multi-line-hiding text-color-sub" title="{{item.goods_name}}">{{item.goods_name}}</a>
  641. </div>
  642. </div>
  643. </td>
  644. </tr>
  645. {{# }) }}
  646. </script>
  647. <script type="text/html" id="category_wrap">
  648. {{# if (d.level == 2) { }}
  649. {{# layui.each(d.list, function(index, item) { }}
  650. <li onclick="selectedCategory(this, 3, {{item.second_cat_id}})" lay-id="{{item.second_cat_id}}">{{item.second_cat_name}}</li>
  651. {{# }) }}
  652. {{# } else if (d.level == 3) { }}
  653. {{# layui.each(d.list, function(index, item) { }}
  654. <li onclick="selectThird(this)" lay-id="{{item.third_cat_id}}">{{item.third_cat_name}}</li>
  655. {{# }) }}
  656. {{# } }}
  657. </script>
  658. <script language="JavaScript">
  659. // function myrefresh()
  660. // {
  661. // location.href = ns.url("shopcomponent://shop/goods/lists")
  662. // // window.location.reload();
  663. // }
  664. // setInterval('reLoad()',5000); //指定5秒刷新一次
  665. </script>
  666. {/block}