feat(entry): 录入界面加「补报名」入口 —— 移出报名后可以重新指定项目/组别

需求(主人):「导入时给运动员指定了绑定的项目和组别,但在录入界面把该项报名取消之后,
没有任何地方可以把已录入的运动员重新指定项目报名。」

其实功能一直有(`EntryPicker`「从已有名单勾选报名」,支持小项+组别+个人/团体),
只是它只出现在「基础数据 → 报名导入」页里 —— 用户在哪儿取消的、就去哪儿找,这是入口位置问题。

- `EntryPage.vue`:工具栏右侧(组别页签同一排、表格正上方)加「补报名」按钮;
  只读/示例数据模式禁用;走与批量操作同口径的三道拦截(示例数据/只读/有未保存修改);
  点击时按需加载基础数据这份名单;提交后若提交的是本页当前小项则整表重拉并提示。
- `EntryPicker.vue`:新增 `dialog` / `presetEventId` / `presetCategoryId` 三个 props 与 `submitted` emit,
  预选当前小项与组别(组别对不上时回落到第一个)。**不传 props 时渲染与行为与以前完全一致**,
  「基础数据 → 报名导入」页的内联用法零改动(有测试钉着 `<EntryPicker />` 仍在)。
- 移出报名后的提示补一句指路「如需重新报名,点上方『补报名』…」;本组空了的空态同样指向「补报名」。
- 文档:使用手册 4.8 / 10.7 补操作路径,常见问题 Q91(批量移出那节)补「移出后想加回来」。

验证:`vue-tsc` 通过;前端 761 例全过(基线 754,新增 7)。
接口级 E2E(独立数据目录)走通「勾选报名 → 批量移出 → 补报名」,名单恢复 1 人、无重复建档、未写进别的组别。
浏览器 E2E(真实 Chromium + 临时同源代理)走通「按钮可见 → 打开同一 picker 且预选 100米/男子组 →
加入后出现在成绩表 → 移出提示 → 空态指路」,无 console 报错。
未验证:弹窗里「团体报名」页签的实际提交、窄屏布局、只读/示例数据两道拦截(仅代码核对)。
This commit is contained in:
AskaEth committed 2026-09-13 23:46:52 +08:00
1 parent a57df78f99
commit 2888200045
5 files changed
+321 -8

No files matched your search

+3
View File
@@ -213,6 +213,7 @@
- **批量退赛 / 恢复**会**立即**按新名次重算积分并推到大屏——**延迟结算(见 10.5)也照算**,因为退赛 / 恢复改的是「谁还算数」,不是「录了多少」,名次和分数必须当场跟着改。已经是「取消资格(dq)」「未出场(dns)」的行会被**跳过、不覆盖原判定**(跳过的人会在确认框里逐条列出原因,例如「已被判罚取消资格(dq),跳过」)。
- **批量移出报名**的确认框会列出**将被删除的人**(姓名|号码布|单位,超过 20 人只列前 20 并报剩余数量)以及**将重算的小项与组别**——看完再确认,删了不能恢复;删除后同样**立即重算并推榜**,不受延迟结算影响。
- **移出之后想重新报名**:不用跑回「基础数据 → 报名导入」——录入界面的工具栏右侧就有 **「补报名」** 按钮(和当前小项、组别在同一屏里)。点开后是同一套「从已有名单勾选」界面,并**预选了当前小项与当前组别**;勾选完点「加入报名」,本组名单会立刻刷新,补上的人直接出现在成绩表里。详见 10.7。
- 一次最多处理 **500 条**报名项,超出请分批提交;有未保存的成绩修改时,请先「存草稿」再批量操作;示例数据模式下不能批量操作。
### 4.9 团体名次(按单位录入)
@@ -657,6 +658,8 @@
报名有两种方式,都在本页完成:**从已有名单勾选**适合零散补报,**表格导入**适合批量录入。
> 本页的「从已有名单勾选」在**成绩录入页的工具栏里也有一个入口**(按钮叫 **「补报名」**),打开的是同一套勾选界面,只是预选了你正在录的那个小项与组别——在录入界面把某人移出报名之后,就地补回来即可(见 4.8)。
**从已有名单勾选**
这张卡片分成「个人报名 / 团体报名」两个页签,页签下方的小项与组别选择是两个页签共用的。选中某个小项后会自动切到与该小项类型相符的页签(个人项目 → 个人报名;团体 / 对抗 / 个人+团体 → 团体报名),也可以手动切换;切到的页签与小项类型不符时页面会提示一句,生成的报名以当前页签为准。
+1
View File
@@ -564,6 +564,7 @@ Console 启动的多屏窗口默认每屏锁定一页。到「大屏控制」点
- **批量退赛**:标记弃权(0 分、不占名次),**随时可以批量恢复**;已经是「取消资格 / 未出场」的行会被跳过、不覆盖原判定;
- **批量移出报名**:**物理删除**报名项连同他的成绩与积分流水,**不可恢复**,确认框会列出将被删的人与将重算的小项 / 组别;
- **移出后想加回来**:还在「成绩录入」页,点工具栏右侧的 **「补报名」**——打开的是「基础数据 → 报名导入」里的同一套勾选界面,并预选当前小项与组别,勾完点「加入报名」本组名单立刻刷新(见使用手册 4.8 / 10.7)。**退赛**的人不用走这条路:直接「批量恢复」即可。
- 一次最多 500 条;有未保存的成绩修改时请先「存草稿」再操作。
- 这三个动作(以及**撤销发布**、**作废单条成绩**、**改积分模板 / 组别权重 / 计分通道**)都**立即重算并推榜**,**不受「分批发布时实时更新榜单」这个延迟结算开关影响**——它们改的是「谁还算数」「按什么规则算」,不是「录了多少」,留着旧分就会变成「榜上还有分、成绩却撤了」。延迟结算只作用于**发布成绩**这一步(见 Q90)。