From f9fd5e648862c17e7d515ee7d44ad3d09a9d2621 Mon Sep 17 00:00:00 2001 From: huangjinysf Date: Tue, 23 Dec 2025 16:52:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=91=E5=B7=B2=E4=BF=AE=E5=A4=8D=E4=BA=86?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E6=A1=86=E9=80=89=E6=8B=A9=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E9=A1=B9=E4=B8=8D=E7=AD=9B=E9=80=89=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82=E4=B8=BB=E8=A6=81=E5=81=9A=E4=BA=86=E4=BB=A5?= =?UTF-8?q?=E4=B8=8B=E5=87=A0=E7=82=B9=E6=94=B9=E8=BF=9B=EF=BC=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加了 @clear 事件处理,确保清除选择时也能正确显示所有数据 增加了 selectedBreakdownName 的 watch 监听器,确保其值变化时总是触发筛选 修改了 filterRecordsByBreakdownName 函数,确保它能正确处理所有传入值 在获取维修记录数据后,确保筛选器正确初始化 添加了控制台日志,便于调试和跟踪筛选过程 --- src/views/eq/RepairSummary.vue | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/src/views/eq/RepairSummary.vue b/src/views/eq/RepairSummary.vue index fb0ddc1..fbd958a 100644 --- a/src/views/eq/RepairSummary.vue +++ b/src/views/eq/RepairSummary.vue @@ -57,6 +57,7 @@ placeholder="全部故障" clearable @change="filterRecordsByBreakdownName" + @clear="filterRecordsByBreakdownName" > props.dateRange, (newVal, oldVal) => { } }, { deep: true }); +// 监听故障名称变化,确保筛选能正常工作 +watch(selectedBreakdownName, (newVal, oldVal) => { + console.log('故障名称从', oldVal, '变化为', newVal); + // 当故障名称变化时,执行筛选 + filterRecordsByBreakdownName(); +}); + // 组件加载时自动获取数据 onMounted(() => { console.log('组件加载,设备类型:', props.selectedEquipmentType); @@ -228,6 +236,10 @@ const fetchRepairRecords = (equipmentCode) => { // 提取所有唯一的故障名称 const breakdownNames = [...new Set(data.data.map(record => record.breakdown_name).filter(Boolean))] uniqueBreakdownNames.value = breakdownNames + + // 确保筛选器初始化正确 + selectedBreakdownName.value = '' + filteredRepairRecords.value = [...selectedRepairRecords.value] } else { selectedRepairRecords.value = [] filteredRepairRecords.value = [] @@ -246,16 +258,28 @@ const fetchRepairRecords = (equipmentCode) => { } // 根据故障名称筛选维修记录 -const filterRecordsByBreakdownName = () => { - if (!selectedBreakdownName.value) { +const filterRecordsByBreakdownName = (value) => { + console.log('筛选故障名称:', value, 'selectedBreakdownName.value:', selectedBreakdownName.value) + + // 如果有传入的值,更新 selectedBreakdownName + if (value !== undefined) { + selectedBreakdownName.value = value + } + + // 获取筛选值,处理空值情况 + const filterValue = selectedBreakdownName.value || '' + + if (!filterValue) { // 如果没有选择故障名称,显示所有记录 filteredRepairRecords.value = [...selectedRepairRecords.value] } else { // 根据选择的故障名称筛选 filteredRepairRecords.value = selectedRepairRecords.value.filter( - record => record.breakdown_name === selectedBreakdownName.value + record => record.breakdown_name === filterValue ) } + + console.log('筛选后记录数:', filteredRepairRecords.value.length) } // 关闭维修记录对话框