c88753ba78
fix
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-08-04 19:27:26 -06:00
0932a05850
feat(achievement): 成就图标改用 iconify 渲染
...
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
机房的老浏览器缺 emoji 字体,成就图标会渲染成方块。后端的 icon 字段
改存 iconify 图标名(noto 集),前端统一走新的 AchievementIcon 组件
渲染成 SVG。
组件按三种形态判断:图片 URL 走 img,含冒号走 Icon,其余当纯文本兜底,
所以存量的 emoji 数据不会瞎掉。
顺带修好解锁弹窗:题单奖章的 icon 是图片 URL,之前当文本渲染,会把
一串路径直接显示出来。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 19:20:10 -06:00
0ba25dc4e3
merge: 修复弹窗队列的 id 空间冲突
...
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 07:23:42 -06:00
7e498a1c1c
fix(achievement): 弹窗队列区分成就与题单奖章的 id 空间
...
两者的 id 来自不同的表、数值会重叠,却共用同一个队列:
- 去重只按 id,队列里有奖章 5 时成就 5 会被当成重复项丢掉
- 弹完奖章后调 markAchievementsRead(奖章id),后端按成就 id 解释,
把同号且未弹过的成就静默标记为已弹,那个奖杯再也不会出现
载荷里本来就有 kind 字段,前端此前完全忽略。现在去重按 kind:id,
标记已读跳过奖章,弹窗标题也按类型区分。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 07:22:42 -06:00
700559557d
merge: 成就系统前端剩余部分
...
个人主页与排行榜的成就入口、管理后台成就配置页。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 06:59:55 -06:00
a9278589c9
feat(achievement): 添加管理后台成就配置页
...
指标下拉框由后端 METRIC_REGISTRY 动态提供,选中后显示该指标的说明。
列表显示已解锁人数——阈值配错时学生永远拿不到也永远不会来问,
这个计数器是唯一的仪表盘。
API 追加到 src/admin/api.ts(仓库的 admin 接口集中在这一个文件里),
路由 meta 用 requiresSuperAdmin 以匹配后端的 super_admin_required。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 06:59:27 -06:00
d31bfd8b8f
feat(achievement): 个人主页与排行榜添加成就入口
...
个人主页显示完成度与最近获得的成就,可跳转奖杯馆;
全服 Top100 和班级排名每行加一个跳转按钮。
成就摘要单独请求,不并进 init 里那个按位置取值的 promises 数组,
且失败时静默降级——它不该拖垮整个个人主页。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 06:57:07 -06:00
64a770ff62
merge: 成就系统前端
...
奖杯馆页面、成就 API 层与类型、全局解锁弹窗与待弹拉取、
WebSocket 消息分流修复。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 06:51:43 -06:00
d7d80e1c1b
feat(achievement): 添加全局解锁弹窗与待弹拉取
...
推拉结合:布局层每次路由切换拉一次 pending 作为主通道,
WebSocket 只作为在线时的即时增强。纯靠推会丢消息——
前端 WebSocket 只在问题页且有提交监听时才建连。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 06:46:28 -06:00
fe7095bd74
fix(achievement): 奖杯馆取 ApiResponse.data 而非整个响应对象
...
http 客户端返回 ApiResponse<T>,载荷在 .data 里。
原写法会让页面拿到 undefined,奖杯馆整片空白。
项目没有类型检查步骤,Vite 只转译不校验,构建不会报这个错。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 06:46:20 -06:00
d81e00ee14
feat(achievement): 添加奖杯馆页面
...
三种视觉状态:已解锁显示日期与获得率;未解锁公开成就显示进度条;
未解锁隐藏成就只显示稀有度,不画进度条(会泄露后端刻意遮掉的门槛)。
lte 类成就(如最短代码 ≤ 50 字符)不画百分比条,改为显示当前最好成绩。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-04 06:42:38 -06:00
71186f0ca5
feat(achievement): 添加成就 API 层与类型,修复 WebSocket 消息分流
2026-08-04 05:24:13 -06:00
8d06fafbae
update
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-26 08:52:14 -06:00
dc853cd61f
fix
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-26 08:44:46 -06:00
ccbb961d64
update
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-26 08:36:49 -06:00
f928e79c1f
update
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-26 08:11:51 -06:00
8db3b15df1
Merge branch 'feat/demo-student-view'
...
学生视角(演示模式):超管在用户下拉菜单一键把界面伪装成普通学生。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-26 07:51:52 -06:00
6766c4dcd5
style(header): 演示模式菜单文案改为「进入演示 / 退出演示」
...
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
两端都是四字,动作对称。spec 与 plan 文档同步更新。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-26 07:51:11 -06:00
bd6c5d19f8
style(header): 演示模式退出文案改为四字
...
「退出学生视角」六字,与「学生视角」不齐。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-26 07:49:22 -06:00
8a343edbbb
feat(header): 用户下拉菜单加入学生视角开关
...
仅超管可见。进入演示模式时若停在后台页面则跳回首页。
options 改为 computed,否则菜单文案与显示条件不会随状态更新。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-26 07:48:22 -06:00
07bbbce013
feat(user): store 层加入演示模式伪装开关
...
超管开启后所有角色 getter 降级为普通学生,全站权限判断自动跟随。
realIsSuperAdmin 保留真实身份,用于判断能否切换。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-26 07:47:27 -06:00
5fac75238d
docs: 学生视角(演示模式)实施计划
...
两个任务:store 层伪装开关、Header 下拉菜单入口。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-26 07:46:23 -06:00
3509f340ff
docs: 学生视角(演示模式)设计
...
超管一键把界面切换成普通学生的样子,方便上课演示。
纯前端伪装,在 userStore 层包装角色 getter,全站权限判断自动跟随。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-26 07:43:57 -06:00
297f674bac
fix
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-26 07:20:13 -06:00
e99f9d5458
update
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-26 06:51:46 -06:00
63b02ec221
fix
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-24 07:19:05 -06:00
3aa82bb200
fix
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-24 07:16:09 -06:00
4031e2bd3c
update
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-24 07:12:43 -06:00
4e5b2fdb3e
fix
2026-07-24 06:46:59 -06:00
be1b9a97a0
update
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-05 03:12:36 -06:00
02c523b32f
docs: SQL 题强制至少 2 个测试点设计文档
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-05 03:11:53 -06:00
f6d4d9bcb2
docs: SQL 题目表名/字段名自动补全设计文档
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-05 03:05:32 -06:00
527127d9c7
fix
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-05 01:33:30 -06:00
e7a621075c
移除 OI 残留:前端 Profile / Rank 去掉 oi_problems_status / total_score
...
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
配合后端删除 UserProfile 的 OI 字段:
- Profile、Rank 类型移除 oi_problems_status、total_score
- 用户主页 AC 列表只用 acm_problems_status,去掉 oi 合并
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-04 11:43:11 -06:00
081981d115
精简 Problem 模型:前端移除 rule_type / io_mode / total_score
...
配合后端删除这三列:
- Problem 类型与 admin 出题页去掉 rule_type、io_mode 字段
- 出题提交 payload 不再携带这些字段
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-04 11:42:21 -06:00
ff5daf8afe
update
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-04 11:06:41 -06:00
bda28b8400
feat: SQL 题接入测试点在线编辑器
...
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-04 03:57:55 -06:00
740f956fe3
feat: SQL 测试点在线编辑器组件与 API
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-04 03:50:43 -06:00
ebe2ab762f
fix
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-03 10:27:58 -06:00
9144dbb4fc
update
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-03 10:15:33 -06:00
10dcb29704
feat: SQL 提交前自动格式化
...
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
格式化白名单加入 sql,后端用 sqlparse 处理
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 10:05:39 -06:00
1cac0d01f8
fmt
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-03 09:59:15 -06:00
47281029ec
feat: SQL 代码编辑器中文自动补全
...
- 新增 sql.ts 中文补全列表(关键字 + 常用函数,SQLite 方言)
- enhanceCompletion 接入 SQL,移除原来的早退逻辑
- CodeEditor.vue 补上 lang-sql 语言扩展,与 SyncCodeEditor 一致
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 09:58:52 -06:00
ad28c0ba21
fix: sqlTableName 字体 fallback
...
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 06:26:00 -06:00
0b627b5157
feat: 管理端 SQL 题隐藏输入输出描述与样例表单
...
- 隐藏 SQL 题的输入/输出描述编辑器
- 隐藏 SQL 题的样例编辑区域
- 跳过 SQL 题的输入输出和样例验证
- SQL 题提交时清空样例数组
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 01:31:08 -06:00
aa212427ba
feat: SQL 题展示数据表与期望结果
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 01:26:16 -06:00
14321cc222
update
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-02 19:28:16 -06:00
dd29f04664
change to vite8
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled
2026-07-02 18:28:47 -06:00
5d418a2280
修复测试用例区域温馨提醒 tooltip 不换行
...
n-tooltip 的内容容器默认按内容宽度撑开(naive-ui 没有设默认 max-width/
white-space),SQL 提示文案变长后整段挤成一条超宽横线。加 max-width 约束
宽度使其正常换行。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 18:02:49 -06:00
b4ac42b736
出题表单:修复 SQL 题崩溃并隐藏流程图区域
...
流程图区域的"AI 生成"按钮读取 problem.answers 里 language==='Python3' 的
第一项 .code,SQL 题(languages=["SQL"])没有 Python3 答案,[0] 为
undefined,导致模板抛 TypeError 崩溃整个出题页。
流程图功能本身依赖 Python 答案生成 Mermaid 代码,对 SQL 题没有意义,
和已隐藏的"代码规则检查"一样直接整块隐藏(切到 SQL 时顺带重置
allow_flowchart/show_flowchart,避免脏数据)。顺手给禁用态判断加了
可选链,修掉未选 Python3 时同样会崩的潜在问题(如仅选 C/C++ 的题目)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 17:45:44 -06:00