You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
4.2 KiB
172 lines
4.2 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Niucloud-admin 企业快速开发的多应用管理平台
|
|
// +----------------------------------------------------------------------
|
|
// | 官方网址:https://www.niucloud.com
|
|
// +----------------------------------------------------------------------
|
|
// | niucloud团队 版权所有 开源版本可自由商用
|
|
// +----------------------------------------------------------------------
|
|
// | Author: Niucloud Team
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\adminapi\controller\sys;
|
|
|
|
use app\service\admin\sys\SysMenuService;
|
|
use core\base\BaseAdminController;
|
|
use think\Response;
|
|
|
|
/**
|
|
* 系统菜单管理控制器
|
|
*/
|
|
class SysMenu extends BaseAdminController
|
|
{
|
|
/**
|
|
* 获取菜单列表
|
|
* @return Response
|
|
*/
|
|
public function lists()
|
|
{
|
|
$data = $this->request->params([
|
|
['keyword', ''],
|
|
['status', ''],
|
|
['page', 1],
|
|
['limit', 20]
|
|
]);
|
|
|
|
$service = new SysMenuService();
|
|
return success($service->getPage($data));
|
|
}
|
|
|
|
/**
|
|
* 获取菜单详情
|
|
* @param int $id
|
|
* @return Response
|
|
*/
|
|
public function info(int $id)
|
|
{
|
|
$service = new SysMenuService();
|
|
return success($service->getInfo($id));
|
|
}
|
|
|
|
/**
|
|
* 添加菜单
|
|
* @return Response
|
|
*/
|
|
public function add()
|
|
{
|
|
$data = $this->request->params([
|
|
['menu_key', ''],
|
|
['menu_name', ''],
|
|
['menu_icon', ''],
|
|
['menu_path', ''],
|
|
['menu_params', ''],
|
|
['sort_order', 0],
|
|
['status', 1],
|
|
['description', '']
|
|
]);
|
|
|
|
$this->validate($data, [
|
|
'menu_key' => 'require|unique:sys_menus',
|
|
'menu_name' => 'require',
|
|
'menu_path' => 'require'
|
|
]);
|
|
|
|
$service = new SysMenuService();
|
|
$id = $service->add($data);
|
|
return success(['id' => $id], '添加成功');
|
|
}
|
|
|
|
/**
|
|
* 编辑菜单
|
|
* @param int $id
|
|
* @return Response
|
|
*/
|
|
public function edit(int $id)
|
|
{
|
|
$data = $this->request->params([
|
|
['menu_key', ''],
|
|
['menu_name', ''],
|
|
['menu_icon', ''],
|
|
['menu_path', ''],
|
|
['menu_params', ''],
|
|
['sort_order', 0],
|
|
['status', 1],
|
|
['description', '']
|
|
]);
|
|
|
|
$this->validate($data, [
|
|
'menu_key' => 'require',
|
|
'menu_name' => 'require',
|
|
'menu_path' => 'require'
|
|
]);
|
|
|
|
$service = new SysMenuService();
|
|
$service->edit($id, $data);
|
|
return success([], '编辑成功');
|
|
}
|
|
|
|
/**
|
|
* 删除菜单
|
|
* @param int $id
|
|
* @return Response
|
|
*/
|
|
public function del(int $id)
|
|
{
|
|
$service = new SysMenuService();
|
|
$service->del($id);
|
|
return success([], '删除成功');
|
|
}
|
|
|
|
/**
|
|
* 修改菜单状态
|
|
* @param int $id
|
|
* @return Response
|
|
*/
|
|
public function modifyStatus(int $id)
|
|
{
|
|
$data = $this->request->params([
|
|
['status', 1]
|
|
]);
|
|
|
|
$service = new SysMenuService();
|
|
$service->modifyStatus($id, $data['status']);
|
|
return success([], '操作成功');
|
|
}
|
|
|
|
/**
|
|
* 获取所有菜单(用于角色权限配置)
|
|
* @return Response
|
|
*/
|
|
public function getAllMenus()
|
|
{
|
|
$service = new SysMenuService();
|
|
return success($service->getAllMenus());
|
|
}
|
|
|
|
/**
|
|
* 获取角色菜单权限
|
|
* @param int $roleId
|
|
* @return Response
|
|
*/
|
|
public function getRoleMenus(int $roleId)
|
|
{
|
|
$service = new SysMenuService();
|
|
return success($service->getRoleMenus($roleId));
|
|
}
|
|
|
|
/**
|
|
* 设置角色菜单权限
|
|
* @param int $roleId
|
|
* @return Response
|
|
*/
|
|
public function setRoleMenus(int $roleId)
|
|
{
|
|
$data = $this->request->params([
|
|
['menu_ids', []]
|
|
]);
|
|
|
|
$service = new SysMenuService();
|
|
$service->setRoleMenus($roleId, $data['menu_ids']);
|
|
return success([], '设置成功');
|
|
}
|
|
}
|