// Mock data for college management const collegeTree = [ { id: '1', name: '设计学院', depts: [ { id: '1-1', name: '视觉传达设计系', majors: [ { id: '1-1-1', name: '平面设计', classes: [ { id: '1-1-1-1', name: '平面设计1班' }, { id: '1-1-1-2', name: '平面设计2班' }, ], }, { id: '1-1-2', name: '数字媒体设计', classes: [ { id: '1-1-2-1', name: '数字媒体1班' }, ], }, ], }, { id: '1-2', name: '环境设计系', majors: [ { id: '1-2-1', name: '室内设计', classes: [ { id: '1-2-1-1', name: '室内设计1班' }, { id: '1-2-1-2', name: '室内设计2班' }, { id: '1-2-1-3', name: '室内设计3班' }, ], }, ], }, ], }, { id: '2', name: '管理学院', depts: [ { id: '2-1', name: '工商管理系', majors: [ { id: '2-1-1', name: '工商管理', classes: [ { id: '2-1-1-1', name: '工商管理1班' }, { id: '2-1-1-2', name: '工商管理2班' }, ], }, { id: '2-1-2', name: '市场营销', classes: [ { id: '2-1-2-1', name: '市场营销1班' }, ], }, ], }, { id: '2-2', name: '会计系', majors: [ { id: '2-2-1', name: '财务管理', classes: [ { id: '2-2-1-1', name: '财务管理1班' }, { id: '2-2-1-2', name: '财务管理2班' }, ], }, { id: '2-2-2', name: '审计学', classes: [], }, ], }, ], }, { id: '3', name: '艺术学院', depts: [ { id: '3-1', name: '音乐系', majors: [ { id: '3-1-1', name: '声乐表演', classes: [ { id: '3-1-1-1', name: '声乐表演1班' }, ], }, ], }, ], }, { id: '4', name: '信息工程学院', depts: [ { id: '4-1', name: '计算机系', majors: [ { id: '4-1-1', name: '软件工程', classes: [ { id: '4-1-1-1', name: '软件工程1班' }, { id: '4-1-1-2', name: '软件工程2班' }, { id: '4-1-1-3', name: '软件工程3班' }, ], }, { id: '4-1-2', name: '计算机科学与技术', classes: [ { id: '4-1-2-1', name: '计科1班' }, { id: '4-1-2-2', name: '计科2班' }, ], }, { id: '4-1-3', name: '人工智能', classes: [ { id: '4-1-3-1', name: 'AI1班' }, ], }, ], }, { id: '4-2', name: '电子信息系', majors: [ { id: '4-2-1', name: '通信工程', classes: [ { id: '4-2-1-1', name: '通信工程1班' }, ], }, ], }, ], }, { id: '5', name: '外国语学院', depts: [], }, ]; export default { 'GET /api/admin/college': (_req: any, res: any) => { res.json({ code: 0, data: collegeTree, message: 'ok', }); }, 'POST /api/admin/college': (req: any, res: any) => { const { data } = req.body; if (!data || !Array.isArray(data)) { return res.json({ code: 40000, data: null, message: '参数错误' }); } // Validate: all names must be non-empty const validate = (items: any[], level: string): string | null => { for (const item of items) { if (!item.name || !item.name.trim()) { return `${level}名称不能为空`; } if (item.depts) { const err = validate(item.depts, '系'); if (err) return err; } if (item.majors) { const err = validate(item.majors, '专业'); if (err) return err; } if (item.classes) { const err = validate(item.classes, '班级'); if (err) return err; } } return null; }; const err = validate(data, '学院'); if (err) { return res.json({ code: 40001, data: null, message: err }); } console.log('[Mock] 保存学校管理数据, 学院数量:', data.length); res.json({ code: 0, data: null, message: '保存成功', }); }, };