form.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  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. <div class="layui-form-item">
  115. <label class="layui-form-label label-required">自定义标签</label>
  116. <div class="layui-input-block">
  117. <table class="layui-table margin-top-10" lay-skin="line">
  118. <thead>
  119. <tr>
  120. <th class='text-left nowrap' style="width: 60%"></th>
  121. <th class='text-left nowrap' style="width: 10%; border-width: 1px 1px 1px !important;">操作</th>
  122. </tr>
  123. </thead>
  124. <tbody class="mud_html">
  125. <tr>
  126. <td class='text-left label_group' >
  127. <input type="checkbox" name="depot[{$key}]" title="{$value}">
  128. </td>
  129. <td class='text-left ' style=" border-width: 1px 1px 1px !important;">
  130. nbsp;&nbsp;&nbsp;<span class="add_mud">添加分组</span>
  131. </td>
  132. </tr>
  133. </tbody>
  134. </table>
  135. </div>
  136. </div>
  137. <input type="hidden" name="type" value="{$type}">
  138. <div class="layui-form-item">
  139. <label class="layui-form-label label-required">视频封面</label>
  140. <div class="layui-input-block">
  141. <input class="cover" name="cover" type="hidden" class="layui-input" value="{$video_url.cover|default=''}">
  142. </div>
  143. </div>
  144. <div class="layui-form-item">
  145. <label class="layui-form-label label-required">上传类型</label>
  146. <div class="layui-input-inline">
  147. <select name="up_type" lay-filter ="up_type">
  148. {foreach ['1'=>'上传','2'=>'路径'] as $ck=>$cv}
  149. {if !empty($video_url.up_type) && $video_url.up_type == $ck }
  150. <option selected data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  151. {else}
  152. <option data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  153. {/if}
  154. {/foreach}
  155. </select>
  156. </div>
  157. </div>
  158. <div class="layui-form-item up_video">
  159. <label class="layui-form-label label-required">视频上传</label>
  160. <div class="layui-input-block">
  161. <input class="up_url layui-input" name="up_url" type="hidden" value="{$video_url.url|default=''}">
  162. </div>
  163. </div>
  164. <div class="layui-form-item path" style="display: none">
  165. <label class="layui-form-label label-required">视频路径</label>
  166. <div class="layui-input-block">
  167. <input name="path" class="layui-input" value="{$video_url.url|default=''}" />
  168. </div>
  169. </div>
  170. <div class="layui-form-item" >
  171. <label class="layui-form-label label-required">云点播ID</label>
  172. <div class="layui-input-block">
  173. <input name="ali_vid" class="layui-input" value="{$video_url.ali_vid|default=''}" />
  174. </div>
  175. </div>
  176. <div class="layui-form-item">
  177. <label class="layui-form-label label-required">是否VIP</label>
  178. <div class="layui-input-inline">
  179. <select class="layui-select" name="is_vip" lay-filter ="is_vip">
  180. {foreach ['否','是'] as $ck=>$cv}
  181. {if !empty($video_url.is_vip) && $video_url.is_vip == $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">
  191. <label class="layui-form-label label-required">是否置顶</label>
  192. <div class="layui-input-inline">
  193. <select name="is_top" lay-filter ="is_top">
  194. {foreach ['不置顶','置顶'] as $ck=>$cv}
  195. {if !empty($vo.is_top) && $vo.is_top == $ck }
  196. <option selected data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  197. {else}
  198. <option data-cl_key="{$ck}" value="{$ck}">{$cv}</option>
  199. {/if}
  200. {/foreach}
  201. </select>
  202. </div>
  203. </div>
  204. <div class="layui-form-item">
  205. <label class="layui-form-label label-required">排序</label>
  206. <div class="layui-input-block">
  207. <input type="number" name="sort" value='{$vo.sort|default=""}' placeholder="请输入排序号" class="layui-input">
  208. </div>
  209. </div>
  210. {notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
  211. <div class="layui-form-item text-center">
  212. <button class="layui-btn" type='submit'>保 存</button>
  213. <button class="layui-btn layui-btn-danger" type='button' data-confirm="确定取消编辑吗?" data-close>取消编辑</button>
  214. </div>
  215. </div>
  216. </form>
  217. <script>
  218. window.form.render();
  219. require(['ckeditor', 'angular'], function () {
  220. window.createEditor('[name="detail"]', {height: 500,width:1000});
  221. })
  222. $('[name="cover"]').uploadOneImage();
  223. $('[name="up_url"]').uploadOneVideo()
  224. // 分类选择监听
  225. form.on('select(first_classify)', function(data){
  226. var cl_html = '<option value="0">请选择</option>';
  227. if(data.value == 0) {
  228. $("select[name='second_classify']").html(cl_html);
  229. }else{
  230. var cl_key = data.elem[data.elem.selectedIndex].dataset.cl_key;
  231. var goods_spec = {:json_encode($cate_tree)};
  232. $.each(goods_spec[cl_key]['children'],function (ck,cv) {
  233. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  234. })
  235. $("select[name='second_classify']").html(cl_html);
  236. }
  237. window.form.render();
  238. })
  239. $(document).on("click",'.video_player',function () {
  240. vUrl = $(".item_url").val(); //获取到播放的url
  241. var loadstr = '<video width="100%" height="100%" controls="controls" autobuffer="autobuffer" autoplay="autoplay" loop="loop">' +
  242. '<source src='+vUrl+' type="video/mp4"></source></video>';
  243. layer.open({
  244. type: 1,
  245. title: false,
  246. area: ['730px', '500px'],
  247. shade: [0.8, 'rgb(14, 16, 22)'],
  248. skin: 'demo-class',
  249. content: loadstr
  250. });
  251. form.render();
  252. });
  253. // 文章监听
  254. form.on('select(article_id)', function(data){
  255. var cl_html = '<option value="0">请选择</option>';
  256. if(data.value == 0) {
  257. $("select[name='article_item']").html(cl_html);
  258. }else{
  259. var vl_key = data.elem[data.elem.selectedIndex].dataset.vl_key;
  260. var article_list = {:json_encode($article_list)};
  261. $.each(article_list[vl_key]['item_list'],function (ck,cv) {
  262. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  263. })
  264. $("select[name='article_item']").html(cl_html);
  265. }
  266. window.form.render();
  267. });
  268. // 关联资料监听
  269. form.on('select(datum_id)', function(data){
  270. var cl_html = '<option value="0">请选择</option>';
  271. if(data.value == 0) {
  272. $("select[name='datum_item']").html(cl_html);
  273. }else{
  274. var dl_key = data.elem[data.elem.selectedIndex].dataset.dl_key;
  275. var datum_list = {:json_encode($datum_list)};
  276. $.each(datum_list[dl_key]['url_arr'],function (ck,cv) {
  277. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  278. })
  279. $("select[name='datum_item']").html(cl_html);
  280. }
  281. window.form.render();
  282. });
  283. form.on('select(up_type)', function(data){
  284. check_type()
  285. window.form.render();
  286. })
  287. function check_type() {
  288. if( $("select[name='up_type']").val() == 1) {
  289. $(".up_video").show();
  290. $(".path").hide();
  291. }else{
  292. $(".up_video").hide();
  293. $(".path").show();
  294. }
  295. window.form.render();
  296. }
  297. check_type()
  298. layui.use(['upload', 'element', 'layer'], function(){
  299. var $ = layui.jquery
  300. ,upload = layui.upload
  301. ,element = layui.element
  302. ,layer = layui.layer;
  303. upload.render({
  304. elem: '#test3',
  305. url: '/api/upload/upload', //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。,accept: 'file', //普通文件,
  306. accept: 'file', //普通文件,
  307. done: function(res){
  308. console.log(res)
  309. $("input[name='ppt']").val(res.data);
  310. layer.msg(re.msg);
  311. }
  312. });
  313. });
  314. </script>
  315. </div>