﻿# PRD-003B - 报价管理系统后台

**版本**：V1.2  
**创建日期**：2026-04-30  
**来源**：由 [PRD-003-quotation-management-system-V1.2.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/prd/PRD-003-quotation-management-system-V1.2.md) 按后台模块拆分整理

---

### 1. 概述

#### 1.1 文档范围

本文件仅描述后台管理平台需求，面向管理员和超级管理员，覆盖：

1. 登录
2. 项目管理
3. 报价审核与变更管理
4. 用户管理
5. 报价配置
6. 系统管理

不包含普通用户在前端报价平台中的报价录入、报价详情浏览、报价单资料编辑和导出操作。

#### 1.2 产品目标

后台管理平台用于承载报价流程中的管理、配置、审核与管控职责，包括：

1. 创建与维护项目
2. 维护项目可见人员
3. 维护项目状态
4. 维护项目级分成比例
5. 审核报价
6. 发起追加报价与打折
7. 维护账号与权限
8. 维护 8 大模块价格规则、工时规则、楼宇示例说明、税项与分成比例
9. 查看操作日志

#### 1.3 角色与权限边界

- 后台管理平台仅对管理员和超级管理员开放。
- 超级管理员可查看全公司范围内的项目与账号。
- 管理员在项目与报价管理范围内可查看并维护全部项目与报价。
- 管理员与超级管理员的后台项目管理权限覆盖全部项目，不以项目创建人、项目负责人、可见人员或其他“负责管理”关系作为限制条件。
- `南京报价人员` 与 `日本报价人员` 仅作为业务身份标签 / 人员归属标签使用，不属于系统角色；系统角色仍仅区分 `报价人员`、`管理员`、`超级管理员`。
- 普通用户不可访问后台管理平台。
- 前台与后台为分离系统，管理员和超级管理员不允许登录前端报价平台。
- 管理员和超级管理员在后台对历史报价执行审核、追加报价和打折。

#### 1.4 国际化规则

- 后台管理平台支持 `中文`、`日文`、`英文` 三种界面语言。
- 用户可在界面中手动切换语言。
- 首次进入系统时，默认语言根据浏览器语言设置自动匹配。
- 用户手动切换语言后，系统将该语言偏好保存到当前后台账号。
- 用户再次登录后台时，优先使用当前后台账号上次保存的语言偏好；仅当该账号从未手动切换过语言时，才按浏览器语言自动匹配。
- 系统页面语言统一跟随用户当前选择的语言切换。

#### 1.5 文档边界

- 本文档只描述管理员与超级管理员在后台平台中的可见页面、可用入口与可执行动作。
- 普通用户在前端执行的报价录入、报价详情浏览、报价单资料维护、导出配置等前台交互不在本文档中展开。
- 涉及普通用户前台交互时，以 [PRD-003A-quotation-frontend-V1.2.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/prd/PRD-003A-quotation-frontend-V1.2.md) 为准。

#### 1.6 版本记录

| 版本号 | 后台更新内容 |
|--------|--------------|
| V1.0 | 首版，包含：<br>1. 后端项目管理<br>2. 后端用户管理<br>3. 价格配置 |
| V1.1 | 包含：<br>1. 价格配置归类调整（动画配置、系统收费并入产品配置）<br>2. 补充 `追加报价` 后台能力（支持按模块选择、填写追加备注、比例与金额；管理员追加可直接生效）<br>3. 新增报价详情页 `审核记录` 需求（展示审核时间、报价版本号、价格、审核状态） |
| V1.2 | 版本目标：交付日方试用。包含：<br>1. 完整交付后台核心流程：`项目管理 / 报价审核与变更管理 / 用户管理 / 系统管理`<br>2. 新增 `审核报价` 能力，形成 `待提交审核 / 待审核 / 审核通过 / 审核不通过` 的完整审核流转口径<br>3. 新增 `打折` 能力，且 `打折` 仅支持管理员和超级管理员操作，并与追加、审核、导出共同纳入完整变更追溯体系<br>4. 补充后台配置能力：`报价配置（含 8 大模块价格配置、工时配置、楼宇示例说明）/ 分成比例 / 税项配置`，并明确后台当前生效配置为系统最终数据源<br>5. 新增 `分成比例` 功能，并补充项目级分成比例维护能力<br>6. 取消项目级默认报价单信息，后台项目管理仅维护项目基础信息、项目状态、可见人员与项目级分成比例<br>7. 完善多语言国际化能力，支持 `中文 / 日文 / 英文`，并支持后台账号语言偏好保存<br>8. 强化项目与报价管理规则：补充项目状态、项目可见人员维护、项目列表仪表盘与筛选口径、报价逻辑删除与统计规则<br>9. 新增系统级 `操作日志` 能力，覆盖登录、项目、报价、审核、追加、打折、导出、配置、用户管理等关键动作，并支持搜索、详情、分页与长期保留<br>10. 系统收费模块规则调整：系统收费改为非必选模块项，模块下展示 `系统使用费`、`外观模型`、`视点式 URL 链接费`、`HOMESTAGING` 四个可选项，按已选项计算小计 |

#### 1.7 本版范围与非功能口径

- `V1.2` 为试用交付版本。本文档中涉及的后台能力需明确标注是否纳入本版交付范围；未纳入 `V1.2` 的能力，需明确标注为 `本版不做` 或 `后续版本`。
- 后台相关性能指标按以下试用数据规模验收：项目数 `1,000`、报价记录数 `10,000`、账号数 `200`、报价配置项总量 `2,000`、操作日志总量 `100,000`。
- 在上述试用规模下，后台列表页首次加载、常规筛选/搜索结果返回、报价详情页打开、后台保存配置等常规页面操作目标为 `3 秒内`；导出页面预览生成目标为 `5 秒内`；PDF / Excel 导出完成目标为 `10 秒内`。
- `V1.2` 以后台桌面端为主，不考虑移动端；最小支持分辨率为 `1440 x 900`，推荐设计分辨率为 `1920 x 1080`。
- 后台桌面端支持 `Chrome / Edge / Safari` 最新两个大版本，页面缩放支持范围为 `80% - 125%`。
- 页面最小内容宽度为 `1280px`；当窗口宽度小于最小内容宽度时，允许页面出现横向滚动，优先保证页面结构与信息完整，不强行压缩导致布局错位。

---

### 2. 功能需求矩阵

| 功能ID | 功能名称 | 优先级 | 说明 |
|--------|----------|--------|------|
| BE-001 | 登录 | Must | 后台登录、首次改密、多语言 |
| BE-002 | 项目管理 | Must | 项目列表、项目编辑、项目详情 |
| BE-003 | 报价审核与变更管理 | Must | 审核、追加报价、打折、删除 |
| BE-004 | 用户管理 | Must | 用户创建、角色、启停用 |
| BE-005 | 报价配置 | Must | 8 大模块价格/工时配置、楼宇示例说明、税项配置、分成比例 |
| BE-006 | 系统管理 | Must | 修改密码、操作日志 |

