Files
shanxia2.0/docs/superpowers/specs/2026-10-16-pl-vehicle-recharge-oil-card-rename-design.md
T
wuzilongandCursor 5c2879914b docs: add ETC/油卡充值文案改名实现计划。
按展示层替换拆分迁移 SQL、后端 label、web-admin 与小程序任务。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 11:30:09 +08:00

6.5 KiB
Raw Blame History

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. 验收标准

  1. Web 侧栏「车辆管理」下分组及四个子菜单均显示「油卡」,无残留「ETC/加油…」。
  2. 申请 / 发放 / 审批:充值类型下拉、Tag、列头筛选、查看弹窗、导出列中 fuel 显示「油卡」。
  3. 小程序工作台入口与申请页标题为「ETC/油卡充值申请」;选类型「油卡」提交后列表/复制文案为「油卡」。
  4. 历史 recharge_type=fuel 记录仍可查、可筛、可导出,无需数据迁移。
  5. 「加油登记」「加油信息汇总」「加油站/渠道」文案与行为与改前一致。
  6. API path、权限码、筛选 query 值 fuel 不变;回归既有充值相关单测通过。

6. 风险与注意

  • 双源菜单:侧栏若走后端 sys_menu,必须部署迁移 SQL;路由 meta 也要改,避免 Tab/面包屑仍显示旧名。
  • 字典缓存:若前端缓存字典,改 dict_label 后需刷新或重新登录才能看到「油卡」。
  • 勿误伤「加油登记」:全局替换「加油」危险;应按「ETC/加油」短语与充值类型 label 定点替换。

7. 实现顺序(概要)

  1. 迁移 SQL(菜单 + 字典 label)放入 docs/sql/migrations/
  2. 后端 label 映射与用户可见提示
  3. web-admin 路由 / 展示 / 表单 / 筛选
  4. miniprogram 菜单 / 页面 / 复制文案
  5. 跑相关 pytest + 手工点验侧栏与类型展示