From d0d0f0ee6da82bd5eb83f539e8b9b7154b536fd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E7=A0=81-=E6=96=B9=E6=99=93=E8=BE=89?= Date: Tue, 3 Feb 2026 17:40:59 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=89=80=E6=9C=89=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8B=E6=8B=89=E7=BB=9F=E4=B8=80=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20Store=20=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改以下组件使用 baseDataStore: - business/school/components/GradeDialog.vue (年级) - business/school/components/ClassDialog.vue (班级) - school/index.vue (区域树) - school/components/GradeDialog.vue (年级) - school/components/ClassDialog.vue (年级+班级) - member/components/MemberDialog.vue (区域树) 登录后预加载数据,后续全部命中缓存 --- .../school/components/ClassDialog.vue | 23 ++++++++++--------- .../school/components/GradeDialog.vue | 23 ++++++++++--------- .../views/member/components/MemberDialog.vue | 10 ++++---- .../views/school/components/ClassDialog.vue | 19 +++++++-------- .../views/school/components/GradeDialog.vue | 12 +++++----- frontend/ruoyi-ui/src/views/school/index.vue | 10 ++++---- 6 files changed, 49 insertions(+), 48 deletions(-) diff --git a/frontend/ruoyi-ui/src/views/business/school/components/ClassDialog.vue b/frontend/ruoyi-ui/src/views/business/school/components/ClassDialog.vue index 7669542..6b2c7c0 100644 --- a/frontend/ruoyi-ui/src/views/business/school/components/ClassDialog.vue +++ b/frontend/ruoyi-ui/src/views/business/school/components/ClassDialog.vue @@ -39,7 +39,10 @@ */ import { ElMessage } from 'element-plus' import { onMounted, ref } from 'vue' -import { addGradeClass, getClassOptions } from '@/api/pangu/school' +import { addGradeClass } from '@/api/pangu/school' +import useBaseDataStore from '@/store/modules/baseData' + +const baseDataStore = useBaseDataStore() const emit = defineEmits(['success']) @@ -59,18 +62,16 @@ const form = ref({ // 已有班级ID列表 const existingClassIds = ref([]) -// 获取班级选项 +// 获取班级选项(使用 Store 缓存) const fetchClassOptions = async () => { try { - const res = await getClassOptions() - if (res.code === 200) { - // 转换为选项格式 { value: classId, label: className } - classOptions.value = (res.data || []).map(item => ({ - value: item.classId, - label: item.className, - disabled: existingClassIds.value.includes(item.classId) - })) - } + const data = await baseDataStore.fetchClasses() + // 转换为选项格式 { value: classId, label: className } + classOptions.value = (data || []).map(item => ({ + value: item.classId, + label: item.className, + disabled: existingClassIds.value.includes(item.classId) + })) } catch (error) { console.error('获取班级选项失败:', error) } diff --git a/frontend/ruoyi-ui/src/views/business/school/components/GradeDialog.vue b/frontend/ruoyi-ui/src/views/business/school/components/GradeDialog.vue index 01e3220..ab4353d 100644 --- a/frontend/ruoyi-ui/src/views/business/school/components/GradeDialog.vue +++ b/frontend/ruoyi-ui/src/views/business/school/components/GradeDialog.vue @@ -39,7 +39,10 @@ */ import { ElMessage } from 'element-plus' import { onMounted, ref } from 'vue' -import { addSchoolGrade, getGradeOptions } from '@/api/pangu/school' +import { addSchoolGrade } from '@/api/pangu/school' +import useBaseDataStore from '@/store/modules/baseData' + +const baseDataStore = useBaseDataStore() const emit = defineEmits(['success']) @@ -58,18 +61,16 @@ const form = ref({ // 已有年级ID列表 const existingGradeIds = ref([]) -// 获取年级选项 +// 获取年级选项(使用 Store 缓存) const fetchGradeOptions = async () => { try { - const res = await getGradeOptions() - if (res.code === 200) { - // 转换为选项格式 { value: gradeId, label: gradeName } - gradeOptions.value = (res.data || []).map(item => ({ - value: item.gradeId, - label: item.gradeName, - disabled: existingGradeIds.value.includes(item.gradeId) - })) - } + const data = await baseDataStore.fetchGrades() + // 转换为选项格式 { value: gradeId, label: gradeName } + gradeOptions.value = (data || []).map(item => ({ + value: item.gradeId, + label: item.gradeName, + disabled: existingGradeIds.value.includes(item.gradeId) + })) } catch (error) { console.error('获取年级选项失败:', error) } diff --git a/frontend/ruoyi-ui/src/views/member/components/MemberDialog.vue b/frontend/ruoyi-ui/src/views/member/components/MemberDialog.vue index 47c88b9..1ea6052 100644 --- a/frontend/ruoyi-ui/src/views/member/components/MemberDialog.vue +++ b/frontend/ruoyi-ui/src/views/member/components/MemberDialog.vue @@ -147,10 +147,13 @@