3.6 KiB
3.6 KiB
1. Contract Confirmation
- 1.1 权限编码前端确定:
h5_popup_configuration:list/:create/:update/:enable/:disable(以后端菜单配置为准)。 - 1.2 更新接口语义按文档:不传保持原值;
action_type空串 = 清除;范围空数组 = 改全量;pages空数组非法;enabled不传保持原值;ends_at不得早于starts_at;content1–2000、title1–100、priority0–1000000;更新成功版本 +1 且旧版本通知不被改写。 - 1.3
enable/disable请求体{ id },返回更新后的 DtoH5PopupConfigurationResponse。 - 1.4 列表
page1–10000、page_size1–100、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.ts、src/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被后端拒绝。