﻿# PRD-003 - 报价管理系统总览

**版本**：V1.2  
**创建日期**：2026-04-20  
**最近整理日期**：2026-04-30  
**产品负责人**：耿功发

---

### 1. 文档说明

本文件作为 `PRD-003` 的总览索引版使用，不再承载前台与后台全部细节规则。

自 `V1.2` 起，详细需求已按端和模块拆分为以下两份子文档：

- 前台 PRD：[PRD-003A-quotation-frontend-V1.2.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/prd/PRD-003A-quotation-frontend-V1.2.md)
- 后台 PRD：[PRD-003B-quotation-backoffice-V1.2.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/prd/PRD-003B-quotation-backoffice-V1.2.md)

使用原则如下：

1. 涉及普通报价人员前端操作流程、报价录入、详情、报价单资料、导出时，优先查看前台 PRD。
2. 涉及项目管理、审核、打折、用户管理、参数配置、税项配置、分成比例、工时配置、操作日志时，优先查看后台 PRD。
3. 涉及版本目标、文档边界、共享规则、跨端关系时，查看本总览文档。

维护原则如下：

1. 共享规则优先收敛在本总览文档，避免前后台分别改动后口径漂移。
2. 前台 PRD 只展开普通用户可见、可操作的页面与规则。
3. 后台 PRD 只展开管理员 / 超级管理员可见、可操作的页面与规则。
4. 跨端流程在本总览中描述主链路，在前后台子文档中分别描述各自承担的动作。

---

### 2. 背景与目标

当前报价流程主要依赖 Excel 表格和人工协作推进。由于缺少统一的报价规则、价格参数和工时参数，同一项目在相同条件下可能由不同人员得出不同结果，造成报价不一致、解释困难、沟通成本高的问题。

因此，需要建设一套报价管理系统，将原本分散在表格、经验和人工沟通中的报价逻辑沉淀为统一、标准、可追溯的系统能力，支撑报价流程规范化、透明化和高效化。

本期目标包括：

1. 支持用户按标准流程完成一次报价：创建项目、选择产品/模块、填写参数、系统计算、保存报价。
2. 建立统一的报价规则、价格参数和工时参数，减少人工判断差异。
3. 支持不同权限角色在系统内完成各自职责范围内的管理与报价操作。
4. 形成可复用、可管理、可审计的系统化报价能力，逐步替代原有 Excel + 人工协作方式。

---

### 3. 产品形态

报价管理系统由两个 Web 平台组成，均需用户登录后使用：

1. 前端报价平台：面向普通用户。核心模块包括 `登录`、`项目列表`、`报价计算器`、`报价详情`、`报价单资料`、`导出`、`系统管理`。
2. 后端管理平台：面向管理员与超级管理员。核心模块包括 `登录`、`项目管理`、`报价审核与变更管理`、`用户管理`、`报价配置`、`系统管理`。

两个平台共享同一套账号权限体系，但根据角色不同展示各自可访问的功能范围。

---

### 4. 角色定义

#### 4.1 超级管理员

- 可查看全公司范围内的项目与报价数据。
- 可管理管理员账号。
- 仅使用后台管理平台，不进入前端报价平台。
- 可从全局视角统筹报价管理规则与使用范围。

#### 4.2 管理员

- 负责管理自己创建的账号。
- 在项目与报价管理范围内，可查看并维护全部项目与报价。
- 后台项目管理权限覆盖全部项目，不以项目创建人、项目负责人、可见人员或其他“负责管理”关系作为限制条件。
- 负责维护报价规则、价格参数、工时参数。
- 负责配置项目可见范围及普通用户名单。
- 可在后端管理平台创建项目并分配给一个或多个指定普通用户。
- 仅使用后台管理平台，不进入前端报价平台。
- 可对历史报价执行审核、追加报价与打折。

#### 4.3 普通用户

- 在被授权的项目范围内进行报价操作与查看报价结果。
- 按统一规则完成项目报价。
- 可在前端项目列表中创建项目。
- 项目创建人和项目可见人员均可查看并编辑所属项目及其历史报价。
- 可对其有项目权限的历史报价发起追加报价；普通用户追加后的报价需提交管理员审核后方可生效。
- `南京报价人员` 与 `日本报价人员` 仅作为业务身份标签 / 人员归属标签使用，不属于系统角色，不单独决定菜单权限、数据权限或审批流。

---

