petsHero-AI/docs/home.md
2026-03-13 20:10:57 +08:00

1.7 KiB
Raw Blame History

主页 UI 显示逻辑

依赖接口:GET /v1/user/common_info 返回的 data.surgeJSON 字符串)解析为 extConfig结构见 extConfig.md

extConfig 与顶部分类栏

  • need_wait(是否展示 Video 菜单)
    • 解析自 surge.need_wait,写入 UserState.needShowVideoMenu
    • 仅 need_wait === true:展示顶部分类栏(对应 Pencil 设计中的 tabRow节点 bK6o6行为见下。
    • 其他情况need_wait === false、未下发或未解析不展示顶部分类栏列表只展示 extConfig.items 的图片列表。

need_wait === true 时的分类与列表

  1. 分类栏
    使用图转视频分类接口数据,在分类列表末尾增加一个固定分类「pets」。
  2. 列表内容
    • 选中固定分类 pets:列表展示 extConfig.items 的图片列表(不请求视频任务接口)。
    • 选中其他分类:按原逻辑请求对应分类的视频任务接口,列表展示接口返回的视频任务。

数据流简述

  1. 登录后请求 common_info,在 AuthService._saveCommonInfoToState 中解析 data.surge
    • 写入 enable_third_party_payment 等;
    • 解析 need_waititems,通过 UserState.setExtConfig(needShowVideoMenuValue: needWait, items: items) 写入。
  2. 主页 HomeScreen 监听 UserState.needShowVideoMenuUserState.extConfigItems,据此决定:
    • 是否渲染顶部分类栏;
    • 当前列表是来自 extConfig.items 还是来自视频任务接口。
  3. extConfig 的 items 单项字段:imagecosttitledetail用于展示卡片并作为生图参数taskType / ext