fix(提交列表/统计): 按方向键会顺手切掉「代码/流程图」、重判后右栏还是旧内容、没人交时统计说「全都做完了」
提交列表: - 焦点在单选框、下拉框上时方向键不再一边切控件一边换条;跨页没回来前不再连跳一整页 - 重判、重新评分之后右栏重新拉,不再命中旧缓存;同一条新旧请求不再互相覆盖 - 从「我的提交」点顶栏「提交」、浏览器后退时,地址里没有的筛选回到默认 - 找回点用户名开个人主页;「只看他 / 只看这题」学生也能用;重判不用等代码拉下来 - 手机上老师也能重判、能按语言筛,流程图行有手机排版;学生界面带着的班级筛选显示成能点掉的标签 - mermaid 画不出来时先说中文、原始报错折起来 统计页: - 没人交时说「这段时间没有人交」,不再说「全都做完了」;没填题号时各处统一叫「做对过题」 - 班级按 class_name 单独传;查询失败清掉旧数据并说清原因;标签跟着查出来的那一份走 - 「语法未过」的格子单独标「语」;正确率不算还在判的;截断提示说清哪些数字受影响 - 看板的请假隐藏只藏还没交过、没在举手的人,「恢复」只恢复这个班的 - 手机上筛选折行、上下排,不再挤出屏幕 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
26c8d65e89
commit
0bcc981e6f
15 files changed
+613
-197
No files matched your search
+9
-18
@@ -39,7 +39,6 @@ import {
|
||||
type UserBadge,
|
||||
type FlowchartStatistics,
|
||||
type SubmissionStatistics,
|
||||
type SubmissionStatisticsItems,
|
||||
type SubmissionStatisticsGrid,
|
||||
type TodaySubmissionStatistics,
|
||||
} from "@oj2/contract"
|
||||
@@ -174,27 +173,15 @@ export function adminRejudge(id: string) {
|
||||
return api.post<{ ok: boolean }>(`submissions/${encodeURIComponent(id)}/rejudge`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 统计面板展开一行时拉这个人的明细。username 这里要**精确**到人,
|
||||
* 和上面那个按班级模糊匹配的不是一回事。
|
||||
*/
|
||||
export function getSubmissionStatisticsItems(
|
||||
duration: { start?: string; end: string },
|
||||
username: string,
|
||||
problemDisplayId?: string,
|
||||
) {
|
||||
return api.get<SubmissionStatisticsItems>("submissions/statistics/items", {
|
||||
params: { ...duration, problemDisplayId, username },
|
||||
})
|
||||
}
|
||||
|
||||
export function getSubmissionStatistics(
|
||||
duration: { start?: string; end: string },
|
||||
problemDisplayId?: string,
|
||||
username?: string,
|
||||
/** 班级(user.class_name)精确匹配。别再拼 `ks231` 塞进 username —— 会连带 2311、2312 班 */
|
||||
className?: string,
|
||||
) {
|
||||
return api.get<SubmissionStatistics>("submissions/statistics", {
|
||||
params: { ...duration, problemDisplayId, username },
|
||||
params: { ...duration, problemDisplayId, username, className },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -203,9 +190,10 @@ export function getSubmissionStatisticsGrid(
|
||||
duration: { start?: string; end: string },
|
||||
problemDisplayId?: string,
|
||||
username?: string,
|
||||
className?: string,
|
||||
) {
|
||||
return api.get<SubmissionStatisticsGrid>("submissions/statistics/grid", {
|
||||
params: { ...duration, problemDisplayId, username },
|
||||
params: { ...duration, problemDisplayId, username, className },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -430,6 +418,8 @@ export function getFlowchartSubmission(id: string) {
|
||||
|
||||
export function getFlowchartSubmissions(params: {
|
||||
username?: string
|
||||
/** "1" = username 整名匹配,同代码提交列表 */
|
||||
exactUsername?: "1"
|
||||
className?: string
|
||||
problemDisplayId?: string
|
||||
myself?: string
|
||||
@@ -445,9 +435,10 @@ export function getFlowchartStatistics(
|
||||
duration: { start?: string; end: string },
|
||||
problemDisplayId?: string,
|
||||
username?: string,
|
||||
className?: string,
|
||||
) {
|
||||
return api.get<FlowchartStatistics>("flowcharts/statistics", {
|
||||
params: { ...duration, problemDisplayId, username },
|
||||
params: { ...duration, problemDisplayId, username, className },
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user