---

### 3. 功能详细说明

#### BE-001 登录

- 管理员和超级管理员通过用户名 + 密码登录后台管理平台。
- 登录成功后进入后台首页，并仅展示当前角色有权限访问的菜单与操作。
- 首次登录成功后，系统自动跳转至 `系统管理 - 修改密码` 页面。
- 完成首次修改密码后，方可继续使用后台平台。
- 后台登录页支持 `中文 / 日文 / 英文`。
- 不提供注册功能。
- 忘记密码后需由其他有权限管理员在用户管理中重置。
- 密码长度限制为 `8-20` 位，需同时包含字母和数字，区分大小写。
- 密码允许使用字母、数字和常见英文特殊字符。
- 密码不允许包含中文或空格。
- 密码前后空格不做自动 trim，直接按非法输入处理。
- 后台登录会话有效期为 `7 天`。
- 用户连续无操作 `2 小时` 后，会话超时；会话活跃度以账号后续 API 请求为准。
- 会话超时前 `5 分钟`，系统需弹出提醒；若用户继续操作，则延长当前会话。
- 系统允许同一管理员或超级管理员账号在多个设备或浏览器端同时登录。
- 用户主动退出登录时，仅清除当前端会话并跳转登录页。
- 用户退出登录或会话失效后，再次访问历史页面或通过浏览器回退访问受保护页面时，系统统一跳转登录页。
- 管理员或超级管理员密码被其他有权限管理员重置后，该账号在所有已登录端的会话立即失效。
- 被重置密码的账号在各端下一次 API 请求时，系统统一按未登录处理并跳转登录页。
- 被重置密码的账号使用重置后的初始密码重新登录成功后，系统再次强制进入修改密码流程。
- `V1.2` 不纳入登录失败次数锁定策略；连续失败次数阈值、自动锁定与自动解锁规则放在后续版本单独设计。

#### BE-002 项目管理

##### 2.1 页面目标

后台项目管理用于维护项目基础信息、项目状态、可见人员、项目级分成比例，并查看项目下的历史报价记录。
后台项目管理面向管理员与超级管理员开放，二者均可管理全部项目，不区分“自己创建”或“负责管理”的项目范围。
历史项目已存在的 `HV-xxxx` 编号继续沿用，不做迁移；新建项目成功时，系统自动生成全局唯一的项目编号，格式为 `P-YYYYMMDD-XXXX`，且仅对后续新建项目生效；项目编号创建后不可编辑，项目删除后原编号不复用。

##### 2.2 一级项目列表

- 顶部提供仪表盘区域，至少展示：
  - `项目总数`
  - `报价总数`
  - `待提交审核报价数`
  - `待审核报价数`
- 仪表盘统计口径如下：
  - `项目总数`：统计所有未删除项目数量
  - `报价总数`：统计所有未删除报价数量，不包含追加记录与打折记录
  - `待提交审核报价数`：统计当前状态为 `待提交审核` 的报价数量，包含审核不通过后修改并重新保存回该状态的报价
  - `待审核报价数`：统计当前状态为 `待审核` 的报价数量，包含首次提交审核进入待审核的报价，也包含普通用户追加后进入待审核的报价
- 顶部提供搜索 / 筛选区域。
- 当前搜索条件包括：
  - 项目名称（模糊搜索）
  - 项目负责人（模糊搜索）
  - 项目状态（默认 `全部`）
  - 报价状态（默认 `全部`）
  - 创建时间（日期区间）
- `项目状态` 筛选值包括：`全部 / 进行中 / 已完成 / 已取消`。
- `报价状态` 筛选值包括：`全部 / 待提交审核 / 待审核 / 审核通过 / 审核不通过`。
- `报价状态` 中不单独设置 `报价中` 状态；保存未提交的报价统一归类为 `待提交审核`。
- 一级项目列表展示字段：
  - 编号
  - 项目名称
  - 创建人
  - 价格
  - 项目状态
  - 创建时间
  - 操作
- 一级操作包括：
  - `编辑`
  - `删除`
- `V1.2` 暂不提供批量操作能力，项目与报价均按单条记录执行管理操作。

##### 2.3 项目编辑

- 后端项目编辑权限仅限管理员和超级管理员。
- 后端项目基础字段与前端项目创建字段保持一致：
  - 项目名称：必填
  - 客户名称：选填
  - 项目负责人：默认取项目创建人，后续允许修改
  - 备注：选填
- 项目状态字段仅允许管理员与超级管理员维护，状态值包括：
  - `进行中`
  - `已完成`
  - `已取消`
- 管理员和超级管理员可编辑：
  - 项目基础信息
  - 项目状态
  - 可见人员
  - 项目级分成比例
- 管理员和超级管理员可将项目分配给一个或多个指定普通用户。
- 管理员和超级管理员暂不参与项目报价。
- 新建项目时，项目状态默认设为 `进行中`。
- 新建项目时，`项目负责人` 默认取项目创建人，后续允许修改。
- 只有 `进行中` 状态的项目允许继续新建报价。
- `已完成` 与 `已取消` 状态的项目不允许继续新建报价、追加报价或打折，但仍允许查看项目、导出和打印历史报价。
- 所有报价变更相关后端接口在真正落库前，均必须前置校验所属项目的 `project_status`；若项目状态为 `已完成` 或 `已取消`，则不允许执行 `保存报价`、`提交审核`、`追加报价`、`打折`，但允许管理员或超级管理员继续完成已进入流程的 `审核通过 / 审核不通过` 操作。
- 若项目下仍存在 `待审核` 的报价或待审核中的追加变更，则管理员或超级管理员不允许将项目状态修改为 `已完成`；系统需提示：`当前项目仍存在待审核中的报价或变更，需处理完成后才能标记为已完成。`
- 项目基础信息在任意阶段均允许编辑，不因项目下已存在历史报价、待审核报价、审核通过报价或审核不通过报价而禁用。
- 项目基础信息变更仅影响项目当前展示与后续新建报价初始化，不反向覆盖已保存报价的快照内容。
- `项目负责人` 仅作为业务展示字段使用，不参与权限判断，也不决定项目可见范围。

##### 2.4 可见人员维护

- 后台支持为项目分配一个或多个普通用户。
- 被分配到项目的普通用户可在前端项目列表中查看并操作该项目。
- 项目可见人员权限变更后，对该项目及其全部历史报价立即生效。
- 新增到项目可见人员名单的普通用户，立即获得该项目及其全部历史报价的查看与编辑权限。
- 从项目可见人员名单移除的普通用户，立即失去该项目及其全部历史报价的查看与编辑权限。
- 权限回收仅影响后续访问与操作权限，不影响既有历史操作记录的保留与展示。

