menu.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. layui.use([ 'laypage', 'layer', 'table', 'element','form','treetable'], function(){
  2. var laypage = layui.laypage //分页
  3. ,$ = layui.jquery
  4. ,layer = layui.layer //弹层
  5. ,table = layui.table //表格
  6. ,treetable = layui.treetable //treetable表格
  7. ,element = layui.element //元素操作
  8. ,form = layui.form;
  9. //第一个实例
  10. if($('#menulist').attr('lay-filter') == 'menulist'){
  11. var renderTable = function (wheres = {}) {
  12. layer.load(2);
  13. treetable.render({
  14. treeColIndex:2,
  15. treeSpid:0,
  16. treeIdName: 'id',
  17. treePidName: 'pid',
  18. treeDefaultClose: true,
  19. treeLinkage: false,
  20. elem: '#menulist',
  21. url: '/menu/indexfrom',
  22. page: false,
  23. where:wheres,
  24. id:'tablerReload'
  25. , cols: [[ //表头
  26. {type: 'numbers', title: '序号'}
  27. , {field: 'id', title: 'ID', width: 80, sort: true, align: 'center'}
  28. , {field: 'name', title: '菜单名称', align: 'center'}
  29. , {field: 'url', title: '地址', width: 300, align: 'center'}
  30. , {field: 'icon', title: '图标', width: 120, align: 'center'}
  31. //,{field: 'sort', title: '排序', width:100,align:'center'}
  32. , {field: 'sort', title: '排序', width: 80, edit: 'text', align: 'center', sort: true, templet: "#sortBox"}
  33. , {field: 'level', title: '菜单级别', width: 120, align: 'center'}
  34. , {
  35. field: 'status', title: '审核', align: 'center', width: 100,templet:function(d){
  36. // console.log(d)
  37. switch (d.status){
  38. case '2':
  39. return '<input type="checkbox" value="'+d.id+'" res="1" lay-skin="switch" lay-filter="switchTest" lay-text="|">'
  40. break;
  41. case '1':
  42. return '<input type="checkbox" checked value="'+d.id+'" res="2" lay-skin="switch" lay-filter="switchTest" lay-text="|">'
  43. break;
  44. }
  45. }
  46. }
  47. , {fixed: 'right', title: '操作', width: 165, align: 'center', toolbar: '#operate'}
  48. ]],
  49. done: function () {
  50. layer.closeAll('loading');
  51. }
  52. });
  53. };
  54. renderTable();
  55. }
  56. // table.render({
  57. // elem: '#menulist'
  58. // ,url: '/menu/indexfrom' //数据接口
  59. // ,where:{token:csrfToken}
  60. // ,method:'post'
  61. // ,id:'tablerReload'
  62. // ,page: true //开启分页
  63. // ,text:'数据加载中'
  64. // ,cols: [[ //表头
  65. // {type:'numbers',title:'序号'}
  66. // ,{field: 'id', title: 'ID', width:80, sort: true, align:'center'}
  67. // ,{field: 'name', title: '菜单名称', align:'center'}
  68. // ,{field: 'url', title: '地址', width:300,align:'center'}
  69. // ,{field: 'icon', title: '图标', width:120,align:'center'}
  70. // ,{field: 'sort', title: '排序', width:100,align:'center'}
  71. // ,{field: 'level', title: '菜单级别', width:120,align:'center'}
  72. // ,{field: 'status', title: '状态', width:80,align:'center',templet:function(d){
  73. // // console.log(d)
  74. // switch (d.status){
  75. // case '2':
  76. // return '<input type="checkbox" value="'+d.id+'" res="1" lay-skin="switch" lay-filter="switchTest" lay-text="|">'
  77. // break;
  78. // case '1':
  79. // return '<input type="checkbox" checked value="'+d.id+'" res="2" lay-skin="switch" lay-filter="switchTest" lay-text="|">'
  80. // break;
  81. // }
  82. // }}
  83. // ,{fixed: 'right',title:'操作', width: 165, align:'center', toolbar: '#operate'}
  84. //
  85. // ]]
  86. // });
  87. // table.reload('tablerReload'); //重新加载
  88. //列表操作
  89. table.on('tool(menulist)', function(obj){
  90. var layEvent = obj.event,
  91. data = obj.data;
  92. if(layEvent === 'edit'){
  93. layer.open({
  94. type: 2,
  95. title: '添加菜单',
  96. closeBtn: 1, //不显示关闭按钮
  97. // shade: [0],
  98. area: ['600px', '500px'],
  99. anim: 2,
  100. content: ['/menu/edit?id='+data.id, 'yes'], //iframe的url,no代表不显示滚动条
  101. });
  102. } else if(layEvent === 'del') {
  103. $.post('/menu/delmenu',{'id':data.id},function (data) {
  104. if(data.code == 200)
  105. {
  106. layer.msg(data.msg);
  107. table.reload('menulist');
  108. } else if(data.code == 300 ) {
  109. layer.msg(data.msg);
  110. }
  111. })
  112. }
  113. });
  114. var $ = layui.$, active = {
  115. addData: function(){ //获取选中数据
  116. layer.open({
  117. type: 2,
  118. title: '添加菜单',
  119. closeBtn: 1, //不显示关闭按钮
  120. // shade: [0],
  121. area: ['600px', '500px'],
  122. anim: 2,
  123. content: ['/menu/create.html', 'no'] //iframe的url,no代表不显示滚动条
  124. // end: function(){ //此处用于演示
  125. // layer.open({
  126. // type: 2,
  127. // title: '很多时候,我们想最大化看,比如像这个页面。',
  128. // shadeClose: true,
  129. // shade: false,
  130. // maxmin: true, //开启最大化最小化按钮
  131. // area: ['893px', '600px'],
  132. // content: '//fly.layui.com/'
  133. // });
  134. // }
  135. });
  136. // var checkStatus = table.checkStatus('idTest')
  137. // ,data = checkStatus.data;
  138. // layer.alert(JSON.stringify(data));
  139. }
  140. };
  141. //监听指定开关
  142. form.on('switch(switchTest)', function(data){
  143. var status_id = $(data.elem).val();
  144. var status_res = $(data.elem).attr('res');
  145. layer.confirm('您确定要修改当前状态吗?',{btn:['确认','取消']},function(index){
  146. editMenuStatus(status_id,status_res)
  147. table.reload('tablerReload');
  148. layer.close(index)
  149. },function(index){
  150. table.reload('tablerReload');
  151. layer.close(index)
  152. })
  153. return false;
  154. });
  155. $('.demoTable .layui-btn').on('click', function(){
  156. var type = $(this).data('type');
  157. active[type] ? active[type].call(this) : '';
  158. });
  159. form.on('submit(editMenu)', function(data){
  160. $.post('/menu/editfrom',{'data':data.field},function (data) {
  161. if(data.code == 200)
  162. {
  163. layer.msg('修改成功');
  164. setTimeout(function () {
  165. var index = parent.layer.getFrameIndex(window.name);
  166. parent.layer.close(index);
  167. parent.layui.table.reload('menulist');
  168. },1000)
  169. } else if(data.code == 300 ) {
  170. layer.msg('修改失败');
  171. }
  172. })
  173. return false;
  174. });
  175. form.on('submit(addmenu)', function(data){
  176. $.post('/menu/createfrom',{'data':data.field},function (data) {
  177. if(data.code == 200)
  178. {
  179. layer.msg('修改成功');
  180. parent.layui.table.reload('menulist');
  181. TableClose();
  182. } else if(data.code == 300 ) {
  183. layer.msg('修改失败');
  184. }
  185. })
  186. return false;
  187. });
  188. //修改菜单状态
  189. function editMenuStatus(id,res){
  190. $.post("/menu/menustatus",{menuid: id,res:res},function(res){
  191. if(res.code == 200 ){
  192. layer.msg('修改成功');
  193. renderTable();
  194. }else{
  195. layer.msg('网络延时');
  196. }
  197. },'json')
  198. }
  199. //排序
  200. table.on('edit(menulist)', function(obj){
  201. var data = obj.data;
  202. $.post('/menu/menusortedit',{id:data.id,sort:data.sort},function (data) {
  203. if(data.code == 200)
  204. {
  205. layer.msg(data.msg);
  206. } else if(data.code == 300 ) {
  207. layer.msg(data.msg);
  208. }
  209. })
  210. })
  211. });