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

2.5 KiB
Raw Blame History

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.tssrc/types/api/h5PopupConfiguration.ts
    • GET /api/admin/h5-popup-configurationspage/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 },返回更新后配置)
  • 枚举映射常量集中放置:pageshome/asset_detail/package_purchase/asset_wallet_rechargefrequencyonce/dailyaction_typepackage_purchase/asset_wallet_recharge空字符串 = 无)、card_typesCMCC/CUCC/CTCC/CBN

表单约定

  • pages 多选必填(空数组非法);title1100/content12000/frequency/起止时间必填。
  • 范围三选器(店铺/设备类型/卡类型)空数组 = 全量,回显「全部」。
  • 起止时间用 datetimerange提交转 ISO 8601starts_at/ends_atends_at 不得早于 starts_at
  • priority 数字输入01000000enabled 开关;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)。