image.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>图片</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  9. <link rel="stylesheet" href="/static/echoui/layui/css/layui.css" media="all">
  10. <link rel="stylesheet" href="/static/echoui/style/admin.css" media="all">
  11. </head>
  12. <body>
  13. <style>
  14. .layui-table-cell{ height:auto !important; }
  15. .picbox{ width: 75px; height: 75px; background-color: #F0F0F0; border: 1px solid #DDDDDD; display: table-cell; vertical-align: middle; text-align: center; padding: 1px; }
  16. .picbox img{ max-width: 100%; max-height: 100%; vertical-align: middle; }
  17. </style>
  18. <!-- <div class="layui-fluid"> -->
  19. <div class="layui-card" style="margin: 0px;">
  20. <div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-attachment-image-imagelist-search">
  21. <div class="layui-form-item">
  22. <div class="layui-inline">
  23. <button class="layui-btn layui-btn-danger attachment-btn" data-type="batchdel">
  24. <i class="layui-icon layui-icon-delete layuiadmin-button-btn"></i> 批量删除
  25. </button>
  26. </div>
  27. <div class="layui-inline">
  28. <input type="text" name="keywords" placeholder="请输入文件名关键字" autocomplete="off" class="layui-input">
  29. </div>
  30. <div class="layui-inline" id="yearmonth"></div>
  31. <div class="layui-inline">
  32. <button class="layui-btn layui-btn-primary" lay-submit lay-filter="LAY-attachment-image-imagelist-search-btn">
  33. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
  34. </button>
  35. <button class="layui-btn" id="attachment-upload-images">
  36. <i class="layui-icon layui-icon-upload layuiadmin-button-btn"></i> 上传图片
  37. </button>
  38. </div>
  39. </div>
  40. </div>
  41. <div class="layui-card-body">
  42. <table id="LAY-attachment-image-imagelist-table" lay-filter="LAY-attachment-image-imagelist-table"></table>
  43. <script type="text/html" id="attachmentTpl">
  44. <div id="pic{{d.id}}" class="picbox" lay-event="pic">
  45. <img src="{{d.attachment}}" alt="{{d.filename}}">
  46. </div>
  47. </script>
  48. <script type="text/html" id="setTpl">
  49. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
  50. </script>
  51. </div>
  52. </div>
  53. <!-- </div> -->
  54. <script src="/static/echoui/layui/layui.js"></script>
  55. <script>
  56. layui.config({
  57. base: '/static/echoui/' //静态资源所在路径
  58. }).extend({
  59. index: 'lib/index' //主入口模块
  60. }).use(['index', 'form', 'set', 'table', 'upload', 'selectN','selectM'], function() {
  61. var $ = layui.$,
  62. setter = layui.setter,
  63. admin = layui.admin,
  64. form = layui.form,
  65. table = layui.table,
  66. upload = layui.upload,
  67. selectN = layui.selectN,
  68. selectM = layui.selectM;
  69. form.render();
  70. var yearmonth = selectN({
  71. elem: '#yearmonth',
  72. search:[false,true],
  73. tips:["请选择上传年份","请选择上传月份"],
  74. data: {$yearmonth|raw},
  75. field:{idName:'key',titleName:'val',childName:'month'}
  76. });
  77. //列表
  78. table.render({
  79. elem: '#LAY-attachment-image-imagelist-table',
  80. url: setter.baseUrl + 'admin/attachment/listimage',
  81. cols: [[
  82. {type: 'checkbox'},
  83. {field: 'attachment', width: 140, title: '图片', templet: '#attachmentTpl', align: 'center'},
  84. {field: 'filename', title: '文件名', edit: 'text'},
  85. {field: 'createtime', title: '上传时间'},
  86. {title: '操作', width: 100, align: 'center', fixed: 'right', toolbar: '#setTpl'}
  87. ]],
  88. page: true,
  89. limit: 20,
  90. height: 'full-100',
  91. text: '对不起,加载出现异常!',
  92. // skin: 'line'
  93. });
  94. form.on('submit(LAY-attachment-image-imagelist-search-btn)', function(data) {
  95. table.reload('LAY-attachment-image-imagelist-table', {
  96. where: data.field,
  97. page: {
  98. curr: 1
  99. }
  100. });
  101. });
  102. // 上传
  103. upload.render({
  104. elem: '#attachment-upload-images',
  105. url: setter.baseUrl + 'admin/attachment/tplfieldimage',
  106. accept: 'images',
  107. exits: 'jpg|png|jpeg',
  108. acceptMime: 'image/*',
  109. size: 2048,
  110. number: 1,
  111. method: 'post',
  112. before: function(obj) {
  113. layer.load();
  114. },
  115. done: function(res, index, upload) {
  116. layer.closeAll('loading');
  117. table.reload('LAY-attachment-image-imagelist-table', {
  118. page: {
  119. curr: 1
  120. }
  121. });
  122. },
  123. error: function(index, upload){
  124. layer.closeAll('loading');
  125. }
  126. });
  127. //事件
  128. var active = {
  129. batchdel: function() {
  130. var checkStatus = table.checkStatus('LAY-attachment-image-imagelist-table'),
  131. checkData = checkStatus.data;
  132. if (checkData.length === 0) {
  133. return layer.msg('请选择数据');
  134. }
  135. var idarr = [];
  136. for (var i = 0; i < checkData.length; i++) {
  137. idarr.push(checkData[i].id);
  138. }
  139. layer.confirm('确定删除所选图片吗?', function(index) {
  140. admin.req({
  141. url: setter.baseUrl + 'admin/attachment/delattachment',
  142. data: {
  143. idarr: idarr
  144. },
  145. done: function(res) {
  146. table.reload('LAY-attachment-image-imagelist-table');
  147. layer.msg('已删除');
  148. }
  149. });
  150. layer.close(index);
  151. });
  152. }
  153. };
  154. //监听单元格编辑
  155. table.on('edit(LAY-attachment-image-imagelist-table)', function(obj){
  156. var id = obj.data.id,
  157. field = obj.field,
  158. value = obj.value;
  159. admin.req({
  160. url: setter.baseUrl + 'admin/attachment/fieldattachment',
  161. data: {id: id, field: field, value: value},
  162. done: function(res) {
  163. layer.msg('修改成功');
  164. }
  165. });
  166. });
  167. //监听工具条
  168. table.on('tool(LAY-attachment-image-imagelist-table)', function(obj) {
  169. var data = obj.data;
  170. if (obj.event === 'del') {
  171. layer.confirm('确定删除此图片吗?', function(index) {
  172. admin.req({
  173. url: setter.baseUrl + 'admin/attachment/delattachment',
  174. data: {
  175. idarr: [data.id]
  176. },
  177. done: function(res) {
  178. obj.del();
  179. layer.msg('已删除');
  180. }
  181. });
  182. layer.close(index);
  183. });
  184. } else if (obj.event === 'pic') {
  185. layer.photos({
  186. photos: '#pic' + data.id,
  187. anim: 5,
  188. });
  189. }
  190. });
  191. $('.attachment-btn').on('click', function(){
  192. var type = $(this).data('type');
  193. active[type] ? active[type].call(this) : '';
  194. });
  195. });
  196. </script>
  197. </body>
  198. </html>