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: '删除成功', }); }, };