feat: 新增酸轧系统实时跟踪和实绩功能
- 添加实时跟踪页面,支持查询Gauge和Shape数据 - 新增实绩页面,展示钢卷生产数据和工艺图表 - 优化钢卷追踪结果展示,增加创建步骤卷号显示 - 调整酸轧系统菜单结构,新增"实绩"和"实时"选项 - 扩展工艺图表展示,增加开卷机、温度等参数 - 修改计划列表分页大小为10 - 移除无用代码和注释
This commit is contained in:
@@ -62,33 +62,33 @@
|
||||
{value: '1988150380649967617', label: '镀锌分条成品'},
|
||||
{value: '1988151027466170370', label: '拉矫分条成品'},
|
||||
],
|
||||
'酸轧修复工序': [
|
||||
{value: '1988150044862377986', label: '酸连轧原料库'},
|
||||
{value: '1988150099140866050', label: '酸连轧成品库'},
|
||||
{value: '1988150263284953089', label: '镀锌原料库'},
|
||||
{value: '1988150545175736322', label: '脱脂原料库'},
|
||||
],
|
||||
'镀锌修复工序': [
|
||||
{value: '1988150263284953089', label: '镀锌原料库'},
|
||||
{value: '1988150323162836993', label: '镀锌成品库'},
|
||||
{value: '1988150487185289217', label: '镀锌纵剪分条原料库'},
|
||||
],
|
||||
'脱脂修复工序': [
|
||||
{value: '1988150545175736322', label: '脱脂原料库'},
|
||||
{value: '1988150586938421250', label: '脱脂成品库'},
|
||||
],
|
||||
'拉矫修复工序': [
|
||||
{value: '1988150854442741762', label: '拉矫原料库'},
|
||||
{value: '1988150915591499777', label: '拉矫成品库'},
|
||||
],
|
||||
'双机架修复工序': [
|
||||
{value: '1992873386047643650', label: '双机架原料库'},
|
||||
{value: '1992873437713080322', label: '双机架成品库'},
|
||||
],
|
||||
'镀铬修复工序': [
|
||||
{value: '1988151076996706306', label: '镀铬原料库'},
|
||||
{value: '1988151132361519105', label: '镀铬成品库'},
|
||||
],
|
||||
// '酸轧修复工序': [
|
||||
// {value: '1988150044862377986', label: '酸连轧原料库'},
|
||||
// {value: '1988150099140866050', label: '酸连轧成品库'},
|
||||
// {value: '1988150263284953089', label: '镀锌原料库'},
|
||||
// {value: '1988150545175736322', label: '脱脂原料库'},
|
||||
// ],
|
||||
// '镀锌修复工序': [
|
||||
// {value: '1988150263284953089', label: '镀锌原料库'},
|
||||
// {value: '1988150323162836993', label: '镀锌成品库'},
|
||||
// {value: '1988150487185289217', label: '镀锌纵剪分条原料库'},
|
||||
// ],
|
||||
// '脱脂修复工序': [
|
||||
// {value: '1988150545175736322', label: '脱脂原料库'},
|
||||
// {value: '1988150586938421250', label: '脱脂成品库'},
|
||||
// ],
|
||||
// '拉矫修复工序': [
|
||||
// {value: '1988150854442741762', label: '拉矫原料库'},
|
||||
// {value: '1988150915591499777', label: '拉矫成品库'},
|
||||
// ],
|
||||
// '双机架修复工序': [
|
||||
// {value: '1992873386047643650', label: '双机架原料库'},
|
||||
// {value: '1992873437713080322', label: '双机架成品库'},
|
||||
// ],
|
||||
// '镀铬修复工序': [
|
||||
// {value: '1988151076996706306', label: '镀铬原料库'},
|
||||
// {value: '1988151132361519105', label: '镀铬成品库'},
|
||||
// ],
|
||||
}
|
||||
|
||||
if (
|
||||
|
||||
@@ -741,6 +741,12 @@
|
||||
<div ref="chartSpeed" class="chart-box" />
|
||||
<div ref="chartMillSpeed" class="chart-box" />
|
||||
<div ref="chartTension" class="chart-box" />
|
||||
<div ref="chartPorSpeed" class="chart-box" />
|
||||
<div ref="chartPorTens" class="chart-box" />
|
||||
<div ref="chartTrim" class="chart-box" />
|
||||
<div ref="chartTemp" class="chart-box" />
|
||||
<div ref="chartMesh" class="chart-box" />
|
||||
<div ref="chartElong" class="chart-box" />
|
||||
</div>
|
||||
<el-empty v-else-if="!perfLoading" description="暂无生产工艺数据" :image-size="56" style="margin-top: 24px" />
|
||||
</div>
|
||||
@@ -1223,8 +1229,11 @@ export default {
|
||||
|
||||
const c2 = echarts.init(this.$refs.chartMillSpeed);
|
||||
c2.setOption(this.baseOption(
|
||||
'轧机出口速度 (m/min)', xData,
|
||||
[this.makeLine('millexitspeed', pick('millexitspeed'))],
|
||||
'轧机速度 (m/min)', xData,
|
||||
[
|
||||
this.makeLine('入口速度 millentryspeed', pick('millentryspeed')),
|
||||
this.makeLine('出口速度 millexitspeed', pick('millexitspeed'))
|
||||
],
|
||||
'm/min'
|
||||
));
|
||||
|
||||
@@ -1239,7 +1248,88 @@ export default {
|
||||
'N'
|
||||
));
|
||||
|
||||
this.chartInstances = [c1, c2, c3];
|
||||
let c4, c5, c6, c7, c8, c9;
|
||||
if (this.$refs.chartPorSpeed) {
|
||||
c4 = echarts.init(this.$refs.chartPorSpeed);
|
||||
c4.setOption(this.baseOption(
|
||||
'开卷机速度 (m/min)', xData,
|
||||
[
|
||||
this.makeLine('开卷速度 porspeed', pick('porspeed')),
|
||||
this.makeLine('最大 porspeedmax', pick('porspeedmax')),
|
||||
this.makeLine('最小 porspeedmin', pick('porspeedmin'))
|
||||
],
|
||||
'm/min'
|
||||
));
|
||||
}
|
||||
|
||||
if (this.$refs.chartPorTens) {
|
||||
c5 = echarts.init(this.$refs.chartPorTens);
|
||||
c5.setOption(this.baseOption(
|
||||
'开卷机张力 (N)', xData,
|
||||
[
|
||||
this.makeLine('开卷张力 portens', pick('portens')),
|
||||
this.makeLine('最大 portensmax', pick('portensmax')),
|
||||
this.makeLine('最小 portensmin', pick('portensmin'))
|
||||
],
|
||||
'N'
|
||||
));
|
||||
}
|
||||
|
||||
if (this.$refs.chartTrim) {
|
||||
c6 = echarts.init(this.$refs.chartTrim);
|
||||
c6.setOption(this.baseOption(
|
||||
'剪切参数', xData,
|
||||
[
|
||||
this.makeLine('剪切张力 trimtens', pick('trimtens')),
|
||||
this.makeLine('剪切宽度 trimwidth', pick('trimwidth')),
|
||||
this.makeLine('trtens', pick('trtens'))
|
||||
],
|
||||
''
|
||||
));
|
||||
}
|
||||
|
||||
if (this.$refs.chartTemp) {
|
||||
c7 = echarts.init(this.$refs.chartTemp);
|
||||
c7.setOption(this.baseOption(
|
||||
'温度趋势 (℃)', xData,
|
||||
[
|
||||
this.makeLine('1号测温 tk1temp', pick('tk1temp')),
|
||||
this.makeLine('2号测温 tk2temp', pick('tk2temp')),
|
||||
this.makeLine('3号测温 tk3temp', pick('tk3temp')),
|
||||
this.makeLine('4号测温 tk4temp', pick('tk4temp')),
|
||||
this.makeLine('漂洗温度 rinsetemp', pick('rinsetemp'))
|
||||
],
|
||||
'℃'
|
||||
));
|
||||
}
|
||||
|
||||
if (this.$refs.chartMesh) {
|
||||
c8 = echarts.init(this.$refs.chartMesh);
|
||||
c8.setOption(this.baseOption(
|
||||
'网纹辊参数', xData,
|
||||
[
|
||||
this.makeLine('网纹辊1 tlmesh1', pick('tlmesh1')),
|
||||
this.makeLine('网纹辊2 tlmesh2', pick('tlmesh2')),
|
||||
this.makeLine('网纹辊3 tlmesh3', pick('tlmesh3'))
|
||||
],
|
||||
''
|
||||
));
|
||||
}
|
||||
|
||||
if (this.$refs.chartElong) {
|
||||
c9 = echarts.init(this.$refs.chartElong);
|
||||
c9.setOption(this.baseOption(
|
||||
'延伸率', xData,
|
||||
[
|
||||
this.makeLine('延伸率 tlelong', pick('tlelong')),
|
||||
this.makeLine('总张力 tltens', pick('tltens')),
|
||||
this.makeLine('teltens', pick('teltens'))
|
||||
],
|
||||
''
|
||||
));
|
||||
}
|
||||
|
||||
this.chartInstances = [c1, c2, c3, c4, c5, c6, c7, c8, c9].filter(c => c);
|
||||
this.resizeHandler = () => this.chartInstances.forEach(c => { if (c) c.resize(); });
|
||||
window.addEventListener('resize', this.resizeHandler);
|
||||
},
|
||||
|
||||
@@ -27,6 +27,12 @@
|
||||
<el-col :span="16" class="detail-value">{{ step.time }}</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 新增步骤专属显示卷号 -->
|
||||
<el-row class="detail-row" v-if="step.action === '创建'">
|
||||
<el-col :span="8" class="detail-label">卷号:</el-col>
|
||||
<el-col :span="16" class="detail-value">{{ step.original.current_coil_no }}</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 旧钢卷关键信息(操作前)- 新增优化:展示核心字段,hover弹窗更多信息 -->
|
||||
<el-row class="detail-row" v-if="step.oldCoilInfoList && step.oldCoilInfoList.length">
|
||||
<el-col :span="8" class="detail-label">操作前钢卷:</el-col>
|
||||
|
||||
@@ -162,8 +162,6 @@ const DICT_SPEC_TYPE = 'wms_process_spec_type'
|
||||
const DICT_LINE = 'wms_process_spec_line'
|
||||
|
||||
const DEFAULT_SPEC_TYPES = [
|
||||
{ dictLabel: '工艺规程', dictValue: 'PROCESS', dictSort: 10 },
|
||||
{ dictLabel: '标准', dictValue: 'STANDARD', dictSort: 20 }
|
||||
]
|
||||
|
||||
export default {
|
||||
@@ -303,19 +301,19 @@ export default {
|
||||
}
|
||||
|
||||
let tableLines = []
|
||||
try {
|
||||
const res = await listProductionLine({ pageNum: 1, pageSize: 500 })
|
||||
tableLines = (res.rows || []).map(p => {
|
||||
const idStr = this.normalizeLineIdString(p.lineId) || (p.lineId != null ? String(p.lineId).trim() : '')
|
||||
return {
|
||||
lineId: idStr,
|
||||
lineName: p.lineName,
|
||||
lineCode: p.lineCode
|
||||
}
|
||||
}).filter(p => p.lineId)
|
||||
} catch (e2) {
|
||||
console.error('产线列表加载失败', e2)
|
||||
}
|
||||
// try {
|
||||
// const res = await listProductionLine({ pageNum: 1, pageSize: 500 })
|
||||
// tableLines = (res.rows || []).map(p => {
|
||||
// const idStr = this.normalizeLineIdString(p.lineId) || (p.lineId != null ? String(p.lineId).trim() : '')
|
||||
// return {
|
||||
// lineId: idStr,
|
||||
// lineName: p.lineName,
|
||||
// lineCode: p.lineCode
|
||||
// }
|
||||
// }).filter(p => p.lineId)
|
||||
// } catch (e2) {
|
||||
// console.error('产线列表加载失败', e2)
|
||||
// }
|
||||
|
||||
const tableIdSet = new Set(tableLines.map(l => String(l.lineId)))
|
||||
const next = []
|
||||
|
||||
Reference in New Issue
Block a user