##### 2.5 项目级分成比例维护

- 新建项目时，系统自动带入当前系统默认分成比例。
- 若管理员未对项目单独调整分成比例，则该项目持续沿用系统默认比例。
- 若管理员调整了项目级分成比例，则该项目报价计算与预览优先使用项目级比例。

##### 2.6 删除项目

- 项目删除仅对管理员和超级管理员开放。
- 普通报价人员不显示删除入口。
- 删除前系统应弹出确认对话框。
- 管理员或超级管理员无论项目下是否已存在历史报价记录，均可删除该项目。
- 项目删除采用 `逻辑删除`，不执行物理删除。
- 已删除项目在后台项目列表、仪表盘统计口径与默认查询结果中均不再展示。
- 已删除项目下的历史报价记录不再继续出现在前后台业务列表中，但操作日志、必要审计信息与关键留痕继续保留，用于后续追溯。
- 当前版本不提供已删除项目的恢复能力；如需回收站或恢复能力，放在后续版本设计。

#### BE-003 报价审核与变更管理

##### 3.1 二级历史报价列表

- 点击某个项目后，展开该项目下的历史报价记录。
- 二级列表展示字段：
  - 版本号
  - 报价名称
  - 报价人
  - 价格
  - 状态
  - 时间
  - 操作
- 报价版本号默认从 `V1` 开始，仅在新建报价首次保存时生成。
- 对 `待提交审核` 或 `审核不通过` 状态的已有报价编辑并保存时，不新增历史报价记录，也不递增版本号。
- 追加报价与打折均在当前报价基础上执行，不新增报价版本号。

##### 3.2 二级操作

二级操作包括：

- `查看`
- `审核`
- `追加报价`
- `打折`
- `删除`
- 管理员和超级管理员可查看并维护全部项目下的历史报价。

##### 3.3 审核报价

- 普通用户在前端点击 `申请报价审核` 后，后台承接审核执行动作。
- 点击 `审核` 后，以弹窗方式提供：
  - `审核通过`
  - `审核不通过`
- `待审核` 状态下，管理员与超级管理员仅执行审核结论，不直接修改报价内容。
- 审核记录至少展示：
  - 审核时间
  - 审核人
  - 报价版本号
  - 价格
  - 审核状态
  - 审核备注
- 后台报价详情页底部也提供 `审核通过` 与 `审核不通过` 两个按钮。
- `审核通过` 时，审核备注为选填。
- `审核不通过` 时，审核备注为必填。
- `审核不通过` 时，审核备注去除首尾空格后不能为空。
- 审核备注最大长度为 `200` 个字符，超出时不允许提交审核结果。

##### 3.4 追加报价

- 点击 `追加报价` 后，弹窗展示该报价当前各大项总价，包括：
  - 楼宇
  - 专有部
  - 色彩切换
  - 共用部
  - 办公室
  - 动画
  - 平面家具摆放
  - 系统收费
- 每一项支持单独勾选是否追加。
- 勾选后展示以下可编辑内容：
  - 追加备注
  - 追加方式（`按比例追加 / 按金额追加`）
  - 追加比例（默认 `100%`，字段展示为 `%`，仅在 `按比例追加` 时输入）
  - 追加金额（仅在 `按金额追加` 时输入；按比例追加时自动生成且只读）
- 弹窗按钮：
  - `取消`
  - `确认追加`
- 可追加模块范围包括：`楼宇`、`专有部`、`色彩切换`、`共用部`、`办公室`、`动画`、`平面家具摆放`、`系统收费`。
- `按比例追加` 时，`追加比例(%)` 仅允许输入 `0-200` 的整数值，不保留小数。
- `按金额追加` 时，`追加金额` 仅允许输入整数日元。
- 切换追加方式时，另一种方式下已填写的值需清空。
- 保存追加记录时，系统需同时记录：`追加方式`、`追加比例(如有)`、`最终追加金额`。
- 追加记录还需同时记录：`生效前金额`、`变更金额`、`生效后金额`，用于后续审计与金额解释。
- 普通用户、管理员和超级管理员均可发起追加报价。
- 普通用户确认追加后，在当前报价记录中新增一条追加记录，并将当前报价状态标记为 `待审核`；该追加记录需在报价历程中展示。
- 普通用户点击 `确认追加` 后，即视为同时发起该次追加的审核申请，不再提供额外的“提交审核”步骤。
- 普通用户追加报价进入 `待审核` 期间，当前有效金额、报价详情主金额与导出金额均继续沿用上一版已审核通过的有效金额；待审核追加仅作为独立追加记录展示，待审核通过后才并入当前有效金额。
- 普通用户发起的追加若审核不通过，则当前报价状态变更为 `审核不通过`；该次追加不并入当前有效金额，报价详情主金额、导出金额与打印金额继续沿用上一版已审核通过的有效金额。用户可在此基础上继续修改当前报价，保存后状态重新变更为 `待提交审核`，再由普通用户重新提交审核。
- 管理员或超级管理员确认追加后，在当前报价记录中新增一条追加记录，并直接生效；当前报价状态保持 `审核通过`，且该追加记录需在报价历程中展示。
- 同一条报价在 `待审核` 状态下，不允许再次发起新的追加报价。
- 同一条报价在任一时刻仅允许存在 `1` 个进行中的待审核变更流程。
- 追加报价次数本身不设上限，但必须在上一轮待审核流程处理完成后，才允许发起下一次追加。
- 报价在管理员审核通过后，仍可继续发起后续追加报价。

##### 3.5 打折

- `打折` 仅对管理员和超级管理员开放，普通报价人员不显示该操作入口。
- 点击 `打折` 后，弹窗展示该报价当前各大项总价，模块范围与 `追加报价` 保持一致。
- 打折方式支持二选一：
  - `按比例打折`
  - `按金额打折`
- 选择 `按比例打折` 时，展示：
  - 打折备注
  - 打折比例（整数 `0-100%`）
  - 打折金额（自动生成，只读）
- 选择 `按金额打折` 时，展示：
  - 打折备注
  - 打折金额（整数日元）
- 切换打折方式时，另一种方式下已填写的值需清空。
- 弹窗按钮：
  - `取消`
  - `确认打折`
- 打折在当前报价基础上执行，不生成新的历史报价记录。
- 保存打折记录时，系统需同时记录：`打折方式`、`打折比例(如有)`、`最终打折金额`、`打折备注`。
- 打折记录还需同时记录：`生效前金额`、`变更金额`、`生效后金额`，用于后续审计与金额解释。
- 打折金额不得大于当前可打折金额，打折后的最终报价金额不得小于 `0`。
- `打折` 仅允许对当前状态为 `审核通过` 的报价发起。
- `当前可打折金额` 以当前报价的已生效金额为基准计算，但需先扣除全部 `系统费` 金额；计算时包含已审核通过或管理员/超级管理员直接生效的追加与打折结果，不包含仍处于 `待审核` 的追加记录。
- 若当前报价已存在待审核中的变更流程，则不允许发起打折。
- 打折记录生成后直接生效，无需再次审核；当前报价状态保持 `审核通过`。
- 打折记录应在当前报价的报价详情与报价历程中统一展示。

