perf(database): 优化数据库查询性能和前端请求处理
- 优化ActivityDefinitionManageMapper.xml中的分页查询,减少JOIN操作并使用索引友好的写法 - 修复purchaseinventory组件中API调用的数据传递格式问题 - 将前端请求超时时间从60秒增加到120秒以配合后端超时设置 - 在手术申请页面添加远程搜索防抖功能,避免频繁API调用 - 重构SurgeryAppServiceImpl中的名称字段填充逻辑,使用批量查询减少数据库访问次数 - 优化SurgeryMapper.xml中的分页查询,使用子查询预加载关联数据并减少不必要的JOIN
This commit is contained in:
@@ -22,7 +22,7 @@ axios.defaults.headers['Request-Method-Name'] = 'login'
|
||||
// 创建axios实例
|
||||
const service = axios.create({
|
||||
baseURL: import.meta.env.VITE_APP_BASE_API,
|
||||
timeout: 60000,
|
||||
timeout: 120000, // 增加到120秒,配合后端超时设置
|
||||
// 新增:重写响应解析逻辑,大数字自动转字符串(移到这里!)
|
||||
transformResponse: [
|
||||
function (data) {
|
||||
|
||||
@@ -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 || '',
|
||||
|
||||
@@ -58,7 +58,7 @@ export function submitApproval(busNo) {
|
||||
return request({
|
||||
url: '/inventory-manage/purchase/submit-approval',
|
||||
method: 'put',
|
||||
data: busNo
|
||||
data: { busNo: busNo }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ export function withdrawApproval(busNo) {
|
||||
return request({
|
||||
url: '/inventory-manage/purchase/withdraw-approval',
|
||||
method: 'put',
|
||||
data: busNo
|
||||
data: { busNo: busNo }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ export function submitApprovalReturn(busNo) {
|
||||
return request({
|
||||
url: '/inventory-manage/return/return-submit-approval',
|
||||
method: 'put',
|
||||
data: busNo
|
||||
data: { busNo: busNo }
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user