### 5. 前后台模块映射

#### 5.1 前台模块

前台详细规则见 [PRD-003A-quotation-frontend-V1.2.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/prd/PRD-003A-quotation-frontend-V1.2.md)。

1. 登录
2. 项目列表
3. 报价计算器
4. 报价详情
5. 报价单资料
6. 导出
7. 系统管理

#### 5.2 后台模块

后台详细规则见 [PRD-003B-quotation-backoffice-V1.2.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/prd/PRD-003B-quotation-backoffice-V1.2.md)。

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

---

### 6. 共享业务规则

以下规则同时影响前后台，作为共享口径保留在本总览中。

#### 6.1 国际化

- 前端报价平台与后端管理平台均支持 `中文 / 日文 / 英文` 三种界面语言。
- 用户可在界面中手动切换语言。
- 首次进入系统时，默认语言根据浏览器语言设置自动匹配。
- 用户手动切换语言后，系统将该语言偏好保存到当前账号。
- 用户再次登录时，优先使用当前账号上次保存的语言偏好；仅当该账号从未手动切换过语言时，才按浏览器语言自动匹配。
- 前端报价平台与后端管理平台分别独立保存各自的语言偏好，不互相覆盖。
- 系统页面语言统一跟随用户当前选择的语言切换。
- 导出页面预览语言仅跟随导出语言配置实时切换，与当前打开这套报价系统界面的语言无关。
- 用户首次进入导出页时，导出语言按当前打开这套报价系统界面的语言初始化一次。
- 导出语言与系统页面语言相互独立；导出页完成初始化后，即使用户切换系统页面语言，当前已选择的导出语言也不自动变化。
- 登录会话有效期为 `7 天`。
- 用户连续无操作 `2 小时` 后，系统自动判定会话超时；会话活跃度以账号后续 API 请求为准。
- 会话超时前 `5 分钟`，系统需弹出超时提醒；若用户继续操作或主动续期，则会话延续。
- 会话超时后，系统清除当前会话并跳转至登录页。
- 系统允许同一账号在多个设备或浏览器端同时登录。
- 用户主动退出登录时，系统仅清除当前端会话并跳转至登录页，不影响其他已登录端。
- 用户退出登录或会话失效后，再次访问历史页面、书签页或通过浏览器回退访问受保护页面时，系统统一跳转至登录页，不继续展示原页面数据。
- 管理员重置任一账号密码后，该账号在所有已登录端的会话立即失效。
- 被重置密码的账号在各端下一次 API 请求时，系统统一按未登录处理并跳转至登录页。
- 被重置密码的账号使用重置后的初始密码重新登录成功后，系统需再次强制进入修改密码流程。

#### 6.2 项目与报价关系

