# Design: H5 运营弹窗配置管理(管理后台) ## 页面结构 - 设置管理下新增「H5运营弹窗配置」入口(仅超管/平台): - 列表页 `src/views/settings/h5-popup-configuration/index.vue` - 创建/编辑表单弹窗(复用 ArtForm + ArtSearchBar/ArtTable 模式) - 详情以弹窗/抽屉展示完整配置 - 分页、筛选、表格沿用 ArtTable / ArtSearchBar / ArtTableHeader 与统一响应结构(`code/msg/timestamp/data`、分页 `items/page/size/total`)。 ## 接口与类型 - 新增 `src/api/modules/h5PopupConfiguration.ts` 与 `src/types/api/h5PopupConfiguration.ts`: - `GET /api/admin/h5-popup-configurations`(page/page_size/enabled,倒序分页) - `POST /api/admin/h5-popup-configurations`(创建) - `GET /api/admin/h5-popup-configurations/{id}`(详情) - `PUT /api/admin/h5-popup-configurations/{id}`(更新,整表提交,版本 +1) - `POST /api/admin/h5-popup-configurations/{id}/enable`、`{id}/disable`(请求体 `{ id }`,返回更新后配置) - 枚举映射常量集中放置:`pages`(home/asset_detail/package_purchase/asset_wallet_recharge)、`frequency`(once/daily)、`action_type`(package_purchase/asset_wallet_recharge,空字符串 = 无)、`card_types`(CMCC/CUCC/CTCC/CBN)。 ## 表单约定 - `pages` 多选必填(空数组非法);`title`(1–100)/`content`(1–2000)/`frequency`/起止时间必填。 - 范围三选器(店铺/设备类型/卡类型)空数组 = 全量,回显「全部」。 - 起止时间用 datetimerange,提交转 ISO 8601(`starts_at`/`ends_at`),`ends_at` 不得早于 `starts_at`。 - `priority` 数字输入(0–1000000);`enabled` 开关;`action_type` 下拉(含「无」选项,提交空字符串清除受控动作)。 - 编辑表单整表提交;编辑保存成功后提示「每次更新版本递增,旧版本通知保留原快照,新版本可向原命中客户按频率重新投放一次」。 - 启用/停用为行操作(停用需二次确认),以接口返回的更新后配置刷新当前行。 ## 权限与可见性 - 权限码:`h5_popup_configuration:list`(菜单/列表)、`:create`、`:update`、`:enable`、`:disable`。 - 路由 `meta.permissions` + 按钮 `v-permission`/`usePermission`,仅超管/平台可见;代理/企业/个人由后端 403 兜底并原文透传失败文案。 - 不提供删除入口(文档无 DELETE 接口)。 ## 待确认 - 权限编码以后端菜单配置为准(前端默认 `h5_popup_configuration:list/create/update/enable/disable`)。