index.html 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>layui</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, maximum-scale=1">
  9. <link rel="stylesheet" href="__PUBLIC__/layui/css/layui.css" media="all">
  10. <link rel="stylesheet" href="__PUBLIC__/font-awesome/css/font-awesome.min.css" media="all"/>
  11. <link rel="stylesheet" href="__CSS__/admin.css" media="all">
  12. </head>
  13. <body style="padding:10px;">
  14. <div class="tplay-body-div">
  15. <div class="layui-tab">
  16. <ul class="layui-tab-title">
  17. <li class="layui-this">模板管理</li>
  18. <li><a href="{:url('publish')}" class="a_menu">新增模板</a></li>
  19. <li><a href="javascript:;" permission="{:url('upload')}" class="a_menu" id="upload">上传模板</a></li>
  20. </ul>
  21. </div>
  22. <form class="layui-form serch" action="{:url('index')}" method="post">
  23. <div class="layui-form-item" style="float: left;">
  24. <div class="layui-input-inline">
  25. <input type="text" name="name" autocomplete="off" placeholder="请输入名称"
  26. class="layui-input layui-btn-sm">
  27. </div>
  28. <div class="layui-input-inline" style="width:75px">
  29. <button class="layui-btn layui-btn-sm" lay-submit="" lay-filter="serch">查询</button>
  30. </div>
  31. </div>
  32. </form>
  33. <script type="text/html" id="barDemo">
  34. <div class="layui-btn-group">
  35. <button class="layui-btn layui-btn-xs a_menu" lay-event="edit" title="编辑">编辑</button>
  36. <button class="layui-btn layui-btn-xs a_menu" lay-event="rename" title="改名">改名</button>
  37. <button class="layui-btn layui-btn-xs a_menu" lay-event="del" title="删除">删除</button>
  38. </div>
  39. </script>
  40. <table class="layui-table" id="table" lay-filter="table"></table>
  41. {include file="public/foot"}
  42. <script type="text/javascript">
  43. layui.use(['table', 'layer', 'form'], function () {
  44. var table = layui.table,
  45. form = layui.form,
  46. layer = layui.layer;
  47. //第一个实例
  48. table.render({
  49. id: 'table'
  50. , elem: '#table'
  51. , size: 'sm' //小尺寸的表格
  52. , defaultToolbar: []
  53. , url: '{:url("index")}' //数据接口
  54. , page: true //开启分页
  55. , limit: 15
  56. , limits: [15, 20, 30, 40, 50, 100]
  57. , cols: [[ //表头
  58. {type: 'checkbox'},
  59. {
  60. field: 'filename', title: '模板名称', minWidth: 120, templet: function (row) {
  61. return "<a href='javascript:;' title='单击打开' lay-event='edit'>" + '<i class="fa fa-file-code-o fa-lg"/> ' + row.filename + "</a>";
  62. }
  63. },
  64. {
  65. field: 'path', title: '路径', templet: function (row) {
  66. return "{$tpPath|addslashes}" + row.filename + "." + row.fileext;
  67. }
  68. },
  69. {
  70. field: 'fileext', title: '格式', width: 100, templet: function (row) {
  71. if (row.fileext != 'html') {
  72. return "<span style='color:red;cursor: pointer;' lay-event='rename2'>无效格式</span>";
  73. } else {
  74. return row.fileext;
  75. }
  76. }
  77. },
  78. {
  79. field: 'filesize', title: '文件大小', width: 100, templet: function (row) {
  80. return format_bytes(row.filesize, '');
  81. }
  82. },
  83. {field: 'create_time', title: '创建时间', width: 200},
  84. {field: 'update_time', title: '修改时间', width: 200},
  85. {field: 'action', title: '操作', align: 'center', toolbar: '#barDemo', fixed: 'right', width: 200}
  86. ]],
  87. });
  88. form.on('submit(serch)', function (data) {
  89. table.reload('table', {
  90. where: data.field
  91. , page: {
  92. curr: 1 //重新从第 1 页开始
  93. }
  94. });
  95. return false;
  96. });
  97. //编辑
  98. table.on('tool(table)', function (obj) {
  99. if (obj.event == 'edit') {
  100. window.parent.tab.tabAdd({
  101. icon: "fa-bookmark",
  102. id: 'templet' + obj.data.filename,
  103. title: '<i class="fa fa-file-code-o"/> ' + obj.data.filename,
  104. url: "{:url('admin/templet/publish')}?filename=" + obj.data.filename
  105. });
  106. }
  107. else if (obj.event == 'del') {
  108. var fullname = getfullname(obj.data.filename, obj.data.fileext, obj.data.filetype);
  109. layer.confirm('确定要删除?', function (index) {
  110. $.ajax({
  111. url: "{:url('delete')}",
  112. dataType: 'json',
  113. type: 'post',
  114. data: {fullname: fullname},
  115. success: function (res) {
  116. layer.msg(res.msg);
  117. if (res.code == 1) {
  118. table.reload('table');
  119. }
  120. }
  121. })
  122. })
  123. }
  124. else if (obj.event == 'rename') {
  125. var fullname = getfullname(obj.data.filename, obj.data.fileext, obj.data.filetype);
  126. layer.prompt({
  127. title: '重命名 ' + fullname,
  128. value: fullname,
  129. }, function (value, index, elem) {
  130. $.post("{:url('rename')}", {
  131. oldname: fullname,
  132. newname: value,
  133. }, function (res) {
  134. layer.msg(res.msg);
  135. if (res.code == 1) {
  136. table.reload('table');
  137. }
  138. });
  139. layer.close(index);
  140. });
  141. }
  142. else if (obj.event == 'rename2') {
  143. var fullname = getfullname(obj.data.filename, obj.data.fileext, obj.data.filetype);
  144. layer.prompt({
  145. title: '重命名 ' + fullname,
  146. value: obj.data.filename + '.html',
  147. }, function (value, index, elem) {
  148. $.post("{:url('rename')}", {
  149. oldname: fullname,
  150. newname: value,
  151. }, function (res) {
  152. layer.msg(res.msg);
  153. if (res.code == 1) {
  154. table.reload('table');
  155. }
  156. });
  157. layer.close(index);
  158. });
  159. }
  160. //
  161. });
  162. });
  163. function getfullname(filename, fileext, filetype) {
  164. return filetype == 'dir' || fileext == "" ? filename : filename + '.' + fileext;
  165. }
  166. </script>
  167. <script>
  168. layui.use('upload', function () {
  169. var $ = layui.jquery,
  170. upload = layui.upload;
  171. //指定允许上传的文件类型
  172. upload.render({
  173. elem: '#upload'
  174. , url: "{:url('upload')}"
  175. , accept: 'file' //普通文件
  176. , multiple: true
  177. , exts: 'html' //允许上传的文件格式
  178. , allDone: function (obj) { //当文件全部被提交后,才触发
  179. console.log('总文件数:' + obj.total + ' 成功的文件数:' + obj.successful + ' 失败的文件数:' + obj.aborted);
  180. setTimeout(function () {
  181. location.reload();
  182. }, 1500)
  183. }
  184. , progress: function (n) {
  185. var percent = n + '%' //获取进度百分比
  186. element.progress('demo', percent); //可配合 layui 进度条元素使用
  187. }
  188. , done: function (res) { //每个文件提交一次触发一次
  189. layer.msg(res.msg);
  190. }
  191. });
  192. });
  193. </script>
  194. </div>
  195. </body>
  196. </html>