- 一个项目可包含多次报价记录。
- 报价次数用于展示当前项目下已保存的报价记录总数。
- 新建报价首次保存时，在所属项目下生成一条独立报价记录。
- 对 `待提交审核` 或 `审核不通过` 状态的已有报价进行编辑并保存时，覆盖当前报价记录，不生成新的报价记录。
- 当前版本暂不支持复制报价。
- 项目权限继承到报价权限。
- 项目创建人默认拥有该项目及其全部报价的查看与编辑权限。
- 被加入项目可见人员名单的普通用户，拥有该项目及其全部报价的查看与编辑权限。
- 项目可见人员权限变更后，对该项目及其全部历史报价立即生效。
- 新增到项目可见人员名单的用户，立即获得该项目及其全部历史报价的查看与编辑权限。
- 从项目可见人员名单移除的用户，立即失去该项目及其全部历史报价的查看与编辑权限。
- 权限回收仅影响后续访问与操作权限，不影响既有历史操作记录的保留与展示。
- 管理员与超级管理员在后台拥有全部项目及全部报价的查看、编辑与管理权限。
- 项目创建成功时，系统自动生成 `项目编号`。
- 历史项目已存在的 `HV-xxxx` 编号继续沿用，不做迁移。
- 项目编号格式统一为 `P-YYYYMMDD-XXXX`，其中 `XXXX` 为当日递增的 4 位流水号，不足补 `0`；该新编号规则仅对后续新建项目生效。
- 项目编号全局唯一，创建后不可编辑，项目删除后原编号不复用。
- 仅在项目真正创建成功并完成落库后，系统才生成并占用正式项目编号；创建失败时不占用编号。
- 项目本身维护独立状态字段，项目状态包括：`进行中 / 已完成 / 已取消`。
- 新建项目时，项目状态默认设为 `进行中`。
- 仅管理员与超级管理员可修改项目状态，普通用户不可修改。
- 只有 `进行中` 状态的项目允许继续新建报价。
- `已完成` 与 `已取消` 状态的项目不允许继续新建报价、追加报价或打折，但仍允许查看项目、导出和打印历史报价。
- 所有报价变更相关后端接口在真正落库前，均必须前置校验所属项目的 `project_status`；若项目状态为 `已完成` 或 `已取消`，则不允许执行 `保存报价`、`提交审核`、`追加报价`、`打折`，但允许管理员或超级管理员继续完成已进入流程的 `审核通过 / 审核不通过` 操作。
- 若项目下仍存在 `待审核` 的报价或待审核中的追加变更，则管理员或超级管理员不允许将项目状态修改为 `已完成`；系统需提示：`当前项目仍存在待审核中的报价或变更，需处理完成后才能标记为已完成。`
- 项目状态与报价状态相互独立；项目状态用于控制该项目是否继续允许创建新报价，报价状态仍用于表示每条报价自身的流转状态。
- `项目负责人` 为项目级业务展示字段，新建项目时默认取项目创建人，后续允许修改。
- `项目负责人` 采用文本方式展示与维护，不强制与系统账号绑定。
- `项目负责人` 不参与权限判断，不决定项目可见范围，也不决定项目或报价的编辑权限。
- 项目相关保存动作包括：新建项目、编辑项目基础信息、编辑项目状态、保存可见人员授权、保存项目级分成比例。
- 项目相关保存动作失败时，系统不得误展示成功结果，也不得关闭当前编辑界面；当前已填写或已选择内容应保留，允许用户修正后重试。
- 项目创建失败时，不生成项目记录、不生成项目编号，也不占用项目编号。
- 项目编辑、状态修改、可见人员授权或项目级分成比例保存失败时，已落库的原数据保持不变；失败前的临时输入或勾选结果保留在当前界面中。

#### 6.3 报价单资料

- 项目级仅维护 `项目基础信息`。
- 报价单级维护的是 `报价单资料`。
- 项目基础信息允许在任意阶段维护。
- 新建报价时，系统应为当前报价初始化一份 `报价单资料` 快照。
- 新建报价时，报价单资料仅自动带入项目基础信息中的部分字段：`项目名称`、`客户名称`；同时由系统生成并带入 `报价编号`、`报价日期`。
- 报价税项不与项目绑定；税项统一来源于后台 `税项配置`。
- 新建报价时，系统按后台当前生效的统一税项规则生成该报价的税项快照。
- 若当前报价自己的报价单资料存在缺失字段，系统仍允许导出和打印，但缺失字段统一按空值展示规则处理。
- 后台税项配置后续发生变化时，不应反向覆盖已保存报价的税项快照。
- 报价详情页、审核查看页、导出页面及最终导出文件中的税项明细，均应按当前报价税项快照中的顺序逐条展示。
- 每条税项明细至少展示：`税项名称`、`税率`、`税额`。
- 项目基础信息变更仅影响项目当前展示与后续新建报价初始化，不反向覆盖已保存报价的报价单资料快照。
- 后台参数配置保存后立即生效，但仅应用于后续新建报价。
- 普通用户进入新建报价计算器时，后端返回本次新建编辑会话使用的 `config_version_id`，系统即锁定该配置版本；在该次会话内，金额预览、首次保存与提交审核均沿用该版本，不受后台中途新保存配置影响。
- 普通用户点击 `保存报价` 时，后端需比对当前会话锁定的 `config_version_id` 与当前系统最新生效的 `config_version_id`；若两者不一致，系统需强提示：`报价配置已更新，建议刷新页面后按最新配置重新确认金额。`
- 已保存报价在其整个生命周期内均使用该报价保存时固化的参数快照，不因后台参数配置更新而自动回算。
- 价格清单文档、PRICE 文档及 PRD 中的价格示例仅作为初始整理来源、对照说明与沟通材料；系统运行时的唯一最终数据源为后台当前生效的报价配置。
- 系统收费模块的初始化值、计费参数与价格口径统一以后台当前生效配置为准。
- 以下金额统一视为 `系统费`：
  - `楼宇` 模块中的 `BUILDING VISTA 3D`、`BUILDING VISTA Lite`
  - `色彩切换` 模块中的 `2D 系统费 200,000 日元`
  - `系统收费` 模块下全部收费项
