# 车辆维修明细 · 产品需求说明（PRD）

| 项 | 内容 |
|---|---|
| 文档版本 | v1.1（对齐原型批注与现行页面） |
| 模块名称 | 台账管理 — 车辆维修/保养明细 |
| 交互原型 | `/prototypes/vehicle-maintenance-ledger` |
| 修订说明 | 同步列表列顺序、列名、承担方式列移除、批量导入校验与失败导出 |

---

## 1. 模块定位

面向运维部人员手动录入车辆维修/保养明细，记录费用，并与租赁业务台账联动（客户承担 → 应收运维费；我司承担 → 运维费成本）。

| 项 | 说明 |
|---|---|
| 主要用户 | 运维人员：批量导入、新增一行、填写费用、保存、确认提交 |
| 运维主管 | 仅对已提交（归档）记录拥有编辑与删除权限 |
| 录入方式 | 工具栏「批量导入」Excel/CSV，或表格底部「新增一行」手填 |
| 导入后状态 | **待保存（未保存）**，可补全字段、**手动补传附件** |
| 保存 | 将本人未提交记录标记为 **已保存** |
| 确认提交 | 将本人 **已保存** 记录批量归档为 **已提交**；提交后运维人员不可再改 |
| 附件 | 照片、Word、Excel、PDF 等多附件；未提交可补传；已提交默认只读，主管可增删 |
| 数据权限 | **运维人员仅可操作本人记录**；**他人记录仅可查看** |
| 导入导出 | 批量导入（xlsx/csv 模板）与按当前筛选结果导出 Excel |

### 状态流转

```
批量导入 / 新增一行 → 待保存（未保存）→ 保存 → 已保存 → 确认提交 → 已提交（归档）
```

### 原型验收提示

- 默认以运维人员「张运维」登录演示
- 主管视角：URL 追加 `?role=supervisor`

---

## 2. 筛选区

| 筛选项 | 说明 |
|---|---|
| 进修日期 | 日期区间 |
| 车牌号 | 可搜索下拉，精确匹配 |
| 类型 | 多选：维修 / 保养 |
| 提报人 | 多选 |

操作：**重置**、**查询**。

---

## 3. 列表工具栏

| 按钮 | 行为 |
|---|---|
| 批量导入 | 下载模板 → 上传文件 → 校验预览 → 确认导入 |
| 导出 | 导出当前筛选结果 Excel |
| 保存 | 将勾选且本人未提交记录标记为已保存 |
| 确认提交 | 将勾选且本人已保存记录归档为已提交 |

列表上方提示：维修保养台账涉及租赁账单，请及时填报并确认提交。

---

## 4. 列表字段（现行）

从左至右：

序号 → 状态 → **进修/保养日期** → 车牌号 → 类型 → 项目/材料 → 人工费（单位/数量/单价/金额）→ 配件费（单位/数量/单价/金额）→ 费用总计（含税）→ 附件 → **提报人** → **提报时间** → 操作

说明：

- **承担方式列已从列表移除**（2026-07 批注）；承担方式仍可在导入模板字段中维护，供下游台账汇总口径使用。
- **提报人、提报时间** 固定于操作列前（右侧固定列）。
- 表头「进修日期」已更名为 **进修/保养日期**。

行操作：编辑、复制、删除（权限与状态约束）、更多（变更日志等）。

表格底部：**新增一行**。

---

## 5. 批量导入

### 5.1 下载模板

- 支持 `.xlsx` / `.xls` / `.csv`
- 「类型」列下方以 **序列** 展示可选值：`1.维修`、`2.保养`
- 填写须与枚举 **完全匹配**，否则导入校验失败

### 5.2 上传与校验

- 上传后系统解析并区分 **可导入** / **失败** 条数
- 预览列表最后一列 **备注**：
  - 通过：显示「可导入」
  - 失败：显示具体原因（如类型不匹配、车牌不在清单等）
- 存在失败记录时可 **下载失败记录** Excel（含原字段 + 备注列）

### 5.3 确认导入

- 仅导入校验通过的行，状态为 **待保存（未保存）**
- 导入后可补传附件，再执行保存与确认提交

---

## 6. 批注变更记录（2026-07）

| 序号 | 变更 | 说明 |
|---|---|---|
| 1 | 承担方式 | 先去除必填星号，后 **从列表移除承担方式列** |
| 2 | 提报人 / 提报时间 | 移至 **操作列前** 两列（右侧固定） |
| 3 | 进修/保养日期 | 列表表头「进修日期」改为 **进修/保养日期** |
| 4 | 批量导入 | 模板类型枚举序列展示；导入结果预览 **备注** 列；失败记录可下载 |

---

## 7. 源码入口

| 文件 | 说明 |
|---|---|
| `index.tsx` | 原型入口，挂载页面与 AnnotationViewer |
| `MaintenanceLedgerPage.jsx` | 筛选、表格、导入导出、附件、状态流转 |
| `annotation-source.json` | 标注目录与 PRD 节点 |
| `styles/index.css` | 页面样式 |
| `globals.ts` | React / antd / dayjs / XLSX 全局注入 |

预览地址：`http://localhost:51722/prototypes/vehicle-maintenance-ledger`
