# 合同管理新增"已开票金额/未开票金额"字段 - 前端联调方案 ## 涉及页面 - 合同管理列表页 - 合同详情页 - 创建开票 / 创建回款时选择合同的下拉(simple-list) ## API 本次**不改动任何接口路径、方法、请求参数**,仅合同相关接口的**响应结构新增两个字段**。 | 方法 | 路径 | 说明 | |------|------|------| | GET | /crm/contract/page | 合同分页列表(新增字段) | | GET | /crm/contract/get | 合同详情(新增字段) | | GET | /crm/contract/page-by-customer | 按客户分页(新增字段) | | GET | /crm/contract/page-by-business | 按商机分页(新增字段) | | GET | /crm/contract/simple-list | 合同下拉(新增字段) | **响应字段新增:** | 字段 | 类型 | 说明 | |------|------|------| | totalInvoicePrice | BigDecimal | 已开票金额(元),统计**审批通过 + 审批中**的开票单金额合计 | | unInvoicePrice | BigDecimal | 未开票金额(元),等于 `totalPrice - totalInvoicePrice`,仅列表/详情接口返回,simple-list 不返回 | **响应示例(列表/详情):** ```json { "code": 0, "data": { "totalPrice": 1000000.00, "totalReceivablePrice": 400000.00, "totalInvoicePrice": 1000000.00, "unInvoicePrice": 0.00 } } ``` ## 字段展示规则 | 字段 | 展示位置 | 说明 | |------|----------|------| | 已开票金额(totalInvoicePrice) | 列表表格列、详情页金额区域 | 含审批中的开票单金额,与后端防超校验口径一致 | | 未开票金额(unInvoicePrice) | 列表表格列、详情页金额区域 | 合同金额 - 已开票金额,可同时用于展示"剩余可开票金额" | ## 业务规则说明 | 场景 | 规则 | |------|------| | 审批中的开票单 | 计入"已开票金额",占用合同额度(与后端提交开票时的校验一致,前端展示的剩余额度才准确) | | 审批被驳回 / 取消的开票单 | 不计入"已开票金额",额度自动释放 | | 未开票金额 | 若为负数说明已超开(正常流程后端已拦截,不会出现) | | 合同下拉(simple-list) | 返回 totalInvoicePrice,可用于在创建开票/回款时提示剩余可开金额 | ## 注意事项 - 字段语义是"含审批中",不是"实际已开出票"金额,前端展示时文案建议用"已开票金额(含审批中)"避免歧义。 - 新增字段仅用于展示,前端**不要**提交这两个字段(后端不接收,属只读汇总字段)。 - Excel 导出本次未新增这两列,如需导出可另行申请。