- 上述 `系统费` 正常计入整单报价总价，但 `不参与日本 / 南京分成`，也 `不纳入打折范围`。
- 分成比例采用 `系统默认 + 项目级覆盖` 机制：项目未单独配置时沿用系统默认，项目已配置时优先使用项目级分成比例。
- 所有报价金额字段统一按日元整数处理，包括模块小计、不含税总价、税额、含税总价、追加金额、打折金额和分成金额。
- 涉及小数的金额计算，统一按 `四舍五入到个位日元` 处理。
- 系统内部金额计算应以高精度中间值完成后再执行最终取整；`V1.2` 前端展示、审核查看、导出与打印统一仅展示取整后的日元整数结果。
- 税额按单条税项分别计算：`税额 = 不含税金额 × 税率`，每条税额单独四舍五入到个位日元；含税总价 = 不含税总价 + 各条税额之和。
- 分成金额按模块总价和分成比例计算，统一按整数日元展示。
- 分成尾差统一归入 `日本金额`：先计算并取整 `南京金额`，再由 `日本金额 = 模块总价 - 南京金额`，以确保 `日本金额 + 南京金额 = 模块总价`。
- 分成结果除最终展示金额外，系统还需保留对应模块的分成前原始计算值，用于审计与金额解释。
- `当前可打折金额` 以本次所选模块中 `CG制作费用` 的已生效金额为基准计算；不包含该模块中的 `系统及云服务费用`、`其他专项费用`、税项及其他模块金额。计算时包含已审核通过或管理员/超级管理员直接生效的追加与打折结果，不包含仍处于 `待审核` 的追加记录。
- 追加报价与打折生效时，系统需同时记录生效前金额、变更金额与生效后金额，用于后续审计与金额解释。
- 普通用户追加报价进入 `待审核` 期间，不影响当前有效导出金额；报价详情主金额与导出金额均继续沿用上一版已审核通过的有效金额，待审核追加仅作为独立记录展示并明确标记 `待审核`。
- 项目删除与报价删除均采用 `逻辑删除`；前后台业务列表默认不再展示已删除项目与已删除报价，但操作日志、审计追溯信息及必要留痕继续保留。
- 后台配置项即使已被历史报价引用，仍允许删除；历史报价继续完全依赖自身快照展示，不受配置项删除影响。
- 报价首次保存时，系统必须固化该报价对应的模块参数快照、计价规则快照、模块金额快照、税项快照、分成比例快照、整单金额快照及报价单资料快照。
- 报价生命周期内的全部操作记录均挂在当前报价下保留，至少包括：创建报价、修改报价、提交审核、审核通过、审核不通过、追加报价、打折、导出报价。
- 审核相关事件需同时记录到 `报价历程` 与 `审核记录`。
- `报价历程` 用于展示报价生命周期内的自然语言事件时间线。
- `报价历程` 中的 `修改报价` 仅记录一次修改事件，不展开字段级或模块级差异明细。
- `审核记录` 作为当前报价详情下的独立结构化展示模块，仅聚焦审核动作本身，如审核时间、审核人、审核结果、审核备注等。
- `操作日志` 用于展示管理员可见的系统级审计明细，覆盖登录、退出登录、修改密码、创建报价、修改报价、提交审核、审核通过、审核不通过、追加报价、打折、导出、删除报价、创建项目、编辑项目、修改项目状态、维护可见人员、配置新增、配置编辑、配置删除、配置启停用、创建用户、编辑用户、重置密码、禁用用户等关键动作。
- `操作日志` 不拆分独立的 `审核日志` 子菜单；审核类动作统一作为 `操作日志` 中的操作类型之一，通过筛选和详情查看。
- `追加报价明细` 与 `打折明细` 作为业务结果，统一展示在 `报价详情` 中；其发生过程统一展示在 `报价历程` 中。
- 若普通用户发起的 `追加报价` 进入审核流，则 `审核记录` 仅记录对应审核动作本身，可关联该次追加，但不重复承载追加明细内容；`打折` 不进入 `审核记录`。
- `报价历程` 仅展示高层业务动作摘要，不展示详细导出选项、详细追加字段或详细打折字段。
- `审核不通过` 必须写入 `报价历程`。
- 导出动作在 `报价历程` 中仅展示类似 `张三于 2026-05-01 14:20 导出了报价单` 的摘要信息。
- 导出语言、导出格式、导出方式、导出结果等详细导出参数仅记录在 `操作日志` 中。
- 在线预览不写入 `报价历程`；如需审计，作为 `在线预览` 类型单独写入 `操作日志`。
- 用户关闭 `在线预览` 返回导出页后，当前导出配置不保留，系统恢复默认导出值。
- 默认导出值为：`用户首次进入导出页时按当前打开这套报价系统界面的语言初始化一次`、`PDF`。
- 导出失败时不写入 `报价历程`。
- 保存失败不写入 `报价历程`。
- 导出失败时可写入 `操作日志`，并将操作结果标记为 `失败`。
- 保存失败可写入 `操作日志`，并将操作结果标记为 `失败`。
- 导出失败后，当前导出页不关闭，当前已选导出配置保留，允许用户直接重试。
- V1.2 已明确报价配置的模块结构、配置分类、权限边界与主要业务规则；各配置页的字段级表单定义、交互细节与校验规则不在本轮总览 PRD 中继续展开，但必须在测试设计开始前以前置字段清单或详细交互稿形式补齐。
- 异常场景统一分为：前端校验失败、接口业务失败、网络/系统异常三类。
- 前端校验失败时，系统不发起请求，页面就地提示错误，当前输入内容保留。
- 接口业务失败时，系统需提示明确失败原因，不做成功态跳转，当前页面数据保留，允许用户修正后重试。
- 网络或系统异常时，系统统一提示“操作未完成，请重试”，不得默认视为成功；当前输入内容应尽量保留。
- `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`；当窗口宽度小于最小内容宽度时，允许页面出现横向滚动，优先保证页面结构与信息完整，不强行压缩导致布局错位。
- `V1.2` 不支持测试环境与预生产环境之间的配置自动同步；环境配置迁移采用 `人工迁移 + 清单核对` 的方式执行。
- 每次环境迁移前需先冻结待迁移配置清单；迁移完成后由第二人按清单逐项核对。`配置导入导出`、`一键发布` 与 `环境回滚` 放在后续版本单独设计。
- `V1.2` 不纳入登录失败次数锁定策略；连续失败次数阈值、自动锁定与自动解锁规则放在后续版本单独设计。
- 对保存报价、提交审核、审核、追加报价、打折、导出、配置保存、删除等关键动作，只有服务端明确返回成功，前端才可视为成功。
- 对保存报价、提交审核、审核、追加报价、打折、导出等关键写操作，系统需做重复提交去重控制；重复触发时仅允许生成一条有效业务记录、一次有效状态变化和一次有效成功留痕。
- 关键动作失败时，不得错误变更报价状态、写入操作记录、生成配置版本或展示成功结果。
- 前台与后台关键操作均需写入 `操作日志`；仅当前端本地校验失败且请求未发出时，不写入 `操作日志`。

