From 81b1d5327b0015f14c11698d6ffaa4c75fa802a6 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:25:10 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=85=B6=E4=BB=96=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20Store=20=E7=BC=93=E5=AD=98=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - EducationDialog.vue: 区域树、学科列表使用 Store - school/index.vue: 区域树使用 Store 所有基础数据调用统一使用 Store,命中缓存后秒加载 --- .../business/member/components/EducationDialog.vue | 13 +++++++------ .../ruoyi-ui/src/views/business/school/index.vue | 10 +++++----- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/frontend/ruoyi-ui/src/views/business/member/components/EducationDialog.vue b/frontend/ruoyi-ui/src/views/business/member/components/EducationDialog.vue index 29010a9..c654f0a 100644 --- a/frontend/ruoyi-ui/src/views/business/member/components/EducationDialog.vue +++ b/frontend/ruoyi-ui/src/views/business/member/components/EducationDialog.vue @@ -64,6 +64,9 @@ import request from '@/utils/request' import { ElMessage } from 'element-plus' import { reactive, ref } from 'vue' +import useBaseDataStore from '@/store/modules/baseData' + +const baseDataStore = useBaseDataStore() const emit = defineEmits(['success', 'add', 'update']) @@ -165,24 +168,22 @@ const resetForm = () => { } /** - * 加载区域树 + * 加载区域树(使用 Store 缓存) */ const loadRegionTree = async () => { try { - const res = await request.get('/business/region/tree') - regionTree.value = res.data || [] + regionTree.value = await baseDataStore.fetchRegionTree() } catch (e) { regionTree.value = [] } } /** - * 加载学科列表 + * 加载学科列表(使用 Store 缓存) */ const loadSubjectList = async () => { try { - const res = await request.get('/business/subject/listAll') - subjectList.value = res.data || [] + subjectList.value = await baseDataStore.fetchSubjects() } catch (e) { subjectList.value = [] } diff --git a/frontend/ruoyi-ui/src/views/business/school/index.vue b/frontend/ruoyi-ui/src/views/business/school/index.vue index 1647c55..2a66e66 100644 --- a/frontend/ruoyi-ui/src/views/business/school/index.vue +++ b/frontend/ruoyi-ui/src/views/business/school/index.vue @@ -132,6 +132,9 @@ import request from '@/utils/request' import ClassDialog from './components/ClassDialog.vue' import GradeDialog from './components/GradeDialog.vue' import SchoolDialog from './components/SchoolDialog.vue' +import useBaseDataStore from '@/store/modules/baseData' + +const baseDataStore = useBaseDataStore() // 区域树相关 const treeRef = ref() @@ -166,12 +169,9 @@ const filterNode = (value, data) => { return data.regionName.includes(value) } -// 获取区域树 +// 获取区域树(使用 Store 缓存) const getRegionTree = async () => { - const res = await request.get('/business/region/tree') - if (res.code === 200) { - regionTree.value = res.data - } + regionTree.value = await baseDataStore.fetchRegionTree() } // 获取学校树形数据(包含年级和班级)