##### 3.6 删除报价

- 报价删除仅对管理员和超级管理员开放。
- 普通报价人员不显示删除入口。
- 点击删除时，系统先弹出确认对话框。
- 管理员或超级管理员无论报价当前处于 `待提交审核`、`待审核`、`审核通过` 或 `审核不通过`，均可删除该报价记录。
- 报价删除采用 `逻辑删除`，不执行物理删除。
- 已删除报价在后台项目报价列表、统计口径与默认查询结果中均不再展示。
- 已删除报价的操作日志、必要审计信息与关键留痕继续保留，用于后续追溯。
- 当前版本不提供已删除报价的恢复能力；如需回收站或恢复能力，放在后续版本设计。

##### 3.7 报价详情

- 后台点击 `查看` 后，进入对应报价详情页面。
- 报价详情页采用左侧 `报价详情`、右侧 `报价历程` 的双栏布局。
- 头部操作区提供：
  - `报价单资料`
  - `导出`
  - `打印`
- 报价详情、审核查看和导出展示的所有金额均按日元整数展示；税额、含税总价和分成金额均沿用共享业务规则中的统一取整与尾差处理口径。
- 详情页底部提供：
  - `审核通过`
  - `审核不通过`
- 报价历程中展示创建、修改、提交审核、审核、追加报价、打折、导出等关键操作记录，并按时间排序。
- 审核通过与审核不通过事件需同时记录在 `报价历程` 与 `审核记录` 中。
- 详情页支持导出报价内容。
- 报价历程记录至少包括：操作时间、操作人、操作类型、操作结果、备注。
- `报价历程` 侧重自然语言事件展示，覆盖报价生命周期中的全部关键事件。
- `审核记录` 作为当前报价详情下的独立展示模块，侧重结构化审核明细展示，至少包括：审核时间、审核人、审核结果、审核备注。
- `操作日志` 侧重系统级审计明细展示，仅对管理员与超级管理员开放。
- `追加报价明细` 与 `打折明细` 作为业务结果，统一展示在 `报价详情` 中。
- `追加报价` 与 `打折` 的每次发生过程，统一展示在 `报价历程` 中。
- 若普通用户发起的 `追加报价` 进入审核流，则 `审核记录` 仅记录对应审核动作本身，可关联该次追加，但不重复承载追加明细内容。
- `打折` 不进入 `审核记录`。
- `报价历程` 仅展示高层业务动作摘要，不展示详细导出选项、详细追加字段或详细打折字段。
- 导出动作在 `报价历程` 中仅展示类似 `张三于 2026-05-01 14:20 导出了详细版报价单` 的摘要信息。
- 在线预览不进入 `报价历程`；如需审计，则作为 `在线预览` 类型单独写入 `操作日志`。
- 审核不通过必须进入 `报价历程`。
- 保存失败与导出失败不作为正常 `报价历程` 展示，但可写入 `操作日志`。
- 当前报价详情需支持查看该报价已固化的参数、金额、税项、分成比例等快照信息。
- 报价生命周期内的全部操作记录均挂在当前报价下保留，不生成独立于当前报价之外的操作记录容器。
- 后台报价详情页主要承载审核、追溯与导出辅助查看，不承担首轮报价录入。

#### BE-004 用户管理

- 后端用户管理面向管理员和超级管理员开放。
- 超级管理员可查看全量账号，并管理管理员账号和报价人员账号。
- 管理员可管理自己创建的报价人员账号。
- 普通用户不可访问后端管理平台。
- 用户管理支持：
  - 创建账号
  - 编辑账号
  - 启用账号
  - 禁用账号
  - 重置密码
- `V1.2` 不支持账号删除能力。

##### 4.1 创建范围

- 超级管理员可创建：
  - `管理员`
  - `报价人员`
- 管理员仅可创建：
  - `报价人员`

##### 4.2 表单字段

新建 / 编辑用户表单字段包括：

- 账号
- 密码
- 姓名
- 角色
- 部门
- 账号状态
- 字段规则：
  - `账号`：必填，全局唯一，最长 `50` 个字符，不允许包含空格
  - `密码`：按系统统一密码规则校验
  - `姓名`：必填，最长 `50` 个字符
  - `部门`：选填，最长 `100` 个字符

##### 4.3 权限开关

- 当角色为 `管理员` 时，展示：
  - `价格权限`
  - `工时权限`
  两项均以开关按钮表示，可手动开启或关闭。
- `价格权限` 仅控制后台一级菜单 `报价配置` 下与价格规则相关的页面和操作权限。
- 开启 `价格权限` 后，管理员可访问并操作：
  - `楼宇 / 专有部 / 色彩切换 / 共用部 / 办公室 / 动画 / 平面家具摆放 / 系统收费` 各模块页中的 `价格配置`
  - `楼宇` 页中的 `示例说明`
  - `税项配置`
  - `分成比例`
- `价格权限` 开启后允许的动作包括：查看、新增、编辑、删除、启停用、查看版本记录。
- 关闭 `价格权限` 后，管理员不展示上述价格相关菜单、页签与入口，直接访问相关页面或接口时返回无权限。
- `工时权限` 仅控制后台一级菜单 `报价配置` 下与工时规则相关的页面和操作权限。
- 开启 `工时权限` 后，管理员可访问并操作：
  - `楼宇 / 专有部 / 色彩切换 / 共用部 / 办公室 / 动画 / 平面家具摆放 / 系统收费` 各模块页中的 `工时配置`
- `工时权限` 开启后允许的动作包括：查看、新增、编辑、删除、启停用、查看版本记录。
- 关闭 `工时权限` 后，管理员不展示工时相关页签与入口，直接访问相关页面或接口时返回无权限。
- `价格权限` 与 `工时权限` 均不影响以下菜单和操作：
  - `项目管理`
  - `报价审核与变更管理`
  - `用户管理`
  - `系统管理`
- 当角色为 `报价人员` 时：
  - `价格权限`
  - `工时权限`
  两项默认关闭且不可开启。
- `账号状态` 使用开关按钮表示，可切换为 `开启 / 停用`。
- 账号被切换为 `停用` 后，该账号所有已登录端会话立即失效；该账号后续在各端的下一次请求统一按未登录处理并跳转登录页。
- 账号停用仅影响后续访问与操作权限，不影响历史报价、报价历程与操作日志中的既有留痕。

##### 4.4 列表字段

账号列表建议至少包含：

