video_form.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <div class="layui-fluid">
  2. <div class="layui-row layui-col-space15">
  3. <div class="layui-col-md12">
  4. <div class="layui-card">
  5. <div class="layui-card-header">视频信息</div>
  6. <div class="layui-card-body" pad15>
  7. <div class="layui-form layui-form-pane" lay-filter="{$lay_table}">
  8. <input type="hidden" name="id" value="{:array_get($info,'id')}" />
  9. <div class="layui-form-item" pane>
  10. <label class="layui-form-label"><span style="color:#f90c05;">*</span>系列</label>
  11. <div class="layui-input-block">
  12. <select name="series_id" lay-verify="required">
  13. {volist name="series_list" id="v"}
  14. <option value="{$v.id}" {eq name=":array_get($info,'series_id')" value="$v['id']" }selected{/eq}>{$v.title}</option>
  15. {/volist}
  16. </select>
  17. </div>
  18. </div>
  19. <div class="layui-form-item">
  20. <label class="layui-form-label"><span style="color:#f90c05;">*</span>标题</label>
  21. <div class="layui-input-block">
  22. <input type="text" name="title" value="{:array_get($info,'title')}" lay-verify="required" placeholder="请输入标题"
  23. autocomplete="off" class="layui-input">
  24. </div>
  25. </div>
  26. <div class="layui-form-item">
  27. <label class="layui-form-label"><span style="color:#f90c05;">*</span>是否必修</label>
  28. <div class="layui-input-block">
  29. {volist name="is_must_list" id="v"}
  30. <input type="radio" name="is_must" value="{$key}" title="{$v}" {eq name=":array_get($info,'is_must',2)" value="$key" }checked{/eq}>
  31. {/volist}
  32. </div>
  33. </div>
  34. <div class="layui-form-item">
  35. <label class="layui-form-label"><span style="color:#f90c05;">*</span>主图</label>
  36. <div class="layui-input-block">
  37. <div class="layui-upload">
  38. <button type="button" class="layui-btn attachment-upload-images" data-input="main_image" data-amount="1">上传图片</button>
  39. <div class="layui-inline layui-word-aux"> 最佳尺寸:320px*320px </div>
  40. <div class="layui-upload-list echo-attachment-image-list" id="main_image">
  41. {notempty name="info.main_image"}
  42. <div>
  43. <input type="hidden" name="main_image" value="{:array_get($info,'main_image')}">
  44. <img src="{:array_get($info,'main_image')}">
  45. </div>
  46. {/notempty}
  47. </div>
  48. </div>
  49. </div>
  50. </div>
  51. <div class="layui-form-item">
  52. <label class="layui-form-label">视频</label>
  53. <div class="layui-input-block">
  54. <div class="layui-upload">
  55. <button type="button" class="layui-btn attachment-upload-video" data-input="video" data-amount="1">上传视频</button>
  56. <div class="layui-inline layui-word-aux"> 请上传MP4格式的视频文件 </div>
  57. <div class="layui-upload-list echo-attachment-video" id="video">
  58. {notempty name="info.video"}
  59. <div>
  60. <input type="hidden" name="video" value="{:array_get($info,'video')}">
  61. <video src="{:array_get($info,'video')}" controls></video>
  62. </div>
  63. {/notempty}
  64. </div>
  65. </div>
  66. </div>
  67. </div>
  68. <div class="layui-form-item">
  69. <label class="layui-form-label"><span style="color:#f90c05;">*</span>排序</label>
  70. <div class="layui-input-block">
  71. <input type="text" name="priority" value="{:array_get($info,'priority',255)}"
  72. lay-verify="required" placeholder="请输入排序值(倒序,值越大越靠前)"
  73. autocomplete="off" class="layui-input">
  74. <div class="layui-form-mid layui-word-aux">倒序,值越大越靠前</div>
  75. </div>
  76. </div>
  77. <div class="layui-form-item">
  78. <label class="layui-form-label"><span style="color:#f90c05;">*</span>状态</label>
  79. <div class="layui-input-block">
  80. {volist name="status_list" id="v"}
  81. <input type="radio" name="status" value="{$key}" title="{$v}" {eq name=":array_get($info,'status',1)" value="$key" }checked{/eq}>
  82. {/volist}
  83. </div>
  84. </div>
  85. <div class="layui-form-item">
  86. <div class="layui-input-block">
  87. <input type="button" lay-submit lay-filter="{$lay_btn}" value="确认提交" class="layui-btn">
  88. </div>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. <script>
  97. layui.use(['index', 'form', 'upload', 'laydate'], function () {
  98. const $ = layui.$;
  99. const admin = layui.admin;
  100. const form = layui.form;
  101. const upload = layui.upload;
  102. const laydate = layui.laydate;
  103. form.render();
  104. laydate.render({
  105. elem: '#birthday',
  106. type: 'date'
  107. });
  108. form.on('submit({$lay_btn})', function (obj) {
  109. const index = parent.layer.getFrameIndex(window.name);
  110. admin.req({
  111. url: "{:url('soldier/editVideo')}",
  112. type: 'post',
  113. data: obj.field,
  114. done: function (res) {
  115. layer.msg("提交成功", {
  116. icon: 1
  117. });
  118. parent.layui.table.reload('lay-soldier-video-table'); //重载表格
  119. parent.layer.close(index);
  120. }
  121. });
  122. });
  123. let upload_input = '';
  124. let upload_amount = '';
  125. upload.render({
  126. elem: '.attachment-upload-images',
  127. url: "{:url('upload/image')}",
  128. accept: 'images',
  129. exits: 'jpg|png|jpeg',
  130. acceptMime: 'image/*',
  131. size: 2048,
  132. number: 1,
  133. method: 'post',
  134. before: function(obj) {
  135. var item = this.item;
  136. upload_input = $(item).data('input');
  137. upload_amount = $(item).data('amount');
  138. layer.load();
  139. },
  140. done: function(res, index, upload) {
  141. layer.closeAll('loading');
  142. let html = "";
  143. if (upload_amount == 1) {
  144. html += '<div> <input type="hidden" name="' + upload_input + '" value="' + res.data.src + '"> ';
  145. html += '<img src="' + res.data.src + '"></div>';
  146. $("#" + upload_input).html(html);
  147. } else {
  148. html += '<div> <input type="hidden" name="' + upload_input + '[]" value="' + res.data.src + '"> ';
  149. html += '<img src="' + res.data.src +
  150. '"> <button type="button" class="attachment-del layui-btn layui-btn-primary layui-btn-xs layui-btn-fluid">删除</button></div>';
  151. $("#" + upload_input).append(html);
  152. }
  153. },
  154. error: function(index, upload) {
  155. layer.closeAll('loading');
  156. }
  157. });
  158. let video_upload_input = '';
  159. let video_upload_amount = '';
  160. upload.render({
  161. elem: '.attachment-upload-video',
  162. url: "{:url('upload/video')}",
  163. accept: 'video',
  164. exits: 'mp4',
  165. acceptMime: 'video/*',
  166. size: 0,
  167. number: 1,
  168. method: 'post',
  169. before: function(obj) {
  170. var item = this.item;
  171. video_upload_input = $(item).data('input');
  172. video_upload_amount = $(item).data('amount');
  173. layer.load();
  174. },
  175. done: function(res, index, upload) {
  176. layer.closeAll('loading');
  177. let html = "";
  178. if (video_upload_amount == 1) {
  179. html += '<div> <input type="hidden" name="' + video_upload_input + '" value="' + res.data.src + '"> ';
  180. html += '<video src="' + res.data.src + '" controls></video></div>';
  181. $("#" + video_upload_input).html(html);
  182. } else {
  183. html += '<div> <input type="hidden" name="' + video_upload_input + '[]" value="' + res.data.src + '"> ';
  184. html += '<video src="' + res.data.src +
  185. '"></video><button type="button" class="attachment-del layui-btn layui-btn-primary layui-btn-xs layui-btn-fluid">删除</button></div>';
  186. $("#" + video_upload_input).append(html);
  187. }
  188. },
  189. error: function(index, upload) {
  190. layer.closeAll('loading');
  191. }
  192. });
  193. });
  194. </script>