Commit Graph
100 Commits
Author SHA1 Message Date
xuyue 17dbd7a4a7 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-05 13:34:46 -06:00
xuyue 8db26ef7a4 rewind
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-05 13:33:32 -06:00
xuyueandClaude Opus 5 508267bb59 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
- 圆环改用默认插槽渲染百分比,字号跟断点走(naive 自带指示器字号固定,76px 圆环放不下)
- 卡片边框 1px → 2px
- 置灰从整张卡挪到内容上,未获得的卡片不再把稀有度边框一起洗成灰

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 13:30:51 -06:00
xuyue a4fdd377f2 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-08-05 13:23:45 -06:00
xuyue da2334ed3a 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-08-05 13:15:01 -06:00
xuyue a626160f29 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-08-05 13:13:07 -06:00
xuyue bf028b3fb1 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-05 11:50:51 -06:00
xuyueandClaude Opus 5 b7f82adb7c fix(achievement): 抬头四条稀有度进度固定单列
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
auto-fit 两列在宽屏会折成 2x2,进度条被压短看不出差别。
改成一列四行,和定稿一致。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 11:45:15 -06:00
xuyueandClaude Opus 5 05ce9cbb9e revert(achievement): 抬头回到环形进度版,保留白金优先的排序
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
PSN 那版奖杯陈列观感不佳,回退到环形 + 四色进度条。稀有度顺序
沿用 PSN 的做法:白金、黄金、白银、青铜,稀有的排前面。

顺带保留卡片网格的 min() 修复,避免 320 宽机型横向滚动。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 11:40:55 -06:00
xuyueandClaude Opus 5 4072abe199 feat(achievement): 抬头改成 PlayStation 奖杯陈列
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
参照 PSN 的奖杯系统重做:六边形铭牌放完成度,四个奖杯按稀有度
倒序陈列(白金在最左),同一个杯型只换颜色,某档一个没有就置灰。

底部一条总进度分成四段,每段宽度是该档已获得占总数的比例,
拼起来正好等于总完成度——条的长度和构成都对得上数据。

移动端走全站的 useBreakpoints(tailwind md),竖排;顺手修了
卡片网格 minmax(300px) 在 320 宽机型上撑出横向滚动的问题。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 11:34:49 -06:00
xuyueandClaude Opus 5 0d7336bce8 refactor(achievement): 稀有度配色收进 constants,文字色适配浅色模式
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
四份重复的 RARITY_COLOR / RARITY_LABEL 合并到 utils/constants。
拆成两套:边框色块继续用饱和的原色,文字改走 useRarityColor,
按明暗主题切换,两套都压到 4.5:1 以上——原色是照深色底调的,
白底上白金只有 1.7:1、黄金 2.2:1,卡片上的稀有度 tag 看不清。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 11:24:04 -06:00
xuyueandClaude Opus 5 4db0dc7e83 fix(achievement): 抬头稀有度配色适配浅色模式
原色值是照深色底调的,白底上白金 1.7:1、黄金 2.2:1 看不清。
改成按 useDark 切换明暗两套色值。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 11:21:03 -06:00
xuyueandClaude Opus 5 56d06eb456 style(achievement): 成就页抬头改为环形进度 + 四色稀有度条
左侧环形显示总完成度,右侧四行稀有度各配一条对应颜色的进度条,
配色复用 AchievementCard 的 RARITY_COLOR。窄屏自动塌成一列。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 11:19:57 -06:00
xuyueandClaude Opus 5 b79dd6c721 feat(admin): 成就管理标题显示条数
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
有下架的成就时一并显示下架条数——列表里只有"上架:否"那一列能看出来,
扫一眼容易漏。数据未加载完时退回纯标题,避免闪一下"0 条"。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 11:13:48 -06:00
xuyueandClaude Opus 5 15d823aa20 refactor: 个人主页移除徽章卡片
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
徽章已在成就页的"题单奖章" tab 展示,主页重复且与旁边的成就摘要
风格不一致。连带删掉无引用的 GroupedUserBadge 组件。

