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) } // 关闭维修记录对话框