优化查询

This commit is contained in:
Euni4U 2025-04-16 09:37:27 +08:00
parent cc8d5f74e3
commit e4501658ae

View File

@ -1842,35 +1842,42 @@ const handleCurrentChange = async (val) => {
loading.value = true
const params = {
pageNo: pageNo.value,
pageSize: pageSize.value,
isprint: null
pageSize: pageSize.value
}
//
//
if (statusFilter.value === '2') {
// isprint 1
params.isprint = 1
//
if (dateRange.value && dateRange.value.length === 2) {
const [startDate, endDate] = dateRange.value
if (dateRange.value?.length === 2) {
params.printTimeRange = [
startDate ? `${startDate} 00:00:00` : null,
endDate ? `${endDate} 23:59:59` : null
`${dateRange.value[0]} 00:00:00`,
`${dateRange.value[1]} 23:59:59`
]
}
} else {
// 使 status
params.status = statusFilter.value
}
//
const cacheKey = JSON.stringify(params)
if (patientDataCache.value.has(cacheKey)) {
const cachedData = patientDataCache.value.get(cacheKey)
patients.value = cachedData.list
total.value = cachedData.total
loading.value = false
return
}
const res = await PatientApi.getPatientPage(params)
//
patientDataCache.value.set(cacheKey, res)
//
patients.value = res.list
total.value = res.total
loading.value = false
} catch (error) {
console.error('获取患者列表失败:', error)
ElMessage.error('获取患者列表失败')
} finally {
loading.value = false
}
}
@ -2421,23 +2428,20 @@ const debouncedStatusChange = debounce(async (value) => {
//
const handleStatusFilterChange = (value) => {
statusFilter.value = value
// 1
pageNo.value = 1
// ""
if (value === '2') {
//
if (!dateRange.value || dateRange.value.length === 0) {
const today = new Date().toISOString().split('T')[0] // YYYY-MM-DD
dateRange.value = [today, today] //
}
// 使
handleDateRangeChange(dateRange.value)
// 使
const debouncedDateChange = debounce(() => {
if (!dateRange.value?.length) {
const today = new Date().toISOString().split('T')[0]
dateRange.value = [today, today]
}
handleDateRangeChange(dateRange.value)
}, 300)
debouncedDateChange()
} else {
//
dateRange.value = []
//
debouncedStatusChange(value)
}
}
@ -2754,19 +2758,30 @@ const handleDateRangeChange = async (val) => {
const params = {
pageNo: pageNo.value,
pageSize: pageSize.value,
isprint: 1, //
isprint: 1 //
}
//
if (val && val.length === 2) {
const [startDate, endDate] = val
params.printTimeRange = [
startDate ? `${startDate} 00:00:00` : null,
endDate ? `${endDate} 23:59:59` : null
`${val[0]} 00:00:00`,
`${val[1]} 23:59:59`
]
}
//
const cacheKey = JSON.stringify(params)
if (patientDataCache.value.has(cacheKey)) {
const cachedData = patientDataCache.value.get(cacheKey)
patients.value = cachedData.list
total.value = cachedData.total
loading.value = false
return
}
const res = await PatientApi.getPatientPage(params)
//
patientDataCache.value.set(cacheKey, res)
patients.value = res.list
total.value = res.total
} catch (error) {