日志优化+PRODUCING到PRODUCT状态转化优化
This commit is contained in:
@@ -20,14 +20,13 @@
|
||||
<el-form-item label="Alarm Type" prop="logtype">
|
||||
<!-- 报警类型 -->
|
||||
<el-select v-model="queryForm.logtype" placeholder="Please select alarm type" clearable>
|
||||
<!-- 请选择报警类型 -->
|
||||
<el-option label="System Alarm" value="system"></el-option>
|
||||
<!-- 系统报警 -->
|
||||
<el-option label="Device Alarm" value="device"></el-option>
|
||||
<!-- 设备报警 -->
|
||||
<el-option label="Network Alarm" value="network"></el-option>
|
||||
<!-- 网络报警 -->
|
||||
<el-option label="Security Alarm" value="security"></el-option>
|
||||
<!-- 请选择报警模块 -->
|
||||
<el-option label="INFORMATION" value="INFORMATION"></el-option>
|
||||
<!-- 监控模块 -->
|
||||
<el-option label="WARN" value="WARN"></el-option>
|
||||
<!-- 管理模块 -->
|
||||
<el-option label="ERROR" value="ERROR"></el-option>
|
||||
|
||||
<!-- 安全报警 -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -35,16 +34,21 @@
|
||||
<el-form-item label="Alarm Module" prop="module">
|
||||
<!-- 报警模块 -->
|
||||
<el-select v-model="queryForm.module" placeholder="Please select alarm module" clearable>
|
||||
<!-- 请选择报警模块 -->
|
||||
<el-option label="Monitor Module" value="monitor"></el-option>
|
||||
<!-- 监控模块 -->
|
||||
<el-option label="Admin Module" value="admin"></el-option>
|
||||
<!-- 管理模块 -->
|
||||
<el-option label="Analysis Module" value="analysis"></el-option>
|
||||
<!-- 分析模块 -->
|
||||
<el-option label="Storage Module" value="storage"></el-option>
|
||||
<!-- 存储模块 -->
|
||||
|
||||
|
||||
<!-- 请选择报警模块 -->
|
||||
<el-option label="TRACK Alarm" value="TRACK"></el-option>
|
||||
<!-- 焊机报警 -->
|
||||
<el-option label="WELDER Alarm" value="WELDER"></el-option>
|
||||
<!-- 物料保存报警 -->
|
||||
<el-option label="MATMAP-SAVE Alarm" value="MATMAP-SAVE"></el-option>
|
||||
<!-- 物料映射报警 -->
|
||||
<el-option label="MATMAP-TRACK Alarm" value="MATMAP-TRACK"></el-option>
|
||||
<!-- 位置时间报警 -->
|
||||
<el-option label="POSITIME Alarm" value="POSITIME"></el-option>
|
||||
</el-select>
|
||||
|
||||
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="Alarm Content" prop="logtext">
|
||||
|
||||
@@ -524,11 +524,13 @@ import FurCurrent from './components/FurCurrent.vue'
|
||||
// 基于后端 DeviceEnum 的前端映射(区域、来源、参数字段)
|
||||
const DEVICE_META = {
|
||||
POR1: { sectionType: 'ENTRY', sourceType: 'ENTRY', paramFields: ['tensionPorBr1', 'stripSpeed'] },
|
||||
POR2: { sectionType: 'ENTRY', sourceType: 'ENTRY', paramFields: ['tensionPorBr2', 'stripSpeed'] },
|
||||
POR2: { sectionType: 'ENTRY', sourceType: 'ENTRY', paramFields: ['stripSpeed'] },
|
||||
WELDER: { sectionType: 'ENTRY', sourceType: 'ENTRY', paramFields: ['weldStatus'] },
|
||||
ENL1: { sectionType: 'PROCESS', sourceType: 'ENTRY', paramFields: ['celLength', 'celCapacity', 'tensionCel', 'celLengthMax', 'celLengthMin', 'bR4or5toBR6Tension'] },
|
||||
ENL2: { sectionType: 'PROCESS', sourceType: 'ENTRY', paramFields: ['celLength', 'celCapacity', 'tensionCel', 'celLengthMax', 'celLengthMin', 'bR4or5toBR6Tension'] },
|
||||
ENL3: { sectionType: 'PROCESS', sourceType: 'ENTRY', paramFields: ['celLength', 'celCapacity', 'tensionCel', 'celLengthMax', 'celLengthMin', 'bR4or5toBR6Tension'] },
|
||||
// UI 合并显示用:入口活套(逻辑合并 ENL1/2/3)
|
||||
ENL: { sectionType: 'ENTRY', sourceType: 'ENTRY', paramFields: ['celLength', 'celCapacity', 'tensionCel', 'celLengthMax', 'celLengthMin', 'bR4or5toBR6Tension'] },
|
||||
|
||||
CLEAN: { sectionType: 'PROCESS', sourceType: 'FURNACE', paramFields: ['cleaningVoltage', 'cleaningCurrent'] },
|
||||
FUR1: { sectionType: 'PROCESS', sourceType: 'FURNACE', paramFields: ['phfExitStripTemp'] },
|
||||
@@ -551,6 +553,8 @@ const DEVICE_META = {
|
||||
|
||||
CXL1: { sectionType: 'EXIT', sourceType: 'EXIT', paramFields: ['cxlLength', 'cxlCapacity', 'tensionCxl'] },
|
||||
CXL2: { sectionType: 'EXIT', sourceType: 'EXIT', paramFields: ['cxlLength', 'cxlCapacity', 'tensionCxl'] },
|
||||
// UI 合并显示用:出口活套(逻辑合并 CXL1/2)
|
||||
CXL: { sectionType: 'EXIT', sourceType: 'EXIT', paramFields: ['cxlLength', 'cxlCapacity', 'tensionCxl'] },
|
||||
TR: { sectionType: 'EXIT', sourceType: 'EXIT', paramFields: ['coilLength', 'speedExitSection', 'tensionBr9Tr'] },
|
||||
EXC: { sectionType: 'EXIT', sourceType: 'EXIT', paramFields: [] },
|
||||
WEIGHT: { sectionType: 'EXIT', sourceType: 'EXIT', paramFields: [] }
|
||||
@@ -559,8 +563,7 @@ const DEVICE_META = {
|
||||
// Parameter field labels (English with Chinese comments)
|
||||
// 参数字段标签(英文显示,中文注释)
|
||||
const PARAM_LABELS = {
|
||||
tensionPorBr1: 'Pay-off Tension 1#', // 开卷张力1#
|
||||
tensionPorBr2: 'Pay-off Tension 2#', // 开卷张力2#
|
||||
tensionPorBr1: 'Pay-off Tension', // 开卷张力1#
|
||||
stripSpeed: 'Strip Speed', // 带钢速度
|
||||
weldStatus: 'Welder Status', // 焊机状态
|
||||
celLength: 'Entry Loop Position', // 入口活套位置
|
||||
@@ -568,7 +571,12 @@ const PARAM_LABELS = {
|
||||
tensionCel: 'Entry Loop Tension', // 入口活套张力
|
||||
celLengthMax: 'Entry Loop Max Length', // 入口活套最大长度
|
||||
celLengthMin: 'Entry Loop Min Length', // 入口活套最小长度
|
||||
bR4or5toBR6Tension: 'BR4/5 to BR6 Tension', // BR4/5到BR6张力
|
||||
bR4or5toBR6Tension: 'Annealing Furnace Tension', // 退火炉张力
|
||||
tensionBr1Br2: 'Entry Loop Tension', // 入口活套张力
|
||||
tensionBr2Br3: 'Cleaning Section Tension', // 清洗段张力
|
||||
tensionBr6toBr7Br8: 'Post-coating Cooling Tension', // 镀后冷却张力
|
||||
tensionBr8Tm: 'Temper Mill Entry Tension', // 光整机入口张力
|
||||
tensionTmBr9: 'Temper Mill Exit Tension', // 光整机出口张力
|
||||
cleaningVoltage: 'Cleaning Voltage', // 清洗电压
|
||||
cleaningCurrent: 'Cleaning Current', // 清洗电流
|
||||
// 别名字段(用于前端逻辑)
|
||||
@@ -598,9 +606,7 @@ const PARAM_LABELS = {
|
||||
tensionCxl: 'Exit Loop Tension', // 出口活套张力
|
||||
coilLength: 'Coil Length', // 钢卷长度
|
||||
speedExitSection: 'Exit Section Speed', // 出口段速度
|
||||
tensionBr9Tr: 'BR9-TR Tension', // BR9-TR张力
|
||||
tensionBr8Tm: 'BR8-TM Tension', // BR8-TM张力
|
||||
tensionTmBr9: 'TM-BR9 Tension', // TM-BR9张力
|
||||
tensionBr9Tr: 'Recoiler Tension', // 卷取机张力
|
||||
tensionBr8Br9: 'BR8-BR9 Tension', // BR8-BR9张力
|
||||
tensionBr9toBr10Br11: 'BR9-BR10/11 Tension', // BR9到BR10/11张力
|
||||
tensionBr10Br11toBr12: 'BR10/11-BR12 Tension', // BR10/11到BR12张力
|
||||
@@ -853,9 +859,10 @@ export default {
|
||||
},
|
||||
furnaceSectionMetrics() {
|
||||
return this.buildSectionMetrics('FURNACE', [
|
||||
// 'cleaningVoltage', 'cleaningCurrent',
|
||||
'bR4or5toBR6Tension',
|
||||
// 'cleaningVoltage', 'cleaningCurrent',
|
||||
'phfExitStripTemp', 'rtfExitStripTemp', 'jcsExitStripTemp', 'scsExitStripTemp'
|
||||
|
||||
|
||||
])
|
||||
},
|
||||
coatSectionMetrics() {
|
||||
@@ -869,7 +876,12 @@ export default {
|
||||
},
|
||||
// 入口段设备列表(依据 DeviceEnum.sectionType)
|
||||
entryDevicesList() {
|
||||
return this.getDevicesBySection('ENTRY')
|
||||
const devices = this.getDevicesBySection('ENTRY')
|
||||
const looper = this.matMapList.find(d => ['ENL1', 'ENL2', 'ENL3'].includes(d.positionNameEn))
|
||||
if (!looper) return devices
|
||||
return devices
|
||||
.filter(d => !['ENL1', 'ENL2', 'ENL3'].includes(d.positionNameEn))
|
||||
.concat([{ ...looper, positionNameEn: 'ENL', positionNameCn: 'Entry Looper' }])
|
||||
},
|
||||
// 熔炉段设备列表(PROCESS 且来源 FURNACE)
|
||||
furnaceDevicesList() {
|
||||
@@ -882,7 +894,17 @@ export default {
|
||||
// 出口段设备列表(EXIT,常规设备)
|
||||
exitDevicesList() {
|
||||
const exitDevices = this.getDevicesBySection('EXIT')
|
||||
return exitDevices.filter(d => !['INS', 'EXC', 'WEIGHT'].includes(d.positionNameEn))
|
||||
const looper = this.matMapList.find(d => ['CXL1', 'CXL2'].includes(d.positionNameEn))
|
||||
|
||||
const base = exitDevices.filter(d => !['INS', 'EXC', 'WEIGHT', 'CXL1', 'CXL2'].includes(d.positionNameEn))
|
||||
if (!looper) return base
|
||||
const tr = this.matMapList.find(d => d.positionNameEn === 'TR')
|
||||
if (!tr) return base.concat([{ ...looper, positionNameEn: 'CXL', positionNameCn: 'Exit Looper' }])
|
||||
|
||||
const idx = base.findIndex(d => d.positionNameEn === 'TR')
|
||||
const cxlDevice = { ...looper, positionNameEn: 'CXL', positionNameCn: 'Exit Looper' }
|
||||
if (idx < 0) return base.concat([cxlDevice])
|
||||
return base.slice(0, idx).concat([cxlDevice]).concat(base.slice(idx))
|
||||
},
|
||||
// 出口其他设备列表
|
||||
exitOtherDevicesList() {
|
||||
@@ -988,7 +1010,6 @@ export default {
|
||||
celCapacity: '%',
|
||||
cxlCapacity: '%',
|
||||
tensionPorBr1: 'daN',
|
||||
tensionPorBr2: 'daN',
|
||||
tensionBr5Tm: 'daN',
|
||||
tensionTlBr7: 'daN',
|
||||
tensionCxl: 'daN',
|
||||
@@ -1029,8 +1050,10 @@ export default {
|
||||
return null
|
||||
},
|
||||
buildSectionMetrics(sectionType, fields) {
|
||||
const source = this.getSectionSource(sectionType)
|
||||
const sectionSource = this.getSectionSource(sectionType)
|
||||
return fields.map(f => {
|
||||
// bR4or5toBR6Tension 在 entry 测量对象里,但需要展示在退火炉段
|
||||
const source = f === 'bR4or5toBR6Tension' ? this.realtimeData.entry : sectionSource
|
||||
const raw = source ? this.getFieldValueWithAlias(source, f) : null
|
||||
const unit = this.getFieldUnit(f)
|
||||
return {
|
||||
@@ -1040,6 +1063,8 @@ export default {
|
||||
})
|
||||
},
|
||||
matchReel(deviceId) {
|
||||
if (deviceId === 'ENL') deviceId = 'ENL1'
|
||||
if (deviceId === 'CXL') deviceId = 'CXL1'
|
||||
if (!['POR1', 'POR2', 'ENL1', 'ENL2', 'CXL1', 'CXL2'].includes(deviceId)) return true
|
||||
if (!this.realtimeData.entry) return false
|
||||
const reel = this.realtimeData.entry.payOffReelNumber
|
||||
@@ -1542,6 +1567,12 @@ export default {
|
||||
|
||||
// 根据设备ID获取设备信息
|
||||
getDeviceInfo(deviceId) {
|
||||
if (deviceId === 'ENL') {
|
||||
return this.matMapList.find(item => ['ENL1', 'ENL2', 'ENL3'].includes(item.positionNameEn))
|
||||
}
|
||||
if (deviceId === 'CXL') {
|
||||
return this.matMapList.find(item => ['CXL1', 'CXL2'].includes(item.positionNameEn))
|
||||
}
|
||||
return this.matMapList.find(item => item.positionNameEn === deviceId)
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user