# SRM 招投标管理 - 可配置版前端联调方案 ## 涉及页面 - **招投标配置**(新增):`srm/tender/config/index` — 设置默认招投标模式 - **招标项目列表**(修改):`srm/tender/index` — 增加模式筛选项和列表展示 - **招标项目表单**(修改):`srm/tender/modules/form` — 增加模式选择(默认取配置) - **招标详情**(修改):`srm/tender/detail` — 简易模式下隐藏开标/评标/定标,增加比价中和确认操作 ## 业务流程与数据带入 ### 完整版流程(不变) ``` 创建项目 → 发布 → 开始投标 → 供应商投标/报价 → 开标 → 评标 → 定标 → 生成采购订单 ``` ### 简易版流程(新增) ``` 创建项目 → 开始比价 → 供应商投标/报价 → 确认中标(自动生成采购订单) ``` - 模式在创建项目时从招投标配置页的默认值带入,用户可以覆盖 - 简易模式下,详情页不展示开标/评标/定标三个 Tab - "确认中标"操作需选择中标供应商的投标记录,确认后自动生成采购订单 ## API ### 1. 招投标配置(新增) | 方法 | 路径 | 说明 | |------|------|------| | GET | `/srm/tender-config/get` | 获取招投标配置 | | PUT | `/srm/tender-config/save` | 保存招投标配置 | **GET /get 响应示例:** ```json { "code": 0, "data": { "id": 1, "defaultBiddingMode": "FULL" } } ``` **PUT /save 请求参数:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | defaultBiddingMode | String | 是 | 默认模式:FULL-完整版, SIMPLE-简易版 | ### 2. 招标项目接口变更 **响应/请求新增 biddingMode 字段:** | 字段 | 类型 | 说明 | |------|------|------| | biddingMode | String | 招投标模式:FULL-完整版, SIMPLE-简易版 | 影响接口: - `POST /srm/tender-project/create` — 请求体新增 biddingMode(可选,不传则使用配置默认值) - `GET /srm/tender-project/get` — 响应新增 biddingMode - `GET /srm/tender-project/page` — 请求新增 biddingMode 筛选项,响应列表新增 biddingMode - `PUT /srm/tender-project/update` — 请求体新增 biddingMode ### 3. 简易模式操作(新增) | 方法 | 路径 | 说明 | |------|------|------| | PUT | `/srm/tender-project/start-price-comparing` | 开始比价(草稿 → 比价中) | | PUT | `/srm/tender-project/confirm` | 确认中标并生成采购订单 | **PUT /start-price-comparing 请求参数:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 招标项目ID(query 参数) | **PUT /confirm 请求参数:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 招标项目ID | | bidId | Long | 是 | 中标投标记录ID | ## 字段展示规则 | 字段 | 展示位置 | 说明 | |------|----------|------| | biddingMode | 列表列、详情、表单 | 使用下拉选择,选项:完整版(FULL)、简易版(SIMPLE) | | defaultBiddingMode | 配置页 | 单选切换,保存后影响新建项目的默认模式 | | tenderStatus | 列表、详情 | 简易模式新增两种状态:比价中(10)、已确认(20) | ## 简易版状态枚举扩展 在 `src/views/srm/enums.ts` 中增加: ```typescript TENDER_STATUS: { 0: '草稿', 1: '发布中', 2: '投标中', 3: '评标中', 4: '已定标', 5: '已关闭', 10: '比价中', // 简易版新增 20: '已确认', // 简易版新增 } ``` 新增 `BIDDING_MODE` 枚举: ```typescript BIDDING_MODE: { FULL: '完整版', SIMPLE: '简易版', } ``` ## 业务规则说明 | 场景 | 规则 | |------|------| | 创建项目时未选模式 | 后端自动从招投标配置中取默认值 | | 简易模式项目操作 | 只能执行:开始比价 → 确认中标(关闭) | | 完整版项目操作 | 保持现有流程不变(发布→投标→评标→定标) | | 简易模式详情页 | 隐藏开标/评标/定标 Tab,比价中阶段仅显示物料清单、投标管理、报价管理 | | 确认中标 | 简易模式下,用户选择一个投标记录,确认后自动生成采购订单并更新状态为已确认 | | 关闭项目 | 简易模式下项目也可以被关闭(状态变为已关闭) | ## 招投标配置页面 新建页面:`src/views/srm/tender/config/index.vue` 功能: - 显示当前默认招投标模式(完整版/简易版) - 提供切换控件(Radio 或 Select) - 保存按钮调用 `/srm/tender-config/save` ## 招标项目列表修改 1. 搜索栏增加"招投标模式"下拉筛选,调用列表接口时传入 `biddingMode` 参数 2. 表格增加"招投标模式"列,显示完整版/简易版标签 3. 操作按钮根据 `biddingMode` 区分: - 简易模式草稿状态:显示"开始比价"按钮 - 简易模式比价中状态:显示"确认中标"按钮(点击后弹出投标选择对话框) ## 招标项目表单修改 1. 新增/编辑表单增加"招投标模式"字段: - 下拉选择,选项:完整版、简易版 - 新建时默认值取 `/srm/tender-config/get` 返回的 `defaultBiddingMode` 2. 编辑时模式不可修改(仅草稿可编辑,模式锁定) ## 招标详情页修改 根据 `biddingMode` 判断: - **简易模式**: - 步骤条改为:草稿 → 比价中 → 已确认 - Tab 页签仅显示:物料清单、投标管理、报价管理 - 比价中状态显示"确认中标"操作按钮 - **完整版**:保持现有逻辑不变 ## 注意事项 - 创建项目表单加载时,先调用 `/srm/tender-config/get` 获取默认模式,填充到 biddingMode 字段 - 简易模式下,`/srm/tender-project/start-bidding`、`/srm/tender-project/start-evaluation` 等完整版接口不要调用 - "确认中标"操作需要用户从已投标的供应商中选择,调用 `/srm/tender-project/confirm` 接口 - 确认中标后采购订单自动生成,前后端无需额外操作 - 前端 API 文件需新增:SrmTenderConfigApi(getConfig/saveConfig),以及 SrmTenderApi 下的 startPriceComparing/confirmTenderProject 方法