优化查询

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