feat: H5原型设计 spec 审批通过

- docs/superpowers/specs/2026-04-14-smart-project-prototype-design.md
- 设计锁定: 智慧工地风配色/4Tab/10页面/隐患随手拍/施工日志
- 10个页面: login/device list+detail/alert list+detail/report/logs/log write/profile
This commit is contained in:
2026-04-14 12:12:26 +08:00
parent 6c8760c6c5
commit d787a313f3

View File

@@ -0,0 +1,200 @@
---
name: 郑州智慧工地 H5 原型设计
status: approved
date: 2026-04-14
---
# 郑州智慧工地 H5 原型设计
## 审批状态
已批准2026-04-14
---
## 1. 设计风格
**配色风格:智慧工地风**
| 角色 | 色值 | 用途 |
|------|------|------|
| 主色 | `#1e3a5f` | 顶栏、按钮、标题 |
| 辅色 | `#3b82f6` | 链接、次要操作 |
| 警示-Danger | `#f97316` | 危险预警、橙色强调 |
| 警示-Warning | `#eab308` | 警告预警 |
| 背景 | `#f8fafc` | 页面底色 |
| 文字 | `#1f2937` | 正文文字 |
| 卡片背景 | `#ffffff` | 白色卡片 |
**字体**:系统默认无衬线字体,数字用等宽显示
**图标**:阿里巴巴矢量图标库 iconfontCDN
---
## 2. 页面清单
| # | 页面 | 路由 | 说明 |
|---|------|------|------|
| 1 | 登录 | `/login.html` | 账号密码登录 |
| 2 | 首页仪表盘 | `/index.html` | 设备统计 + 预警统计 + 快捷入口 |
| 3 | 设备列表 | `/devices.html` | 卡片网格Tab 切换(全部/塔吊/升降机) |
| 4 | 设备详情 | `/device.html?id=x` | 单台设备实时数据面板 |
| 5 | 预警列表 | `/alerts.html` | 最新优先Tab 切换(全部/危险/警告/已处理) |
| 6 | 预警详情 | `/alert.html?id=x` | 预警详情 + 处理/忽略操作 |
| 7 | 隐患随手拍 | `/report.html` | 拍照上报隐患(完整字段) |
| 8 | 施工日志列表 | `/logs.html` | 日志记录列表 |
| 9 | 施工日志填写 | `/log.html` | 模板化填写 + 拍照附件 |
| 10 | 个人中心 | `/profile.html` | 个人信息 + 退出登录 |
---
## 3. 底部 Tab 栏
4 个 Tab固定在页面底部
```
┌──────┬──────┬──────┬──────┐
│ 首页 │ 设备 │ 随手拍 │ 日志 │
│ 🏠 │ 🏗️ │ 📷 │ 📋 │
└──────┴──────┴──────┴──────┘
```
| Tab | 路由 | 内容 |
|-----|------|------|
| 首页 | `/index.html` | Dashboard设备统计 + 预警统计 + 快捷入口) |
| 设备 | `/devices.html` | 设备列表;点击设备卡片进入设备详情;顶部预警入口进入预警列表 |
| 随手拍 | `/report.html` | 隐患随手拍页面 |
| 日志 | `/logs.html` | 施工日志列表(右上角「写日志」按钮进入填写页);右上角个人图标进入个人中心 |
---
## 4. 隐患随手拍 — 字段设计
用户发现安全隐患后拍照上报,字段如下:
| 字段 | 类型 | 说明 |
|------|------|------|
| 照片 | 必须(多张) | 手机拍照或相册选择 |
| 隐患描述 | 文本框(必填) | 最多 200 字 |
| 隐患类别 | 下拉选择(必填) | 高空坠落 / 物体打击 / 机械伤害 / 触电 / 坍塌 / 火灾 / 其他 |
| 严重程度 | 单选(必填) | 一般 / 较大 / 重大 |
| GPS 位置 | 自动获取 | 经纬度 + 可选地址文字描述 |
| 提交 | 按钮 | 直传 OSS 预签名 URL |
---
## 5. 施工日志 — 字段设计
每日施工日志模板化填写:
| 字段 | 类型 | 说明 |
|------|------|------|
| 日期 | 日期选择 | 默认当天 |
| 施工部位 | 下拉/文本 | 如 "A区地下室" |
| 作业内容 | 多行文本框 | 必填 |
| 人员出勤 | 数字输入 | 当日出勤人数 |
| 设备运行 | 多选项复选框 | 塔吊 / 升降机 / 其他 |
| 安全问题 | 文本框 | 有则填写 |
| 备注 | 文本框 | 可选 |
| 附件 | 拍照(多张) | 支持多张,直传 OSS |
| 提交 | 按钮 | |
---
## 6. Mock 数据规格
原型使用静态 Mock 数据H5 内嵌 JS object不请求真实 API
- 塔吊3 台(设备名称、型号、位置、在线状态)
- 升降机2 台(设备名称、型号、位置、在线状态)
- 预警6 条danger 2 条 + warning 4 条,覆盖已读/未读/已处理状态)
- 隐患随手拍提交成功后展示提交记录列表3 条 mock
- 施工日志:列表展示 5 条 mock 日志记录
---
## 7. 交互细节
### 7.1 登录
- 输入账号 + 密码,点击登录
- Mock任意账号密码均可登录跳转到首页
- 登录成功后 `localStorage.setItem('token', 'mock-token')`
### 7.2 首页仪表盘
- 展示设备统计卡片:塔吊数量/在线数、升降机数量/在线数
- 展示预警统计卡片:今日危险数量、今日警告数量
- 快捷入口:点击"查看全部预警"跳转预警列表
### 7.3 设备列表
- Tab 子导航:全部 / 塔吊 / 升降机
- 卡片网格展示设备,支持按 Tab 筛选
- 卡片显示:设备图标、名称、型号、位置、在线状态(绿色=在线/灰色=离线)
- 点击卡片进入设备详情
### 7.4 设备详情
- 实时数据面板:载重/风速/幅度/高度等(塔吊);载重/速度/楼层/门状态(升降机)
- 展示告警状态(如有)
- 每 30 秒刷新一次Mock setInterval
### 7.5 预警列表
- Tab 子导航:全部 / 危险 / 警告 / 已处理
- 列表项显示:级别图标 + 消息摘要 + 设备名称 + 时间
- 点击进入预警详情
### 7.6 预警详情
- 展示预警完整信息
- 两个操作按钮:确认处理 / 忽略
- 处理成功后更新状态并跳转回列表
### 7.7 隐患随手拍
- 点击相机按钮调起手机相机拍照
- 填写隐患描述、选择类别和严重程度
- 自动获取 GPS 位置
- 点击提交:先调 OSS 预签名 URL图片直传 OSS表单数据 POST 到后台Mock 成功提示)
### 7.8 施工日志列表
- 展示已提交的日志列表,按日期倒序
- 点击「写日志」按钮进入填写页
### 7.9 施工日志填写
- 模板化表单填写
- 支持拍照附件(多张)
- 提交后跳转回列表页
### 7.10 个人中心
- 展示用户名、角色
- 退出登录按钮(清除 localStorage.token跳转登录页
---
## 8. 技术实现
- **纯前端**HTML5 + CSS3 + Vanilla JavaScript无框架依赖
- **图表**EChartsCDN
- **图标**:阿里巴巴 iconfontCDN
- **无构建步骤**:直接打开 HTML 文件即可运行
- **Mock 模式**:所有 API 调用替换为本地 JS mock 数据和 setTimeout 模拟异步
---
## 9. 文件结构
```
h5/
├── index.html # 首页仪表盘
├── login.html # 登录页
├── devices.html # 设备列表
├── device.html # 设备详情
├── alerts.html # 预警列表
├── alert.html # 预警详情
├── report.html # 隐患随手拍
├── logs.html # 施工日志列表
├── log.html # 施工日志填写
├── profile.html # 个人中心
├── css/
│ └── style.css # 全局样式
└── js/
├── api.js # API 基础封装Mock
├── mock.js # Mock 数据
└── app.js # 全局逻辑Tab 栏、登录状态检查)
```