Files
OneOS1.2/docs/superpowers/specs/2026-07-22-vehicle-purchase-inspection-linear-ui-design.md

179 lines
7.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 车辆采购合同 + 验车入库 · UI 对齐 Linear产品浅色设计规格
**日期:** 2026-07-22
**状态:** 规格已确认 · UI 已按本规格落地2026-07-22
**范围决议:** 全链路PC 两端 + 外勤三端)· 一波交付 · 列表壳 vm-page · 设计基底 Linear 产品浅色
---
## 1. 背景与目标
现有 `vehicle-purchase-contract``vehicle-inspection` 及根下迁入的外勤三端(`vehicle-inspection-{web,miniprogram,app}`)功能已通,但视觉与交互未对齐项目标准主题与列表壳规范:硬编码 Ant Design `#10b981`、自定义 `vpc-`/`vi-` 页头与筛选条、与车辆管理 / 保险采购等业务页不一致。
**目标:** 在**不改业务规则**的前提下,按 Linear 产品浅色 token + vm-page 壳层,一波重做 PC 列表/表单/详情与外勤三端视觉与布局,使采购→验车→外勤→入库链路观感统一、可验收。
**非目标:** 不改审批阈值、VIN 校验、拒收重交、入库桥、分期付款逻辑;不上 Linear 营销深色 + 薰衣草主色;不单独进导航的外勤页仍从验车详情链出。
---
## 2. 设计事实源(优先级)
| 优先级 | 来源 | 用途 |
|--------|------|------|
| 1 | `src/themes/linear/DESIGN.md` | 品牌与组件原则事实源(标准参考主题) |
| 2 | `src/prototypes/vehicle-management/style.css``--ln-*` / `--vm-*` | **产品浅色落地**inverse 白底 + 主色 `#32a06e` |
| 3 | `src/prototypes/vm-shared/DESIGN.md` | 列表壳结构:筛选卡、工具栏、分页、禁止重复大标题等 |
| 4 | 既有参考页 | 保险采购 / 租赁合同列表与详情分区习惯 |
**明确采用的 Linear 落地方式(已确认):**
选项 1 — Linear 产品浅色,与车辆管理一致;**不**采用官网深色 `#010102` + `#5e6ad2`
**ConfigProvider** `colorPrimary: '#32a06e'`(或读 CSS 变量等价),字体栈对齐 `--vm-font`Inter + 系统/苹方)。
---
## 3. 信息架构与页面结构
### 3.1 车辆采购合同(`vehicle-purchase-contract`
**列表(默认)**
```text
vm-page vpc-page
├── 筛选卡(「筛选条件」):关键词、状态、审批类型;查询 / 重置
├── KPI 行(可选可点筛选):草稿 / 待审或审批中 / 已通过 / 已生成验车
└── vm-table-section
├── 工具栏右对齐:新建合同
├── 表格 + OperationActions查看 / 编辑 / 提交审批 / 发起工单等既有动作)
└── TablePagination
```
- 列表页**禁止**独立 h1 大标题 + 功能说明副标题(侧栏已标明模块名)。
- 金额、数量列使用 `tabular-nums` / `ln-numeric` 既有约定。
**创建 / 编辑 / 查看**
```text
顶栏:返回列表 + 标题(新建/编辑/查看 + 合同编号)+ 主操作(保存草稿 / 提交 / 关闭)
主体白底分区hairline + radius-card
1. 合同主体(买/卖/丙方与角色)
2. 车型与价格(型号编码、产地、单价数量、实时总价与审批类型提示条)
3. 分期付款计划
4. 交付与验车约定
5. 质保 / 关联协议 / 附件
```
- ≥500 万自动「非正常审批」提示条保留,样式用 `--ln-primary-soft` / success 语义,不用另套色板。
- 查看态只读;草稿可编辑;状态驱动操作按钮与现逻辑一致。
### 3.2 验车入库(`vehicle-inspection`
**列表**
```text
vm-page vi-page
├── 筛选卡:关键词、任务状态;查询 / 重置
├── KPI待验车 / 验车中 / 已完成
└── 表格 + 操作(进入详情 / 结案等)+ TablePagination
```
**详情**
```text
顶栏:返回 + 任务编号/车型摘要 + 结案、入库等主操作
├── 任务摘要Descriptions / 分区字段,对齐交接验收表语境)
├── 外勤入口Web / 小程序 / APP点击绑定 activeInspectionId 并打开 /prototypes/.../index.html
└── 车辆明细表VIN、里程、电机号、状态、拒收原因、重交操作
```
### 3.3 外勤三端(同波)
| 原型路径 | 壳 |
|----------|-----|
| `src/prototypes/vehicle-inspection-web/` | Web 外勤 |
| `src/prototypes/vehicle-inspection-miniprogram/` | 小程序壳 |
| `src/prototypes/vehicle-inspection-app/` | APP 壳 |
- 视觉Linear 浅色语义(主色绿、白/浅灰 canvas、hairline 卡片);字号 ≥16px触控目标 ≥44px`cursor-pointer`;尊重 `prefers-reduced-motion`
- 逻辑:继续共用 `field-core.js`;《车辆交接验收表》图例 √/N/×/O、双签、双角度照片、拒收重交**行为不变**。
- 三端仅外框/底栏差异,表单与列表结构对齐,避免三套互不相干的样式常量。
---
## 4. 视觉与组件规则(摘要)
| 项 | 约定 |
|----|------|
| 主色 | `#32a06e``--ln-primary` |
| 画布 | `--ln-canvas-parchment` / `--vm-bg` |
| 卡片面 | `--ln-surface-card` + `--ln-hairline` + radius 8/12 |
| 正文/次要 | `--ln-ink` / `--ln-muted` |
| 成功/警告/错误 | `--ln-success` / `--ln-warning` / `--ln-error` |
| 焦点 | 控件边框改主色vm-focus-border 模式),避免装饰性外发光 |
| 图标 | Lucide/SVG不用 emoji 作图标 |
| 列表操作列 | `OperationActions` + 既有 `vm-operation-actions` |
---
## 5. 业务规则(本轮冻结,仅 UI
以下保持现有实现与 `.spec` 文档,**本轮不改判定**
- 合同金额 ≥ 500 万 → 非正常审批,否则正常
- 1 合同 → 1 验车任务;明细按到车追加
- VIN 17 位;交接验收表通过条件;拒收 → 重交 → 重验
- localStorage 桥:`oneos.vp.*`(含 `activeInspectionId`
若 UI 改动导致文案/验收描述变化,**同轮**按 oneos-autoprd 与业务逻辑文档化规则更新 PRD / annotation纯样式可跳过全量重写分区标题、状态文案有语义变化则更新
---
## 6. 文件与依赖(实现边界)
**预期修改**
- `src/prototypes/vehicle-purchase-contract/VehiclePurchaseContractApp.tsx` + `styles/index.css`(收敛到 vm-/ln- 类,去掉重复页头)
- `src/prototypes/vehicle-inspection/VehicleInspectionApp.tsx` + `styles/index.css`
- 外勤三端 `index.html` / 内联或共享样式(可抽公共 CSS 片段到三端复制或单文件引用,以静态可访问为准)
- 可选:各原型补 `DESIGN.md` 一页,声明「基底 = linear 产品浅色 + vm-shared」
**预期不改(除非发现硬编码色破坏一致性)**
- `src/common/vehicle-purchase/*` 业务逻辑
- 审批 mock、工单预填、入库桥算法
**依赖:** 继续 `import '../vehicle-management/style.css'``TablePagination``OperationActions``PrototypeAnnotationHost`
---
## 7. 验收要点
1. 两列表页:无重复大标题;筛选卡 +KPI + 底部分页;主色为 `#32a06e`
2. 合同表单/详情:分区清晰;审批提示条可见且色板正确。
3. 验车详情:外勤三按钮可打开 `/prototypes/vehicle-inspection-*/index.html` 且绑定当前任务。
4. 外勤三端:交接验收表可填报;与 PC 同域 localStorage 互通。
5. 对照车辆管理列表:间距、圆角、边框、字体观感一致(允许业务字段不同)。
6. 对比度正文 ≥ 4.5:1可点击元素有 pointer外勤触控区达标。
---
## 8. 决议记录
| 项 | 选择 |
|----|------|
| 优化深度 | C 全链路(含外勤) |
| 排期 | 一波做完 |
| PC 路线 | A 严格对齐 vm-page |
| Linear 落地 | 1 产品浅色(`--ln-*` / `#32a06e` |
| 产品确认草案 | 2026-07-22 认可 |
---
## 9. 自我检查(写规格时)
- [x] 无 TBD 占位关键路径
- [x] 未混用深色薰衣草与浅色绿主色
- [x] 业务规则与 UI 边界写清
- [x] 外勤 URL 与同波交付写清
- [x] 与用户确认的 C / 一波 / A / Linear-1 一致