This commit is contained in:
‘937886381’
2025-12-09 16:57:38 +08:00
parent ccb925003e
commit b7ba173ca3
5 changed files with 405 additions and 267 deletions

View File

@@ -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) {