dvc890 commited on
Commit
2322da0
·
verified ·
1 Parent(s): 4139df7

Update pages/Login.tsx

Browse files
Files changed (1) hide show
  1. pages/Login.tsx +20 -1
pages/Login.tsx CHANGED
@@ -13,6 +13,24 @@ const AVATAR_SEEDS = [
13
  'Miss kitty', 'Loki', 'Sassy', 'Simba', 'Oliver', 'Princess', 'Garfield', 'Salem'
14
  ];
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  export const Login: React.FC<LoginProps> = ({ onLogin }) => {
17
  const [view, setView] = useState<'login' | 'register'>('login');
18
 
@@ -55,7 +73,8 @@ export const Login: React.FC<LoginProps> = ({ onLogin }) => {
55
  fetch(`${location.origin}/api/public/meta?schoolId=${regForm.schoolId}`)
56
  .then(res => res.json())
57
  .then(data => {
58
- setSchoolClasses(data.classes || []);
 
59
  setSchoolSubjects(data.subjects || []);
60
  })
61
  .catch(console.error);
 
13
  'Miss kitty', 'Loki', 'Sassy', 'Simba', 'Oliver', 'Princess', 'Garfield', 'Salem'
14
  ];
15
 
16
+ const gradeOrder: Record<string, number> = {
17
+ '一年级': 1, '二年级': 2, '三年级': 3, '四年级': 4, '五年级': 5, '六年级': 6,
18
+ '初一': 7, '七年级': 7, '初二': 8, '八年级': 8, '初三': 9, '九年级': 9,
19
+ '高一': 10, '高二': 11, '高三': 12
20
+ };
21
+
22
+ const sortClasses = (a: ClassInfo, b: ClassInfo) => {
23
+ const gA = gradeOrder[a.grade] || 99;
24
+ const gB = gradeOrder[b.grade] || 99;
25
+ if (gA !== gB) return gA - gB;
26
+
27
+ const nA = parseInt(a.className.replace(/[^0-9]/g, '')) || 0;
28
+ const nB = parseInt(b.className.replace(/[^0-9]/g, '')) || 0;
29
+ if (nA !== nB) return nA - nB;
30
+
31
+ return a.className.localeCompare(b.className);
32
+ };
33
+
34
  export const Login: React.FC<LoginProps> = ({ onLogin }) => {
35
  const [view, setView] = useState<'login' | 'register'>('login');
36
 
 
73
  fetch(`${location.origin}/api/public/meta?schoolId=${regForm.schoolId}`)
74
  .then(res => res.json())
75
  .then(data => {
76
+ const sortedClasses = (data.classes || []).sort(sortClasses);
77
+ setSchoolClasses(sortedClasses);
78
  setSchoolSubjects(data.subjects || []);
79
  })
80
  .catch(console.error);