form.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. {extend name="../../admin/view/main"}
  2. {block name='content'}
  3. <form action="" class="layui-card layui-form" data-auto="true" method="post">
  4. <div class="layui-card-body">
  5. <label class="layui-form-item relative block">
  6. <span class="help-label"><b>标题</b>Title</span>
  7. <input class="layui-input" name="title" placeholder="请输入新闻标题" required value='{$vo.title|default=""}'>
  8. </label>
  9. <label class="layui-form-item relative block">
  10. <span class="help-label"><b>分类</b>Category</span>
  11. <select name="class_id">
  12. {foreach $category as $a}
  13. <option value="{$a.id}" {:isset($vo['class_id']) && $vo['class_id']==$a['id']?'selected':''}>{$a.name}</option>
  14. {/foreach}
  15. </select>
  16. </label>
  17. <div class="layui-form-item label-required-prev">
  18. <span class="help-label"><b>图片</b>Imgs</span>
  19. <table class="layui-table">
  20. <thead>
  21. <tr>
  22. </tr>
  23. <tr>
  24. <td class="text-left padding-0">
  25. <div class="help-images">
  26. <input name="imgs" data-max-width="2048" data-max-height="1024" type="hidden" value="{$vo.imgs|default=''}">
  27. <script>$('[name="imgs"]').uploadMultipleImage();</script>
  28. </div>
  29. </td>
  30. </tr>
  31. </thead>
  32. </table>
  33. </div>
  34. <div class="layui-form-item label-required-prev">
  35. <span class="help-label"><b>内容</b>Content</span>
  36. <div class="relative block">
  37. <textarea class="layui-hide" name="content" placeholder="请输入内容">{$vo.content|default=''}</textarea>
  38. </div>
  39. </div>
  40. <div class="hr-line-dashed"></div>
  41. {notempty name='vo.id'}<input name='id' type='hidden' value='{$vo.id}'>{/notempty}
  42. <div class="layui-form-item text-center">
  43. <button class="layui-btn" type="submit">保存数据</button>
  44. <button class="layui-btn layui-btn-danger" data-history-back data-confirm="确定要取消编辑吗?" type='button'>取消编辑</button>
  45. </div>
  46. </div>
  47. </form>
  48. <script>
  49. $('input[name="images"]').uploadMultipleImage();
  50. require(['ckeditor'], function () {
  51. window.createEditor('[name=content]', {height: 350})
  52. });
  53. layui.use(['upload', 'element', 'layer'], function() {
  54. var $ = layui.jquery
  55. , upload = layui.upload
  56. , element = layui.element
  57. , layer = layui.layer;
  58. upload.render({
  59. elem: '#test5'
  60. ,url: '' //此处配置你自己的上传接口即可
  61. ,accept: 'video' //视频
  62. ,done: function(res){
  63. layer.msg('上传成功');
  64. console.log(res)
  65. }
  66. });
  67. //演示多文件列表
  68. var uploadListIns = upload.render({
  69. elem: '#testList'
  70. ,elemList: $('#demoList') //列表元素对象
  71. ,url: 'https://httpbin.org/post' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
  72. ,accept: 'file'
  73. ,multiple: true
  74. ,number: 3
  75. ,auto: false
  76. ,bindAction: '#testListAction'
  77. ,choose: function(obj){
  78. var that = this;
  79. var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
  80. //读取本地文件
  81. obj.preview(function(index, file, result){
  82. var tr = $(['<tr id="upload-'+ index +'">'
  83. ,'<td>'+ file.name +'</td>'
  84. ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
  85. ,'<td><div class="layui-progress" lay-filter="progress-demo-'+ index +'"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
  86. ,'<td>'
  87. ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
  88. ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
  89. ,'</td>'
  90. ,'</tr>'].join(''));
  91. //单个重传
  92. tr.find('.demo-reload').on('click', function(){
  93. obj.upload(index, file);
  94. });
  95. //删除
  96. tr.find('.demo-delete').on('click', function(){
  97. delete files[index]; //删除对应的文件
  98. tr.remove();
  99. uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
  100. });
  101. that.elemList.append(tr);
  102. element.render('progress'); //渲染新加的进度条组件
  103. });
  104. }
  105. ,done: function(res, index, upload){ //成功的回调
  106. var that = this;
  107. //if(res.code == 0){ //上传成功
  108. var tr = that.elemList.find('tr#upload-'+ index)
  109. ,tds = tr.children();
  110. tds.eq(3).html(''); //清空操作
  111. delete this.files[index]; //删除文件队列已经上传成功的文件
  112. return;
  113. //}
  114. this.error(index, upload);
  115. }
  116. ,allDone: function(obj){ //多文件上传完毕后的状态回调
  117. console.log(obj)
  118. }
  119. ,error: function(index, upload){ //错误回调
  120. var that = this;
  121. var tr = that.elemList.find('tr#upload-'+ index)
  122. ,tds = tr.children();
  123. tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
  124. }
  125. ,progress: function(n, elem, e, index){ //注意:index 参数为 layui 2.6.6 新增
  126. element.progress('progress-demo-'+ index, n + '%'); //执行进度条。n 即为返回的进度百分比
  127. }
  128. });
  129. });
  130. </script>
  131. {/block}