abstract:<?php namespace app\admins\controller; use think\Controller; use Util\SysDb; class Menu extends Base{ public function index(){ $pid = (int)inpu
<?php namespace app\admins\controller; use think\Controller; use Util\SysDb; class Menu extends Base{ public function index(){ $pid = (int)input('get.pid'); $where['pid'] = $pid; // 加载菜单列表 $data['lists'] = $this->db->table('admin_menus')->where($where)->lists(); $data['pid'] = $pid; // 子菜单 if($pid>0){ $parent = $this->db->table('admin_menus')->where(array('mid'=>$pid))->item(); $data['backid'] = $parent['pid']; } return $this->fetch('',$data); } // 添加、编辑菜单 public function add(){ $pid = (int)input('get.pid'); $mid = (int)input('get.mid'); $data['parent_menu'] = $this->db->table('admin_menus')->where(array('mid'=>$pid))->item(); $data['menu'] = $this->db->table('admin_menus')->where(array('mid'=>$mid))->item(); return $this->fetch('',$data); } // 保存菜单 public function save(){ $mid = (int)input('post.mid'); $data['pid'] = (int)input('post.pid'); $data['title'] = trim(input('post.title')); $data['controller'] = trim(input('post.controller')); $data['method'] = trim(input('post.method')); $data['ord'] = (int)input('post.ord'); $data['ishidden'] = (int)input('post.ishidden'); $data['status'] = (int)input('post.status'); if($data['title'] == ''){ exit(json_encode(array('code'=>1,'msg'=>'菜单名称不能为空'))); } if($data['pid']>0 && $data['controller'] == ''){ exit(json_encode(array('code'=>1,'msg'=>'控制器名称不能为空'))); } if($data['pid']>0 && $data['method'] == ''){ exit(json_encode(array('code'=>1,'msg'=>'方法名称不能为空'))); } if($mid){ $res = $this->db->table('admin_menus')->where(array('mid'=>$mid))->update($data); }else{ $res = $this->db->table('admin_menus')->insert($data); } if(!$res){ exit(json_encode(array('code'=>1,'msg'=>'保存失败'))); } exit(json_encode(array('code'=>0,'msg'=>'保存成功'))); } // 删除菜单 public function delete(){ $mid = (int)input('post.mid'); $res = $this->db->table('admin_menus')->where(array('mid'=>$mid))->delete(); if(!$res){ exit(json_encode(array('code'=>1,'msg'=>'删除失败'))); } exit(json_encode(array('code'=>0,'msg'=>'删除成功'))); } }
<!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="/static/plugins/layui/css/layui.css"> <script type="text/javascript" src="/static/plugins/layui/layui.js"></script> <style type="text/css"> .header span{background: #009688;margin-left: 30px;padding: 10px;color: #ffffff;} .header button{float: right;margin-top: -5px;} .header div{border-bottom: solid 2px #009688;margin-top: 8px;} </style> </head> <body style="padding: 10px;"> <input type="hidden" id="pid" value="{$pid}"> <div class="header"> <span>菜单列表</span> <button class="layui-btn layui-btn-sm" onclick="add()">添加</button> <div></div> </div> <?php if($pid>0){?> <button class="layui-btn layui-btn-primary layui-btn-sm" style="float: right;margin-top: 5px;margin-bottom: 5px;" onclick="backs({$backid})">返回上级菜单</button> <?php }?> <table class="layui-table"> <thead> <tr> <th>ID</th> <th>排序</th> <th>菜单名称</th> <th>控制器</th> <th>方法</th> <th>是否隐藏</th> <th>状态</th> <th>操作</th> </tr> </thead> <tbody> {volist name='$lists' id="vo"} <tr> <td>{$vo.mid}</td> <td>{$vo.ord}</td> <td>{$vo.title}</td> <td>{$vo.controller}</td> <td>{$vo.method}</td> <td>{$vo.ishidden==1?'隐藏':'显示'}</td> <td>{$vo.status==1?'禁用':'正常'}</td> <td> <button class="layui-btn layui-btn-xs" onclick="childs({$vo.mid})">子菜单</button> <button class="layui-btn layui-btn-warm layui-btn-xs" onclick="add({$vo.mid})">编辑</button> <button class="layui-btn layui-btn-danger layui-btn-xs" onclick="del({$vo.mid})">删除</button> </td> </tr> {/volist} </tbody> </table> </body> </html> <script type="text/javascript"> layui.use(['layer'],function(){ layer = layui.layer; $ = layui.jquery; }); // 添加 function add(mid){ var pid = $('#pid').val(); layer.open({ type:2, title:mid>0?'编辑菜单':'添加菜单', shade:0.3, area:['480px','420px'], content:'/index.php/admins/menu/add?mid='+mid+'&pid='+pid }); } // 删除 function del(mid){ layer.confirm('确定要删除吗?',{ icon:3, btn:['确定','取消'] },function(){ $.post('/index.php/admins/menu/delete',{'mid':mid},function(res){ if(res.code>0){ layer.alert(res.msg,{'icon':2}); }else{ layer.msg(res.msg,{'icon':1}); setTimeout(function(){window.location.reload();},1000); } },'json'); }); } // 子菜单 function childs(mid){ window.location.href = '?pid='+mid; } // 返回上级菜单 function backs(pid){ window.location.href = '?pid='+pid; } </script>
<!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="/static/plugins/layui/css/layui.css"> <script type="text/javascript" src="/static/plugins/layui/layui.js"></script> </head> <body style="padding: 10px;"> <form class="layui-form"> <!-- 编辑需要隐藏的id; --> <input type="hidden" name="pid" value="{$parent_menu.mid}"> <input type="hidden" name="mid" value="{$menu.mid}"> <?php if($parent_menu){?> <div class="layui-form-item"> <label class="layui-form-label"><span style="color: green;">上级菜单</span></label> <div class="layui-input-inline"> <input type="text" class="layui-input" disabled="true" style="color: green;" value="{$parent_menu.title}"> </div> </div> <?php }?> <div class="layui-form-item"> <label class="layui-form-label">菜单名称</label> <div class="layui-input-inline"> <input type="text" class="layui-input" name="title" value="{$menu.title}"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">排序</label> <div class="layui-input-inline"> <input type="text" class="layui-input" name="ord" value="{$menu.ord}"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">控制器</label> <div class="layui-input-inline"> <input type="text" class="layui-input" name="controller" value="{$menu.controller}"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">方法</label> <div class="layui-input-inline"> <input type="text" class="layui-input" name="method" value="{$menu.method}"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">状态</label> <div class="layui-input-inline"> <input type="checkbox" name="ishidden" lay-skin="primary" title="是否隐藏" value="1" {$menu.ishidden==1?'checked':''}> <input type="checkbox" name="status" lay-skin="primary" title="是否禁用" value="1" {$menu.status==1?'checked':''}> </div> </div> </form> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" onclick="save()">保存</button> </div> </div> </body> </html> <script type="text/javascript"> layui.use(['layer','form'],function(){ var form = layui.form; layer = layui.layer; $ = layui.jquery; }); function save(){ var pid = parseInt($('input[name="pid"]').val()); var title = $.trim($('input[name="title"]').val()); var controller = $.trim($('input[name="controller"]').val()); var method = $.trim($('input[name="method"]').val()); if(title==''){ layer.alert('请输入菜单名称',{'icon':2}); return; } if(pid>0 && controller==''){ layer.alert('请输入控制器',{'icon':2}); return; } if(pid>0 && method==''){ layer.alert('请输入方法名称',{'icon':2}); return; } $.post('/index.php/admins/menu/save',$('form').serialize(),function(res){ if(res.code>0){ layer.alert(res.msg,{'icon':2}); }else{ layer.msg(res.msg,{'icon':1}); setTimeout(function(){parent.window.location.reload();},1000); } },'json'); } </script>
Correcting teacher:查无此人Correction time:2019-06-10 09:16:17
Teacher's summary:完成的不错,后台cms管理系统,最重要的就是权限。继续加油。