# :-: 第一步控制器代码 ~~~ //引入 权限列表 public function index(\app\admin\model\Privileges $privileges) { $privileges = $privileges->privilegestrey(); return view('',compact('privileges')); } ~~~ # :-: 第二步首页展示代码 ~~~ {include file='common/father_css'/} <body class="gray-bg"> <div class="wrapper wrapper-content animated fadeInRight"> <div class="row"> <div class="col-sm-12"> <div class="ibox float-e-margins"> <div class="ibox-title"> <h5>权限列表</h5> <div class="ibox-tools" style="margin-top: -5px!important;"> <a href="{:url('admin/privileges/add')}"> <button class="btn btn-danger btn-sm">添加新权限</button></a> </div> </div> <div class="ibox-content"> <div class="table-responsive"> <form name="myform" id="myform" method="post"> <table class="table table-striped"> <thead> <tr> <th>id</th> <th>权限名称</th> <th>权限模块</th> <th>权限控制器</th> <th>权限方法</th> <th>创建时间</th> <th>操作</th> </tr> </thead> <tbody> {foreach $privileges as $v} <tr> <td> {$v['id']} </td> <td> {if condition = "$v['level'] neq 0 "}&nbsp|{/if} <?php echo str_repeat('&nbsp&nbsp&nbsp-', $v['level']*4);?> {$v['p_name']}</td> <td>{$v['m_name']}</td> <td>{$v['c_name']}</td> <td>{$v['a_name']}</td> <td>{$v['create_time']}</td> <td> <div class="layui-table-cell laytable-cell-1-0-10"> <a class="layui-btn layui-btn-xs" lay-event="edit" href="{:url('admin/privileges/edit',['id'=>$v['id']])}">编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" onclick="del({$v.id})">删除</a> </div> </td> </tr> {/foreach} </tbody> </table> </form> </div> </div> </div> </div> </div> </div> <!-- 全局js --> <script> function del(id) { swal({ title: "确定删除吗?", text: "你将无法回复该用户,点击空白区,取消选框", type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "确定删除!", cancelButtonText: "取消删除!", closeOnConfirm: false, closeOnCancel: false }).then( function(isConfirm){ if (isConfirm) { //或者id ,传递给后台 window.location.href = "/admin/privileges/delete/id/"+id } else { swal("取消!", "你的用户删除结束)", "error"); } }); } </script> </body> </html> ~~~ # :-: 第一步 添加页面代码 ~~~ //权限列表添加 public function add(\app\admin\model\Privileges $privileges) { $privileges = $privileges->privilegestrey(); return view('',compact('privileges')); } //权限列表处理 public function addSave(\app\admin\validate\Privileges $privileges,Request $request) { $data = $request->param(); if (\think\facade\Request::isPost()){ $info = $privileges->check($data); if ($info){ $relus = model('privileges')->save($data); if ($relus){ return $this->success('权限添加成功','/admin/privileges/index'); } } else{ return $this->error($privileges->getError()); } } } //模型里面递归重置数据 //获得排序 public function privilegestrey(){ //获得栏目所有数据 $data = Privileges::all(); //把获得栏目的数据放到下面处理 return $this->sort($data); } //递归处理排序 public function sort($data,$pid =0,$level = 0){ //定义一个静态数组 static $arr = []; foreach($data as $v){ if ($pid == $v['pid']){ $v['level']=$level; $arr[] = $v; $this->sort($data,$v['id'],$level+1); } } //获得一级id return $arr; } ~~~ # :-: 第二步添加页面Html 代码 ~~~ {include file='common/father_css'/} <body class="gray-bg"> <div class="wrapper wrapper-content"> <div class="col-sm-12"> <div class="ibox float-e-margins"> <div class="ibox-title"> <h5>权限名称 <small class="text-danger">注意:权限名称不能重复,也不能为空</small> </h5> </div> <div class="ibox-content"> <form method="post" class="form-horizontal layui-form" id="register" action="{:url('admin/privileges/addSave')}"> <div class="form-group"> <label class="col-sm-2 control-label text-danger">*权限名称</label> <div class="col-sm-10"> <input type="text" value="" name="p_name" class="form-control" required placeholder="权限名称必须为中文"> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> <label class="col-sm-2 control-label text-danger">*权限模块</label> <div class="col-sm-10"> <input type="text" value="" name="m_name" class="form-control" required placeholder="必须为英文"> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> <label class="col-sm-2 control-label text-danger">*权限控制器</label> <div class="col-sm-10"> <input type="text" value="" name="c_name" class="form-control" required placeholder="必须为英文"> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> <label class="col-sm-2 control-label text-danger">*权限方法</label> <div class="col-sm-10"> <input type="text" value="" name="a_name" class="form-control" required placeholder="必须为英文"> </div> </div> <div class="hr-line-dashed"></div> <div class="layui-form-item form-group"> <label class="col-sm-2 control-label">权限分类</label> <div class=" col-sm-10"> <select name="pid" lay-filter="aihao"> <option value="0">顶级栏目</option> {foreach $privileges as $v} <option value="{$v->id}"> {if condition = "$v['level'] neq 0 "}&nbsp|{/if} <?php echo str_repeat('&nbsp&nbsp&nbsp-', $v['level']*4);?> {$v->p_name} </option> {/foreach} </select> <div class="layui-unselect layui-form-select"> <div class="layui-select-title"> <input type="text" placeholder="请选择" value="顶级栏目" readonly="" class="layui-input layui-unselect"> <i class="layui-edge"></i> </div> <dl class="layui-anim layui-anim-upbit">< <dd lay-value="0" class="layui-this">顶级栏目</dd> {foreach privileges as $v} <dd lay-value="{$v->id}" class="">{$v->p_name}</dd> {/foreach } </dl> </div> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> <div class="col-sm-4 col-sm-offset-2"> <button class="btn btn-primary layui-btn-radius" type="submit">添加权限</button> </div> </div> </form> </div> </div> </div> </div> <script> layui.use('upload', function () { var $ = layui.jquery , upload = layui.upload; //拖拽上传 upload.render({ elem: '#test10' , url: '/admin/category/imgUpload' , data: {} //,drag:true //是否接受拖拽的文件上传,设置 false 可禁用。不支持ie8/9 //上传成功之后的回调 , done: function (res) { let {code, data, msd} = res if (code == 0) { $('#test10').html(`<img src = "${data['src']}" width="50px" height="50px"> <input name="pic" type="hidden" value="${data['src']}"/>`) } else { swal({ text: res.message, icon: "warning", button: false }); } } }); }); layui.use('layedit', function () { var layedit = layui.layedit; layedit.build('demo', { //tool: ['left', 'center', 'right', '|', 'face'],//自定义 tollbar height: 180 //设置编辑器高度 , uploadImage: { url: "/admin/category/imgUpload", type: 'post' } }); }); //表单清空 </script> </body> </html> ~~~ # :-: 第一步修改页面代码 ~~~ public function edit($id,\app\admin\model\Privileges $privileges) { $privilegesd = $privileges->privilegestrey(); //清除自身 $privileges = $privileges->unset_edit($privilegesd,$id); //获取就数据 $privilege = \app\admin\model\Privileges::where('id',$id)->find(); return view('',compact('privileges','privilege')); } //权限列表修改页面数据处理 public function update(Request $request) { $data = $request->param(); $id = $request->param('id'); $info = model('privileges')->where('id',$id)->data($data)->update(); if ($info){ $this->success('修改成功','/admin/privileges/index'); } } //删除自身 给修改用 写在模型当中 public function unset_edit($privilegesd,$id) { static $privilegs = []; foreach($privilegesd as $v){ if ($v['id'] != $id){ $privilegs[] = $v; } } return $privilegs; } ~~~ # :-: 第二步修改页面处理 ~~~ {include file='common/father_css'/} <body class="gray-bg"> <div class="wrapper wrapper-content"> <div class="col-sm-12"> <div class="ibox float-e-margins"> <div class="ibox-title"> <h5>权限名称 <small class="text-danger">注意:权限名称不能重复,也不能为空</small> </h5> </div> <div class="ibox-content"> <form method="post" class="form-horizontal layui-form" id="register" action="{:url('admin/privileges/update')}"> <div class="form-group"> <label class="col-sm-2 control-label text-danger">*权限名称</label> <div class="col-sm-10"> <input type="text" value="{$privilege.p_name}" name="p_name" class="form-control" required placeholder="权限名称必须为中文"> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> <label class="col-sm-2 control-label text-danger">*权限模块</label> <div class="col-sm-10"> <input type="text" value="{$privilege.m_name}" name="m_name" class="form-control" required placeholder="必须为英文"> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> <label class="col-sm-2 control-label text-danger">*权限控制器</label> <div class="col-sm-10"> <input type="text" value="{$privilege.c_name}" name="c_name" class="form-control" required placeholder="必须为英文"> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> <label class="col-sm-2 control-label text-danger">*权限方法</label> <div class="col-sm-10"> <input type="text" value="{$privilege.a_name}" name="a_name" class="form-control" required placeholder="必须为英文"> </div> </div> <div class="hr-line-dashed"></div> <div class="layui-form-item form-group"> <label class="col-sm-2 control-label">权限分类</label> <div class=" col-sm-10"> <select name="pid" lay-filter="aihao"> <option value="0">顶级栏目</option> {foreach $privileges as $v} <option value="{$v->id}" {eq name="$privilege->pid" value="$v->id"} selected {/eq} > {if condition = "$v['level'] neq 0 "}&nbsp|{/if} <?php echo str_repeat('&nbsp&nbsp&nbsp-', $v['level']*4);?> {$v->p_name} </option> {/foreach} </select> <div class="layui-unselect layui-form-select"> <div class="layui-select-title"> <input type="text" placeholder="请选择" value="顶级栏目" readonly="" class="layui-input layui-unselect"> <i class="layui-edge"></i> </div> <dl class="layui-anim layui-anim-upbit">< <dd lay-value="0" class="layui-this" >顶级栏目</dd> {foreach privileges as $v} <dd lay-value="{$v->id}" class="">{$v->p_name}</dd> {/foreach } </dl> </div> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> <div class="col-sm-4 col-sm-offset-2"> <button class="btn btn-primary layui-btn-radius" type="submit">权限修改</button> </div> </div> </form> </div> </div> </div> </div> </body> </html> <script> layui.use('layedit', function(){ var layedit = layui.layedit; layedit.build('demo', { //tool: ['left', 'center', 'right', '|', 'face'],//自定义 tollbar height: 180 //设置编辑器高度 , uploadImage: { url: "/admin/category/imgUpload", type: 'post' } }); }); //表单清空 </script> ~~~ # :-: 第一步删除代码 ~~~ //权限列表删除 public function delete($id) { $info = \app\admin\model\Privileges::destroy($id); if($info){ return $this->success('删除成功','/admin/privileges/index'); } } ~~~