video_form.html 9.7 KB

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