#### 6.4 报价状态流转

当前报价状态至少包括：

- `待提交审核`
- `待审核`
- `审核通过`
- `审核不通过`

状态机口径如下：

- 新建报价保存后，生成一条新的报价记录，状态为 `待提交审核`。
- `待提交审核` 状态下，普通用户可继续修改、保存，并提交审核；保存时覆盖当前报价记录，不生成新的报价记录。
- 普通用户提交审核后，报价状态由 `待提交审核` 变更为 `待审核`。
- `待审核` 状态下，普通用户不可继续修改；仅管理员或超级管理员可在后台执行审核。
- 管理员或超级管理员审核通过后，报价状态由 `待审核` 变更为 `审核通过`。
- 管理员或超级管理员审核不通过后，报价状态由 `待审核` 变更为 `审核不通过`。
- `审核不通过` 状态下，普通用户可继续修改；修改并保存后，报价状态重新变更为 `待提交审核`，再由普通用户重新提交审核；该过程继续沿用当前报价已固化的参数快照。
- 追加报价与打折均在当前报价基础上执行，不生成新的历史报价记录。
- 追加报价与打折均不新增报价版本号。
- 追加报价与打折均以“所选模块中的 `CG制作费用`”为金额计算与生效基准，不作用于该模块中的 `系统及云服务项`、`其他专项`、税项或分成结果本身，也不作用于其他未选择模块。
- 追加报价仅在当前报价记录中新增一条追加记录，并在报价历程中体现。
- 普通用户基于 `审核通过` 的报价发起追加报价时，当前报价状态变更为 `待审核`，并记录本次追加内容。
- 若普通用户发起的追加报价审核不通过，则当前报价状态变更为 `审核不通过`；该次追加不并入当前有效金额，报价详情主金额、导出金额与打印金额继续沿用上一版已审核通过的有效金额。用户可在此基础上继续修改当前报价，保存后状态重新变更为 `待提交审核`，再由普通用户重新提交审核。
- 管理员或超级管理员发起追加报价时，当前报价直接生效，状态保持 `审核通过`，并记录本次追加内容。
- 管理员或超级管理员发起打折时，当前报价直接生效，状态保持 `审核通过`，并记录本次打折内容。
- 同一条报价在 `待审核` 状态下，不允许再次发起新的追加报价或打折。
- 同一条报价在任一时刻仅允许存在 `1` 个进行中的待审核变更流程。
- 若当前报价已存在待审核中的变更，系统应拦截后续追加或打折请求，并提示等待当前审核完成后再继续操作。
- 报价删除仅对管理员和超级管理员开放，且无论报价当前处于何种状态，均可删除。

