680faacd1d3437c6adc047c93a5b8553185e2b92
R80 三项 UI 改造(单文件 src/views/Admin.vue,+78/-37):
1. 作品管理:移除「中职组 / 高职组」两个选项 —— 这两组已取消 Word 作品上传,
留着会让人误以为可以下载到作品。顺带清掉因此变成恒真的死判据
v-if="submissionGroup === 'benke' || submissionGroup === 'jiaoshi'"(批量下载作品按钮)。
后端 getWorks 仍支持 4 组,保留兼容不删。
2. 分页:9 处 page-sizes 统一补最小 5 档([5,10,20,50];账号管理 [5,10,20,50,100])。
试卷管理 3 处原本已是 5 档,无需改。动因:成绩管理表体量大、翻页粒度需要更细。
3. 成绩管理:由「一段纵向长页」改为「顶栏 + 三页签」——
- 顶栏只留组别级动作:组别选择 / 发布·撤回成绩 / 导出Excel / 批量下载作品
- 表级筛选(姓名 / 提交状态 / 日期范围)下沉到「成绩总览」页签,
否则切到别的页签时筛选框仍在,会造成「筛的是哪张表」的歧义
- el-tabs:成绩总览(始终)/ 考生答题记录(仅中职、高职)/ 考生大题作答查证(同上)
- 大题作答详情 el-dialog 放在 el-tabs 之外:留在页签内会随 v-if 卸载而销毁弹窗状态
🔴 唯一高危边界:activeScoreTab 停在后两个页签时切到本科/教师,两个页签 v-if 消失
⇒ el-tabs 无 active 内容 ⇒ 页签栏在、内容区全空(白屏)。治法:在
watch(scoreExportGroup) 内复位为 'overview' —— 用 watch 而非 onScoreGroupChange,
因为 watch 默认 pre-flush 会在组件重渲染之前执行,不会先闪一帧空白。
验证:verify_frontend_tdz PASS(activeScoreTab 声明顺序,本页历史真炸过的坑)·
@vue/compiler-sfc parse/compileTemplate 0 错 · ui-runtime-check 真 chromium 17 步 17/17 PASS。
变异自证 2 轮:恢复中职/高职选项 ⇒ expectNoText 2 项变红;拆掉切组复位 ⇒ 切本科组后
expectText("提交状态") 命中 0 处变红。
Description
No description provided
Languages
Vue
77.3%
JavaScript
20.9%
CSS
1.5%
HTML
0.3%