feat(统计): 流程图统计列出「最常见的错」,不再显示新评法下没意义的平均分

新评法(走例子)没有四项分、几乎没有评语,雷达图、各项平均分、词云都拼不出来,
页面上只剩一个等级圆环。改成:
- 「最常见的错」:每张图第一组没走对的原因原样数一下(「『一级果』多输出了一行
  『一级果』2 张」),最多 8 条;全是新数据时放在等级分布旁边,新老混着时顶替词云
- 只有新数据时「每人最好的一次」铺满一行、分几栏
- 去掉「平均分」:新评法的分数只是走对的比例,看它不如看「拿到 A / S」;
  「每人最好的一次」也只写等级
老数据(2026-10 之前)照旧是四项分和词云。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-12 21:31:18 +08:00
1 parent 04c90e3f89
commit b9ece7d38f
3 files changed
+85 -15

No files matched your search

+6
View File
@@ -97,6 +97,12 @@ export const flowchartStatisticsSchema = z.object({
personCount: z.number().int(),
completedCount: z.number().int(),
wordFrequencies: z.array(z.object({ word: z.string(), count: z.number().int() })),
/**
* 2026-10 起「走例子」评的图里最常见的错:每张图取第一组没走对的原因(「『一级果』多输出了
* 一行『一级果』」),同一句话数一下,最多 8 条。新评法几乎没有评语,词云拼不出来,
* 而同一个错在一个班里往往原样出现几十次 —— 老师要看的就是它
*/
commonMistakes: z.array(z.object({ text: z.string(), count: z.number().int() })),
// 与提交统计共用「未完成学生」的形状,见 submission.ts 的 unacceptedStudentSchema
dataUnaccepted: z.array(z.object({ username: z.string(), realName: z.string() })),
/**