#### 6.5 追加报价与打折

- `追加报价`：普通用户、管理员、超级管理员均可发起。
- 追加模块范围包括：`楼宇`、`专有部`、`色彩切换`、`共用部`、`办公室`、`动画`、`平面家具摆放`、`系统收费`。
- 发起 `追加报价` 时，模块选择能力保持不变；但追加金额仅针对“所选模块中的 `CG制作费用`”计算，不作用于该模块中的 `系统及云服务项`、`其他专项`、税项或其他模块。
- 追加方式支持二选一：
  - `按比例追加`：输入整数 `追加比例(%)`，系统自动计算 `追加金额`
  - `按金额追加`：直接输入整数 `追加金额(日元)`
- `按比例追加` 时，`追加比例(%)` 取值范围为 `0-200`，不保留小数；`追加金额` 为自动计算结果且只读。
- `按金额追加` 时，不再输入追加比例。
- 用户切换追加方式时，另一种方式下已填写的值需清空。
- 保存追加记录时，系统需同时记录：`追加模块`、`追加方式`、`追加比例(如有)`、`最终追加金额`、`金额基准(所选模块中的CG制作费用)`。
- 普通用户追加后的当前报价需进入 `待审核`。
- 普通用户点击 `确认追加` 后，即视为同时发起该次追加的审核申请，不再提供额外的“提交审核”步骤。
- 普通用户发起的追加若审核不通过，则该次追加不并入当前有效金额；当前报价状态变更为 `审核不通过`，用户可修改后重新提交审核。
- 管理员或超级管理员追加后的当前报价直接生效。
- 同一条报价在 `待审核` 状态下，不允许再次发起新的追加报价。
- 追加报价次数本身不设上限，但必须在上一轮待审核流程处理完成后，才允许发起下一次追加。
- `打折`：仅管理员与超级管理员可发起，且打折记录直接生效。
- `打折` 仅允许对 `审核通过` 状态的报价发起。
- `打折` 的模块选择能力保持不变；但打折金额仅针对“所选模块中的 `CG制作费用`”计算，不作用于该模块中的 `系统及云服务项`、`其他专项`、税项或其他模块。
- 打折方式支持二选一：
  - `按比例打折`：输入整数 `打折比例(%)`，系统自动计算 `打折金额`
  - `按金额打折`：直接输入整数 `打折金额(日元)`
- `按比例打折` 时，`打折比例(%)` 取值范围为 `0-100`，不保留小数；`打折金额` 为自动计算结果且只读。
- `按金额打折` 时，不再输入打折比例。
- 用户切换打折方式时，另一种方式下已填写的值需清空。
- 保存打折记录时，系统需同时记录：`打折模块`、`打折方式`、`打折比例(如有)`、`最终打折金额`、`打折备注`、`金额基准(所选模块中的CG制作费用)`。
- 打折金额不得大于当前可打折金额，打折后的最终报价金额不得小于 `0`。
- 若当前报价已存在待审核中的变更，则不允许发起打折。
- 追加报价与打折记录均需在当前报价的报价详情与报价历程中可追溯展示。

#### 6.6 分成比例

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

#### 6.7 系统收费模块

