智慧教务系统
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

<?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([], '设置成功');
}
}