Fade hai 1 mes
pai
achega
9c964ca529

+ 3 - 1
.claude/settings.local.json

@@ -20,7 +20,9 @@
       "Bash(git commit -m ' *)",
       "Bash(python3 -c ' *)",
       "Bash(python3)",
-      "Bash(grep -rohE '\\\\$message\\\\.|\\\\$confirm|\\\\$alert|\\\\$prompt|\\\\$msgbox|\\\\$notify' .)"
+      "Bash(grep -rohE '\\\\$message\\\\.|\\\\$confirm|\\\\$alert|\\\\$prompt|\\\\$msgbox|\\\\$notify' .)",
+      "Bash(lark-cli auth *)",
+      "Bash(wait)"
     ],
     "additionalDirectories": []
   }

+ 8 - 4
pc-v3/src/mock/index.js

@@ -383,7 +383,8 @@ const equityList = [
     jumpLink: '-',
     exchangeMethod: '权益平台',
     productType: '券码',
-    skuNo: '',
+    skuNo: 'C0000001000000101',
+    stockCount: 5000,
     merchantName: '商户A',
     creator: '李运营',
     createTime: '2026-04-10 09:32:15',
@@ -467,7 +468,8 @@ const equityList = [
     jumpLink: '-',
     exchangeMethod: '权益平台',
     productType: '券码',
-    skuNo: '',
+    skuNo: 'C0000001000000501',
+    stockCount: 3000,
     merchantName: '商户E',
     creator: '王运营',
     createTime: '2026-03-28 09:00:11',
@@ -488,7 +490,8 @@ const equityList = [
     jumpLink: '-',
     exchangeMethod: '权益平台',
     productType: '券码',
-    skuNo: '',
+    skuNo: 'C0000001000000601',
+    stockCount: 1000,
     merchantName: '商户F',
     creator: '李运营',
     createTime: '2026-05-16 10:00:00',
@@ -621,7 +624,8 @@ const auditList = [
       jumpMethod: '-',
       jumpLink: '-',
       productType: '券码',
-      skuNo: '',
+      skuNo: 'C0000001000000101',
+      stockCount: 5000,
       merchantName: '商户A',
       subTitle: '副标题示例'
     },

+ 4 - 5
pc-v3/src/views/EquityProducts.vue

@@ -151,13 +151,13 @@
         </el-table-column>
         <el-table-column label="SKU编号" width="160" show-overflow-tooltip>
           <template #default="scope">
-            <span v-if="isRongshuProduct(scope.row) && scope.row.skuNo">{{ scope.row.skuNo }}</span>
+            <span v-if="isPlatformProduct(scope.row) && scope.row.skuNo">{{ scope.row.skuNo }}</span>
             <span v-else class="empty-text">-</span>
           </template>
         </el-table-column>
         <el-table-column label="库存数" width="100" align="right">
           <template #default="scope">
-            <span v-if="isRongshuProduct(scope.row) && hasStock(scope.row)">{{ scope.row.stockCount }}</span>
+            <span v-if="isPlatformProduct(scope.row) && hasStock(scope.row)">{{ scope.row.stockCount }}</span>
             <span v-else class="empty-text">-</span>
           </template>
         </el-table-column>
@@ -288,9 +288,8 @@ export default {
       if (s === '下架待审核') return 'danger'
       return ''
     },
-    // 仅荣数平台兑换(微信立减金)商品才有 SKU 编号和库存数
-    isRongshuProduct(row) {
-      return row.isPlatformExchange === '是' && row.productType === '微信立减金'
+    isPlatformProduct(row) {
+      return row.isPlatformExchange === '是' && (row.productType === '券码' || row.productType === '微信立减金')
     },
     hasStock(row) {
       return row.stockCount !== undefined && row.stockCount !== null && row.stockCount !== ''

+ 6 - 2
prd/汇丰银行/汇丰银行权益中台-FSD.md

@@ -48,6 +48,8 @@
 
 <br>
 
+<br>
+
 ![BlockNote image](../../.resources/image-1779243010146.png)![BlockNote image](../../.resources/image-1779243019476.png)
 
 ## 2\. 用户登录
@@ -246,6 +248,8 @@
 
 <br>
 
+<br>
+
 ![BlockNote image](./screenshots/2-2-equity-add-source-rongshu.png)![BlockNote image](./screenshots/dialog-rongshu-product.png)
 
 **C. 是否权益平台兑换 = 否**
@@ -1202,7 +1206,7 @@ PS2:信用卡权益展示&领取规则:通过客户号去CVP平台查询获
 | 发放计划开始时间 | 是   | datetime 选择器,精确到秒,开始时间必须大于当前时间,格式 `YYYY-MM-DD HH:mm:ss` |
 | 发放计划结束时间 | 是   | datetime 选择器,精确到秒;提交时校验「结束时间必须晚于开始时间」 |
 | 选择客群 | 是   | 多选下拉(支持搜索),已选项以可折叠 Tag 展示;选项格式 `客群名称 (客群编号)`,数据源为人群管理中的客群任务(含规则组圈选与指定客户号两种类型);校验文案 `请至少选择一个客群` |
-| 是否自动发放 | 是   | 圆点单选,默认 `是`:  <br>  <br>• **是**:每个发放周期开始时,系统自动执行发放任务  <br>  <br>• **否**:每个发放周期需要运营人员手动触发发放 |
+| 是否自动发放(一期先不做) | 是   | 圆点单选,默认 `是`:  <br>  <br>• **是**:每个发放周期开始时,系统自动执行发放任务  <br>  <br>• **否**:每个发放周期需要运营人员手动触发发放 |
 | 获取方式 | 是   | 圆点单选,默认 `用户领取`:  <br>  <br>• **用户领取**:权益发放到客户名下后由用户主动领取  <br>  <br>• **直接发放**:权益自动到账,无需领取动作 |
 | 选择权益 | 是   | 数据源为「已上架」的借记卡权益。选项格式 `权益名称 (权益编号)` • 用户领取模式:多选下拉(支持搜索,已选项以可折叠 Tag 展示) • 直接发放模式:单选下拉 + 搜索 切换 `用户领取 → 直接发放` 时,若已选多个权益,自动只保留第一个;校验文案 `请至少选择一个权益` / `请选择一个权益` |
 | 单客户权益数量 | 是   | 行内组合控件:左侧周期下拉(整个周期 / 每月 / 每季度 / 每年),右侧数字输入(1 ~ 9999),后缀"个" |
@@ -1328,7 +1332,7 @@ PS2:信用卡权益展示&领取规则:通过客户号去CVP平台查询获
 
 * * *
 
-## 6\. 发放任务
+## 6\. 发放任务(一期先不做)
 
 发放任务由系统按发放周期自动生成(是否自动发放 = 是)或由运营人员手动触发(是否自动发放 = 否),每次发放周期对应一条发放任务记录。
 

+ 2373 - 0
prd/汇丰银行/汇丰银行权益中台-FSD.md.bak

@@ -0,0 +1,2373 @@
+# 一、系统说明
+
+| 系统  | 说明  |
+| --- | --- |
+| 统一门户 | 汇丰银行内部员工使用的统一登录与入口管理平台,集成了用户管理、角色分配、系统管理等基础功能。所有后台系统的登录入口统一通过此门户。 |
+| CUPD / 新商城 | 权益管理后台系统,负责借记卡权益和信用卡权益的商品配置、审核流程、券码管理、发放计划等权益运营管理功能。 |
+| 统一资源管理后台 | 负责券码资源的导入批次管理、码库管理、券码发放与核销等资源管理功能。 |
+
+# 二、角色管理
+
+## 流程
+
+1.  使用管理员账号,登录【统一门户】
+    
+2.  点击“新商城外跳联登”,进入【商城】角色管理配置角色
+    
+3.  回到【统一门户】系统管理->用户管理->分配角色
+    
+
+## 1.角色管理
+
+入口:【统一门户】->【新商城外跳联登】
+
+![BlockNote image](../../.resources/image-1779242912664.png)
+
+### 1.1 角色列表
+
+展示全部已创建的【普通角色】类型的角色。
+
+![BlockNote image](../../.resources/image-1779242923866.png)
+
+### 1.2 添加/编辑角色
+
+![BlockNote image](../../.resources/image-1779242933886.png)
+
+点击【添加】可添加角色。
+
+-   **角色名称:**可自定义角色名称
+    
+-   **角色状态:**包含启用 / 不启用,启用时可登录,不启用时不可登录
+    
+-   **菜单:**角色菜单权限,可选择到最后一级菜单
+    
+-   **按钮权限:**选了最后一级菜单后,会展示对应页面的【按钮权限】,每个菜单的【按钮权限】都会在上线前配置完成。
+    
+
+![BlockNote image](../../.resources/image-1779242945672.png)
+
+### 1.3 分配角色
+
+进入【统一门户】-【用户管理】分配角色
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+![BlockNote image](../../.resources/image-1779243010146.png)![BlockNote image](../../.resources/image-1779243019476.png)
+
+## 2\. 用户登录
+
+登录页填写账号、密码即可登录。
+
+![BlockNote image](../../.resources/image-1779243033492.png)
+
+## 3\. 修改密码
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+![](../../.resources/image-1779956055351.png)![](../../.resources/image-1779956082595.png)
+
+## 4\. 用户配置计划
+
+-   一期:在CUPD中独立配置,我们会批量导入行内账号,可通过账号和密码登录,登录后修改密码。
+    
+
+![BlockNote image](../../.resources/image-1779243033492.png)
+
+-   二期:接行内AD,然后和行内的用户匹配关联。
+    
+
+# 三、权益管理
+
+## 1\. 概述
+
+### 1.1 业务背景
+
+汇丰银行此前仅支持信用卡权益,本次升级新增**借记卡权益**,将权益范围拓展至全行用户,提升用户活跃度。
+
+### 1.2 权益分类
+
+按**是否权益平台兑换**分为两类:
+
+| 是否权益平台兑换 | 商品类型 | 说明  |
+| --- | --- | --- |
+| **是** | **券码** | 银行自己运营维护的权益商品 |
+| **是** | **微信立减金** | 由荣数侧统一提供的权益商品池,选择后自动回填名称、主图和库存 |
+| **否** | —   | 第三方合作商家权益(太古地产、龙腾、h5链接、小程序链接) |
+
+### 1.3 权益商品状态流转
+
+-   **商品状态(**决定前台是否展示):`未上架` / `已上架`
+    
+-   **审核状态(**决定后台审核工作流):`草稿` / `上架待审核` / `下架待审核` / `审核通过`
+    
+
+1.3.1 双状态组合矩阵
+
+| 商品状态 | 审核状态 | 业务含义 | 可执行操作 |
+| --- | --- | --- | --- |
+| 未上架 | 草稿  | 新建后未提审 | 查看、编辑、删除 |
+| 未上架 | 上架待审核 | 新建提审,等待审核,前台不可见 | 查看  |
+| 已上架 | 审核通过 | 正式上架中,前台可见 | 查看、下架、导入券码、券码管理、调整显示顺序、生成链接 |
+| 已上架 | 下架待审核 | 已上架但已发起下架,等待审核,前台可见 | 查看  |
+| 未上架 | 审核通过 | 已下架,前台不可见 | 查看、编辑、删除 |
+
+### 1.4 操作入口
+
+**Liso 后台 → 定制功能 → 汇丰银行 → 权益管理**,包含两个子菜单:
+
+-   **借记卡权益**:权益商品完整增删改查、审核、券码管理、生成链接等
+    
+-   **信用卡权益**:仅维护显示页面与展示顺序,权益从信用卡权益平台自动同步过来
+    
+
+* * *
+
+## 2\. 借记卡权益
+
+权限控制说明:数据权限按照【**一级分行**】隔离,相同一级分行可见,不同一级分行不可见。
+
+### 2.1 权益列表
+
+![BlockNote image](./screenshots/2-1-equity-products-list.png)
+
+**2.1.1 筛选条件**
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 权益名称 | 文本输入 | 模糊匹配 |
+| 权益编号 | 文本输入 | 精准匹配(系统生成的 `Q` + 6 位序号,如 `Q000001`) |
+| 商品状态 | 下拉单选 | 选项:未上架 / 已上架;不选视为全部 |
+| 审核状态 | 下拉单选 | 选项:草稿 / 上架待审核 / 下架待审核 / 审核通过;不选视为全部 |
+
+**操作按钮**:
+
+-   【查询】:按筛选条件查询
+    
+-   【重置】:清空筛选条件
+    
+-   【添加权益】:跳转至新增向导(位于查询条件下方,作为列表主操作按钮)
+    
+
+**2.1.2 列表字段**
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 行内主操作按钮 +「更多」下拉菜单按"商品状态 + 审核状态"显隐对应操作,详见 2.1.3 操作可见性矩阵 |
+| 权益名称 | 权益名称,超过一行时换行显示 |
+| 商品状态 | 使用色块 Tag 展示 可选值:未上架(灰)/ 已上架(绿) |
+| 审核状态 | 使用色块 Tag 展示 可选值:草稿(灰)/ 上架待审核(默认)/ 下架待审核(红)/ 审核通过(绿) |
+| 是否权益平台兑换 | 是 / 否,Tag 展示:是(绿)/ 否(灰) |
+| 商品类型 | 仅是否权益平台兑换 = 是时显示,可选值:券码 / 微信立减金;是否权益平台兑换 = 否时显示”-” |
+| 外部权益链接 | 仅是否权益平台兑换 = 否时显示,链接来源:太古地产 / 龙腾 / h5链接 / 小程序链接;是否权益平台兑换 = 是时显示”-” |
+| 是否有详情页 | 仅是否权益平台兑换 = 否时使用,标识跳转触发位:”有” = 用户进入权益详情页后再跳出;”没有” = 用户在首页/列表页/组装页点击后直接跳出;是否权益平台兑换 = 是时显示”-” |
+| 权益编号 | 系统生成,统一 `Q` + 6 位序号格式(如 `Q000001`),全局唯一 |
+| SKU编号 | 仅是否权益平台兑换 = 是时显示,由"选择权益"或券码配置自动回填;是否权益平台兑换 = 否时显示"-" |
+| 库存数 | 仅是否权益平台兑换 = 是时显示,整数,微信立减金由荣数商品池回填,券码由券码管理统计剩余数量;是否权益平台兑换 = 否时显示"-" |
+| 显示页面 | 使用 Tag 展示当前权益启用的展示位:开启"权益首页/列表页"时显示一个「权益首页/列表页」Tag;开启"组装页"时按所选组装页(组装页 A/B/C/D…)追加 Tag。两项均未开启时显示"-" |
+| 创建人 | 创建该权益的用户昵称 |
+| 创建时间 | Y-m-d H:i:s |
+| 审核人 | 最近一次审核操作的执行人昵称;未审核时为“-" |
+| 审核时间 | 最近一次审核操作的时间(Y-m-d H:i:s);未审核时为空 |
+
+**2.1.3 操作可见性矩阵**
+
+行内固定显示「查看」按钮,再按状态显示「编辑」/「下架」,最右侧为【更多】下拉菜单。状态命中规则如下:
+
+| 操作  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 查看  | 所有状态 | 进入查看页,字段与编辑一致但所有输入态禁用,并展示操作日志 |
+| 编辑  | 商品状态 = `未上架` 且 审核状态 = `草稿` | 进入编辑向导继续完善草稿 |
+| 下架  | 商品状态 = `已上架` 且 审核状态 = `审核通过` | 二次确认弹窗("确定提交'XXX'的下架审核吗?审核通过后才会下架。")→ 确认后生成下架审核单,权益审核状态切到 `下架待审核` |
+| 更多 → 调整显示顺序 | 商品状态 = `已上架` | 弹出气泡:"调整到第 N 位",输入框默认值=当前位次,范围 1 ~ 当前列表总条数;提示文案"移动端权益首页和列表页按照该顺序展示";【确定】后列表局部刷新到目标位置 |
+| 更多 → 复制 | 所有状态 | 进入【添加权益】向导,自动回填源权益的基本信息、规则、显示页面等字段;保存时由系统生成新权益编号 |
+| 更多 → 生成链接 | 商品状态 = `已上架` | 弹出"生成借记卡权益链接"对话框,给出可分享的借记卡权益链接 |
+| 更多 → 导入券码 | 商品状态 = `已上架` 且 是否权益平台兑换 = `是` 且 商品类型 = `券码` | 新开页面跳转至统一资源管理后台的"新增导入批次"页面 |
+| 更多 → 券码管理 | 商品状态 = `已上架` 且 是否权益平台兑换 = `是` 且 商品类型 = `券码` | 新开页面跳转至统一资源管理后台的"码库管理"页面 |
+| 更多 → 删除 | 商品状态 = `未上架` 且 审核状态 ∈ { `草稿`, `审核通过` } | 二次确认弹窗("确定删除权益'XXX'吗?"),确认后从列表移除 |
+
+生成借记卡权益链接对话框:
+
+![BlockNote image](./screenshots/dialog-equity-link.png)
+
+**2.1.4 分页**
+
+-   默认每页 10 条,可切换 10 / 20 / 50
+    
+-   支持上一页、下一页、页码、跳转
+    
+-   左下角展示 `Total N` 总条数
+    
+
+* * *
+
+### 2.2 添加权益
+
+![BlockNote image](./screenshots/2-2-equity-add-step1.png)
+
+权益添加采用**三步骤向导**:填写权益信息 → 设置规则 → 更多设置。
+
+步骤间通过页面底部的【上一步】/【下一步】导航,最后一步可【保存草稿】或【提交审核】。
+
+**复制场景**:列表「更多 → 复制」进入本向导后,自动回填源权益的基本信息、规则、显示页面等内容,权益编号留空(保存时由系统生成新编号),同时给出提示 `已复制「XXX」的内容,请确认后保存`。
+
+* * *
+
+2.2.1 第一步:填写权益信息
+
+第一步包含两个卡片:**基本信息**(始终显示)与 **详情信息**(按"是否权益平台兑换 / 是否有详情页"条件显示)。
+
+(1)基本信息
+
+页面顶部先选择**是否权益平台兑换**(必填,圆点单选,默认"是"):
+
+-   是(默认)
+    
+-   否
+    
+
+当是否权益平台兑换 = "是"时,下方展示**商品类型**(必填,圆点单选,默认"券码"):
+
+-   券码(默认)
+    
+-   微信立减金
+    
+
+不同组合展开不同字段:
+
+**A. 是否权益平台兑换 = 是,商品类型 = 券码**
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 权益名称 | 是   | 最长 40 字符 |
+| 权益图标 | 是   | 上传 1 张,建议尺寸 80×80px。Tooltip:"展示在权益首页和权益列表页" |
+
+![BlockNote image](./screenshots/2-2-equity-add-step1.png)
+
+**B. 是否权益平台兑换 = 是,商品类型 = 微信立减金**
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 选择权益 | 是   | 只读输入框 + 【选择】按钮。弹窗"选择微信立减金"中按商品名称模糊搜索,每页 10 条;选中后自动回填权益名称、商户名称、库存数、权益主图 |
+| 权益名称 | 是   | 最长 40 字符,由"选择权益"自动回填,仍可手动编辑 |
+| 库存数 | 是   | 整数,范围 0 ~ 100000,由"选择权益"自动回填,最大不超过库存上限 |
+| 权益图标 | 是   | 上传 1 张,建议尺寸 80×80px |
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+<br>
+
+![BlockNote image](./screenshots/2-2-equity-add-source-rongshu.png)![BlockNote image](./screenshots/dialog-rongshu-product.png)
+
+**C. 是否权益平台兑换 = 否**
+
+先选择"外部权益链接"与"是否有详情页"两个关键字段;
+
+当外部权益链接为 h5链接 / 小程序链接时还需补充对应地址:
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 外部权益链接 | 是   | 下拉单选:太古地产 / 龙腾 / h5链接 / 小程序链接 |
+| h5链接 | 是   | 仅"外部权益链接 = h5链接"时显示,输入完整 URL |
+| 小程序appid | 是   | 仅"外部权益链接 = 小程序链接"时显示 |
+| 小程序页面地址 | 是   | 仅"外部权益链接 = 小程序链接"时显示 |
+| 是否有详情页 | 是   | 圆点单选:"没有" / "有"。Tooltip:"没有详情页时直接从首页/列表页/组装页跳转" |
+| 权益名称 | 是   | 最长 40 字符 |
+| 权益图标 | 是   | 上传 1 张,建议尺寸 80×80px |
+
+注:是否权益平台兑换 = 否时不显示"商品类型"与"库存数"字段。
+
+![BlockNote image](./screenshots/2-2-equity-add-third-detail.png)
+
+* * *
+
+(2)详情信息
+
+**显示条件**:是否权益平台兑换 = 是;或 是否权益平台兑换 = 否 **且** "是否有详情页 = 有"。
+
+当是否权益平台兑换 = 否 **且** "是否有详情页 = 没有"时,整个详情信息卡片不显示。
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 权益主图 | 是   | 上传 1 张,建议尺寸 716×400px |
+| 权益介绍 | 是   | 多行文本,最长 500 字符,带字数实时提示 |
+| 权益有效期 | 是   | • 是否权益平台兑换 = 是:圆点单选「取自发放计划 / 自定义输入」,选"自定义输入"时下方出现文本框(最长 50 字符,带字数提示) • 是否权益平台兑换 = 否:直接输入文本框(最长 50 字符) |
+| 权益内容 | 是   | 富文本编辑器,需支持PDF上传,可自定义PDF链接文本 |
+| 权益说明 | 是   | 富文本编辑器,需支持PDF上传,可自定义链接文本 |
+| 下单成功短信 | 否   | **仅是否权益平台兑换 = 是时显示。** 开关 + 短信模板下拉。开启后选择已配置的短信模板,模板内容会在下方实时回显。模板支持占位符:`${productName}` 权益名称、`${expireDate}` 结束日期、`${exchangeNum}` 卡号、`${exchangePwd}` 卡密、`${qrCodeDownPaths}` 权益使用路径 |
+| 领取成功按钮 | 是   | 默认值"马上去使用",可修改 |
+
+2.2.2 第二步:设置规则
+
+![BlockNote image](../../.resources/image-1779247485788.png)
+
+第二步包含**展示规则**与**领取规则**两组开关,所有开关默认关闭,关闭时不做任何限制。
+
+(1)展示规则(控制权益在权益首页/列表中是否可见)
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 展示时间限制 | 开关  | 开启后配置开始/结束时间(精确到秒) |
+| 展示客群限制 | 开关  | 开启后多选客群(示例选项:客群A / 客群B / 客群C),命中的用户才可见 |
+
+(2)领取规则(控制用户能否领取)
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 领取时间限制 | 开关  | 开启后配置开始/结束时间(精确到秒)。 |
+| 领取客群限制 | 开关  | 开启后展开顶部提示卡:"**需在【发放计划】中选择权益发放,未发放的权益移动端不展示**"。 下方为**不满足提示**配置:  <br>  <br>• 提示内容(最长 200 字符) :默认“很抱歉,您暂不符合领取条件。”  <br>  <br>• 跳转按钮文案(最长 10 字符):默认“返回”  <br>  <br>• 跳转按钮链接(最长 200 字符):默认 权益首页链接 |
+
+注:**领取客群不再在权益处直接选定**,统一由【发放计划】维护"哪些客群可领"。本开关仅用于配置"不满足时的提示与跳转链接"。
+
+* * *
+
+2.2.3 第三步:更多设置
+
+第三步包含**显示页面**与**分享设置**两组配置。
+
+(1)显示页面(控制权益在移动端哪些页面展示)
+
+![BlockNote image](./screenshots/2-2-equity-add-step3.png)
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 权益首页/列表页 | 圆点单选 | 显示 / 不显示,默认"显示" |
+| 组装页 | 圆点单选 + 多选 | 显示 / 不显示,默认"不显示"。选"显示"时下方展开多选框,可选组装页 A / B / C / D… |
+
+(2)分享设置
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 是否支持分享 | 开关  | 默认关闭。开启后展开下列字段: |
+| · 分享名称 | 必填  | 最长 40 字符。开关由关→开时,若分享名称为空则自动回填当前的"权益名称" |
+| · 分享图片 | 必填  | 上传 1 张 |
+
+* * *
+
+2.2.4 操作按钮
+
+页面底部固定操作栏,按当前步骤显隐。
+
+校验集中在【提交审核】时执行;
+
+【保存草稿】仅校验"权益名称"非空,【上一步】/【下一步】不做任何校验。
+
+| 按钮  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 上一步 | 当前步骤 > 1 | 回到上一个步骤 |
+| 下一步 | 当前步骤 < 3 | 进入下一个步骤 |
+| 取消  | 始终显示 | 直接返回权益列表,不做提示 |
+| 保存草稿 | 始终显示 | 校验"权益名称"非空后,落地一条记录:商品状态 = `未上架`、审核状态 = `草稿`。后续可在列表点击「编辑」继续完善 |
+| 提交审核 | 当前步骤 = 3(仅第三步显示) | 校验必填后,创建记录:商品状态 = `未上架`、审核状态 = `上架待审核`。审核通过后切换为"已上架 + 审核通过",新创建的商品默认排在列表第一位 |
+
+* * *
+
+### 2.3 编辑权益
+
+![BlockNote image](./screenshots/2-3-equity-edit.png)
+
+**入口与可见性**:权益列表行【操作】→【编辑】。【编辑】按钮仅在 **商品状态 =** `未上架` 时显示,其他状态下该按钮不出现。
+
+**页面结构**:与"添加权益"的三步骤向导完全一致(填写权益信息 → 设置规则 → 更多设置),表单字段、显示条件、规则提示文案、分享设置、显示页面等全部相同。
+
+**数据加载**:进入页面时按权益编号请求详情接口,回填权益数据,并同步当前的"商品状态/审核状态"用于按钮显隐。
+
+**字段编辑约束**:
+
+-   **是否权益平台兑换** 不可编辑(圆点单选禁用),保持创建时选定的值;其余字段(含是否权益平台兑换 = 否时的"外部权益链接 / 是否有详情页"、商品类型)均可正常编辑
+    
+
+**操作按钮**:
+
+| 按钮  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 上一步 | 当前步骤 > 1 | 回到上一个步骤 |
+| 下一步 | 当前步骤 < 3 | 进入下一个步骤 |
+| 取消  | 始终显示 | 直接返回权益列表 |
+| 保存草稿 | 审核状态 = `草稿` | 不做完整校验,覆盖原记录并保持 `未上架 + 草稿` |
+| 提交审核 | 当前步骤 = 3 | 弹出文本框 `提交后将进入审核流程,期间不可再编辑。请填写提交说明(可选)`,确认后落地为 `未上架 + 上架待审核` 并生成新的审核单 |
+
+* * *
+
+### 2.4 查看权益
+
+**入口与可见性**:权益列表行【操作】→【查看】,按钮在所有状态下均显示。
+
+**页面结构**:复用"添加权益"三步骤向导布局(填写权益信息 → 设置规则 → 更多设置),所有输入框、单选 / 复选、上传、富文本、开关等控件均处于**禁用态**,仅作信息展示。
+
+**操作日志卡片**:下方追加"操作日志"表格,按操作时间倒序展示:
+
+| 列   | 说明  |
+| --- | --- |
+| 操作人 | 触发该次操作的用户名 |
+| 操作日期 | Y-m-d H:i:s |
+| 操作  | Tag 形式展示:`创建`/ `审核`/ `下架`等 |
+
+**操作按钮**(页面底部,按当前步骤显隐):
+
+| 按钮  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 上一步 | 当前步骤 > 1 | 回到上一个步骤 |
+| 下一步 | 当前步骤 < 3 | 进入下一个步骤 |
+| 返回  | 当前步骤 = 3 | 返回权益列表 |
+| 下架  | 当前步骤 = 3 且 商品状态 = `已上架` 且 审核状态 = `审核通过` | 二次确认后提交下架审核(交互同 §2.6) |
+
+![BlockNote image](./screenshots/2-4-equity-view.png)
+
+* * *
+
+### 2.5 下架权益
+
+![BlockNote image](./screenshots/dialog-offshelf-confirm.png)
+
+**入口与可见性**:商品状态 = `已上架` 且 审核状态 = `审核通过` 时显示【下架】按钮
+
+权益列表行【操作】列 →【下架】
+
+**操作流程**:
+
+1.  点击【下架】,弹出二次确认弹窗:`确定提交"XXX"的下架审核吗?审核通过后才会下架。`(类型:warning)
+    
+2.  按钮:
+    
+
+| 按钮  | 行为  |
+| --- | --- |
+| 提交  | 调用下架接口,生成一条**下架审核单**:审核状态切到 `下架待审核`,商品状态保持 `已上架`(线上仍可见);提示"已提交下架审核"。审核通过后切换为"未上架 + 审核通过",前台不再展示且无法兑换下单 |
+| 取消  | 关闭弹窗,状态不变 |
+
+* * *
+
+### 2.6 调整显示顺序
+
+![BlockNote image](./screenshots/popover-adjust-order.png)
+
+**入口与可见性**:列表行【操作】→【更多】→【调整显示顺序】。仅商品状态 = `已上架` 时可操作。
+
+**交互**:
+
+-   点击后弹出小气泡(卡片样式),顶部为标题"调整显示顺序"
+    
+-   提示文案:"移动端权益首页和列表页按照该顺序展示"
+    
+-   输入:`调整到第 [ N ] 位`,N 默认值 = 当前所在行号,校验范围 `1 ~ 当前列表总条数`
+    
+-   按钮:
+    
+    -   【取消】:关闭气泡
+        
+    -   【确定】:校验 N 有效后将当前行移动至目标位置,列表局部刷新并提示"顺序已调整";若输入无效则提示"请输入有效的顺序位置"
+        
+
+### 2.7 删除
+
+![BlockNote image](./screenshots/dialog-delete-confirm.png)
+
+**入口与可见性**:列表行【操作】→【更多】→【删除】。
+
+【删除】仅在 **商品状态 =** `未上架` **且 审核状态 ∈ {** `草稿`**,** `审核通过`**(即历史下架) }** 时显示,其他状态下不出现。
+
+**交互**:弹出二次确认弹窗 `确定删除权益"XXX"吗?`(类型:warning),按钮:
+
+| 按钮  | 行为  |
+| --- | --- |
+| 删除  | 调用删除接口,列表移除该记录并提示"删除成功" |
+| 取消  | 关闭弹窗,状态不变 |
+
+### 2.8 权益测试说明
+
+1.  创建白名单人群
+    
+2.  创建权益
+    
+3.  在发放计划中选择权益进行发放
+    
+
+* * *
+
+## 3\. 信用卡权益
+
+![BlockNote image](./screenshots/3-credit-card-equity-list.png)
+
+信用卡权益由信用卡权益平台统一维护,仅维护「显示页面」「显示顺序」以及「生成链接」三项轻量操作。
+
+### 3.1 列表入口
+
+**Liso 后台 → 定制功能 → 汇丰银行 → 信用卡权益**
+
+### 3.2 筛选条件
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 权益名称 | 文本输入 | 模糊匹配 |
+
+**操作按钮**:
+
+-   【查询】:根据筛选条件查询
+    
+-   【重置】:清空筛选条件
+    
+
+### 3.3 列表字段
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 行内"调整显示顺序"、"设置显示页面"两个文字按钮,最右侧为【更多】下拉菜单;详见 3.4 操作 |
+| 权益名称 | 权益名称,来源于营销系统,超过一行换行显示 |
+| 显示页面 | 使用 Tag 展示当前权益启用的展示位:开启"权益首页/列表页"时显示一枚「权益首页/列表页」Tag;开启"组装页"时按所选组装页(组装页 A/B/C/D…)追加 Tag。两项均未开启时显示"-" |
+
+### 3.4 操作
+
+![BlockNote image](./screenshots/dialog-show-pages.png)
+
+| 操作  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 调整显示顺序 | 商品状态 = `已上架` | 行内文字按钮。点击后弹气泡,交互、提示文案、校验范围与按钮均与 §2.7 一致 |
+| 设置显示页面 | 任意状态 | 行内文字按钮。点击后弹出"设置显示页面"对话框,与添加权益第三步「显示页面」字段一致: • **权益首页/列表页**:圆点单选 显示 / 不显示 • **组装页**:圆点单选 显示 / 不显示,选"显示"时下方多选组装页 A/B/C/D 底部按钮【取消】/【确定】。点击【确定】后立即生效,列表"显示页面"列以 Tag 形式回显,并提示"显示页面已更新" |
+| 更多 → 生成链接 | 商品状态 = `已上架` | 弹出"生成信用卡权益链接"对话框,给出对应 `equity/credit?id=<权益编号>` 形式的可分享链接 |
+
+### 3.5 分页
+
+-   默认每页 10 条,可切换 10 / 20 / 50
+    
+-   支持上一页、下一页、页码、跳转
+    
+-   左下角展示 `Total N` 总条数
+    
+
+* * *
+
+## 4\. 券码管理
+
+**适用范围**:仅对**是否权益平台兑换 = 是**且**商品类型 = 券码**的权益开放。**操作入口**:借记卡权益列表 → 行【操作】→【更多】→【券码管理】点击后跳转至统一资源管理后台现有【码库管理】模块,默认填充商品编号。
+
+### 4.1 批次列表字段
+
+![BlockNote image](../../.resources/image-1779247856014.png)
+
+| 字段  | 说明  |
+| --- | --- |
+| 导入数量 | Excel 文件中的券码总数 |
+| 实际导入数量 | 去重、格式校验后成功入库的券码数 |
+| 导入失败数量 | 未通过校验的券码数。> 0 时,操作列展示**【导出失败券码】** |
+| 券码剩余数量 | 未发放 + 未回收的券码数。> 0 时,操作列展示**【回收】** |
+| 生效时间 | Y-m-d H:i:s |
+| 过期时间 | Y-m-d H:i:s |
+| 停止发放时间 | Y-m-d H:i:s。达到此时间后该批次不再对外发放 |
+| 文件处理状态 | 处理中 / 处理成功 / 处理失败,Tag 形式展示 |
+| 导入时间 | 文件提交时间 |
+| 创建人 | 上传文件的操作员 |
+
+### 4.2 新增券码批次
+
+![BlockNote image](../../.resources/image-1779247865752.png)
+
+点击列表上方【新增券码批次】按钮,显示页面:
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| **导入方式** | 是   | 选择【新增采购导入】 |
+| **SKU商品和商户简称** | 是   | 跳转后自动选择 |
+| **生效时间** | 是   | Y-m-d H:i:s |
+| **过期时间** | 是   | Y-m-d H:i:s |
+| **停止发放时间** | 是   | Y-m-d H:i:s |
+| **券码文件** | 是   | 支持 .xlsx / .csv,单文件上传。配套提供【模板下载】链接 |
+
+**操作按钮**:【取消】关闭页面;【确定】提交,后台异步处理,列表新增一条批次记录(文件处理状态初始为【处理中】)。
+
+### 4.3 编辑批次
+
+**操作入口**:批次行【操作】→【编辑】仅可修改三个时间字段:生效时间、过期时间、停止发放时间。**操作按钮**:【取消】关闭;【确定】保存。
+
+![BlockNote image](../../.resources/image-1779247877545.png)
+
+### 4.4 回收
+
+![BlockNote image](../../.resources/image-1779247893182.png)
+
+**展示条件**:批次"券码剩余数量 > 0"时显示【回收】按钮。**交互**:弹出对话框,先选择**回收类型**(单选三选一):
+
+| 回收类型 | 说明  |
+| --- | --- |
+| 未发放券码回收 | 回收尚未发放给用户的券码 |
+| 已过期券码回收 | 回收已过期但尚未清理的券码 |
+| 导错码券码回收 | 回收因导入错误而入库的券码 |
+
+**回收数量**:输入框输入整数,校验范围 1 ~ 当前类型最大可回收数(页面动态提示"本批次 XXX 最多可回收数量:N")。**操作按钮**:【取消】关闭;【提交】执行回收,列表"券码剩余数量"对应减少。
+
+### 4.5 导出失败券码
+
+**展示条件**:批次"导入失败数量 > 0"时显示【导出失败券码】按钮。**交互**:直接下载该批次的失败明细文件,便于运营修正后重新导入。
+
+## 5\. 与移动端的关联
+
+-   移动端权益列表的可见范围 = 借记卡权益(已上架)∩ 展示规则命中
+    
+-   移动端"显示位置"由后台【设置显示页面】决定(首页 / 组装页)
+    
+-   移动端"展示顺序"由后台【调整显示顺序】决定
+    
+-   是否权益平台兑换 = 否时的"是否有详情页"决定用户在 App 列表层级还是详情层级跳出("没有" = 首页/列表页直接跳出;"有" = 进入权益详情页后再跳出)
+    
+-   微信立减金在单独的微信立减金列表展示,统一通过"我的立减金"入口领用
+    
+
+## 6\. 权益审核
+
+### 6.1 入口
+
+**Liso 后台 → 定制功能 → 汇丰银行 → 权益审核**,作为权益模块下的独立子菜单,集中处理借记卡权益所有审核单(上架 / 下架)。
+
+### 6.2 列表页
+
+> 按照角色的一级分行隔离,管理员角色类型可以看到全部,普通角色类型只能查看同一级分行的用户创建的数据。
+
+![BlockNote image](./screenshots/6-audit-list.png)
+
+按审核状态分为三个 Tab,切换 Tab 时重新加载列表:
+
+| Tab | 含义  | 操作列按钮 |
+| --- | --- | --- |
+| 待审核 | 审核状态 = `上架待审核` / `下架待审核` 的审核单 | 审批  |
+| 审核通过 | 历史审核通过的记录 | 查看  |
+| 审核驳回 | 历史审核驳回的记录 | 查看  |
+
+**筛选条件**:
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 权益名称 | 文本输入 | 模糊匹配 |
+| 权益编号 | 文本输入 | 精确匹配 |
+
+**操作按钮**:
+
+-   【查询】:根据筛选条件查询
+    
+-   【重置】:清空筛选条件
+    
+
+**列表字段**:
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 待审核 Tab 显示【审批】;审核通过 / 驳回 Tab 显示【查看】 |
+| 权益名称 | 过长时省略号 + 悬浮 tooltip 展示 |
+| 权益编号 | 系统生成的 `Q` + 6 位序号 |
+| 审核类型 | Tag 展示,可选值:`上架`(绿)/ `下架`(红) |
+| 业务模块 | 当前固定为"借记卡权益" |
+| 提交人 | 审核单提交人姓名 |
+| 提交时间 | Y-m-d H:i:s |
+| 审核人 | 审核人姓名;未审核时显示"-" |
+| 审核时间 | Y-m-d H:i:s;未审核时显示"-" |
+
+**分页**:默认每页 10 条,可切换 10 / 20 / 50;支持上一页、下一页、页码、跳转;左下角展示 `Total N` 总条数。
+
+### 6.3 审核详情
+
+点击行内【审批】/【查看】进入审核详情页。
+
+**页面结构**:三步骤步骤条 —— `权益信息 → 设置规则 → 更多设置`,全部控件 disabled,按"添加权益"的同款向导只读展示提交时的快照内容:
+
+-   **步骤 1 权益信息**:基本信息(是否权益平台兑换、商品类型 / 外部权益链接 / 是否有详情页、权益名称、SIP 商品编号、商户名称、权益图标);详情信息(权益主图、权益介绍、权益有效期、权益内容、权益说明、领取成功按钮)。详情信息卡片显示条件同 §2.2.1(是否权益平台兑换 = 是;或否 + 有详情页)
+    
+-   **步骤 2 设置规则**:展示规则(展示时间限制、展示客群限制)+ 领取规则(领取时间限制、领取客群限制)开关 + 已配置内容只读回显
+    
+-   **步骤 3 更多设置**:显示页面(权益首页/列表页、组装页 + 组装页列表)+ 分享设置(开关回显)
+    
+
+**底部操作按钮**(按当前步骤与审核类型显隐):
+
+| 按钮  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 上一步 | 当前步骤 > 1 | 回到上一个步骤 |
+| 下一步 | 当前步骤 < 3 | 进入下一个步骤 |
+| 返回  | 始终显示 | 返回审核列表 |
+| 通过  | 审核状态 = `待审核` 时显示。**新增类型须当前步骤 = 3 才显示**;下架类型不限制步骤 | 二次确认弹窗 `确定通过该审核单吗?`(按钮 通过/取消) → 提示 `审核通过`,返回审核列表 |
+| 驳回  | 显示条件同【通过】 | 二次确认弹窗 `确定驳回该审核单吗?`(按钮 驳回/取消) → 提示 `已驳回`,返回审核列表 |
+
+### 6.4 状态联动
+
+-   **审核通过**:
+    
+    -   上架审核 → 权益主表 `商品状态 = 已上架`、`审核状态 = 审核通过`
+        
+    -   下架审核 → 权益主表 `商品状态 = 未上架`、`审核状态 = 审核通过`(等价于历史下架)
+        
+-   **审核驳回**:
+    
+    -   新增上架审核 → 权益主表 `商品状态` 保持 `未上架`、`审核状态` 回退到 `草稿`,可在借记卡权益列表点击【编辑】继续完善后重新提交
+        
+    -   下架审核 → 权益主表 `商品状态` 保持 `已上架`、`审核状态` 回退到 `审核通过`,权益继续正常在线
+        
+-   同一权益**同时只能存在 1 条进行中的审核单**
+    
+
+# 四、人群管理
+
+## 1\. 模块概述
+
+人群管理由两个独立列表构成:**客群任务管理**与**规则组管理**。
+
+-   **客群任务管理**:维护"对客群体"。任务有两种类型
+    
+    -   ① **规则组圈选**(通过规则组运行 `count / sample / fulllist` 三阶段流程产出客户名单)
+        
+    -   ② **指定客户号**(由运营人员直接维护一份固定的客户号清单)。每个任务由「客群编号」唯一标识,"客群编号 + 名称"在后续【发放计划】、权益领取限制等场景被引用
+        
+-   **规则组管理**:维护可复用的"规则集合"。规则组由一组元规则按"且 / 或"逻辑组合形成,配置完成并审核通过后才可被客群任务(规则组圈选类型)引用
+    
+-   **审核**:涉及新建、编辑、停止任务等行为均需另一账号审核后才生效(demo 中默认通过)
+    
+-   **三层逻辑结构**:客群任务 → 规则组 → 元规则。高维可对低维设置「且 / 或」组合,例如:`(A 且 B) 且 (C) 且 (D 或 E 或 F)`
+    
+
+* * *
+
+## 2\. 客群任务管理
+
+2.1 列表页
+
+![BlockNote image](./screenshots/crowd-task-list.png)
+
+**入口**:Liso 后台 → 定制功能 → 汇丰银行 → 客群任务管理。
+
+**头部按钮**:
+
+| 按钮  | 说明  |
+| --- | --- |
+| 新增任务 | 下拉菜单,二选一: • **规则组圈选**:跳转至 `crowd-tasks/add` 走两步骤新建向导 • **指定客户号**:跳转至 `crowd-name-lists/add` 走两步骤新建向导 |
+
+**筛选条件**:
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 客群编号 | 文本输入 | 模糊匹配 |
+| 客群名称 | 文本输入 | 模糊匹配 |
+| 类型  | 下拉单选 | 选项:全部 / 规则组圈选 / 指定客户号 |
+
+操作按钮:【查询】【重置】。
+
+**列表字段**:
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 行内按钮,按"类型 + 状态"显隐,详见 §2.4 操作可见性矩阵 |
+| 客群编号 | 系统生成,全局唯一 |
+| 客群名称 | 超过一行,换行显示 |
+| 类型  | Tag 形式展示,可选值:`规则组圈选` / `指定客户号` |
+| 状态  | Tag 形式展示。规则组圈选状态:`新建` / `校验` / `上线` / `已停止`;指定客户号状态:`新建` / `已生效` / `已停止` |
+| 人数  | **仅"指定客户号"任务展示**,规则组圈选类型该列显示"-" |
+| 创建人 | 任务创建人 |
+| 审核人 | 最近一次审核执行人;未审核时为空 |
+| 任务创建时间 | Y-m-d H:i:s |
+| 任务开始日期 / 任务结束日期 | **仅"规则组圈选"任务展示**,指定客户号类型显示"-" |
+| 更新时间 | 最近一次更新时间 |
+
+**分页**:默认每页 10 条,可切换 10 / 20 / 50。
+
+* * *
+
+2.2 新增任务
+
+2.2.1 规则组圈选
+
+![BlockNote image](./screenshots/crowd-task-add-step1.png)
+
+**入口**:列表头部「新增任务 → 规则组圈选」。两步骤向导:
+
+**第一步:基本信息**
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 客群名称 | 是   | 文本,最长 40 字符,带字数提示 |
+| 客群编号 | —   | 只读,系统自动生成,保证唯一 |
+| 客群描述 | 是   | 多行文本,最长 200 字符 |
+| 客群任务开始日期 | 是   | 日期选择 |
+| 客群任务结束日期 | 是   | 日期选择,不可早于开始日期 |
+
+**第二步:规则组信息**
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 规则组间运算逻辑 | 是   | 下拉单选:`AND(且)` / `OR(或)` |
+| 规则组表格 | —   | 列:规则组编号 / 规则组名称 / 规则组描述 / 组内逻辑 / 规则个数;行内操作:删除 |
+| 【添加规则组】按钮 | —   | 弹窗选择已上线的规则组,支持按规则组编号、名称模糊搜索 |
+
+**底部按钮**:
+
+| 按钮  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 取消  | 步骤 = 1 | 返回客群任务列表 |
+| 下一步 | 步骤 = 1 | 进入第二步 |
+| 上一步 | 步骤 = 2 | 返回第一步 |
+| 完成  | 步骤 = 2 | 校验后提交,落地为 `新建` 状态,需审核通过后才能进入运行流程 |
+
+2.2.2 指定客户号
+
+![BlockNote image](./screenshots/crowd-name-list-add-step1.png)
+
+**入口**:列表头部「新增任务 → 指定客户号」。两步骤向导:
+
+**第一步:基本信息**
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 客群名称 | 是   | 文本,最长 40 字符 |
+| 客群编号 | —   | 只读,系统自动生成 |
+| 客群描述 | 是   | 多行文本,最长 200 字符 |
+
+**第二步:初始人员**(仅新增时显示,编辑时跳过)
+
+输入模式按钮组切换:
+
+| 输入模式 | 说明  |
+| --- | --- |
+| 手动输入 | 多行 textarea,每行一个客户号(示例占位符:"00001 / 00002 / 00003") |
+| 上传文件 | 拖拽或点击上传 `.txt` / `.csv`,UTF-8 编码,每行一个客户号;解析成功后展示已选文件名 + 提示 `已识别 N 个有效客户号` |
+
+**校验**:至少添加 1 个有效客户号,否则不可完成。
+
+**底部按钮**:取消 / 上一步 / 下一步 / 完成(按步骤显隐,规则同 2.2.1)。
+
+* * *
+
+2.3 编辑 / 复制 / 启用
+
+-   **编辑(规则组圈选)**:允许编辑全部字段;编辑过程中若任务当前状态为 `校验`,保存后会回退至 `新建`,并重置 count / sample / fulllist 三段运行信息。
+    
+-   **复制(规则组圈选)**:默认继承源任务的基本信息与规则组信息,状态为 `新建`,客群编号留空,由系统在保存时生成新的唯一编号。
+    
+-   **编辑(指定客户号)**:仅可修改基本信息(客群名称 / 描述),不再展示"初始人员"步骤。已停止名单不可编辑。
+    
+-   **启用(指定客户号)**:仅 `新建` 状态的指定客户号任务行内有【启用】按钮,点击后切换为 `已生效`。
+    
+
+* * *
+
+2.4 操作可见性矩阵
+
+任务行的操作按状态 + 类型动态展示:
+
+**A. 规则组圈选**
+
+| 状态  | 可执行操作 |
+| --- | --- |
+| 新建 (`draft`) | 编辑 / 运行 / 停止 / 详情 / 复制 |
+| 校验 (`verifying`) | 编辑 / 上线 / 停止 / 详情 / 复制 |
+| 上线 (`online`) | 停止 / 详情 / 复制(编辑仅限基本信息) |
+| 已停止 (`stopped`) | 详情 / 复制 |
+
+各动作含义:
+
+| 操作  | 说明  |
+| --- | --- |
+| 运行  | 上送 count + sample 至行内,状态从 `新建` 流转至 `校验`;运行期间显示"正在运行"且按钮不可点 |
+| 上线  | 上送 fulllist 至行内,状态从 `校验` 流转至 `上线`;该动作需审核 |
+| 停止  | 状态切到 `已停止`,**不可逆**;该动作需审核 |
+| 编辑  | 重新编辑基本信息与规则组;编辑后审核通过,状态回到 `新建` 并清空 count / sample / fulllist |
+| 复制  | 进入新建向导,自动回填源任务的基本信息与规则组,权益编号留空(保存时由系统生成新编号) |
+| 详情  | 跳转至详情页(§2.5) |
+
+**B. 指定客户号**
+
+| 状态  | 可执行操作 |
+| --- | --- |
+| 新建 (`draft`) | 启用 / 编辑 / 人员调整 / 上传调整文件 / 停止 |
+| 已生效 (`active`) | 编辑 / 人员调整 / 上传调整文件 / 停止 |
+| 已停止 (`stopped`) | 无可执行操作(仅展示) |
+
+* * *
+
+2.5 任务详情
+
+![BlockNote image](./screenshots/crowd-task-view.png)
+
+**入口**:列表行内【详情】。
+
+页面分为三块:
+
+**(1)基本信息**:客群名称 / 客群编号 / 状态 Tag / 客群描述 / 任务开始日期 / 任务结束日期 / 任务创建时间 / 任务创建用户 / 审核人 / 最近更新时间。
+
+**(2)规则组信息**:
+
+-   规则组间逻辑:Tag 展示 `AND(且)` / `OR(或)`
+    
+-   规则组明细表:规则组编号 / 规则组名称 / 规则组描述 / 组内逻辑 / 规则个数(只读)
+    
+
+**(3)运行信息**(黄色背景卡片):
+
+| 阶段  | 显示形态 |
+| --- | --- |
+| 总数 (count) | "未运行" / "正在运行"(灰)/ 具体数字 |
+| 校验 (sample) | "详情"链接(可点击打开弹窗查看 sample 数据)/ "正在运行"(灰)/ "未运行"(灰);右侧附【重新校验】按钮,仅当任务状态允许重跑时可点。重新校验仅重跑 count + sample,不影响 fulllist |
+| 全量圈客 (fulllist) | "未运行"(红)/ "正在运行"(灰)/ "已完成"(绿) |
+
+**sample 抽样规则**(行内返回):小于30000,取5个、30000到50000,取8个、50000到150000,取12个、150000以上,取15个,sample从行内数据库随机抽取,若结果不足5个则全部返回为sample。
+
+**底部按钮**:返回。
+
+* * *
+
+2.6 人员调整 / 上传调整文件(指定客户号专属)
+
+**人员调整(行级)**
+
+点击列表行的【人员调整】按钮唤起弹窗:
+
+-   客群编号自动绑定为该行 ID,不可改
+    
+-   输入字段:客户号 + 调整方向(`A` = 调增;`D` = 调减)
+    
+-   已停止名单不可调整
+    
+
+**上传调整文件(行级)**
+
+点击列表行的【上传调整文件】按钮唤起弹窗:
+
+-   顶部展示目标客群(`<编号>-<名称>`),由所在行隐式绑定
+    
+-   文件格式(两段,使用 `|+|` 分隔):
+    
+
+```Plain
+客户号|+|调整方向
+00001|+|A
+00002|+|D
+```
+
+-   解析后展示预览表(行号 / 客户号 / 调整方向 / 状态),无效行单独标红
+    
+-   客群编号无需写入文件;行内若与目标客群冲突,按目标客群处理
+    
+
+* * *
+
+## 3\. 规则组管理
+
+### 3.1 列表页
+
+![BlockNote image](./screenshots/rule-group-list.png)
+
+**入口**:Liso 后台 → 定制功能 → 汇丰银行 → 规则组管理。
+
+**头部按钮**:【新增规则组】。
+
+**筛选条件**:
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 规则组编号 | 文本输入 | 模糊匹配 |
+| 规则组名称 | 文本输入 | 模糊匹配 |
+| 规则组类型 | 下拉单选 | 选项由系统维护的字典动态加载 |
+| 审核状态 | 下拉单选 | 选项:新增待审核 / 编辑待审核 / 审核通过;不选视为全部 |
+
+操作按钮:【查询】【重置】。
+
+**列表字段**:
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 左侧固定列:查看详情 / 编辑 / 提交审核 / 删除,按状态显隐 |
+| 规则组编号 | 系统生成 |
+| 规则组名称 | 过长省略 + tooltip |
+| 规则组类型 | 来自字典 |
+| 规则逻辑 | Tag 展示,可选值:`AND(且)` / `OR(或)` |
+| 规则数量 | 该规则组下的元规则条数 |
+| 状态  | Tag 展示,可选值:`新建`(灰)/ `已上线`(绿) |
+| 审核状态 | Tag 展示,可选值:`新增待审核`(黄)/ `编辑待审核`(黄)/ `审核通过`(绿) |
+| 创建人 | 规则组创建人 |
+| 创建时间 | Y-m-d H:i:s |
+
+**行内操作可见性**:
+
+| 操作  | 显示条件 |
+| --- | --- |
+| 查看详情 | 任意状态 |
+| 编辑  | 状态 = `新建` |
+| 提交审核 | 状态 = `新建` |
+| 删除  | 状态 = `新建`(红色) |
+
+**分页**:默认每页 10 条,可切换 10 / 20 / 50。
+
+* * *
+
+### 3.2 新增 / 编辑规则组
+
+![BlockNote image](./screenshots/rule-group-add-step1.png)
+
+**入口**:列表头部【新增规则组】 / 行内【编辑】。两步骤向导:
+
+**第一步:基本信息**
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 规则组名称 | 是   | 文本,最长 40 字符,带字数提示 |
+| 规则组类型 | 是   | 下拉,选项由系统维护的字典动态加载 |
+| 规则逻辑 | 是   | 圆点单选:`AND(且,全部满足)` / `OR(或,任一满足)` |
+| 备注说明 | 否   | 多行文本,最长 200 字符 |
+
+**第二步:规则配置**
+
+-   规则表格:元规则编号 / 元规则名称 / 规则名称 / 规则描述 / 规则参数(等宽字体);行内操作:编辑 / 查看 / 删除
+    
+-   【添加规则】按钮:弹出"添加规则"对话框选择元规则,选中元规则后自动展开该元规则对应的"待配置项"(带 `*` 为必配项,否则可选),保存后落入规则表格
+    
+
+**校验**:至少添加 1 条规则;状态 = `已上线` 的规则组不可编辑。
+
+**底部按钮**:取消 / 上一步 / 下一步 / 完成(按步骤显隐)。
+
+* * *
+
+### 3.3 规则组详情
+
+![BlockNote image](./screenshots/rule-group-view.png)
+
+**入口**:列表行内【查看详情】。
+
+页面展示两个只读描述区:
+
+**(1)基本信息**:规则组编号 / 规则组名称 / 规则组类型 / 规则逻辑 Tag / 状态 Tag / 规则数量 / 创建人 / 创建时间 / 最后更新人 / 最后更新时间 / 备注说明
+
+**(2)规则组配置**:规则逻辑提示文案"规则之间使用「且 / 或」逻辑组合";明细表:元规则编号 / 元规则名称 / 规则名称 / 规则描述 / 规则参数(等宽字体)
+
+**底部按钮**:返回。
+
+* * *
+
+### 3.4 规则组审核
+
+**入口**:Liso 后台 → 定制功能 → 汇丰银行 → 人群管理 → 规则组审核,作为人群管理模块下的独立子菜单,集中处理规则组的上线 / 编辑审核。
+
+按审核状态分为三个 Tab,切换 Tab 时重新加载列表:
+
+| Tab | 含义  | 操作列按钮 |
+| --- | --- | --- |
+| 待审核 | 审核状态 = `待审核` 的审核单 | 审批  |
+| 审核通过 | 历史审核通过的记录 | 查看  |
+| 审核驳回 | 历史审核驳回的记录 | 查看  |
+
+**筛选条件**:
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 规则组编号 | 文本输入 | 精确匹配 |
+| 规则组名称 | 文本输入 | 关键字模糊匹配 |
+
+**操作按钮**:【查询】【重置】。
+
+**列表字段**:
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 行内按钮:审批 / 查看,按 Tab 切换显隐 |
+| 规则组名称 | 规则组名称 |
+| 规则组编号 | 系统生成的编号 |
+| 审核类型 | Tag 展示:`上线`(绿)/ `编辑`(黄) |
+| 提交人 | 提交审核的运营人员昵称 |
+| 提交时间 | Y-m-d H:i:s |
+| 审核人 | 审核操作的执行人昵称;未审核时显示"-" |
+| 审核时间 | Y-m-d H:i:s;未审核时为空 |
+
+**分页**:默认每页 10 条,可切换 10 / 20 / 50;支持上一页、下一页、页码、跳转;左下角展示 `Total N` 总条数。
+
+3.4.1 审核详情
+
+点击行内【审批】/【查看】进入审核详情页。
+
+**页面结构**:采用 2 列描述列表布局,全部只读展示提交时的快照内容:
+
+**(1)基本信息**:规则组编号 / 规则组名称 / 规则组类型 / 规则逻辑 Tag / 状态 Tag / 规则数量 / 提交人 / 提交时间
+
+**(2)规则组配置**:规则逻辑提示文案 + 明细表(元规则编号 / 元规则名称 / 规则名称 / 规则描述 / 规则参数)
+
+**底部按钮**(按 Tab 显隐):
+
+| 按钮  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 审核通过 | Tab = 待审核 | 规则组和规则组审核单状态->审核通过 |
+| 审核驳回 | Tab = 待审核 | 规则组审核状态 -> 空  <br>  <br>规则组审核单状态 -> 审核驳回 |
+| 返回  | 任意状态 | 返回规则组审核列表 |
+
+* * *
+
+## 4\. 具体规则与逻辑配置
+
+逻辑运算支持「且 / 或(AND / OR)」组合。客群任务范围内分为三层(从高到低):**客群任务 → 规则组 → 元规则**(借记卡元规则约 50+ 项,信用卡元规则若干项)。高维可对低维设置 AND / OR 组合,例如:
+
+```Plain
+(A 且 B) 且 (C) 且 (D 或 E 或 F)
+```
+
+## 5\. 客群名单自动同步新增
+
+行内会自动同步客群名单给我们(包括客群名称、指定客户号),同步给我们后自动创建(客群描述留空)。
+
+<br>
+
+# 五、发放计划
+
+## 1\. 概述
+
+发放计划用于将已上架的借记卡权益按计划下发到客群名下。一个发放计划对应「一组客群 × 一个或多个权益」,按周期统计实际可领取 / 已发放数。
+
+-   **入口**:Liso 后台 → 定制功能 → 汇丰银行 → 发放计划
+    
+-   **发放计划 ID**:系统自动生成,统一 `P` + 6 位序号格式(如 `P000001`),全局唯一
+    
+-   **状态**:由"开始时间 / 结束时间 + 当前时间"实时推算 —— `未开始`(当前 < 开始时间)、`进行中`(开始 ≤ 当前 ≤ 结束)、`已结束`(当前 > 结束时间)
+    
+-   **审核状态**:`新增待审核`(新建/编辑后提交审核,期间不可编辑/删除)/ `结束待审核`(已发起结束审核,期间不可编辑/删除)/ `审核通过`(审核通过后生效);审核驳回后回退到 `审核通过`,可重新编辑;同一发放计划同时只能存在 1 条进行中的审核单
+    
+
+## 2\. 列表页
+
+> 按照角色的一级分行隔离,管理员角色类型可以看到全部,普通角色类型只能查看同一级分行的用户创建的数据。
+
+![BlockNote image](./screenshots/4-grant-campaign-list.png)
+
+### 2.1 筛选条件
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 发放计划名称 | 文本输入 | 关键字模糊匹配 |
+| 发放计划时间 | 日期范围 | 选择 `开始日期 至 结束日期`,按计划开始/结束时间过滤 |
+| 状态  | 下拉单选 | 选项:未开始 / 进行中 / 已结束;不选视为全部 |
+| 审核状态 | 下拉单选 | 选项:新增待审核 / 结束待审核 / 审核通过;不选视为全部 |
+
+**操作按钮**:
+
+-   【查询】:按筛选条件查询
+    
+-   【重置】:清空筛选条件
+    
+-   【新建发放计划】(位于筛选下方):跳转新建表单
+    
+
+### 2.2 列表字段
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 行内按钮:查看 / 编辑 / 结束 / 删除,按状态 + 审核状态显隐,详见 §2.3 |
+| 发放计划 ID | 系统生成,`P` + 6 位序号(如 `P000001`) |
+| 发放计划名称 | 最长 50 字符,超过一行换行显示 |
+| 开始时间 | Y-m-d H:i:s |
+| 结束时间 | Y-m-d H:i:s |
+| 状态  | Tag 展示,可选值:`未开始`(灰)/ `进行中`(绿)/ `已结束`(默认) |
+| 审核状态 | Tag 展示,可选值:`新增待审核`(黄)/ `结束待审核`(红)/ `审核通过`(绿) |
+| 是否自动发放 | Tag 展示,可选值:`是`(绿)/ `否`(灰) |
+| 获取方式 | Tag 展示,可选值:`用户领取`(绿)/ `直接发放`(黄) |
+| 单客户权益数量 | 含周期前缀,例如 `每月 2 个`、`整个周期 1 个`、`每季度 5 个`、`每年 10 个` |
+| 权益有效期 | 固定日期:`YYYY-MM-DD 至 YYYY-MM-DD`;相对日期:`自发放起 N 天内有效` |
+| 创建时间 | Y-m-d H:i:s |
+
+### 2.3 操作可见性矩阵
+
+| 操作  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 查看  | 任意状态 | 跳转 查看页 |
+| 编辑  | 状态 ≠ `进行中` 且 审核状态 = `审核通过` | 跳转编辑页;若进入后发现该计划已切到"进行中",会强制提示 `进行中的发放计划不可编辑` 并退回列表 |
+| 复制  | 任意状态 | 跳转新建表单,自动回填源发放计划的所有字段(计划 ID 留空、名称自动加"-副本"后缀),保存时生成新发放计划 |
+| 结束  | 状态 = `进行中` 且 审核状态 = `审核通过`(黄色文字) | 二次确认弹窗 `确定提交「XXX」的结束审核吗?审核通过后才会正式结束。`(按钮 确认提交 / 取消) → 提交结束审核单,审核状态切到 `结束待审核`,期间不可编辑/删除 |
+| 删除  | 状态 ≠ `进行中` 且 审核状态 = `审核通过`(红色文字) | 二次确认弹窗 `您确定要删除此条发放计划吗?删除后将无法恢复。`(按钮 确认删除 / 取消) → 调用接口,提示 `删除成功` |
+
+* * *
+
+## 3\. 新建 / 编辑发放计划
+
+**入口**:
+
+-   新建:列表页【新建发放计划】
+    
+-   编辑:列表行【编辑】,仅 `未开始` / `已结束` 状态可进入;`进行中` 不可编辑
+    
+-   复制:列表行【复制】,任意状态均可进入
+    
+
+**复制场景**:列表行【复制】进入本表单后,自动回填源发放计划的所有字段,发放计划 ID 留空(保存时由系统生成新编号),发放计划名称自动加 `-副本` 后缀(如源名称为"汇丰卓越理财5月活动",则默认为"汇丰卓越理财5月活动-副本"),其余字段与源计划一致。保存成功提示 `复制成功`。
+
+**页面结构**:单页表单(非步骤向导),整体水平居中,字段标签左对齐。字段如下:
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 发放计划 ID | —   | **仅编辑时显示**,只读,禁用输入框 |
+| 发放计划名称 | 是   | 文本输入,placeholder `请输入发放计划名称`,最长 50 字符,带字数实时提示 |
+| 发放计划开始时间 | 是   | datetime 选择器,精确到秒,开始时间必须大于当前时间,格式 `YYYY-MM-DD HH:mm:ss` |
+| 发放计划结束时间 | 是   | datetime 选择器,精确到秒;提交时校验「结束时间必须晚于开始时间」 |
+| 选择客群 | 是   | 多选下拉(支持搜索),已选项以可折叠 Tag 展示;选项格式 `客群名称 (客群编号)`,数据源为人群管理中的客群任务(含规则组圈选与指定客户号两种类型);校验文案 `请至少选择一个客群` |
+| 是否自动发放 | 是   | 圆点单选,默认 `是`:  <br>  <br>• **是**:每个发放周期开始时,系统自动执行发放任务  <br>  <br>• **否**:每个发放周期需要运营人员手动触发发放 |
+| 获取方式 | 是   | 圆点单选,默认 `用户领取`:  <br>  <br>• **用户领取**:权益发放到客户名下后由用户主动领取  <br>  <br>• **直接发放**:权益自动到账,无需领取动作 |
+| 选择权益 | 是   | 数据源为「已上架」的借记卡权益。选项格式 `权益名称 (权益编号)` • 用户领取模式:多选下拉(支持搜索,已选项以可折叠 Tag 展示) • 直接发放模式:单选下拉 + 搜索 切换 `用户领取 → 直接发放` 时,若已选多个权益,自动只保留第一个;校验文案 `请至少选择一个权益` / `请选择一个权益` |
+| 单客户权益数量 | 是   | 行内组合控件:左侧周期下拉(整个周期 / 每月 / 每季度 / 每年),右侧数字输入(1 ~ 9999),后缀"个" |
+| 权益有效期 | 是   | 圆点单选「固定日期 / 相对日期」: • **固定日期**:选择起止日期(必须二选完整) • **相对日期**:数字输入 1 ~ 3650,单位"天(自发放起算)",默认值 30 |
+| 短信通知 | 是   | 短信模板下拉,**专用于发放成功短信**。 |
+
+**底部按钮**(页脚居中):
+
+| 按钮  | 行为  |
+| --- | --- |
+| 取消  | 直接返回发放计划列表 |
+| 保存  | 触发所有字段必填校验 + 业务校验(结束晚于开始 / 固定日期需选完整 / 相对日期 ≥ 1 / 单客户权益数量 ≥ 1 / 直接发放模式仅允许 1 个权益 / 短信模板必选)。校验通过后调用保存接口,新建提示 `新建成功`,编辑提示 `保存成功`,复制提示 `复制成功`,并返回列表页 |
+
+* * *
+
+## 4\. 查看发放计划
+
+![BlockNote image](./screenshots/4-grant-campaign-view.png)
+
+**入口**:列表行【查看】,所有状态均可进入。
+
+**页面结构**:采用 2 列描述列表布局展示所有字段,全部只读;权益、客群、短信模板内容以 Tag / 预览块形式展示。
+
+| 字段  | 展示形态 |
+| --- | --- |
+| 发放计划 ID | 文本  |
+| 发放计划名称 | 文本  |
+| 状态  | Tag(同列表口径) |
+| 审核状态 | Tag(同列表口径) |
+| 是否自动发放 | Tag(同列表口径) |
+| 获取方式 | Tag(同列表口径) |
+| 单客户权益数量 | 含周期前缀的描述文本 |
+| 开始时间 / 结束时间 | 文本(缺省时显示"-") |
+| 权益有效期 | 文本(固定/相对两种描述,跨 2 列) |
+| 选择客群 | Tag 列表(info 灰色),每个 Tag 显示 `客群名称 (客群编号)`;无值显示"-" |
+| 选择权益 | Tag 列表,每个 Tag 显示 `权益名称 (权益编号)`;无值显示"-" |
+| 短信通知 | 第一行:模板名称(如"发放成功通用模板");下方虚线框展示该模板的完整内容预览 |
+| 创建时间 / 更新时间 | 文本  |
+
+**底部按钮**:【返回】,回到发放计划列表。
+
+## 5\. 发放计划审核
+
+### 5.1 入口
+
+**Liso 后台 → 定制功能 → 汇丰银行 → 发放计划审核**,作为发放计划模块下的独立子菜单,集中处理发放计划的新增审核。
+
+### 5.2 列表页
+
+按审核状态分为三个 Tab,切换 Tab 时重新加载列表:
+
+| Tab | 含义  | 操作列按钮 |
+| --- | --- | --- |
+| 待审核 | 审核类型 = `待审核` 的审核单 | 审批  |
+| 审核通过 | 历史审核通过的记录 | 查看  |
+| 审核驳回 | 历史审核驳回的记录 | 查看  |
+
+**筛选条件**:
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 发放计划ID | 文本输入 | 精确匹配 |
+
+**操作按钮**:
+
+-   【查询】:根据筛选条件查询
+    
+-   【重置】:清空筛选条件
+    
+
+**列表字段**:
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 待审核 Tab 显示【审批】;审核通过 / 驳回 Tab 显示【查看】 |
+| 发放计划名称 | 过长时省略号 + 悬浮 tooltip 展示 |
+| 发放计划 ID | 系统生成的 `P` + 6 位序号 |
+| 审核类型 | Tag 展示,可选值:`新增`(绿)/ `编辑`(蓝)/ `结束`(红) |
+| 业务模块 | 当前固定为"发放计划" |
+| 提交人 | 审核单提交人姓名 |
+| 提交时间 | Y-m-d H:i:s |
+| 审核人 | 审核人姓名;未审核时显示"-" |
+| 审核时间 | Y-m-d H:i:s;未审核时显示"-" |
+
+**分页**:默认每页 10 条,可切换 10 / 20 / 50;支持上一页、下一页、页码、跳转;左下角展示 `Total N` 总条数。
+
+### 5.3 审核详情
+
+点击行内【审批】/【查看】进入审核详情页。
+
+**页面结构**:采用 2 列描述列表布局,全部只读展示提交时的快照内容:
+
+| 字段  | 展示形态 |
+| --- | --- |
+| 发放计划 ID | 文本  |
+| 发放计划名称 | 文本  |
+| 状态  | Tag(推算口径同列表) |
+| 审核状态 | Tag |
+| 获取方式 | Tag |
+| 单客户权益数量 | 含周期前缀的描述文本 |
+| 开始时间 / 结束时间 | 文本  |
+| 权益有效期 | 文本  |
+| 选择客群 | Tag 列表 |
+| 选择权益 | Tag 列表 |
+| 短信通知 | 模板名称 + 内容预览 |
+
+**底部操作按钮**(按审核类型显隐):
+
+| 按钮  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 返回  | 始终显示 | 返回审核列表 |
+| 通过  | 审核状态 = `待审核` | 二次确认弹窗 `确定通过该审核单吗?` → 提示 `审核通过`,返回审核列表 |
+| 驳回  | 审核状态 = `待审核` | 二次确认弹窗 `确定驳回该审核单吗?` → 提示 `已驳回`,返回审核列表 |
+
+### 5.4 状态联动
+
+-   **审核通过**:发放计划主表 `审核状态 = 审核通过`,计划正式生效
+    
+-   **审核驳回**:发放计划主表 `审核状态` 回退,可在发放计划列表重新编辑后再次提交审核
+    
+-   同一发放计划**同时只能存在 1 条进行中的审核单**
+    
+
+* * *
+
+## 6\. 发放任务
+
+发放任务由系统按发放周期自动生成(是否自动发放 = 是)或由运营人员手动触发(是否自动发放 = 否),每次发放周期对应一条发放任务记录。
+
+-   **入口**:Liso 后台 → 定制功能 → 汇丰银行 → 发放计划管理 → 发放任务
+    
+-   **任务 ID**:系统自动生成,格式 `T` + 日期 + 序号(如 `T20260501001`)
+    
+-   **任务状态**:`待执行`(周期开始但尚未执行)/ `执行中`(正在执行发放)/ `已完成`(发放完成)
+    
+
+### 6.1 列表页
+
+按任务状态分为四个 Tab,切换 Tab 时前端过滤:
+
+| Tab | 含义  |
+| --- | --- |
+| 待执行 | 任务状态 = `待执行` 的任务(默认选中) |
+| 执行中 | 任务状态 = `执行中` 的任务 |
+| 已完成 | 任务状态 = `已完成` 的任务 |
+| 全部  | 所有发放任务 |
+
+**筛选条件**:
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 发放计划 ID | 文本输入 | 精准匹配 |
+| 计划名称 | 文本输入 | 关键字模糊匹配 |
+| 任务类型 | 下拉单选 | 选项:自动 / 手动;不选视为全部 |
+
+**操作按钮**:【查询】【重置】。
+
+**列表字段**:
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 查看、执行 |
+| 任务 ID | 系统生成,`T` + 日期 + 序号(如 `T20260501001`) |
+| 计划名称 | 关联发放计划的名称,超过一行换行显示 |
+| 发放计划 ID | 关联发放计划的 ID(`P` + 6 位序号) |
+| 任务类型 | Tag 展示:`自动`(绿)/ `手动`(黄),取自关联发放计划的「是否自动发放」字段 |
+| 任务周期 | 日期范围,格式 `YYYY-MM-DD ~ YYYY-MM-DD`(如 `2026-05-01 ~ 2026-05-31`) |
+| 任务状态 | Tag 展示:`待执行`(灰)/ `执行中`(默认)/ `已完成`(绿) |
+| 创建时间 | Y-m-d H:i:s |
+| 执行时间 | Y-m-d H:i:s;未执行时显示"-" |
+| 执行人 | 自动发放时显示"系统";手动发放时显示运营人员昵称 |
+
+**操作可见性**:
+
+| 操作  | 显示条件 | 行为  |
+| --- | --- | --- |
+| 查看  | 任意状态 | 跳转查看页 |
+| 执行  | 任务状态 = `待执行` | 跳转执行页 |
+
+**分页**:默认每页 10 条,可切换 10 / 20 / 50;支持上一页、下一页、页码、跳转;左下角展示 `Total N` 总条数。
+
+### 6.2 查看 / 执行页
+
+**入口**:列表行【查看】或【执行】进入同一页面,页面结构一致。
+
+**页面结构**:两个只读描述区 + 执行按钮(仅执行页显示):
+
+**(1)计划信息**:发放计划 ID / 发放计划名称 / 获取方式 / 是否自动发放 / 单客户权益数量 / 权益有效期 / 开始时间 / 结束时间 / 选择客群(Tag 展示,格式 `客群名称 (客群编号)`) / 选择权益(Tag 展示,格式 `权益名称 (权益编号)`) / 短信通知
+
+**(2)任务信息**:任务 ID / 任务类型 / 任务周期 / 任务状态 / 创建时间 / 执行时间 / 执行人
+
+**(3)执行按钮**(仅【执行】入口时显示):【确认执行】【取消】
+
+点击【确认执行】后弹出二次确认 `确认执行该发放任务?`(按钮 确认 / 取消),确认后任务状态切到 `执行中`,执行时间写入当前时间,执行人写入当前运营人员昵称,提示 `执行成功` 并返回列表页。
+
+**底部按钮**(仅【查看】入口时显示):【返回】,回到发放任务列表。
+
+* * *
+
+# 六、页面管理
+
+# 变更日志
+
+| <br> | <br> | <br> | <br> |
+| --- | --- | --- | --- |
+| **时间** | **版本号** | **变更人** | **主要变更内容** |
+| 26/4/24 | 1.0 | 刘晋成 | <br> |
+
+# 详细操作
+
+## 1\. 权益介绍页
+
+### 等级配置
+
+按“客户MSC Group 标签”进行隔离配置。标签需在页面顶部 Tab 切换不同等级(卓越理财Premier/ 卓越理财·尊尚 Premier·Elite/ 环球私人银行GPB),分别配置各等级在移动端的专属展示内容。
+
+### Tab名称配置模块
+
+![BlockNote image](../../.resources/image-1779244508001.png)
+
+-   **Tab名称(输入框)**:
+    
+    -   **作用**:定义当前等级在移动端顶部切换栏的展示文字(如将“卓越理财”改为“卓越尊享”)。
+        
+    -   **移动端交互**:移动端顶部导航栏的文本会随之动态改变。后台上方的配置 Tab 也会实时同步。
+        
+
+### 头部配置
+
+![BlockNote image](../../.resources/image-1779244508002.png)
+
+对应移动端最上方的大图与欢迎文案。
+
+<br>
+
+### 按钮配置模块
+
+![BlockNote image](../../.resources/image-1779244508003.png)
+
+-   **已解锁按钮文案(输入框)**:
+    
+    -   **移动端交互**:针对**已解锁**当前等级的客户展示的按钮文案(如“进入权益专区”)。点击直接拉起“权益首页”。
+        
+-   **待解锁按钮文案(输入框)**:
+    
+    -   **移动端交互**:针对**未解锁**该等级的客户,按钮将呈现置灰状态,并回显此文案(如“查看达标条件”)。点击会拉起“如何达标”半屏说明弹窗。
+        
+
+### 权益列表配置
+
+![BlockNote image](../../.resources/image-1779244508004.png)
+
+-   **配图(上传组件)**:
+    
+    -   **移动端交互**:此项为**非必填**。若未上传图片,移动端不会出现小图标,而是自动降级展示为一个标准的“圆点”符号兜底,确保排版整洁对齐。
+        
+-   **标题 / 权益文字描述(输入框)**:填写单行小标题与详细的权益介绍。支持通过列表右上角的气泡排序功能调整顺序。
+    
+
+## 2\. 权益主页
+
+### 客户身份模块配置
+
+![BlockNote image](../../.resources/image-1779244508005.png)
+
+前端将根据登录客户的实际客群 (MSC) 自动匹配展示此处配置的对应身份卡片。支持四个客群的独立配置:运筹理财、卓越理财、卓越理财·尊尚、环球私人银行。
+
+-   **客群背景图(上传组件)**:支持为每个客群上传独立的顶部横向卡片背景图。建议尺寸:`750 * 185 px`。
+    
+-   **身份标识文字(输入框)**:显示于移动端卡片左上角的客群称呼。
+    
+-   **显示合格状态 / 显示 PB 权益等级及编号(复选框)**:控制是否在卡片上展示客户的达标状态及专属编号。
+    
+-   **显示“账户月内日均余额”(复选框 & 强联动逻辑)**:
+    
+    -   若开启此开关,卡片将展示余额,**并且下方会自动显示“日均余额计算规则”的富文本配置框**,前端同时出现 `?` 问号规则查看入口。
+        
+    -   若关闭此开关,“计算规则”配置框将被强制隐藏,前端也同步隐藏该规则入口。
+        
+    -   _注:PB 客群卡片底层逻辑不显示月内日均余额,故不提供此项配置。_
+        
+
+### 活动广告轮播图
+
+![BlockNote image](../../.resources/image-1779244508006.png)
+
+对应移动端中部的精选活动卡片滑动区。
+
+-   **多端跳转配置(输入框组)**:
+    
+    -   支持同时配置 **H5 跳转链接 / APP 跳转链接 / 微信小程序 AppID / 微信小程序页面路径**。
+        
+    -   **移动端交互**:移动端内核会智能探测当前用户的运行环境,精准拉起对应的原生页面,避免跨环境跳转失败。
+        
+-   **可见人群标签(下拉多选)**:千人千面控制开关。勾选对应标签后,该广告仅对含有相应标签的客群展示。
+    
+
+### 常用兑换配置
+
+![BlockNote image](../../.resources/image-1779244508007.png)
+
+-   **常用兑换**:配置底部横滑图标卡片,支持图片、名称及跳转 URL 的录入。
+    
+
+### 积分规则弹窗配置
+
+![BlockNote image](../../.resources/image-1779244508008.png)
+
+-   **积分规则弹窗**:支持通过富文本工具的 **“附件”** 按钮上传本地 PDF。移动端会自动生成带回形针图标的下载链接,点击可调用原生阅读器全屏预览该 PDF 规则细则。
+    
+
+## 3\. 组装页
+
+点击“编辑”进入页面配置。顶部需填写内部管理的**组装页名称**。 页面由上至下通过添加不同的“数据模块”组合而成,页面最下方有四个模块添加按钮,支持无限叠加与自由排序:
+
+### 列表管理
+
+![BlockNote image](../../.resources/image-1779244508009.png)
+
+-   **列表视图**:展示所有组装页的页面ID、名称、发布状态(草稿/已上架)及更新时间。支持按页面ID或名称精准查询。
+    
+-   **获取链接**:在列表视图的每一行操作列中,提供了专属的“链接”按钮,点击可直接唤起获取该单页专属分发链接的面板。支持在弹窗的下拉列表中选择 `Campaign ID` 和 `Channel ID`。选择后,会自动将这些参数拼接在 URL 末尾(例如拼接 `&CampaignId=CAMP202511&Channelid=CH_APP`)。若未选择任何下拉值,则不拼接相关参数。
+    
+
+![BlockNote image](../../.resources/image-1779244508010.png)
+
+-   **页面基础信息**:点击“新建”或“编辑”进入详情后,需设置内部管理的“组装页名称”。页面 ID 则由系统自动分配生成,不可修改。
+    
+-   **状态与链接区分**:若页面处于“草稿”状态,弹窗中仅提供用于内部预览测试的“草稿预览链接”;当页面正式“发布”后,弹窗会同时展示正式投放使用的“正式环境链接”和草稿预览链接。
+    
+
+### 创建页面与基础设置
+
+-   **进入列表与创建**:在组装页列表中,您可以查看到所有历史配置的页面。点击右上角的【新建组装页】按钮,或点击已有页面的【编辑】进入配置界面。
+    
+
+![BlockNote image](../../.resources/image-1779244508011.png)
+
+-   **设置组装页名称(必填)**:在页面顶部输入框填写该页面的名称。
+    
+    -   注意:不仅用于后台列表查找,还会**直接在移动端最顶部的导航栏(Page Title)作为标题向客户展示**。
+        
+
+![BlockNote image](../../.resources/image-1779244508012.png)
+
+-   **页面 ID 生成**:系统会自动为当前页面生成一个唯一的“页面 ID”,无需您手动配置。
+    
+
+### 页面模块配置
+
+-   **模块新增:**在配置区最下方,可以看到四个功能按钮。点击对应的按钮即可在页面最末尾新增该模块:
+    
+
+![BlockNote image](../../.resources/image-1779244508013.png)
+
+-   **模块位置调整与管理**:每个已添加的模块右上角都有一个统一的操作控制台:
+    
+
+![BlockNote image](../../.resources/image-1779244508014.png)
+
+-   **气泡排序**:点击带有数字的列表图标,在弹出的悬浮气泡中输入目标序号(如:1),点击确定,该模块将立即移动到对应位置。
+    
+-   **复制**:点击“复制”可一键克隆当前模块及内部所有数据(_注:为防止数据冲突,系统已强行锁死并隐藏了“权益商品模块”的复制功能_)。
+    
+-   **删除**:点击红色的垃圾桶图标并确认,即可移除不需要的模块。
+    
+-   **图片模块**:
+    
+
+![BlockNote image](../../.resources/image-1779244508015.png)
+
+-   **配置**:通栏视觉展示模块。
+    
+-   **移动端交互**:强烈建议图片宽度为 `750px`,移动端将 `100%` 自动拉通铺满屏幕宽度。高度无需受限,系统将根据上传图片的原始比例自动计算并拉伸展示,防止变形。
+    
+-   **权益商品模块**:**全局唯一,一个页面仅限添加一个,且不支持复制**。可配置一个大区标题,并在其下方添加多个带图标的权益商品明细。
+    
+
+![BlockNote image](../../.resources/image-1779244508016.png)
+
+-   **图文模块**:提供包含完整工具栏的富文本编辑器,支持上传附件和插入外链。
+    
+
+![BlockNote image](../../.resources/image-1779244508017.png)
+
+-   **按钮模块**:
+    
+    -   **样式选择(下拉框)**:支持“突出显示 (红色背景)”与“次要操作 (白色背景)”两种视觉层级。
+        
+    -   **动作 - 跳转链接(输入框):**配置按钮直接跳转至指定 URL。提交保存时系统会进行强校验,若动作为跳转链接,则链接地址字段绝对不能为空。
+        
+
+![BlockNote image](../../.resources/image-1779244508018.png)
+
+-   **动作 - 弹窗提示 (Dialog):**配置点击按钮后唤起屏幕中央的弹窗。支持配置弹窗标题、描述正文,以及右侧“确认”按钮的文案与后续跳转链接。若未配置确认按钮的跳转链接,则点击确认仅执行关闭弹窗的动作。弹窗左侧固定展示取消按钮。
+    
+
+![BlockNote image](../../.resources/image-1779244508019.png)
+
+# 七、渠道管理
+
+## 1\. Channel 管理
+
+### 新建 Channel(标准流程)
+
+-   点击页面左中部的蓝色按钮 **【+ 新建 Channel】**,系统将弹出新建表单。
+    
+
+![BlockNote image](../../.resources/image-1779258558474.png)
+
+-   **Channel ID**:系统会在保存时**自动生成**唯一的 ID(如 CH0001),无需手动填写。
+    
+-   **选择内置层级属性**(严格的级联选择):
+    
+
+![BlockNote image](../../.resources/image-1779258585910.png)
+
+-   **Channel 类型 (Type)**:点击下拉框,选择内置的类型(如 `Human-assisted` 或 `Unassisted`)。
+    
+-   **Channel 类别 (Category)**:**必须先选择类型**,此处才会解锁并仅显示属于该类型下的类别(如选了 `Human-assisted` 才会出现 `MGM`)。
+    
+-   **Channel 名称 (Name)**:**必须先选择类别**,此处才会解锁并显示对应的具体名称。
+    
+-   **补充业务信息**:
+    
+    -   **Channel 子名称 (Subname)**:自由文本输入,例如输入具体的活动名称“私行沙龙引导”。
+        
+    -   **跟进员工 (Follow-up staff)**:输入负责跟进此渠道的员工姓名。
+        
+-   点击 **【确定】** 保存,系统将在列表中生成一条全新的 Channel 记录。
+    
+
+![BlockNote image](../../.resources/image-1779258602589.png)
+
+### 新增全新的 类型/类别/名称(字典维护功能)
+
+如果下拉列表中没有需要的选项,**无需跳出当前页面**,可以直接在弹窗内“边填边建”。
+
+**新增「Channel 类型」**:
+
+![BlockNote image](../../.resources/image-1779258618794.png)
+
+-   点击【Channel 类型】下拉框右侧的“新增”按钮。
+    
+-   下方会展开一个快捷面板。在输入框中输入全新的类型名称(例如:新的类型)。
+    
+-   点击“保存”。系统会自动将该类型存入底层字典,并在下拉框中自动选中它。
+    
+-   **新增「Channel 类别」**:
+    
+    -   **前提**:必须先在上方选择或新建好【Channel 类型】。如果未选择类型直接点击新增类别,系统会拦截并提示“_请先选择 Channel 类型_”。
+        
+    -   点击【Channel 类别】右侧的“新增”,输入新类别并保存。该新类别将自动归属于当前选中的类型之下。
+        
+-   **新增「Channel 名称」**:
+    
+    -   **前提**:必须先确定好【类型】和【类别】。点击右侧”新增“,输入后保存。该名称将牢牢绑定在当前的“类型+类别”路径下。
+        
+
+**💡 核心逻辑提示**: 如果新增了一个顶级节点(类型),那么它下面必然是空的。此时必须继续使用”新增“功能,依次为其创建下属的【类别】和【名称】,才能完成整条链路的配置。
+
+### 重复新增的校验与提示
+
+为了保证字典数据的整洁,系统排重校验:
+
+![BlockNote image](../../.resources/image-1779258649960.png)
+
+-   **同级查重**:在通过快捷面板保存新的 类型/类别/名称 时,系统会实时校验。如果输入的名称在当前层级已经存在,系统会弹出红色提示 **“该类型/类别/名称已存在”**,并拒绝保存。此时需要修改输入,或者直接取消新增,去下拉框中选择已有的那一项。
+    
+
+### 列表数据的操作
+
+成功创建 Channel 后,列表会展示所有数据,并在最右侧自动记录 **创建时间** 和 **更新时间**。在最左侧的”操作“列,可以进行:
+
+**【快捷查询】** 在页面顶部的筛选区,可以通过多维度组合条件快速定位数据:
+
+-   支持 **Channel ID** 的精确查询。
+    
+-   支持按 **Channel 类型** 进行下拉框筛选。
+    
+-   支持按 **Channel 类别**、**Channel 名称**、**Channel 子名称** 以及 **跟进员工** 进行关键字模糊搜索。
+    
+-   输入条件后点击 **【查询】** 即可过滤列表,点击 **【重置】** 会清空所有输入条件并恢复展示所有数据。
+    
+
+**【数据操作】** 在最左侧的「操作」列,可以进行:
+
+-   **【编辑】**:点击后弹出表单,回显原有数据。可以重新选择下拉项,或修改子名称和跟进员工。也可以再次使用”新增“按钮扩展字典。
+    
+-   **【查看】**:点击后弹出表单,但所有字段均置灰(只读模式),只能查看不可修改,防止误触。底部也没有确定/取消按钮。
+    
+-   **【删除】**:点击后,系统会弹出一个醒目的**确认删除提示窗**,提示“确定要删除此条数据吗?删除后将无法恢复”。点击确认后才会在列表中彻底移除该数据。
+    
+
+## 2\. Campaign管理
+
+### 新建 Campaign
+
+-   点击 **【+ 新建 Campaign】**
+    
+
+![BlockNote image](../../.resources/image-1779258666277.png)
+
+-   **Campaign ID**:同样由系统自动生成(如 CP9001)。
+    
+-   依次手动输入以下信息:
+    
+    -   **Campaign 名称**:(必填项)当前活动的正式名称。
+        
+    -   **Campaign 负责人 (Owner)**:(必填项)负责该活动的团队或主管名称。
+        
+    -   **跟进员工 (Follow-up staff)**:(选填项)具体执行跟进的员工。
+        
+-   如果遗漏必填项,点击确定时系统会提示“_Campaign 名称 和 负责人 是必填项_”。
+    
+
+### 列表操作与查询
+
+![BlockNote image](../../.resources/image-1779258680846.png)
+
+Campaign 的列表操作与 Channel 保持一致:
+
+-   支持 **查看**、**编辑**(再次编辑会自动更新“更新时间”)、**删除**(带有防误删的二次确认弹窗)。
+    
+-   **顶部筛选区**:支持根据 ID 精确搜索,或根据名称、负责人、跟进员工进行模糊匹配查询。输入条件后点击 **【查询】** 即可过滤列表,点击 **【重置】** 会清空条件并展示所有数据。
+    
+
+## 3\. 通用操作说明
+
+### 全局页面状态指示器
+
+![BlockNote image](../../.resources/image-1779258695118.png)
+
+位于顶部独立工具栏左侧,实时侦测并防呆:
+
+-   **草稿 (灰色)**:从未发布至生产环境的内部版本。
+    
+-   **有未发布的修改 (黄色)**:您对页面进行了任意字符的修改但还未点击发布,系统立即亮起黄灯提醒。
+    
+-   **正式线上环境 (绿色)**:当前后台配置与线上移动端用户所见100%一致。
+    
+
+### 保存与发布
+
+![BlockNote image](../../.resources/image-1779258710263.png)
+
+界面右上方固定提供两个全局核心操作:
+
+-   **保存配置**:将当前所有修改保存为“草稿”状态。该操作仅更新后台数据库,不会影响移动端线上真实用户的所见内容,适用于未完成配置的暂存。
+    
+-   **发布配置**:将当前修改正式提交上架。发布成功后,最新数据将立刻同步至正式生产环境,移动端线上用户将实时看到更新后的内容与页面。
+    
+
+# 八、短信管理
+
+| 变更日期 | 变更内容 | 变更人 |
+| --- | --- | --- |
+| 2026-05-11 | 初稿:短信模板管理 + 发送记录查询 | 陈生坤 |
+
+## 1\. 概述
+
+### 1.1 业务背景
+
+为支撑权益商品的"下单成功短信"等通知场景,系统需提供一套独立的短信模板维护与发送追溯能力。本模块面向运营人员,统一管理短信模板与发送记录。
+
+### 1.2 模块组成
+
+| 子模块 | 职责  | 使用方 |
+| --- | --- | --- |
+| **短信模板管理** | 维护短信模板的内容、占位符、生命周期(新建/编辑/删除) | 被《二、权益管理》的"下单成功短信"引用 |
+| **发送记录查询** | 查看每条短信的发送明细(接收号、模板、内容、状态) | 运营 / 客服查问题、做对账 |
+
+### 1.3 操作入口
+
+**Liso 后台 → 定制功能 → 汇丰银行**,包含两个子菜单:
+
+-   **短信模板管理**
+    
+-   **发送记录查询**
+    
+
+* * *
+
+## 2\. 短信模板管理
+
+### 2.1 列表页
+
+![BlockNote image](./screenshots/6-sms-template-list.png)
+
+2.1.1 筛选条件
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 模板名称 | 文本输入 | 模糊匹配,支持清空 |
+| 模板 ID | 文本输入 | 精确匹配,支持清空 |
+
+**操作按钮**:
+
+-   【查询】:根据筛选条件查询
+    
+-   【重置】:清空筛选条件并回到第 1 页
+    
+-   【新建短信模板】:打开新建弹窗
+    
+
+2.1.2 列表字段
+
+| 字段  | 说明  |
+| --- | --- |
+| 操作  | 行内按钮:编辑(蓝色文字)、删除(红色文字) |
+| 模板 ID | 系统生成,格式形如 `SMS_TPL_001` |
+| 模板名称 | 用户可见的模板名(如"通用权益支付成功模板");过长省略号 + tooltip |
+| 模板内容 | 完整的短信文案(含占位符);过长省略号 + tooltip |
+| 创建人 | 首次创建的操作员 |
+| 创建时间 | Y-m-d H:i:s |
+| 最后更新人 | 最近一次保存的操作员 |
+| 更新时间 | 最近一次保存的时间(Y-m-d H:i:s) |
+
+2.1.3 分页
+
+-   默认每页 10 条,可切换 10 / 20 / 50
+    
+-   支持上一页、下一页、页码、跳转
+    
+-   左下角展示 `共 N 条` 总条数
+    
+
+* * *
+
+### 2.2 新建 / 编辑短信模板
+
+**入口**:列表【新建短信模板】或列表行【编辑】。**形态**:模态对话框,宽度 600px,标题随入口切换为 `新建短信模板` / `编辑短信模板`;点击遮罩不关闭,关闭后自动重置表单。
+
+| 字段  | 必填  | 说明  |
+| --- | --- | --- |
+| 模板名称 | 是   | 文本输入框,placeholder `请输入模板名称`,最长 40 字符,带字数实时提示;校验文案 `请输入模板名称` / `不超过 40 字` |
+| 模板内容 | 是   | 多行文本框(6 行),placeholder `请输入模板内容,支持下方占位符`,最长 500 字符,带字数实时提示;校验文案 `请输入模板内容` / `不超过 500 字`。下方常驻"占位符说明"虚线提示卡片 |
+
+**占位符说明**(编辑区固定提示,便于运营直接复用,占位符以蓝色 `code` 样式展示):
+
+| 变量  | 占位符 |
+| --- | --- |
+| 商品名称 | `${productName}` |
+| 结束日期 | `${expireDate}` |
+| 卡号  | `${exchangeNum}` |
+| 卡密  | `${exchangePwd}` |
+| 权益使用路径 | `${qrCodeDownPaths}` |
+| 权益商品h5短链 | `${goodsLink}` |
+
+**底部按钮**:
+
+| 按钮  | 行为  |
+| --- | --- |
+| 取消  | 关闭弹窗,丢弃输入 |
+| 保存  | 触发校验,通过后写入: • 新建:生成模板 ID(`SMS_TPL_xxx`),提示 `新建成功` • 编辑:保留原 ID 并刷新"最后更新人 / 更新时间",提示 `保存成功` |
+
+* * *
+
+### 2.3 删除短信模板
+
+**入口**:列表行【删除】按钮(红色文字)。**交互**:弹出二次确认(warning 类型)`确定要删除模板「XXX」吗?删除后无法恢复`。
+
+模板删除后,相应业务模块配置的短信不再发送。
+
+| 按钮  | 行为  |
+| --- | --- |
+| 确定  | 删除该模板并从列表移除,提示 `删除成功` |
+| 取消  | 关闭弹窗,列表不变 |
+
+* * *
+
+## 3\. 发送记录查询
+
+### 3.1 列表页
+
+![BlockNote image](./screenshots/6-sms-send-record.png)
+
+3.1.1 筛选条件
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 接收手机号 | 文本输入 | 模糊匹配(号码已脱敏,可直接对脱敏值检索) |
+| 模板名称 | 下拉单选 | 选项来源于"短信模板管理"。空值表示"全部" |
+| 发送状态 | 下拉单选 | 成功 / 失败 / 全部 |
+| 发送时间 | 日期区间 | 按"开始日期 ~ 结束日期"过滤(按天比较) |
+
+**操作按钮**:
+
+-   【查询】:根据筛选条件查询并回到第 1 页
+    
+-   【重置】:清空所有筛选条件
+    
+
+3.1.2 列表字段
+
+| 字段  | 说明  |
+| --- | --- |
+| 发送 ID | 系统生成,格式形如 `SMS20260510001` |
+| 接收手机号 | 脱敏展示(如 `1385821`) |
+| 模板名称 | 引用的模板名;超长以 tooltip 展示 |
+| 发送内容 | 占位符已替换为真实值的最终文案;超长以 tooltip 展示 |
+| 关联权益商品 | 触发本条短信的权益商品名(可为空) |
+| 发送状态 | 成功(绿色 Tag)/ 失败(红色 Tag) |
+| 发送时间 | Y-m-d H:i:s |
+
+3.1.3 分页
+
+-   默认每页 10 条,可切换 10 / 20 / 50
+    
+-   支持上一页、下一页、页码、跳转
+    
+-   左下角展示 `共 N 条` 总条数
+    
+
+* * *
+
+## 4\. 与权益管理的关联
+
+-   《二、权益管理》→ 添加 / 编辑权益商品 → 第一步【下单成功短信】开关开启后,引用本模块维护的短信模板(仅是否权益平台兑换 = 是时可见)
+    
+-   **发放计划侧的"短信通知"** 使用独立的发放短信模板(`GRANT_SMS_001` 系列),不与本模块的模板池共享,详见 §四 发放计划 §3
+    
+-   用户完成权益下单后,系统使用模板内容 + 该笔订单上下文生成最终文案,调用短信通道发送,并在【发送记录查询】中沉淀一条记录
+    
+
+# 九、报表中心
+
+报表中心面向运营 / 客服,统一提供积分、权益、立减金三类数据明细的查询与导出能力。三个子模块均为"筛选 + 列表 + 分页 + 导出"的标准结构;**导出**统一异步触发,提示 `导出任务已提交,请稍后在下载中心查看`。
+
+## 1\. 积分明细查询
+
+![BlockNote image](./screenshots/7-points-detail.png)
+
+**入口**:Liso 后台 → 定制功能 → 汇丰银行 → 积分明细查询。
+
+### 1.1 筛选条件
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 客户号 | 文本输入 | 模糊匹配,clearable |
+| 变动类型 | 下拉单选 | 选项:获取积分 / 使用积分 / 积分过期;空值视为全部 |
+| 查询日期范围 | 日期范围 | 按"变动日期"过滤 |
+
+**操作按钮**:
+
+-   【查询】:按筛选条件查询并回到第 1 页
+    
+-   【重置】:清空筛选条件
+    
+-   【导出】(绿色 + 下载图标):触发异步导出,按当前筛选结果导出,字段与列表一致
+    
+
+### 1.2 列表字段
+
+| 字段  | 说明  |
+| --- | --- |
+| 客户号 | 客户唯一标识 |
+| 变动日期 | 格式 `Y/m/d` |
+| 变动积分金额 | 整数  |
+| 积分总数 | 变动后客户的积分总数 |
+| HYH 积分 | 借记卡积分余额 |
+| 信用卡积分 | 信用卡积分余额 |
+| 变动类别 | Tag 展示,可选值:`获取积分`(绿)/ `使用积分`(默认)/ `积分过期`(灰) |
+| 积分项目类别 | 具体的积分项目名称。"积分过期"类无项目,显示 `/` |
+
+### 1.3 分页
+
+-   默认每页 10 条
+    
+
+* * *
+
+## 2\. 客户权益发放
+
+![BlockNote image](./screenshots/7-customer-equity-grant.png)
+
+**入口**:Liso 后台 → 定制功能 → 汇丰银行 → 客户权益发放。查询客户维度的权益发放记录。
+
+### 2.1 筛选条件(两行 3 列布局)
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 客户号 | 文本输入 | 模糊匹配 |
+| 权益编号 | 文本输入 | 模糊匹配(编号格式 `Q` + 6 位) |
+| 发放时间 | 日期范围 | 按发放时间过滤 |
+| Channel 名称 | 下拉单选 | 支持输入搜索;选项来源于【Channel 管理】(示例如"汇丰中国客户服务号"、"MGM - Mortgage" 等) |
+| Campaign 名称 | 下拉单选 | 支持输入搜索;选项来源于【Campaign 管理】 |
+| 客户账户类型 | 下拉单选 | 选项:Premier / Elite / PB / Prospect |
+
+**操作按钮**:查询 / 重置 / 导出(同 §1)。
+
+### 2.2 列表字段
+
+| 字段  | 说明  |
+| --- | --- |
+| 发放时间 | `Y-m-d H:i:s` |
+| 权益名称 | 发放的权益名称 |
+| 权益编号 | 权益唯一编号(`Q` + 6 位) |
+| Campaign ID | 关联营销活动 ID(如 `CP9001`) |
+| Campaign 名称 | 关联营销活动名称,过长省略号 + tooltip |
+| Channel ID | 投放渠道 ID(如 `CH0001`) |
+| Channel 名称 | 投放渠道名称 |
+| 客户号 | 客户唯一标识 |
+| 客户账户类型 | Tag 展示,可选值:`Premier`(默认)/ `Elite`(绿)/ `PB`(黄)/ `Prospect`(灰) |
+
+### 2.3 分页
+
+-   默认每页 10 条,布局为"总数 / 上一页 / 页码 / 下一页 / 跳转"
+    
+
+* * *
+
+## 3\. 立减金发放明细
+
+![BlockNote image](./screenshots/7-cash-discount-grant.png)
+
+**入口**:Liso 后台 → 定制功能 → 汇丰银行 → 立减金发放明细。查询立减金发放及使用情况。
+
+### 3.1 筛选条件(两行 3 列布局)
+
+| 字段  | 类型  | 说明  |
+| --- | --- | --- |
+| 客户号 | 文本输入 | 模糊匹配 |
+| 立减金类型 | 下拉单选 | 选项:借记卡 / 信用卡 |
+| 发放时间 | 日期范围 | 按发放日期过滤 |
+| 是否领取 | 下拉单选 | 是 / 否 |
+| 是否使用 | 下拉单选 | 是 / 否 |
+
+**操作按钮**:查询 / 重置 / 导出(同 §1)。
+
+### 3.2 列表字段
+
+| 字段  | 说明  |
+| --- | --- |
+| 发放时间 | `Y-m-d H:i:s` |
+| 客户号 | 客户唯一标识 |
+| 立减金类型 | 借记卡 / 信用卡 |
+| 是否有 bin 卡限制 | Tag 展示,可选值:`是`(黄)/ `否`(灰) |
+| 发放金额 | `¥` 前缀的金额(如 `¥50`) |
+| 发放事由 | 发放原因说明(如"新开户礼遇"、"月度消费达标奖励"等),过长省略号 + tooltip |
+| 是否领取 | Tag 展示,可选值:`是`(绿)/ `否`(红) |
+| 领取时间 | `Y-m-d H:i:s`;未领取时显示 `-` |
+| 使用有效期 | `YYYY-MM-DD 至 YYYY-MM-DD`;未领取时显示 `-` |
+| 是否使用 | Tag 展示,可选值:`是`(绿)/ `否`(红) |
+| 使用时间 | `Y-m-d H:i:s`;未使用时显示 `-` |
+
+### 3.3 分页
+
+-   默认每页 10 条,布局为"总数 / 上一页 / 页码 / 下一页 / 跳转"
+    
+
+<br>

+ 87 - 0
prd/汇丰银行/测试用例/信用卡权益-测试用例.md

@@ -0,0 +1,87 @@
+# 信用卡权益 — 测试用例
+
+> 覆盖范围:后台信用卡权益管理(FSD §3)+ 移动端信用卡权益展示(移动端 §1.1、§1.2)
+
+* * *
+
+## 一、信用卡权益列表(FSD §3.1 - §3.3)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| CC-LIST-001 | 权益列表 | 列表入口 | 已登录Liso后台 | 导航至 定制功能 → 汇丰银行 → 信用卡权益 | 正常进入信用卡权益列表页 |
+| CC-LIST-002 | 权益列表 | 数据来源 — CVP平台同步 | CVP平台已有信用卡权益 | 查看列表 | 权益数据从CVP平台接口自动同步展示 |
+| CC-LIST-003 | 权益列表 | 按权益名称模糊搜索 | 存在多条信用卡权益 | 1\. 「权益名称」输入部分关键字 2. 点击【查询】 | 列表仅展示名称包含关键字的记录 |
+| CC-LIST-004 | 权益列表 | 搜索无结果 | 存在信用卡权益 | 1\. 输入不存在的名称 2. 点击【查询】 | 列表为空 |
+| CC-LIST-005 | 权益列表 | 重置筛选条件 | 已输入筛选条件并查询 | 点击【重置】 | 筛选条件清空,列表恢复默认 |
+| CC-LIST-006 | 权益列表 | 列表字段 — 权益名称展示 | 存在名称较长的权益 | 查看"权益名称"列 | 超过一行时换行显示 |
+| CC-LIST-007 | 权益列表 | 列表字段 — 显示页面Tag展示 | 权益配置了权益首页/列表页和组装页A | 查看"显示页面"列 | 显示「权益首页/列表页」和「组装页A」两个Tag |
+| CC-LIST-008 | 权益列表 | 列表字段 — 未配置显示页面 | 权益未开启任何显示页面 | 查看"显示页面"列 | 显示"-" |
+| CC-LIST-009 | 权益列表 | 分页 — 默认每页10条 | 信用卡权益 > 10 条 | 打开列表页 | 默认展示10条,左下角显示 Total N |
+| CC-LIST-010 | 权益列表 | 分页 — 切换每页条数 | 信用卡权益 > 20 条 | 切换为每页20条 | 每页展示20条 |
+| CC-LIST-011 | 权益列表 | 分页 — 翻页 | 信用卡权益 > 10 条 | 点击下一页 | 数据不重复不遗漏 |
+
+* * *
+
+## 二、操作 — 设置显示页面(FSD §3.4)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| CC-PAGE-001 | 设置显示页面 | 按钮可见性 — 任意状态 | 任意信用卡权益 | 查看操作列 | 【设置显示页面】按钮始终可见 |
+| CC-PAGE-002 | 设置显示页面 | 弹出对话框 | 任意信用卡权益 | 点击【设置显示页面】 | 弹出"设置显示页面"对话框 |
+| CC-PAGE-003 | 设置显示页面 | 权益首页/列表页配置 | 弹窗已打开 | 圆点单选"显示" | 选中"显示" |
+| CC-PAGE-004 | 设置显示页面 | 组装页 — 选择显示 | 弹窗已打开 | 组装页选"显示" | 下方展开多选框,可选组装页 A/B/C/D |
+| CC-PAGE-005 | 设置显示页面 | 组装页 — 选择不显示 | 弹窗已打开 | 组装页选"不显示" | 不展开多选框 |
+| CC-PAGE-006 | 设置显示页面 | 确定保存 | 配置了权益首页/列表页=显示,组装页=显示+选中A | 点击【确定】 | 立即生效,列表"显示页面"列以Tag回显,提示"显示页面已更新" |
+| CC-PAGE-007 | 设置显示页面 | 取消不保存 | 修改了配置 | 点击【取消】 | 关闭弹窗,配置不变 |
+| CC-PAGE-008 | 设置显示页面 | 回显已有配置 | 权益已配置了显示页面=权益首页/列表页+组装页B | 点击【设置显示页面】 | 弹窗中回显已有配置:权益首页/列表页=显示,组装页=显示+已选中B |
+
+* * *
+
+## 三、操作 — 调整显示顺序(FSD §3.4)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| CC-ORD-001 | 调整顺序 | 按钮可见性 — 已上架 | 信用卡权益:已上架 | 查看操作列 | 【调整显示顺序】按钮可见 |
+| CC-ORD-002 | 调整顺序 | 气泡弹出 | 信用卡权益:已上架 | 点击【调整显示顺序】 | 弹出气泡,提示"移动端权益首页和列表页按照该顺序展示" |
+| CC-ORD-003 | 调整顺序 | 默认值为当前位次 | 权益当前在第2位 | 点击【调整显示顺序】 | 输入框默认值=2 |
+| CC-ORD-004 | 调整顺序 | 输入有效值 | 当前列表共5条 | 输入3,点击【确定】 | 权益移动到第3位,列表刷新,提示"顺序已调整" |
+| CC-ORD-005 | 调整顺序 | 输入无效值 | 当前列表共5条 | 输入0或6 | 提示"请输入有效的顺序位置" |
+| CC-ORD-006 | 调整顺序 | 取消调整 | 气泡已弹出 | 点击【取消】 | 关闭气泡,顺序不变 |
+
+* * *
+
+## 四、操作 — 生成链接(FSD §3.4)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| CC-LINK-001 | 生成链接 | 按钮可见性 — 已上架 | 信用卡权益:已上架 | 查看【更多】菜单 | 【生成链接】按钮可见 |
+| CC-LINK-002 | 生成链接 | 弹出链接对话框 | 信用卡权益:已上架 | 点击【更多 → 生成链接】 | 弹出"生成信用卡权益链接"对话框,链接格式为 `equity/credit?id=<权益编号>` |
+
+* * *
+
+## 五、移动端 — 信用卡权益展示(移动端 §1.1)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| CC-M-LIST-001 | 移动端展示 | 信用卡权益展示位置 | 存在借记卡和信用卡权益 | 打开权益列表页 | 信用卡权益展示在借记卡权益之后 |
+| CC-M-LIST-002 | 移动端展示 | 客户未达标 — 显示待解锁 | 客户未达标的信用卡权益 | 查看该权益 | 展示【待解锁】标识 |
+| CC-M-LIST-003 | 移动端展示 | 客户已达标 — 显示可用次数 | 客户已达标,剩余可用次数3次 | 查看该权益 | 展示剩余可用次数(3次) |
+| CC-M-LIST-004 | 移动端展示 | 客户已达标 — 可用次数为0 | 客户已达标,剩余可用次数0次 | 查看该权益 | 展示剩余可用次数(0次),仍然显示 |
+| CC-M-LIST-005 | 移动端展示 | 客户类型判断 — 有信用卡 | 客户持有信用卡 | 查看权益列表 | 按客户类型展示相应权益 |
+| CC-M-LIST-006 | 移动端展示 | 客户类型判断 — 汇丰中国信用卡 | 客户卡种为汇丰中国信用卡 | 查看权益列表 | 展示对应客户类型的权益和操作按钮 |
+| CC-M-LIST-007 | 移动端展示 | 点击权益图标进入详情 | 客户已达标的信用卡权益 | 点击权益图标 | 进入权益详情页 |
+| CC-M-LIST-008 | 移动端展示 | 详情页操作按钮 — 不同客户类型 | 不同客户类型的客户 | 进入信用卡权益详情页 | 根据客户类型展示不同按钮(立即使用/立即申卡/立即升卡/缴纳年费) |
+
+* * *
+
+## 六、移动端 — 我的权益中的信用卡权益(移动端 §1.2)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| CC-M-MY-001 | 我的权益 | 信用卡权益展示位置 | 存在未过期券码、信用卡权益和已失效券码 | 打开"我的权益"页面 | 信用卡权益在未过期券码之后、已失效券码之前 |
+| CC-M-MY-002 | 我的权益 | 信用卡权益字段展示 | 存在已领取的信用卡权益 | 查看列表项 | 展示权益列表图标、权益名称、权益副标题 |
+| CC-M-MY-003 | 我的权益 | 权益副标题为空时不展示 | 信用卡权益无副标题 | 查看列表项 | 不展示副标题行 |
+| CC-M-MY-004 | 我的权益 | 信用卡权益排序 | 存在多条信用卡权益 | 查看排列顺序 | 按领取时间倒序排列 |
+| CC-M-MY-005 | 我的权益 | 点击跳转 | 已领取的信用卡权益 | 点击该权益 | 跳转到订单详情页 |
+
+<br>

+ 367 - 0
prd/汇丰银行/测试用例/借记卡权益-测试用例.md

@@ -0,0 +1,367 @@
+# 借记卡权益 — 测试用例
+
+> 覆盖范围:后台权益管理(FSD §2)+ 权益审核(FSD §6)+ 券码管理(FSD §4)+ 移动端权益(移动端 §1-§4)
+
+* * *
+
+## 一、权益列表(FSD §2.1)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-LIST-001 | 权益列表 | 按权益名称模糊搜索 | 已存在权益"春节特惠"和"春季活动" | 1\. 「权益名称」输入"春" 2. 点击【查询】 | 列表展示所有名称包含"春"的记录 |
+| DC-LIST-002 | 权益列表 | 按权益编号精准搜索 | 已存在权益编号 Q000001 | 1\. 「权益编号」输入 Q000001 2. 点击【查询】 | 列表仅展示编号为 Q000001 的记录 |
+| DC-LIST-003 | 权益列表 | 按权益编号模糊搜索无结果 | 已存在权益编号 Q000001 | 1\. 「权益编号」输入 Q00 2. 点击【查询】 | 因精准匹配,列表无结果 |
+| DC-LIST-004 | 权益列表 | 按商品状态筛选 — 已上架 | 存在未上架和已上架的权益 | 1\. 「商品状态」选择"已上架" 2. 点击【查询】 | 列表仅展示商品状态=已上架的记录 |
+| DC-LIST-005 | 权益列表 | 按审核状态筛选 — 上架待审核 | 存在不同审核状态的权益 | 1\. 「审核状态」选择"上架待审核" 2. 点击【查询】 | 列表仅展示审核状态=上架待审核的记录 |
+| DC-LIST-006 | 权益列表 | 组合筛选 | 存在不同状态的权益 | 1\. 「商品状态」选"已上架" 2. 「审核状态」选"审核通过" 3. 点击【查询】 | 列表按两个条件取交集过滤 |
+| DC-LIST-007 | 权益列表 | 不选任何筛选条件查询 | 存在多条权益 | 直接点击【查询】 | 展示全部权益数据 |
+| DC-LIST-008 | 权益列表 | 重置筛选条件 | 已填写筛选条件并查询 | 点击【重置】 | 所有筛选项清空,列表恢复默认展示 |
+| DC-LIST-009 | 权益列表 | 分页 — 默认每页10条 | 权益总数 > 10 条 | 打开列表页 | 默认展示10条,左下角显示 Total N |
+| DC-LIST-010 | 权益列表 | 分页 — 切换每页条数 | 权益总数 > 20 条 | 切换为每页20条 | 每页展示20条 |
+| DC-LIST-011 | 权益列表 | 分页 — 翻页 | 权益总数 > 10 条 | 点击下一页 | 数据不重复不遗漏 |
+| DC-LIST-012 | 权益列表 | 分页 — 跳转指定页 | 权益总数 > 30 条 | 输入页码3,点击跳转 | 正确跳转至第3页 |
+| DC-LIST-013 | 权益列表 | 数据权限按一级分行隔离 | 用户A属分行X,用户B属分行Y | 用户A登录查看列表 | 仅展示分行X的数据,不可见分行Y |
+| DC-LIST-014 | 权益列表 | 列表字段 — 平台兑换=是(券码) | 存在一条平台兑换=是、商品类型=券码的权益 | 查看该行各字段 | 商品类型显示"券码"、外部权益链接显示"-"、是否有详情页显示"-"、库存数显示整数 |
+| DC-LIST-015 | 权益列表 | 列表字段 — 平台兑换=是(微信立减金) | 存在一条平台兑换=是、商品类型=微信立减金的权益 | 查看该行各字段 | 商品类型显示"微信立减金"、库存数由荣数商品池回填 |
+| DC-LIST-016 | 权益列表 | 列表字段 — 平台兑换=否 | 存在一条平台兑换=否的权益 | 查看该行各字段 | 商品类型显示"-"、SKU编号显示"-"、库存数显示"-"、外部权益链接显示对应来源 |
+| DC-LIST-017 | 权益列表 | 显示页面字段 — 多Tag展示 | 权益同时配置了权益首页/列表页和组装页A | 查看该行"显示页面"列 | 显示「权益首页/列表页」和「组装页A」两个Tag |
+| DC-LIST-018 | 权益列表 | 显示页面字段 — 未配置 | 权益未开启任何显示页面 | 查看该行"显示页面"列 | 显示"-" |
+
+* * *
+
+## 二、操作可见性矩阵(FSD §2.1.3)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-OPS-001 | 操作可见性 | 未上架 + 草稿 | 权益:未上架 + 草稿 | 查看该行操作列 | 显示:查看、编辑;更多菜单:复制、删除 |
+| DC-OPS-002 | 操作可见性 | 未上架 + 上架待审核 | 权益:未上架 + 上架待审核 | 查看该行操作列 | 仅显示:查看;更多菜单:复制 |
+| DC-OPS-003 | 操作可见性 | 已上架 + 审核通过(非券码) | 权益:已上架 + 审核通过,平台兑换=否 | 查看该行操作列 | 显示:查看、下架;更多菜单:调整显示顺序、复制、生成链接 |
+| DC-OPS-004 | 操作可见性 | 已上架 + 审核通过(券码) | 权益:已上架 + 审核通过,平台兑换=是,商品类型=券码 | 查看该行操作列 | 显示:查看、下架;更多菜单:调整显示顺序、复制、生成链接、导入券码、券码管理 |
+| DC-OPS-005 | 操作可见性 | 已上架 + 下架待审核 | 权益:已上架 + 下架待审核 | 查看该行操作列 | 仅显示:查看;更多菜单:复制 |
+| DC-OPS-006 | 操作可见性 | 未上架 + 审核通过(历史下架) | 权益:未上架 + 审核通过 | 查看该行操作列 | 显示:查看、编辑;更多菜单:复制、删除 |
+
+* * *
+
+## 三、添加权益(FSD §2.2)
+
+### 3.1 基本信息
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-ADD-001 | 添加权益 | 券码类型 — 完整流程提交审核 | 无   | 1\. 选择平台兑换=是、商品类型=券码 2. 填写权益名称、上传权益图标 3. 填写详情信息(权益主图、权益介绍、权益有效期、权益内容、权益说明) 4. 下一步设置规则 5. 下一步更多设置 6. 点击【提交审核】 | 创建成功,商品状态=未上架,审核状态=上架待审核 |
+| DC-ADD-002 | 添加权益 | 微信立减金 — 选择权益自动回填 | 荣数商品池中有可用立减金商品 | 1\. 选择平台兑换=是、商品类型=微信立减金 2. 点击【选择】按钮 3. 弹窗中搜索并选中一个商品 | 权益名称、库存数、权益主图自动回填 |
+| DC-ADD-003 | 添加权益 | 微信立减金 — 弹窗分页搜索 | 荣数商品池中有 >10 条商品 | 1\. 选择平台兑换=是、商品类型=微信立减金 2. 点击【选择】3. 弹窗中按名称搜索 | 弹窗支持模糊搜索、每页10条分页 |
+| DC-ADD-004 | 添加权益 | 微信立减金 — 手动修改回填的权益名称 | 已通过选择权益回填 | 手动修改权益名称 | 可修改,不影响其他回填字段 |
+| DC-ADD-005 | 添加权益 | 微信立减金 — 库存数校验 | 已通过选择权益回填,库存上限100 | 将库存数改为200 | 校验失败,提示不超过库存上限 |
+| DC-ADD-006 | 添加权益 | 第三方权益 — h5链接 | 无   | 1\. 选择平台兑换=否 2. 外部权益链接选"h5链接" 3. 填写h5链接URL 4. 选择有详情页=有 5. 完善信息并提交 | 创建成功,外部权益链接=h5链接 |
+| DC-ADD-007 | 添加权益 | 第三方权益 — 小程序链接 | 无   | 1\. 选择平台兑换=否 2. 外部权益链接选"小程序链接" 3. 填写小程序appid和页面地址 4. 完善信息并提交 | 创建成功,展示小程序appid和页面地址 |
+| DC-ADD-008 | 添加权益 | 第三方权益 — 太古地产 | 无   | 1\. 选择平台兑换=否 2. 外部权益链接选"太古地产" | 不显示额外链接输入框 |
+| DC-ADD-009 | 添加权益 | 第三方权益 — 龙腾 | 无   | 1\. 选择平台兑换=否 2. 外部权益链接选"龙腾" | 不显示额外链接输入框 |
+| DC-ADD-010 | 添加权益 | 第三方 — 无详情页时隐藏详情卡片 | 无   | 1\. 选择平台兑换=否 2. 选择有详情页=没有 | 详情信息卡片整体不显示 |
+| DC-ADD-011 | 添加权益 | 第三方 — 有详情页时显示详情卡片 | 无   | 1\. 选择平台兑换=否 2. 选择有详情页=有 | 详情信息卡片显示,需填写权益主图、权益介绍等 |
+| DC-ADD-012 | 添加权益 | 权益名称最长40字符 | 无   | 输入超过40字符的权益名称 | 输入被截断或提示不超过40字 |
+| DC-ADD-013 | 添加权益 | 权益介绍最长500字符 | 无   | 输入超过500字符的权益介绍 | 输入被截断或提示不超过500字,有字数实时提示 |
+
+### 3.2 详情信息
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-ADD-020 | 详情信息 | 权益有效期 — 平台兑换=是选择取自发放计划 | 平台兑换=是 | 权益有效期选择"取自发放计划" | 不显示额外输入框 |
+| DC-ADD-021 | 详情信息 | 权益有效期 — 平台兑换=是选择自定义输入 | 平台兑换=是 | 权益有效期选择"自定义输入" | 下方出现文本框,最长50字符 |
+| DC-ADD-022 | 详情信息 | 权益有效期 — 平台兑换=否 | 平台兑换=否,有详情页=有 | 查看权益有效期 | 直接输入文本框(最长50字符),无圆点单选 |
+| DC-ADD-023 | 详情信息 | 权益内容富文本 — PDF上传 | 无   | 在权益内容富文本编辑器中上传PDF | 上传成功,可自定义PDF链接文本 |
+| DC-ADD-024 | 详情信息 | 权益说明富文本 — PDF上传 | 无   | 在权益说明富文本编辑器中上传PDF | 上传成功,可自定义链接文本 |
+| DC-ADD-025 | 详情信息 | 下单成功短信 — 平台兑换=是时显示 | 平台兑换=是 | 查看下单成功短信字段 | 显示开关 + 短信模板下拉 |
+| DC-ADD-026 | 详情信息 | 下单成功短信 — 平台兑换=否时隐藏 | 平台兑换=否 | 查看第一步表单 | 不显示下单成功短信字段 |
+| DC-ADD-027 | 详情信息 | 下单成功短信 — 开启后选择模板 | 平台兑换=是 | 1\. 开启下单成功短信开关 2. 选择一个短信模板 | 模板内容在下方实时回显 |
+
+### 3.3 设置规则(第二步)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-ADD-030 | 设置规则 | 所有开关默认关闭 | 进入第二步 | 查看展示规则和领取规则 | 所有开关默认关闭 |
+| DC-ADD-031 | 设置规则 | 开启展示时间限制 | 进入第二步 | 开启"展示时间限制"开关 | 展开开始/结束时间选择器(精确到秒) |
+| DC-ADD-032 | 设置规则 | 开启展示客群限制 | 进入第二步 | 开启"展示客群限制"开关 | 展开客群多选下拉 |
+| DC-ADD-033 | 设置规则 | 开启领取时间限制 | 进入第二步 | 开启"领取时间限制"开关 | 展开开始/结束时间选择器(精确到秒) |
+| DC-ADD-034 | 设置规则 | 开启领取客群限制 | 进入第二步 | 开启"领取客群限制"开关 | 1\. 顶部出现提示卡"需在【发放计划】中选择权益发放…" 2. 下方出现不满足提示配置(提示内容/跳转按钮文案/跳转按钮链接) |
+| DC-ADD-035 | 设置规则 | 领取客群限制 — 不满足提示默认值 | 开启领取客群限制 | 查看不满足提示各字段默认值 | 提示内容默认"很抱歉,您暂不符合领取条件。",跳转按钮文案默认"返回",跳转按钮链接默认权益首页链接 |
+
+### 3.4 更多设置(第三步)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-ADD-040 | 更多设置 | 显示页面默认值 | 进入第三步 | 查看显示页面配置 | 权益首页/列表页默认"显示",组装页默认"不显示" |
+| DC-ADD-041 | 更多设置 | 组装页选择显示后展开多选 | 进入第三步 | 组装页选"显示" | 下方展开多选框,可选组装页 A/B/C/D… |
+| DC-ADD-042 | 更多设置 | 分享设置默认关闭 | 进入第三步 | 查看分享设置 | 开关默认关闭 |
+| DC-ADD-043 | 更多设置 | 开启分享设置 | 进入第三步 | 开启分享开关 | 展开分享名称(必填)和分享图片(必填) |
+| DC-ADD-044 | 更多设置 | 分享名称自动回填 | 第一步已填权益名称"春节特惠" | 开启分享开关(首次) | 分享名称自动回填为"春节特惠" |
+
+### 3.5 操作按钮
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-ADD-050 | 操作按钮 | 保存草稿 — 仅填权益名称 | 仅填写了权益名称 | 点击【保存草稿】 | 保存成功,商品状态=未上架,审核状态=草稿 |
+| DC-ADD-051 | 操作按钮 | 保存草稿 — 权益名称为空 | 未填写任何内容 | 点击【保存草稿】 | 校验失败,提示权益名称必填 |
+| DC-ADD-052 | 操作按钮 | 提交审核 — 必填校验 | 第三步,未填写全部必填项 | 点击【提交审核】 | 校验失败,提示缺失的必填字段 |
+| DC-ADD-053 | 操作按钮 | 提交审核 — 全部填写完成 | 第三步,所有必填项已填写 | 点击【提交审核】 | 创建记录:未上架 + 上架待审核,新权益默认排在列表第一位 |
+| DC-ADD-054 | 操作按钮 | 步骤导航 — 上一步/下一步 | 在第二步 | 1\. 点击【上一步】2. 点击【下一步】 | 步骤切换正确,不做任何校验 |
+| DC-ADD-055 | 操作按钮 | 取消 — 返回列表 | 填写了部分内容 | 点击【取消】 | 直接返回权益列表,不做提示 |
+| DC-ADD-056 | 操作按钮 | 提交审核仅在第三步显示 | 分别在第一步、第二步、第三步 | 查看底部按钮 | 第一步和第二步无【提交审核】,第三步显示 |
+
+### 3.6 复制权益
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-ADD-060 | 复制权益 | 复制后自动回填内容 | 存在一条完整权益 | 列表【更多 → 复制】 | 进入添加向导,自动回填源权益的基本信息、规则、显示页面等,权益编号留空 |
+| DC-ADD-061 | 复制权益 | 复制后提示文案 | 存在权益"春节特惠" | 列表【更多 → 复制】 | 页面显示提示 `已复制「春节特惠」的内容,请确认后保存` |
+| DC-ADD-062 | 复制权益 | 复制后保存生成新编号 | 复制后进入向导 | 点击【保存草稿】或【提交审核】 | 系统生成新的权益编号,不复用源编号 |
+
+* * *
+
+## 四、编辑权益(FSD §2.3)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-EDIT-001 | 编辑权益 | 入口可见性 — 未上架可编辑 | 权益:未上架 + 草稿 | 查看操作列 | 【编辑】按钮可见 |
+| DC-EDIT-002 | 编辑权益 | 入口可见性 — 已上架不可编辑 | 权益:已上架 + 审核通过 | 查看操作列 | 【编辑】按钮不显示 |
+| DC-EDIT-003 | 编辑权益 | 数据回填 | 权益:未上架 + 草稿,已填写部分信息 | 点击【编辑】 | 进入向导,所有已保存字段回填正确 |
+| DC-EDIT-004 | 编辑权益 | "是否权益平台兑换"不可修改 | 创建时选择平台兑换=是 | 进入编辑页面 | 该字段圆点单选禁用,不可修改 |
+| DC-EDIT-005 | 编辑权益 | 其余字段可编辑 | 平台兑换=否的权益 | 进入编辑页面 | 外部权益链接、是否有详情页、商品类型等可正常编辑 |
+| DC-EDIT-006 | 编辑权益 | 保存草稿 — 草稿状态 | 权益:未上架 + 草稿 | 修改后点击【保存草稿】 | 覆盖原记录,保持未上架 + 草稿 |
+| DC-EDIT-007 | 编辑权益 | 提交审核 — 弹出说明输入框 | 编辑完成进入第三步 | 点击【提交审核】 | 弹出提示"提交后将进入审核流程,期间不可再编辑。请填写提交说明(可选)" |
+| DC-EDIT-008 | 编辑权益 | 提交审核 — 确认提交 | 弹窗中填写/不填写说明 | 点击确认 | 状态变为未上架 + 上架待审核,生成新审核单 |
+
+* * *
+
+## 五、查看权益(FSD §2.4)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-VIEW-001 | 查看权益 | 所有状态均可查看 | 存在不同状态的权益 | 任意状态下点击【查看】 | 均可进入查看页面 |
+| DC-VIEW-002 | 查看权益 | 所有控件禁用态 | 进入查看页面 | 查看所有输入框、单选、复选、上传、富文本、开关 | 所有控件均为禁用态,不可编辑 |
+| DC-VIEW-003 | 查看权益 | 操作日志展示 | 权益经历过创建、审核等操作 | 查看页面底部"操作日志"卡片 | 按操作时间倒序展示:操作人、操作日期、操作类型(Tag形式) |
+| DC-VIEW-004 | 查看权益 | 底部按钮 — 第三步显示返回 | 进入查看页第三步 | 查看底部按钮 | 显示【返回】按钮 |
+| DC-VIEW-005 | 查看权益 | 底部按钮 — 已上架+审核通过显示下架 | 权益:已上架 + 审核通过,进入第三步 | 查看底部按钮 | 显示【下架】按钮 |
+| DC-VIEW-006 | 查看权益 | 底部按钮 — 非已上架状态不显示下架 | 权益:未上架 + 草稿,进入第三步 | 查看底部按钮 | 不显示【下架】按钮 |
+
+* * *
+
+## 六、下架权益(FSD §2.5)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-OFF-001 | 下架权益 | 下架按钮可见性 | 权益:已上架 + 审核通过 | 查看操作列 | 【下架】按钮可见 |
+| DC-OFF-002 | 下架权益 | 二次确认弹窗 | 权益名称"春节特惠" | 点击【下架】 | 弹窗显示"确定提交"春节特惠"的下架审核吗?审核通过后才会下架。"(warning类型) |
+| DC-OFF-003 | 下架权益 | 确认提交下架 | 弹窗已出现 | 点击【提交】 | 生成下架审核单,审核状态切到"下架待审核",商品状态保持"已上架",提示"已提交下架审核" |
+| DC-OFF-004 | 下架权益 | 取消下架 | 弹窗已出现 | 点击【取消】 | 关闭弹窗,状态不变 |
+
+* * *
+
+## 七、调整显示顺序(FSD §2.6)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-ORD-001 | 调整顺序 | 入口可见性 | 权益:已上架 | 【更多】→【调整显示顺序】 | 按钮可见 |
+| DC-ORD-002 | 调整顺序 | 气泡默认值 | 权益当前在第3位 | 点击【调整显示顺序】 | 气泡弹出,输入框默认值=3 |
+| DC-ORD-003 | 调整顺序 | 输入有效值调整 | 当前列表总共5条 | 输入2,点击【确定】 | 权益移动到第2位,列表局部刷新,提示"顺序已调整" |
+| DC-ORD-004 | 调整顺序 | 输入无效值 | 当前列表总共5条 | 输入6或0 | 提示"请输入有效的顺序位置" |
+| DC-ORD-005 | 调整顺序 | 取消调整 | 气泡已弹出 | 点击【取消】 | 关闭气泡,顺序不变 |
+
+* * *
+
+## 八、删除权益(FSD §2.7)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-DEL-001 | 删除权益 | 入口可见性 — 未上架+草稿 | 权益:未上架 + 草稿 | 查看【更多】菜单 | 【删除】可见 |
+| DC-DEL-002 | 删除权益 | 入口可见性 — 未上架+审核通过 | 权益:未上架 + 审核通过(历史下架) | 查看【更多】菜单 | 【删除】可见 |
+| DC-DEL-003 | 删除权益 | 入口不可见 — 已上架 | 权益:已上架 + 审核通过 | 查看【更多】菜单 | 【删除】不显示 |
+| DC-DEL-004 | 删除权益 | 入口不可见 — 上架待审核 | 权益:未上架 + 上架待审核 | 查看【更多】菜单 | 【删除】不显示 |
+| DC-DEL-005 | 删除权益 | 二次确认弹窗 | 权益名称"春节特惠" | 点击【删除】 | 弹窗显示"确定删除权益"春节特惠"吗?"(warning类型) |
+| DC-DEL-006 | 删除权益 | 确认删除 | 弹窗已出现 | 点击【删除】 | 列表移除该记录,提示"删除成功" |
+| DC-DEL-007 | 删除权益 | 取消删除 | 弹窗已出现 | 点击【取消】 | 关闭弹窗,列表不变 |
+
+* * *
+
+## 九、生成链接(FSD §2.1.3)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-LINK-001 | 生成链接 | 入口可见性 | 权益:已上架 | 【更多】→【生成链接】 | 按钮可见 |
+| DC-LINK-002 | 生成链接 | 弹出链接对话框 | 权益:已上架 | 点击【生成链接】 | 弹出"生成借记卡权益链接"对话框,给出可分享链接 |
+
+* * *
+
+## 十、权益审核(FSD §6)
+
+### 10.1 审核列表
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-AUD-001 | 审核列表 | Tab切换 — 待审核 | 存在待审核单 | 点击"待审核"Tab | 显示审核状态=上架待审核/下架待审核的审核单,操作列显示【审批】 |
+| DC-AUD-002 | 审核列表 | Tab切换 — 审核通过 | 存在历史通过记录 | 点击"审核通过"Tab | 显示历史审核通过记录,操作列显示【查看】 |
+| DC-AUD-003 | 审核列表 | Tab切换 — 审核驳回 | 存在历史驳回记录 | 点击"审核驳回"Tab | 显示历史驳回记录,操作列显示【查看】 |
+| DC-AUD-004 | 审核列表 | 按权益名称搜索 | 存在审核单 | 「权益名称」输入关键字,点击【查询】 | 模糊匹配结果正确 |
+| DC-AUD-005 | 审核列表 | 按权益编号搜索 | 存在审核单 | 「权益编号」输入编号,点击【查询】 | 精确匹配结果正确 |
+| DC-AUD-006 | 审核列表 | 数据权限隔离 | 管理员角色 vs 普通角色 | 普通角色登录查看列表 | 仅可见同一级分行用户创建的数据;管理员可见全部 |
+| DC-AUD-007 | 审核列表 | 审核类型Tag | 存在上架和下架审核单 | 查看列表"审核类型"列 | 上架审核显示绿色Tag,下架审核显示红色Tag |
+| DC-AUD-008 | 审核列表 | 业务模块固定显示 | 任意审核单 | 查看列表"业务模块"列 | 固定显示"借记卡权益" |
+
+### 10.2 审核详情与操作
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-AUD-010 | 审核详情 | 详情页只读展示 | 待审核单 | 点击【审批】进入详情 | 三步骤向导全部控件disabled,展示提交时的快照内容 |
+| DC-AUD-011 | 审核详情 | 上架审核 — 通过按钮须在第三步 | 上架审核单 | 在第一步查看底部按钮 | 不显示【通过】和【驳回】 |
+| DC-AUD-012 | 审核详情 | 上架审核 — 第三步显示通过/驳回 | 上架审核单 | 进入第三步 | 显示【通过】和【驳回】按钮 |
+| DC-AUD-013 | 审核详情 | 下架审核 — 不限步骤显示通过/驳回 | 下架审核单 | 在第一步查看 | 显示【通过】和【驳回】按钮 |
+| DC-AUD-014 | 审核详情 | 审核通过 — 二次确认 | 待审核单,第三步 | 点击【通过】 | 弹窗"确定通过该审核单吗?"(通过/取消) |
+| DC-AUD-015 | 审核详情 | 审核通过 — 确认 | 弹窗已出现 | 点击【通过】 | 提示"审核通过",返回审核列表 |
+| DC-AUD-016 | 审核详情 | 审核驳回 — 二次确认 | 待审核单,第三步 | 点击【驳回】 | 弹窗"确定驳回该审核单吗?"(驳回/取消) |
+| DC-AUD-017 | 审核详情 | 审核驳回 — 确认 | 弹窗已出现 | 点击【驳回】 | 提示"已驳回",返回审核列表 |
+
+### 10.3 状态联动
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-AUD-020 | 状态联动 | 上架审核通过 | 权益:未上架 + 上架待审核 | 审核通过 | 权益变为:已上架 + 审核通过 |
+| DC-AUD-021 | 状态联动 | 下架审核通过 | 权益:已上架 + 下架待审核 | 审核通过 | 权益变为:未上架 + 审核通过 |
+| DC-AUD-022 | 状态联动 | 上架审核驳回 | 权益:未上架 + 上架待审核 | 审核驳回 | 权益变为:未上架 + 草稿,可继续编辑 |
+| DC-AUD-023 | 状态联动 | 下架审核驳回 | 权益:已上架 + 下架待审核 | 审核驳回 | 权益变为:已上架 + 审核通过,继续在线 |
+| DC-AUD-024 | 状态联动 | 同一权益同时只能有1条审核单 | 权益已有一条上架待审核单 | 尝试再发起审核 | 系统阻止,同时只能存在1条进行中审核单 |
+
+* * *
+
+## 十一、券码管理(FSD §4)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-CODE-001 | 券码管理 | 入口可见性 | 权益:已上架,平台兑换=是,商品类型=券码 | 【更多】→【券码管理】 | 按钮可见,跳转至码库管理模块 |
+| DC-CODE-002 | 券码管理 | 非券码类型不显示入口 | 权益:平台兑换=否 | 查看【更多】菜单 | 不显示【券码管理】和【导入券码】 |
+| DC-CODE-003 | 券码管理 | 新增券码批次 | 进入券码管理页面 | 1\. 点击【新增券码批次】 2. 填写生效时间、过期时间、停止发放时间 3. 上传券码文件 4. 点击【确定】 | 列表新增一条批次记录,文件处理状态=处理中 |
+| DC-CODE-004 | 券码管理 | 券码文件格式校验 | 新增批次页面 | 上传非 .xlsx/.csv 文件 | 提示文件格式不支持 |
+| DC-CODE-005 | 券码管理 | 编辑批次 — 仅可修改时间 | 存在一个批次 | 点击【编辑】 | 仅生效时间、过期时间、停止发放时间可修改 |
+| DC-CODE-006 | 券码管理 | 回收 — 按钮可见性 | 批次券码剩余数量 > 0 | 查看操作列 | 显示【回收】按钮 |
+| DC-CODE-007 | 券码管理 | 回收 — 选择回收类型 | 点击【回收】 | 查看回收类型选项 | 可选:未发放券码回收 / 已过期券码回收 / 导错码券码回收 |
+| DC-CODE-008 | 券码管理 | 回收 — 数量校验 | 最大可回收数为50 | 输入回收数量60 | 校验失败,提示最多可回收数量 |
+| DC-CODE-009 | 券码管理 | 导出失败券码 | 批次导入失败数量 > 0 | 点击【导出失败券码】 | 下载失败明细文件 |
+| DC-CODE-010 | 券码管理 | 导入券码入口 | 权益:已上架,券码类型 | 【更多】→【导入券码】 | 跳转至统一资源管理后台"新增导入批次"页面 |
+
+* * *
+
+## 十二、移动端 — 权益列表(移动端 §1.1)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-M-LIST-001 | 移动端列表 | 展示顺序 | 存在借记卡、信用卡和微信立减金权益 | 打开我的权益页面 | 先展示借记卡权益,再展示信用卡权益,最后微信立减金入口(置底) |
+| DC-M-LIST-002 | 移动端列表 | 借记卡权益数据过滤 — 商品状态 | 存在已上架和未上架的借记卡权益 | 查看列表 | 仅展示商品状态=已上架的权益 |
+| DC-M-LIST-003 | 移动端列表 | 借记卡权益数据过滤 — 微信立减金不在此展示 | 存在商品类型=微信立减金的权益 | 查看借记卡权益区域 | 微信立减金不在此区域展示(在"我的立减金"入口) |
+| DC-M-LIST-004 | 移动端列表 | 展示时间限制 — 时间范围内 | 后台开启展示时间限制,当前时间在范围内 | 查看列表 | 该权益正常展示 |
+| DC-M-LIST-005 | 移动端列表 | 展示时间限制 — 时间范围外 | 后台开启展示时间限制,当前时间不在范围内 | 查看列表 | 该权益不展示 |
+| DC-M-LIST-006 | 移动端列表 | 展示时间限制 — 未开启 | 后台未开启展示时间限制 | 查看列表 | 该权益正常展示(不受时间限制) |
+| DC-M-LIST-007 | 移动端列表 | 展示客群限制 — 命中客群 | 后台开启展示客群限制,当前用户在客群中 | 查看列表 | 该权益正常展示 |
+| DC-M-LIST-008 | 移动端列表 | 展示客群限制 — 未命中客群 | 后台开启展示客群限制,当前用户不在客群中 | 查看列表 | 该权益不展示 |
+| DC-M-LIST-009 | 移动端列表 | 显示页面限制 | 后台配置了权益首页/列表页=不显示 | 查看权益首页/列表页 | 该权益不在首页/列表页展示 |
+| DC-M-LIST-010 | 移动端列表 | 奖励点为0不展示 | 权益开启了领取客群限制,用户奖励点=0 | 查看列表 | 该权益不展示 |
+| DC-M-LIST-011 | 移动端列表 | 列表字段展示 | 存在可见的借记卡权益 | 查看列表每项 | 展示权益列表图标和权益名称 |
+| DC-M-LIST-012 | 移动端列表 | 列表顺序 | 后台调整了显示顺序 | 查看列表 | 按后台"调整显示顺序"设置的顺序排列 |
+
+* * *
+
+## 十三、移动端 — 列表跳转逻辑(移动端 §1.1)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-M-JUMP-001 | 列表跳转 | 平台兑换=是(券码)→ 详情页 | 权益:平台兑换=是,商品类型=券码 | 点击该权益 | 跳转到权益详情页 |
+| DC-M-JUMP-002 | 列表跳转 | 平台兑换=否,无详情页,h5链接 | 权益:平台兑换=否,无详情页,外部链接=h5 | 点击该权益 | 弹窗提示"您正在离开汇丰中国…",点击【继续前往】跳转h5链接 |
+| DC-M-JUMP-003 | 列表跳转 | 平台兑换=否,无详情页,h5链接 — 取消 | 同上  | 点击该权益,弹窗中点击【取消】 | 关闭弹窗,不跳转 |
+| DC-M-JUMP-004 | 列表跳转 | 平台兑换=否,无详情页,小程序链接 | 权益:平台兑换=否,无详情页,外部链接=小程序 | 点击该权益 | 弹窗提示"您正在离开汇丰中国…",点击【继续前往】跳转小程序 |
+| DC-M-JUMP-005 | 列表跳转 | 平台兑换=否,无详情页,太古地产 | 权益:平台兑换=否,无详情页,外部链接=太古地产 | 点击该权益 | 弹出授权提醒,勾选同意并确认后显示离开提示,确认后跳转太古地产免登地址 |
+| DC-M-JUMP-006 | 列表跳转 | 太古地产 — 取消授权 | 同上  | 弹出授权提醒后点击【取消】 | 关闭授权提醒,不跳转 |
+| DC-M-JUMP-007 | 列表跳转 | 平台兑换=否,无详情页,龙腾 | 权益:平台兑换=否,无详情页,外部链接=龙腾 | 点击该权益 | 弹出授权提醒,勾选同意并确认后显示离开提示,确认后跳转龙腾免登地址 |
+| DC-M-JUMP-008 | 列表跳转 | 龙腾 — 取消授权 | 同上  | 弹出授权提醒后点击【取消】 | 关闭授权提醒,不跳转 |
+| DC-M-JUMP-009 | 列表跳转 | 平台兑换=否,有详情页 | 权益:平台兑换=否,有详情页=有 | 点击该权益 | 进入权益详情页(不直接跳出) |
+
+* * *
+
+## 十四、移动端 — 权益详情页(移动端 §2)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-M-DTL-001 | 权益详情 | 详情页内容展示 | 平台兑换=是的权益 | 进入权益详情页 | 展示:权益主图、权益名称、权益介绍、权益有效期、权益内容、权益说明 |
+| DC-M-DTL-002 | 权益详情 | 权益有效期 — 取自发放计划(固定日期) | 后台选择"取自发放计划",发放计划为固定日期 | 查看权益有效期 | 显示"【开始日期】-【结束日期】" |
+| DC-M-DTL-003 | 权益详情 | 权益有效期 — 取自发放计划(相对日期) | 后台选择"取自发放计划",发放计划为相对日期 | 查看权益有效期 | 显示"领取后 x 天内有效" |
+| DC-M-DTL-004 | 权益详情 | 权益有效期 — 自定义 | 后台选择"自定义输入" | 查看权益有效期 | 显示自定义输入的内容 |
+| DC-M-DTL-005 | 权益详情 | 单客户权益数量展示 | 后台配置了领取限制=月度3次 | 查看详情页 | 显示"月度 3 次" |
+| DC-M-DTL-006 | 权益详情 | 单客户权益数量 — 无限制时隐藏 | 后台未配置领取限制 | 查看详情页 | 不显示"单客户权益数量" |
+| DC-M-DTL-007 | 权益详情 | 权益内容PDF链接 | 后台权益内容中包含PDF | 点击PDF链接 | 支持点击打开预览查看,不支持下载 |
+| DC-M-DTL-008 | 权益详情 | 按钮 — 未到领取开始时间 | 后台开启领取时间限制,当前 < 开始时间 | 查看按钮 | 显示【未开始】,按钮不可点击 |
+| DC-M-DTL-009 | 权益详情 | 按钮 — 超过领取结束时间 | 后台开启领取时间限制,当前 > 结束时间 | 查看按钮 | 显示【已失效】,按钮不可点击 |
+| DC-M-DTL-010 | 权益详情 | 按钮 — 领取时间范围内 | 领取时间范围内 | 查看按钮 | 显示【领取权益】 |
+
+* * *
+
+## 十五、移动端 — 领取权益(移动端 §2)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-M-CLM-001 | 领取权益 | 校验顺序 | 用户不在发放计划客群内 | 点击【领取权益】 | 先校验发放计划,失败后提示不满足 |
+| DC-M-CLM-002 | 领取权益 | 领取客群不满足 — 提示内容 | 后台配置了不满足提示"仅限VIP客户" | 校验不通过 | 展示提示内容"仅限VIP客户" |
+| DC-M-CLM-003 | 领取权益 | 领取客群不满足 — 跳转按钮 | 后台配置了跳转按钮文案和链接 | 校验不通过,查看弹窗 | 按钮显示后台配置的文案,点击跳转至配置的链接 |
+| DC-M-CLM-004 | 领取权益 | 平台兑换=是 — 领取成功 | 平台兑换=是的权益,校验通过 | 点击【领取权益】 | 提示"尊敬的客户,您已成功领取权益",按钮文案取后台配置(默认"马上去使用"),点击跳转订单详情页 |
+| DC-M-CLM-005 | 领取权益 | 平台兑换=否+有详情页 — h5链接 | 平台兑换=否,有详情页,外部链接=h5 | 点击【领取权益】校验通过 | 弹窗"您正在离开汇丰中国…",【继续前往】跳转h5链接 |
+| DC-M-CLM-006 | 领取权益 | 平台兑换=否+有详情页 — 小程序链接 | 平台兑换=否,有详情页,外部链接=小程序 | 点击【领取权益】校验通过 | 弹窗"您正在离开汇丰中国…",【继续前往】跳转小程序 |
+| DC-M-CLM-007 | 领取权益 | 平台兑换=否+有详情页 — 太古地产 | 平台兑换=否,有详情页,外部链接=太古地产 | 点击【领取权益】校验通过 | 弹出授权提醒,勾选同意并确认后调用太古地产接口跳转免登地址 |
+| DC-M-CLM-008 | 领取权益 | 平台兑换=否+有详情页 — 龙腾 | 平台兑换=否,有详情页,外部链接=龙腾 | 点击【领取权益】校验通过 | 弹出授权提醒,勾选同意并确认后调用龙腾接口跳转免登地址 |
+
+* * *
+
+## 十六、移动端 — 权益订单详情(移动端 §3)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-M-ORD-001 | 订单详情 | 仅券码类型可进入 | 平台兑换=是,商品类型=券码,已领取 | 进入订单详情页 | 页面正常展示 |
+| DC-M-ORD-002 | 订单详情 | 兑换卡号默认掩码 | 已进入订单详情 | 查看兑换卡号 | 默认为掩码状态 |
+| DC-M-ORD-003 | 订单详情 | 兑换密钥默认掩码 | 已进入订单详情 | 查看兑换密钥 | 默认为掩码状态 |
+| DC-M-ORD-004 | 订单详情 | 点击显示切换明文 | 默认掩码状态 | 点击【显示】 | 兑换卡号和密钥变为明文显示 |
+| DC-M-ORD-005 | 订单详情 | 点击隐藏切换掩码 | 当前明文状态 | 点击【隐藏】 | 恢复为掩码状态 |
+| DC-M-ORD-006 | 订单详情 | 复制兑换卡号 | 已进入订单详情 | 点击卡号右侧复制按钮 | 卡号成功复制到剪贴板 |
+| DC-M-ORD-007 | 订单详情 | 复制兑换密钥 | 已进入订单详情 | 点击密钥右侧复制按钮 | 密钥成功复制到剪贴板 |
+| DC-M-ORD-008 | 订单详情 | 使用按钮文案 | 后台配置领取成功按钮文案"立即使用" | 查看按钮 | 按钮文案显示"立即使用" |
+| DC-M-ORD-009 | 订单详情 | 使用按钮跳转 | 已进入订单详情 | 点击使用按钮 | 跳转至使用链接 |
+
+* * *
+
+## 十七、移动端 — 我的权益(移动端 §1.2)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-M-MY-001 | 我的权益 | 展示顺序 | 存在未过期券码、信用卡权益和已失效券码 | 打开"我的权益"页面 | 顺序:券码权益(未过期)→ 信用卡权益 → 券码权益(已失效) |
+| DC-M-MY-002 | 我的权益 | 券码权益(未过期)— 字段展示 | 存在未过期券码权益 | 查看列表项 | 展示权益列表图标、权益名称、可用次数 |
+| DC-M-MY-003 | 我的权益 | 券码权益 — 领取时间倒序 | 存在多条未过期券码权益 | 查看排列顺序 | 按领取时间倒序排列 |
+| DC-M-MY-004 | 我的权益 | 券码权益 — 点击跳转 | 存在未过期券码权益 | 点击该权益 | 跳转到订单详情页 |
+| DC-M-MY-005 | 我的权益 | 筛选 — 全部 | 存在可使用和已失效的权益 | 选择"全部" | 展示所有权益 |
+| DC-M-MY-006 | 我的权益 | 筛选 — 可使用 | 存在可使用和已失效的权益 | 选择"可使用" | 仅展示未过期的权益 |
+| DC-M-MY-007 | 我的权益 | 筛选 — 已失效 | 存在可使用和已失效的权益 | 选择"已失效" | 仅展示已失效的权益 |
+
+* * *
+
+## 十八、移动端 — 我的立减金(移动端 §4)
+
+| 用例编号 | 模块  | 用例名称 | 前置条件 | 操作步骤 | 预期结果 |
+| --- | --- | --- | --- | --- | --- |
+| DC-M-CUT-001 | 我的立减金 | 页面入口 | 存在微信立减金权益 | 在权益列表底部点击微信立减金入口 | 跳转至我的立减金页面 |
+| DC-M-CUT-002 | 我的立减金 | 展示顺序 | 存在未领取、已领取、已过期的立减金 | 查看列表 | 顺序:未领取 → 已领取 → 已过期 |
+| DC-M-CUT-003 | 我的立减金 | 未领取排序 | 存在多条未领取立减金 | 查看未领取区域 | 按权益点有效期结束时间排序,先到期先展示 |
+| DC-M-CUT-004 | 我的立减金 | 已领取排序 | 存在多条已领取立减金 | 查看已领取区域 | 按权益下单时间排序,先下单先展示 |
+| DC-M-CUT-005 | 我的立减金 | 按钮状态 — 未领取 | 立减金状态=未领取 | 查看按钮 | 显示"立即领取",可点击 |
+| DC-M-CUT-006 | 我的立减金 | 按钮状态 — 已领取 | 立减金状态=已领取 | 查看按钮 | 显示"已领取",点击进入权益商品详情 |
+| DC-M-CUT-007 | 我的立减金 | 按钮状态 — 已过期 | 立减金状态=已过期 | 查看按钮 | 显示"已过期",不可点击 |
+| DC-M-CUT-008 | 我的立减金 | 今日到期标识 | 已领取状态,有效期结束日=今天 | 查看该项 | 显示"今日到期"标识 |
+| DC-M-CUT-009 | 我的立减金 | 点击领取 — 成功 | 未领取状态,openId查询成功 | 点击【立即领取】 | 状态变为"已领取" |
+| DC-M-CUT-010 | 我的立减金 | 点击领取 — 失败 | 未领取状态,openId查询失败或接口异常 | 点击【立即领取】 | 页面toast提示"系统异常,请联系客服人员" |
+| DC-M-CUT-011 | 我的立减金 | 筛选不同状态 | 存在各状态立减金 | 分别筛选未领取/已领取/已过期 | 正确过滤对应状态的商品 |
+| DC-M-CUT-012 | 我的立减金 | 空状态 | 某筛选状态下无商品 | 筛选后无数据 | 展示"暂无立减金" |
+| DC-M-CUT-013 | 我的立减金 | 商品展示字段 | 存在立减金 | 查看每项 | 展示权益图片、商品名称、副标题描述、有效期 |
+
+<br>