Files
one-pipe-system/openspec/changes/add-h5-popup-configuration-management/tasks.md
2026-09-17 12:16:20 +08:00

3.6 KiB
Raw Blame History

1. Contract Confirmation

  • 1.1 权限编码前端确定:h5_popup_configuration:list / :create / :update / :enable / :disable(以后端菜单配置为准)。
  • 1.2 更新接口语义按文档:不传保持原值;action_type 空串 = 清除;范围空数组 = 改全量;pages 空数组非法;enabled 不传保持原值;ends_at 不得早于 starts_atcontent 12000、title 1100、priority 01000000更新成功版本 +1 且旧版本通知不被改写。
  • 1.3 enable/disable 请求体 { id },返回更新后的 DtoH5PopupConfigurationResponse。
  • 1.4 列表 page 110000、page_size 1100、enabled 筛选,按最近更新时间倒序分页。

2. API And Types

  • 2.1 新增 src/api/modules/h5PopupConfiguration.ts:列表、创建、详情、更新、启用、停用 6 个接口。
  • 2.2 新增 src/types/api/h5PopupConfiguration.ts:请求/响应 DTO含 pages/frequency/action_type/card_types 枚举、范围集合、version、creator/updater 等;更新语义按「不传保持原值/空数组=全量/空串=清除」注释)。
  • 2.3 在 src/api/modules/index.tssrc/types/api/index.ts 导出新模块/类型。
  • 2.4 对齐统一响应 code/msg/timestamp/data 与分页 items/page/size/total

3. List Page

  • 3.1 设置管理下新增「H5运营弹窗配置」菜单与路由仅超管/平台可见,权限码 h5_popup_configuration:list)。
  • 3.2 列表:page/page_size/enabled 筛选,分页展示,按后端倒序。
  • 3.3 列:标题、命中页面、范围(店铺/设备类型/卡类型,空数组显示「全部」)、优先级、频率、启停状态、受控动作、生效起止、版本、创建/更新人与时间。
  • 3.4 行操作:详情、编辑、启用/停用(停用需二次确认);无删除入口。

4. Create / Edit / Detail

  • 4.1 创建表单:title/content/pages 多选/frequency/起止时间必填校验pages 非空);priority/enabled/action_type/范围可选。
  • 4.2 范围集合 shop_ids/device_types/card_types 空数组 = 全量;编辑读回空数组显示「全部」。
  • 4.3 编辑表单整表提交;保存成功提示「每次更新版本递增,旧版本通知保留原快照,新版本可向原命中客户按频率重新投放一次」。
  • 4.4 编辑支持 action_type 清空(「无」→ 空字符串)与 ends_at 不早于 starts_at 的前端校验。
  • 4.5 详情(弹窗/抽屉)展示完整配置(含 version、frequency_text、enabled_text、creator/updater

5. Permissions And UX

  • 5.1 按钮/入口按 h5_popup_configuration:list/create/update/enable/disable 接入 usePermission/v-permission,无权限不渲染。
  • 5.2 固定提示停用「停用后停止新投放历史通知在展示期内仍可见」启用「启用后参与候选匹配」403 文案原文透传。
  • 5.3 表单校验与请求失败提示稳定,不破坏列表渲染。

6. Verification

  • 6.1 vue-tsc --noEmit 与新增文件 eslint 通过。
  • 6.2 列表筛选/分页/倒序展示正确。
  • 6.3 创建必填校验、范围全量语义、编辑版本 +1 提示正确。
  • 6.4 启用/停用流程与提示正确;停用不清数据;启停不递增版本、刷新最近更新时间。
  • 6.5 代理/企业/个人看不到入口;直达路由 403 文案透传。
  • 6.6 联调:编辑整表提交后版本 +1、启停返回完整配置并刷新行ends_at 早于 starts_at 被后端拒绝。