form.html 16 KB

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