From 19812a1da7abfa8f06cdfb135f9068a766d26fdc Mon Sep 17 00:00:00 2001 From: wuzilong <704541015@qq.com> Date: Fri, 16 Oct 2026 11:28:08 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20add=20ETC/=E6=B2=B9=E5=8D=A1=E5=85=85?= =?UTF-8?q?=E5=80=BC=E6=96=87=E6=A1=88=E6=94=B9=E5=90=8D=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E8=A7=84=E6=A0=BC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 明确菜单与充值类型展示「加油→油卡」,存值 fuel 与加油登记模块不动。 Co-authored-by: Cursor --- ...vehicle-recharge-oil-card-rename-design.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 docs/superpowers/specs/2026-10-16-pl-vehicle-recharge-oil-card-rename-design.md diff --git a/docs/superpowers/specs/2026-10-16-pl-vehicle-recharge-oil-card-rename-design.md b/docs/superpowers/specs/2026-10-16-pl-vehicle-recharge-oil-card-rename-design.md new file mode 100644 index 000000000..04afeaa6c --- /dev/null +++ b/docs/superpowers/specs/2026-10-16-pl-vehicle-recharge-oil-card-rename-design.md @@ -0,0 +1,111 @@ +# ETC/加油充值 → ETC/油卡充值(文案改名)— 设计文档 + +> **日期**: 2026-10-16 +> **状态**: 待用户审阅(self-review 已过) +> **方案**: 展示层文案替换(存值 `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 + 手工点验侧栏与类型展示