ONE-OS · 小羚羚小程序

# 交车模块

产品需求文档（PRD）
适用模块：小羚羚 → 业务 → 运维管理 → 交车
文档受众：产品经理、前端/后端开发、测试
参照：web 交车管理抽屉 + Axhub「交车（完成）」原型
文档版本：V1.1 | 更新日期：2026-06-09
默认区域权限：浙江省 · 嘉兴市

## 一、背景与目标

业务背景：运维人员需在交车现场完成车辆核验、检查单填写、照片采集与客户电子签章，形成可追溯的交车记录。小程序端承接「现场办理」场景，与 web 端交车管理数据对齐。

目标 | 说明
--- | ---
现场可办 | 移动端分步引导，降低漏填漏拍；支持断点续办（草稿保存、连拍续拍）
数据对齐 | 检查单类别/项目与 web 交车检查单一致；氢量单位随车型参数自动匹配
合规留痕 | 照片自动上传打水印（时间、地点）；E签宝双签（运维 + 客户被授权人）
状态可追踪 | 未开始 → 已保存 → 待客户签章 → 客户已签章，列表可筛选

## 二、信息架构与入口

图 1 · 模块入口与三步表单结构
开发说明：交车模块内嵌于小羚羚壳（`DeliveryModule`），绿色主题与运维模块统一。表单内返回：先退出办理页 → 再退出交车模块。步骤条可点击切换，但「下一步」须通过当前步骤校验。

## 三、状态机与业务规则

图 2 · 交车状态流转

状态 | 触发条件 | 用户可操作 | 编辑权限
--- | --- | --- | ---
未开始 | 新建任务，未保存过 | 去办理 | 可编辑
已保存 | 点击保存或步骤「下一步」自动保存 | 继续办理 | 可编辑
待客户签章 | 运维完成 E签宝 签字并发送签章文件 | 查看记录；清除签章后重发 | 只读（清除签章后可重选被授权人）
客户已签章 | 被授权人短信完成签章 | 查看、下载 PDF | 只读

## 四、列表页需求

—

### 列表页结构

#### KPI 筛选

- 全部 / 进行中 / 已完成 — 点击切换 Tab
- 进行中 Tab 下额外 Chip：全部状态、未开始、已保存、待客户签章

#### 搜索

支持车牌、项目、客户名称模糊搜索。

#### 卡片字段

- 车牌（未选车显示「车辆待选」）
- 交车状态 Tag、项目、客户、交车区域
- 待客户签章卡片展示实际交车时间
- 进行中展示「去办理 / 继续办理」

界面示意 · 列表页
进行中 3 已完成 全部
浙F88601 待客户签章
嘉兴冷链项目 · 嘉兴物流有限公司
继续办理

## 五、分步表单 · 步骤一「车辆情况」

Hero 区展示客户名称、项目名称、交车区域、计划交车、交车地点、业务类型与状态 Tag。下方分 5 个编号卡片区域：

1

### 选择车辆

必填。两种方式：

- 选择车辆：打开备车列表（仅「已备车」），支持停车场筛选与车牌搜索
- 识别车牌号：OCR 拍照或相册选取后匹配车辆，须满足 车辆状态=已备车、保险状态=正常、证照状态=正常；不满足则报错阻断，提示文案与下方备车列表车辆卡片 readiness 提示条一致（如「交强险已到期无法交车」「商业险已到期无法交车」「交强险、商业险已到期无法交车」「行驶证已到期无法交车」；未备车「该车辆未备车，请先进行备车」）

选车后展示车牌、品牌型号、停车场。

界面示意 · 选车区
1 选择车辆
选择车辆 识别车牌号
浙F88601 · 现代 帕力安牌4.5吨冷链车
2

### 车辆配置

字段 | 必填 | 规则
--- | --- | ---
车身广告及放大字 | 是 | 开关确认有/无；选「有」须拍摄车身广告照片 + 放大字照片
尾板 | 是 | 开关确认有/无
备胎 | 否 | 仅选择有/无；备胎照片在步骤三轮胎连拍末项拍摄

界面示意 · 配置区
2车辆配置
车身广告及放大字 必填 有 ◉ 无 ○
车身广告照片
放大字照片
尾板 必填 有 ○ 无 ◉
备胎：有 ◉ 无 ○
3

### 驾驶培训

必填。两种模式二选一：

- 电子培训：展示培训二维码 → 司机微信扫码观看 → 运维扫描提车码完成
- 手动记录（运维端）：录入司机手机号、姓名、身份证号 + 证件照片（身份证正反面、驾驶证正反面、司机正面照、从业资格证（重卡））→ 点击「生成培训码」（二维码与录入信息绑定）→ 等待司机微信扫码签字 →「刷新培训状态」确认完成

