Files
huachuang/docs/superpowers/plans/2026-08-14-packing-area-dashboard.md
2026-08-18 18:44:13 +08:00

104 lines
4.1 KiB
Markdown
Raw 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.

# 装箱区信息看板实现计划
> **面向 AI 代理的工作者:** 必需子技能:使用 superpowers:subagent-driven-development推荐或 superpowers:executing-plans 逐任务实现此计划。步骤使用复选框(`- [ ]`)语法来跟踪进度。
**目标:** 创建一个包含 66 个点位、CAD 式平面布局和完整 Demo 交互的独立装箱区信息看板 HTML。
**架构:** 使用一个 HTML 文件内嵌样式、确定性模拟数据和交互脚本。数据生成、点位渲染、统计计算、地图变换与用户交互使用独立函数组织,不依赖 API、CDN 或构建工具。
**技术栈:** HTML5、CSS3、原生 JavaScript、浏览器 localStorage 与 Clipboard API。
---
## 文件结构
- 创建:`packingAreaDashboard.html`,承载页面结构、视觉样式、模拟数据、布局渲染和交互。
- 创建:`docs/superpowers/specs/2026-08-14-packing-area-dashboard-design.md`,记录已确认设计。
- 创建:`docs/superpowers/plans/2026-08-14-packing-area-dashboard.md`,记录实现和验证步骤。
### 任务 1建立页面骨架与大屏视觉
**文件:**
- 创建:`packingAreaDashboard.html`
- [ ] **步骤 1建立 1920 × 1080 舞台**
创建 `#stage`、顶部标题、KPI、工具条、地图和侧栏结构并使用 `scaleStage()` 根据窗口尺寸等比缩放。
- [ ] **步骤 2实现深色科技风样式**
使用径向渐变、网格背景、青蓝描边、玻璃面板和细微辉光,避免外部字体与图片依赖。
### 任务 2生成 66 个点位与模拟数据
**文件:**
- 修改:`packingAreaDashboard.html`
- [ ] **步骤 1定义点位编码生成函数**
`rangeCodes(prefix, start, end)` 必须生成补零后的编码;北区 6 个、中区 42 个、南区 18 个。
- [ ] **步骤 2定义确定性模拟数据**
`createMockPoint(code, index, zone)` 根据索引生成稳定的库存状态、卷号、箱号、进入时间和停留时长,刷新页面后数据仍保持一致。
- [ ] **步骤 3渲染点位卡片**
`renderSlot(point, className)` 输出编码、状态、卷号、箱号和停留时长,并附带搜索、选中和右键菜单所需数据属性。
### 任务 3绘制北中南平面布局和 AGV 通道
**文件:**
- 修改:`packingAreaDashboard.html`
- [ ] **步骤 1渲染北区**
使用 6 列网格呈现 `ZJXX_01``ZJXX_06`,在区域上下绘制横向 AGV 通道。
- [ ] **步骤 2渲染中区**
使用 7 行 × 6 列网格呈现 `DJQ_01``DJQ_42`,在两列点位之间插入纵向白色通道,并在区域周边绘制闭合通道。
- [ ] **步骤 3渲染南区**
两行分别呈现 8 个 `ZXQ` 点位,在右侧呈现 `ZXDJW_01``ZXDJW_02`,使用不同区域标签区分装箱区 1 和装箱区 2。
### 任务 4实现统计与交互
**文件:**
- 修改:`packingAreaDashboard.html`
- [ ] **步骤 1计算 KPI 和队列**
`updateDashboard()` 根据点位状态和超时阈值刷新总数、占用、空闲、超时、占用率及装箱队列。
- [ ] **步骤 2实现卷号搜索定位**
`locateRoll()` 匹配完整或部分卷号,选中第一个结果,将地图平移到点位附近并显示结果提示。
- [ ] **步骤 3实现地图操作**
`fitMap()``applyTransform()`、滚轮事件和拖动事件共同支持适配、缩放、平移与双击复位。
- [ ] **步骤 4实现点位详情与右键复制**
点位单击后调用 `selectPoint()` 更新详情;右键菜单根据字段是否存在启用复制按钮,并使用 Clipboard API 或文本选择回退方案复制。
### 任务 5执行交付验证
**文件:**
- 验证:`packingAreaDashboard.html`
- [ ] **步骤 1执行静态结构检查**
确认文件包含 66 个点位的生成规则、无 `fetch()` 和外部资源引用,并检查脚本语法。
- [ ] **步骤 2执行浏览器视觉检查**
以 1920 × 1080 视口打开本地文件确认三大区域、KPI、侧栏和点位内容没有遮挡或主体溢出。
- [ ] **步骤 3执行交互检查**
验证卷号搜索、点位选择、缩放、复位和右键菜单,确认浏览器控制台无错误。