2.5 KiB
2.5 KiB
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)。