Menu.php 6.9 KB

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