first commit

This commit is contained in:
2026-03-17 14:30:02 +08:00
commit 313f5b3550
136 changed files with 57671 additions and 0 deletions

320
mock/role.ts Normal file
View 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: '删除成功',
});
},
};