- 账号
- 姓名
- 角色
- 部门
- 状态
- 创建人
- 创建时间
- `状态` 字段以开关按钮表示，用于切换 `开启 / 停用`。

#### BE-005 报价配置

- 报价配置面向管理员和超级管理员开放。
- 报价配置用于维护前端报价计算器依赖的规则，不单独构成新的报价业务模块。
- 后台菜单层级控制为两级，不使用三级菜单。
- 后台一级菜单建议命名为 `报价配置`。
- `报价配置` 下的二级菜单包括：
  - `楼宇`
  - `专有部`
  - `色彩切换`
  - `共用部`
  - `办公室`
  - `动画`
  - `平面家具摆放`
  - `系统收费`
  - `税项配置`
  - `分成比例`
- 进入各模块页后，通过页面内 `Tab` 区分不同配置类型，不再继续下钻三级菜单。
- `楼宇` 页面内至少包含：
  - `价格配置`
  - `工时配置`
  - `示例说明`
- 其余 7 个模块页面内至少包含：
  - `价格配置`
  - `工时配置`
- `税项配置` 与 `分成比例` 作为公共配置页，直接独立展示，不归属于某个单独模块页的 `Tab`。
- V1.2 中，`8 大模块` 及其配置类型边界固定，不支持后台动态新增第 9 个模块，也不支持后台自定义新的配置类型。
- V1.2 中，各模块下的具体业务子项可按既定模块结构进行维护；更高自由度的动态配置能力仅作为后续版本演进方向，本版本不纳入交付范围。
- V1.2 在本 PRD 中先明确报价配置的菜单结构、配置分类、权限边界、版本规则与主要业务规则；各配置页新增/编辑/删除的字段级表单定义、交互细节与校验规则需在测试设计开始前以前置字段清单或详细交互稿形式补齐。
- 每次保存报价配置后，系统应自动生成新的配置版本记录，用于追溯配置变化。
- 历史版本仅用于查看和追溯，不允许直接覆盖修改。
- 新保存的有效配置默认保存即生效，并仅应用于后续新建报价。
- 普通用户进入新建报价计算器后，后端返回该次新建编辑会话所使用的 `config_version_id`，系统即锁定该配置版本；管理员后续新保存并生效的配置，仅影响之后新进入的报价计算器会话，不影响已进入但尚未首次保存的会话。
- 普通用户点击 `保存报价` 时，后端需比对当前会话锁定的 `config_version_id` 与当前系统最新生效的 `config_version_id`；若两者不一致，前端需强提示：`报价配置已更新，建议刷新页面后按最新配置重新确认金额。`
- `V1.2` 不支持测试环境与预生产环境之间的配置自动同步；配置迁移采用 `人工迁移 + 清单核对` 的方式执行，迁移范围至少包括 `8 大模块价格配置`、`工时配置`、`楼宇示例说明`、`税项配置`、`分成比例`。
- 每次环境迁移前需先冻结待迁移配置清单；迁移完成后由第二人按清单逐项核对。`配置导入导出`、`一键发布` 与 `环境回滚` 放在后续版本单独设计。
- 价格清单文档、PRICE 文档及 PRD 中的价格示例仅作为初始整理来源、对照说明与沟通材料；如文档与后台当前生效配置不一致，以后台当前生效配置为准。
- 后台配置项即使已被历史报价引用，仍允许删除；历史报价继续完全依赖自身快照展示，不受配置项删除影响。
- 已保存的历史报价记录不因报价配置更新而自动回算或覆盖。
- 已保存报价在其整个生命周期内均继续使用该报价保存时固化的参数快照；即使报价仍处于 `待提交审核` 或 `审核不通过` 状态，后续继续编辑并保存时也不切换到最新报价配置。
- 报价配置历史记录应支持按配置分类、操作人、时间范围进行查询。

##### 5.1 楼宇

- 页面对应后台二级菜单 `楼宇`。
- 页面内通过 `价格配置 / 工时配置 / 示例说明` 三个 `Tab` 切换。
- 维护范围至少包括：
  - 大楼
  - 项目场地条件
  - 大楼交付
- `价格配置` 与 `工时配置` 页面按分组卡片方式展示各参数组。
- 每个分组至少展示：
  - 分组名称
  - 分组类型标签
  - 内部键
  - 排序
  - 状态
  - 说明文案
- 每个分组至少提供：
  - `编辑分组`
  - `新增选项`
  - `删除分组`
- `示例说明` 用于维护楼宇模块中各参数对应的说明内容，至少支持：
  - 普通参数 `?` 图标悬停说明
  - 单选项悬停说明

##### 5.2 专有部

- 页面对应后台二级菜单 `专有部`。
- 页面内通过 `价格配置 / 工时配置` 两个 `Tab` 切换。
- 用于维护专有部模块的展示方式、套餐属性、面积规格、追加项、价格与工时规则。
- 专有部追加项当前按 `全屋 / 投影体验 / 收纳柜 / 子户型 / 模型 / 室外 / 家具 / 眺望` 八组维护，共 `38` 项；每项支持分别维护 `CQCG` 与 `CCG` 两套价格。
- 配置列表至少包含：
  - `展示方式`
  - `第二层属性`
  - `第三层属性`
  - `价格 / 工时`
  - `状态`
  - `操作`

##### 5.3 色彩切换

- 页面对应后台二级菜单 `色彩切换`。
- 页面内通过 `价格配置 / 工时配置` 两个 `Tab` 切换。
- 用于维护色彩切换模块的 `2D / 3D`、出图类型、场景、部件、系统费及对应价格与工时规则。
- 配置列表至少包含：
  - `出图类型`
  - `场景`
  - `部件 / 节点`
  - `价格 / 工时`
  - `状态`
  - `操作`

##### 5.4 共用部

- 页面对应后台二级菜单 `共用部`。
- 页面内通过 `价格配置 / 工时配置` 两个 `Tab` 切换。
- 用于维护共用部模块的展示方式、空间类型、面积规格、追加项、价格与工时规则。
- 配置列表至少包含：
  - `展示方式`
  - `第二层属性`
  - `第三层属性`
  - `价格 / 工时`
  - `状态`
  - `操作`

##### 5.5 办公室

- 页面对应后台二级菜单 `办公室`。
- 页面内通过 `价格配置 / 工时配置` 两个 `Tab` 切换。
- 用于维护办公室模块的展示方式、配置档位、面积规格、追加项、价格与工时规则。
- 配置列表至少包含：
  - `展示方式`
  - `第二层属性`
  - `第三层属性`
  - `价格 / 工时`
  - `状态`
  - `操作`

##### 5.6 动画

- 页面对应后台二级菜单 `动画`。
- 页面内通过 `价格配置 / 工时配置` 两个 `Tab` 切换。
- 用于维护动画模块的场景类型、时长单价、追加项、价格与工时规则。
- 配置列表至少包含：
  - `场景类型`
  - `计费单位`
  - `价格 / 工时`
  - `状态`
  - `操作`