成就图标那排补上"最近获得"标签,避免被误读成成就总数。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 10:27:42 -06:00
xuyueandClaude Opus 5 4ae25b09c0 perf: skulpt 改为按需加载,client-zip 换成 fflate
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
skulpt 此前被 SubmitCode.vue 静态引用,945K 的 chunk 落在做题页首屏,
学生打开任何一道题都要下 233KB gzip,只为提交时拿一个语法错误行号。
改成 import() 懒加载并在语言切到 Python3 时预取,加载失败放行提交、
交给后端判题兜底。构建产物确认该 chunk 只剩一处 import() 引用,
index.html 不再引用。

client-zip 的能力 fflate 已经覆盖(utils/functions.ts 本就在用 zlibSync),
新增 createZipBlob 统一两处测试用例打包,删掉该依赖。压缩方式由 store
变为 deflate,Python zipfile 透明解压,后端不受影响。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 09:11:58 -06:00
xuyue ea691834b0 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-05 06:46:44 -06:00
xuyue 344e9734b6 feat: 标签管理页点击标签查看对应题目
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-05 06:11:46 -06:00
xuyue 7694db7d41 feat: 新增标签题目弹窗组件 2026-08-05 06:04:46 -06:00
xuyueandClaude Sonnet 5 a191bd78d4 feat(admin): 题目列表支持批量添加/移除标签
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 Sonnet 5 <noreply@anthropic.com>
2026-08-05 04:28:26 -06:00
xuyueandClaude Sonnet 5 842c4796c0 feat(admin): 标签管理页
支持搜索、重命名(撞名自动合并并提示影响题数)、删除(二次确认)。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 04:25:36 -06:00
xuyueandClaude Sonnet 5 15aaec4384 feat(admin): 标签管理与批量打标签的 API 封装
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 04:23:17 -06:00
xuyueandClaude Sonnet 5 52ac8d205d merge: 合并 github 远程分支(同一改动的不同提交历史)
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 Sonnet 5 <noreply@anthropic.com>
2026-08-05 00:07:08 -06:00
xuyueandClaude Sonnet 5 30ea5c8191 fix(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
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 00:04:37 -06:00
xuyueandClaude Sonnet 5 58c67240b7 Merge branch 'fix/learn-exercise-highlight-dedup'
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 21:25:35 -06:00
xuyueandClaude Sonnet 5 b4b96b0da3 fix(learn): 修复填空题代码高亮丢失,去重高亮与洗牌逻辑
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
- ExerciseFill.vue 之前未导入 exercise-highlight.css,若某课只含
  fill 类型练习(不加载 ExerciseSort),高亮代码会渲染成无色纯文本
- ExerciseFill/ExerciseSort 改为复用 useCodeHighlight 的
  highlight()/highlightLines(),删除各自重复的 hljs 注册与
  escapeHtml 实现
- 新增 useShuffle.ts,供 ExerciseSort/ExerciseMatch/ExerciseGroup
  共用洗牌逻辑,替代三处几乎逐字相同的实现

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 21:25:21 -06:00
xuyue 4ed8014c30 merge: 自学模块支持 C 语言教程
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
- 路由改为 /learn/:type/:step,按语言分流
- 导航栏自学变二级菜单,按语言记住上次学到的课
- 示例代码编辑器语言跟随教程类型
2026-08-04 21:14:28 -06:00
xuyueandClaude Opus 5 40bd331a1c feat(learn): 导航栏自学二级菜单,按语言记住学习进度
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 21:08:06 -06:00
xuyue 4ec6b1d738 feat(learn): 自学模块按语言分路由,支持 C 语言教程 2026-08-04 21:02:27 -06:00
xuyue 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
xuyueandClaude Opus 5 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
xuyueandClaude Opus 5 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
xuyueandClaude Opus 5 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
xuyueandClaude Opus 5 700559557d merge: 成就系统前端剩余部分
个人主页与排行榜的成就入口、管理后台成就配置页。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 06:59:55 -06:00
xuyueandClaude Opus 5 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
xuyueandClaude Opus 5 d31bfd8b8f feat(achievement): 个人主页与排行榜添加成就入口
个人主页显示完成度与最近获得的成就,可跳转奖杯馆;
全服 Top100 和班级排名每行加一个跳转按钮。

成就摘要单独请求,不并进 init 里那个按位置取值的 promises 数组,
且失败时静默降级——它不该拖垮整个个人主页。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 06:57:07 -06:00
xuyueandClaude Opus 5 64a770ff62 merge: 成就系统前端
奖杯馆页面、成就 API 层与类型、全局解锁弹窗与待弹拉取、
WebSocket 消息分流修复。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 06:51:43 -06:00
xuyueandClaude Opus 5 d7d80e1c1b feat(achievement): 添加全局解锁弹窗与待弹拉取
推拉结合:布局层每次路由切换拉一次 pending 作为主通道,
WebSocket 只作为在线时的即时增强。纯靠推会丢消息——
前端 WebSocket 只在问题页且有提交监听时才建连。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 06:46:28 -06:00
xuyueandClaude Opus 5 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
xuyueandClaude Opus 5 d81e00ee14 feat(achievement): 添加奖杯馆页面
三种视觉状态:已解锁显示日期与获得率;未解锁公开成就显示进度条;
未解锁隐藏成就只显示稀有度,不画进度条(会泄露后端刻意遮掉的门槛)。
lte 类成就(如最短代码 ≤ 50 字符)不画百分比条,改为显示当前最好成绩。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 06:42:38 -06:00
xuyue 71186f0ca5 feat(achievement): 添加成就 API 层与类型,修复 WebSocket 消息分流 2026-08-04 05:24:13 -06:00
xuyue 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
xuyue 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
xuyue 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
xuyue 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
xuyueandClaude Opus 5 8db3b15df1 Merge branch 'feat/demo-student-view'
学生视角(演示模式):超管在用户下拉菜单一键把界面伪装成普通学生。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 07:51:52 -06:00
xuyueandClaude Opus 5 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
xuyueandClaude Opus 5 bd6c5d19f8 style(header): 演示模式退出文案改为四字
「退出学生视角」六字,与「学生视角」不齐。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 07:49:22 -06:00
xuyueandClaude Opus 5 8a343edbbb feat(header): 用户下拉菜单加入学生视角开关
仅超管可见。进入演示模式时若停在后台页面则跳回首页。
options 改为 computed,否则菜单文案与显示条件不会随状态更新。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 07:48:22 -06:00
xuyueandClaude Opus 5 07bbbce013 feat(user): store 层加入演示模式伪装开关
超管开启后所有角色 getter 降级为普通学生,全站权限判断自动跟随。
realIsSuperAdmin 保留真实身份,用于判断能否切换。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 07:47:27 -06:00
xuyueandClaude Opus 5 5fac75238d docs: 学生视角(演示模式)实施计划
两个任务:store 层伪装开关、Header 下拉菜单入口。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 07:46:23 -06:00
xuyueandClaude Opus 5 3509f340ff docs: 学生视角(演示模式)设计
超管一键把界面切换成普通学生的样子,方便上课演示。
纯前端伪装,在 userStore 层包装角色 getter,全站权限判断自动跟随。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 07:43:57 -06:00
xuyue 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
xuyue 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
xuyue 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
xuyue 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
xuyue 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
xuyue 4e5b2fdb3e fix 2026-07-24 06:46:59 -06:00
xuyue 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
xuyueandClaude Fable 5 02c523b32f docs: SQL 题强制至少 2 个测试点设计文档
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 03:11:53 -06:00
xuyueandClaude Fable 5 f6d4d9bcb2 docs: SQL 题目表名/字段名自动补全设计文档
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 03:05:32 -06:00
xuyue 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
xuyueandClaude Opus 4.8 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
xuyueandClaude Opus 4.8 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
xuyue 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
xuyueandClaude Fable 5 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
xuyueandClaude Fable 5 740f956fe3 feat: SQL 测试点在线编辑器组件与 API
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 03:50:43 -06:00
xuyue 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
xuyue 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
xuyueandClaude Fable 5 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
xuyue 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
xuyueandClaude Fable 5 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
xuyueandClaude Fable 5 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
xuyueandClaude Fable 5 0b627b5157 feat: 管理端 SQL 题隐藏输入输出描述与样例表单
- 隐藏 SQL 题的输入/输出描述编辑器
- 隐藏 SQL 题的样例编辑区域
- 跳过 SQL 题的输入输出和样例验证
- SQL 题提交时清空样例数组

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 01:31:08 -06:00
xuyueandClaude Fable 5 aa212427ba feat: SQL 题展示数据表与期望结果
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 01:26:16 -06:00
xuyue 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
xuyue 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
xuyueandClaude Fable 5 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
xuyueandClaude Fable 5 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
xuyueandClaude Fable 5 c227c1d506 出题表单:SQL 题隐藏代码规则检查
AstRulesEditor 基于 tree-sitter 对 Python/C 做 AST 解析(后端 ast_checker
只注册了这两种语言),对 SQL 没有意义;此前只要 SQL 在已选语言里就会渲染
出对应 tab,选项全是 for/while 循环等编程语言概念。切到 SQL 时隐藏该区块
并清空 ast_rules,避免出题界面出现无意义配置。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 17:41:50 -06:00
xuyueandClaude Fable 5 38500671af 新增 SQL 题型前端支持
- LANGUAGE 类型与六张语言映射表补 SQL;编辑器 SQLite 方言高亮
- 出题表单:SQL 语言选项、题型/行序配置卡片、数据脚本压缩包上传、标准答案必填校验
- 修复做题页语言回退硬编码 Python3 的问题(SQL 题会提交被拒)
- SQL 题隐藏自测猫/自测屏/复制到自测猫(外部运行器不支持 SQL)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 17:23:23 -06:00
xuyue 5867bbceed add new type of self-learning
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-06-29 19:38:00 -06:00
xuyue 71fc5e3246 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-06-29 19:01:41 -06:00
xuyue a4bd4fcd13 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-06-29 07:52:17 -06:00
xuyue 1d285c8694 update 2026-06-29 07:48:13 -06:00
xuyue 4261bae104 update 2026-06-29 07:19:04 -06:00
xuyue 2da0d098b9 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-06-29 06:27:14 -06:00
xuyue e425fbae53 fix copy
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-06-29 06:19:06 -06:00
xuyue 06633c351f 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-06-22 18:27:27 -06:00
xuyue 5ca488616b 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-06-22 05:45:07 -06:00
xuyue df45b8f545 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-06-14 09:53:04 -06:00
xuyue be0bc87d47 add state for submitting button
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-06-14 08:52:47 -06:00
xuyue 43a5c923b4 Plan submit formatting button state 2026-06-14 08:46:35 -06:00
xuyue 62d75b6e06 Document submit formatting button state 2026-06-14 08:43:19 -06:00
xuyue bd4461d2bc fix 2026-06-14 08:36:32 -06:00
xuyue 12342f7f79 feat(problem): auto-format Python3/C/C++ code before submit 2026-06-14 08:12:31 -06:00
xuyueandClaude Sonnet 4.6 dad65c4bef feat(api): add formatCode endpoint for pre-submit formatting
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 08:09:38 -06:00
xuyue d16ee709b2 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-06-09 05:04:40 -06:00
xuyue 77db837af3 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-06-07 05:57:48 -06:00
xuyue 4b05086ba1 use default props
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-06-06 05:49:02 -06:00