Menu.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\model\AdminMenu;
  4. use think\App;use think\facade\Validate;
  5. class Menu extends Base{
  6. protected $noLogin=[
  7. "GetMenuAction" ,
  8. "*"//功能权限集合 工单调用
  9. ];
  10. public function __construct(App $app) {
  11. parent::__construct($app);
  12. $this->model=new AdminMenu();
  13. }
  14. //获取菜单
  15. public function list(){
  16. $param = $this->request->param(["relaComNo"=>"","level"=>""],"post","trim");
  17. $condition = [
  18. ['status','=',1],
  19. ['is_display','=',1],
  20. ['is_del','=',0]
  21. ];
  22. $action = \app\admin\model\UserRole::getAllAction($this->uid,$param['relaComNo'],$this->level);
  23. if(isset($param['level']) && $param['level'] !== '') $condition[] = ['level','in',[0,$param['level']]];
  24. else {
  25. if($this->level == 1) $condition[] = ['level','in',[0,1,2]];
  26. else $condition[] = ['level','in',[0,$this->level]];
  27. }
  28. $list=$this->model->GetMenuByActionArr($action,$condition);
  29. return success("获取成功",$list);
  30. }
  31. //创建\编辑菜单
  32. public function create(){
  33. $param=$this->request->param(['name'=>'','url'=>'','route'=>'','pid'=>'','level'=>'','img'=>'','is_display'=>'',
  34. 'weight'=>'','private'=>'','menu_api'=>'','id'=>0],'post','trim');
  35. $valid = Validate::rule([
  36. 'name|菜单名称'=>'require|max:255',
  37. 'url|菜单路由'=>'max:255',
  38. 'route|菜单地址'=>'max:255',
  39. 'pid|父级id'=>'require|number|egt:0',
  40. 'id|菜单id'=>'number|egt:0',
  41. 'level|菜单路由'=>'require|number|egt:0',
  42. 'is_display|菜单是否显示'=>'require|number|in:0,1',
  43. 'weight|菜单排序权重'=>'require|number',
  44. 'private|菜单是否私有'=>'require|number|in:0,1',
  45. 'img|菜单图标'=>'max:255',
  46. ]);
  47. if(!$valid->check($param)) return error($valid->getError());
  48. $menu=$this->model->findOrEmpty($param['id']);
  49. if($param['id']>0){
  50. if($menu->isEmpty()) return error('菜单不存在');
  51. }
  52. $menu->menu_name = $param['name'];
  53. $menu->menu_url = $param['url'];
  54. $menu->menu_route = $param['route'];
  55. $menu->menu_img = $param['img'];
  56. $menu->pid = $param['pid'];
  57. $menu->is_display = $param['is_display'];
  58. $menu->is_private = $param['private'];
  59. $menu->level = $param['level'];
  60. $menu->weight = $param['weight'];
  61. $menu->menu_api = $param['menu_api'];
  62. $save= $menu->save();
  63. if($save==false) return error('保存失败');
  64. return success('保存成功');
  65. }
  66. //状态
  67. public function status(){
  68. $param=$this->request->param(['id'=>0,'status'=>1],'post','trim');
  69. $valid = Validate::rule([
  70. 'id|菜单id'=>'require|number|gt:0',
  71. 'status|状态'=>'require|number|in:0,1',
  72. ]);
  73. if(!$valid->check($param)) return error($valid->getError());
  74. $menu=$this->model->findOrEmpty($param['id']);
  75. if($menu->isEmpty()) return error('菜单不存在');
  76. $menu->status = $param['status'];
  77. $save= $menu->save();
  78. if($save==false) return error('保存失败');
  79. return success('保存成功');
  80. }
  81. public function delete(){
  82. $param=$this->request->param(['id'=>0],'post','trim');
  83. $valid = Validate::rule([
  84. 'id|菜单id'=>'require|number|gt:0',
  85. ]);
  86. if(!$valid->check($param)) return error($valid->getError());
  87. $menu=$this->model->findOrEmpty($param['id']);
  88. if($menu->isEmpty()) return error('菜单不存在');
  89. $menu->is_del = 1;
  90. $save= $menu->save();
  91. if($save==false) return error('删除失败');
  92. return success('删除成功');
  93. }
  94. public function GetMenuAction(){
  95. $param = $this->request->param(["level"=>""],"post","trim");
  96. $list=$this->model->GetMenuActionTree(0,$param['level']);
  97. return success('获取成功',$list);
  98. }
  99. /**
  100. * @param menuid 菜单id
  101. * @param action_code action_code 权限code
  102. */
  103. public function createMenuAction(){
  104. $param=$this->request->param(['menuid'=>0,'action_code'=>'','status'=>1],'post','trim');
  105. $valid = Validate::rule([
  106. 'menuid|菜单id'=>'require|number|gt:0',
  107. 'action_code|权限code'=>'require|max:255|unique:app\admin\model\Action,action_code^menu_id',
  108. 'status|状态'=>'number|in:0,1',
  109. ]);
  110. if(!$valid->check($param)) return error($valid->getError());
  111. $menu=$this->model->findOrEmpty($param['menuid']);
  112. if($menu->isEmpty()) return error('菜单不存在');
  113. $action=new \app\admin\model\Action();
  114. $action->menuid = $param['menuid'];
  115. $action->action_code = $param['action_code'];
  116. $action->status = $param['status'];
  117. $save= $action->save();
  118. if($save==false) return error('保存失败');
  119. return success('保存成功');
  120. }
  121. public function deleteMenuAction(){
  122. $param=$this->request->param(['action_id'=>0],'post','trim');
  123. $valid = Validate::rule([
  124. 'action_id|菜单功能id'=>'require|number|gt:0',
  125. ]);
  126. if(!$valid->check($param)) return error($valid->getError());
  127. $action=new \app\admin\model\Action();
  128. $action=$action->findOrEmpty($param['action_id']);
  129. if($action->isEmpty()) return error('权限不存在');
  130. $action->is_del = 1;
  131. $save= $action->save();
  132. if($save==false) return error('删除失败');
  133. return success('删除成功');
  134. }
  135. public function menuActionList(){
  136. $param=$this->request->param(['menuid'=>0],'post','trim');
  137. $valid = Validate::rule([
  138. 'menuid|菜单id'=>'require|number|gt:0',
  139. ]);
  140. if(!$valid->check($param)) return error($valid->getError());
  141. $action=new \app\admin\model\Action();
  142. $list=$action->with(["ActionInfo","MenuInfo"])->where(['menuid'=>$param['menuid'],'is_del'=>0])->select();
  143. return success('获取成功',$list);
  144. }
  145. }