jzyg123 commited on
Commit
88be809
·
verified ·
1 Parent(s): d270cd9

Update src/templates/compare.html

Browse files
Files changed (1) hide show
  1. src/templates/compare.html +19 -10
src/templates/compare.html CHANGED
@@ -1414,7 +1414,7 @@
1414
  // 获取所有考试列表并排序(按时间倒序)
1415
  const allExams = [...studentsDataA, ...studentsDataB];
1416
  const uniqueExams = [...new Map(allExams.map(exam => [exam.考试名称, exam])).values()]
1417
- .sort((a, b) => new Date(b.考试时间 || 0) - new Date(a.考试时间 || 0));
1418
 
1419
  uniqueExams.forEach((exam, index) => {
1420
  const examBtn = document.createElement('button');
@@ -2161,23 +2161,32 @@
2161
 
2162
  // 按时间排序的所有考试
2163
  const allExamsA = [...studentsDataA].sort((a, b) =>
2164
- new Date(a.考试时间) - new Date(b.考试时间)
2165
  );
2166
 
2167
  const allExamsB = [...studentsDataB].sort((a, b) =>
2168
- new Date(a.考试时间) - new Date(b.考试时间)
2169
  );
2170
 
2171
- // 收集考试名称和日期作为标签
2172
- const allLabels = new Set();
2173
- allExamsA.forEach(exam => allLabels.add(exam.考试名称 || exam.考试时间));
2174
- allExamsB.forEach(exam => allLabels.add(exam.考试名称 || exam.考试时间));
 
 
 
 
 
 
 
 
 
2175
 
2176
- const uniqueLabels = Array.from(allLabels);
2177
 
2178
  // 收集排名数据
2179
  const dataA = uniqueLabels.map(label => {
2180
- const exam = allExamsA.find(e => e.考试名称 === label || e.考试时间 === label);
2181
  if (!exam) return null;
2182
 
2183
  const rankKey = subject === '总分' ? '大类排名' : `${subject}校次`;
@@ -2186,7 +2195,7 @@
2186
  });
2187
 
2188
  const dataB = uniqueLabels.map(label => {
2189
- const exam = allExamsB.find(e => e.考试名称 === label || e.考试时间 === label);
2190
  if (!exam) return null;
2191
 
2192
  const rankKey = subject === '总分' ? '大类排名' : `${subject}校次`;
 
1414
  // 获取所有考试列表并排序(按时间倒序)
1415
  const allExams = [...studentsDataA, ...studentsDataB];
1416
  const uniqueExams = [...new Map(allExams.map(exam => [exam.考试名称, exam])).values()]
1417
+ .sort((a, b) => (b.sort_index || 0) - (a.sort_index || 0));
1418
 
1419
  uniqueExams.forEach((exam, index) => {
1420
  const examBtn = document.createElement('button');
 
2161
 
2162
  // 按时间排序的所有考试
2163
  const allExamsA = [...studentsDataA].sort((a, b) =>
2164
+ (a.sort_index || 0) - (b.sort_index || 0)
2165
  );
2166
 
2167
  const allExamsB = [...studentsDataB].sort((a, b) =>
2168
+ (a.sort_index || 0) - (b.sort_index || 0)
2169
  );
2170
 
2171
+ // 收集考试名称和日期作为标签,并按 sort_index 排序
2172
+ const allExams = [...studentsDataA, ...studentsDataB];
2173
+ const uniqueExamsMap = new Map();
2174
+ allExams.forEach(exam => {
2175
+ const name = exam.考试名称 || exam.考试时间;
2176
+ if (!uniqueExamsMap.has(name)) {
2177
+ uniqueExamsMap.set(name, exam);
2178
+ }
2179
+ });
2180
+
2181
+ const sortedUniqueExams = Array.from(uniqueExamsMap.values()).sort((a, b) =>
2182
+ (a.sort_index || 0) - (b.sort_index || 0)
2183
+ );
2184
 
2185
+ const uniqueLabels = sortedUniqueExams.map(exam => exam.考试名称 || exam.考试时间);
2186
 
2187
  // 收集排名数据
2188
  const dataA = uniqueLabels.map(label => {
2189
+ const exam = allExamsA.find(e => (e.考试名称 || e.考试时间) === label);
2190
  if (!exam) return null;
2191
 
2192
  const rankKey = subject === '总分' ? '大类排名' : `${subject}校次`;
 
2195
  });
2196
 
2197
  const dataB = uniqueLabels.map(label => {
2198
+ const exam = allExamsB.find(e => (e.考试名称 || e.考试时间) === label);
2199
  if (!exam) return null;
2200
 
2201
  const rankKey = subject === '总分' ? '大类排名' : `${subject}校次`;