first commit
This commit is contained in:
320
mock/role.ts
Normal file
320
mock/role.ts
Normal file
@@ -0,0 +1,320 @@
|
||||
import { Request, Response } from 'express';
|
||||
|
||||
// 模拟角色数据
|
||||
const roleList = [
|
||||
{
|
||||
id: '1',
|
||||
name: '超级管理员',
|
||||
description: '拥有系统所有权限',
|
||||
permissions: ['user_manage', 'role_manage', 'system_config', 'data_view'],
|
||||
status: 'active',
|
||||
createTime: '2024-01-01 10:00:00',
|
||||
updateTime: '2024-01-01 10:00:00',
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
name: '学院管理员',
|
||||
description: '管理学院相关事务',
|
||||
permissions: ['student_manage', 'staff_manage', 'data_view'],
|
||||
status: 'active',
|
||||
createTime: '2024-01-02 10:00:00',
|
||||
updateTime: '2024-01-02 10:00:00',
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
name: '教师',
|
||||
description: '教师角色,可查看学生信息',
|
||||
permissions: ['student_view', 'data_view'],
|
||||
status: 'active',
|
||||
createTime: '2024-01-03 10:00:00',
|
||||
updateTime: '2024-01-03 10:00:00',
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
name: '学生',
|
||||
description: '学生角色,基础权限',
|
||||
permissions: ['profile_view'],
|
||||
status: 'inactive',
|
||||
createTime: '2024-01-04 10:00:00',
|
||||
updateTime: '2024-01-04 10:00:00',
|
||||
},
|
||||
];
|
||||
|
||||
// 权限树数据
|
||||
const permissionTree = [
|
||||
{
|
||||
id: 'user_manage',
|
||||
name: '用户管理',
|
||||
code: 'user_manage',
|
||||
type: 'menu',
|
||||
children: [
|
||||
{
|
||||
id: 'student_manage',
|
||||
name: '学生管理',
|
||||
code: 'student_manage',
|
||||
type: 'menu',
|
||||
parentId: 'user_manage',
|
||||
},
|
||||
{
|
||||
id: 'staff_manage',
|
||||
name: '教职工管理',
|
||||
code: 'staff_manage',
|
||||
type: 'menu',
|
||||
parentId: 'user_manage',
|
||||
},
|
||||
{
|
||||
id: 'student_view',
|
||||
name: '学生查看',
|
||||
code: 'student_view',
|
||||
type: 'button',
|
||||
parentId: 'user_manage',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'role_manage',
|
||||
name: '角色管理',
|
||||
code: 'role_manage',
|
||||
type: 'menu',
|
||||
},
|
||||
{
|
||||
id: 'system_config',
|
||||
name: '系统配置',
|
||||
code: 'system_config',
|
||||
type: 'menu',
|
||||
children: [
|
||||
{
|
||||
id: 'banner_manage',
|
||||
name: '轮播图管理',
|
||||
code: 'banner_manage',
|
||||
type: 'menu',
|
||||
parentId: 'system_config',
|
||||
children: [
|
||||
{
|
||||
id: 'banner_add',
|
||||
name: '新增轮播图',
|
||||
code: 'banner_add',
|
||||
type: 'button',
|
||||
parentId: 'banner_manage',
|
||||
},
|
||||
{
|
||||
id: 'banner_edit',
|
||||
name: '编辑轮播图',
|
||||
code: 'banner_edit',
|
||||
type: 'button',
|
||||
parentId: 'banner_manage',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'security_config',
|
||||
name: '安全配置',
|
||||
code: 'security_config',
|
||||
type: 'menu',
|
||||
parentId: 'system_config',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'data_view',
|
||||
name: '数据查看',
|
||||
code: 'data_view',
|
||||
type: 'menu',
|
||||
},
|
||||
{
|
||||
id: 'profile_view',
|
||||
name: '个人信息查看',
|
||||
code: 'profile_view',
|
||||
type: 'button',
|
||||
},
|
||||
];
|
||||
|
||||
// 组织架构数据
|
||||
const organizationData = [
|
||||
{
|
||||
id: 'school_1',
|
||||
name: '学校管理',
|
||||
type: 'school',
|
||||
expanded: true,
|
||||
children: [
|
||||
{
|
||||
id: 'school_2',
|
||||
name: '学校管理',
|
||||
type: 'school',
|
||||
expanded: false,
|
||||
},
|
||||
{
|
||||
id: 'dept_1',
|
||||
name: '编辑',
|
||||
type: 'department',
|
||||
expanded: true,
|
||||
children: [
|
||||
{
|
||||
id: 'major_1',
|
||||
name: '批量导入',
|
||||
type: 'major',
|
||||
expanded: false,
|
||||
children: [
|
||||
{
|
||||
id: 'class_1',
|
||||
name: '批量导入',
|
||||
type: 'class',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'major_2',
|
||||
name: '新增',
|
||||
type: 'major',
|
||||
expanded: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'school_3',
|
||||
name: '角色管理',
|
||||
type: 'school',
|
||||
expanded: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
// 获取角色列表
|
||||
export default {
|
||||
'GET /api/admin/role': (req: Request, res: Response) => {
|
||||
const { page = 1, pageSize = 10, name } = req.query;
|
||||
|
||||
let filteredList = [...roleList];
|
||||
|
||||
// 按名称筛选
|
||||
if (name) {
|
||||
filteredList = filteredList.filter(item =>
|
||||
item.name.includes(name as string)
|
||||
);
|
||||
}
|
||||
|
||||
const start = (Number(page) - 1) * Number(pageSize);
|
||||
const end = start + Number(pageSize);
|
||||
const list = filteredList.slice(start, end);
|
||||
|
||||
res.json({
|
||||
code: 0,
|
||||
message: 'success',
|
||||
data: {
|
||||
list,
|
||||
total: filteredList.length,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
// 获取组织架构数据
|
||||
'GET /api/admin/organization': (req: Request, res: Response) => {
|
||||
res.json({
|
||||
code: 0,
|
||||
message: 'success',
|
||||
data: organizationData,
|
||||
});
|
||||
},
|
||||
|
||||
// 获取权限树
|
||||
'GET /api/admin/role/permissions': (req: Request, res: Response) => {
|
||||
res.json({
|
||||
code: 0,
|
||||
message: 'success',
|
||||
data: permissionTree,
|
||||
});
|
||||
},
|
||||
|
||||
// 创建角色
|
||||
'POST /api/admin/role/create': (req: Request, res: Response) => {
|
||||
const { name, description, permissions } = req.body;
|
||||
|
||||
const newRole = {
|
||||
id: String(Date.now()),
|
||||
name,
|
||||
description: description || '',
|
||||
permissions: permissions || [],
|
||||
status: 'active',
|
||||
createTime: new Date().toLocaleString('zh-CN'),
|
||||
updateTime: new Date().toLocaleString('zh-CN'),
|
||||
};
|
||||
|
||||
roleList.push(newRole);
|
||||
|
||||
res.json({
|
||||
code: 0,
|
||||
message: '创建成功',
|
||||
data: newRole,
|
||||
});
|
||||
},
|
||||
|
||||
// 更新角色
|
||||
'POST /api/admin/role/update': (req: Request, res: Response) => {
|
||||
const { id, name, description, permissions } = req.body;
|
||||
|
||||
const index = roleList.findIndex(item => item.id === id);
|
||||
if (index === -1) {
|
||||
return res.json({
|
||||
code: 1,
|
||||
message: '角色不存在',
|
||||
});
|
||||
}
|
||||
|
||||
roleList[index] = {
|
||||
...roleList[index],
|
||||
name,
|
||||
description: description || '',
|
||||
permissions: permissions || [],
|
||||
updateTime: new Date().toLocaleString('zh-CN'),
|
||||
};
|
||||
|
||||
res.json({
|
||||
code: 0,
|
||||
message: '更新成功',
|
||||
data: roleList[index],
|
||||
});
|
||||
},
|
||||
|
||||
// 切换角色状态
|
||||
'POST /api/admin/role/toggle-status': (req: Request, res: Response) => {
|
||||
const { id } = req.body;
|
||||
|
||||
const role = roleList.find(item => item.id === id);
|
||||
if (!role) {
|
||||
return res.json({
|
||||
code: 1,
|
||||
message: '角色不存在',
|
||||
});
|
||||
}
|
||||
|
||||
role.status = role.status === 'active' ? 'inactive' : 'active';
|
||||
role.updateTime = new Date().toLocaleString('zh-CN');
|
||||
|
||||
res.json({
|
||||
code: 0,
|
||||
message: '状态更新成功',
|
||||
data: role,
|
||||
});
|
||||
},
|
||||
|
||||
// 删除角色
|
||||
'POST /api/admin/role/delete': (req: Request, res: Response) => {
|
||||
const { id } = req.body;
|
||||
|
||||
const index = roleList.findIndex(item => item.id === id);
|
||||
if (index === -1) {
|
||||
return res.json({
|
||||
code: 1,
|
||||
message: '角色不存在',
|
||||
});
|
||||
}
|
||||
|
||||
roleList.splice(index, 1);
|
||||
|
||||
res.json({
|
||||
code: 0,
|
||||
message: '删除成功',
|
||||
});
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user