form.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  1. {extend name='admin@main'}
  2. {block name="content"}
  3. {include file='mall@store_goods/form_style'}
  4. <style>
  5. .layui-form-radio{
  6. margin: 0 !important;
  7. padding-right:0 !important;
  8. }
  9. .layui-form-select{
  10. margin-right: 10px !important;
  11. }
  12. .layui-col-xs9{
  13. width: 90%;
  14. }
  15. </style>
  16. <form onsubmit="return false;" id="GoodsForm" data-auto="true" method="post" class='layui-form layui-card' autocomplete="off">
  17. <div class="layui-card-body think-box-shadow padding-left-40">
  18. <div class="layui-tab">
  19. <ul class="layui-tab-title">
  20. <li class="layui-this">商品设置</li>
  21. </ul>
  22. <div class="layui-tab-content">
  23. <!--基础设置-->
  24. <div class="layui-tab-item layui-show">
  25. <!--基础设置start-->
  26. <div class="layui-form-item layui-row layui-col-space15">
  27. <label class="layui-col-xs9 relative">
  28. <span class="color-green">名称</span>
  29. <input name="name" required class="layui-input" placeholder="请输入商品名称" value="{$vo.name|default=''}">
  30. </label>
  31. </div>
  32. <div class="layui-form-item layui-row layui-col-space15">
  33. <label class="layui-col-xs9 relative">
  34. <span class="color-green">标签</span><span class="margin-left-10 color-gray">多个半角逗号(,)隔开</span>
  35. <textarea placeholder="请输入标签" class="layui-textarea" name="label">{$vo.label|default=''}</textarea>
  36. </label>
  37. </div>
  38. <div class="layui-form-item layui-row layui-col-space15">
  39. <label class="layui-col-xs9 relative" style="width: 100%;">
  40. <span class="color-green">商品分类</span>
  41. </label>
  42. <div style="width: 100%">
  43. <div style="width: 15%;float: left;">
  44. <select class="layui-select" id="first_classify" name="first_classify" lay-filter="first_classify" lay-search>
  45. <option selected data-first_key="-1" selected value="0">请选择</option>
  46. {if !empty($goods_cate)}
  47. {foreach $goods_cate as $ck=>$cv}
  48. {if isset_full_check($vo,'first_classify',$cv['id'])}
  49. <option selected data-first_key="{$ck}" value="{$cv['id']}">{$cv['title']}</option>
  50. {else}
  51. <option data-first_key="{$ck}" value="{$cv['id']}">{$cv['title']}</option>
  52. {/if}
  53. {/foreach}
  54. {/if}
  55. </select>
  56. </div>
  57. <div style="width: 15%;float: left">
  58. <select class="layui-select" id="second_classify" name="second_classify" lay-filter="second_classify" lay-search>
  59. </select>
  60. </div>
  61. <div style="width: 15%;float: left">
  62. <select class="layui-select" id="third_classify" name="third_classify" lay-filter="third_classify" lay-search>
  63. </select>
  64. </div>
  65. <input type="hidden" id="first" value="{$vo.first_classify|default='-1'}"/>
  66. <input type="hidden" id="second" value="{$vo.second_classify|default='-1'}"/>
  67. <input type="hidden" id="third" value="{$vo.third_classify|default='-1'}"/>
  68. </div>
  69. </div>
  70. <div class="layui-form-item layui-row layui-col-space15" >
  71. <label class="layui-col-xs9 relative">
  72. <span class="color-green">供应商</span>
  73. </label>
  74. <div class="layui-inline" style="top: -15px;margin-bottom: -25px">
  75. <div class="layui-input-inline">
  76. <select name="supplier_id" lay-filter ="supplier_id">
  77. <option value="0">请选择</option>
  78. {foreach $supplier_list as $dk=>$dv}
  79. <option {if isset($vo.supplier_id) && $vo.supplier_id == $dv['id'] }selected{/if} value="{$dv['id']}">{$dv['title']}</option>
  80. {/foreach}
  81. </select>
  82. </div>
  83. </div>
  84. </div>
  85. <div class="layui-form-item layui-row layui-col-space15">
  86. <label class="layui-col-xs9 relative">
  87. <span class="color-green">关联资料</span>
  88. </label>
  89. <div class="layui-inline" style="top: -15px;margin-bottom: -25px">
  90. <div class="layui-input-inline">
  91. <select name="datum_id" lay-filter ="datum_id">
  92. <option value="0">请选择</option>
  93. {foreach $datum_list as $dk=>$dv}
  94. <option {if isset($vo.datum_id) && $vo.datum_id == $dv['id'] }selected{/if} data-dl_key="{$dk}" value="{$dv['id']}">{$dv['title']}</option>
  95. {/foreach}
  96. </select>
  97. </div>
  98. <div class="layui-input-inline">
  99. <select name="datum_item" lay-filter ="datum_item">
  100. <option value="0">请选择</option>
  101. {foreach $datum_list as $vk=>$vv}
  102. {if isset($vo.datum_id) && $vo.datum_id == $vv['id'] }
  103. {foreach $vv['url_arr'] as $cln}
  104. <option {if isset($vo.datum_item) && $vo.datum_item == $cln['id']} selected {/if} value="{$cln['id']}">{$cln['title']}</option>
  105. {/foreach}
  106. {/if}
  107. {/foreach}
  108. </select>
  109. </div>
  110. </div>
  111. </div>
  112. <div class="layui-form-item layui-row layui-col-space15">
  113. <label class="layui-col-xs9 relative">
  114. <span class="color-green">关联视频</span>
  115. </label>
  116. <div class="layui-inline" style="top: -15px;margin-bottom: -25px">
  117. <div class="layui-input-inline">
  118. <select name="video_id" lay-filter ="video_id">
  119. <option value="0">请选择</option>
  120. {foreach $video_list as $vk=>$vv}
  121. <option {if isset($vo.video_id) && $vo.video_id == $vv['id'] }selected{/if} data-vl_key="{$vk}" value="{$vv['id']}">{$vv['title']}</option>
  122. {/foreach}
  123. </select>
  124. </div>
  125. <div class="layui-input-inline">
  126. <select name="video_item" lay-filter ="video_item">
  127. <option value="0">请选择</option>
  128. {foreach $video_list as $vk=>$vv}
  129. {if isset($vo.video_id) && $vo.video_id == $vv['id'] }
  130. {foreach $vv['video_arr'] as $cln}
  131. <option {if isset($vo.video_item) && $vo.video_item == $cln['id']} selected {/if} value="{$cln['id']}">{$cln['title']}</option>
  132. {/foreach}
  133. {/if}
  134. {/foreach}
  135. </select>
  136. </div>
  137. </div>
  138. </div>
  139. <div class="layui-form-item layui-row layui-col-space15">
  140. <label class="layui-col-xs9 relative">
  141. <span class="color-green">关联文章</span>
  142. </label>
  143. <div class="layui-inline" style="top: -15px;margin-bottom: -25px">
  144. <div class="layui-input-inline">
  145. <select name="article_id" lay-filter ="article_id">
  146. <option value="0">请选择</option>
  147. {foreach $article_list as $vk=>$vv}
  148. <option {if isset($vo.article_id) && $vo.article_id == $vv['id'] }selected{/if} data-vl_key="{$vk}" value="{$vv['id']}">{$vv['title']}</option>
  149. {/foreach}
  150. </select>
  151. </div>
  152. <div class="layui-input-inline">
  153. <select name="article_item" lay-filter ="article_item">
  154. <option value="0">请选择</option>
  155. {foreach $article_list as $vk=>$vv}
  156. {if isset($vo.article_id) && $vo.article_id == $vv['id'] }
  157. {foreach $vv['item_children'] as $cln}
  158. <option {if isset($vo.article_item) && $vo.article_item == $cln['id']} selected {/if} value="{$cln['id']}">{$cln['title']}</option>
  159. {/foreach}
  160. {/if}
  161. {/foreach}
  162. </select>
  163. </div>
  164. </div>
  165. </div>
  166. <div class="layui-form-item">
  167. <label class="layui-form-label ">会员账号</label>
  168. <div class="layui-input-block">
  169. <input name="phone" value='{$vo.phone|default=""}' placeholder="请输入会员会员账号" class="layui-input">
  170. </div>
  171. </div>
  172. <div class="layui-form-item">
  173. <label class="layui-form-label ">上架时间</label>
  174. <div class="layui-input-block">
  175. <input name="release_time" value='{$vo.release_time|default=""}' class="layui-input">
  176. </div>
  177. </div>
  178. <div class="layui-form-item layui-row layui-col-space15">
  179. <label class="layui-col-xs9 relative">
  180. <span class="color-green label-required-prev">图片</span>
  181. <table class="layui-table">
  182. <thead>
  183. <tr>
  184. <th class="text-left">展示图片</th>
  185. </tr>
  186. <tr>
  187. <td width="auto" class="text-left"><input name="cover" type="hidden" value="{$vo.cover|default=''}"></td>
  188. </tr>
  189. </thead>
  190. </table>
  191. </label>
  192. <script>$('[name="cover"]').uploadMultipleImage()</script>
  193. </div>
  194. <div class="layui-form-item layui-row layui-col-space15">
  195. <label class="layui-col-xs9 relative">
  196. <span class="color-green">排序</span>
  197. <input name="sort" required class="layui-input" placeholder="请输入排序号" value="{$vo.sort|default='0'}">
  198. </label>
  199. </div>
  200. <div class="layui-form-item layui-row layui-col-space15">
  201. <label class="layui-col-xs9 relative">
  202. <span class="color-green">阅读量</span>
  203. <input name="read_num" required class="layui-input" placeholder="请输入阅读量" value="{$vo.read_num|default='0'}">
  204. </label>
  205. </div>
  206. <div class="layui-form-item layui-row layui-col-space15">
  207. <label class="layui-col-xs9 relative">
  208. <span class="color-green">转发量</span>
  209. <input name="transmit_num" required class="layui-input" placeholder="请输入转发量" value="{$vo.transmit_num|default='0'}">
  210. </label>
  211. </div>
  212. <div class="layui-form-item layui-row layui-col-space15">
  213. <label class="layui-col-xs9 relative">
  214. <span class="color-green">商品详情</span>
  215. <textarea name="content">{$vo.content|default=""}</textarea>
  216. </label>
  217. </div>
  218. <div class="layui-form-item text-center">
  219. {notempty name='vo.id'}<input type="hidden" name="id" value="{$vo.id}">{/notempty}
  220. <!-- <input type='hidden' value='{$supplier_id|default="0"}' name='supplier_id'>
  221. <input type='hidden' value='{$company_id|default="0"}' name='company_id'>-->
  222. <button class="layui-btn" type="submit">保存</button>
  223. <button class="layui-btn layui-btn-danger" type='button' onclick="history.go(-1)" data-close>返回</button>
  224. </div>
  225. </div>
  226. </div>
  227. </div>
  228. </div>
  229. </form>
  230. {/block}
  231. {block name='script'}
  232. <script>
  233. window.form.render();
  234. layui.use('element', function(){
  235. var $ = layui.jquery
  236. ,element = layui.element;
  237. var active = {
  238. tabAdd: function(){
  239. element.tabAdd('demo', {
  240. title: '新选项'+ (Math.random()*1000|0)
  241. ,content: '内容'+ (Math.random()*1000|0)
  242. ,id: new Date().getTime()
  243. })
  244. }
  245. ,tabDelete: function(othis){
  246. element.tabDelete('demo', '44');
  247. othis.addClass('layui-btn-disabled');
  248. }
  249. ,tabChange: function(){
  250. element.tabChange('demo', '22');
  251. }
  252. };
  253. $('.site-demo-active').on('click', function(){
  254. var othis = $(this), type = othis.data('type');
  255. active[type] ? active[type].call(this, othis) : '';
  256. });
  257. //Hash地址的定位
  258. var layid = location.hash.replace(/^#test=/, '');
  259. element.tabChange('test', layid);
  260. element.on('tab(test)', function(elem){
  261. location.hash = 'test='+ $(this).attr('lay-id');
  262. });
  263. });
  264. require(['ckeditor', 'angular'], function () {
  265. window.createEditor('[name="content"]', {
  266. height: 500,
  267. });
  268. })
  269. // 关联视频监听
  270. form.on('select(video_id)', function(data){
  271. var cl_html = '<option value="0">请选择</option>';
  272. if(data.value == 0) {
  273. $("select[name='video_item']").html(cl_html);
  274. }else{
  275. var vl_key = data.elem[data.elem.selectedIndex].dataset.vl_key;
  276. var video_list = {:json_encode($video_list)};
  277. $.each(video_list[vl_key]['video_arr'],function (ck,cv) {
  278. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  279. })
  280. $("select[name='video_item']").html(cl_html);
  281. }
  282. window.form.render();
  283. });
  284. // 关联资料监听
  285. form.on('select(datum_id)', function(data){
  286. var cl_html = '<option value="0">请选择</option>';
  287. if(data.value == 0) {
  288. $("select[name='datum_item']").html(cl_html);
  289. }else{
  290. var dl_key = data.elem[data.elem.selectedIndex].dataset.dl_key;
  291. var datum_list = {:json_encode($datum_list)};
  292. $.each(datum_list[dl_key]['url_arr'],function (ck,cv) {
  293. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  294. })
  295. $("select[name='datum_item']").html(cl_html);
  296. }
  297. window.form.render();
  298. });
  299. // 文章监听
  300. form.on('select(article_id)', function(data){
  301. var cl_html = '<option value="0">请选择</option>';
  302. if(data.value == 0) {
  303. $("select[name='article_item']").html(cl_html);
  304. }else{
  305. var vl_key = data.elem[data.elem.selectedIndex].dataset.vl_key;
  306. var article_list = {:json_encode($article_list)};
  307. $.each(article_list[vl_key]['item_children'],function (ck,cv) {
  308. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  309. })
  310. $("select[name='article_item']").html(cl_html);
  311. }
  312. window.form.render();
  313. });
  314. // 三级分类联动 start
  315. var sel_second = {:isset($vo['second_classify']) ? $vo['second_classify']:0};
  316. var sel_third = {:isset($vo['third_classify']) ? $vo['third_classify']:0};
  317. var goods_spec = {:json_encode($goods_cate)};
  318. first(1);
  319. function first(source){
  320. // 将其他选择框置空
  321. var first_key = $("select[name='first_classify']").find("option:selected").data("first_key")
  322. $("#first").val(first_key);
  323. $("select[name='second_classify']").html('');
  324. $("select[name='third_classify']").html('');
  325. $("select[name='fourth_classify']").html('');
  326. // 没有下级不继续
  327. if(first_key == -1 || !("children" in goods_spec[first_key])){
  328. $("#second").val(-1);
  329. $("#third").val(-1);
  330. window.form.render();
  331. return true;
  332. }else{
  333. var second_html = '<option data-second_key="-1" selected value="0">请选择分类</option>';
  334. var to_each = goods_spec[first_key]['children'];
  335. $.each(to_each,function (ck,cv) {
  336. if(source == 1 && sel_second == cv.id){
  337. second_html +='<option selected data-second_key="'+ck+'" value="'+cv.id+'">'+cv.title+'</option>';
  338. $("#second").val(ck);
  339. }else{
  340. second_html +='<option data-second_key="'+ck+'" value="'+cv.id+'">'+cv.title+'</option>';
  341. }
  342. })
  343. $("select[name='second_classify']").html(second_html);
  344. window.form.render();
  345. second(source);
  346. }
  347. }
  348. function second(source){
  349. var first_key = $("select[name='first_classify']").find("option:selected").data("first_key");
  350. var second_key = $("select[name='second_classify']").find("option:selected").data("second_key");
  351. // 将其他选择框置空
  352. $("#second").val(second_key);
  353. $("select[name='third_classify']").html('');
  354. $("select[name='fourth_classify']").html('');
  355. // 没有下级不继续
  356. if(second_key == -1 || !("children" in goods_spec[first_key]['children'][second_key])){
  357. $("#third").val(-1);
  358. window.form.render();
  359. return true;
  360. }
  361. var to_each = goods_spec[first_key]['children'][second_key]['children'];
  362. var third_html = '<option data-third_key="-1" selected value="0">请选择分类</option>';
  363. $.each(to_each,function (ck,cv) {
  364. if(source == 1 && sel_third == cv.id){
  365. third_html +='<option selected data-third_key="'+ck+'" value="'+cv.id+'">'+cv.title+'</option>';
  366. $("#third").val(ck);
  367. }else{
  368. third_html +='<option data-third_key="'+ck+'" value="'+cv.id+'">'+cv.title+'</option>';
  369. }
  370. })
  371. $("select[name='third_classify']").html(third_html);
  372. $("select[name='fourth_classify']").html('');
  373. window.form.render();
  374. }
  375. // 一级分类监听
  376. form.on('select(first_classify)', function(data){
  377. var first_key = data.elem[data.elem.selectedIndex].dataset.first_key;
  378. //与之前选择的一样不处理
  379. if($("#first").val() == first_key){
  380. return true;
  381. }
  382. first(2);
  383. })
  384. // 二级分类监听
  385. form.on('select(second_classify)', function(data){
  386. var second_key = data.elem[data.elem.selectedIndex].dataset.second_key;
  387. //与之前选择的一样不处理
  388. if($("#second").val() == second_key){
  389. return true;
  390. }
  391. second(2)
  392. })
  393. // 三级分类end
  394. </script>
  395. {/block}