16 KiB
Raw Blame History

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.mdplan.mdtasks.mdcontracts/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-004WECHAT-004SYS-008,应分别建立独立设计补充,不在本文件中混合扩展。