##### 5.7 平面家具摆放

- 页面对应后台二级菜单 `平面家具摆放`。
- 页面内通过 `价格配置 / 工时配置` 两个 `Tab` 切换。
- 用于维护平面家具摆放模块的张数档位、`50 张以上` 公式计价规则及对应工时规则。
- 配置列表至少包含：
  - `张数档位`
  - `计价规则`
  - `价格 / 工时`
  - `状态`
  - `操作`

##### 5.8 系统收费

- 页面对应后台二级菜单 `系统收费`。
- 页面内通过 `价格配置 / 工时配置` 两个 `Tab` 切换。
- 用于维护 `系统使用费 / 外观模型 / 视点式 URL 链接费 / HOMESTAGING` 四类收费项的计费参数、价格与工时规则。
- 配置列表至少包含：
  - `收费项名称`
  - `计费参数`
  - `价格 / 工时`
  - `状态`
  - `操作`

##### 5.9 税项配置

- 税项配置用于维护报价结果所使用的税项规则。
- 页面顶部提供 `新增税项` 按钮。
- 默认保留两条税项：
  - `日本增值税（10%）`
  - `日本消费税（6%）`
- 后台当前生效的税项配置统一作用于全部项目的新建报价，不区分项目单独配置税项。
- 一条报价可同时选择多条税项参与计算。
- 报价详情与导出结果中，税项按“税项名称 + 税率 + 税额”逐条展示。
- 每条税项至少展示：税项名称、内部键、排序、状态、说明文案、税率，以及 `编辑 / 删除` 操作。
- 税率范围为 `0-100%`，最多允许 `2` 位小数。
- 默认内置税项允许删除，不做单独保护限制。
- 但系统中任意时刻至少需保留 `1` 条启用状态的税项，不允许出现“无启用税项”的状态。

##### 5.10 分成比例

- 分成比例分为：
  - 系统默认比例
  - 项目级比例
- 分成比例按以下模块分别维护：
  - 楼宇
  - 专有部
  - 色彩切换
  - 共用部
  - 办公室
  - 动画
  - 平面家具摆放
- 每个模块均需维护 `日本` 与 `南京` 两个字段。
- 每个模块必须满足：`日本 + 南京 = 100%`。
- 系统默认比例适用于所有新建项目。
- `系统收费` 模块不维护分成比例，因为其全部金额均视为 `系统费`，不参与日本 / 南京分成。
- `楼宇` 模块中的 `BUILDING VISTA 3D / BUILDING VISTA Lite` 与 `色彩切换` 模块中的 `2D 系统费 200,000 日元`，虽归属于对应模块计价，但在分成计算时同样按 `系统费` 排除，不参与日本 / 南京分成。
- 项目级比例优先于系统默认比例。

#### BE-006 系统管理

- 后台提供一级菜单 `系统管理`。
- 当前包含两个子菜单：
  - `修改密码`
  - `操作日志`

##### 6.1 修改密码

- 页面字段：
  - 当前密码
  - 新密码
  - 确认新密码
- 系统需校验：
  - 当前密码正确
  - 新密码符合密码规则
  - 确认新密码与新密码一致
  - 新密码不得与当前密码相同
  - 新密码长度为 `8-20` 位
  - 新密码不得包含中文或空格
- 修改成功后，新密码立即生效。

##### 6.2 操作日志

- `系统管理` 下仅保留一个 `操作日志` 子菜单，不单独拆分 `审核日志`。
- `操作日志` 页面至少展示：
  - 操作时间
  - 操作人
  - 操作类型
  - 操作结果
  - IP 地址
  - 项目编号（如有）
  - 报价编号（如有）
  - 备注摘要
- `操作日志` 为系统级审计日志，`操作类型` 枚举固定为：
  - 登录
  - 退出登录
  - 修改密码
  - 创建报价
  - 修改报价
  - 提交审核
  - 审核通过
  - 审核不通过
  - 追加报价
  - 打折
  - 导出报价单
  - 在线预览
  - 删除报价
  - 创建项目
  - 编辑项目
  - 修改项目状态
  - 维护项目可见人员
  - 配置新增
  - 配置编辑
  - 配置删除
  - 配置启停用
  - 创建用户
  - 编辑用户
  - 重置密码
  - 禁用用户
- `修改密码` 为用户自身在 `系统管理 - 修改密码` 页面发起的操作，需写入当前账号的操作日志。
- `重置密码` 为管理员或超级管理员在用户管理中对目标账号执行的操作，需作为用户管理类操作写入操作日志。
- 列表支持按以下维度筛选或搜索：
  - 操作类型
  - 操作人
  - 操作结果
  - 时间范围
  - 项目名称
  - 报价编号
- 筛选默认值如下：
  - 操作类型：`全部`
  - 操作结果：`全部`
  - 时间范围：`不限`
  - 操作人：空
  - 项目名称：空
  - 报价编号：空
- 搜索匹配规则如下：
  - 项目名称：模糊搜索
  - 操作人：模糊搜索
  - 报价编号：精确搜索
- 各筛选与搜索条件支持组合使用，条件之间默认按 `且` 关系生效。
- 点击 `重置 / 清空` 后，所有筛选条件恢复默认值，列表恢复为全量数据、`操作时间倒序`、第 `1` 页、每页 `20` 条。
- 操作日志列表默认按 `操作时间倒序` 展示，最新操作排在最前；同一秒内存在多条日志时，再按系统写入顺序倒序展示。
- 当操作日志列表无任何数据时，页面展示空状态文案：`暂无操作日志`。
- 当用户设置筛选条件后无匹配结果时，页面展示空状态文案：`暂无符合条件的操作日志`，并提供 `清空筛选` 入口。
- `时间范围` 默认不限；当用户选择开始日期与结束日期时，系统按自然日闭区间筛选，即开始日期按 `00:00:00` 计算，结束日期按 `23:59:59` 计算。
- `操作结果` 统一使用以下取值：
  - `成功`：服务端明确执行成功
  - `失败`：服务端执行失败，或网络/系统异常导致操作未完成
  - `已拒绝`：请求被权限、状态、参数校验等规则拦截，未真正执行
