form.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. <div class="think-box-shadow">
  2. <form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
  3. <div class="layui-card-body">
  4. <div class="layui-form-item">
  5. <label class="layui-form-label label-required">标题</label>
  6. <div class="layui-input-block">
  7. <input name="title" maxlength="20" value='{$vo.title|default=""}' placeholder="请输入标题" class="layui-input">
  8. </div>
  9. </div>
  10. <div class="layui-form-item">
  11. <label class="layui-form-label label-required">简介</label>
  12. <div class="layui-input-block">
  13. <input name="desc" maxlength="100" value='{$vo.desc|default=""}' placeholder="请输入简介" class="layui-input">
  14. </div>
  15. </div>
  16. <div class="layui-form-item">
  17. <label class="layui-form-label label-required">分类</label>
  18. <div class="layui-input-inline">
  19. <select name="first_classify" lay-filter ="first_classify">
  20. <option value="0">请选择</option>
  21. {if !empty($cate_tree)}
  22. {foreach $cate_tree as $ck=>$cv}
  23. {if isset($vo.first_classify) && $vo.first_classify == $cv['id'] }
  24. <option selected data-cl_key="{$ck}" value="{$cv['id']}">{$cv['title']}</option>
  25. {else}
  26. <option data-cl_key="{$ck}" value="{$cv['id']}">{$cv['title']}</option>
  27. {/if}
  28. {/foreach}
  29. {/if}
  30. </select>
  31. </div>
  32. <div class="layui-input-inline">
  33. <select name="second_classify" lay-filter ="second_classify">
  34. <option value="0">请选择</option>
  35. {if !empty($cate_tree)}
  36. {foreach $cate_tree as $ck=>$cv}
  37. {if isset($vo.first_classify) && $vo.first_classify == $cv['id'] }
  38. {if isset($cv['children'])}
  39. {foreach $cv['children'] as $cln}
  40. {if isset($vo.second_classify) && $vo.second_classify == $cln['id'] }
  41. <option selected value="{$cln['id']}">{$cln['title']}</option>
  42. {else}
  43. <option value="{$cln['id']}">{$cln['title']}</option>
  44. {/if}
  45. {/foreach}
  46. {/if}
  47. {/if}
  48. {/foreach}
  49. {/if}
  50. </select>
  51. </div>
  52. </div>
  53. <div class="layui-form-item">
  54. <label class="layui-form-label label-required">关联文章</label>
  55. <div class="layui-input-inline">
  56. <select name="article_id" lay-filter ="article_id">
  57. <option value="0">请选择</option>
  58. {foreach $article_list as $vk=>$vv}
  59. <option {if isset($vo.article_id) && $vo.article_id == $vv['id'] }selected{/if} data-vl_key="{$vk}" value="{$vv['id']}">{$vv['title']}</option>
  60. {/foreach}
  61. </select>
  62. </div>
  63. <div class="layui-input-inline">
  64. <select name="article_item" lay-filter ="article_item">
  65. <option value="0">请选择</option>
  66. {foreach $article_list as $vk=>$vv}
  67. {if isset($vo.article_id) && $vo.article_id == $vv['id'] }
  68. {foreach $vv['item_list'] as $cln}
  69. <option {if isset($vo.article_item) && $vo.article_item == $cln['id']} selected {/if} value="{$cln['id']}">{$cln['title']}</option>
  70. {/foreach}
  71. {/if}
  72. {/foreach}
  73. </select>
  74. </div>
  75. </div>
  76. <div class="layui-form-item">
  77. <label class="layui-form-label label-required">关联资料</label>
  78. <div class="layui-input-inline">
  79. <select name="datum_id" lay-filter ="datum_id">
  80. <option value="0">请选择</option>
  81. {foreach $datum_list as $dk=>$dv}
  82. <option {if isset($vo.datum_id) && $vo.datum_id == $dv['id'] }selected{/if} data-dl_key="{$dk}" value="{$dv['id']}">{$dv['title']}</option>
  83. {/foreach}
  84. </select>
  85. </div>
  86. <div class="layui-input-inline">
  87. <select name="datum_item" lay-filter ="datum_item">
  88. <option value="0">请选择</option>
  89. {foreach $datum_list as $vk=>$vv}
  90. {if isset($vo.datum_id) && $vo.datum_id == $vv['id'] }
  91. {foreach $vv['url_arr'] as $cln}
  92. <option {if isset($vo.datum_item) && $vo.datum_item == $cln['id']} selected {/if} value="{$cln['id']}">{$cln['title']}</option>
  93. {/foreach}
  94. {/if}
  95. {/foreach}
  96. </select>
  97. </div>
  98. </div>
  99. <div class="layui-form-item">
  100. <label class="layui-form-label label-required">PPT</label>
  101. <label class="layui-col-xs10 relative">
  102. <label class="layui-col-xs9 think-form-group-left">
  103. <input name="ppt" value='{$video_url.ppt|default=""}' readonly placeholder="请上传" class="layui-input">
  104. </label>
  105. <button type="button" class="layui-btn" id="test3"><i class="layui-icon"></i>上传PPT</button>
  106. </label>
  107. </div>
  108. <div class="layui-form-item">
  109. <label class="layui-form-label label-required">标签</label>
  110. <div class="layui-input-block">
  111. <input name="label" maxlength="100" value='{$vo.label|default=""}' placeholder="请输入标签" class="layui-input">
  112. </div>
  113. </div>
  114. <input type="hidden" name="type" value="{$type}">
  115. <div class="layui-form-item">
  116. <label class="layui-form-label label-required">视频封面</label>
  117. <div class="layui-input-block">
  118. <input class="cover" name="cover" type="hidden" class="layui-input" value="{$video_url.cover|default=''}">
  119. </div>
  120. </div>
  121. <div class="layui-form-item">
  122. <label class="layui-form-label label-required">上传类型</label>
  123. <div class="layui-input-inline">
  124. <select name="up_type" lay-filter ="up_type">
  125. {foreach ['1'=>'上传','2'=>'路径'] as $ck=>$cv}
  126. {if !empty($video_url.up_type) && $video_url.up_type == $ck }
  127. <option selected data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  128. {else}
  129. <option data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  130. {/if}
  131. {/foreach}
  132. </select>
  133. </div>
  134. </div>
  135. <div class="layui-form-item up_video">
  136. <label class="layui-form-label label-required">视频上传</label>
  137. <div class="layui-input-block">
  138. <input class="up_url layui-input" name="up_url" type="hidden" value="{$video_url.url|default=''}">
  139. </div>
  140. </div>
  141. <div class="layui-form-item path" style="display: none">
  142. <label class="layui-form-label label-required">视频路径</label>
  143. <div class="layui-input-block">
  144. <input name="path" class="layui-input" value="{$video_url.url|default=''}" />
  145. </div>
  146. </div>
  147. <div class="layui-form-item" >
  148. <label class="layui-form-label label-required">云点播ID</label>
  149. <div class="layui-input-block">
  150. <input name="ali_vid" class="layui-input" value="{$video_url.ali_vid|default=''}" />
  151. </div>
  152. </div>
  153. <div class="layui-form-item">
  154. <label class="layui-form-label label-required">是否VIP</label>
  155. <div class="layui-input-inline">
  156. <select class="layui-select" name="is_vip" lay-filter ="is_vip">
  157. {foreach ['否','是'] as $ck=>$cv}
  158. {if !empty($video_url.is_vip) && $video_url.is_vip == $ck }
  159. <option selected data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  160. {else}
  161. <option data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  162. {/if}
  163. {/foreach}
  164. </select>
  165. </div>
  166. </div>
  167. <div class="layui-form-item">
  168. <label class="layui-form-label label-required">是否置顶</label>
  169. <div class="layui-input-inline">
  170. <select name="is_top" lay-filter ="is_top">
  171. {foreach ['不置顶','置顶'] as $ck=>$cv}
  172. {if !empty($vo.is_top) && $vo.is_top == $ck }
  173. <option selected data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  174. {else}
  175. <option data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  176. {/if}
  177. {/foreach}
  178. </select>
  179. </div>
  180. </div>
  181. <div class="layui-form-item">
  182. <label class="layui-form-label label-required">排序</label>
  183. <div class="layui-input-block">
  184. <input type="number" name="sort" value='{$vo.sort|default=""}' placeholder="请输入排序号" class="layui-input">
  185. </div>
  186. </div>
  187. {notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
  188. <div class="layui-form-item text-center">
  189. <button class="layui-btn" type='submit'>保 存</button>
  190. <button class="layui-btn layui-btn-danger" type='button' data-confirm="确定取消编辑吗?" data-close>取消编辑</button>
  191. </div>
  192. </div>
  193. </form>
  194. <script>
  195. window.form.render();
  196. require(['ckeditor', 'angular'], function () {
  197. window.createEditor('[name="detail"]', {height: 500,width:1000});
  198. })
  199. $('[name="cover"]').uploadOneImage();
  200. $('[name="up_url"]').uploadOneVideo()
  201. // 分类选择监听
  202. form.on('select(first_classify)', function(data){
  203. var cl_html = '<option value="0">请选择</option>';
  204. if(data.value == 0) {
  205. $("select[name='second_classify']").html(cl_html);
  206. }else{
  207. var cl_key = data.elem[data.elem.selectedIndex].dataset.cl_key;
  208. var goods_spec = {:json_encode($cate_tree)};
  209. $.each(goods_spec[cl_key]['children'],function (ck,cv) {
  210. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  211. })
  212. $("select[name='second_classify']").html(cl_html);
  213. }
  214. window.form.render();
  215. })
  216. $(document).on("click",'.video_player',function () {
  217. vUrl = $(".item_url").val(); //获取到播放的url
  218. var loadstr = '<video width="100%" height="100%" controls="controls" autobuffer="autobuffer" autoplay="autoplay" loop="loop">' +
  219. '<source src='+vUrl+' type="video/mp4"></source></video>';
  220. layer.open({
  221. type: 1,
  222. title: false,
  223. area: ['730px', '500px'],
  224. shade: [0.8, 'rgb(14, 16, 22)'],
  225. skin: 'demo-class',
  226. content: loadstr
  227. });
  228. form.render();
  229. });
  230. // 文章监听
  231. form.on('select(article_id)', function(data){
  232. var cl_html = '<option value="0">请选择</option>';
  233. if(data.value == 0) {
  234. $("select[name='article_item']").html(cl_html);
  235. }else{
  236. var vl_key = data.elem[data.elem.selectedIndex].dataset.vl_key;
  237. var article_list = {:json_encode($article_list)};
  238. $.each(article_list[vl_key]['item_list'],function (ck,cv) {
  239. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  240. })
  241. $("select[name='article_item']").html(cl_html);
  242. }
  243. window.form.render();
  244. });
  245. // 关联资料监听
  246. form.on('select(datum_id)', function(data){
  247. var cl_html = '<option value="0">请选择</option>';
  248. if(data.value == 0) {
  249. $("select[name='datum_item']").html(cl_html);
  250. }else{
  251. var dl_key = data.elem[data.elem.selectedIndex].dataset.dl_key;
  252. var datum_list = {:json_encode($datum_list)};
  253. $.each(datum_list[dl_key]['url_arr'],function (ck,cv) {
  254. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  255. })
  256. $("select[name='datum_item']").html(cl_html);
  257. }
  258. window.form.render();
  259. });
  260. form.on('select(up_type)', function(data){
  261. check_type()
  262. window.form.render();
  263. })
  264. function check_type() {
  265. if( $("select[name='up_type']").val() == 1) {
  266. $(".up_video").show();
  267. $(".path").hide();
  268. }else{
  269. $(".up_video").hide();
  270. $(".path").show();
  271. }
  272. window.form.render();
  273. }
  274. check_type()
  275. layui.use(['upload', 'element', 'layer'], function(){
  276. var $ = layui.jquery
  277. ,upload = layui.upload
  278. ,element = layui.element
  279. ,layer = layui.layer;
  280. upload.render({
  281. elem: '#test3',
  282. url: '/api/upload/upload', //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。,accept: 'file', //普通文件,
  283. accept: 'file', //普通文件,
  284. done: function(res){
  285. console.log(res)
  286. $("input[name='ppt']").val(res.data);
  287. layer.msg(re.msg);
  288. }
  289. });
  290. });
  291. </script>
  292. </div>