perf(database): 优化数据库查询性能和前端请求处理
- 优化ActivityDefinitionManageMapper.xml中的分页查询,减少JOIN操作并使用索引友好的写法 - 修复purchaseinventory组件中API调用的数据传递格式问题 - 将前端请求超时时间从60秒增加到120秒以配合后端超时设置 - 在手术申请页面添加远程搜索防抖功能,避免频繁API调用 - 重构SurgeryAppServiceImpl中的名称字段填充逻辑,使用批量查询减少数据库访问次数 - 优化SurgeryMapper.xml中的分页查询,使用子查询预加载关联数据并减少不必要的JOIN
This commit is contained in:
@@ -556,6 +556,10 @@ const anesthesiaNameList = ref([])
|
||||
const surgeryLoading = ref(false)
|
||||
const anesthesiaLoading = ref(false)
|
||||
|
||||
// 防抖定时器
|
||||
let surgerySearchTimer = null
|
||||
let anesthesiaSearchTimer = null
|
||||
|
||||
// 计算总费用
|
||||
const totalCalculatedFee = computed(() => {
|
||||
const surgeryFee = parseFloat(form.value.surgeryFee || 0)
|
||||
@@ -868,8 +872,18 @@ function handleRefresh() {
|
||||
proxy.$modal.msgSuccess('刷新成功')
|
||||
}
|
||||
|
||||
// 远程搜索手术项目
|
||||
// 远程搜索手术项目(添加300ms防抖)
|
||||
function remoteSearchSurgery(query) {
|
||||
if (surgerySearchTimer) {
|
||||
clearTimeout(surgerySearchTimer)
|
||||
}
|
||||
surgerySearchTimer = setTimeout(() => {
|
||||
doSearchSurgery(query)
|
||||
}, 300)
|
||||
}
|
||||
|
||||
// 实际执行手术搜索
|
||||
function doSearchSurgery(query) {
|
||||
surgeryLoading.value = true
|
||||
getDiagnosisTreatmentList({
|
||||
searchKey: query || '',
|
||||
@@ -900,8 +914,18 @@ function remoteSearchSurgery(query) {
|
||||
})
|
||||
}
|
||||
|
||||
// 远程搜索麻醉项目
|
||||
// 远程搜索麻醉项目(添加300ms防抖)
|
||||
function remoteSearchAnesthesia(query) {
|
||||
if (anesthesiaSearchTimer) {
|
||||
clearTimeout(anesthesiaSearchTimer)
|
||||
}
|
||||
anesthesiaSearchTimer = setTimeout(() => {
|
||||
doSearchAnesthesia(query)
|
||||
}, 300)
|
||||
}
|
||||
|
||||
// 实际执行麻醉搜索
|
||||
function doSearchAnesthesia(query) {
|
||||
anesthesiaLoading.value = true
|
||||
getDiagnosisTreatmentList({
|
||||
searchKey: query || '',
|
||||
|
||||
Reference in New Issue
Block a user