- 对于关键操作，只要请求已到达服务端，无论最终结果为 `成功`、`失败` 或 `已拒绝`，均需写入操作日志；仅当纯前端本地校验失败、请求未发出时，不写入操作日志。
- `备注摘要` 统一规则为：该次操作若存在备注，则展示备注摘要；若不存在备注，则留空，不额外生成固定文案。
- `IP 地址` 为日志采集字段；能够采集到时在列表与详情中展示，无法采集到时留空。
- `V1.2` 阶段操作日志默认长期保留，不设置自动清理期限；如后续需增加归档或清理策略，放在后续版本单独设计。
- 审核类操作通过 `操作类型 = 审核通过 / 审核不通过 / 提交审核` 等条件筛选查看，不提供单独的 `审核日志` 页面。
- 导出报价单动作必须写入操作日志。
- 在线预览如需审计，也需写入操作日志，但不算导出成功记录。
- `V1.2` 阶段操作日志页面不支持导出；如后续存在审计报表或日志导出需求，放在后续版本单独设计。
- 操作日志列表需支持分页，默认每页展示 `20` 条。
- 操作日志列表仅展示通用字段，不强行把所有操作的专属字段平铺在列表中。
- 点击单条日志后，需进入日志详情抽屉或弹窗。
- 关闭日志详情抽屉或弹窗后，返回原操作日志列表，并保留当前筛选条件、搜索关键词、排序方式、当前页码及每页条数。
- 日志详情需完整展示该条日志的全部列表字段，并在此基础上展示该操作类型的专属明细字段。
- 日志详情基础字段固定为：
  - 操作时间
  - 操作人
  - 操作类型
  - 操作结果
  - IP 地址
  - 项目编号（如有）
  - 报价编号（如有）
  - 完整备注（如有）
- 在基础字段下方，再展示该操作类型对应的专属明细字段。
- 日志详情示例如下：
  - `登录`
    - 列表字段：操作时间、操作人、操作类型、操作结果、IP 地址
    - 专属字段：登录账号、设备/浏览器
  - `审核不通过`
    - 列表字段：操作时间、操作人、操作类型、操作结果、IP 地址、项目编号、报价编号、完整备注
    - 专属字段：项目名称、审核前状态、审核后状态
  - `导出报价单`
    - 列表字段：操作时间、操作人、操作类型、操作结果、IP 地址、项目编号、报价编号
    - 专属字段：项目名称、导出类型、导出语言、是否包含分成比例、导出格式、导出方式
- 编号展示规则如下：
  - 项目级操作：仅展示 `项目编号`
  - 报价级操作：同时展示 `项目编号` 与 `报价编号`
  - 系统级操作：`项目编号` 与 `报价编号` 均不展示
- 针对导出动作，操作日志除基础字段外，还需记录：
  - 报价编号
  - 导出类型（简洁版 / 详细版）
  - 导出语言
  - 是否包含分成比例
  - 导出格式（PDF / Excel）
  - 导出方式（直接导出 / 在线预览后导出）
- 页面层不再向用户暴露抽象的 `关联对象标识` 概念；如日志存在其他对象类型编号，仅在日志详情中按对象类型展示对应编号或标识。
- 日志至少记录操作时间、操作人、操作类型、操作结果；不同操作类型在日志详情中扩展记录各自的明细字段。

---

### 4. 验收标准

#### AC-BE-001 登录

- Given 管理员或超级管理员已拥有有效账号  
  When 用户访问后端管理平台并完成登录  
  Then 系统允许其进入后台平台，并仅展示该角色有权限访问的功能

- Given 用户浏览器语言为 `ja-JP` 或 `en-US`  
  When 用户首次访问后端管理平台  
  Then 系统默认按浏览器语言显示界面文本

- Given 用户已在后台手动切换显示语言为英文  
  When 该用户退出后台并再次登录  
  Then 系统优先按该账号上次保存的英文偏好展示界面，而不再按浏览器语言重新覆盖

- Given 管理员已为后台用户配置初始密码  
  When 用户使用初始密码首次登录成功  
  Then 系统自动跳转至 `系统管理 - 修改密码` 页面，且用户完成首次密码修改后方可进入后台首页

- Given 用户在后台登录页或修改密码页输入包含中文、空格或长度不在 `8-20` 位范围内的密码  
  When 系统执行密码规则校验  
  Then 系统提示密码不符合规则，且不允许提交成功

- Given 管理员或超级管理员已登录后端管理平台且连续无操作接近 `2 小时`  
  When 距离会话超时还剩 `5 分钟`  
  Then 系统弹出超时提醒，并允许用户通过继续操作延长会话

- Given 管理员或超级管理员已登录后端管理平台且连续无操作满 `2 小时`  
  When 系统判定当前会话超时  
  Then 系统清除当前端会话并跳转至登录页

- Given 管理员或超级管理员已主动退出登录或当前会话已失效  
  When 用户访问浏览器历史页面、书签页或通过浏览器回退访问后端受保护页面  
  Then 系统统一跳转至登录页，不继续展示原页面数据

- Given 某后台账号密码已被其他有权限管理员重置且该账号此前已在多个端登录  
  When 该账号在任一已登录端继续发起请求  
  Then 系统立即判定当前会话失效并跳转至登录页

- Given 后台账号密码已被重置  
  When 用户使用重置后的初始密码重新登录成功  
  Then 系统再次强制跳转至 `系统管理 - 修改密码` 页面，且完成修改前不得进入后台首页

#### AC-BE-002 项目管理

- Given 管理员或超级管理员已登录后端管理平台  
  When 用户进入项目管理页  
  Then 系统展示一级项目列表、搜索筛选区域以及对应项目操作

- Given 管理员或超级管理员在后台创建项目  
  When 项目创建成功并完成落库  
  Then 系统生成格式为 `P-YYYYMMDD-XXXX` 的全局唯一项目编号，并在后台项目列表中展示

- Given 管理员或超级管理员在后台创建项目  
  When 项目创建成功并完成落库  
  Then 该项目状态默认显示为 `进行中`

- Given 管理员或超级管理员将某项目状态改为 `已完成` 或 `已取消`  
  When 普通用户后续尝试在该项目下创建新报价  
  Then 系统不允许继续创建新报价

- Given 某项目下仍存在 `待审核` 的报价或待审核中的追加变更  
  When 管理员或超级管理员尝试将项目状态修改为 `已完成`  
  Then 系统不允许保存该项目状态，并提示需先处理完待审核中的报价或变更

- Given 管理员或超级管理员编辑项目基础信息、项目状态、可见人员或项目级分成比例  
  When 接口业务失败或网络/系统异常  
  Then 系统不得展示保存成功结果，也不得关闭当前编辑界面，当前已填写内容或勾选结果需保留并允许用户重试

- Given 管理员或超级管理员在后台创建项目  
  When 项目创建失败  
  Then 系统不得生成项目记录或项目编号，且当前表单内容保留

- Given 管理员进入某个项目的编辑页  
  When 用户调整项目级分成比例并保存  
  Then 系统保存该项目单独的分成比例，并在后续报价中优先使用

- Given 管理员或超级管理员调整某项目的可见人员名单并保存  
  When 系统完成保存  
  Then 新增用户立即获得该项目及其全部历史报价的查看与编辑权限，移除用户立即失去对应权限

