hl-api-changelog/changelogs/2026-04/2026-04-18_home-screen2-remove-card-link.md

3.6 KiB

小程序首页第二屏 - 主题卡片去掉"链接类型"字段

  • 日期: 2026-04-18
  • PR: #829 (Closes #828)
  • 类型: 契约变更(减字段)
  • 状态: 已合并到 dev + 测试环境部署中

本次改动紧随同日的 #823 首页第二屏 v2。v2 设计的"卡片链接跳转"能力产品决定取消,卡片回归纯展示。


受影响接口

管理端

  • PUT /admin/home-config/brand-story(保存品牌故事)
  • GET /admin/home-config/brand-story(查询品牌故事)

小程序端

  • GET /mp/home-config/screen2(首页第二屏聚合)

删除字段(每张卡片 cards[i]

字段 类型 原含义
linkType String 链接类型NONE/PRODUCT/PRODUCT_LINE/ARTICLE/URL/MINI_PAGE
linkTarget String 链接目标(产品/产品线 ID / URL / 小程序页面路径)
linkTargetType String 响应回填的产品类型CORE/GROUP

保留字段(每张卡片 cards[i]

字段 类型 说明
title String 卡片标题必填,≤100 字符)
subtitle String 卡片副标题可选,≤200 字符)
coverUrl String 封面图 URL必填,https CDN 直链,≤500 字符)

请求示例PUT /admin/home-config/brand-story

{
  "title": "每一条线路,我们都亲自走过。",
  "subtitle": null,
  "description": "整个呼伦贝尔...",
  "coverUrl": "https://cdn.hulalv.com/home/brand.jpg",
  "cards": [
    {
      "title": "季节之旅",
      "subtitle": "夏·秋·冬三季体验",
      "coverUrl": "https://cdn.hulalv.com/cards/1.jpg"
    },
    {
      "title": "亲子研学",
      "subtitle": "边玩边学·深度体验",
      "coverUrl": "https://cdn.hulalv.com/cards/2.jpg"
    }
  ],
  "publish": true
}

响应示例GET /mp/home-config/screen2

{
  "code": 200,
  "data": {
    "brandStory": {
      "title": "每一条线路,我们都亲自走过。",
      "description": "...",
      "coverUrl": "https://cdn.hulalv.com/home/brand.jpg"
    },
    "cards": [
      {
        "title": "季节之旅",
        "subtitle": "夏·秋·冬三季体验",
        "coverUrl": "https://cdn.hulalv.com/cards/1.jpg"
      }
    ]
  }
}

前端 Action

管理端(必改)

  1. 移除卡片编辑区底部"链接类型 *"下拉框组件
  2. 移除卡片编辑区"链接目标"相关组件(如产品选择器 / URL 输入框 / 小程序页面选择)
  3. 请求体中 cards[i] 不再传 linkType / linkTarget

小程序端(必改)

  1. 主题卡片点击事件去除(卡片不再支持跳转)
  2. 如果之前读了 cards[i].linkType / .linkTarget / .linkTargetType 的逻辑,一并删除

向后兼容说明

  • DB 存量数据中的 JSON 字段 linkType/linkTarget/linkTargetType 不删,反序列化时被后端 @JsonIgnoreProperties(ignoreUnknown=true) 安全忽略
  • 前端如果旧请求仍传了这三个字段,后端也会被 @JsonIgnoreProperties(ignoreUnknown=true) 忽略(不会 400
  • 不推荐继续传,清理前端代码更彻底

校验规则变化

字段 变化
cards[i].linkType @NotBlank + @Pattern(NONE/PRODUCT/PRODUCT_LINE/ARTICLE/URL/MINI_PAGE)字段删除
cards[i].linkTarget @Length(max=500)字段删除
cards 数组 保留 @Size(max=2)

回归验证

部署后调 GET /mp/home-config/screen2,确认 data.cards[i] 只包含 title / subtitle / coverUrl 即可。