- 系统收费为项目级模块，不区分大楼实例，不随大楼数量变化。
- 系统收费不是必选项。
- 模块下展示 `4` 个可选项：
  - `系统使用费`
  - `外观模型`
  - `视点式 URL 链接费`
  - `HOMESTAGING`
- 模块总小计按所有已选项计算。
- 若当前报价已选择 `专有部` 模块，则 `色彩切换` 模块中的 `2D / 3D` 均按原价 `8 折` 计算。

#### 6.8 楼宇最低价保护

- 楼宇模块总价不得低于 `500,000 日元`。
- 当保存时楼宇模块总价低于 `500,000 日元`，需弹出二次确认提示。
- 用户确认后，按最低价 `500,000 日元` 保存楼宇模块金额。
- 当触发楼宇最低价保护时，系统需同时记录：`原始计算金额`、`最低价保护后金额（500,000 日元）`、`触发原因`，用于后续审计与金额解释。

#### 6.9 报价逻辑总说明

- `报价逻辑` 指系统从“用户选择了哪些模块、填写了哪些参数”到“最终生成什么报价金额”的完整计算规则与生效规则，不是页面点击步骤说明。
- 一次完整报价的核心逻辑链路为：
  - 选择模块、实例、参数与交付项
  - 按后台当前生效的 `报价配置` 计算各模块小计
  - 识别并拆分 `CG制作项 / 系统及云服务项 / 其他专项`
  - 按统一税项规则计算税额与金额汇总
  - 按系统默认或项目级覆盖规则计算分成结果
  - 生成当前报价预览
  - 保存时固化为当前报价快照，后续不因后台配置更新而自动回算
- 报价计算的输入主要包括：
  - 用户当前选择的模块、实例、参数、数量、面积、时长、场景、交付项
  - 后台当前生效的价格配置、税项配置、分成比例配置
  - 项目级分成比例覆盖值（如有）
- 报价计算的输出主要包括：
  - 各模块小计
  - `CG制作项小计`
  - `系统及云服务项小计`
  - `其他专项小计`
  - 税项明细
  - `合计 （不含税净额）`
  - 日本 / 南京分成结果
- `系统费` 属于报价逻辑中的特殊金额类型，正常计入整单报价总价，但不参与日本 / 南京分成，也不纳入打折范围。
- 追加报价与打折属于已保存报价上的二次金额变更逻辑，不是重新生成一条新报价；其结果直接影响当前报价的有效金额与后续导出结果。
- 当前版本中，追加报价与打折均保留模块选择能力，但变更金额仅基于“所选模块中的 `CG制作费用`”计算，不作用于该模块中的 `系统及云服务项`、`其他专项`、税项或其他未选择模块。
- 报价逻辑必须满足 `统一、可解释、可追溯` 三个原则：
  - 统一：相同输入条件得到相同结果
  - 可解释：每个金额可追溯到具体模块、参数、价格规则与变更记录
  - 可追溯：保存后的报价、税项、分成、追加、打折均保留快照与操作记录

#### 6.10 跨端流程衔接

- 前台报价平台仅对普通用户开放。
- 后台管理平台仅对管理员与超级管理员开放。
- 前台与后台为分离系统，角色不得跨端使用。
- 项目可由普通用户在前端创建，也可由管理员在后台创建。
- 项目创建后，普通用户是否可见由创建人默认权限或后台分配结果决定。
- 项目级 `分成比例` 的正式维护口径以后台项目管理为准。
- 普通用户在前端新建报价时，系统仅按项目基础信息初始化报价单资料中的只读字段。
- 普通用户在前端新建报价时，系统同时按后台当前生效的统一税项规则生成该报价的税项快照。
- 普通用户在前端保存报价后，报价先进入 `待提交审核`。
- 普通用户在前端点击 `申请报价审核` 后，报价进入 `待审核`。
- 管理员或超级管理员在后台执行 `审核通过 / 审核不通过`。
- 普通用户可在前端发起 `追加报价`，但追加结果需在后台进入审核流后才生效。
- 管理员或超级管理员可在后台直接发起 `追加报价` 与 `打折`，并直接生效。

---

### 7. 版本记录

