e5579f034e6a446555cfdc01117f34fc10564de2
浏览器实测报错:
ReferenceError: Cannot access 'scoreExportGroup' before initialization
at setup (Admin.vue:2559:7)
根因:R29 板块迁移时把 `watch(scoreExportGroup, …)` 写在 2559 行,而
`const scoreExportGroup = ref('')` 在 2810 行。**watch() 会立即执行一次
source 取值来收集依赖**,故 setup 阶段即触发 TDZ。
(对照:watch(questionGroup,…) 安全,其声明在 1784 行。)
修法:把该 watch 下移到 `scoreExportGroup` / `isExamScoreGroup` 声明之后
(成绩管理节内),原位置留注释说明原因,避免后人再次上移。
验证(本轮新增两道门禁工具,均在 .workbuddy/tools/,未入仓库):
- AST 顺序扫描 verify_frontend_tdz.mjs:对已提交的坏版本 c470e79 精确命中
Admin.vue:2559(变异测试);修复后 src 38 文件 + dist 打包产物 26 文件全 PASS。
- 真 chromium(playwright)ui-runtime-check.mjs:致命运行错误 0、告警 0、
18/18 断言通过(中职→本科→高职切组、迁移板块显隐、导出Excel、
批量下载作品按组显隐、评分弹窗「客观分(卷面)」单行左对齐)。
- dist 已重建:built in 12.36s、VITE_EXIT=0。
教训:vite build 只打包、不执行 setup,构建绿对 TDZ 是假绿。
Description
No description provided
Languages
Vue
77.3%
JavaScript
20.9%
CSS
1.5%
HTML
0.3%