123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- <?php
- namespace app\admin\controller;
- use app\admin\model\AdminMenu;
- use think\App;
- use think\facade\Validate;
- class Menu extends Base{
- protected $noLogin=[
- "GetMenuAction" ,
- ];
- public function __construct(App $app) {
- parent::__construct($app);
- $this->model=new AdminMenu();
- }
- //获取菜单
- public function list(){
- $param = $this->request->param(["relaComNo"=>"","level"=>""],"post","trim");
- $condition = [
- ['status','=',1],
- ['is_display','=',1],
- ['is_del','=',0]
- ];
- $action = \app\admin\model\UserRole::getAllAction($this->uid,$param['relaComNo'],$this->level);
- if(isset($param['level']) && $param['level'] !== '') $condition[] = ['level','in',[0,$param['level']]];
- else {
- if($this->level == 1) $condition[] = ['level','in',[0,1,2]];
- else $condition[] = ['level','in',[0,$this->level]];
- }
- $list=$this->model->GetMenuByActionArr($action,$condition);
- return success("获取成功",$list);
- }
- //创建\编辑菜单
- public function create(){
- $param=$this->request->param(['name'=>'','url'=>'','route'=>'','pid'=>'','level'=>'','img'=>'','is_display'=>'',
- 'weight'=>'','private'=>'','id'=>0],'post','trim');
- $valid = Validate::rule([
- 'name|菜单名称'=>'require|max:255',
- 'url|菜单路由'=>'max:255',
- 'route|菜单地址'=>'max:255',
- 'pid|父级id'=>'require|number|egt:0',
- 'id|菜单id'=>'number|egt:0',
- 'level|菜单等级'=>'require|number|egt:0',
- 'is_display|菜单是否显示'=>'require|number|in:0,1',
- 'weight|菜单排序权重'=>'require|number',
- 'private|菜单是否私有'=>'require|number|in:0,1',
- 'img|菜单图标'=>'max:255',
- ]);
- if(!$valid->check($param)) return error($valid->getError());
- $menu=$this->model->findOrEmpty($param['id']);
- if($param['id']>0){
- if($menu->isEmpty()) return error('菜单不存在');
- }
- $menu->menu_name = $param['name'];
- $menu->menu_url = $param['url'];
- $menu->menu_route = $param['route'];
- $menu->menu_img = $param['img'];
- $menu->pid = $param['pid'];
- $menu->is_display = $param['is_display'];
- $menu->is_private = $param['private'];
- $menu->level = $param['level'];
- $menu->weight = $param['weight'];
- // $menu->menu_api = $param['menu_api'];
- $save= $menu->save();
- if($save==false) return error('保存失败');
- return success('保存成功');
- }
- //状态
- public function status(){
- $param=$this->request->param(['id'=>0,'status'=>1],'post','trim');
- $valid = Validate::rule([
- 'id|菜单id'=>'require|number|gt:0',
- 'status|状态'=>'require|number|in:0,1',
- ]);
- if(!$valid->check($param)) return error($valid->getError());
- $menu=$this->model->findOrEmpty($param['id']);
- if($menu->isEmpty()) return error('菜单不存在');
- $menu->status = $param['status'];
- $save= $menu->save();
- if($save==false) return error('保存失败');
- return success('保存成功');
- }
- /**
- * @param id 菜单id
- */
- public function delete(){
- $param=$this->request->param(['id'=>0],'post','trim');
- $valid = Validate::rule([
- 'id|菜单id'=>'require|number|gt:0',
- ]);
- if(!$valid->check($param)) return error($valid->getError());
- $menu=$this->model->findOrEmpty($param['id']);
- if($menu->isEmpty()) return error('菜单不存在');
- $menu->is_del = 1;
- $save= $menu->save();
- if($save==false) return error('删除失败');
- return success('删除成功');
- }
- /**@param level 菜单等级
- * @return \think\Response|\think\response\Json
- */
- public function GetMenuAction(){
- $param = $this->request->param(["level"=>""],"post","trim");
- $list=$this->model->GetMenuActionTree(0,$param['level']);
- return success('获取成功',$list);
- }
- /**
- * @param menuid 菜单id
- * @param action_code action_code 权限code
- */
- public function createMenuAction(){
- $param=$this->request->param(['menuid'=>0,'action_code'=>'',"id"=>"",'status'=>1,"is_del"=>0],'post','trim');
- $valid = Validate::rule([
- 'menuid|菜单id'=>'require|number|gt:0',
- 'action_code|权限code'=>'require|max:255|unique:app\admin\model\Action,action_code^menuid^is_del',
- 'status|状态'=>'number|in:0,1',
- ]);
- if(!$valid->check($param)) return error($valid->getError());
- $menu=$this->model->findOrEmpty($param['menuid']);
- if($menu->isEmpty()) return error('菜单不存在');
- $action=(new \app\admin\model\Action())->findOrEmpty($param['id']);
- $action->menuid = $param['menuid'];
- $action->action_code = $param['action_code'];
- $action->status = $param['status'];
- $save= $action->save();
- if($save==false) return error('保存失败');
- return success('保存成功');
- }
- public function deleteMenuAction(){
- $param=$this->request->param(['id'=>0],'post','trim');
- $valid = Validate::rule([
- 'id|菜单功能id'=>'require|number|gt:0',
- ]);
- if(!$valid->check($param)) return error($valid->getError());
- $action=new \app\admin\model\Action();
- $action=$action->findOrEmpty($param['id']);
- if($action->isEmpty()) return error('权限不存在');
- $action->is_del = 1;
- $save= $action->save();
- if($save==false) return error('删除失败');
- return success('删除成功');
- }
- /**@param id 菜单功能id
- * @param status 状态
- * @return \think\Response|\think\response\Json|void
- */
- public function statusMenuAction(){
- $param=$this->request->param(['id'=>0,'status'=>1],'post','trim');
- $valid = Validate::rule([
- 'id|菜单功能id'=>'require|number|gt:0',
- 'status|状态'=>'require|number|in:0,1',
- ]);
- if(!$valid->check($param)) return error($valid->getError());
- $action=new \app\admin\model\Action();
- $action=$action->findOrEmpty($param['id']);
- if($action->isEmpty()) return error('权限不存在');
- $action->status = $param['status'];
- $save= $action->save();
- if($save==false) return error('保存失败');
- return success('保存成功');
- }
- /**
- * @param menuid 菜单id
- * @return \think\Response|\think\response\Json|void
- */
- public function menuActionList(){
- $param=$this->request->param(['id'=>0],'post','trim');
- $valid = Validate::rule([
- 'id|菜单id'=>'require|number|gt:0',
- ]);
- if(!$valid->check($param)) return error($valid->getError());
- $action=new \app\admin\model\Action();
- $list=$action->with(["ActionInfo","MenuInfo"])->where(['menuid'=>$param['id'],'is_del'=>0])->select();
- return success('获取成功',$list);
- }
- }
|