|
|
ef32d30a57
|
fix(admin): 「重置测试数据」报错只提示一次(收敛重复弹窗)
resetTestData() 未传 silent,生产环境下后端 403(生产环境禁止重置测试数据)会被响应拦截器(request.js:166)与调用方 catch(Admin.vue:1707)各弹一次,用户在后台看到两条完全相同的报错(R58 反馈)。
改为 silent: true —— 由调用方按上下文统一弹一次「重置失败:<后端原文>」。
|
2026-09-30 11:06:08 +08:00 |
|
|
|
f77330ad27
|
fix(frontend): 重置测试数据文案对齐后端契约(未激活+需短信激活)并透传后端 message
- Admin.vue 确认弹窗:「已激活 + 默认口令」→「未激活 + 默认口令」
(后端 service/admin.js:1619 实际置 activated:false)
- Admin.vue 提示行:「重置后可直接用默认口令登录重测」→「需先用默认口令完成短信激活才能登录重测」
- Admin.vue 成功提示: 改为透传后端 message(后端 :1730 已含正确指引),不再自拼后丢弃
- api/request.js: 新增可选开关 returnMessage(不传时默认行为完全不变)
- api/admin.js: resetTestData 启用该开关,后端成为唯一真相源
依据: service/admin.js:1619/:1730 + scripts/verify_testdata_mgmt.py:5-9「Req2 重置须重置账号激活状态」
|
2026-09-30 10:27:40 +08:00 |
|
|
|
37d2641e49
|
feat(admin): 后台新增「成绩复核」——检索考生 + 全卷逐题明细弹窗(R26)
- api/admin.js: 新增 reviewSearch(姓名/身份证/电话任一,可选限定组别)与 getContestantScore(group, id)
- Admin.vue: 菜单新增「成绩复核」(Search 图标);检索区(关键词 + 可选组别下拉)+ 结果列表 + 全卷明细弹窗
- 明细含客观题逐题:题号 / 题型 / 题干 / 选项 / 考生答案 / 正确答案 / 判定 / 得分/满分
- 异常标记:题干缺失(questionMissing)、答案与判定矛盾(answerMatches≠isCorrect)
- 判断题答案 'true'/'false' 显示为「正确/错误」;未作答显示「未作答」且不判错
- 综合大题展示三小问作答与得分;本科/教师组展示作品文件清单并支持下载(不回传 file_path)
- 弹窗用考生自身组别请求接口,避免前端传错组照错人(后端 409 兜底)
- 回传正确答案仅管理员可见,与后端 adminAuth 门禁配套
构建验证:vite build 通过(✓ built in 14.80s,退出码 0)
|
2026-09-28 10:15:50 +08:00 |
|
|
|
1bfe007149
|
feat: 综合大题改造(替代 Word 上传)+ MockExam 按组分支
中职/高职组以「综合大题」替代原 Word 文件上传:管理员在后台录入题干
(wangEditor 富文本,含表格),系统按组随机抽题,考生在 3 个小问内作答,
每小题 10 分、大题合计 30 分。
- api/admin.js / api/exam.js / stores/exam.js:大题题库 CRUD、抽题、作答与评分链路
- Competition.vue:Word 上传区块替换为大题作答区(3 小问 + 字数上限 + 富文本题干渲染)
- Admin.vue:大题题库管理、考生作答查看与人工评分
- MockExam.vue:按组分支——中职/高职显示综合大题,其余组保持 Word 答题;侧栏与提交提示同步
- RichEditor.vue + utils/richtext.js:题干富文本渲染前做白名单消毒(零依赖,纵深防御)
说明:big_questions / big_question_answers 建表迁移 023/024 随后端仓库提交。
|
2026-09-21 11:17:59 +08:00 |
|
WorkBuddy
|
e8f0195b61
|
chore: 前端首次基线提交
运行必须源码:src/、public/、index.html、package.json 及构建配置。
已忽略运行非必须:node_modules/、dist/、.env*。
|
2026-08-17 12:25:42 +08:00 |
|