优化查询
This commit is contained in:
parent
cc8d5f74e3
commit
e4501658ae
@ -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] // 设置日期范围为今天到今天
|
||||
// 使用防抖处理日期范围设置
|
||||
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) {
|
||||
|
Loading…
Reference in New Issue
Block a user