修改
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
<div class="equipment-info">
|
||||
<div class="info">
|
||||
<div class="num equipment">
|
||||
{{ countEq ? countEq : 0 }}
|
||||
{{ globalCount.total ? globalCount.total : 0 }}
|
||||
</div>
|
||||
<div class="title">
|
||||
设备数量
|
||||
@@ -28,7 +28,7 @@
|
||||
<div class="equipment-info">
|
||||
<div class="info">
|
||||
<div class="num run">
|
||||
{{ countRun ? countRun : 0 }}
|
||||
{{ globalCount.run ? globalCount.run : 0 }}
|
||||
</div>
|
||||
<div class="title">
|
||||
运行数量
|
||||
@@ -41,7 +41,7 @@
|
||||
<div class="equipment-info">
|
||||
<div class="info">
|
||||
<div class="num stop">
|
||||
{{ countStop ? countStop : 0 }}
|
||||
{{ globalCount.stop ? globalCount.stop : 0 }}
|
||||
</div>
|
||||
<div class="title">
|
||||
停机数量
|
||||
@@ -75,7 +75,7 @@
|
||||
</div>
|
||||
<div class="eqRun">
|
||||
<!-- 循环渲染设备列表:key绑定唯一equipmentId -->
|
||||
<div v-for="item in list" :key="item.equipmentId" class="eqItem" :class="{
|
||||
<div v-for="item in filteredList" :key="item.equipmentId" class="eqItem" :class="{
|
||||
'eq-item-disabled-false': !disabled,
|
||||
'eq-item-disabled-true': disabled
|
||||
}">
|
||||
@@ -166,13 +166,25 @@
|
||||
</div>
|
||||
|
||||
<div class="progress-text">
|
||||
<!-- 运行百分比:显示item.run的值 -->
|
||||
<!-- 运行百分比:显示item.run的值(增加值存在性判断) -->
|
||||
<div class="run" :style="!disabled ? { color: 'rgba(180, 180, 180, 1)' } : {}">
|
||||
运行 {{ !disabled ? '—' : `${item.run.toFixed(1)}%` }}
|
||||
运行 {{
|
||||
!disabled
|
||||
? '—'
|
||||
: (item.run !== undefined && item.run !== null && !isNaN(item.run))
|
||||
? `${item.run.toFixed(1) }%`
|
||||
: '—'
|
||||
}}
|
||||
</div>
|
||||
<!-- 停机百分比:显示item.stop的值 -->
|
||||
<!-- 停机百分比:显示item.stop的值(增加值存在性判断) -->
|
||||
<div class="stop" :style="!disabled ? { color: 'rgba(180, 180, 180, 1)' } : {}">
|
||||
停机 {{ !disabled ? '—' : `${item.stop.toFixed(1)}%` }}
|
||||
停机 {{
|
||||
!disabled
|
||||
? '—'
|
||||
: (item.stop !== undefined && item.stop !== null && !isNaN(item.stop))
|
||||
? `${item.stop.toFixed(1) }%`
|
||||
: '—'
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -247,7 +259,7 @@ export default {
|
||||
type: 'select',
|
||||
label: '设备类型',
|
||||
selectOptions: [],
|
||||
param: 'equipmentType',
|
||||
param: 'equipmentTypeId',
|
||||
// labelField: 'label',
|
||||
// valueField: 'label',
|
||||
},
|
||||
@@ -256,6 +268,7 @@ export default {
|
||||
label: '设备名称',
|
||||
selectOptions: [],
|
||||
param: 'equipmentIds',
|
||||
showAllLevels: false,
|
||||
clearable: false,
|
||||
cascaderProps: {
|
||||
multiple: true,
|
||||
@@ -299,6 +312,33 @@ export default {
|
||||
this.getLineData()
|
||||
this.getDataList()
|
||||
},
|
||||
computed: {
|
||||
// 筛选后的列表(按 status 变化,不影响统计)
|
||||
filteredList() {
|
||||
if (this.status === undefined) {
|
||||
return this.list; // 全部数据
|
||||
}
|
||||
// 只筛选列表,不改变统计
|
||||
return this.list.filter(item => item.status === this.status);
|
||||
},
|
||||
// 全局统计(基于原始 list,不随 status 变化)
|
||||
globalCount() {
|
||||
// 优先使用接口返回的统计数据(如果接口提供)
|
||||
if (this.countEq > 0 || this.countRun > 0 || this.countStop > 0) {
|
||||
return {
|
||||
total: this.countEq,
|
||||
run: this.countRun,
|
||||
stop: this.countStop
|
||||
};
|
||||
}
|
||||
// 接口未提供时,基于原始 list 计算(兜底方案)
|
||||
return {
|
||||
total: this.list.length,
|
||||
run: this.list.filter(item => item.status === 0).length,
|
||||
stop: this.list.filter(item => item.status === 1).length
|
||||
};
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
formatTime(time) {
|
||||
// 处理时间戳:10位秒级转13位毫秒级
|
||||
@@ -399,9 +439,10 @@ export default {
|
||||
// this.formConfig[2].selectOptions = res.data.list || [];
|
||||
// })
|
||||
const { data } = await this.$axios('/base/factory/getTree');
|
||||
this.formConfig[2].selectOptions = this.transformAndRemoveLastChildren(data)
|
||||
console.log('this.removeLastLevelChildren(data)', this.transformAndRemoveLastChildren(data))
|
||||
this.formConfig[2].selectOptions = data
|
||||
// console.log('this.removeLastLevelChildren(data)', this.transformAndRemoveLastChildren(data))
|
||||
},
|
||||
|
||||
// 切换按产线/按产品监控
|
||||
|
||||
// 搜索/导出按钮点击
|
||||
@@ -417,20 +458,35 @@ export default {
|
||||
break;
|
||||
case 'link':
|
||||
this.disabled = true;
|
||||
this.connectSSEBatch(this.listQuery.equipmentIds);
|
||||
let equipmentIds = []
|
||||
let arr = []
|
||||
this.list.forEach(ele => {
|
||||
console.log('ele',ele);
|
||||
|
||||
arr.push(ele.equipmentId)
|
||||
});
|
||||
console.log('arr', arr);
|
||||
|
||||
equipmentIds = arr
|
||||
this.connectSSEBatch(this.listQuery.equipmentIds.length > 0 ? this.listQuery.equipmentIds : equipmentIds);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
},
|
||||
|
||||
getDataList() {
|
||||
if (this.disabled === true) {
|
||||
this.closeAllSSE(); // 直接调用批量关闭方法
|
||||
this.disabled = false;
|
||||
this.isSSEConnected = false; // 重置连接状态
|
||||
}
|
||||
this.dataListLoading = true;
|
||||
this.listQuery.equipmentIds = this.searchBarData.equipmentIds || [];
|
||||
// this.listQuery.equipmentIds = [200301, 200302, 200303];
|
||||
|
||||
this.listQuery.lineId = this.searchBarData.lineId ? this.searchBarData.lineId : undefined;
|
||||
this.listQuery.equipmentTypeId = this.searchBarData.equipmentTypeId ? this.searchBarData.equipmentTypeId : undefined
|
||||
this.listQuery.status = this.status ? this.status : undefined
|
||||
// this.listQuery.status = this.status ? this.status : undefined
|
||||
this.urlOptions.getDataListURL(this.listQuery).then(res => {
|
||||
this.list = res.data.dets
|
||||
this.countEq = res.data.countEq
|
||||
@@ -460,8 +516,6 @@ export default {
|
||||
} else{
|
||||
this.status = undefined
|
||||
}
|
||||
// this.listQuery.status = this.status ? this.status : undefined
|
||||
this.getDataList()
|
||||
},
|
||||
closeSSE() {
|
||||
this.isDestroyed = true;
|
||||
@@ -473,6 +527,8 @@ export default {
|
||||
},
|
||||
// 方案1:箭头函数绑定 this(推荐)
|
||||
connectSSEBatch(equipmentIds) {
|
||||
console.log('equipmentIds'.equipmentIds);
|
||||
|
||||
this.closeAllSSE(); // 此时 this 指向组件实例
|
||||
|
||||
if (!equipmentIds || equipmentIds.length === 0) {
|
||||
|
||||
Reference in New Issue
Block a user