司机完成签字后展示司机信息与证件缩略图，标记「已完成驾驶培训」。

手动记录 · 司机微信端（仅需求说明）：扫码后先阅读并同意安全培训文件（10 秒倒计时后可确定）→ 展示运维登记的司机信息与证件照片 → 点击「确认签字」唤起签名板 → 签字成功后提示培训成功并同步至安全培训记录。

界面示意 · 驾驶培训
3驾驶培训 必填
▣ 电子培训
✎ 手动记录
4

### 交车数据

字段 | 必填 | 规则
--- | --- | ---
里程 (km) | 是 | 2 位小数，无步进器
电量 (%) | 是 | 2 位小数
氢量 | 是 | 2 位小数；单位按车型仪表盘参数自动匹配（%/MPa），不可手动切换
送车服务费 | 否 | 2 位小数，单位元
备注 | 否 | 多行文本

不含交车时间字段（由签章提交时系统写入）。

界面示意 · 交车数据
4交车数据 必填
里程 12500.00
电量 76.00 %
氢量 18.00 %
送车服务费 200.00 元
5

### 交车位置

- 如果车辆 GPS 在线，交车位置取车辆 GPS 当前定位；如果车辆 GPS 离线，交车位置取手机当前定位
- GPS 在线时自动使用车辆坐标，地图蓝点标记
- GPS 离线时须「获取当前定位」（运维手机坐标）；进入步骤时自动尝试一次
- 无坐标时地图显示「暂未定位」提示

步骤一「下一步」校验：非 GPS 车辆须已获取定位。

界面示意 · 交车位置地图
5交车位置
嘉兴港区氢能停车场

## 六、分步表单 · 步骤二「交车检查项」

检查单类别与项目对齐 web 交车管理抽屉「交车检查单」，含：车灯、仪表盘、驾驶室、轮胎、液位检查、外观检查、车辆外观、其他、随车工具、随车证件、整车、燃料电池系统、冷机、制动系统等。

类别 | 控件类型 | 必填规则
--- | --- | ---
轮胎（前左/前右/后左/后右/备胎） | 数字输入框 (mm) | 须填写胎纹深度；车辆配置「无备胎」时跳过备胎行
其余类别 | 开关（正常/异常） | 默认「正常」；可填备注（≤40 字）

步骤二「下一步」校验：所有须填写的轮胎项胎纹深度不可为空。校验通过后自动保存并进入拍摄步骤。

## 七、分步表单 · 步骤三「拍摄照片」

图 3 · 连拍状态机

### 照片分类与连拍顺序

分类 | 拍摄项（按顺序） | 胎纹 OCR
--- | --- | ---
车身情况 | 仪表盘、车辆正面、左前方、左后方、右后方、右前方 | —
底盘情况 | 正前方底部、左侧前方底部、左侧后方底部、右侧后方底部、右侧前方底部 | —
轮胎情况 | 左前轮、左后轮（内/外）、右后轮（内/外）、右前轮、备胎（有备胎时） | 轮胎项须 OCR 胎纹，可编辑；OCR 失败禁止拍下一张
瑕疵情况 | 连拍完成后可补拍多张 | —
其他情况 | 连拍完成后可补拍多张 | —

上传与水印：每次点击「完成」继续时，上一张自动上传并在服务端打水印（拍摄时间 `watermarkTime`、地点 `watermarkAddress`，取自交车位置解析结果）。
相册上传：交车模块内所有拍照环节均支持从手机相册本地上传，包括识别车牌、车辆配置拍照、手动记录证件照、交车连拍/补拍、瑕疵与其他照片、备胎拍摄等；相机页提供「拍照」「相册」按钮。

### 拍照调焦（V1.1）

适用范围：交车模块内所有拍照场景须支持调焦，包括：步骤三连拍相机页、备胎拍摄、车辆配置（车身广告/放大字）、手动记录证件照。

交互 | 说明
--- | ---
拍照 / 相册 | 相机页底部「拍照」调用相机；「相册」从本地上传图片（识别车牌支持底部选择「拍照识别」「相册识别」）
点击取景区域 | 在取景画面上点击任意位置，显示白色对焦框并以其为中心调整预览缩放原点
变焦控制 | 取景区右侧「− / 倍数 / +」按钮，支持 1.0×～3.0× 数码变焦，步进 0.1×
提示文案 | 取景区底部展示「点击画面调焦」；完成拍摄后提示可隐藏
重新拍摄 | 点击「重新拍摄」后保留当前会话，重置对焦点与变焦倍数

