perf(database): 优化数据库查询性能和前端请求处理

- 优化ActivityDefinitionManageMapper.xml中的分页查询,减少JOIN操作并使用索引友好的写法
- 修复purchaseinventory组件中API调用的数据传递格式问题
- 将前端请求超时时间从60秒增加到120秒以配合后端超时设置
- 在手术申请页面添加远程搜索防抖功能,避免频繁API调用
- 重构SurgeryAppServiceImpl中的名称字段填充逻辑,使用批量查询减少数据库访问次数
- 优化SurgeryMapper.xml中的分页查询,使用子查询预加载关联数据并减少不必要的JOIN
This commit is contained in:
2026-03-04 18:32:06 +08:00
parent 7008fb007f
commit 8af06f6916
6 changed files with 244 additions and 138 deletions

View File

@@ -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 || '',