ETC/加油充值 → ETC/油卡充值(文案改名)— 设计文档
日期: 2026-10-16
状态: 已批准
实现计划: docs/superpowers/plans/2026-10-16-pl-vehicle-recharge-oil-card-rename.md
方案: 展示层文案替换(存值 fuel 不变)
范围: web-admin 车辆管理 · ETC 充值分组;miniprogram · ETC 充值申请;配套字典 / 导出 / 微信文案 / 提示语
前置: 2026-09-26-pl-vehicle-recharge-restore-fuel-design.md(曾恢复类型「加油」;本次仅改展示名称为「油卡」)
1. 目标
将「ETC/加油充值」业务线中对用户可见的「加油」统一改为「油卡」,与真实业务语义(给司机油卡充值)对齐,并与独立的「加油登记」(登记加油升数)区分开。
| 改前 |
改后 |
| ETC/加油充值管理 |
ETC/油卡充值管理 |
| ETC/加油充值申请 |
ETC/油卡充值申请 |
| ETC/加油充值审批 |
ETC/油卡充值审批 |
| ETC/加油充值发放管理 |
ETC/油卡充值发放管理 |
| ETC/加油充值审批人设置 |
ETC/油卡充值审批人设置 |
| 充值类型:ETC / 加油 |
充值类型:ETC / 油卡 |
2. 已确认决策
| # |
项 |
决策 |
| D1 |
菜单范围 |
全部统一:分组 + 申请 + 审批 + 发放管理 + 审批人设置(Web);小程序「ETC/油卡充值申请」同步 |
| D2 |
存值 |
recharge_type 继续存 fuel;不改成 oil_card,不迁历史数据 |
| D3 |
展示 |
fuel → 界面 / 导出 / 微信文案 / 筛选枚举显示「油卡」 |
| D4 |
「ETC/加油…」类文案 |
页面标题、路由 meta、提示语、导出文件名(若含此短语)、发微信群标题等 全部 改为「油卡」 |
| D5 |
「加油站/渠道」 |
不动(主要在发放/审批侧;申请新建表单无此字段) |
| D6 |
「加油登记」模块 |
整条线不动(菜单、页面、升数登记、汇总) |
| D7 |
技术标识 |
API path、权限码 pl:vehicle-recharge-*、路由 path、表名、dict_value=fuel 不变 |
3. 非目标
- 不改库表结构、不迁移
recharge_type 历史值
- 不改「加油登记 / 加油信息汇总」任何文案或逻辑
- 不改「加油站/渠道」字段标签与含义
- 不改工作流引擎逻辑(仅改用户可见流程名若写死为「ETC/加油…」)
- 不批量改历史设计文档 / graphify 报告中的旧称谓(可顺带改代码注释,非必须)
4. 现状与落点
4.1 数据层(需迁移 SQL)
| 对象 |
ID / 键 |
当前 |
目标 |
sys_menu |
PL_GROUP_VEH_RECHARGE |
ETC/加油充值管理 |
ETC/油卡充值管理 |
sys_menu |
PL_VEH_RECHARGE_APPLY |
ETC/加油充值申请 |
ETC/油卡充值申请 |
sys_menu |
PL_VEH_RECHARGE_APPROVAL |
ETC/加油充值审批 |
ETC/油卡充值审批 |
sys_menu |
PL_VEH_RECHARGE_RECORD |
ETC/加油充值发放管理 |
ETC/油卡充值发放管理 |
sys_menu |
PL_VEH_RECHARGE_WF |
ETC/加油充值审批人设置 |
ETC/油卡充值审批人设置 |
sys_dict_data |
PL_RECHARGE_TYPE_FUEL |
dict_label=加油,dict_value=fuel |
dict_label=油卡,dict_value 仍为 fuel |
可选:分组 remark「ETC/加油充值分组」→「ETC/油卡充值分组」。
表 COMMENT / 列 COMMENT 中的「fuel-加油」可在迁移中改为「fuel-油卡」,不影响运行。
工作流默认名:bx/workflow.py 中 "wf_name": "ETC/加油充值审批流程" →「ETC/油卡充值审批流程」(若库中已有实例名,是否 UPDATE 既有 wf_name 在实现计划中按实际表结构处理;至少改代码默认值)。
4.2 前端 web-admin
| 位置 |
改什么 |
router/modules/pl.ts |
所有 ETC/加油… meta.title |
utils/pl-display.ts → getPlRechargeTypeLabel |
fuel → 油卡 |
vehicle-recharge-apply / record 表单 el-option |
label「加油」→「油卡」 |
vehicle-recharge-apply/columnFilterDefs.ts |
枚举 label |
各页 HTML 注释、用户可见 ElMessage(如指向审批菜单的提示) |
「加油」→「油卡」 |
api/pl/index.ts 注释 |
可改可不改 |
4.3 小程序
| 位置 |
改什么 |
config/workbench-menus.js |
名称「ETC/油卡充值申请」;desc 中若写「ETC充值申请」可改为「ETC/油卡充值申请」(保持可读即可) |
pages.json |
navigationBarTitleText |
pages/pl/vehicle-recharge-apply/list.vue |
topbar 标题;本地 fuel→「油卡」映射 |
pages/pl/vehicle-recharge-apply/form.vue |
类型选项 label |
utils/plVehicleRechargeCopy.js |
类型 label + 微信标题「ETC/油卡充值申请」 |
4.4 后端
| 位置 |
改什么 |
api/pl/vehicle_recharge.py → RECHARGE_TYPE_LABELS |
"fuel": "油卡"(导出 Excel 用) |
services/pl_vehicle_recharge_service.py |
用户可见 detail 文案中的菜单名 |
| OpenAPI tags / 模块注释 |
建议同步改为「油卡」,避免 Swagger 仍写「加油」 |
| 单测 docstring 中的菜单称谓 |
同步(断言逻辑不变) |
5. 验收标准
- Web 侧栏「车辆管理」下分组及四个子菜单均显示「油卡」,无残留「ETC/加油…」。
- 申请 / 发放 / 审批:充值类型下拉、Tag、列头筛选、查看弹窗、导出列中
fuel 显示「油卡」。
- 小程序工作台入口与申请页标题为「ETC/油卡充值申请」;选类型「油卡」提交后列表/复制文案为「油卡」。
- 历史
recharge_type=fuel 记录仍可查、可筛、可导出,无需数据迁移。
- 「加油登记」「加油信息汇总」「加油站/渠道」文案与行为与改前一致。
- API path、权限码、筛选 query 值
fuel 不变;回归既有充值相关单测通过。
6. 风险与注意
- 双源菜单:侧栏若走后端
sys_menu,必须部署迁移 SQL;路由 meta 也要改,避免 Tab/面包屑仍显示旧名。
- 字典缓存:若前端缓存字典,改
dict_label 后需刷新或重新登录才能看到「油卡」。
- 勿误伤「加油登记」:全局替换「加油」危险;应按「ETC/加油」短语与充值类型 label 定点替换。
7. 实现顺序(概要)
- 迁移 SQL(菜单 + 字典 label)放入
docs/sql/migrations/
- 后端 label 映射与用户可见提示
- web-admin 路由 / 展示 / 表单 / 筛选
- miniprogram 菜单 / 页面 / 复制文案
- 跑相关 pytest + 手工点验侧栏与类型展示