form.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. {extend name='admin@main'}
  2. {block name="content"}
  3. <div class="think-box-shadow">
  4. <form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
  5. <div class="layui-card-body">
  6. <div class="layui-form-item">
  7. <label class="layui-form-label label-required">标题</label>
  8. <div class="layui-input-block">
  9. <input name="article_id" type="hidden" value='{$article_info.id|default=""}' class="layui-input">
  10. <input name="title" maxlength="60" value='{$vo.title|default=""}' placeholder="请输入标题" class="layui-input">
  11. </div>
  12. </div>
  13. <div class="layui-form-item" style="display: none">
  14. <label class="layui-form-label label-required">原创作者</label>
  15. <div class="layui-input-block">
  16. <input name="author" value='{$vo.author|default=""}' placeholder="请输入原创作者" class="layui-input">
  17. </div>
  18. </div>
  19. <div class="layui-form-item">
  20. <label class="layui-form-label label-required">标签</label>
  21. <div class="layui-input-block">
  22. <textarea placeholder="请输入标签" maxlength="100" class="layui-textarea" name="label">{$vo.label|default=''}</textarea>
  23. <span >多个用逗号隔开(半角)</span>
  24. </div>
  25. </div>
  26. <div class="layui-form-item">
  27. <label class="layui-form-label ">简介</label>
  28. <div class="layui-input-block">
  29. <textarea placeholder="请输入简介" maxlength="500" class="layui-textarea" name="desc">{$vo.desc|default=''}</textarea>
  30. </div>
  31. </div>
  32. <div class="layui-form-item">
  33. <label class="layui-form-label ">文本</label>
  34. <div class="layui-input-block">
  35. <textarea placeholder="请输入简介" class="layui-textarea" name="desc_text">{$vo.desc_text|default=''}</textarea>
  36. </div>
  37. </div>
  38. <div class="layui-form-item">
  39. <label class="layui-form-label label-required">关联视频</label>
  40. <div class="layui-input-inline">
  41. <select name="video_id" lay-filter ="video_id" lay-search>
  42. <option value="0">请选择</option>
  43. {foreach $video_list as $vk=>$vv}
  44. <option {if isset($vo.video_id) && $vo.video_id == $vv['id'] }selected{/if} data-vl_key="{$vk}" value="{$vv['id']}">{$vv['title']}</option>
  45. {/foreach}
  46. </select>
  47. </div>
  48. <div class="layui-input-inline">
  49. <select name="video_item" lay-filter ="video_item" lay-search>
  50. <option value="0">请选择</option>
  51. {foreach $video_list as $vk=>$vv}
  52. {if isset($vo.video_id) && $vo.video_id == $vv['id'] }
  53. {foreach $vv['video_arr'] as $cln}
  54. <option {if isset($vo.video_item) && $vo.video_item == $cln['id']} selected {/if} value="{$cln['id']}">{$cln['title']}</option>
  55. {/foreach}
  56. {/if}
  57. {/foreach}
  58. </select>
  59. </div>
  60. </div>
  61. <div class="layui-form-item">
  62. <label class="layui-form-label label-required">关联资料</label>
  63. <div class="layui-input-inline">
  64. <select name="datum_id" lay-filter ="datum_id" lay-search>
  65. <option value="0">请选择</option>
  66. {foreach $datum_list as $dk=>$dv}
  67. <option {if isset($vo.datum_id) && $vo.datum_id == $dv['id'] }selected{/if} data-dl_key="{$dk}" value="{$dv['id']}">{$dv['title']}</option>
  68. {/foreach}
  69. </select>
  70. </div>
  71. <div class="layui-input-inline">
  72. <select name="datum_item" lay-filter ="datum_item" lay-search>
  73. <option value="0">请选择</option>
  74. {foreach $datum_list as $vk=>$vv}
  75. {if isset($vo.datum_id) && $vo.datum_id == $vv['id'] }
  76. {foreach $vv['url_arr'] as $cln}
  77. <option {if isset($vo.datum_item) && $vo.datum_item == $cln['id']} selected {/if} value="{$cln['id']}">{$cln['title']}</option>
  78. {/foreach}
  79. {/if}
  80. {/foreach}
  81. </select>
  82. </div>
  83. </div>
  84. <div class="layui-form-item" >
  85. <label class="layui-form-label ">关联商品</label>
  86. <div class="layui-input-inline" >
  87. <select name="supplier_id" lay-filter ="supplier_id" lay-search>
  88. <option value="0">请选择</option>
  89. {foreach $supplier as $dk=>$dv}
  90. <option {if isset($vo.supplier_id) && $vo.supplier_id == $dv['id'] }selected{/if} data-dl_key="{$dk}" value="{$dv['id']}">{$dv['title']}</option>
  91. {/foreach}
  92. </select>
  93. </div>
  94. <div class="layui-input-inline">
  95. <select name="goods_id" lay-filter ="goods_id" lay-search>
  96. <option value="0">请选择</option>
  97. {foreach $supplier as $vk=>$vv}
  98. {if isset($vo.supplier_id) && $vo.supplier_id == $vv['id'] }
  99. {foreach $vv['goods_list'] as $cln}
  100. <option {if isset($vo.goods_id) && $vo.goods_id == $cln['id']} selected {/if} value="{$cln['id']}">{$cln['name']}</option>
  101. {/foreach}
  102. {/if}
  103. {/foreach}
  104. </select>
  105. </div>
  106. </div>
  107. <div class="layui-form-item">
  108. <label class="layui-form-label label-required">评论开关</label>
  109. <div class="layui-input-inline">
  110. <select name="comment_switch" lay-filter ="comment_switch" lay-search>
  111. {foreach [1=>'开启',0=>'关闭'] as $ck=>$cv}
  112. {if !empty($vo.comment_switch) && $vo.comment_switch == $ck }
  113. <option selected data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  114. {else}
  115. <option data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  116. {/if}
  117. {/foreach}
  118. </select>
  119. </div>
  120. </div>
  121. <div class="layui-form-item">
  122. <label class="layui-form-label ">会员账号</label>
  123. <div class="layui-input-block">
  124. <input name="phone" value='{$vo.phone|default=""}' placeholder="请输入会员账号" class="layui-input">
  125. </div>
  126. </div>
  127. <div class="layui-form-item">
  128. <label class="layui-form-label ">上架时间</label>
  129. <div class="layui-input-block">
  130. <input name="release_time" value='{$vo.release_time|default=""}' class="layui-input">
  131. </div>
  132. </div>
  133. <div class="layui-form-item">
  134. <label class="layui-form-label label-required">是否VIP</label>
  135. <div class="layui-input-block">
  136. <select class="layui-select" name="is_vip">
  137. <option value="0">否</option>
  138. <option {if !empty($vo.is_vip) && $vo.is_vip == 1 }selected{/if} value="1">是</option>
  139. </select>
  140. </div>
  141. </div>
  142. <div class="layui-form-item">
  143. <label class="layui-form-label label-required">图片</label>
  144. <div class="layui-input-block">
  145. <table class="layui-table">
  146. <thead>
  147. <tr>
  148. <th class="text-left">展示图片</th>
  149. </tr>
  150. <tr>
  151. <td width="auto" class="text-left"><input name="images" type="hidden" value="{$vo.images|default=''}"></td>
  152. </tr>
  153. </thead>
  154. </table>
  155. </div>
  156. </div>
  157. <div class="layui-form-item">
  158. <label class="layui-form-label ">阅读量</label>
  159. <div class="layui-input-block">
  160. <input name="read_num" type="number" value='{$vo.read_num|default="0"}' placeholder="请输入阅读量" class="layui-input">
  161. </div>
  162. </div>
  163. <div class="layui-form-item">
  164. <label class="layui-form-label ">热搜阅读量</label>
  165. <div class="layui-input-block">
  166. <input name="hot_num" value='{$vo.hot_num|default=""}' placeholder="请输入热搜阅读量" class="layui-input">
  167. <input name="hot_num_old" type="hidden" value='{$vo.hot_num|default=""}' class="layui-input">
  168. </div>
  169. </div>
  170. <div class="layui-form-item">
  171. <label class="layui-form-label ">排序</label>
  172. <div class="layui-input-block">
  173. <input type="number" name="sort" value='{$vo.sort|default=""}' placeholder="请输入排序号" class="layui-input">
  174. </div>
  175. </div>
  176. <div class="layui-form-item">
  177. <label class="layui-form-label label-required">描述类型</label>
  178. <div class="layui-input-inline">
  179. <select name="content_type" lay-filter ="content_type">
  180. {foreach [1=>'富文本',2=>'PDF'] as $ck=>$cv}
  181. {if !empty($vo.content_type) && $vo.content_type == $ck }
  182. <option selected data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  183. {else}
  184. <option data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  185. {/if}
  186. {/foreach}
  187. </select>
  188. </div>
  189. </div>
  190. <div class="layui-form-item pdf">
  191. <label class="layui-form-label label-required">PDF加密文件</label>
  192. <label class="layui-col-xs10 relative">
  193. <label class="layui-col-xs9 think-form-group-left">
  194. <input name="pdf" value='{$vo.pdf|default=""}' placeholder="请上传" readonly class="layui-input ">
  195. </label>
  196. <button type="button" class="layui-btn" id="test3"><i class="layui-icon"></i>上传文件</button>
  197. </label>
  198. </div>
  199. <div class="layui-form-item pdf">
  200. <label class="layui-form-label ">PDF原文件</label>
  201. <label class="layui-col-xs10 relative">
  202. <label class="layui-col-xs9 think-form-group-left">
  203. <input name="pdf_clear" value='{$vo.pdf_clear|default=""}' readonly class="layui-input layui-bg-gray">
  204. </label>
  205. </label>
  206. </div>
  207. <div class="layui-form-item content" >
  208. <label class="layui-form-label">描述</label>
  209. <div class="layui-input-block">
  210. <textarea name="content">{$vo.content|default=""}</textarea>
  211. </div>
  212. </div>
  213. {notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
  214. <div class="layui-form-item text-center">
  215. <button class="layui-btn" type='submit'>保 存</button>
  216. <button class="layui-btn layui-btn-danger" type='button' onclick="history.go(-1)" data-close>返回</button>
  217. </div>
  218. </div>
  219. </form>
  220. </div>
  221. <script>
  222. window.form.render();
  223. laydate.render({type: 'datetime', elem: '[name="release_time"]'})
  224. require(['ckeditor', 'angular'], function () {
  225. window.createEditor('[name="content"]', {
  226. height: 500
  227. });
  228. form.render();
  229. })
  230. $('[name="images"]').uploadMultipleImage();
  231. // 关联视频监听
  232. form.on('select(video_id)', function(data){
  233. var cl_html = '<option value="0">请选择</option>';
  234. if(data.value == 0) {
  235. $("select[name='video_item']").html(cl_html);
  236. }else{
  237. var vl_key = data.elem[data.elem.selectedIndex].dataset.vl_key;
  238. var video_list = {:json_encode($video_list)};
  239. $.each(video_list[vl_key]['video_arr'],function (ck,cv) {
  240. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  241. })
  242. $("select[name='video_item']").html(cl_html);
  243. }
  244. window.form.render();
  245. });
  246. // 关联资料监听
  247. form.on('select(datum_id)', function(data){
  248. var cl_html = '<option value="0">请选择</option>';
  249. if(data.value == 0) {
  250. $("select[name='datum_item']").html(cl_html);
  251. }else{
  252. var dl_key = data.elem[data.elem.selectedIndex].dataset.dl_key;
  253. console.log(dl_key);
  254. var datum_list = {:json_encode($datum_list)};
  255. $.each(datum_list[dl_key]['url_arr'],function (ck,cv) {
  256. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  257. })
  258. $("select[name='datum_item']").html(cl_html);
  259. }
  260. window.form.render();
  261. });
  262. // 关联供应商商品监听
  263. form.on('select(supplier_id)', function(data){
  264. var cl_html = '<option value="0">请选择</option>';
  265. if(data.value == 0) {
  266. $("select[name='goods_id']").html(cl_html);
  267. }else{
  268. var dl_key = data.elem[data.elem.selectedIndex].dataset.dl_key;
  269. console.log(dl_key);
  270. var supplier = {:json_encode($supplier)};
  271. $.each(supplier[dl_key]['goods_list'],function (ck,cv) {
  272. cl_html +='<option value="'+cv.id+'">'+cv.name+'</option>';
  273. })
  274. $("select[name='goods_id']").html(cl_html);
  275. }
  276. window.form.render();
  277. });
  278. form.on('select(content_type)', function(data){
  279. check_type()
  280. window.form.render();
  281. })
  282. function check_type() {
  283. if( $("select[name='content_type']").val() == 1) {
  284. $(".content").show();
  285. $(".pdf").hide();
  286. }else{
  287. $(".content").hide();
  288. $(".pdf").show();
  289. }
  290. window.form.render();
  291. }
  292. check_type()
  293. layui.use(['upload', 'element', 'layer'], function(){
  294. var $ = layui.jquery
  295. ,upload = layui.upload
  296. ,element = layui.element
  297. ,layer = layui.layer;
  298. upload.render({
  299. elem: '#test3',
  300. url: '/api/upload/pdfUpload', //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。,accept: 'file', //普通文件,
  301. accept: 'file', //普通文件,
  302. done: function(res){
  303. if(res.code == 1){
  304. $("input[name='pdf']").val(res.data.cipher_path);
  305. $("input[name='pdf_clear']").val(res.data.plaintext_path);
  306. }
  307. layer.msg(res.msg);
  308. }
  309. });
  310. });
  311. </script>
  312. {/block}