# 提款渠道限额设置 · PRD

**作者** Luke　**版本** v1.12　**日期** 2026-09-14　**状态** 进行中　**平台** BRAND_A & BRAND_B　**类** M

<details>
<summary><b>版本记录</b></summary>

| 版本 | 日期 | 变更摘要 |
|---|---|---|
| v1.12 | 2026-09-14 | 对齐 [§5.3](#sec-5) 的英文用词与新版验收标准：English PRD 与 BO 统一采用 `Admin Action Log`、`Withdrawal Channel Management` 与动作 `Set Limits`；BO 移除可见的形制差异说明，升级中文／EN 全页可逆切换并补齐既有总代的重复新增模拟。业务规则不变。 |
| v1.11 | 2026-09-11 | [§2.3](#sec-2) 写死批量新增 0 项成功时，按清洗后输入顺序回报第一项真实失败原因，并沿用该原因的单条提示语；[§8](#sec-8) 补对应验收。BO 原型补管理员 BRAND_A 范围模拟、越 BRAND 新增阻断与编辑金额四端点校验。 |
| v1.10 | 2026-09-11 | [§2](#sec-2) 依开发确认改为容错解析：英文／中文逗号、英文／中文分号、空白与换行均可识别，空项跳过、大小写不敏感、同批重复去重，不再产生“账号格式错误”；只有账号查无、非总代、重复、品牌或权限不符才走对象类失败。全文按需求 27–32 的最短路径重写，保留既有业务边界与完整版本历史；新增 BO HTML 原型并重绘资讯图表。 |
| v1.9 | 2026-08-13 | **L0 由六件减为四件**：原「③ 业务流程」并入 [§2.6](#sec-2)、原「⑤ 各角色读哪几段」删除，「验收按组认领」移入 [§8](#sec-8)。**`G1`–`G10` 改写为大白话**（只换说法、不换意思，合计短 72 字）。**四组重复各收敛到一处**：时间格式 → [§3.1](#sec-3)、「没有删除渠道这个动作」→ L0 ④、「不设备注栏」→ [§4.4](#sec-4)、「批量删除给账号清单」→ [§4.5](#sec-4)。**删**：4 处时区标注、2 处锁载体点名、[§7.3](#sec-7) 四项。**[§7.1](#sec-7) 只留本需求特有的三件**（对象三样、前后值、没有操作原因栏），「谁 / 何时 / 可检索」等平台通用项删去。**文末收尾行改为规格格式。**<br>⑤ 🔴 **平台既有事实一律不复述**（会员必有总代 / `usertree` 上溯 / 总代不降级不改名 / 账号状态不影响配置 / 分配设置不存限额值 / 基本配置是渠道级且不分首提 / 提款渠道平台级两品牌共用 / 平台没有告警只能落日志）——**读者是建过这个模块的开发，这些他本来就知道**。删 L0 ② 一段、[§2.1](#sec-2) 四个前提表与总代稳定性段、[§2.3](#sec-2) 与 [§2.5](#sec-2) 各一段；第二批再删分页一行、[§2.4](#sec-2) 的时点口径与三方交叉校验、[§3.1](#sec-3) 的金额单位与「只管能不能输入」。<br>⑥ **`G1`–`G10` 各收成一句话**——解释归「违反后果」列，不变量列不再重述。<br>⑦ **原型图看得出的不写**：[§1.2](#sec-1) 的两态说明与 [§1.4](#sec-1) 的「别自造第三态」删去。<br>⑧ **[§7.1](#sec-7) 再简化为三条**。<br>⑨ 🔴 **删掉一个不存在的场景**：原 `G5` 半条 ＋ 一条验收点写的是「会员曾变更代理线路怎么算」，**平台没有换线这回事**，整套判定属虚构，连同 [§2.1](#sec-2) 的论证段一并删除。<br>⑩ 🔴 **删除方式定案为物理删除**（原写「开发二选一」），[§1.4](#sec-1) 状态机、[§4.4](#sec-4)、`G8` 同步；「未删除记录」措辞随之简化。<br>⑪ **第三批 baseline 不复述**：品牌代码取值、品牌不进唯一维度、已删记录不占唯一维度、权限点各自独立授予、[§6.2](#sec-6) 的品牌前提段、[§3.1](#sec-3) 的值域重述与时间口径整段（格式直接写进字段表）、「后端必须独立再校验」、分页、`📐` 命名注记。<br>⑫ **[§4.3](#sec-4) 解释段精简**；[§4.4](#sec-4) 与 [§5.1](#sec-5) 重复的二次确认 / 执行后表现两段**合并为一句指过去**。<br>⑬ **[L0 ①](#l0) 收短**，只写本次新增的那一个动作。<br>⑭ **[§6.1](#sec-6) 表下三段说明全并进表内**——四个点是不是独立、进页门与写权限的表现差别，「无此权限时」那一列已经写清楚了。<br>⑱ **删掉 `总代` 栏下方的说明文案** `总代不可修改，如需更换请删除后重新添加`——置灰＋不可编辑本身已经表达，且该文案是本档拟的稿、非原型给定。🔴 **与充值方式侧同步定案**：两个页面都不加这行提示。<br>⑮ **补 7 处 `⚠️ 设计如此`**（[§2.2](#sec-2) 整组替换可能更严 ／ [§4.2](#sec-4) 批量不报明细、冻结总代照常入库 ／ [§4.3](#sec-4) 金额栏不回显、删除要二次确认而修改不要 ／ [§4.5](#sec-4) 批量完不给笔数 ／ [§5.1](#sec-5) 系统异常直抛原始错误）——其中 3 处是把原有的论证段改写成一行，净减。<br>⑯ 🔴 **[§8](#sec-8) 验收标准整章重做**：由「取值 / 维护 / 权限 / 留痕」**四个模块组**改为**八个失败模式组**，表头写明**刻意不列什么**；**48 → 41 条**（`AC2` `AC17` 并入 `AC1`、`AC16` 并入 `AC40`、`AC26` 并入 `AC48`、`AC44` 并入 `AC43`；删 `AC20` 进页权限、`AC21` 单条日志两条显然项）。🔴 **保留原编号、不重排**；`G1` 锚点同步去掉被并掉的 `AC2`。<br>⑰ [§3.1](#sec-3) 补第 8 处 `⚠️ 设计如此`：**下限 `1` 是为兼容各家三方不同的实际下限**，不是漏填。 |
| v1.8 | 2026-08-12 | **单点修正，零新增需求：`§6.1` 权限通则句限定范围。** 原文「🔴 无权限时控件照常渲染、点击时才报无权限」**没有限定适用对象**，紧跟在四个权限点的表格之后，字面上覆盖了它自己表格**第 1 行**的反例——`提款渠道管理_设置限额` 是进页门，无权限时是「**入口不显示**」而非「照常渲染」。现限定为「**上表第 2–4 三个写权限点**」，并补一行点明第 1 个点不适用。<br>🔴 **本条来自 `23.充值方式管理_限额设置` 的第三轮通读**：23 的 `§5` 有**一模一样的句子与表格结构**（当初比照本文档写的），在 23 侧被抓出后按「两侧同句必须同步改」一并修正——两份文档已互相引用对方的差异理由，单改一侧会制造新的不一致（↪ 同步对象：「充值方式管理 · 限额设置」`PRD_v1.5`）。 |
| v1.7 | 2026-08-12 | **两个字段规范补完，各自都关掉一条「验收执行不了」的缺口**：① 🔴 **限额值域由占位 `{{maxLimit}}` 改为写死 `1`–`50000`**，**全平台统一、不按渠道区分**（**推翻 v1.5 的「按渠道各自配置」**）——`AC10` 随之可执行，并写明 `0` / 负数 / 小数 / 千分位 / `50001` 逐个拦下、`1` 与 `50000` 放行；连带 §2.4、§3.2、§4.2 栏内提示、§5.1 第 4 条文案、§5.2 错误码同步，**`OP-8` 结清删除**。② 🔴 **补全时间格式 `yyyy-MM-dd HH:mm:ss`**（24 小时制、补零两位、精确到秒、不带时区后缀），§3.1 末新增「时间口径」通用段，§1.2 列表栏位与 §7.1 日志同步。③ **§2.2 举例表由关系占位符改为具体示例值**（默认 `500`–`20000` ／ 配法甲 `100`–`50000` ／ 配法乙 `1000`–`10000`），拆成甲乙两张表并点明「整组替换、既可能放宽也可能收紧」。④ 末轮通读修正：§4.4「二次确认差别只在显示的影响笔数」与 v1.6 定的「批量删除给账号清单、不给笔数」冲突，已改写（`G8` 同簇的第三处）；§3.1 时间口径自引用改为「本节末」；`AC10` 的「放行」改为「能正常输入并保存成功」，与 `AC7` 的「提款放行」区分。 |
| v1.6 | 2026-08-12 | **全篇通读后的一致性修正，零新增需求**：🔴 **`G7` / §4.5 / `AC33` 对齐到实际机制**——批量删除的二次确认**逐个列出总代账号、不给笔数**（既有做法平移），原写「两个二次确认弹窗都要显示笔数」在 `OP-26`（批量修改不设二次确认）之后已不成立，且 `AC33` 照原文案必然验不过；改为「`批量修改` 给笔数 / `批量删除` 给账号清单」两条并列，并加 📐 供开发评估长列表怎么承载（**不得截断**）。另修三处计数与残留：§2.1「两个前提」→ **四个**、§2.5「分三层」→ **五层归三种后果**、§4.5「两个二次确认弹窗」→ 一个；版式四处（引用粒度统一到 §5.1、新增 §5.3 玩家端、§2.3 承接、双空行）。 |
| v1.5 | 2026-08-12 | **只删不增，零口径变更**：结清 `OP-5`（📐 文案照拟稿采用，上线后按开发实作回落）与 `OP-25`（本页只管「超出该渠道上限不让输入」，配错了由三方回调报错兜住，`§2.4`）；`OP-4` 补上「维持后保存覆盖先保存」的倾向；🔴 **删除 §9.1「已定案」整节**（结论均已在正文，溯源归 `DECISIONS.md`）；精简 37 处过度解释——溯源署名 18、版本溯源 4、与 23 的对照 5、论证与代价段 6，另 4 条「删了会做反」的理由**保留**（`§2.5` 第 4 层为何分开 / `§4.3` 总代为何锁定 / `§7.2` 为何不回传来源 / `§4.2` 不得再合并）。 |
| v1.4 | 2026-08-12 | 补齐与 23.充值方式管理_限额设置 的六条差距：单条添加失败**按原因分开报**（§5.1）、新增**错误码 ↔ 提示语映射表**（§5.2）、新增**限额记录状态机**（§1.4）、写明**所属总代怎么解析**且**会员变更线路按发起那一刻算**（§2.1、`G5`；⚠️ **该场景 v1.9 已确认不存在、整套删除**）、**总代实体稳定性声明**（§2.1）、下游**不回传「值来自哪一层」**（§7.2、`AC47`）；🔴 `{{maxLimit}}` 改为**按渠道各自配置**（§3.1、§4.2、`OP-8`、新增 `OP-25`）；批量操作结果由 Toast 改**弹窗**（§4.4、§5.1）；并发编辑扩为**五场景表**（§4.6）；修正提示语笔误（`请务` → `请勿`）与「最高 / 最低」→「最大 / 最小」（§5.1）；同步四处版本残留（§4.1 旧文案、`AC42`、`OP-2` / `OP-9` / `OP-10` 定案）。 |
| v1.3 | 2026-08-11 | 删除**不再要求填备注**——只保留二次确认（页面上本来就没有可写备注的地方），连带撤掉 `备注` 字段、校验项与日志的「为什么」一栏（§3.1、§3.2、§4.3、§4.4、§5、§7.1）；`§1.2` 列表栏位表由横向改**直向**；`§3.1` 字段表**按列表实际顺序重排**；删掉 L0 ⑥ 里写错的「不做充值方式的限额」一行。 |
| v1.2 | 2026-08-11 | 把「至多一条」从先后扩到**并发**——并发新增与软删后并发重加只允许首个落库成功（§4.1）；写明中文逗号不切分后的结果链、以及修改接口收到总代字段一律拒绝不静默忽略（§4.2、§4.3）；越权判定点明「含弹窗打开后才被撤权」（§5、§6.2）；失败提示的触发条件由「贴了多个」放宽为「本次成功 0 笔」（§5）。 |
| v1.1 | 2026-08-11 | 补齐取值链的三处失败分支：基本配置默认限额缺失视为异常拒绝、解析不到总代则该渠道不可用、提交校验通过后不再重判（§2.4、§2.5）；批量执行遇失效项改为跳过、其余照做，并补「重复提交不得产生重复数据」（§4.5）；只读态写控件与后台系统异常的表现写明（§5、§6.1）；删掉「导出」的孤立引用（§4.4、§6.1）；举例表补一组「本页更严格」的反向示例（§2.2）。 |
| v1.0 | 2026-08-11 | 初版。在提现管理渠道列表的操作栏新增「设置限额」，以「渠道 × 总代」为粒度维护单笔提款的最小 / 最大限额（§1、§4）；定义限额的取值优先级与生效时点——有本页记录取本页值、没有则取基本配置里该渠道的默认限额（§2）；限额配置与「渠道分不分配」彻底解耦（§2.3）。 |

</details>

<details>
<summary><b>目录</b></summary>

[TOC]

</details>

---

<a id="l0"></a>

## L0 · 快速掌握

![提款渠道限额设置资讯图表](infographic/prd_v1.10_infographic.png)
<!-- infographic-md5: 4af2f0361235d23a1ec46fdb30dc27b2 -->

### ① 一句话需求

在 `充提渠道管理 ▸ 提款渠道管理` 的每个渠道新增 `设置限额`，按总代维护单笔提款最小／最大限额；有记录取本页值，没有记录才取该渠道基本配置。

### ② 术语写死表

| 词 | 唯一含义 |
|---|---|
| 限额记录 | 一条“提款渠道 × 总代”的覆盖配置。 |
| 基本配置 | 渠道既有默认限额，只在本页没有记录时使用。 |
| 用户渠道 | 列表的 BRAND 筛选项，取总代所属 BRAND；提款渠道本身是平台级。 |
| 单笔限额 | 单笔提款金额上下限，不是日累计或次数限制。 |

### ③ 全局红线表

| 不变量 | 违反后果 | 验证锚点 |
|---|---|---|
| **G1** 同一渠道、同一总代最多一条有效记录；有记录取本页值，无记录取基本配置 | 用错限额或产生两套真相 | `AC1` `AC2` `AC11` |
| **G2** 记录作用于该总代整条代理线 | 下级会员没有生效 | `AC3` |
| **G3** 最小、最大均为 `1–50000` 正整数，且最小严格小于最大 | 形成无效区间 | `AC8` `AC9` |
| **G4** 限额与渠道分配解耦；未分配或无法解析总代时，该渠道仍不可见 | 配限额意外开放渠道 | `AC4` `AC5` |
| **G5** 玩家提交时读取一次；之后改／删不重判在途提款 | 追溯改变已提交单据 | `AC6` `AC7` |
| **G6** 账号输入只做容错解析，不产生格式错误；对象查不到或不合业务条件才失败 | 合法名单因标点被拦 | `AC12` `AC13` `AC14` |
| **G7** 表头全选覆盖当前筛选的全部结果，单页逐行勾选翻页后清空 | 批量范围被误判 | `AC18` `AC19` |
| **G8** 删除为物理删除，日志保留前值；同一总代可重新添加 | 删除后永久无法重建或无法稽核 | `AC20` `AC21` |
| **G9** 限额读取异常时拒绝本次提款并提示重试，不得当作无限额 | 涉钱异常被放行 | `AC10` |

### ④ 适用范围与「不做」边界

本期包含入口、限额列表、增改删、批量改删、BRAND 筛选、取值优先级、四个权限点与管理员日志。不改 `分配设置`、`查看余额`、渠道主数据、玩家端页面／文案、二级代理／单一会员限额、导入导出、告警、限流与异步任务。

---

## 1. 页面与资料 <a id="sec-1"></a>

### 1.1 入口

**1.1.1** 提款渠道列表的操作顺序固定为 `分配设置`、`查看余额`、`设置限额`。`设置限额` 每行显示；有查看权限即可进入该渠道的整页限额列表，写入权限另判。

### 1.2 限额列表

**1.2.1** 标题为 `提现管理渠道列表–{对应配置名称}–限额列表`。一个渠道一份列表，返回键回提款渠道列表。

| 顺序 | 栏位 | 规则 |
|:-:|---|---|
| 1 | 勾选 | 表头全选＋逐行勾选 |
| 2 | ID | 自增主键；批量操作以 ID 定位 |
| 3 | 总代 | 账号；创建后不可修改 |
| 4–5 | 单笔最小／最大限额 | 正整数 |
| 6 | 更新时间 | `yyyy-MM-dd HH:mm:ss`，最后一次人工写入 |
| 7 | 管理员 | 最后一次人工写入者 |
| 8 | 操作 | `修改`、`删除`，恒显示 |

**1.2.2** 默认按 ID 正序。筛选项只有 `用户渠道`：`全部／BRAND_A／BRAND_B`。

## 2. 新增与账号解析 <a id="sec-2"></a>

### 2.1 表单

**2.1.1** 页顶包含 `添加代理（仅限总代）` 多行输入、`单笔最小限额`、`单笔最大限额`、`添加`、`返回`。一次可输入多个总代，共用一组限额。账号栏内提示为 `可用逗号、分号、空格或换行分隔`。

### 2.2 容错解析

**2.2.1** 前后端使用同一条管线：

1. 将英文逗号 `,`、中文逗号 `，`、英文分号 `;`、中文分号 `；`、Tab、空格与换行识别为分隔。
2. 去除每项前后空白并跳过空项；连续、开头或结尾分隔符都不报错。
3. 账号按大小写不敏感去重；同批重复只算一项。
4. 以清洗去重后的账号数判断单条／批量与 100 个上限。

**2.2.2** 清洗后 0 个账号按必填未填；大于 100 个整批不提交并保留输入。不存在“账号格式错误”分支：无法对应账号的字串按“查无此账号”处理。

### 2.3 对象校验与部分成功

| 顺序 | 校验 | 单条不过 | 批量不过 |
|:-:|---|---|---|
| 1 | 三个栏位都有值 | 阻断 | 阻断整批 |
| 2 | 清洗后账号数 ≤ 100 | 阻断 | 阻断整批 |
| 3 | 两个限额符合 [§3.1](#sec-3) | 阻断 | 阻断整批 |
| 4 | 账号存在且为总代 | 对应对象错误 | 剔除该项 |
| 5 | 总代 BRAND 在管理员可操作范围 | 对应权限错误 | 剔除该项 |
| 6 | 本渠道尚无该总代记录 | 重复提示 | 剔除该项 |

**2.3.1** 被冻结或停用的总代仍可新增并生效。批量逐条独立写入；有成功项就只回成功数，不列失败明细。0 项成功时，按清洗去重后的输入顺序回报第一项真实失败原因，并逐字沿用该原因在 [§5.2](#sec-5) 的单条提示语；不得固定回报“非总代”或用后出现的原因覆盖。并发撞唯一键只剔除冲突项。

## 3. 取值、生效与异常 <a id="sec-3"></a>

### 3.1 限额规则

**3.1.1** 两个限额都只收 `1–50000` 的正整数，含端点，不收 `0`、负数、小数或千分位；最小必须严格小于最大。页面允许配置得比基本配置更宽或更严，不取交集。

### 3.2 玩家提交取值

1. 以玩家所属总代＋本次提款渠道查本页记录；有记录就取本页最小／最大限额。
2. 没有记录才取基本配置中该渠道的默认限额。
3. 渠道未分配或解析不到总代时，渠道不向玩家显示；基本配置也取不到时，渠道不可用。
4. 本页读取超时／异常时，渠道仍显示，但提交失败并提示重试，同时写系统运行日志；不得回退或放行。

**3.2.1** 限额作用于总代整条代理线。玩家点击提交时读取并校验一次；保存后的改动只影响之后的新提交，在途提款单不重判。下游只需要拿到本次生效的最小／最大值，不回传来源层级。

## 4. 修改、删除与批量 <a id="sec-4"></a>

### 4.1 修改

**4.1.1** 单条与批量共用弹窗。顶部显示 `本次将修改 {n} 笔限额配置`；总代栏禁用并完整可滚动查看；两个金额栏留空且都必填。确认后把选中记录统一改为同一组值，不设二次确认。请求若带总代字段，拒绝整个请求。

### 4.2 删除

**4.2.1** 单条与批量共用二次确认，不设备注。弹窗完整列出选中的总代账号，不截断。确认后物理删除；记录从列表消失，限额立即回落基本配置，同一总代之后可重新新增并取得新 ID。

### 4.3 选取、并发与结果

**4.3.1** 批量修改／删除未勾选时不发请求。逐行勾选只在当前页有效；表头全选覆盖当前筛选的全部结果并跨页。批量执行遇已删除或越权项时跳过，其余继续；结果统一显示 `操作成功`，不显示成功／跳过笔数。

**4.3.2** 同一记录并发修改以后保存者为准；被删除后再单条修改／删除则提示刷新。重复提交不得产生重复记录或重复删除。

## 5. 权限、提示与留痕 <a id="sec-5"></a>

### 5.1 权限

| 权限点 | 控制 | 无权限时 |
|---|---|---|
| `提款渠道管理_设置限额` | 入口、页面、读取 | 入口不显示 |
| `提款渠道管理_设置限额新增` | 添加 | 控件仍显示，提交时报无权限 |
| `提款渠道管理_设置限额修改` | 单条／批量修改 | 同上 |
| `提款渠道管理_设置限额删除` | 单条／批量删除 | 同上 |

**5.1.1** 后端每次写入都复核权限与目标总代 BRAND；管理员只看得到其 BRAND 范围内的记录。

### 5.2 后台提示语

| 场景 | 逐字文案 | 呈现 |
|---|---|---|
| 未勾选批量操作 | `请先选择用户，再操作` | 弹窗 |
| 清洗去重后超过 100 个账号 | `仅支持单笔 100 个账号` | 弹窗；保留输入 |
| 必填未填／清洗后无账号 | `请填写完整` | Inline |
| 限额格式或值域错误 | `请输入 1–50000 的正整数` | Inline |
| 最小 ≥ 最大 | `单笔最大限额 需大于 单笔最小限额` | Inline |
| 单条查无账号 | `查无此账号，请检查确认` | 弹窗 |
| 单条非总代 | `该用户非总代,请检查确认` | 弹窗 |
| 单条重复 | `{总代账号} 该总代之前已添加,请勿重复提交` | 弹窗 |
| 越 BRAND | `该总代不在您的可操作范围内` | 弹窗 |
| 缺写权限 | `您没有操作权限，请联系管理员` | 弹窗 |
| 目标已删除 | `该笔配置已被删除，请刷新后重试` | 弹窗；关闭后刷新 |
| 单条删除确认 | `{总代账号},是否确认删除?` | 弹窗 |
| 批量删除确认 | `{账号1},{账号2} 是否确认删除?` | 弹窗；完整列出 |
| 成功／批量部分成功 | `操作成功` | 弹窗；不带笔数 |
| 批量新增 0 项成功 | 按清洗去重后的输入顺序，沿用第一项真实失败原因的单条文案 | 弹窗；只显示该原因 |
| 限额列表 0 笔 | `No More Data` | 页内空态 |

**5.2.1** 格式符号本身不触发提示。系统查询／写入异常沿用后台原始错误呈现，不包装新文案。

### 5.3 留痕

**5.3.1** 新增、修改、删除写管理员操作日志，记录对象 ID、总代、渠道、前后值；批量记一条汇总并带对象 ID 清单。批量新增另记提交数、成功数、剔除数及被剔账号。日志不设备注／操作原因。限额读取异常写系统运行日志。

---

## L2 · 验收与附录

<details>
<summary><b>附录 A：验收标准</b></summary>

| # | P | 验收点 |
|---|:-:|---|
| AC1 | P0 | 同渠道、同总代有记录时取本页值，无记录时取基本配置（`G1`）。 |
| AC2 | P0 | 本页值可比基本配置更宽或更严，不取交集（`G1`）。 |
| AC3 | P0 | 下级会员使用其所属总代的记录（`G2`）。 |
| AC4 | P0 | 未分配渠道时，即使有限额记录也不向玩家显示（`G4`）。 |
| AC5 | P0 | 取消分配不删除记录；重新分配后原记录立即生效（`G4`）。 |
| AC6 | P0 | 保存新值后，下一次提款提交使用新值（`G5`）。 |
| AC7 | P0 | 保存前已提交的提款不重判（`G5`）。 |
| AC8 | P0 | `1` 与 `50000` 可输入；`0`、负数、小数、千分位、`50001` 被拦（`G3`）。 |
| AC9 | P0 | 最小等于或大于最大时阻断（`G3`）。 |
| AC10 | P0 | 注入限额读取异常时拒绝提交、提示重试并记日志，不回退或放行（`G9`）。 |
| AC11 | P0 | 并发新增同渠道、同总代只成功一条（`G1`）。 |
| AC12 | P0 | `agentA,, agentB；\nAGENTA，agentC;` 解析为 `agentA／agentB／agentC`，不报格式错（`G6`）。 |
| AC13 | P0 | 只输入逗号、分号与空白时按必填未填（`G6`）。 |
| AC14 | P0 | `not-exist@@` 不报格式错，按查无账号处理（`G6`）。 |
| AC15 | P1 | 清洗去重后 100 个可提交，101 个整批不提交且保留内容。 |
| AC16 | P1 | 批量中无效、非总代、越权或重复项被剔除，有效项照常写入；若 0 项成功，回报清洗后输入顺序中第一项的真实失败原因。 |
| AC17 | P1 | 冻结／停用总代仍可新增并生效。 |
| AC18 | P0 | 未勾选批量操作不发请求（`G7`）。 |
| AC19 | P0 | 表头全选覆盖当前 BRAND 筛选的跨页全部结果（`G7`）。 |
| AC20 | P0 | 删除后记录消失、回落基本配置，并可重新新增取得新 ID（`G8`）。 |
| AC21 | P0 | 删除日志保留总代、渠道与前值（`G8`）。 |
| AC22 | P1 | 修改弹窗金额不回显，总代不可编辑；请求带总代字段时整笔拒绝。 |
| AC23 | P1 | 批量修改影响数取实际选中数；已删除项跳过，其余成功。 |
| AC24 | P0 | 缺查看权限时入口不显示；缺写权限时控件仍显示但提交被前后端拒绝。 |

</details>

<details>
<summary><b>附录 B：原型视觉清单</b></summary>

## 原型视觉清单

| 视觉 ID | 载体 | 用途 | 证据 |
|---|---|---|---|
| `VIS-BO-NONE` | BO | 后台页面不使用图片或图片占位 | BO 原型只有表单、表格与弹窗 |
| `VIS-CLIENT-NONE` | Client | 本需求不产出客户端页面 | [L0 ④](#l0) |

</details>

---

文档版本：v1.12 | 日期: 2026-09-14 | 作者: Luke | 文档状态：进行中