图 4 · 连拍相机页支持点击调焦与变焦（原型截图）

## 八、签章与被授权人

6

### 选择被授权人 + 发送签章

- 连拍全部完成后，底部展示「保存」「发送签章文件」
- 被授权人：多卡片展示姓名 + 手机号，选中高亮（参照账号绑定卡片交互）
- 发送前校验：必填照片齐全 + 已选被授权人
- 发送后跳转 E签宝 页完成运维签字 → 状态「待客户签章」
- 待客户签章查看页：「返回」「清除签章」；清除后可重选被授权人并重新发送
- 客户短信签章完成 →「客户已签章」，进入已完成列表，可下载 PDF

界面示意 · 被授权人卡片（参照账号绑定样式）
6选择被授权人
李晓明
138****8001 王芳
139****9002 赵强
137****7003
保存 发送签章文件

## 九、校验规则与拦截逻辑

触发点 | 校验函数 | 校验项 | 失败行为
--- | --- | --- | ---
步骤一「下一步」 | `dvValidateVehicleStep` | 车牌；有广告须拍照；驾驶培训完成；里程/氢量/电量；非 GPS 须定位 | `message.warning`，停留当前步
步骤二「下一步」 | `dvValidateInspectionStep` | 轮胎胎纹深度（无备胎跳过备胎行） | 同上
连拍下一张 | 相机页内校验 | 轮胎项 OCR 须成功（`treadOcrOk`） | 禁止继续
发送签章文件 | `validateDeliveryBeforeSign` | 车牌；里程/氢量/电量；必填照片齐全；被授权人已选 | 拦截并可能跳转照片步
手动记录培训 | `generateDriverTrainingCode` / `refreshDriverTrainingStatus` | 运维录入信息齐全后生成培训码；司机签字后刷新完成 | 拦截

步骤一、步骤二「下一步」校验通过后调用 `persistDeliveryDraft(true)` 静默保存，状态由「未开始」变为「已保存」（若尚未进入签章流程）。

## 十、数据模型与字段速查

### 表单草稿核心字段（formDraft）

字段 | 类型 | 说明
--- | --- | ---
plateNo | string | 交车车牌
rearEquip / hasAd / hasTailgate | object / string | 后装设备配置
adPhotoUploaded / bigWordPhotoUploaded | boolean | 广告/放大字照片
spareTire | '有' | '无' | 是否备胎
driverTrainingDone / driverTraining | boolean / string | 驾驶培训状态
deliveryMileage / deliveryH2 / deliveryElec | number|string | 交车数据
deliveryH2Unit | '%' | 'MPa' | 氢量单位，随车型
deliveryLocation | {lat,lng,address,source} | 交车位置
inspectionList | array | 检查单行 {key,category,item,checked,treadDepth,remark}
deliveryPhotos | object | 照片记录 keyed by photoKey
authorizedPersonId/Name/Phone | string | 被授权人
signSent | boolean | 是否已发送签章
deliveryStatus | enum | 交车状态

## 十一、外部依赖与接口约定

依赖 | 用途 | 原型阶段
--- | --- | ---
车辆 GPS | 在线车辆自动取坐标 | 按备车数据 onlineStatus 模拟
手机定位 | 离线车辆获取当前位置 | 模拟坐标写入 deliveryLocation
OCR 车牌 | 识别车牌匹配车辆 | 演示车牌轮询
OCR 胎纹 | 轮胎/备胎胎纹深度 | 演示读数；空值模拟失败
文件上传 | 照片上传 + 水印 | simulate 上传，写入 watermark 字段
E签宝 | 运维签字 + 客户短信签章 | 内嵌签字页 + 模拟客户签章按钮
微信扫码 | 驾驶培训视频 | 静态培训二维码

## 十二、非功能需求与边界

- 权限：按运维人员区域权限过滤交车任务（默认嘉兴市）
- 只读态：待客户签章、客户已签章进入只读浏览，步骤条可切换查看
- 触控：主要按钮触控区域 ≥ 44px；相机取景区支持点击调焦
- 断点续办：连拍进度持久化在 deliveryPhotos；退出后再进入从下一未拍项续拍
- 不在范围：表单内不展示交车时间输入；不与保单/台账自动同步

## 十三、界面截图（原型）

以下截图为小羚羚交车原型实际界面，与 V1.1 需求一致，供研发与测试对照。

1

### 入口与列表

业务 · 交车入口
交车任务列表
2

### 分步办理

步骤一 · 车辆情况
步骤二 · 交车检查项
步骤三 · 照片分类展示
连拍相机 · 调焦
3

### 签章流程

选择被授权人
待客户签章查看