# 车管家洗车 · 原型说明

> 项目：【E2E全流程】202611040252（pc50）
> 阶段：**原型，不含业务代码**。客户确认原型后再进入开发。
> 客户：张老板（车管家洗车 · 3 家门店）

## 怎么打开

推荐在项目根目录起一个静态服务，这样三端数据能在同一个浏览器里串起来：

```bash
cd pc50
python3 -m http.server 8765
```

然后打开：

- 原型总览：`http://127.0.0.1:8765/prototype/index.html`
- H5 顾客端：`http://127.0.0.1:8765/prototype/h5/services.html`
- 微信小程序预览：`http://127.0.0.1:8765/prototype/mp/services.html`
- 门店后台：`http://127.0.0.1:8765/prototype/pc/login.html?next=bookings.html`
- 管理后台：`http://127.0.0.1:8765/prototype/pc/admin-login.html?next=orders.html`

也可以直接双击 `prototype/index.html`（纯静态、零依赖）。用本地服务打开时，H5/小程序/PC 共用同一份 `localStorage` 演示数据，改价、改状态能跨端看到。

## 演示账号

| 端 | 账号 | 密码 / 验证码 |
|---|---|---|
| 门店后台 | `13800000002` | `123456` + 页面右侧随机图形验证码 |
| 管理后台 | `admin` | `admin2026` + 页面右侧随机图形验证码 |
| H5 顾客 | `13900001111` | 验证码固定 `8888` |
| 小程序顾客 | 点「微信手机号快捷登录」 | 演示为 13900001111 / 王女士 |

图形验证码和短信验证码都是本地演示，不会发真实消息。登录连续输错 5 次会锁定 1 分钟。

## 三端与页面

18 个业务 HTML 页面（另有总览 `index.html`）：PC 6、H5 6、小程序 6。页面与功能的逐行对应见 `PAGES.md`，需求覆盖见 `TRACE.md`。

- PC：门店登录、管理员登录、预约名单（详情抽屉 + 状态处理 + 会员信息）、服务项目、服务项目编辑、订单列表（页内导出弹窗）
- H5：服务列表、服务详情、选择时间、登录、预约结果、我的预约
- 小程序：同 H5 的 6 个页面，按微信原生导航 / Tabbar / 胶囊重做，不是把 H5 缩窄

## 数据与交互

- 演示数据在 `prototype/assets/app.js` 里生成，存 `localStorage`：`cg_services_v1`、`cg_bookings_v1`、`cg_user_v1`、`cg_staff_v1`、`cg_admin_v1`。
- 顾客端浏览页免登录；点「提交预约」或「我的预约」才跳登录，`?next=` 回原页并保留已选项目 / 日期 / 时段。
- 门店后台、管理员后台默认登录墙；门店员工数据范围固定金山店，管理员看全部门店订单。
- 导出是浏览器端生成 CSV（UTF-8 带 BOM），内容取当前筛选的全部结果，不受分页影响；无结果不生成文件。
- 预约提醒、微信授权为原型模拟，页面内已明确标注「原型演示，不会真的发送 / 拉起」。

## 验证

```bash
# 页面/令牌/断链/可访问性自检（项目根目录执行）
node tools/design-check.mjs . --strict

# 下面两个是平台工具，需在「全部软件整合平台」根目录执行
node tools/trace.mjs pc50

# 先逛后登合规（需要先起服务）
node tools/audit-guest-first.mjs http://127.0.0.1:8765 \
  /prototype/index.html /prototype/h5/services.html /prototype/h5/service.html \
  /prototype/h5/time.html /prototype/mp/services.html /prototype/mp/service.html /prototype/mp/time.html
```

详细结果与已知边界见 `QA.md`。

## 客户待确认项（正式开发前定）

1. 门店名称：原型用「金山店 / 仓山店 / 台江店」占位，客户未提供真实店名。
2. 营业时段：原型统一 09:00–18:00、整点时段；PRD 列为待确认。
3. 是否做多门店切换：PRD 第一版不做，原型顾客端固定金山店。
4. 导出格式：原型为 CSV；PRD 未定 Excel / CSV。
5. 提醒渠道：原型只做界面与状态，真实微信订阅消息需开发阶段接。