- Given 项目下已存在历史报价记录  
  When 管理员或超级管理员尝试删除项目  
  Then 系统允许执行逻辑删除，且该项目与其下历史报价记录不再出现在前后台业务列表中

#### AC-BE-003 报价审核与变更管理

- Given 用户点击某一项目下的报价记录 `审核`  
  When 系统打开审核弹窗  
  Then 弹窗允许选择 `审核通过` 或 `审核不通过`

- Given 用户在二级历史报价列表中点击 `追加报价`  
  When 系统打开 `追加报价` 弹窗  
  Then 弹窗展示各大项总价，并支持对各项填写 `追加备注 / 追加方式 / 追加比例(%) / 追加金额`

- Given 普通用户对其有项目权限的历史报价发起 `追加报价`  
  When 用户点击 `确认追加`  
  Then 系统在当前报价上记录追加内容，并将当前报价状态标记为 `待审核`

- Given 管理员或超级管理员对历史报价发起 `追加报价`  
  When 用户点击 `确认追加`  
  Then 系统在当前报价上记录追加内容，并直接生效，无需再次审核

- Given 管理员或超级管理员对历史报价发起 `打折`  
  When 用户点击 `确认打折`  
  Then 系统在当前报价上记录打折内容，并直接生效，无需再次审核

- Given 某条报价处于任意状态  
  When 管理员或超级管理员点击 `删除` 并确认  
  Then 系统允许删除该条报价记录

#### AC-BE-004 用户管理

- Given 超级管理员已登录后端管理平台  
  When 超级管理员进入用户管理页  
  Then 系统允许其查看全量账号并管理管理员账号

- Given 管理员已登录后端管理平台  
  When 管理员进入用户管理页  
  Then 系统允许其管理自己创建的报价人员账号

- Given 超级管理员在新建用户表单中选择角色为 `管理员`  
  When 页面刷新权限配置区域  
  Then 系统展示 `价格权限` 和 `工时权限` 开关，且支持手动开启或关闭

- Given 管理员的 `价格权限` 为关闭  
  When 用户进入后台导航并尝试访问价格相关配置页面  
  Then 系统不展示 `价格配置 / 示例说明 / 税项配置 / 分成比例` 相关入口，且直接访问对应页面时返回无权限

- Given 管理员的 `工时权限` 为关闭  
  When 用户进入后台导航并尝试访问工时相关配置页面  
  Then 系统不展示各模块 `工时配置` 相关入口，且直接访问对应页面时返回无权限

- Given 管理员的 `价格权限` 或 `工时权限` 为关闭  
  When 用户访问 `项目管理`、`报价审核与变更管理`、`用户管理` 或 `系统管理`  
  Then 系统仍允许其进入对应菜单并执行该菜单下原有权限范围内的操作

- Given 管理员在新建用户表单中创建账号  
  When 页面展示角色选项  
  Then 角色仅允许选择 `报价人员`

- Given 管理员或超级管理员在新建/编辑用户表单中录入账号  
  When 账号与系统内已有账号重复或包含空格  
  Then 系统阻止保存，并提示账号需全局唯一且不允许包含空格

- Given 管理员或超级管理员将某账号状态切换为 `停用`  
  When 系统保存成功  
  Then 该账号所有已登录端会话立即失效，后续在各端的下一次请求统一按未登录处理并跳转登录页

- Given 管理员或超级管理员进入用户管理页  
  When 用户查看可执行操作  
  Then 系统仅提供创建、编辑、启用、停用、重置密码，不提供账号删除入口

#### AC-BE-005 报价配置

- Given 管理员或超级管理员已登录后端管理平台  
  When 用户进入报价配置页  
  Then 系统在 `报价配置` 下展示 `楼宇 / 专有部 / 色彩切换 / 共用部 / 办公室 / 动画 / 平面家具摆放 / 系统收费 / 税项配置 / 分成比例` 二级菜单结构

- Given 管理员已开启 `价格权限`  
  When 用户进入 `楼宇` 页  
  Then 系统展示 `价格配置` 与 `示例说明` 页签，并允许进行查看、新增、编辑、删除、启停用和查看版本记录

- Given 管理员已开启 `工时权限`  
  When 用户进入任一模块页  
  Then 系统展示对应模块的 `工时配置` 页签，并允许进行查看、新增、编辑、删除、启停用和查看版本记录

- Given 管理员或超级管理员进入 `分成比例` 子菜单  
  When 系统展示分成比例配置列表  
  Then 系统展示楼宇、专有部、色彩切换、共用部、办公室、动画、平面家具摆放七个模块的 `日本 / 南京` 分成比例字段

- Given 管理员或超级管理员维护某一模块的分成比例  
  When 用户输入 `日本` 与 `南京` 比例并保存  
  Then 系统校验该模块满足 `日本 + 南京 = 100%`

- Given 管理员或超级管理员进入 `税项配置` 子菜单  
  When 系统加载默认税项  
  Then 系统至少展示两条默认税项：`日本增值税（10%）` 与 `日本消费税（6%）`

- Given 后台当前存在已生效的税项配置  
  When 普通用户在任意项目下新建报价  
  Then 系统统一按后台当前税项配置生成该报价的税项快照，且税项不由项目带入

- Given 管理员或超级管理员执行 `审核通过 / 审核不通过`  
  When 接口业务失败或网络/系统异常  
  Then 当前报价状态保持原状态，不写入新的审核结果记录，并提示用户审核失败、可重试

- Given 管理员或超级管理员对审核、追加报价、打折、删除、配置保存等关键写操作重复触发提交  
  When 系统已接收到首个有效请求且尚未完成处理  
  Then 系统仅允许一次有效处理结果生效，不重复生成业务记录、状态变化或成功日志

- Given 管理员或超级管理员执行 `配置保存`  
  When 接口业务失败或网络/系统异常  
  Then 系统不得生成新的配置版本，也不得切换当前生效配置，并提示用户保存失败、当前配置未生效

- Given 管理员或超级管理员执行 `删除报价` 或 `删除项目`  
  When 接口业务失败或网络/系统异常  
  Then 列表中对应数据保持不变，不展示删除成功结果，并提示用户删除失败、可重试或根据返回原因处理

#### AC-BE-006 系统管理

- Given 管理员或超级管理员已登录后端管理平台  
  When 用户查看一级菜单  
  Then 系统展示 `系统管理` 菜单，且菜单下包含 `修改密码` 和 `操作日志`

- Given 管理员或超级管理员进入后端 `系统管理 - 操作日志` 页面  
  When 系统展示日志列表  
  Then 页面展示用户姓名、操作类型、操作时间、IP 地址等日志信息

- Given 用户完成一次报价导出  
  When 系统写入操作日志  
  Then 日志中记录导出报价单动作，且至少包括用户姓名、操作类型、操作时间、IP 地址
