1
0
Prechádzať zdrojové kódy

[Pref 0000] 优化可配置首页加载性能

houzekong 3 dní pred
rodič
commit
e4a7a5eaca

+ 5 - 4
src/store/modules/permission.ts

@@ -132,10 +132,11 @@ export const usePermissionStore = defineStore({
       const codeList = systemPermission.auth;
       this.setPermCodeList(codeList);
       this.setAuthData(systemPermission);
+
+      return systemPermission;
     },
 
     async buildRoutesAction(): Promise<AppRouteRecordRaw[]> {
-      const { t } = useI18n();
       const userStore = useUserStore();
       const appStore = useAppStoreWithOut();
 
@@ -212,7 +213,7 @@ export const usePermissionStore = defineStore({
 
         // 后台菜单构建
         case PermissionModeEnum.BACK:
-          const { createMessage, createWarningModal } = useMessage();
+          const { createWarningModal } = useMessage();
           // 菜单加载提示
           // createMessage.loading({
           //   content: t('sys.app.menuLoading'),
@@ -223,8 +224,8 @@ export const usePermissionStore = defineStore({
           // 这个函数可能只需要执行一次,并且实际的项目可以在正确的时间被放置
           let routeList: AppRouteRecordRaw[] = [];
           try {
-            this.changePermissionCode();
-            routeList = (await getMenuList()) as AppRouteRecordRaw[];
+            const { menu } = await this.changePermissionCode();
+            routeList = menu as AppRouteRecordRaw[];
 
             if (routeList.length < 1) {
               createWarningModal({

+ 25 - 24
src/views/vent/home/configurable/components/content.vue

@@ -174,7 +174,7 @@
   </div>
 </template>
 <script lang="ts" setup>
-  import { computed } from 'vue';
+  import { computed, defineAsyncComponent } from 'vue';
   import {
     CommonItem,
     Config,
@@ -184,31 +184,32 @@
     // ModuleDataPreset,
     // ModuleDataTable,
   } from '../../../deviceManager/configurationTable/types';
-  import MiniBoard from './detail/MiniBoard.vue';
-  import TimelineList from './detail/TimelineList.vue';
-  import TimelineListNew from './detail/TimelineListNew.vue';
-  import CustomList from './detail/CustomList.vue';
-  import CustomGallery from './detail/CustomGallery.vue';
-  import ComplexList from './detail/ComplexList.vue';
-  import GalleryList from './detail/GalleryList.vue';
-  import CustomTable from './detail/CustomTable.vue';
-  import CustomChart from './detail/CustomChart.vue';
   import { clone } from 'lodash-es';
   import { getData, getFormattedText } from '../hooks/helper';
-  import BlastDelta from '../../../monitorManager/deviceMonitor/components/device/modal/blastDelta.vue';
-  import QHCurve from './preset/QHCurve.vue';
-  import MeasureDetail from './preset/MeasureDetail.vue';
-  import CustomTabs from './preset/CustomTabs.vue';
-  import AIChat from '/@/components/AIChat/MiniChat.vue';
-  import DeviceAlarm from './preset/DeviceAlarm.vue';
-  import SelectCs from './preset/SelectCs.vue';
-  import MiniBoardNew from './detail/MiniBoard-New.vue';
-  import Partition from './preset/partition.vue';
-  import SelectorDualChart from './preset/selectorDualChart.vue';
-  import RadioLabel from './preset/radioLabel.vue';
-  import ButtonList from './preset/buttonList.vue';
-  import cardList from './preset/cardList.vue';
-  import generalList from './preset/generalList.vue';
+
+  const MiniBoard = defineAsyncComponent(() => import('./detail/MiniBoard.vue'));
+  const TimelineList = defineAsyncComponent(() => import('./detail/TimelineList.vue'));
+  const TimelineListNew = defineAsyncComponent(() => import('./detail/TimelineListNew.vue'));
+  const CustomList = defineAsyncComponent(() => import('./detail/CustomList.vue'));
+  const CustomGallery = defineAsyncComponent(() => import('./detail/CustomGallery.vue'));
+  const ComplexList = defineAsyncComponent(() => import('./detail/ComplexList.vue'));
+  const GalleryList = defineAsyncComponent(() => import('./detail/GalleryList.vue'));
+  const CustomTable = defineAsyncComponent(() => import('./detail/CustomTable.vue'));
+  const CustomChart = defineAsyncComponent(() => import('./detail/CustomChart.vue'));
+  const BlastDelta = defineAsyncComponent(() => import('../../../monitorManager/deviceMonitor/components/device/modal/blastDelta.vue'));
+  const QHCurve = defineAsyncComponent(() => import('./preset/QHCurve.vue'));
+  const MeasureDetail = defineAsyncComponent(() => import('./preset/MeasureDetail.vue'));
+  const CustomTabs = defineAsyncComponent(() => import('./preset/CustomTabs.vue'));
+  const AIChat = defineAsyncComponent(() => import('/@/components/AIChat/MiniChat.vue'));
+  const DeviceAlarm = defineAsyncComponent(() => import('./preset/DeviceAlarm.vue'));
+  const SelectCs = defineAsyncComponent(() => import('./preset/SelectCs.vue'));
+  const MiniBoardNew = defineAsyncComponent(() => import('./detail/MiniBoard-New.vue'));
+  const Partition = defineAsyncComponent(() => import('./preset/partition.vue'));
+  const SelectorDualChart = defineAsyncComponent(() => import('./preset/selectorDualChart.vue'));
+  const RadioLabel = defineAsyncComponent(() => import('./preset/radioLabel.vue'));
+  const ButtonList = defineAsyncComponent(() => import('./preset/buttonList.vue'));
+  const cardList = defineAsyncComponent(() => import('./preset/cardList.vue'));
+  const generalList = defineAsyncComponent(() => import('./preset/generalList.vue'));
 
   // import FIreWarn from './preset/FIreWarn.vue';
   // import FIreControl from './preset/FIreControl.vue';