Add all dashboard projects

This commit is contained in:
meswork764
2026-05-23 14:07:11 +08:00
commit ba82fbfc14
3550 changed files with 467904 additions and 0 deletions

View File

@@ -0,0 +1,536 @@
# 机加设备生产运营看板(二)实施文档
---
## 一、业务背景与目标
### 1.1 业务描述
本看板用于**机械加工车间**的生产运营实时监控,面向车间管理人员和调度人员,提供机加设备相关的在制任务、加急任务、关键工序和人员出勤等核心运营数据的可视化展示。
**业务痛点:**
- 车间管理人员无法实时掌握在制任务的整体进度
- 加急订单的优先级无法直观呈现,导致交期延误风险
- 关键工序的瓶颈难以快速识别
- 缺勤人员信息不透明,影响排产调度
**看板目标:**
- 一屏展示机加车间当日生产运营全貌
- 实时刷新任务进度数据
- 大屏自适应展示,适配 1920×1080 至各种分辨率
### 1.2 看板布局
```
┌──────────────────────────────────────────────────────┐
│ LOGO 机加设备生产运营看板(二) 时钟 │ ← 页头 Header
├──────────┬──────────┬──────────┬──────────────────────┤
│ 在制任务 │ 加急任务 │ 关键工序 │ 缺勤人员 │ ← 汇总卡片行
│ 汇总 84单 │ 汇总 26单 │ 任务 14单 │ 4人姓名+工位) │
├──────────┴──────────┴──────────┴──────────────────────┤
│ │
│ 在制任务明细(进度百分比) │ ← 左侧大表
│ 生产订单│销售订单│物料名称│物料编码│工序│分配数│完成数│进度% │
│ │
├──────────────────────────┬───────────────────────────┤
│ 加急任务列表 │ 关键工序任务明细 │ ← 右上两表
│ 订单│合同│物料│编码│工序 │ 订单│合同│物料│编码│工序 │
│ 分配数│加急数│指派对象 │ 分配数│加急数│指派对象 │
├──────────────────────────┼───────────────────────────┤
│ 正在开工任务 │ 报工运行(新增) │ ← 右下两表
│ 订单│合同│物料│编码│工序 │ 设备│状态│运行时长│报工数 │
│ 分配数 │ 运行/待机/停机 仪表盘 │
└──────────────────────────┴───────────────────────────┘
```
---
## 二、技术方案
### 2.1 技术栈选型
| 层级 | 技术 | 版本 | 用途 |
|------|------|------|------|
| 前端框架 | Vue 3 (Composition API) | ^3.5.12 | 核心框架,`<script setup>` 语法 |
| 构建工具 | Vite | ^5.4.10 | 开发/构建 |
| 路由 | Vue Router | ^4.4.5 | Hash 模式路由 |
| 状态管理 | Pinia | ^2.2.5 | 全局状态(用户信息/加载态) |
| UI 组件库 | Element Plus + TDesign + DataV-Vue3 | - | 消息提示 + 加载组件 + 大屏滚动表 |
| 图表 | ECharts | ^6.0.0 | 备用图表能力 |
| HTTP 客户端 | Axios | ^1.7.7 | 后端接口调用 |
| Cookie | js-cookie | ^3.0.5 | 用户身份读取 |
| CSS 预处理 | SCSS/Sass | ^1.80.5 | 样式编写 |
### 2.2 整体架构
```
┌──────────────────────────────────────────────────────┐
│ 浏览器 (Browser) │
│ ┌────────────────────────────────────────────────┐ │
│ │ Vue 3 SPA (单页应用) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │ │
│ │ │ 路由层 │ │ 状态层 │ │ 视图层 │ │ │
│ │ │ Router │ │ Pinia │ │ index.vue │ │ │
│ │ │ / → │ │ AppData │ │ (大屏看板) │ │ │
│ │ │ index │ │ │ │ │ │ │
│ │ └──────────┘ └──────────┘ └──────┬───────┘ │ │
│ │ │ │ │
│ │ ┌──────────────────────────────────┐│ │ │
│ │ │ 工具层 (Plugins) ││ │ │
│ │ │ CreateData() → 构造请求参数 ││ │ │
│ │ │ ExecDatabase() → 执行数据库查询 ││ │ │
│ │ │ request.js → Axios 封装 ││ │ │
│ │ └──────────────────┬───────────────┘│ │ │
│ └─────────────────────┼─────────────────┘ │ │
└────────────────────────┼─────────────────────────────┘
│ HTTP POST
┌──────────────────────────────────────────────────────┐
│ 中间层 (MESCommonBase.ashx) │
│ 接收 JSON → 解析 type/name/param → 调用存储过程 │
│ 返回 JSON: { data: [...] } 或 { data: { result: [...] } } │
└────────────────────┬─────────────────────────────────┘
┌──────────────────────────────────────────────────────┐
│ 数据库 (SQL Server) │
│ 存储过程: │
│ - 机加设备生产运营看板_加急任务查询 │
│ - 机加设备生产运营看板_机加在制查询 │
│ - 机加设备生产运营看板_机加在制查询2 │
│ - 机加设备生产运营看板_报工运行查询 (新增) │
│ 涉及表: 生产订单表 / 工序表 / 人员表 / 设备表 / 报工表... │
└──────────────────────────────────────────────────────┘
```
### 2.3 API 通信协议
请求格式type=11 表示调用存储过程):
```json
{
"type": "11",
"name": "存储过程名称",
"param": "[]",
"pageSize": null,
"pageList": null,
"UserID": "username_from_cookie",
"ModularID": ""
}
```
响应格式(两种可能结构):
```json
// 格式A
{ "data": [ { "字段1": "值1", "字段2": "值2" } ] }
// 格式B
{ "data": { "result": [ { "字段1": "值1", "字段2": "值2" } ] } }
```
---
## 三、技术路线(开发阶段)
| 阶段 | 内容 | 预计工时 | 产出 |
|------|------|----------|------|
| **阶段1基础设施** | 项目初始化、依赖安装、路由/状态管理配置、API 层搭建 | 0.5天 | 项目可启动 |
| **阶段2数据库层** | 确认表结构、编写3个核心存储过程(SP1-3)、报工运行SP4、接口联调 | 1天 | 4个SP可返回数据 |
| **阶段3页面开发** | 看板布局、汇总卡片、4个数据表格组件、报工运行面板开发 | 1.5天 | 页面渲染完成 |
| **阶段4数据对接** | 前后端联调、真实数据替换 Mock 数据、异常处理 | 1天 | 真实数据展示 |
| **阶段5样式与优化** | 样式布局调整、大屏缩放适配、定时刷新、性能优化 | 0.5天 | 多分辨率适配 |
| **阶段6测试与部署** | 功能测试、兼容性测试、生产打包部署 | 0.5天 | 上线运行 |
---
## 四、需要完成的具体模块
### 4.1 模块总览
```
机加设备生产运营看板(二)
├── M1: 页面框架模块
│ ├── 页头Logo + 标题 + 实时时钟)
│ ├── 自适应缩放引擎
│ └── 全局加载态
├── M2: 汇总卡片模块
│ ├── 在制任务汇总卡片
│ ├── 加急任务汇总卡片
│ ├── 关键工序任务汇总卡片
│ └── 缺勤人员卡片
├── M3: 在制任务明细模块(大表)
│ └── dv-scroll-board 滚动表格 + 进度条
├── M4: 加急任务列表模块
│ └── dv-scroll-board 滚动表格
├── M5: 关键工序任务明细模块
│ └── dv-scroll-board 滚动表格
├── M6: 正在开工任务模块
│ └── dv-scroll-board 滚动表格
├── M7: 数据服务模块
│ ├── API 请求封装
│ ├── 参数构造CreateData
│ ├── 响应解析getResponseRows
│ └── 数据映射applyUrgentData / applyInProcessData / applyInProcessData2
└── M8: 报工运行模块(新增)
├── 设备运行状态总览(运行/待机/停机数量统计)
├── 设备报工明细列表dv-scroll-board 或 ECharts 仪表盘)
└── 数据存储过程 SP4
```
### 4.2 各模块详细说明
#### M1: 页面框架模块
| 属性 | 说明 |
|------|------|
| 文件 | `src/views/index.vue` `<template>` 头部区域 |
| 功能 | 品牌 Logo 展示、看板标题、实时数字时钟(秒级刷新) |
| 关键逻辑 | `refreshClock()` 每秒更新 `currentTime` ref |
| 自适应 | `setScale()` 通过 CSS transform 等比缩放,基于 1920×1080 设计稿 |
#### M2: 汇总卡片模块
| 卡片 | 数据字段 | 数据来源 | 图标 | 颜色 |
|------|----------|----------|------|------|
| 在制任务汇总 | `summaryCards[0].value` | SP3 首行 `总数` | 剪贴板 | 绿色 #28d961 |
| 加急任务汇总 | `summaryCards[1].value` | SP1 首行 `加急订单总数` | 火箭 | 蓝色 #09a8ff |
| 关键工序任务 | `summaryCards[2].value` | 静态/待对接 | 盾牌 | 紫色 #7459ef |
| 缺勤人员 | `summaryCards[3].value` + `people[]` | 数据接口对接中 | 用户 | 橙色 #ff951c |
#### M3: 在制任务明细模块(核心大表)
| 属性 | 说明 |
|------|------|
| 展示形式 | DataV `dv-scroll-board` 滚动表格12行可见单页轮播 |
| 列定义 | 生产订单、销售订单、物料名称、物料编码、工序名称、分配数量、完成数量、进度百分比% |
| 列宽 | [126, 130, 116, 136, 88, 80, 80, 158] |
| 进度列 | 自定义 HTML 渲染:进度条 + 百分比数字 |
| 最小行数 | 18行不足自动扩展填充 |
| 数据源 | SP3 `机加设备生产运营看板_机加在制查询2` |
#### M4: 加急任务列表模块
| 属性 | 说明 |
|------|------|
| 展示形式 | DataV `dv-scroll-board`8行可见 |
| 列定义 | 生产订单、销售订单、物料名称、物料编码、工序名称、分配数量、加急数量、指派对象 |
| 列宽 | [122, 132, 132, 152, 92, 82, 92, 82, 94] |
| 最小行数 | 12行 |
| 数据源 | SP1 `机加设备生产运营看板_加急任务查询` |
#### M5: 关键工序任务明细模块
| 属性 | 说明 |
|------|------|
| 展示形式 | 同 M4共用 `makeTaskBoard` 函数) |
| 数据源 | **待对接**(当前为静态 Mock 数据) |
#### M6: 正在开工任务模块
| 属性 | 说明 |
|------|------|
| 展示形式 | DataV `dv-scroll-board`8行可见 |
| 列定义 | 生产订单、销售订单、物料名称、物料编码、工序名称、分配数量 |
| 列宽 | [160, 170, 140, 176, 140, 128] |
| 最小行数 | 12行 |
| 数据源 | SP2 `机加设备生产运营看板_机加在制查询` |
#### M7: 数据服务模块
| 组件 | 文件 | 说明 |
|------|------|------|
| CreateData() | `src/utils/curdVue3.js` | 构造 MES API 标准请求体 JSON |
| ExecDatabase() | `src/utils/curdVue3.js` | 发送 POST 请求URL 为空,使用 baseURL |
| request.js | `src/utils/request.js` | Axios 实例封装baseURL = `window.g.API_WEB_URL + '/submit/MESCommonBase.ashx'` |
| getResponseRows() | `src/views/index.vue` | 解析两种响应格式,提取数据行数组 |
| queryDashboardData() | `src/views/index.vue` | 统一查询入口:构造参数 → 请求 → 解析 → 应用数据 |
#### M8: 报工运行模块(新增)
| 属性 | 说明 |
|------|------|
| 展示形式 | ① 顶部状态统计行(运行中 / 待机 / 停机 数量)② ECharts 仪表盘 或 DataV 滚动表格展示设备明细 |
| 列定义(表格方案) | 设备编号、设备名称、运行状态(带颜色标识)、当日运行时长(h)、当日报工数量、最近报工时间 |
| 数据源 | SP4 `机加设备生产运营看板_报工运行查询` |
| 布局位置 | 右侧下方区域(可替换/合并原关键工序或缺勤人员区域) |
| 刷新 | 随页面加载调用,后续可扩展定时刷新 |
---
## 五、模块功能流程图
### 5.1 页面加载数据流程
```mermaid
flowchart TD
A["页面 onMounted"] --> B["refreshClock() 启动时钟"]
A --> C["setScale() 计算缩放比例"]
A --> D["searchDashboardData() 请求数据"]
D --> E["searchUrgentData()"]
D --> F["searchInProcessData()"]
D --> G["searchInProcessData2()"]
E --> E1["queryDashboardData('机加设备生产运营看板_加急任务查询', applyUrgentData)"]
F --> F1["queryDashboardData('机加设备生产运营看板_机加在制查询', applyInProcessData)"]
G --> G1["queryDashboardData('机加设备生产运营看板_机加在制查询2', applyInProcessData2)"]
E1 --> H["CreateData('11', procedureName, [])"]
H --> I["构造 JSON 请求体: type=11, name=SP名, param=[]"]
I --> J["ExecDatabase(JSON) → Axios POST"]
J --> K["MESCommonBase.ashx"]
K --> L["SQL Server 执行存储过程"]
L --> M["返回 JSON 响应"]
M --> N["getResponseRows(response)"]
N --> N1{响应结构判断}
N1 -->|"response.data 是数组"| N2["返回 response.data"]
N1 -->|"response.data.result 是数组"| N3["返回 response.data.result"]
N1 -->|"都不是"| N4["返回 []"]
N2 --> O["applyXxxData(rows) 数据映射"]
N3 --> O
O --> P["更新响应式数据,页面自动渲染"]
```
### 5.2 API 请求构造流程
```mermaid
flowchart LR
A["调用方传入 type=11, name, data=[]"] --> B["CreateData(type, name, data)"]
B --> C{type === '7' ?}
C -->|"是(批量保存)"| D["遍历 data 按 pageSize 格式化"]
C -->|"否(查询)"| E["遍历 data 构造参数数组"]
D --> F["param_Str = data(原样)"]
E --> G["param_Str = JSON.stringify(param_array)"]
F --> H["构造请求对象 obj"]
G --> H
H --> I["obj = { type, name, param, pageSize, pageList, UserID, ModularID }"]
I --> J["JSON.stringify(obj) 返回字符串"]
J --> K["ExecDatabase(jsonStr)"]
K --> L["axios.post(baseURL + '', jsonStr)"]
```
### 5.3 数据映射流程(以加急任务为例)
```mermaid
flowchart TD
A["SP返回原始行数据"] --> B["rows = [{ 订单编号, 合同号, 物料描述, 物料编号, 计划数量, 加急数量, 工序名称, 指派对象, 加急订单总数 }]"]
B --> C["applyUrgentData(rows)"]
C --> D["first = rows[0]"]
D --> E{"first.加急订单总数 !== undefined ?"}
E -->|是| F["summaryCards[1].value = first.加急订单总数"]
E -->|否| G["保持原值不变"]
F --> H["urgentRows.value = rows.map(row => 字段映射)"]
G --> H
H --> I["映射规则:
订单编号 → productionOrder
合同号 → salesOrder
物料描述 → materialName
物料编号 → materialCode
计划数量 → assignQty
加急数量 → urgentQty
工序名称 → processName
指派对象 → assignee
prevPassQty → ''(空)"]
I --> J["urgentBoardConfig(computed) 自动响应更新"]
J --> K["dv-scroll-board 重新渲染"]
```
### 5.4 自适应缩放流程
```mermaid
flowchart TD
A["页面加载 / 窗口 resize"] --> B["setScale()"]
B --> C["getScale()"]
C --> D["x = window.innerWidth / 1920"]
C --> E["y = window.innerHeight / 1080"]
D --> F["style.transform = scaleY(y) scaleX(x) translate(-50%, -50%)"]
E --> F
F --> G["页面等比缩放填满屏幕"]
```
---
## 六、涉及的数据库表与存储过程
### 6.1 存储过程清单
#### SP1: `机加设备生产运营看板_加急任务查询`
| 属性 | 说明 |
|------|------|
| 用途 | 查询当日加急/紧急生产任务 |
| 调用方式 | type=11, 无参数 |
| 返回字段 | `订单编号`, `合同号`, `物料描述`, `物料编号`, `计划数量`, `加急数量`, `工序名称`, `指派对象`, `加急订单总数` |
| 备注 | 首行 `加急订单总数` 用于更新汇总卡片值 |
#### SP2: `机加设备生产运营看板_机加在制查询`
| 属性 | 说明 |
|------|------|
| 用途 | 查询当前正在开工的生产任务 |
| 调用方式 | type=11, 无参数 |
| 返回字段 | `订单号`, `合同号`, `零件名称`, `零件编码`, `分配数`, `工序名称`, `指派对象` |
| 备注 | 用于"正在开工任务"表格 |
#### SP3: `机加设备生产运营看板_机加在制查询2`
| 属性 | 说明 |
|------|------|
| 用途 | 查询在制任务明细(含完成数量和进度) |
| 调用方式 | type=11, 无参数 |
| 返回字段 | `订单号`, `合同号`, `零件名称`, `零件编码`, `分配数`, `工序名称`, `指派对象`, `完成数量`, `总数` |
| 备注 | 首行 `总数` 更新在制汇总卡片;每行计算 `progress = (完成数量/分配数)*100` |
#### SP4: `机加设备生产运营看板_报工运行查询`(待开发)
| 属性 | 说明 |
|------|------|
| 用途 | 查询各设备当日运行状态和报工数据 |
| 调用方式 | type=11, 无参数 |
| 返回字段 | `设备编号`, `设备名称`, `运行状态`, `当日运行时长(h)`, `当日报工数量`, `最近报工时间` |
| 备注 | 用于新增"报工运行"面板 |
### 6.2 推断涉及的数据库表
基于存储过程返回字段和业务逻辑,推断涉及以下核心表:
| 表名(推测) | 字段 | 用途 |
|------|------|------|
| `ProductionOrder` (生产订单表) | 订单编号, 合同号, 计划数量, 加急标识 | 生产任务主表 |
| `Material` (物料表) | 物料编号, 物料描述/零件名称, 零件编码 | 物料/零件信息 |
| `ProcessRouting` (工序工艺表) | 工序名称, 工序类型, 是否关键工序 | 工序定义 |
| `WorkOrderOperation` (工单工序表) | 订单号, 工序名称, 分配数, 完成数量, 指派对象 | 工单执行明细 |
| `Personnel` (人员表) | 姓名, 工位, 出勤状态 | 人员信息 |
| `AttendanceRecord` (考勤记录表) | 人员ID, 日期, 出勤状态 | 考勤记录 |
| `Equipment` (设备表) | 设备编号, 设备名称, 设备类型, 所属工位 | 设备主数据(报工运行用) |
| `EquipmentRuntime` (设备运行记录表) | 设备ID, 运行状态(运行/待机/停机), 开始时间, 结束时间 | 设备运行日志(报工运行用) |
| `WorkReportRecord` (报工记录表) | 设备ID/工单ID, 报工数量, 报工时间, 操作员 | 报工数据(报工运行用) |
> **注意**: 以上表名为业务推断,需与数据库实际结构核对确认。
### 6.3 存储过程实现建议模板
```sql
-- 示例机加设备生产运营看板_加急任务查询
CREATE PROCEDURE [dbo].[_加急任务查询]
AS
BEGIN
SET NOCOUNT ON;
-- 加急订单总数
SELECT COUNT(DISTINCT PO.OrderID) AS
FROM ProductionOrder PO
WHERE PO.IsUrgent = 1
AND PO.OrderDate = CAST(GETDATE() AS DATE);
-- 加急任务明细
SELECT
PO.OrderNo AS ,
PO.ContractNo AS ,
M.MaterialDesc AS ,
M.MaterialCode AS ,
WO.PlannedQty AS ,
WO.UrgentQty AS ,
PR.ProcessName AS ,
WO.Assignee AS
FROM ProductionOrder PO
INNER JOIN Material M ON PO.MaterialID = M.MaterialID
INNER JOIN WorkOrderOperation WO ON PO.OrderID = WO.OrderID
INNER JOIN ProcessRouting PR ON WO.ProcessID = PR.ProcessID
WHERE PO.IsUrgent = 1
AND PO.OrderDate = CAST(GETDATE() AS DATE)
ORDER BY WO.UrgentQty DESC;
END
```
```sql
-- 示例机加设备生产运营看板_报工运行查询
CREATE PROCEDURE [dbo].[_报工运行查询]
AS
BEGIN
SET NOCOUNT ON;
SELECT
E.EquipCode AS ,
E.EquipName AS ,
ER.RunStatus AS ,
ISNULL(SUM(DATEDIFF(MINUTE, ER.StartTime, ISNULL(ER.EndTime, GETDATE()))) / 60.0, 0) AS ,
ISNULL(WRR.ReportQty, 0) AS ,
WRR.LastReportTime AS
FROM Equipment E
LEFT JOIN EquipmentRuntime ER
ON E.EquipID = ER.EquipID
AND ER.StartTime >= CAST(GETDATE() AS DATE)
LEFT JOIN (
SELECT EquipID, SUM(ReportQty) AS ReportQty, MAX(ReportTime) AS LastReportTime
FROM WorkReportRecord
WHERE ReportTime >= CAST(GETDATE() AS DATE)
GROUP BY EquipID
) WRR ON E.EquipID = WRR.EquipID
GROUP BY E.EquipCode, E.EquipName, ER.RunStatus, WRR.ReportQty, WRR.LastReportTime
ORDER BY E.EquipCode;
END
```
---
## 七、今日详细工作步骤
### 上午09:00 - 12:00
| 步骤 | 任务 | 详细操作 | 产出 | 预计用时 |
|------|------|----------|------|----------|
| **Step 1** | 环境确认 | ① `npm install` 安装依赖;② `npm run dev` 验证项目可启动;③ 确认 `/config.js` 正常加载;④ 浏览器控制台检查无报错 | 项目正常启动 | 30min |
| **Step 2** | 数据库调研 | ① 连接 SQL Server 数据库;② 确认上文推断的 6 张表实际表名和字段;③ 导出相关表结构文档 | 表结构文档 | 1h |
| **Step 3** | SP1 编写与测试 | ① 编写 `机加设备生产运营看板_加急任务查询` 存储过程;② 在 SSMS 中执行验证数据正确性;③ 调优查询性能(添加索引) | SP1 可用 | 1h |
| **Step 4** | SP2 编写与测试 | ① 编写 `机加设备生产运营看板_机加在制查询` 存储过程;② SSMS 执行验证 | SP2 可用 | 30min |
### 下午13:30 - 18:00
| 步骤 | 任务 | 详细操作 | 产出 | 预计用时 |
|------|------|----------|------|----------|
| **Step 5** | SP3 编写与测试 | ① 编写 `机加设备生产运营看板_机加在制查询2` 存储过程;② SSMS 执行验证 | SP3 可用 | 30min |
| **Step 6** | 前后端联调SP1-3 | ① 通过 MESCommonBase.ashx 实际调用 3 个存储过程;② 用浏览器 DevTools Network 面板检查请求/响应;③ 验证响应 JSON 结构;④ 如有结构不匹配,调整 `getResponseRows()` | 3个SP前后端调通 | 1h |
| **Step 7** | 真实数据验证 | ① 确认汇总卡片数字正确;② 确认表格数据显示正确;③ 确认进度百分比计算正确;④ 处理空数据/异常情况 | 页面展示真实数据 | 1h |
| **Step 8** | 样式布局修改 | ① 根据用户反馈调整看板整体布局(卡片尺寸/间距/位置);② 修改表格列宽适配真实数据长度;③ 调整字体大小、颜色、对比度提升可读性;④ 优化表格行高和滚动速率;⑤ 调整缺勤人员卡片内边距和字体样式;⑥ 页面背景/边框/阴影等视觉细节微调 | 样式布局验收通过 | 1.5h |
| **Step 9** | 报工运行功能开发 | ① 确认报工运行数据来源(设备运行状态表/报工记录表);② 编写报工运行存储过程,返回:设备编号、设备名称、运行状态(运行/待机/停机)、当日运行时长(h)、当日报工数量、最近报工时间;③ 新增报工运行面板组件(建议 ECharts 仪表盘 + 运行状态列表或 DataV 滚动表格);④ 调整页面布局容纳新面板(右侧下方区域);⑤ 前后端联调验证数据正确性 | 报工运行面板展示真实数据 | 1.5h |
| **Step 10** | 整体测试 | ① 全流程回归测试(含报工运行功能);② 异常场景测试(接口超时、空数据、网络断开);③ 多分辨率测试1920×1080 / 1366×768 / 2560×1440④ 样式布局走查确认 | 测试报告 | 30min |
---
## 八、当前状态与待办事项
### 已完成 ✅
- [x] 项目框架搭建Vue3 + Vite + Pinia + Router
- [x] 页面布局与样式1920×1080 大屏设计)
- [x] 4 个滚动表格组件集成DataV-Vue3
- [x] 自适应缩放引擎
- [x] 实时时钟
- [x] API 通信层封装CreateData / ExecDatabase / request.js
- [x] 数据映射逻辑applyUrgentData / applyInProcessData / applyInProcessData2
- [x] public/config.js 加载路径修复(本次修复)
### 进行中 🔄
- [ ] 数据库表结构确认
- [ ] SP1~SP3 存储过程编写
- [ ] 前后端联调
### 待开发 ⏳
- [ ] SP4 报工运行查询存储过程
- [ ] M8 报工运行面板组件开发
- [ ] 页面样式布局调整优化
- [ ] 定时自动刷新机制setInterval 30s
- [ ] 错误处理优化(接口失败重试、友好提示)
---
## 九、关键风险与注意事项
| 风险 | 影响 | 应对措施 |
|------|------|----------|
| 数据库实际表结构未知 | SP 无法编写 | Step 2 优先确认表结构 |
| MESCommonBase.ashx 响应格式不确定 | 数据解析失败 | `getResponseRows` 已兼容两种格式,需实测确认 |
| 内网 API 地址 `192.168.2.92:10101` 不可达 | 无法联调 | 确认网络连通性,或使用代理 |
| 存储过程性能差 | 大屏卡顿 | 添加索引,限制返回行数 |
| 生产数据敏感 | 数据安全 | 确认仅查询权限,不涉及写操作 |