Menu.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\model\AdminMenu;
  4. use think\App;
  5. use think\facade\Validate;
  6. class Menu extends Base{
  7. protected $noLogin=[
  8. "GetMenuAction" ,
  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'=>'','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. /**
  82. * @param id 菜单id
  83. */
  84. public function delete(){
  85. $param=$this->request->param(['id'=>0],'post','trim');
  86. $valid = Validate::rule([
  87. 'id|菜单id'=>'require|number|gt:0',
  88. ]);
  89. if(!$valid->check($param)) return error($valid->getError());
  90. $menu=$this->model->findOrEmpty($param['id']);
  91. if($menu->isEmpty()) return error('菜单不存在');
  92. $menu->is_del = 1;
  93. $save= $menu->save();
  94. if($save==false) return error('删除失败');
  95. return success('删除成功');
  96. }
  97. /**@param level 菜单等级
  98. * @return \think\Response|\think\response\Json
  99. */
  100. public function GetMenuAction(){
  101. $param = $this->request->param(["level"=>""],"post","trim");
  102. $list=$this->model->GetMenuActionTree(0,$param['level']);
  103. return success('获取成功',$list);
  104. }
  105. /**
  106. * @param menuid 菜单id
  107. * @param action_code action_code 权限code
  108. */
  109. public function createMenuAction(){
  110. $param=$this->request->param(['menuid'=>0,'action_code'=>'',"id"=>"",'status'=>1,"is_del"=>0],'post','trim');
  111. $valid = Validate::rule([
  112. 'menuid|菜单id'=>'require|number|gt:0',
  113. 'action_code|权限code'=>'require|max:255|unique:app\admin\model\Action,action_code^menuid^is_del',
  114. 'status|状态'=>'number|in:0,1',
  115. ]);
  116. if(!$valid->check($param)) return error($valid->getError());
  117. $menu=$this->model->findOrEmpty($param['menuid']);
  118. if($menu->isEmpty()) return error('菜单不存在');
  119. $action=(new \app\admin\model\Action())->findOrEmpty($param['id']);
  120. $action->menuid = $param['menuid'];
  121. $action->action_code = $param['action_code'];
  122. $action->status = $param['status'];
  123. $save= $action->save();
  124. if($save==false) return error('保存失败');
  125. return success('保存成功');
  126. }
  127. public function deleteMenuAction(){
  128. $param=$this->request->param(['id'=>0],'post','trim');
  129. $valid = Validate::rule([
  130. 'id|菜单功能id'=>'require|number|gt:0',
  131. ]);
  132. if(!$valid->check($param)) return error($valid->getError());
  133. $action=new \app\admin\model\Action();
  134. $action=$action->findOrEmpty($param['id']);
  135. if($action->isEmpty()) return error('权限不存在');
  136. $action->is_del = 1;
  137. $save= $action->save();
  138. if($save==false) return error('删除失败');
  139. return success('删除成功');
  140. }
  141. /**@param id 菜单功能id
  142. * @param status 状态
  143. * @return \think\Response|\think\response\Json|void
  144. */
  145. public function statusMenuAction(){
  146. $param=$this->request->param(['id'=>0,'status'=>1],'post','trim');
  147. $valid = Validate::rule([
  148. 'id|菜单功能id'=>'require|number|gt:0',
  149. 'status|状态'=>'require|number|in:0,1',
  150. ]);
  151. if(!$valid->check($param)) return error($valid->getError());
  152. $action=new \app\admin\model\Action();
  153. $action=$action->findOrEmpty($param['id']);
  154. if($action->isEmpty()) return error('权限不存在');
  155. $action->status = $param['status'];
  156. $save= $action->save();
  157. if($save==false) return error('保存失败');
  158. return success('保存成功');
  159. }
  160. /**
  161. * @param menuid 菜单id
  162. * @return \think\Response|\think\response\Json|void
  163. */
  164. public function menuActionList(){
  165. $param=$this->request->param(['id'=>0],'post','trim');
  166. $valid = Validate::rule([
  167. 'id|菜单id'=>'require|number|gt:0',
  168. ]);
  169. if(!$valid->check($param)) return error($valid->getError());
  170. $action=new \app\admin\model\Action();
  171. $list=$action->with(["ActionInfo","MenuInfo"])->where(['menuid'=>$param['id'],'is_del'=>0])->select();
  172. return success('获取成功',$list);
  173. }
  174. }