feat: 将界面文本从英文翻译为中文

This commit is contained in:
砂糖
2026-01-07 11:07:16 +08:00
parent 2045fd9c43
commit 0c943c8500

View File

@@ -1,11 +1,11 @@
<template>
<div class="track-container">
<!-- Set Values Floating Panel / 设定值悬浮窗 -->
<FloatingPanel ref="setValuesPanel" title="Set Values" width="720px" storageKey="TRACK_SET_VALUES">
<FloatingPanel ref="setValuesPanel" title="设定值" width="720px" storageKey="TRACK_SET_VALUES">
<LatestSetValues :driveData="setupValue.drive" :furnaceData="setupValue.furnace" />
</FloatingPanel>
<FloatingPanel ref="furCurrentPanel" title="Furnace Current" width="400px" storageKey="TRACK_FUR_CURRENT">
<FloatingPanel ref="furCurrentPanel" title="炉火实时参数" width="400px" storageKey="TRACK_FUR_CURRENT">
<FurCurrent :driveData="realtimeData.furnace" />
</FloatingPanel>
<el-row :gutter="20">
@@ -14,7 +14,7 @@
<!-- Loading Status / 加载状态 -->
<div v-if="isLoading" class="loading-container">
<el-icon class="is-loading"><i class="el-icon-loading"></i></el-icon>
<span>Loading...</span>
<span>加载中...</span>
<!-- 加载中... -->
</div>
@@ -23,36 +23,36 @@
<!-- Left: status icons -->
<div class="ws-status-left">
<!-- Set Values Floating Window Trigger / 设定值悬浮窗触发按钮 -->
<el-tooltip content="Set Values" placement="top">
<el-tooltip content="设定值" placement="top">
<el-button type="text" class="ws-open-btn" @click="openSetValuesPanel">
<i class="el-icon-setting"></i>
</el-button>
</el-tooltip>
<el-tooltip content="Measurement Data" placement="top">
<el-tooltip content="测量数据" placement="top">
<!-- 测量数据 -->
<el-badge :is-dot="true" :type="socketStatus.measure ? 'success' : 'danger'">
<i class="el-icon-data-analysis"></i>
</el-badge>
</el-tooltip>
<el-tooltip content="Position Tracking" placement="top">
<el-tooltip content="位置追踪" placement="top">
<!-- 位置追踪 -->
<el-badge :is-dot="true" :type="socketStatus.position ? 'success' : 'danger'">
<i class="el-icon-location"></i>
</el-badge>
</el-tooltip>
<el-tooltip content="Operation Signal" placement="top">
<el-tooltip content="操作信号" placement="top">
<!-- 操作信号 -->
<el-badge :is-dot="true" :type="socketStatus.signal ? 'success' : 'danger'">
<i class="el-icon-bell"></i>
</el-badge>
</el-tooltip>
<el-tooltip content="Material Mapping" placement="top">
<el-tooltip content="物料映射" placement="top">
<!-- 物料映射 -->
<el-badge :is-dot="true" :type="socketStatus.matmap ? 'success' : 'danger'">
<i class="el-icon-map-location"></i>
</el-badge>
</el-tooltip>
<el-tooltip content="Calculation Result" placement="top">
<el-tooltip content="计算结果" placement="top">
<!-- 计算结果 -->
<el-badge :is-dot="true" :type="socketStatus.calcSetup ? 'success' : 'danger'">
<i class="el-icon-s-marketing"></i>
@@ -62,8 +62,8 @@
<!-- Right: quick links -->
<div class="ws-status-right">
<el-button type="primary" size="small" @click="$router.push('/furnace')">Furnace Setup</el-button>
<el-button type="primary" size="small" @click="$router.push('/drive')">Drive Setup</el-button>
<el-button type="primary" size="small" @click="$router.push('/furnace')">炉火设置</el-button>
<el-button type="primary" size="small" @click="$router.push('/drive')">传动设置</el-button>
</div>
</div>
@@ -71,9 +71,9 @@
<!-- Entry Section / 入口段区域 -->
<div class="section-area entry-area">
<div class="section-header">
Entry Section
入口段
<!-- 入口段 -->
<span class="section-info" v-if="positionData.entrySpeed">Speed: {{ positionData.entrySpeed.toFixed(1) }} m/min</span>
<span class="section-info" v-if="positionData.entrySpeed">速度: {{ positionData.entrySpeed.toFixed(1) }} m/min</span>
<!-- 速度 -->
</div>
<div class="section-summary" v-if="entrySectionMetrics.length">
@@ -101,14 +101,14 @@
<!-- Furnace Section / 熔炉段区域 -->
<div class="section-area furnace-area">
<div class="section-header">
Furnace Section
熔炉段
<!-- 熔炉段 -->
<span class="section-info" v-if="positionData.technologySpeed">Speed: {{ positionData.technologySpeed.toFixed(1) }} m/min</span>
<span class="section-info" v-if="positionData.technologySpeed">速度: {{ positionData.technologySpeed.toFixed(1) }} m/min</span>
<!-- 速度 -->
<!-- 展开 -->
<el-button type="text" size="small" @click="openFurCurrentPanel">
<i class="el-icon-paperclip"></i>
more
更多
</el-button>
</div>
<div class="section-summary" v-if="furnaceSectionMetrics.length">
@@ -135,8 +135,12 @@
<!-- Coating Section / 涂层段区域 -->
<div class="section-area coat-area">
<div class="section-header">Coating Section</div>
<!-- 涂层段 -->
<div class="section-header">
涂层段
<!-- 涂层段 -->
<span class="section-info" v-if="positionData.coatSpeed">速度: {{ positionData.coatSpeed.toFixed(1) }} m/min</span>
<!-- 速度 -->
</div>
<div class="section-summary" v-if="coatSectionMetrics.length">
<div class="summary-item" v-for="item in coatSectionMetrics" :key="item.label">
<span class="summary-label">{{ item.label }}</span>
@@ -162,9 +166,9 @@
<!-- Exit Section / 出口段区域 -->
<div class="section-area exit-area">
<div class="section-header">
Exit Section
出口段
<!-- 出口段 -->
<span class="section-info" v-if="positionData.exitSpeed">Speed: {{ positionData.exitSpeed.toFixed(1) }} m/min</span>
<span class="section-info" v-if="positionData.exitSpeed">速度: {{ positionData.exitSpeed.toFixed(1) }} m/min</span>
<!-- 速度 -->
</div>
<div class="section-summary" v-if="exitSectionMetrics.length">
@@ -191,8 +195,10 @@
<!-- Other Section / 其他段区域 -->
<div class="section-area" v-if="exitOtherDevicesList.length">
<div class="section-header">Other Section</div>
<!-- 其他段 -->
<div class="section-header">
其他段
<!-- 其他段 -->
</div>
<div class="device-grid other-exit-grid">
<div v-for="device in exitOtherDevicesList" :key="device.positionNameEn" class="device-card" :class="{
active: selectedCard && selectedCard.positionNameEn === device.positionNameEn,
@@ -217,7 +223,7 @@
<!-- Production Plan List / 生产计划列表 -->
<div class="panel">
<div class="panel-title">
<i class="el-icon-s-order"></i> Production Plan
<i class="el-icon-s-order"></i> 生产计划
<!-- 生产计划 -->
</div>
<div class="plan-list-vertical">
@@ -234,18 +240,18 @@
<div class="plan-item-top">
<div class="plan-order-dot" :class="getPlanOrderClass(plan.status)">{{ index + 1 }}</div>
<div class="plan-title-text">
<div class="plan-id">Plan ID: {{ plan.planid || '-' }}</div>
<div class="plan-id">计划号: {{ plan.planid || '-' }}</div>
<!-- 计划ID -->
<div class="plan-coil">Coil ID: {{ plan.coilid || '-' }}</div>
<div class="plan-coil">钢卷号: {{ plan.coilid || '-' }}</div>
<!-- 钢卷号 -->
</div>
<el-tag :type="getPlanStatusTagType(plan.status)" size="mini">{{ getPlanStatusText(plan.status) }}</el-tag>
</div>
<div class="plan-item-bottom">
<span>Steel Grade: {{ plan.steelGrade || '-' }}</span>
<span>钢种: {{ plan.steelGrade || '-' }}</span>
<!-- 钢种 -->
<span>Sequence: {{ plan.seqid || '-' }}</span>
<!-- 顺序 -->
<span>顺序号: {{ plan.seqid || '-' }}</span>
<!-- 顺序 -->
</div>
</div>
</div>
@@ -265,7 +271,7 @@
<i class="el-icon-location"></i>
</div>
<div class="position-info">
<div class="position-label">Current Position</div>
<div class="position-label">当前位置</div>
<!-- 当前位置 -->
<div class="position-name">{{ selectedPlanPosition.positionNameCn }}</div>
<div class="position-code">{{ selectedPlanPosition.positionNameEn }}</div>
@@ -273,41 +279,41 @@
</div>
<el-descriptions :column="1" border size="small">
<el-descriptions-item label="Plan ID">{{ selectedPlan.planid || '-' }}</el-descriptions-item>
<el-descriptions-item label="计划号">{{ selectedPlan.planid || '-' }}</el-descriptions-item>
<!-- 计划ID -->
<el-descriptions-item label="Coil ID">{{ selectedPlan.coilid || '-' }}</el-descriptions-item>
<el-descriptions-item label="钢卷号">{{ selectedPlan.coilid || '-' }}</el-descriptions-item>
<!-- 钢卷号 -->
<el-descriptions-item label="Sequence">{{ selectedPlan.seqid || '-' }}</el-descriptions-item>
<el-descriptions-item label="顺序号">{{ selectedPlan.seqid || '-' }}</el-descriptions-item>
<!-- 顺序号 -->
<el-descriptions-item label="Status">
<el-descriptions-item label="状态">
<!-- 状态 -->
<el-tag :type="getPlanStatusTagType(selectedPlan.status)" size="small" effect="dark">
{{ getPlanStatusText(selectedPlan.status) }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="Steel Grade">{{ selectedPlan.steelGrade || '-' }}</el-descriptions-item>
<el-descriptions-item label="钢种">{{ selectedPlan.steelGrade || '-' }}</el-descriptions-item>
<!-- 钢种 -->
<el-descriptions-item label="Entry Thickness">
<el-descriptions-item label="入口厚度">
<!-- 入口厚度 -->
{{ selectedPlan.entryThick ? selectedPlan.entryThick + ' mm' : '-' }}
</el-descriptions-item>
<el-descriptions-item label="Entry Width">
<el-descriptions-item label="入口宽度">
<!-- 入口宽度 -->
{{ selectedPlan.entryWidth ? selectedPlan.entryWidth + ' mm' : '-' }}
</el-descriptions-item>
<el-descriptions-item label="Entry Weight">
<el-descriptions-item label="入口重量">
<!-- 入口重量 -->
{{ selectedPlan.entryWeight ? selectedPlan.entryWeight + ' t' : '-' }}
</el-descriptions-item>
<el-descriptions-item label="Entry Length">
<el-descriptions-item label="入口长度">
<!-- 入口长度 -->
{{ selectedPlan.entryLength ? selectedPlan.entryLength + ' mm' : '-' }}
</el-descriptions-item>
<el-descriptions-item label="Order No">{{ selectedPlan.orderNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="订单号">{{ selectedPlan.orderNo || '-' }}</el-descriptions-item>
<!-- 订单号 -->
<el-descriptions-item label="Unit Code">{{ selectedPlan.unitCode || '-' }}</el-descriptions-item>
<el-descriptions-item label="机组号">{{ selectedPlan.unitCode || '-' }}</el-descriptions-item>
<!-- 机组号 -->
<el-descriptions-item label="Plan Type">{{ selectedPlan.planType || '-' }}</el-descriptions-item>
<el-descriptions-item label="计划类型">{{ selectedPlan.planType || '-' }}</el-descriptions-item>
<!-- 计划类型 -->
</el-descriptions>
@@ -316,15 +322,15 @@
<div class="info-subtitle">Time Information</div>
<!-- 时间信息 -->
<el-descriptions :column="1" border size="small">
<el-descriptions-item label="Online Time" v-if="selectedPlan.onlineDate">
<el-descriptions-item label="上线时间" v-if="selectedPlan.onlineDate">
<!-- 上线时间 -->
{{ formatDateTime(selectedPlan.onlineDate) }}
</el-descriptions-item>
<el-descriptions-item label="Start Time" v-if="selectedPlan.startDate">
<el-descriptions-item label="开始时间" v-if="selectedPlan.startDate">
<!-- 开始时间 -->
{{ formatDateTime(selectedPlan.startDate) }}
</el-descriptions-item>
<el-descriptions-item label="End Time" v-if="selectedPlan.endDate">
<el-descriptions-item label="结束时间" v-if="selectedPlan.endDate">
<!-- 结束时间 -->
{{ formatDateTime(selectedPlan.endDate) }}
</el-descriptions-item>
@@ -351,26 +357,26 @@
<!-- {{ signalData.autoFlag === 1 ? '手动操作' : '自动操作' }} -->
</el-tag>
<div class="signal-detail">
<div><strong>Operation Type:</strong>
<div><strong>操作类型:</strong>
<!-- 操作类型 -->
<span :class="getOperationTextClass(signalData.operation)">
{{ getOperationText(signalData.operation) }}
</span>
</div>
<div><strong>Coil ID:</strong> {{ producingCoilId || signalData.entryMatId || '-' }}</div>
<div><strong>钢卷号:</strong> {{ producingCoilId || signalData.entryMatId || '-' }}</div>
<!-- 钢卷号 -->
<div><strong>Plan ID:</strong> {{ signalData.planId || '-' }}</div>
<div><strong>计划ID:</strong> {{ signalData.planId || '-' }}</div>
<!-- 计划ID -->
<div v-if="signalData.porIdx !== null && signalData.porIdx !== undefined">
<strong>Pay-off Reel:</strong> {{ signalData.porIdx }}
<strong>开卷机:</strong> {{ signalData.porIdx }}
<!-- 开卷机 -->
</div>
<div v-if="signalData.trIdx !== null && signalData.trIdx !== undefined">
<strong>Take-up Reel:</strong> {{ signalData.trIdx }}
<strong>卷取机:</strong> {{ signalData.trIdx }}
<!-- 卷取机 -->
</div>
<div v-if="signalData.virtualPlanFlag">
<el-tag type="danger" size="mini">Virtual Coil</el-tag>
<el-tag type="danger" size="mini">虚拟卷</el-tag>
<!-- 虚拟卷 -->
</div>
</div>
@@ -378,50 +384,50 @@
</div>
<!-- Operation Buttons / 操作按钮 -->
<div class="panel">
<div class="panel-title">Operations</div>
<div class="panel-title">操作按钮</div>
<!-- 操作 -->
<div class="btn-list">
<el-button class="action-btn" size="small" @click="handleOperate(selectedCard, 'ONLINE')">Coil Online</el-button>
<el-button class="action-btn" size="small" @click="handleOperate(selectedCard, 'ONLINE')">钢卷上线</el-button>
<!-- 钢卷上线 -->
<el-button class="action-btn" size="small" @click="handleOperate(selectedCard, 'UNLOAD')">Manual Unload</el-button>
<el-button class="action-btn" size="small" @click="handleOperate(selectedCard, 'UNLOAD')">手动卸卷</el-button>
<!-- 手动卸卷 -->
<el-button class="action-btn" size="small"
@click="handleOperate(selectedCard, 'ALL_RETURN')">Full Return</el-button>
@click="handleOperate(selectedCard, 'ALL_RETURN')">整卷回退</el-button>
<!-- 整卷回退 -->
<el-button class="action-btn" size="small"
@click="handleOperate(selectedCard, 'HALF_RETURN')">Half Return</el-button>
@click="handleOperate(selectedCard, 'HALF_RETURN')">半卷回退</el-button>
<!-- 半卷回退 -->
<el-button class="action-btn" size="small" @click="handleOperate(selectedCard, 'BLOCK')">Unload & Block</el-button>
<el-button class="action-btn" size="small" @click="handleOperate(selectedCard, 'BLOCK')">卸卷并封闭</el-button>
<!-- 卸卷并封闭 -->
</div>
</div>
<!-- Device Basic Info / 设备基本信息 -->
<div class="panel" v-if="selectedCard">
<div class="panel-title">Basic Info</div>
<div class="panel-title">设备基本信息</div>
<!-- 基本信息 -->
<table class="info-table">
<tr>
<td>Position Name</td>
<td>位置名称</td>
<!-- 位置名称 -->
<td>{{ selectedCard.positionNameCn || '-' }}</td>
</tr>
<tr>
<td>Position Code</td>
<td>位置代号</td>
<!-- 位置代号 -->
<td>{{ selectedCard.positionNameEn || '-' }}</td>
</tr>
<tr>
<td>Coil ID</td>
<td>钢卷号</td>
<!-- 钢卷号 -->
<td>{{ selectedCard.matId || '-' }}</td>
</tr>
<tr>
<td>Plan ID</td>
<td>计划ID</td>
<!-- 计划ID -->
<td>{{ selectedCard.planId || '-' }}</td>
</tr>
<tr>
<td>Plan No</td>
<td>计划号</td>
<!-- 计划号 -->
<td>{{ selectedCard.planNo || '-' }}</td>
</tr>
@@ -434,17 +440,17 @@
<!-- Adjustment Tool: Select two positions with two dropdowns / 调整工具选择两个位置两个下拉选分别双向绑定 -->
<el-form :model="adjustForm" ref="adjustForm" label-width="80px">
<el-form-item label="Current Position" prop="current">
<el-form-item label="当前位置" prop="current">
<!-- 当前位置 -->
<el-select v-model="adjustForm.current" placeholder="Please select current position">
<el-select v-model="adjustForm.current" placeholder="请选择当前位置">
<!-- 请选择当前位置 -->
<el-option v-for="item in matMapList" :key="item.positionNameEn" :label="item.positionNameCn"
:value="item.positionNameEn"></el-option>
</el-select>
</el-form-item>
<el-form-item label="Target Position" prop="target">
<el-form-item label="目标位置" prop="target">
<!-- 目标位置 -->
<el-select v-model="adjustForm.target" placeholder="Please select target position">
<el-select v-model="adjustForm.target" placeholder="请选择目标位置">
<!-- 请选择目标位置 -->
<el-option v-for="item in matMapList" :key="item.positionNameEn" :label="item.positionNameCn"
:value="item.positionNameEn"></el-option>
@@ -452,7 +458,7 @@
</el-form-item>
</el-form>
<el-button type="primary" :disabled="!adjustForm.current || !adjustForm.target"
@click="handleConfirmAdjust">Confirm Adjustment</el-button>
@click="handleConfirmAdjust">确认调整</el-button>
<!-- 确认调整 -->
</div>
</div>
@@ -462,15 +468,14 @@
<!-- Calculation Setup Result Dialog / 计算结果对话框 -->
<el-dialog
title="Calculation Setup Result"
title="计算结果"
:visible.sync="showCalcResultDialog"
width="80%"
v-if="calcSetupResult"
>
<div class="calc-result-header">
<el-tag :type="calcSetupResult.flag ? 'success' : 'danger'">
{{ calcSetupResult.flag ? 'Calculation Success' : 'Calculation Failed' }}
<!-- {{ calcSetupResult.flag ? '计算成功' : '计算失败' }} -->
{{ calcSetupResult.flag ? '计算成功' : '计算失败' }}
</el-tag>
<span>Key: {{ calcSetupResult.key }}</span>
</div>
@@ -481,76 +486,76 @@
stripe
max-height="500"
>
<el-table-column prop="passno" label="Pass No" width="80" fixed></el-table-column>
<el-table-column prop="passno" label="道次号" width="80" fixed></el-table-column>
<!-- 道次号 -->
<el-table-column prop="entryThick" label="Entry Thickness (mm)" width="120"></el-table-column>
<el-table-column prop="entryThick" label="入口厚度 (mm)" width="120"></el-table-column>
<!-- 入口厚度 -->
<el-table-column prop="exitThick" label="Exit Thickness (mm)" width="120"></el-table-column>
<el-table-column prop="exitThick" label="出口厚度 (mm)" width="120"></el-table-column>
<!-- 出口厚度 -->
<el-table-column prop="reduction" label="Reduction (%)" width="100"></el-table-column>
<el-table-column prop="reduction" label="压下率 (%)" width="100"></el-table-column>
<!-- 压下率 -->
<el-table-column prop="rollSpeed" label="Roll Speed" width="120"></el-table-column>
<el-table-column prop="rollSpeed" label="轧制速度" width="120"></el-table-column>
<!-- 轧制速度 -->
<el-table-column prop="rollForce" label="Roll Force (kN)" width="120"></el-table-column>
<el-table-column prop="rollForce" label="轧制力 (kN)" width="120"></el-table-column>
<!-- 轧制力 -->
<el-table-column prop="entryTension" label="Entry Tension" width="120"></el-table-column>
<el-table-column prop="entryTension" label="入口张力 (kN)" width="120"></el-table-column>
<!-- 入口张力 -->
<el-table-column prop="exitTension" label="Exit Tension" width="120"></el-table-column>
<el-table-column prop="exitTension" label="出口张力 (kN)" width="120"></el-table-column>
<!-- 出口张力 -->
</el-table>
<div v-else class="empty-msg">No calculation result data</div>
<div v-else class="empty-msg">无计算结果数据</div>
<!-- 无计算结果数据 -->
</el-dialog>
<el-dialog :visible.sync="operateMatStatus" :title="getOperateTitle" width="50%">
<el-form :model="operateMatForm" :rules="operateRules" ref="operateForm" label-width="120px">
<el-form-item label="Pay-off Reel No" prop="porIdx">
<el-form-item label="开卷机编号" prop="porIdx">
<!-- 开卷机编号 -->
<el-input v-model="operateMatForm.porIdx"></el-input>
</el-form-item>
<el-form-item label="Take-up Reel No" prop="trIdx">
<el-form-item label="卷取机编号" prop="trIdx">
<!-- 卷取机编号 -->
<el-input v-model="operateMatForm.trIdx"></el-input>
</el-form-item>
<el-form-item label="Plan ID" prop="planId">
<el-form-item label="计划ID" prop="planId">
<!-- 计划id -->
<el-input v-model="operateMatForm.planId" placeholder="Please enter Plan ID"></el-input>
<!-- 请输入计划ID -->
</el-form-item>
<el-form-item label="Coil ID" prop="entryMatId">
<el-form-item label="钢卷号" prop="entryMatId">
<!-- 钢卷号 -->
<el-input v-model="operateMatForm.entryMatId" placeholder="Please enter Coil ID"></el-input>
<!-- 请输入钢卷号 -->
</el-form-item>
<el-form-item label="Operation Type" prop="operation">
<el-form-item label="操作类型" prop="operation">
<!-- 操作类型 -->
<el-select v-model="operateMatForm.operation" disabled>
<el-option label="Coil Online" value="ONLINE"></el-option>
<el-option label="钢卷上线" value="ONLINE"></el-option>
<!-- 钢卷上线 -->
<el-option label="Manual Unload" value="UNLOAD"></el-option>
<el-option label="手动卸卷" value="UNLOAD"></el-option>
<!-- 手动卸卷 -->
<el-option label="Full Return" value="ALL_RETURN"></el-option>
<el-option label="整卷回退" value="ALL_RETURN"></el-option>
<!-- 整卷回退 -->
<el-option label="Half Return" value="HALF_RETURN"></el-option>
<el-option label="半卷回退" value="HALF_RETURN"></el-option>
<!-- 半卷回退 -->
<el-option label="Unload & Block" value="BLOCK"></el-option>
<el-option label="卸卷并封闭" value="BLOCK"></el-option>
<!-- 卸卷并封闭 -->
</el-select>
</el-form-item>
<!-- Return Related Fields / 回退相关字段 -->
<template v-if="['ALL_RETURN', 'HALF_RETURN'].includes(operateMatForm.operation)">
<el-form-item label="Return Coil ID" prop="returnMatId">
<el-form-item label="回退钢卷号" prop="returnMatId">
<!-- 回退卷号 -->
<el-input v-model="operateMatForm.returnMatId" placeholder="Please enter Return Coil ID"></el-input>
<!-- 请输入回退卷号 -->
</el-form-item>
<el-form-item label="Return Weight" prop="returnWeight">
<el-form-item label="回退重量" prop="returnWeight">
<!-- 回退重量 -->
<el-input v-model="operateMatForm.returnWeight" placeholder="Please enter Return Weight"></el-input>
<!-- 请输入回退重量 -->
</el-form-item>
<el-form-item label="Return Remark" prop="returnRemark">
<el-form-item label="回退备注" prop="returnRemark">
<!-- 回退备注 -->
<el-input v-model="operateMatForm.returnRemark" rows="3"></el-input>
</el-form-item>
@@ -558,7 +563,7 @@
<!-- Output Length Fields / 产出长度字段 -->
<template v-if="['PRODUCING', 'PRODUCT'].includes(operateMatForm.operation)">
<el-form-item label="Output Coil Length" prop="coilLength">
<el-form-item label="产出钢卷长度" prop="coilLength">
<!-- 产出钢卷长度 -->
<el-input v-model="operateMatForm.coilLength" type="number" placeholder="Please enter Output Coil Length"></el-input>
<!-- 请输入产出钢卷长度 -->
@@ -566,9 +571,9 @@
</template>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="operateMatStatus = false">Cancel</el-button>
<el-button @click="operateMatStatus = false">取消</el-button>
<!-- 取消 -->
<el-button type="primary" @click="submitOperateForm">Confirm</el-button>
<el-button type="primary" @click="submitOperateForm">确定</el-button>
<!-- 确定 -->
</div>
</el-dialog>
@@ -622,69 +627,69 @@ import { getDriveSetupValue, getFurnaceSetupValue } from '@/api/l2/setupValue'
// Parameter field labels (English with Chinese comments)
// 参数字段标签(英文显示,中文注释)
const PARAM_LABELS = {
tensionPorBr1: 'Tension POR-BR1', // 开卷张力1#
tensionPorBr2: 'Tension POR-BR2', // 开卷张力2#
stripSpeed: 'Strip Speed', // 带钢速度
weldStatus: 'Weld Status', // 焊机状态
celLength: 'Entry Loop Length', // 入口活套位置
celCapacity: 'Entry Loop Capacity', // 入口活套套量
tensionCel: 'Entry Loop Tension', // 入口活套张力
celLengthMax: 'Entry Loop Max Length', // 入口活套最大长度
celLengthMin: 'Entry Loop Min Length', // 入口活套最小长度
bR4or5toBR6Tension: 'Tension BR4/5-BR6', // BR4/5到BR6张力
cleaningVoltage: 'Cleaning Voltage', // 清洗电压
cleaningCurrent: 'Cleaning Current', // 清洗电流
alkaliConcentration: 'Alkali Concentration', // 碱液浓度
alkaliTemperature: 'Alkali Temperature', // 碱液温度
phfExitStripTemp: 'PH Exit Strip Temp', // PH炉出口温度
potTemperature: 'Pot Temperature', // 锌锅温度
gasConsumption: 'Gas Consumption', // 燃气消耗
rtfExitStripTemp: 'RTF Exit Strip Temp', // RTF炉出口温度
zincPotPower: 'Zinc Pot Power', // 锌锅功率
jcsExitStripTemp: 'JCS Exit Strip Temp', // 冷却段出口温度
coolingTowerStripTemp: 'Cooling Tower Temp', // 冷却塔温度
scsExitStripTemp: 'SCS Exit Strip Temp', // 均衡段出口温度
tensionBr5Tm: 'Tension BR5-TM', // BR5-TM张力
stripSpeedTmExit: 'TM Exit Speed', // TM出口速度
tmElongation: 'TM Elongation', // 光整延伸率
tensionTlBr7: 'Tension TL-BR7', // TL-BR7张力
tensionTlBr10Br11: 'Tension TL-BR10/11', // TL-BR10/11张力
tlElongation: 'TL Elongation', // 拉矫延伸率
tlFlag: 'TL Flag', // 拉矫机投用标志
cxlLength: 'Exit Loop Length', // 出口活套位置
cxlCapacity: 'Exit Loop Capacity', // 出口活套套量
tensionCxl: 'Exit Loop Tension', // 出口活套张力
coilLength: 'Coil Length', // 钢卷长度
speedExitSection: 'Exit Section Speed', // 出口段速度
tensionBr9Tr: 'Tension BR9-TR', // BR9-TR张力
tensionBr8Tm: 'Tension BR8-TM', // BR8-TM张力
tensionTmBr9: 'Tension TM-BR9', // TM-BR9张力
tensionBr8Br9: 'Tension BR8-BR9', // BR8-BR9张力
tensionBr9toBr10Br11: 'Tension BR9-BR10/11', // BR9到BR10/11张力
tensionBr10Br11toBr12: 'Tension BR10/11-BR12', // BR10/11到BR12张力
avrCoatingWeightTop: 'Avg Coating Weight Top', // 顶部平均涂层重量
stdCoatingWeightTop: 'Std Coating Weight Top', // 顶部标准涂层重量
maxCoatingWeightTop: 'Max Coating Weight Top', // 顶部最大涂层重量
minCoatingWeightTop: 'Min Coating Weight Top', // 顶部最小涂层重量
avrCoatingWeightBottom: 'Avg Coating Weight Bottom', // 底部平均涂层重量
stdCoatingWeightBottom: 'Std Coating Weight Bottom', // 底部标准涂层重量
maxCoatingWeightBottom: 'Max Coating Weight Bottom', // 底部最大涂层重量
minCoatingWeightBottom: 'Min Coating Weight Bottom', // 底部最小涂层重量
airKnifePressure: 'Air Knife Pressure', // 气刀压力
airKnifeFlow: 'Air Knife Flow', // 气刀流量
airKnifeGap: 'Air Knife Gap', // 气刀间隙
tmMask: 'TM Mask', // TM掩码
rollForceOperator: 'Roll Force Operator', // 操作侧辊压力
rollForceDrive: 'Roll Force Drive', // 驱动侧辊压力
motorTorque: 'Motor Torque', // 电机扭矩
bendingForce: 'Bending Force', // 总弯曲力
antiCrimpingRollMesh: 'Anti-Crimping Roll Mesh', // 防卷翘辊网距
billyRollMesh: 'Billy Roll Mesh', // Billy Roll网距
levelingUnit1Mesh: 'Leveling Unit 1 Mesh', // 矫直单元1网距
levelingUnit2Mesh: 'Leveling Unit 2 Mesh', // 矫直单元2网距
antiCrossBowUnitMesh: 'Anti Cross-Bow Unit Mesh', // 防横弯单元网距
stripSpeedAfp: 'AFP Strip Speed', // AFP段钢带速度
stripTempAfp: 'AFP Strip Temp' // AFP段钢带温度
tensionPorBr1: '开卷张力1#', // 开卷张力1#
tensionPorBr2: '开卷张力2#', // 开卷张力2#
stripSpeed: '带钢速度', // 带钢速度
weldStatus: '焊机状态', // 焊机状态
celLength: '入口活套位置', // 入口活套位置
celCapacity: '入口活套套量', // 入口活套套量
tensionCel: '入口活套张力', // 入口活套张力
celLengthMax: '入口活套最大长度', // 入口活套最大长度
celLengthMin: '入口活套最小长度', // 入口活套最小长度
bR4or5toBR6Tension: 'BR4/5BR6张力', // BR4/5到BR6张力
cleaningVoltage: '清洗电压', // 清洗电压
cleaningCurrent: '清洗电流', // 清洗电流
alkaliConcentration: '碱液浓度', // 碱液浓度
alkaliTemperature: '碱液温度', // 碱液温度
phfExitStripTemp: 'PH炉出口温度', // PH炉出口温度
potTemperature: '锌锅温度', // 锌锅温度
gasConsumption: '燃气消耗', // 燃气消耗
rtfExitStripTemp: 'RTF炉出口温度', // RTF炉出口温度
zincPotPower: '锌锅功率', // 锌锅功率
jcsExitStripTemp: 'JCS出口温度', // 冷却段出口温度
coolingTowerStripTemp: '冷却塔温度', // 冷却塔温度
scsExitStripTemp: 'SCS出口温度', // 均衡段出口温度
tensionBr5Tm: 'BR5-TM张力', // BR5-TM张力
stripSpeedTmExit: 'TM出口速度', // TM出口速度
tmElongation: '光整延伸率', // 光整延伸率
tensionTlBr7: 'TL-BR7张力', // TL-BR7张力
tensionTlBr10Br11: 'TL-BR10/11张力', // TL-BR10/11张力
tlElongation: '拉矫延伸率', // 拉矫延伸率
tlFlag: '拉矫机投用标志', // 拉矫机投用标志
cxlLength: '出口活套位置', // 出口活套位置
cxlCapacity: '出口活套套量', // 出口活套套量
tensionCxl: '出口活套张力', // 出口活套张力
coilLength: '钢卷长度', // 钢卷长度
speedExitSection: '出口段速度', // 出口段速度
tensionBr9Tr: 'BR9-TR张力', // BR9-TR张力
tensionBr8Tm: 'BR8-TM张力', // BR8-TM张力
tensionTmBr9: 'TM-BR9张力', // TM-BR9张力
tensionBr8Br9: 'BR8-BR9张力', // BR8-BR9张力
tensionBr9toBr10Br11: 'BR9-BR10/11张力', // BR9到BR10/11张力
tensionBr10Br11toBr12: 'BR10/11-BR12张力', // BR10/11到BR12张力
avrCoatingWeightTop: '顶部平均涂层重量', // 顶部平均涂层重量
stdCoatingWeightTop: '顶部标准涂层重量', // 顶部标准涂层重量
maxCoatingWeightTop: '顶部最大涂层重量', // 顶部最大涂层重量
minCoatingWeightTop: '顶部最小涂层重量', // 顶部最小涂层重量
avrCoatingWeightBottom: '底部平均涂层重量', // 底部平均涂层重量
stdCoatingWeightBottom: '底部标准涂层重量', // 底部标准涂层重量
maxCoatingWeightBottom: '底部最大涂层重量', // 底部最大涂层重量
minCoatingWeightBottom: '底部最小涂层重量', // 底部最小涂层重量
airKnifePressure: '气刀压力', // 气刀压力
airKnifeFlow: '气刀流量', // 气刀流量
airKnifeGap: '气刀间隙', // 气刀间隙
tmMask: 'TM掩码', // TM掩码
rollForceOperator: '操作侧辊压力', // 操作侧辊压力
rollForceDrive: '驱动侧辊压力', // 驱动侧辊压力
motorTorque: '电机扭矩', // 电机扭矩
bendingForce: '总弯曲力', // 总弯曲力
antiCrimpingRollMesh: '防卷翘辊网距', // 防卷翘辊网距
billyRollMesh: 'Billy Roll网距', // Billy Roll网距
levelingUnit1Mesh: '矫直单元1网距', // 矫直单元1网距
levelingUnit2Mesh: '矫直单元2网距', // 矫直单元2网距
antiCrossBowUnitMesh: '防横弯单元网距', // 防横弯单元网距
stripSpeedAfp: 'AFP段钢带速度', // AFP段钢带速度
stripTempAfp: 'AFP段钢带温度', // AFP段钢带
}
const FIELD_ALIASES = {