perf: 优化管理端生产加载体验

- 图标与重型组件按需加载,优化菜单预取和页面请求链路

- 开启 gzip 与静态缓存并修复子路由 KeepAlive 冲突
This commit is contained in:
2026-07-22 20:35:55 +08:00
parent 9f06c238d3
commit 19059fde96
27 changed files with 750 additions and 233 deletions

View File

@@ -7,9 +7,14 @@ import type {
} from '#/components/page/CardList.vue';
import type { OfflineImpactCheck } from '#/views/ai/shared/offline-impact';
import { computed, h, markRaw, onMounted, ref } from 'vue';
import ElXMarkdown from 'vue-element-plus-x/es/XMarkdown/index.js';
import {
computed,
defineAsyncComponent,
h,
markRaw,
onMounted,
ref,
} from 'vue';
import { useAccess } from '@easyflow/access';
import { EasyFlowFormModal } from '@easyflow/common-ui';
@@ -40,6 +45,7 @@ import {
ElMessage,
ElMessageBox,
ElPopover,
ElSkeleton,
} from 'element-plus';
import { tryit } from 'radash';
@@ -67,6 +73,10 @@ import {
import WorkflowModal from './WorkflowModal.vue';
const ElXMarkdown = defineAsyncComponent(
() => import('vue-element-plus-x/es/XMarkdown/index.js'),
);
const { apiURL } = useAppConfig(import.meta.env, import.meta.env.PROD);
interface FieldDefinition {
@@ -1007,11 +1017,16 @@ function handleHeaderButtonClick(data: any) {
class="workflow-api-markdown-wrap"
@click="handleApiDocClick"
>
<ElXMarkdown
:markdown="apiDocMarkdown"
:allow-html="true"
:sanitize="false"
/>
<Suspense>
<ElXMarkdown
:markdown="apiDocMarkdown"
:allow-html="true"
:sanitize="false"
/>
<template #fallback>
<ElSkeleton :rows="6" animated />
</template>
</Suspense>
</div>
</ElDialog>
<HeaderSearch