File size: 3,090 Bytes
58b7bd4
33ebc65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58b7bd4
 
 
 
 
 
33ebc65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58b7bd4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

import { Student, Course, Score, User, UserRole, UserStatus } from '../types';

export const MOCK_USER: User = {
  id: 1,
  username: '教务管理员',
  role: UserRole.ADMIN,
  status: UserStatus.ACTIVE,
  email: 'admin@school.edu',
  avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Felix'
};

const CHINESE_SURNAMES = ['张', '王', '李', '赵', '陈', '刘', '杨', '黄', '周', '吴'];
const CHINESE_NAMES = ['伟', '芳', '娜', '敏', '静', '丽', '强', '磊', '军', '洋', '勇', '艳', '杰', '娟'];

const generateName = (i: number) => {
  const surname = CHINESE_SURNAMES[i % CHINESE_SURNAMES.length];
  const name = CHINESE_NAMES[i % CHINESE_NAMES.length];
  return `${surname}${name}`;
};

export const STUDENTS: Student[] = Array.from({ length: 50 }).map((_, i) => ({
  id: i + 1,
  studentNo: `2024${String(i + 1).padStart(4, '0')}`,
  name: generateName(i),
  gender: i % 2 === 0 ? 'Male' : 'Female', // Kept as internal value, UI will translate
  birthday: '2012-05-01',
  idCard: `11010120120501${String(i).padStart(4, '0')}`,
  phone: `138${String(Math.floor(Math.random() * 100000000)).padStart(8, '0')}`,
  className: i % 3 === 0 ? '六年级(1)班' : (i % 3 === 1 ? '六年级(2)班' : '五年级(1)班'),
  status: 'Enrolled' // Kept as internal value
}));

export const COURSES: Course[] = [
  { id: 1, courseCode: 'CHI01', courseName: '语文', teacherName: '王老师', className: '六年级(1)班', credits: 5, capacity: 45, enrolled: 45 },
  { id: 2, courseCode: 'MAT01', courseName: '数学', teacherName: '张老师', className: '六年级(1)班', credits: 5, capacity: 45, enrolled: 45 },
  { id: 3, courseCode: 'ENG01', courseName: '英语', teacherName: '李老师', className: '六年级(1)班', credits: 4, capacity: 45, enrolled: 42 },
  { id: 4, courseCode: 'SCI01', courseName: '科学', teacherName: '赵老师', className: '六年级(1)班', credits: 2, capacity: 45, enrolled: 40 },
  { id: 5, courseCode: 'ART01', courseName: '美术', teacherName: '陈老师', className: '六年级(1)班', credits: 2, capacity: 45, enrolled: 45 },
  { id: 6, courseCode: 'PE001', courseName: '体育', teacherName: '刘教练', className: '六年级(1)班', credits: 2, capacity: 60, enrolled: 58 },
];

export const SCORES: Score[] = Array.from({ length: 30 }).map((_, i) => ({
  id: i + 1,
  studentName: generateName(i),
  studentNo: `2024${String(i + 1).padStart(4, '0')}`,
  courseName: i % 3 === 0 ? '语文' : (i % 3 === 1 ? '数学' : '英语'),
  score: Math.floor(Math.random() * 30) + 70, // Score between 70 and 100
  semester: '2023-秋季学期',
  type: 'Final'
}));

// Mock Chart Data
export const CHART_DATA_TRENDS = [
  { name: '9月', avg: 75, max: 92 },
  { name: '10月', avg: 78, max: 94 },
  { name: '11月', avg: 82, max: 96 },
  { name: '12月', avg: 80, max: 95 },
  { name: '1月', avg: 85, max: 98 },
];

export const CHART_DATA_DISTRIBUTION = [
  { name: '六年级(1)班', value: 45 },
  { name: '六年级(2)班', value: 42 },
  { name: '五年级(1)班', value: 40 },
  { name: '五年级(2)班', value: 38 },
];