# 02-程序开发步骤

更新时间：2026-06-24  
适用项目：`D:\5ITlearning\DT_TV\QingAnVue2TV`

## 1. 开发原则

1. 保持 Vue2 + Vue CLI 技术栈，不引入新框架。
2. 大屏以 1920x1080 固定画布开发，通过缩放适配窗口。
3. 优先复用老项目已有视觉资源，例如 `public/png/top1.png`、左右标题条、背景底图、边框条。
4. 中央三维模型以 iframe 为核心画面，周边面板服务于模型，不抢主视觉。
5. 每轮改动后必须至少执行一次构建验证；涉及布局时补充截图验收。
6. 不提交用户未确认的无关删除或配置变更。

## 2. 阶段划分

| 阶段 | 目标 | 主要工作 | 产出 |
|---|---|---|---|
| P0 | 备份与清理准备 | git 建仓/远程备份、识别核心页面、确认可删资产 | 可回滚提交点 |
| P1 | 遗留资源清理 | 删除 DMT/DMT_WEB 和未引用 src 内容，精简依赖 | 干净项目骨架 |
| P2 | 需求梳理 | 阅读设计说明、拆模块、建立任务矩阵 | `01-06` 管理文档 |
| P3 | 页面结构搭建 | 用老看板壳子承载新看板内容 | `DaLuJiaTV1.vue` 主布局 |
| P4 | 模块实现 | 实现线体、设备、库位、报警、日志模块 | 可运行的静态/模拟数据页面 |
| P5 | 数据接入 | 将模拟数组替换为接口/通讯变量数据 | 数据映射层、刷新逻辑 |
| P6 | 交互联动 | 单元高亮、设备详情、报警定位、任务追踪 | 可交互看板 |
| P7 | 视觉与适配 | 1920x1080、1600x900 等视口检查 | 截图和问题清单 |
| P8 | 验收与交付 | 构建、截图、台账、决策记录补齐 | 可交付版本 |

## 3. 推荐开发顺序

### 3.1 基础检查

```powershell
git -c safe.directory=D:/5ITlearning/DT_TV/QingAnVue2TV -C D:\5ITlearning\DT_TV\QingAnVue2TV status --short
npm run build
```

检查项：

- `src/views/DaLuJiaTV1.vue` 是否为主页面。
- `src/router/index.js` 是否仍指向 `DaLuJiaTV1`。
- `public/config.js` 中 `iframeAddress` 是否为期望模型地址。
- 是否存在用户未处理的工作区变更。

### 3.2 页面骨架

1. 保留顶部标题与时间。
2. 左侧使用 `线体联动监控`，将线体状态、任务流向、反馈流程合并为单元卡片。
3. 中央使用 iframe，保持纯净画面。
4. 右侧放 `加工设备状态` 与 `辅助设备状态`，标题右对齐。
5. 底部放 `物料库位矩阵`、`报警与异常事件`、`任务日志`。

### 3.3 数据结构

推荐在 `data()` 中按模块建立数组：

| 数据对象 | 用途 |
|---|---|
| `lineMonitorRows` | 左侧线体联动监控，一条数据代表一个单元 |
| `equipmentList` | 加工设备状态列表 |
| `assistList` | 辅助设备状态卡片 |
| `storageGroups` | 物料库位矩阵 |
| `alarmEvents` | 报警与异常事件 |
| `taskLogs` | 任务日志 |

后续真实数据接入时，建议新增转换函数，不直接把接口结构写进模板。

### 3.4 样式实现

1. 使用固定画布：`width: 1920px; height: 1080px`。
2. 使用 `setScale()` 按窗口缩放。
3. 固定面板尺寸，避免动态内容撑乱布局。
4. 所有列表行使用固定列宽、`minmax(0, 1fr)` 和 `text-overflow`。
5. 库位格子使用固定 `grid-auto-rows`，确保 3x3 完整显示。

### 3.5 验证流程

每轮完成后执行：

```powershell
npm run build
```

如涉及布局，启动或复用本地服务：

```powershell
npm run serve
```

浏览器检查：

- `http://127.0.0.1:8084/`
- 1920x1080 或等比例视口。
- 重点检查文字重叠、滚动条、格子缺失、右侧状态挤压、iframe 是否被遮挡。

## 4. 代码落点

| 文件 | 用途 |
|---|---|
| `src/views/DaLuJiaTV1.vue` | 新项目主看板页面 |
| `src/views/DaLuJiaTV2.vue` | 老页面/参考页，非当前主改动对象 |
| `src/router/index.js` | 路由入口 |
| `public/config.js` | iframe 地址和服务地址配置 |
| `public/png/` | 老项目视觉素材 |
| `work/working1/` | 需求、推进、验收和决策文档 |

## 5. 提交建议

每个阶段建议单独提交：

1. `docs: add dashboard working documents`
2. `feat: implement signal dashboard layout`
3. `fix: refine dashboard panel layout`
4. `chore: prune unused legacy dashboard assets`

提交前不要把以下内容误带入，除非用户明确确认：

- 用户手动删除的压缩包或旧文档。
- 临时截图。
- 本地日志文件。
- 未确认的 `public/config.js` 改动。
