docs(changelog): 团期看板不要显示 28 位班期编号 batchNo(前端缺陷,交接 mmg)
changelog-filename-gate / validate (push) Failing after 1s

batchNo 实际值为 Q + yyyyMMdd + 19 位雪花(28 位),窄列折行截断成
「Q20 / 26…999490」,对用户无可读意义;同行已有 batchLabel(第N期)与
batchName 足以识别,请前端移除其显示(仍保留为 keyword 匹配字段)。

连带记录:搜索框标注「期号 / 名称」,但 keyword 只匹配 batchNo/batchName
不含 batchLabel,实测「第3期」零命中、「3」因雪花数字全量返回。
后端侧已立单 #7942。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mg1eNKoacprUHNvuEKxjqq
这个提交包含在:
API Changelog Bot
2026-09-18 15:47:40 +08:00
共同撰写人 Claude Opus 5
父节点 f9c6ce3dd1
当前提交 72e05778e2
@@ -0,0 +1,93 @@
---
schema: "hl-changelog/v2"
ticket: "frontend"
title: "团期看板不要显示 28 位班期编号 batchNo"
consumer: "admin"
author: "wx(GIT)"
change_type: "前端缺陷"
backend_status: "not_required"
gateway_status: "not_required"
frontend_status: "pending"
frontend_owner: "mmg"
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "纯前端条目,后端零改动。团期看板每行在班期名称右侧渲染了 batchNo,而 batchNo 的实际值是 Q + yyyyMMdd + 19 位雪花 id(共 28 位,如 Q202610082100839310855999490),在窄列里被折行截断成「Q20 / 26…999490」,对用户没有任何可读意义。行内已有 batchLabel(第N期)与 batchName(如「10月8日出发团」)足以识别该班期,请前端移除 batchNo 的显示。注意 batchNo 仍是 keyword 搜索的匹配字段之一,只是不再展示,不要从请求里删掉。"
updated_at: "2026-09-18"
base: "dev-v3"
---
# 团期看板不要显示 28 位班期编号 batchNo(前端缺陷)
> **服务**: hl-order-service-v3(**后端零改动**)
> **页面**: 管理后台 团期订单 → 选中产品 → 右侧班期列表每一行
> **接口**: `GET /v3/admin/order/group-batch/board`
> **日期**: 2026-09-18
> **影响范围**: 仅前台渲染;无端点、无出入参、无路由、无 DDL 变化
---
## 一、现象
班期行在名称右侧渲染 `batchNo`,实际值形如:
```
Q202610082100839310855999490
```
共 28 位(`Q` + `yyyyMMdd` + 19 位雪花 id)。窄列放不下,被折成两行显示成
「`Q20`」换行「`26…999490`」,用户完全读不出含义。
## 二、请前端移除该字段的显示
同一行里已经有两个可读标识,足以定位班期:
| 字段 | 示例 | 说明 |
|---|---|---|
| `batchLabel` | `第3期` | 班期序号,人读的期号 |
| `batchName` | `10月8日出发团` | 班期名称 |
| `batchNo` | `Q202610082100839310855999490` | **请不要显示** |
⚠️ **只是不显示,不要从请求或响应处理里删掉** —— `batchNo` 仍然是关键词搜索的匹配字段之一
(见下节),前端内部仍可能需要它。
## 三、为什么后端不改这个编号格式
后端契约里 `batchNo` 的示例值是 `GB-26-000001`
(`GroupBatchBoardItemRespVO.java:35` 的 `@ApiModelProperty(example = ...)`),
原型稿里则是 `XMM-26-01` 这类短码——都是人可读的业务编号。
但**实际生成规则**是
`ProductConstants.BATCH_NO_PREFIX + dateStr + IdWorker.getId()`
(`hl-product-service-v2` 的 `ProductPricingService.java:931`、`ProductCopyService.java:272` 两处),
即固定前缀 `Q` 加日期加雪花 id。
改生成规则会动到 `group_tour_batch.uk_batch_no` 这个全局唯一键与全部存量数据,
不是前端这条能顺带解决的,因此**本条目只要求前端不显示**,编号格式是否重做另议。
## 四、连带问题:搜索框的「期号」搜不到界面上的期号
这一条**需要后端配合**,已单独立单,见文末「相关」。
本页搜索框标注为「期号 / 名称」,但 `keyword` 的匹配范围只有 `batchNo` 与 `batchName`
(`MergedRowCriteriaDTO.java:22`:「对 `batchNo`/`batchName` 忽略大小写包含匹配」),
**不含 `batchLabel`**。2026-09-18 测试环境实测(产品 `2100839045562077186`,10 个班期):
| 输入 | 命中数 | 说明 |
|---|---|---|
| `第3期` | **0** | 界面上显示的期号,搜不到 |
| `3` | **10** | 匹配到雪花 id 里的数字,全量返回,是噪音 |
| `10月8日出发团` | 1 | 名称可用 |
| `Q202610082100839310855999490` | 1 | 可用但无人会手打 |
移除 `batchNo` 显示之后,用户能看到的期号只剩 `第3期`,而它恰好搜不到。
后端补齐 `batchLabel` 的匹配之后,这个洞才补上。**两件事可以各自独立上线**,
前端移除显示不必等后端。
---
## 相关
- 后端工单:**#7942**(`wx/HL`)——`keyword` 增加对 `batchLabel` 的匹配。
- 同一页面另有一条后端问题:统计条缺省收窄班期范围却不声明,导致「10 期 / 8 期」两个数字打架,
见 **#7939**。三者互不依赖。