# REV-005 财务后台发票管理前端设计 **Feature**: `002-rev005-invoice-flow` **Date**: 2026-05-12 **Audience**: 财务经办、财务主管、客服协同、系统管理员 **Purpose**: 在既有 REV-005 发票业务流正式工件基础上,补充面向财务人员的前端页面、菜单层级、字段组织、状态模型与跳转关系设计,作为 `water-frontend` 页面实现的直接输入。 --- ## 1. 设计目标 本设计聚焦 `SYS-002 > REV-005 发票管理` 后台前端,服务对象为财务人员,遵循以下目标: 1. 采用现有仓库已验证的前端页面模板,不引入新的页面组织范式。 2. 以财务批量处理为主、单笔处理为辅,保证高频操作路径最短。 3. 以缴费记录作为发票开具主数据源,以客户汇总作为大客户辅助视图,账单维度仅作为特殊补充能力。 4. 将红冲、作废、异常从普通查询中独立出来,形成可追踪、可授权、可审计的任务池页面。 5. 让财务人员进入页面后优先看到金额、状态、号码与失败原因,降低筛选和定位成本。 --- ## 2. 设计范围 本轮仅覆盖 `REV-005` 财务后台前端,不扩展到: - `CS-004` 客户侧电子发票服务 - `WECHAT-004` 微网厅电子发票服务 - `SYS-008` 发票服务子系统自身后台 - 发票物理打印页面 - 复杂自由拆票规则配置页面 本设计作为 `REV-005` 前端实现补充,不替代既有 `spec.md`、`plan.md`、`tasks.md`、`contracts/` 与 `data-model.md` 的正式业务口径。 --- ## 3. 用户与职责边界 ### 3.1 目标用户 - **财务经办**:待开票记录筛选、批量开票、查看结果 - **财务主管**:红冲、作废、大额合并开票、异常处理 - **客服协同**:只读查询、查看发票状态、查看开票信息 - **系统管理员**:全量权限、配置联调与问题核查 ### 3.2 高风险动作 以下动作必须单独授权,不能仅因拥有列表查看权限而自动获得: - 客户汇总合并开票 - 红冲处理 - 作废处理 - 异常改派 - 账单维度补充开票 - 大额批量开票 - 人工强制重试 --- ## 4. 页面模板选型 ### 4.1 主模板 采用 `water-frontend` 既有 **标准列表查询页** 模板,参考: - `src/views/infra/config/index.vue` - `src/views/settings/config/invoiceTaxRate/index.vue` 适用于以下页面: - 发票开具 - 发票查询 - 红冲处理 - 作废处理 - 异常处理 ### 4.2 辅模板 - **详情展示页**:发票详情页 - **弹窗表单页**:开票信息维护、批量开票确认、红冲原因、作废原因、异常日志 ### 4.3 不采用的模式 本轮不采用新的“首页工作台”或“多栏组合工作台”模式,避免偏离现有模板体系。 --- ## 5. 菜单层级设计 ### 5.1 菜单树 - **一级菜单**:营收业务 - **二级菜单**:发票管理 - **三级菜单**: 1. 发票开具 2. 发票查询 3. 红冲处理 4. 作废处理 5. 异常处理 ### 5.2 菜单命名原则 - 名称面向财务人员理解,不使用技术化名称。 - 菜单名称直接对应主要任务,不采用“管理中心”“作业平台”等泛化命名。 - 红冲、作废、异常分别独立,不与“发票查询”混合。 --- ## 6. 总体交互原则 1. 财务主入口固定为 **发票开具**。 2. 发票开具默认展示 **缴费记录视图**,并在页内切换到 **客户汇总视图**。 3. 发票查询作为历史结果与后续处理入口页。 4. 红冲、作废、异常均按“任务池”组织,优先突出待处理量和失败原因。 5. 所有高风险动作都需要二次确认。 6. 所有列表页均支持批量操作、导出与列配置。 --- ## 7. 数据源口径 ### 7.1 主数据源:缴费记录待开票 适用于: - 居民用户电子普票 - 中小客户单笔开票 - 后台财务批量开票 - 特殊开账缴费后的开票 页面表现: - 发票开具页默认视图 - 一笔缴费记录是一个待开票对象 - 支持同一客户多笔缴费记录批量开票 ### 7.2 辅助数据源:客户汇总待开票 适用于: - 大客户 - 政企客户 - 需要合并开票的集团户 - 专票场景 页面表现: - 仅在发票开具页内切换视图 - 先看客户聚合,再展开客户下的待开票缴费记录 ### 7.3 备用数据源:账单维度待开票 仅用于极特殊场景,不作为常规菜单或默认视图: - 预付费特殊口径 - 协议先票后款 - 历史遗留修复 页面表现: - 不提供独立菜单 - 仅通过特殊权限入口进入 --- ## 8. 页面设计 ## 8.1 发票开具页 ### 页面定位 财务主作业页,用于待开票记录筛选、批量开票、单笔开票、查看开票信息。 ### 页面结构 1. **查询区** - 缴费日期范围 - 缴费单号 - 客户编号 - 客户名称 - 用户类型 - 开票状态 - 发票类型 - 营业网点 / 水司 - 收费渠道 - 是否大客户 - 特殊开账标识 2. **统计条区** - 待开票笔数 - 待开票金额 - 今日新增待开票 - 大客户待开票金额 3. **工具栏区** - 查询 - 重置 - 批量开票 - 批量校验 - 导出 - 切换视图(缴费记录 / 客户汇总) 4. **表格区** - 默认:缴费记录待开票表 - 切换:客户汇总待开票表 ### 缴费记录视图字段 - 选择框 - 缴费日期 - 缴费单号 - 客户编号 - 客户名称 - 户号 - 水表号 - 账期 - 缴费金额 - 可开票金额 - 费用类型 - 发票类型 - 开票抬头 - 税号 - 开票状态 - 特殊开账标识 - 收费渠道 - 收费员 - 操作 ### 客户汇总视图字段 - 选择框 - 客户编号 - 客户名称 - 客户类型 - 税号 - 未开票笔数 - 未开票金额 - 默认发票类型 - 默认开票信息完整度 - 最近开票日期 - 操作(展开明细 / 合并开票) ### 行内动作 - 查看明细 - 查看开票信息 - 单笔开票 ### 批量动作 - 批量开票 - 批量校验 - 批量导出 ### 页面内视图切换要求 - 默认进入缴费记录视图 - 切换至客户汇总视图时,保留已输入的共用筛选条件 - 客户汇总视图下的开票动作仍落到缴费记录级别明细校验 --- ## 8.2 发票查询页 ### 页面定位 历史发票归档、结果核验与后续处理入口页。 ### 页面结构 1. **查询区** - 开票日期范围 - 发票号码 - 发票代码 - 客户名称 - 客户编号 - 发票类型 - 发票状态 - 推送状态 - 红冲状态 - 作废状态 - 开票人 2. **工具栏区** - 查询 - 重置 - 导出 - 批量下载 - 批量重推送 - 批量打印(后续可选) 3. **表格区** - 发票主记录列表 ### 表格字段 - 发票号码 - 发票代码 - 客户名称 - 税号 - 开票日期 - 发票金额 - 关联缴费笔数 - 发票状态 - 推送状态 - 下载状态 - 红冲状态 - 作废状态 - 开票人 - 操作 ### 行内动作 - 详情 - 下载 - 重推送 - 发起红冲 - 发起作废 --- ## 8.3 红冲处理页 ### 页面定位 红字发票任务池,用于对已开具发票进行冲销处理。 ### 页面结构 1. **查询区** - 红冲申请日期 - 原发票号码 - 客户名称 - 红冲状态 - 退款状态 - 申请人 2. **工具栏区** - 查询 - 重置 - 批量提交红冲 - 批量重试 - 导出 3. **表格区** - 待红冲 / 红冲中 / 红冲成功 / 红冲失败 ### 表格字段 - 原发票号码 - 原发票代码 - 客户名称 - 红冲申请时间 - 红冲原因 - 关联退款金额 - 红冲状态 - 失败原因 - 申请人 - 审核人 - 操作 ### 行内动作 - 查看原发票 - 查看退款关联 - 提交红冲 - 重试 - 查看失败原因 --- ## 8.4 作废处理页 ### 页面定位 作废任务池,用于对满足条件的发票进行作废。 ### 页面结构 1. **查询区** - 作废申请日期 - 发票号码 - 客户名称 - 作废状态 - 申请人 2. **工具栏区** - 查询 - 重置 - 批量作废 - 批量重试 - 导出 3. **表格区** - 待作废 / 作废中 / 作废成功 / 作废失败 ### 表格字段 - 发票号码 - 客户名称 - 作废申请时间 - 作废原因 - 发票金额 - 作废状态 - 失败原因 - 申请人 - 操作 ### 行内动作 - 查看发票详情 - 提交作废 - 重试 - 查看失败原因 --- ## 8.5 异常处理页 ### 页面定位 集中处理开票失败、回执异常、推送异常、下载异常与对账异常的任务池页面。 ### 页面结构 1. **查询区** - 异常日期 - 异常类型 - 业务单号 - 客户名称 - 当前状态 - 是否已重试 - 异常节点 2. **工具栏区** - 查询 - 重置 - 批量重试 - 批量改派 - 导出 3. **表格区** - 开票失败 - 回执异常 - 下载异常 - 推送异常 - 对账异常 ### 表格字段 - 异常类型 - 业务单号 - 客户名称 - 发票号码 - 金额 - 异常节点 - 异常原因 - 重试次数 - 最新处理时间 - 当前状态 - 操作 ### 行内动作 - 查看详情 - 重试 - 查看日志 - 改派处理 - 标记人工处理完成 --- ## 8.6 发票详情页 ### 页面定位 作为独立只读详情页,承载完整发票业务轨迹,不使用普通小弹窗替代。 ### 页面结构 1. 基本信息区 2. 关联缴费记录区 3. 开票与推送轨迹区 4. 红冲 / 作废 / 异常日志区 ### 推荐字段分组 #### 基本信息 - 发票代码 - 发票号码 - 发票类型 - 发票金额 - 开票日期 - 发票状态 - 开票人 #### 开票对象 - 客户编号 - 客户名称 - 发票抬头 - 纳税人识别号 - 地址电话 - 开户行 - 银行账号 - 邮箱 - 手机号 #### 关联业务 - 关联缴费笔数 - 关联缴费单号列表 - 账期范围 - 费用类型 - 特殊开账标识 #### 处理轨迹 - 推送状态 - 下载状态 - 红冲状态 - 作废状态 - 外部回执号 - 最近处理时间 - 失败原因 - 重试次数 --- ## 9. 弹窗设计边界 ### 9.1 开票信息弹窗 用于查看 / 维护: - 发票抬头 - 税号 - 地址电话 - 开户行 - 银行账号 - 邮箱 - 手机号 - 发票类型 ### 9.2 批量开票确认弹窗 用于确认: - 本次勾选笔数 - 本次开票总金额 - 发票类型 - 抬头归属 - 校验通过/失败摘要 ### 9.3 红冲原因弹窗 用于录入: - 红冲原因 - 退款说明 - 备注 - 附件说明(后续可扩展) ### 9.4 作废原因弹窗 用于录入: - 作废原因 - 备注 ### 9.5 异常日志弹窗 用于快速查看: - 异常节点 - 原始错误信息 - 外部回执 - 重试记录 - 最新处理结果 --- ## 10. 页面跳转关系 ### 10.1 主链路:批量开票 `发票开具页` → 勾选缴费记录 → `批量开票确认弹窗` → 提交开票 → 成功后可跳转 `发票查询页` ### 10.2 大客户链路:客户汇总合并开票 `发票开具页` → 切换到客户汇总视图 → 选择客户 → 展开明细 / 进入客户待开票记录 → `批量开票确认弹窗` → 提交开票 → `发票查询页` ### 10.3 后处理链路:红冲 / 作废 `发票查询页` → 发起红冲 / 发起作废 → 跳转 `红冲处理页` / `作废处理页` → 原票详情查看 / 填原因 / 提交处理 → 结果回写 `发票查询页` ### 10.4 补救链路:异常处理 `异常处理页` → 查看失败原因 → 重试 / 改派 / 人工处理 → 回到对应业务页复核 --- ## 11. 权限模型建议 ### 11.1 菜单权限 - 发票开具 - 发票查询 - 红冲处理 - 作废处理 - 异常处理 ### 11.2 按钮权限 #### 发票开具页 - 查询 - 导出 - 查看明细 - 查看开票信息 - 单笔开票 - 批量开票 - 批量校验 #### 发票查询页 - 查询 - 导出 - 详情 - 下载 - 重推送 - 发起红冲 - 发起作废 #### 红冲处理页 - 查询 - 导出 - 提交红冲 - 批量红冲 - 重试 - 查看失败原因 #### 作废处理页 - 查询 - 导出 - 提交作废 - 批量作废 - 重试 #### 异常处理页 - 查询 - 导出 - 重试 - 改派 - 查看日志 - 标记人工完成 ### 11.3 特殊动作权限 以下权限建议独立控制: - 客户汇总合并开票 - 红冲 - 作废 - 异常改派 - 账单维度补充开票 - 大额批量开票 - 人工强制重试 --- ## 12. 状态模型建议 ## 12.1 开票状态(发票开具页主状态) - 待开票 - 校验失败 - 开票中 - 开票成功 - 开票失败 ## 12.2 发票生命周期状态(发票查询页主展示) - 已开具 - 已推送 - 部分推送失败 - 红冲中 - 已红冲 - 作废中 - 已作废 - 状态异常 ## 12.3 异常类型(异常处理页) - 开票失败 - 回执异常 - 推送异常 - 下载异常 - 红冲失败 - 作废失败 - 对账异常 ## 12.4 展示原则 - 开票状态、推送状态、红冲状态、作废状态分别展示,不合并成单一总状态。 - 列表页状态标签必须能直接支持财务筛选,不要求用户进入详情后再判断。 --- ## 13. 字段优先级建议 ### 13.1 A 级(默认必须可见) - 客户名称 - 缴费单号 / 发票号码 - 金额 - 状态 - 发票类型 - 日期 - 失败原因 / 异常状态 - 操作 ### 13.2 B 级(默认展示,可折叠) - 客户编号 - 税号 - 收费渠道 - 营业网点 - 特殊开账标识 - 开票人 - 推送状态 ### 13.3 C 级(列配置按需打开) - 水表号 - 户号 - 账期 - 商品税收分类编码 - 下载状态 - 最近重试时间 - 外部回执号 - 供应商名称 --- ## 14. 字段语义分组建议 ### 14.1 业务来源组 - 缴费单号 - 账单号 - 客户编号 - 客户名称 - 户号 - 水表号 - 账期 - 特殊开账标识 - 收费渠道 - 营业网点 ### 14.2 开票主体组 - 发票抬头 - 纳税人识别号 - 地址电话 - 开户行 - 银行账号 - 邮箱 - 手机号 - 发票类型 ### 14.3 金额税务组 - 缴费金额 - 可开票金额 - 发票金额 - 税率 - 税额 - 不含税金额 - 商品税收分类编码 - 费用类型 ### 14.4 状态轨迹组 - 开票状态 - 推送状态 - 下载状态 - 红冲状态 - 作废状态 - 异常类型 - 失败原因 - 最近处理时间 - 重试次数 ### 14.5 审计留痕组 - 开票人 - 开票时间 - 申请人 - 审核人 - 操作时间 - 外部发票号码 - 外部回执号 - 处理备注 --- ## 15. 财务视角下的最终方案 `REV-005` 前端采用“**标准列表入口 + 五个三级菜单页**”的财务后台模型: - `发票开具`:主作业页,默认缴费记录视图,可切客户汇总视图 - `发票查询`:历史结果页与后处理入口页 - `红冲处理`:红字发票任务池 - `作废处理`:作废任务池 - `异常处理`:失败和异常集中处理池 整体原则如下: 1. 批量处理优先于单笔处理。 2. 缴费记录优先于客户汇总,客户汇总优先于账单补充。 3. 高风险动作单独授权。 4. 状态拆分展示,避免财务误判。 5. 详情页承载全量轨迹,弹窗只承接局部动作。 --- ## 16. 与既有正式工件的关系 本文件补充的是 **前端财务页面与导航设计**,应与以下正式工件一起使用: - `specs/002-rev005-invoice-flow/spec.md` - `specs/002-rev005-invoice-flow/plan.md` - `specs/002-rev005-invoice-flow/tasks.md` - `specs/002-rev005-invoice-flow/data-model.md` - `specs/002-rev005-invoice-flow/contracts/if-rev-008-invoice-application.md` - `specs/002-rev005-invoice-flow/contracts/if-rev-009-invoice-query.md` 若后续进入 `water-frontend` 实现阶段,本文件可直接作为: - 路由与菜单拆分输入 - 页面目录结构输入 - 查询区与列表字段输入 - 权限点拆分输入 - 页面模板选型输入 --- ## 17. 未纳入本轮的事项 以下内容明确不在本轮设计范围内: - 客户侧电子发票入口页面设计 - 微信端电子发票入口页面设计 - 供应商税控配置页面 - 发票打印模板设计 - 发票审批流页面 - 发票统计分析看板 后续若扩展 `CS-004`、`WECHAT-004` 或 `SYS-008`,应分别建立独立设计补充,不在本文件中混合扩展。