From 3c4e60bc491ce83132afb30ba44ce195c41e329e Mon Sep 17 00:00:00 2001 From: 86156 <823267011@qq.com> Date: Thu, 15 Jan 2026 17:37:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=90=8E=E7=AB=AF=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=95=B0=E6=8D=AE=E5=BF=AB=E7=85=A7=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=80=82=E5=89=8D=E7=AB=AF=E6=B7=BB=E5=8A=A0=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E5=AD=AA=E7=94=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/hand-factory/api/pocket/deviceEnum.js | 3 +- .../api/pocket/deviceFieldMeta.js | 3 +- .../hand-factory/api/pocket/deviceSnapshot.js | 6 +- apps/hand-factory/components/lines/zinc1.vue | 754 ++++++++- apps/hand-factory/utils/socketMeasure.js | 79 +- apps/l2/package.json | 1 + apps/l2/public/models/光整机.glb | Bin 0 -> 522284 bytes apps/l2/public/models/剪切机.glb | Bin 0 -> 1225780 bytes apps/l2/public/models/卷取机.glb | Bin 0 -> 1351392 bytes apps/l2/public/models/夹送矫直机.glb | Bin 0 -> 886412 bytes apps/l2/public/models/开卷机.glb | Bin 0 -> 545984 bytes apps/l2/public/models/拉轿机.glb | Bin 0 -> 1360356 bytes apps/l2/public/models/清洗段.glb | Bin 0 -> 506560 bytes apps/l2/public/models/炉火段.glb | Bin 0 -> 1263728 bytes apps/l2/public/models/锌锅.glb | Bin 0 -> 615568 bytes apps/l2/src/config/productionLine.js | 278 ++++ apps/l2/src/views/components/CurrentTime.vue | 4 +- apps/l2/src/views/index.vue | 68 +- .../src/views/l2/productLine/ProductLine.vue | 1390 +++++++++++++++++ pnpm-lock.yaml | 7 + 20 files changed, 2445 insertions(+), 148 deletions(-) create mode 100644 apps/l2/public/models/光整机.glb create mode 100644 apps/l2/public/models/剪切机.glb create mode 100644 apps/l2/public/models/卷取机.glb create mode 100644 apps/l2/public/models/夹送矫直机.glb create mode 100644 apps/l2/public/models/开卷机.glb create mode 100644 apps/l2/public/models/拉轿机.glb create mode 100644 apps/l2/public/models/清洗段.glb create mode 100644 apps/l2/public/models/炉火段.glb create mode 100644 apps/l2/public/models/锌锅.glb create mode 100644 apps/l2/src/config/productionLine.js create mode 100644 apps/l2/src/views/l2/productLine/ProductLine.vue diff --git a/apps/hand-factory/api/pocket/deviceEnum.js b/apps/hand-factory/api/pocket/deviceEnum.js index f0399da..6b52c18 100644 --- a/apps/hand-factory/api/pocket/deviceEnum.js +++ b/apps/hand-factory/api/pocket/deviceEnum.js @@ -3,7 +3,8 @@ import request from '@/utils/request' export function listDeviceEnumAll() { return request({ url: '/api/deviceEnum/all', - method: 'get' + method: 'get', + baseUrl: 'http://140.143.206.120:10082/prod-api' }) } diff --git a/apps/hand-factory/api/pocket/deviceFieldMeta.js b/apps/hand-factory/api/pocket/deviceFieldMeta.js index 9d6f05d..b59c298 100644 --- a/apps/hand-factory/api/pocket/deviceFieldMeta.js +++ b/apps/hand-factory/api/pocket/deviceFieldMeta.js @@ -3,7 +3,8 @@ import request from '@/utils/request' export function getDeviceFieldMetaAll() { return request({ url: '/api/deviceFieldMeta/all', - method: 'get' + method: 'get', + baseUrl: 'http://140.143.206.120:10082/prod-api' }) } diff --git a/apps/hand-factory/api/pocket/deviceSnapshot.js b/apps/hand-factory/api/pocket/deviceSnapshot.js index 18866cc..d87940e 100644 --- a/apps/hand-factory/api/pocket/deviceSnapshot.js +++ b/apps/hand-factory/api/pocket/deviceSnapshot.js @@ -5,7 +5,8 @@ export function listDeviceSnapshotLatest(params) { return request({ url: '/api/deviceSnapshot/latest', method: 'get', - params + params, + baseUrl: 'http://140.143.206.120:10082/prod-api' }) } @@ -14,7 +15,8 @@ export function listDeviceSnapshotRange(params) { return request({ url: '/api/deviceSnapshot/range', method: 'get', - params + params, + baseUrl: 'http://140.143.206.120:10082/prod-api' }) } diff --git a/apps/hand-factory/components/lines/zinc1.vue b/apps/hand-factory/components/lines/zinc1.vue index 9c3fc99..4d82438 100644 --- a/apps/hand-factory/components/lines/zinc1.vue +++ b/apps/hand-factory/components/lines/zinc1.vue @@ -19,7 +19,12 @@ - + + @@ -36,50 +41,213 @@ 设备数 {{ deviceDefs.length }} + + + 折线图 + + {{ isChartPaused ? '已暂停刷新' : '实时刷新中' }} + + - - - - {{ dev.desc }}({{ dev.deviceCode }}) - - - - - - {{ getFieldLabel(fieldName) }} - {{ getFieldUnit(fieldName) }} - - - - - - - - AVG{{ formatNum(fieldTrendMap[dev.deviceCode][fieldName].avg) }} - MAX{{ formatNum(fieldTrendMap[dev.deviceCode][fieldName].max) }} - MIN{{ formatNum(fieldTrendMap[dev.deviceCode][fieldName].min) }} - LAST{{ formatNum(fieldTrendMap[dev.deviceCode][fieldName].last) }} - - - - - 等待 {{ getFieldLabel(fieldName) }} 数据... - + + + 入口段(实时) + + + {{ it.label || getFieldLabel(it.field) }} + {{ getRealtimeValueBySource('ENTRY', it.field) }} + {{ it.unit || getFieldUnit(it.field) }} + + + + - - 等待 {{ dev.desc }} 数据...(滚动到此处加载) + + 退火炉段(实时) + + + {{ it.label || getFieldLabel(it.field) }} + {{ getRealtimeValueBySource('FURNACE', it.field) }} + {{ it.unit || getFieldUnit(it.field) }} + + + + + + + + + 后处理/涂层段(实时) + + + {{ it.label || getFieldLabel(it.field) }} + {{ getRealtimeValueBySource('COAT', it.field) }} + {{ it.unit || getFieldUnit(it.field) }} + + + + + + + + + 出口段(实时) + + + {{ it.label || getFieldLabel(it.field) }} + {{ getRealtimeValueBySource('EXIT', it.field) }} + {{ it.unit || getFieldUnit(it.field) }} + + + + + + + + + 当前生产情况 + + + + 当前钢卷 + 钢种 + 规格 (厚×宽) + 计划长度 + 计划重量 + + + {{ currentPlan.exitMatId || '—' }} + {{ currentPlan.steelGrade || '—' }} + + {{ formatNum(currentPlan.exitThickness) }} × {{ formatNum(currentPlan.exitWidth) }} + + {{ formatNum(currentPlan.exitLength) }} + {{ formatNum(currentPlan.exitWeight) }} + + + + 暂无当前生产计划数据。 + + + + + + 生产实绩汇总 + + + 钢卷总数 + {{ reportSummary.coilCount || 0 }} + + + + 总实际重量 + {{ formatNum(reportSummary.totalActualWeight) }} + t + + + 成材率 + + {{ reportSummary.yieldRate != null ? (reportSummary.yieldRate * 100).toFixed(1) : '—' }} + + % + + + + 暂无实绩汇总数据。 + + + + + 生产实绩明细 + + + 成品卷号 + 原料卷号 + 班/组 + 规格 (厚×宽) + 长度/重量 + + + {{ item.exitMatId }} + {{ item.entryMatId }} + {{ item.groupNo || '—' }}/{{ item.shiftNo || '—' }} + + {{ formatNum(item.exitThickness) }} × {{ formatNum(item.exitWidth) }} + + + {{ formatNum(item.exitLength) }} m / {{ formatNum(item.actualWeight) }} t + + + + + 暂无生产明细记录。 + + + + + + + + 停机记录 + + + + + {{ stoppageMonthLabel }} + + + + + + 开始时间 + 结束时间 + 持续时间 + 区域/设备 + 原因 + + + {{ item.startDate }} + {{ item.endDate }} + {{ item.duration }} + + {{ item.area || '—' }}/{{ item.seton || '—' }} + + {{ item.remark || '—' }} + + + + 暂无停机记录。 + + + + + + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd8391c..687eb0f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,6 +83,9 @@ importers: splitpanes: specifier: 2.4.1 version: 2.4.1 + three: + specifier: ^0.158.0 + version: 0.158.0 vue: specifier: 2.6.12 version: 2.6.12 @@ -14235,6 +14238,10 @@ packages: webpack: 4.47.0 dev: true + /three@0.158.0: + resolution: {integrity: sha512-TALj4EOpdDPF1henk2Q+s17K61uEAAWQ7TJB68nr7FKxqwyDr3msOt5IWdbGm4TaWKjrtWS8DJJWe9JnvsWOhQ==} + dev: false + /three@0.180.0: resolution: {integrity: sha512-o+qycAMZrh+TsE01GqWUxUIKR1AL0S8pq7zDkYOQw8GqfX8b8VoCKYUoHbhiX5j+7hr8XsuHDVU6+gkQJQKg9w==} dev: false