diff --git a/changelogs/2026-04/27_fix_admin-banner_link-type-label-field.md b/changelogs/2026-04/27_fix_admin-banner_link-type-label-field.md new file mode 100644 index 0000000..fb0bb93 --- /dev/null +++ b/changelogs/2026-04/27_fix_admin-banner_link-type-label-field.md @@ -0,0 +1,51 @@ +# admin 轮播图列表新增 linkTypeLabel 字段(链接类型中文) + +**日期**: 2026-04-27 +**PR**: #1486 (Closes #1480) +**影响端**: 管理后台 admin + +## 行为变化 + +`BannerVO` 在响应里新增字段 `linkTypeLabel`(String),由后端从字典 `banner_link_type` 直接翻译好回填。 + +涉及接口: +- `GET /admin/banner` 列表 +- `GET /admin/banner/{id}` 详情 +- `POST /admin/banner` 创建(响应) +- `PUT /admin/banner/{id}` 更新(响应) + +## 字段映射 + +| linkType | linkTypeLabel | +|----------|---------------| +| PRODUCT | 产品详情 | +| ARTICLE | 文章详情 | +| URL | 外部链接 | +| MINI_PAGE | 小程序页面 | +| NONE | 无跳转 | +| **PRODUCT_LINE** | **产品线**(2026-04-18 新增字典值,本次修复重点) | +| 字典里没有的值 | `null`(兜底,不抛异常) | + +## 为什么改这个 + +之前 `BannerVO` 只回 `linkType` 裸 value,前端依赖 `/admin/dict/all` 拿到的字典 store 自行 lookup 翻译。`PRODUCT_LINE` 是 2026-04-18 新增的字典值,前端 store 是登录时拉的快照、没拿到新值,所以列表里这条 banner 的「链接类型」列显示裸 `PRODUCT_LINE` 而不是「产品线」。 + +后端兜底翻译,与项目其他 `*Label` 字段(statusLabel / typeLabel 等)规范一致,前端不必再依赖字典 store 的新鲜度。 + +## 验收实证(测试服 2026-04-27 部署后) + +``` +GET /admin/banner?page=1&pageSize=20 +linkType linkTypeLabel title +PRODUCT 产品详情 '2026 亲子游学营' +PRODUCT_LINE 产品线 '额吉的故乡' ← bug fix 核心 +``` + +## 前端建议 + +**短期**:直接用 `linkTypeLabel` 字段渲染中文,不必再依赖字典 store lookup。 +**保留兼容**:仍保留 `linkType` 字段(裸 value),用于编辑表单的下拉框 v-model 等场景。 + +## mp 端 / C 端 + +mp 端 `BannerVO` 同样会带这个字段(共用 VO),但前端目前不读,无影响。如有需要可直接使用。