| 版本号 | 更新内容 |
|--------|----------|
| V1.0 | 首版，包含：<br>1. 用户登录<br>2. 项目列表<br>3. 报价计算器<br>4. 后端项目管理<br>5. 后端用户管理<br>6. 价格配置 |
| V1.1 | 包含：<br>1. 价格配置归类调整（动画配置、系统收费并入产品配置）<br>2. 大楼交付结构与计价调整（`CITY VISITA` 调整为 `BUILDING VISTA 3D` 选配项，并同步调整基础价格与超出单价）<br>3. 色彩切换模块规则调整（补充 `2D / 3D` 配置结构、计价规则与折扣规则）<br>4. 色彩切换 `2D` 出图类型顺序调整（`CCG` 优先，`CQCG` 次之）<br>5. 系统收费模块规则调整（`homestation` 更名为 `HOMESTAGING`，并调整费用规则）<br>6. 补充 `追加报价` 能力（支持按模块选择、填写追加备注、比例与金额；报价人员追加后需管理员审核，管理员可直接追加生效；审核通过后仍可继续追加，且追加报价不设次数限制）<br>7. 新增 `平面家具摆放` 独立模块（与动画模块平级），补充张数分档计价与 `50 张以上` 公式计价规则<br>8. 新增报价详情页 `审核记录` 需求（展示审核时间、报价版本号、价格、审核状态）<br>9. 楼宇模块补充参数 `示例说明` 交互（悬停问号或单选项时显示对应说明） |
| V1.2 | 版本目标：交付日方试用。包含：<br>1. 大楼报价参数新增 `占地外`：`红绿灯`、`地铁站`<br>2. 大楼报价新增价格保护机制：楼宇模块总价不得低于 `500,000 日元`，且当保存时楼宇模块总价低于 `500,000 日元` 时，需弹出二次确认提示，确认后按最低价 `500,000 日元` 保存<br>3. 色彩切换 `3D` 新增 `CCG` 和 `CQCG` 选项<br>4. 报价新增 `追加报价` 功能<br>5. 报价新增 `审核报价` 功能<br>6. 报价新增 `打折` 功能<br>7. 报价详情中的报价明细调整为 `序号 / 分类 / 分项 / 主要内容 / 金额` 五列结构，明细下方新增 `金额汇总` 区域<br>8. 导出页面调整为 `见积书` 稿面式预览与导出结构，支持 `PDF / Excel / 在线预览 / 导出语言`<br>9. 完善多语言国际化能力：系统页面语言统一跟随用户当前选择的语言切换，支持 `中文 / 日文 / 英文`；导出页面预览语言仅跟随导出语言配置实时切换，导出语言与当前打开这套报价系统界面的语言相互独立<br>10. 报价新增 `分成比例` 功能<br>11. 优化报价页面交互，解决 `报价配置区域` 与 `价格预览区域` 的滑动冲突<br>12. 报价详情结构调整：桌面端采用左侧 `报价详情`、右侧 `报价历程` 的双栏布局，并将 `报价单资料` 调整为独立入口<br>13. 取消项目级默认报价单信息，报价单资料全部归属当前报价，新建报价仅自动带入 `报价编号 / 报价日期 / 项目名称 / 客户名称` 四个只读字段<br>14. `追加报价`、`打折` 记录需在当前报价的 `报价详情` 和 `报价历程` 中可追溯展示<br>15. `打折` 仅支持管理员和超级管理员操作<br>16. 补充必要后台配置能力：`报价配置 / 分成比例 / 税项配置 / 示例说明`<br>17. 系统收费模块规则调整：系统收费改为非必选模块项，模块下展示 `系统使用费`、`外观模型`、`视点式 URL 链接费`、`HOMESTAGING` 四个可选项，按已选项计算小计 |

- `V1.2` 为试用交付版本。PRD 中涉及的功能项需明确标注本版是否纳入交付范围；未纳入 `V1.2` 的能力，需明确标注为 `本版不做` 或 `后续版本`。

---

### 8. 关联文档

- 前台 PRD：[PRD-003A-quotation-frontend-V1.2.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/prd/PRD-003A-quotation-frontend-V1.2.md)
- 后台 PRD：[PRD-003B-quotation-backoffice-V1.2.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/prd/PRD-003B-quotation-backoffice-V1.2.md)
- 用例文档：[UC-003-quotation-management-system-V1.2.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/use-cases/UC-003-quotation-management-system-V1.2.md)
- MRD：[报价管理系统-精简MRD.md](/Users/summer/Documents/AI/Yitou/quote-estimator/documents/mrd/报价管理系统-精简MRD.md)
