diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/data.ts.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/data.ts.vm
index 33e204a46..8138f129c 100644
--- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/data.ts.vm
+++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/data.ts.vm
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { DICT_TYPE } from '@/utils/dict'
-import { required } from '@/utils/formRules'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 // 表单校验
 export const rules = reactive({
diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm
index 6b520c2c3..389458c51 100644
--- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm
+++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm
@@ -75,11 +75,6 @@
   </XModal>
 </template>
 <script setup lang="ts" name="${simpleClassName}">
-// 全局相关的 import
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
 import { FormExpose } from '@/components/Form'
 // 业务相关的 import
 import { rules, allSchemas } from './${classNameVar}.data'
diff --git a/yudao-ui-admin-vue3/.eslintrc-auto-import.json b/yudao-ui-admin-vue3/.eslintrc-auto-import.json
new file mode 100644
index 000000000..024c96a33
--- /dev/null
+++ b/yudao-ui-admin-vue3/.eslintrc-auto-import.json
@@ -0,0 +1,259 @@
+{
+  "globals": {
+    "EffectScope": true,
+    "ElMessage": true,
+    "ElMessageBox": true,
+    "ElTag": true,
+    "asyncComputed": true,
+    "autoResetRef": true,
+    "computed": true,
+    "computedAsync": true,
+    "computedEager": true,
+    "computedInject": true,
+    "computedWithControl": true,
+    "controlledComputed": true,
+    "controlledRef": true,
+    "createApp": true,
+    "createEventHook": true,
+    "createGlobalState": true,
+    "createInjectionState": true,
+    "createReactiveFn": true,
+    "createSharedComposable": true,
+    "createUnrefFn": true,
+    "customRef": true,
+    "debouncedRef": true,
+    "debouncedWatch": true,
+    "defineAsyncComponent": true,
+    "defineComponent": true,
+    "eagerComputed": true,
+    "effectScope": true,
+    "extendRef": true,
+    "getCurrentInstance": true,
+    "getCurrentScope": true,
+    "h": true,
+    "ignorableWatch": true,
+    "inject": true,
+    "isDefined": true,
+    "isProxy": true,
+    "isReactive": true,
+    "isReadonly": true,
+    "isRef": true,
+    "makeDestructurable": true,
+    "markRaw": true,
+    "nextTick": true,
+    "onActivated": true,
+    "onBeforeMount": true,
+    "onBeforeUnmount": true,
+    "onBeforeUpdate": true,
+    "onClickOutside": true,
+    "onDeactivated": true,
+    "onErrorCaptured": true,
+    "onKeyStroke": true,
+    "onLongPress": true,
+    "onMounted": true,
+    "onRenderTracked": true,
+    "onRenderTriggered": true,
+    "onScopeDispose": true,
+    "onServerPrefetch": true,
+    "onStartTyping": true,
+    "onUnmounted": true,
+    "onUpdated": true,
+    "pausableWatch": true,
+    "provide": true,
+    "reactify": true,
+    "reactifyObject": true,
+    "reactive": true,
+    "reactiveComputed": true,
+    "reactiveOmit": true,
+    "reactivePick": true,
+    "readonly": true,
+    "ref": true,
+    "refAutoReset": true,
+    "refDebounced": true,
+    "refDefault": true,
+    "refThrottled": true,
+    "refWithControl": true,
+    "resolveComponent": true,
+    "resolveRef": true,
+    "resolveUnref": true,
+    "shallowReactive": true,
+    "shallowReadonly": true,
+    "shallowRef": true,
+    "syncRef": true,
+    "syncRefs": true,
+    "templateRef": true,
+    "throttledRef": true,
+    "throttledWatch": true,
+    "toRaw": true,
+    "toReactive": true,
+    "toRef": true,
+    "toRefs": true,
+    "triggerRef": true,
+    "tryOnBeforeMount": true,
+    "tryOnBeforeUnmount": true,
+    "tryOnMounted": true,
+    "tryOnScopeDispose": true,
+    "tryOnUnmounted": true,
+    "unref": true,
+    "unrefElement": true,
+    "until": true,
+    "useActiveElement": true,
+    "useArrayEvery": true,
+    "useArrayFilter": true,
+    "useArrayFind": true,
+    "useArrayFindIndex": true,
+    "useArrayJoin": true,
+    "useArrayMap": true,
+    "useArrayReduce": true,
+    "useArraySome": true,
+    "useAsyncQueue": true,
+    "useAsyncState": true,
+    "useAttrs": true,
+    "useBase64": true,
+    "useBattery": true,
+    "useBluetooth": true,
+    "useBreakpoints": true,
+    "useBroadcastChannel": true,
+    "useBrowserLocation": true,
+    "useCached": true,
+    "useClipboard": true,
+    "useColorMode": true,
+    "useConfirmDialog": true,
+    "useCounter": true,
+    "useCssModule": true,
+    "useCssVar": true,
+    "useCssVars": true,
+    "useCurrentElement": true,
+    "useCycleList": true,
+    "useDark": true,
+    "useDateFormat": true,
+    "useDebounce": true,
+    "useDebounceFn": true,
+    "useDebouncedRefHistory": true,
+    "useDeviceMotion": true,
+    "useDeviceOrientation": true,
+    "useDevicePixelRatio": true,
+    "useDevicesList": true,
+    "useDisplayMedia": true,
+    "useDocumentVisibility": true,
+    "useDraggable": true,
+    "useDropZone": true,
+    "useElementBounding": true,
+    "useElementByPoint": true,
+    "useElementHover": true,
+    "useElementSize": true,
+    "useElementVisibility": true,
+    "useEventBus": true,
+    "useEventListener": true,
+    "useEventSource": true,
+    "useEyeDropper": true,
+    "useFavicon": true,
+    "useFetch": true,
+    "useFileDialog": true,
+    "useFileSystemAccess": true,
+    "useFocus": true,
+    "useFocusWithin": true,
+    "useFps": true,
+    "useFullscreen": true,
+    "useGamepad": true,
+    "useGeolocation": true,
+    "useIdle": true,
+    "useImage": true,
+    "useInfiniteScroll": true,
+    "useIntersectionObserver": true,
+    "useInterval": true,
+    "useIntervalFn": true,
+    "useKeyModifier": true,
+    "useLastChanged": true,
+    "useLocalStorage": true,
+    "useMagicKeys": true,
+    "useManualRefHistory": true,
+    "useMediaControls": true,
+    "useMediaQuery": true,
+    "useMemoize": true,
+    "useMemory": true,
+    "useMounted": true,
+    "useMouse": true,
+    "useMouseInElement": true,
+    "useMousePressed": true,
+    "useMutationObserver": true,
+    "useNavigatorLanguage": true,
+    "useNetwork": true,
+    "useNow": true,
+    "useObjectUrl": true,
+    "useOffsetPagination": true,
+    "useOnline": true,
+    "usePageLeave": true,
+    "useParallax": true,
+    "usePermission": true,
+    "usePointer": true,
+    "usePointerSwipe": true,
+    "usePreferredColorScheme": true,
+    "usePreferredDark": true,
+    "usePreferredLanguages": true,
+    "useRafFn": true,
+    "useRefHistory": true,
+    "useResizeObserver": true,
+    "useRoute": true,
+    "useRouter": true,
+    "useScreenOrientation": true,
+    "useScreenSafeArea": true,
+    "useScriptTag": true,
+    "useScroll": true,
+    "useScrollLock": true,
+    "useSessionStorage": true,
+    "useShare": true,
+    "useSlots": true,
+    "useSpeechRecognition": true,
+    "useSpeechSynthesis": true,
+    "useStepper": true,
+    "useStorage": true,
+    "useStorageAsync": true,
+    "useStyleTag": true,
+    "useSupported": true,
+    "useSwipe": true,
+    "useTemplateRefsList": true,
+    "useTextDirection": true,
+    "useTextSelection": true,
+    "useTextareaAutosize": true,
+    "useThrottle": true,
+    "useThrottleFn": true,
+    "useThrottledRefHistory": true,
+    "useTimeAgo": true,
+    "useTimeout": true,
+    "useTimeoutFn": true,
+    "useTimeoutPoll": true,
+    "useTimestamp": true,
+    "useTitle": true,
+    "useToggle": true,
+    "useTransition": true,
+    "useUrlSearchParams": true,
+    "useUserMedia": true,
+    "useVModel": true,
+    "useVModels": true,
+    "useVibrate": true,
+    "useVirtualList": true,
+    "useWakeLock": true,
+    "useWebNotification": true,
+    "useWebSocket": true,
+    "useWebWorker": true,
+    "useWebWorkerFn": true,
+    "useWindowFocus": true,
+    "useWindowScroll": true,
+    "useWindowSize": true,
+    "watch": true,
+    "watchArray": true,
+    "watchAtMost": true,
+    "watchDebounced": true,
+    "watchEffect": true,
+    "watchIgnorable": true,
+    "watchOnce": true,
+    "watchPausable": true,
+    "watchPostEffect": true,
+    "watchSyncEffect": true,
+    "watchThrottled": true,
+    "watchTriggerable": true,
+    "watchWithFilter": true,
+    "whenever": true
+  }
+}
diff --git a/yudao-ui-admin-vue3/.eslintrc.js b/yudao-ui-admin-vue3/.eslintrc.js
index d68a39ea6..244dbbbff 100644
--- a/yudao-ui-admin-vue3/.eslintrc.js
+++ b/yudao-ui-admin-vue3/.eslintrc.js
@@ -21,7 +21,8 @@ module.exports = defineConfig({
     'plugin:vue/vue3-recommended',
     'plugin:@typescript-eslint/recommended',
     'prettier',
-    'plugin:prettier/recommended'
+    'plugin:prettier/recommended',
+    './.eslintrc-auto-import.json'
   ],
   rules: {
     'vue/script-setup-uses-vars': 'error',
diff --git a/yudao-ui-admin-vue3/build/vite/index.ts b/yudao-ui-admin-vue3/build/vite/index.ts
index 53da870f1..717db992c 100644
--- a/yudao-ui-admin-vue3/build/vite/index.ts
+++ b/yudao-ui-admin-vue3/build/vite/index.ts
@@ -6,15 +6,14 @@ import progress from 'vite-plugin-progress'
 import EslintPlugin from 'vite-plugin-eslint'
 import PurgeIcons from 'vite-plugin-purge-icons'
 import { ViteEjsPlugin } from 'vite-plugin-ejs'
+import ElementPlus from 'unplugin-element-plus/vite'
+import AutoImport from 'unplugin-auto-import/vite'
+import Components from 'unplugin-vue-components/vite'
+import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
 import viteCompression from 'vite-plugin-compression'
 import vueSetupExtend from 'vite-plugin-vue-setup-extend'
 import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'
 import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
-import {
-  createStyleImportPlugin,
-  ElementPlusResolve,
-  VxeTableResolve
-} from 'vite-plugin-style-import'
 export function createVitePlugins(VITE_APP_TITLE: string) {
   const root = process.cwd()
   // 路径查找
@@ -28,24 +27,47 @@ export function createVitePlugins(VITE_APP_TITLE: string) {
     progress(),
     PurgeIcons(),
     vueSetupExtend(),
-    createStyleImportPlugin({
-      resolves: [ElementPlusResolve(), VxeTableResolve()],
-      libs: [
+    ElementPlus(),
+    AutoImport({
+      include: [
+        /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
+        /\.vue$/,
+        /\.vue\?vue/, // .vue
+        /\.md$/ // .md
+      ],
+      imports: [
+        'vue',
+        'vue-router',
         {
-          libraryName: 'element-plus',
-          esModule: true,
-          resolveStyle: (name) => {
-            return `element-plus/es/components/${name.substring(3)}/style/css`
-          }
-        },
-        {
-          libraryName: 'vxe-table',
-          esModule: true,
-          resolveStyle: (name) => {
-            return `vxe-table/es/${name}/style.css`
-          }
+          '@/hooks/web/useI18n': ['useI18n'],
+          '@/hooks/web/useXTable': ['useXTable'],
+          '@/hooks/web/useMessage': ['useMessage'],
+          '@/hooks/web/useVxeCrudSchemas': ['useVxeCrudSchemas'],
+          '@/utils/formRules': ['required'],
+          '@/utils/dict': ['DICT_TYPE']
         }
-      ]
+      ],
+      dts: 'src/types/auto-imports.d.ts',
+      resolvers: [ElementPlusResolver()],
+      eslintrc: {
+        enabled: false, // Default `false`
+        filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
+        globalsPropValue: true // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
+      }
+    }),
+    Components({
+      // 要搜索组件的目录的相对路径
+      dirs: ['src/components'],
+      // 组件的有效文件扩展名
+      extensions: ['vue', 'md'],
+      // 搜索子目录
+      deep: true,
+      include: [/\.vue$/, /\.vue\?vue/],
+      // 生成自定义 `auto-components.d.ts` 全局声明
+      dts: 'src/types/auto-components.d.ts',
+      // 自定义组件的解析器
+      resolvers: [ElementPlusResolver()],
+      exclude: [/[\\/]node_modules[\\/]/]
     }),
     EslintPlugin({
       cache: false,
diff --git a/yudao-ui-admin-vue3/build/vite/optimize.ts b/yudao-ui-admin-vue3/build/vite/optimize.ts
index 583daa93b..b3df9058d 100644
--- a/yudao-ui-admin-vue3/build/vite/optimize.ts
+++ b/yudao-ui-admin-vue3/build/vite/optimize.ts
@@ -21,6 +21,7 @@ const include = [
   'vxe-table/es/style',
   'web-storage-cache',
   'element-plus',
+  'element-plus/es',
   'element-plus/es/locale/lang/zh-cn',
   'element-plus/es/locale/lang/en',
   '@iconify/iconify',
diff --git a/yudao-ui-admin-vue3/build/vite/styleImport.ts b/yudao-ui-admin-vue3/build/vite/styleImport.ts
deleted file mode 100644
index 30dac059b..000000000
--- a/yudao-ui-admin-vue3/build/vite/styleImport.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-export const styleImportPlugin = {
-  libs: [
-    {
-      libraryName: 'element-plus',
-      esModule: true,
-      resolveStyle: (name) => {
-        return `element-plus/es/components/${name.substring(3)}/style/css`
-      }
-    },
-    {
-      libraryName: 'vxe-table',
-      esModule: true,
-      resolveStyle: (name) => {
-        return `vxe-table/es/${name}/style.css`
-      }
-    }
-  ]
-}
diff --git a/yudao-ui-admin-vue3/package.json b/yudao-ui-admin-vue3/package.json
index 795cda586..e3b7700b3 100644
--- a/yudao-ui-admin-vue3/package.json
+++ b/yudao-ui-admin-vue3/package.json
@@ -1,6 +1,6 @@
 {
   "name": "yudao-ui-admin-vue3",
-  "version": "1.6.6-snapshot.1922",
+  "version": "1.6.6-snapshot.1925",
   "description": "基于vue3、vite4、element-plus、typesScript",
   "author": "xingyu",
   "private": false,
@@ -25,12 +25,12 @@
   },
   "dependencies": {
     "@iconify/iconify": "^3.0.1",
-    "@vueuse/core": "^9.10.0",
+    "@vueuse/core": "^9.11.0",
     "@wangeditor/editor": "^5.1.23",
     "@wangeditor/editor-for-vue": "^5.1.10",
     "@zxcvbn-ts/core": "^2.1.0",
     "animate.css": "^4.1.1",
-    "axios": "^1.2.2",
+    "axios": "^1.2.3",
     "cropperjs": "^1.5.13",
     "crypto-js": "^4.1.1",
     "dayjs": "^1.11.7",
@@ -57,7 +57,7 @@
   "devDependencies": {
     "@commitlint/cli": "^17.4.2",
     "@commitlint/config-conventional": "^17.4.2",
-    "@iconify/json": "^2.2.7",
+    "@iconify/json": "^2.2.8",
     "@intlify/unplugin-vue-i18n": "^0.8.1",
     "@purge-icons/generated": "^0.9.0",
     "@types/intro.js": "^5.1.0",
@@ -83,7 +83,7 @@
     "postcss-html": "^1.5.0",
     "postcss-scss": "^4.0.6",
     "prettier": "^2.8.3",
-    "rimraf": "^4.1.0",
+    "rimraf": "^4.1.1",
     "rollup": "^3.10.0",
     "sass": "^1.57.1",
     "stylelint": "^14.16.1",
@@ -94,13 +94,15 @@
     "stylelint-order": "^6.0.1",
     "terser": "^5.16.1",
     "typescript": "4.9.4",
+    "unplugin-auto-import": "^0.12.1",
+    "unplugin-element-plus": "^0.4.1",
+    "unplugin-vue-components": "^0.22.12",
     "vite": "4.0.4",
     "vite-plugin-compression": "^0.5.1",
     "vite-plugin-ejs": "^1.6.4",
     "vite-plugin-eslint": "^1.8.1",
     "vite-plugin-progress": "^0.0.6",
     "vite-plugin-purge-icons": "^0.9.2",
-    "vite-plugin-style-import": "2.0.0",
     "vite-plugin-svg-icons": "^2.0.1",
     "vite-plugin-vue-setup-extend": "^0.4.0",
     "vite-plugin-windicss": "^1.8.10",
diff --git a/yudao-ui-admin-vue3/pnpm-lock.yaml b/yudao-ui-admin-vue3/pnpm-lock.yaml
index caf8e4497..7c0f236be 100644
--- a/yudao-ui-admin-vue3/pnpm-lock.yaml
+++ b/yudao-ui-admin-vue3/pnpm-lock.yaml
@@ -4,7 +4,7 @@ specifiers:
   '@commitlint/cli': ^17.4.2
   '@commitlint/config-conventional': ^17.4.2
   '@iconify/iconify': ^3.0.1
-  '@iconify/json': ^2.2.7
+  '@iconify/json': ^2.2.8
   '@intlify/unplugin-vue-i18n': ^0.8.1
   '@purge-icons/generated': ^0.9.0
   '@types/intro.js': ^5.1.0
@@ -18,13 +18,13 @@ specifiers:
   '@vitejs/plugin-legacy': ^3.0.1
   '@vitejs/plugin-vue': ^4.0.0
   '@vitejs/plugin-vue-jsx': ^3.0.0
-  '@vueuse/core': ^9.10.0
+  '@vueuse/core': ^9.11.0
   '@wangeditor/editor': ^5.1.23
   '@wangeditor/editor-for-vue': ^5.1.10
   '@zxcvbn-ts/core': ^2.1.0
   animate.css: ^4.1.1
   autoprefixer: ^10.4.13
-  axios: ^1.2.2
+  axios: ^1.2.3
   consola: ^2.15.3
   cropperjs: ^1.5.13
   crypto-js: ^4.1.1
@@ -50,7 +50,7 @@ specifiers:
   prettier: ^2.8.3
   qrcode: ^1.5.1
   qs: ^6.11.0
-  rimraf: ^4.1.0
+  rimraf: ^4.1.1
   rollup: ^3.10.0
   sass: ^1.57.1
   stylelint: ^14.16.1
@@ -61,6 +61,9 @@ specifiers:
   stylelint-order: ^6.0.1
   terser: ^5.16.1
   typescript: 4.9.4
+  unplugin-auto-import: ^0.12.1
+  unplugin-element-plus: ^0.4.1
+  unplugin-vue-components: ^0.22.12
   url: ^0.11.0
   vite: 4.0.4
   vite-plugin-compression: ^0.5.1
@@ -68,7 +71,6 @@ specifiers:
   vite-plugin-eslint: ^1.8.1
   vite-plugin-progress: ^0.0.6
   vite-plugin-purge-icons: ^0.9.2
-  vite-plugin-style-import: 2.0.0
   vite-plugin-svg-icons: ^2.0.1
   vite-plugin-vue-setup-extend: ^0.4.0
   vite-plugin-windicss: ^1.8.10
@@ -84,12 +86,12 @@ specifiers:
 
 dependencies:
   '@iconify/iconify': 3.0.1
-  '@vueuse/core': 9.10.0_vue@3.2.45
+  '@vueuse/core': 9.11.0_vue@3.2.45
   '@wangeditor/editor': 5.1.23
   '@wangeditor/editor-for-vue': 5.1.12_3apfu3xbp6awzuex7ed3sbrv6y
   '@zxcvbn-ts/core': 2.1.0
   animate.css: 4.1.1
-  axios: 1.2.2
+  axios: 1.2.3
   cropperjs: 1.5.13
   crypto-js: 4.1.1
   dayjs: 1.11.7
@@ -116,7 +118,7 @@ dependencies:
 devDependencies:
   '@commitlint/cli': 17.4.2
   '@commitlint/config-conventional': 17.4.2
-  '@iconify/json': 2.2.7
+  '@iconify/json': 2.2.8
   '@intlify/unplugin-vue-i18n': 0.8.1_vue-i18n@9.2.2
   '@purge-icons/generated': 0.9.0
   '@types/intro.js': 5.1.0
@@ -142,7 +144,7 @@ devDependencies:
   postcss-html: 1.5.0
   postcss-scss: 4.0.6_postcss@8.4.21
   prettier: 2.8.3
-  rimraf: 4.1.0
+  rimraf: 4.1.1
   rollup: 3.10.0
   sass: 1.57.1
   stylelint: 14.16.1
@@ -153,13 +155,15 @@ devDependencies:
   stylelint-order: 6.0.1_stylelint@14.16.1
   terser: 5.16.1
   typescript: 4.9.4
+  unplugin-auto-import: 0.12.1_ta7poabqclszbk6bszysx4wo3y
+  unplugin-element-plus: 0.4.1_rollup@3.10.0+vite@4.0.4
+  unplugin-vue-components: 0.22.12_rollup@3.10.0+vue@3.2.45
   vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i
   vite-plugin-compression: 0.5.1_vite@4.0.4
   vite-plugin-ejs: 1.6.4
   vite-plugin-eslint: 1.8.1_eslint@8.32.0+vite@4.0.4
   vite-plugin-progress: 0.0.6_vite@4.0.4
   vite-plugin-purge-icons: 0.9.2_vite@4.0.4
-  vite-plugin-style-import: 2.0.0_vite@4.0.4
   vite-plugin-svg-icons: 2.0.1_vite@4.0.4
   vite-plugin-vue-setup-extend: 0.4.0_vite@4.0.4
   vite-plugin-windicss: 1.8.10_vite@4.0.4
@@ -177,7 +181,7 @@ packages:
     dev: true
 
   /@antfu/utils/0.7.2:
-    resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@antfu/utils/-/utils-0.7.2.tgz}
+    resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==}
     dev: true
 
   /@babel/code-frame/7.18.6:
@@ -963,8 +967,8 @@ packages:
     dependencies:
       '@iconify/types': 2.0.0
 
-  /@iconify/json/2.2.7:
-    resolution: {integrity: sha512-cWDwr+KE0KNSFmxrR0rvM5AmP4JmJWCZiyhFZ1bywwBJsrV/x+19bLbEAvmn4pmKKYWCAy4F9clpVWynYslzoQ==}
+  /@iconify/json/2.2.8:
+    resolution: {integrity: sha512-Vusnz/QRrTmGFzzmZ1Mf6mG2OEbBWLrd/gXgaBpCbjP/abDLdKd7+DMRJlaZA/jqMJ0rsIL0juZ9FwApBnh/ww==}
     dependencies:
       '@iconify/types': 2.0.0
       pathe: 1.0.0
@@ -1171,6 +1175,21 @@ packages:
       picomatch: 2.3.1
     dev: true
 
+  /@rollup/pluginutils/5.0.2_rollup@3.10.0:
+    resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
+    engines: {node: '>=14.0.0'}
+    peerDependencies:
+      rollup: ^1.20.0||^2.0.0||^3.0.0
+    peerDependenciesMeta:
+      rollup:
+        optional: true
+    dependencies:
+      '@types/estree': 1.0.0
+      estree-walker: 2.0.2
+      picomatch: 2.3.1
+      rollup: 3.10.0
+    dev: true
+
   /@sxzz/popperjs-es/2.11.7:
     resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
     dev: false
@@ -1277,7 +1296,6 @@ packages:
 
   /@types/web-bluetooth/0.0.16:
     resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
-    dev: false
 
   /@typescript-eslint/eslint-plugin/5.48.2_caon6io6stgpr7lz2rtbhekxqy:
     resolution: {integrity: sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==}
@@ -1628,30 +1646,27 @@ packages:
   /@vue/shared/3.2.45:
     resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==}
 
-  /@vueuse/core/9.10.0_vue@3.2.45:
-    resolution: {integrity: sha512-CxMewME07qeuzuT/AOIQGv0EhhDoojniqU6pC3F8m5VC76L47UT18DcX88kWlP3I7d3qMJ4u/PD8iSRsy3bmNA==}
+  /@vueuse/core/9.11.0_vue@3.2.45:
+    resolution: {integrity: sha512-7yZJ8LNOssA8ZmeSjd4F+wbFBA4csiP4TiaXgruqg1H4PAtzSkv93PPwFLvQkSnfo3Bar+e+6QoRvWjhz7l2Xg==}
     dependencies:
       '@types/web-bluetooth': 0.0.16
-      '@vueuse/metadata': 9.10.0
-      '@vueuse/shared': 9.10.0_vue@3.2.45
+      '@vueuse/metadata': 9.11.0
+      '@vueuse/shared': 9.11.0_vue@3.2.45
       vue-demi: 0.13.11_vue@3.2.45
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
-    dev: false
 
-  /@vueuse/metadata/9.10.0:
-    resolution: {integrity: sha512-G5VZhgTCapzU9rv0Iq2HBrVOSGzOKb+OE668NxhXNcTjUjwYxULkEhAw70FtRLMZc+hxcFAzDZlKYA0xcwNMuw==}
-    dev: false
+  /@vueuse/metadata/9.11.0:
+    resolution: {integrity: sha512-HhtG2SWkcfZBLbamHdvLn7jKOCFpw/ifXjVTd5ilFkj98WVUk/3UTQ03wF1XIkuhSO4+b45hD2lfG9/GdKCF7w==}
 
-  /@vueuse/shared/9.10.0_vue@3.2.45:
-    resolution: {integrity: sha512-vakHJ2ZRklAzqmcVBL38RS7BxdBA4+5poG9NsSyqJxrt9kz0zX3P5CXMy0Hm6LFbZXUgvKdqAS3pUH1zX/5qTQ==}
+  /@vueuse/shared/9.11.0_vue@3.2.45:
+    resolution: {integrity: sha512-8lO7wD5abYxupKy2KynH1pSgP715ky6iCrWYb8aX2AuAVi9uHXj7qE1dw6BnmArSaLHci4x9iuzWPCpAzUkC/A==}
     dependencies:
       vue-demi: 0.13.11_vue@3.2.45
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
-    dev: false
 
   /@wangeditor/basic-modules/1.1.7_j7icpicfeimtkldwmemjnpdjs4:
     resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==}
@@ -2084,8 +2099,8 @@ packages:
       - debug
     dev: true
 
-  /axios/1.2.2:
-    resolution: {integrity: sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==}
+  /axios/1.2.3:
+    resolution: {integrity: sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==}
     dependencies:
       follow-redirects: 1.15.2
       form-data: 4.0.0
@@ -2212,13 +2227,6 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
-  /camel-case/4.1.2:
-    resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
-    dependencies:
-      pascal-case: 3.1.2
-      tslib: 2.4.1
-    dev: true
-
   /camelcase-keys/6.2.2:
     resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
     engines: {node: '>=8'}
@@ -2241,14 +2249,6 @@ packages:
     resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==}
     dev: true
 
-  /capital-case/1.0.4:
-    resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==}
-    dependencies:
-      no-case: 3.0.4
-      tslib: 2.4.1
-      upper-case-first: 2.0.2
-    dev: true
-
   /chalk/1.1.3:
     resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
     engines: {node: '>=0.10.0'}
@@ -2277,23 +2277,6 @@ packages:
       supports-color: 7.2.0
     dev: true
 
-  /change-case/4.1.2:
-    resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==}
-    dependencies:
-      camel-case: 4.1.2
-      capital-case: 1.0.4
-      constant-case: 3.0.4
-      dot-case: 3.0.4
-      header-case: 2.0.4
-      no-case: 3.0.4
-      param-case: 3.0.4
-      pascal-case: 3.1.2
-      path-case: 3.0.4
-      sentence-case: 3.0.4
-      snake-case: 3.0.4
-      tslib: 2.4.1
-    dev: true
-
   /chokidar/3.5.3:
     resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
     engines: {node: '>= 8.10.0'}
@@ -2448,18 +2431,6 @@ packages:
     resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
     dev: true
 
-  /console/0.7.2:
-    resolution: {integrity: sha512-+JSDwGunA4MTEgAV/4VBKwUHonP8CzJ/6GIuwPi6acKFqFfHUdSGCm89ZxZ5FfGWdZfkdgAroy5bJ5FSeN/t4g==}
-    dev: true
-
-  /constant-case/3.0.4:
-    resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==}
-    dependencies:
-      no-case: 3.0.4
-      tslib: 2.4.1
-      upper-case: 2.0.2
-    dev: true
-
   /conventional-changelog-angular/5.0.13:
     resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}
     engines: {node: '>=10'}
@@ -2815,13 +2786,6 @@ packages:
       domhandler: 5.0.3
     dev: true
 
-  /dot-case/3.0.4:
-    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
-    dependencies:
-      no-case: 3.0.4
-      tslib: 2.4.1
-    dev: true
-
   /dot-prop/5.3.0:
     resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
     engines: {node: '>=8'}
@@ -2871,7 +2835,7 @@ packages:
       '@popperjs/core': /@sxzz/popperjs-es/2.11.7
       '@types/lodash': 4.14.189
       '@types/lodash-es': 4.17.6
-      '@vueuse/core': 9.10.0_vue@3.2.45
+      '@vueuse/core': 9.11.0_vue@3.2.45
       async-validator: 4.2.5
       dayjs: 1.11.7
       escape-html: 1.0.3
@@ -2920,8 +2884,8 @@ packages:
       is-arrayish: 0.2.1
     dev: true
 
-  /es-module-lexer/0.9.3:
-    resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
+  /es-module-lexer/0.10.5:
+    resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==}
     dev: true
 
   /es5-ext/0.10.62:
@@ -2998,6 +2962,11 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
+  /escape-string-regexp/5.0.0:
+    resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+    engines: {node: '>=12'}
+    dev: true
+
   /eslint-config-prettier/8.6.0_eslint@8.32.0:
     resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==}
     hasBin: true
@@ -3646,13 +3615,6 @@ packages:
     hasBin: true
     dev: true
 
-  /header-case/2.0.4:
-    resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}
-    dependencies:
-      capital-case: 1.0.4
-      tslib: 2.4.1
-    dev: true
-
   /hosted-git-info/2.8.9:
     resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
     dev: true
@@ -4047,6 +4009,10 @@ packages:
       semver: 6.3.0
     dev: true
 
+  /jsonc-parser/3.2.0:
+    resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
+    dev: true
+
   /jsonfile/6.1.0:
     resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
     dependencies:
@@ -4160,6 +4126,11 @@ packages:
       json5: 1.0.1
     dev: true
 
+  /local-pkg/0.4.2:
+    resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==}
+    engines: {node: '>=14'}
+    dev: true
+
   /locate-path/5.0.0:
     resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
     engines: {node: '>=8'}
@@ -4269,12 +4240,6 @@ packages:
       wrap-ansi: 6.2.0
     dev: true
 
-  /lower-case/2.0.2:
-    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
-    dependencies:
-      tslib: 2.4.1
-    dev: true
-
   /lru-cache/6.0.0:
     resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
     engines: {node: '>=10'}
@@ -4287,6 +4252,13 @@ packages:
     dependencies:
       sourcemap-codec: 1.4.8
 
+  /magic-string/0.26.7:
+    resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
+    engines: {node: '>=12'}
+    dependencies:
+      sourcemap-codec: 1.4.8
+    dev: true
+
   /magic-string/0.27.0:
     resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/magic-string/-/magic-string-0.27.0.tgz}
     engines: {node: '>=12'}
@@ -4483,6 +4455,15 @@ packages:
       is-extendable: 1.0.1
     dev: true
 
+  /mlly/1.1.0:
+    resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==}
+    dependencies:
+      acorn: 8.8.1
+      pathe: 1.0.0
+      pkg-types: 1.0.1
+      ufo: 1.0.1
+    dev: true
+
   /ms/2.0.0:
     resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
     dev: true
@@ -4535,13 +4516,6 @@ packages:
     resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
     dev: false
 
-  /no-case/3.0.4:
-    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
-    dependencies:
-      lower-case: 2.0.2
-      tslib: 2.4.1
-    dev: true
-
   /node-fetch/2.6.7:
     resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/node-fetch/-/node-fetch-2.6.7.tgz}
     engines: {node: 4.x || >=6.0.0}
@@ -4715,13 +4689,6 @@ packages:
     resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
     engines: {node: '>=6'}
 
-  /param-case/3.0.4:
-    resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
-    dependencies:
-      dot-case: 3.0.4
-      tslib: 2.4.1
-    dev: true
-
   /parent-module/1.0.1:
     resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
     engines: {node: '>=6'}
@@ -4739,25 +4706,11 @@ packages:
       lines-and-columns: 1.2.4
     dev: true
 
-  /pascal-case/3.1.2:
-    resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
-    dependencies:
-      no-case: 3.0.4
-      tslib: 2.4.1
-    dev: true
-
   /pascalcase/0.1.1:
     resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
     engines: {node: '>=0.10.0'}
     dev: true
 
-  /path-case/3.0.4:
-    resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==}
-    dependencies:
-      dot-case: 3.0.4
-      tslib: 2.4.1
-    dev: true
-
   /path-exists/4.0.0:
     resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
     engines: {node: '>=8'}
@@ -4826,6 +4779,14 @@ packages:
       vue-demi: 0.13.11_vue@3.2.45
     dev: false
 
+  /pkg-types/1.0.1:
+    resolution: {integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==}
+    dependencies:
+      jsonc-parser: 3.2.0
+      mlly: 1.1.0
+      pathe: 1.0.0
+    dev: true
+
   /pngjs/5.0.0:
     resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
     engines: {node: '>=10.13.0'}
@@ -5192,8 +5153,8 @@ packages:
       glob: 7.2.3
     dev: true
 
-  /rimraf/4.1.0:
-    resolution: {integrity: sha512-ZJdkUR5/dRrRJHdcSKJLrpRn6tVjl9ALxd4yrTCxFsMpjQNzwHF6GLqMsuEzEYIXxHlFPDSk21Vr8VPuFBEz0g==}
+  /rimraf/4.1.1:
+    resolution: {integrity: sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg==}
     engines: {node: '>=14'}
     hasBin: true
     dev: true
@@ -5263,6 +5224,10 @@ packages:
       compute-scroll-into-view: 1.0.17
     dev: false
 
+  /scule/1.0.0:
+    resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==}
+    dev: true
+
   /semver/5.7.1:
     resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
     hasBin: true
@@ -5281,14 +5246,6 @@ packages:
       lru-cache: 6.0.0
     dev: true
 
-  /sentence-case/3.0.4:
-    resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==}
-    dependencies:
-      no-case: 3.0.4
-      tslib: 2.4.1
-      upper-case-first: 2.0.2
-    dev: true
-
   /set-blocking/2.0.0:
     resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
     dev: false
@@ -5380,13 +5337,6 @@ packages:
     engines: {node: '>=8.3.0'}
     dev: false
 
-  /snake-case/3.0.4:
-    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
-    dependencies:
-      dot-case: 3.0.4
-      tslib: 2.4.1
-    dev: true
-
   /snapdragon-node/2.1.1:
     resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
     engines: {node: '>=0.10.0'}
@@ -5586,6 +5536,12 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
+  /strip-literal/1.0.0:
+    resolution: {integrity: sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==}
+    dependencies:
+      acorn: 8.8.1
+    dev: true
+
   /style-search/0.1.0:
     resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}
     dev: true
@@ -5958,6 +5914,28 @@ packages:
     engines: {node: '>=4.2.0'}
     hasBin: true
 
+  /ufo/1.0.1:
+    resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==}
+    dev: true
+
+  /unimport/1.2.0_rollup@3.10.0:
+    resolution: {integrity: sha512-yMok/ubppurBE7Png1QH70Om96AxIoWCcfdxW3J/pziozShMc1UGpPgWpSckfo9ndAO5M74yNnRDdLAZy/gWQg==}
+    dependencies:
+      '@rollup/pluginutils': 5.0.2_rollup@3.10.0
+      escape-string-regexp: 5.0.0
+      fast-glob: 3.2.12
+      local-pkg: 0.4.2
+      magic-string: 0.27.0
+      mlly: 1.1.0
+      pathe: 1.0.0
+      pkg-types: 1.0.1
+      scule: 1.0.0
+      strip-literal: 1.0.0
+      unplugin: 1.0.1
+    transitivePeerDependencies:
+      - rollup
+    dev: true
+
   /union-value/1.0.1:
     resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
     engines: {node: '>=0.10.0'}
@@ -5973,6 +5951,92 @@ packages:
     engines: {node: '>= 10.0.0'}
     dev: true
 
+  /unplugin-auto-import/0.12.1_ta7poabqclszbk6bszysx4wo3y:
+    resolution: {integrity: sha512-J/3ZORq5YGKG+8D5vLLOgqaHNK77izlVN07mQ752yRLqBNDbJiwPRSnUwwYqH5N6rDay1SqnJCHaUdbJ9QMI2w==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@vueuse/core': '*'
+    peerDependenciesMeta:
+      '@vueuse/core':
+        optional: true
+    dependencies:
+      '@antfu/utils': 0.7.2
+      '@rollup/pluginutils': 5.0.2_rollup@3.10.0
+      '@vueuse/core': 9.11.0_vue@3.2.45
+      local-pkg: 0.4.2
+      magic-string: 0.27.0
+      unimport: 1.2.0_rollup@3.10.0
+      unplugin: 1.0.1
+    transitivePeerDependencies:
+      - rollup
+    dev: true
+
+  /unplugin-element-plus/0.4.1_rollup@3.10.0+vite@4.0.4:
+    resolution: {integrity: sha512-x8L35sppkbtnAf+aSPXNsLPjCUrM0mWKgujqMIgrHiDQaGbpMlNnbN2kjP5CMclykNOw8fUCreEhtxPyzg8tmw==}
+    engines: {node: '>=14.19.0'}
+    dependencies:
+      '@rollup/pluginutils': 4.2.1
+      es-module-lexer: 0.10.5
+      magic-string: 0.26.7
+      unplugin: 0.7.2_rollup@3.10.0+vite@4.0.4
+    transitivePeerDependencies:
+      - esbuild
+      - rollup
+      - vite
+      - webpack
+    dev: true
+
+  /unplugin-vue-components/0.22.12_rollup@3.10.0+vue@3.2.45:
+    resolution: {integrity: sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/parser': ^7.15.8
+      vue: 2 || 3
+    peerDependenciesMeta:
+      '@babel/parser':
+        optional: true
+    dependencies:
+      '@antfu/utils': 0.7.2
+      '@rollup/pluginutils': 5.0.2_rollup@3.10.0
+      chokidar: 3.5.3
+      debug: 4.3.4
+      fast-glob: 3.2.12
+      local-pkg: 0.4.2
+      magic-string: 0.27.0
+      minimatch: 5.1.2
+      resolve: 1.22.1
+      unplugin: 1.0.1
+      vue: 3.2.45
+    transitivePeerDependencies:
+      - rollup
+      - supports-color
+    dev: true
+
+  /unplugin/0.7.2_rollup@3.10.0+vite@4.0.4:
+    resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
+    peerDependencies:
+      esbuild: '>=0.13'
+      rollup: ^2.50.0
+      vite: ^2.3.0 || ^3.0.0-0
+      webpack: 4 || 5
+    peerDependenciesMeta:
+      esbuild:
+        optional: true
+      rollup:
+        optional: true
+      vite:
+        optional: true
+      webpack:
+        optional: true
+    dependencies:
+      acorn: 8.8.1
+      chokidar: 3.5.3
+      rollup: 3.10.0
+      vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i
+      webpack-sources: 3.2.3
+      webpack-virtual-modules: 0.4.6
+    dev: true
+
   /unplugin/1.0.1:
     resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==}
     dependencies:
@@ -6001,18 +6065,6 @@ packages:
       picocolors: 1.0.0
     dev: true
 
-  /upper-case-first/2.0.2:
-    resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}
-    dependencies:
-      tslib: 2.4.1
-    dev: true
-
-  /upper-case/2.0.2:
-    resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==}
-    dependencies:
-      tslib: 2.4.1
-    dev: true
-
   /uri-js/4.4.1:
     resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
     dependencies:
@@ -6119,21 +6171,6 @@ packages:
       - supports-color
     dev: true
 
-  /vite-plugin-style-import/2.0.0_vite@4.0.4:
-    resolution: {integrity: sha512-qtoHQae5dSUQPo/rYz/8p190VU5y19rtBaeV7ryLa/AYAU/e9CG89NrN/3+k7MR8mJy/GPIu91iJ3zk9foUOSA==}
-    peerDependencies:
-      vite: '>=2.0.0'
-    dependencies:
-      '@rollup/pluginutils': 4.2.1
-      change-case: 4.1.2
-      console: 0.7.2
-      es-module-lexer: 0.9.3
-      fs-extra: 10.1.0
-      magic-string: 0.25.9
-      pathe: 0.2.0
-      vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i
-    dev: true
-
   /vite-plugin-svg-icons/2.0.1_vite@4.0.4:
     resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==}
     peerDependencies:
@@ -6225,7 +6262,6 @@ packages:
         optional: true
     dependencies:
       vue: 3.2.45
-    dev: false
 
   /vue-eslint-parser/9.1.0_eslint@8.32.0:
     resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==}
@@ -6329,6 +6365,10 @@ packages:
     engines: {node: '>=10.13.0'}
     dev: true
 
+  /webpack-virtual-modules/0.4.6:
+    resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==}
+    dev: true
+
   /webpack-virtual-modules/0.5.0:
     resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==}
     dev: true
diff --git a/yudao-ui-admin-vue3/src/App.vue b/yudao-ui-admin-vue3/src/App.vue
index 476c0c5de..a7867a1c8 100644
--- a/yudao-ui-admin-vue3/src/App.vue
+++ b/yudao-ui-admin-vue3/src/App.vue
@@ -1,9 +1,7 @@
 <script setup lang="ts">
-import { computed } from 'vue'
 import { isDark } from '@/utils/is'
 import { useAppStore } from '@/store/modules/app'
 import { useDesign } from '@/hooks/web/useDesign'
-import { ConfigGlobal } from '@/components/ConfigGlobal'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 
 const { getPrefixCls } = useDesign()
diff --git a/yudao-ui-admin-vue3/src/components/ConfigGlobal/src/ConfigGlobal.vue b/yudao-ui-admin-vue3/src/components/ConfigGlobal/src/ConfigGlobal.vue
index 0a55f1523..10a0a9f2f 100644
--- a/yudao-ui-admin-vue3/src/components/ConfigGlobal/src/ConfigGlobal.vue
+++ b/yudao-ui-admin-vue3/src/components/ConfigGlobal/src/ConfigGlobal.vue
@@ -1,13 +1,11 @@
 <script setup lang="ts">
-import { provide, computed, watch, onMounted } from 'vue'
 import { propTypes } from '@/utils/propTypes'
-import { ElConfigProvider } from 'element-plus'
 import { useLocaleStore } from '@/store/modules/locale'
-import { useWindowSize } from '@vueuse/core'
 import { useAppStore } from '@/store/modules/app'
 import { setCssVar } from '@/utils'
 import { useDesign } from '@/hooks/web/useDesign'
 import { ElementPlusSize } from '@/types/elementPlus'
+import { useWindowSize } from '@vueuse/core'
 
 const { variables } = useDesign()
 
diff --git a/yudao-ui-admin-vue3/src/components/ContentDetailWrap/src/ContentDetailWrap.vue b/yudao-ui-admin-vue3/src/components/ContentDetailWrap/src/ContentDetailWrap.vue
index 887357b1a..697ea18a7 100644
--- a/yudao-ui-admin-vue3/src/components/ContentDetailWrap/src/ContentDetailWrap.vue
+++ b/yudao-ui-admin-vue3/src/components/ContentDetailWrap/src/ContentDetailWrap.vue
@@ -1,10 +1,7 @@
 <script setup lang="ts">
-import { ElCard } from 'element-plus'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
-import { ref, onMounted } from 'vue'
-import { Sticky } from '@/components/Sticky'
-import { useI18n } from '@/hooks/web/useI18n'
+
 const { t } = useI18n()
 
 const { getPrefixCls } = useDesign()
diff --git a/yudao-ui-admin-vue3/src/components/CountTo/src/CountTo.vue b/yudao-ui-admin-vue3/src/components/CountTo/src/CountTo.vue
index cab8ea965..8d2f1ade0 100644
--- a/yudao-ui-admin-vue3/src/components/CountTo/src/CountTo.vue
+++ b/yudao-ui-admin-vue3/src/components/CountTo/src/CountTo.vue
@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { reactive, computed, watch, onMounted, unref, toRef, PropType } from 'vue'
+import { PropType } from 'vue'
 import { isNumber } from '@/utils/is'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
diff --git a/yudao-ui-admin-vue3/src/components/Crontab/src/Crontab.vue b/yudao-ui-admin-vue3/src/components/Crontab/src/Crontab.vue
index c620d719a..fe33bd5f5 100644
--- a/yudao-ui-admin-vue3/src/components/Crontab/src/Crontab.vue
+++ b/yudao-ui-admin-vue3/src/components/Crontab/src/Crontab.vue
@@ -1,19 +1,6 @@
 <script setup lang="ts">
-import {
-  ElInput,
-  ElInputNumber,
-  ElDialog,
-  ElTabs,
-  ElTabPane,
-  ElSelect,
-  ElOption,
-  ElForm,
-  ElFormItem,
-  ElRadioGroup,
-  ElRadioButton,
-  ElMessage
-} from 'element-plus'
-import { ref, computed, onMounted, reactive, watch, PropType } from 'vue'
+import { ElMessage } from 'element-plus'
+import { PropType } from 'vue'
 interface shortcutsType {
   text: string
   value: string
diff --git a/yudao-ui-admin-vue3/src/components/Cropper/src/CopperModal.vue b/yudao-ui-admin-vue3/src/components/Cropper/src/CopperModal.vue
index 919e1d1bb..647ddb205 100644
--- a/yudao-ui-admin-vue3/src/components/Cropper/src/CopperModal.vue
+++ b/yudao-ui-admin-vue3/src/components/Cropper/src/CopperModal.vue
@@ -116,11 +116,7 @@
 <script setup lang="ts">
 import { useDesign } from '@/hooks/web/useDesign'
 import { dataURLtoBlob } from '@/utils/filt'
-import { ref } from 'vue'
 import { useI18n } from 'vue-i18n'
-import { ElUpload, ElAvatar, ElTooltip, ElSpace } from 'element-plus'
-import { Dialog } from '@/components/Dialog'
-import { CropperImage } from '@/components/Cropper'
 import type { CropendResult, Cropper } from './types'
 import { propTypes } from '@/utils/propTypes'
 
diff --git a/yudao-ui-admin-vue3/src/components/Cropper/src/Cropper.vue b/yudao-ui-admin-vue3/src/components/Cropper/src/Cropper.vue
index 2e38e06d0..459c97fac 100644
--- a/yudao-ui-admin-vue3/src/components/Cropper/src/Cropper.vue
+++ b/yudao-ui-admin-vue3/src/components/Cropper/src/Cropper.vue
@@ -11,21 +11,12 @@
   </div>
 </template>
 <script setup lang="ts">
-import {
-  computed,
-  CSSProperties,
-  onMounted,
-  onUnmounted,
-  PropType,
-  ref,
-  unref,
-  useAttrs
-} from 'vue'
+import { CSSProperties, PropType } from 'vue'
 import Cropper from 'cropperjs'
 import 'cropperjs/dist/cropper.css'
 import { useDesign } from '@/hooks/web/useDesign'
-import { useDebounceFn } from '@vueuse/core'
 import { propTypes } from '@/utils/propTypes'
+import { useDebounceFn } from '@vueuse/core'
 
 type Options = Cropper.Options
 
diff --git a/yudao-ui-admin-vue3/src/components/Cropper/src/CropperAvatar.vue b/yudao-ui-admin-vue3/src/components/Cropper/src/CropperAvatar.vue
index 455f9f005..dc4c7475e 100644
--- a/yudao-ui-admin-vue3/src/components/Cropper/src/CropperAvatar.vue
+++ b/yudao-ui-admin-vue3/src/components/Cropper/src/CropperAvatar.vue
@@ -13,9 +13,8 @@
 </template>
 <script setup lang="ts">
 import { useDesign } from '@/hooks/web/useDesign'
-import { useMessage } from '@/hooks/web/useMessage'
+
 import { propTypes } from '@/utils/propTypes'
-import { ref, watch, watchEffect } from 'vue'
 import { useI18n } from 'vue-i18n'
 import CopperModal from './CopperModal.vue'
 
diff --git a/yudao-ui-admin-vue3/src/components/Descriptions/src/Descriptions.vue b/yudao-ui-admin-vue3/src/components/Descriptions/src/Descriptions.vue
index a14fca3d1..d6cea87a8 100644
--- a/yudao-ui-admin-vue3/src/components/Descriptions/src/Descriptions.vue
+++ b/yudao-ui-admin-vue3/src/components/Descriptions/src/Descriptions.vue
@@ -1,9 +1,8 @@
 <script setup lang="ts">
+import { PropType } from 'vue'
 import dayjs from 'dayjs'
-import { ElCollapseTransition, ElDescriptions, ElDescriptionsItem, ElTooltip } from 'element-plus'
 import { useDesign } from '@/hooks/web/useDesign'
 import { propTypes } from '@/utils/propTypes'
-import { ref, unref, PropType, computed, useAttrs, useSlots } from 'vue'
 import { useAppStore } from '@/store/modules/app'
 import { DescriptionsSchema } from '@/types/descriptions'
 
diff --git a/yudao-ui-admin-vue3/src/components/Dialog/src/Dialog.vue b/yudao-ui-admin-vue3/src/components/Dialog/src/Dialog.vue
index d6642a662..98336fdf4 100644
--- a/yudao-ui-admin-vue3/src/components/Dialog/src/Dialog.vue
+++ b/yudao-ui-admin-vue3/src/components/Dialog/src/Dialog.vue
@@ -1,7 +1,5 @@
 <script setup lang="ts">
-import { ElDialog, ElScrollbar } from 'element-plus'
 import { propTypes } from '@/utils/propTypes'
-import { computed, useAttrs, ref, unref, useSlots, watch, nextTick } from 'vue'
 import { isNumber } from '@/utils/is'
 
 const slots = useSlots()
diff --git a/yudao-ui-admin-vue3/src/components/Echart/src/Echart.vue b/yudao-ui-admin-vue3/src/components/Echart/src/Echart.vue
index 84f23da0a..41fde039d 100644
--- a/yudao-ui-admin-vue3/src/components/Echart/src/Echart.vue
+++ b/yudao-ui-admin-vue3/src/components/Echart/src/Echart.vue
@@ -4,7 +4,7 @@ import echarts from '@/plugins/echarts'
 import { debounce } from 'lodash-es'
 import 'echarts-wordcloud'
 import { propTypes } from '@/utils/propTypes'
-import { computed, PropType, ref, unref, watch, onMounted, onBeforeUnmount, onActivated } from 'vue'
+import { PropType } from 'vue'
 import { useAppStore } from '@/store/modules/app'
 import { isString } from '@/utils/is'
 import { useDesign } from '@/hooks/web/useDesign'
diff --git a/yudao-ui-admin-vue3/src/components/Editor/src/Editor.vue b/yudao-ui-admin-vue3/src/components/Editor/src/Editor.vue
index 7a264d31e..85b849fba 100644
--- a/yudao-ui-admin-vue3/src/components/Editor/src/Editor.vue
+++ b/yudao-ui-admin-vue3/src/components/Editor/src/Editor.vue
@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { onBeforeUnmount, computed, PropType, unref, nextTick, ref, watch, shallowRef } from 'vue'
+import { PropType } from 'vue'
 import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
 import { IDomEditor, IEditorConfig, i18nChangeLanguage } from '@wangeditor/editor'
 import { propTypes } from '@/utils/propTypes'
diff --git a/yudao-ui-admin-vue3/src/components/Error/src/Error.vue b/yudao-ui-admin-vue3/src/components/Error/src/Error.vue
index c588af10b..a979bc018 100644
--- a/yudao-ui-admin-vue3/src/components/Error/src/Error.vue
+++ b/yudao-ui-admin-vue3/src/components/Error/src/Error.vue
@@ -3,7 +3,6 @@ import pageError from '@/assets/svgs/404.svg'
 import networkError from '@/assets/svgs/500.svg'
 import noPermission from '@/assets/svgs/403.svg'
 import { propTypes } from '@/utils/propTypes'
-import { useI18n } from '@/hooks/web/useI18n'
 
 interface ErrorMap {
   url: string
diff --git a/yudao-ui-admin-vue3/src/components/Form/src/helper.ts b/yudao-ui-admin-vue3/src/components/Form/src/helper.ts
index 3d9c707f5..e2549cbde 100644
--- a/yudao-ui-admin-vue3/src/components/Form/src/helper.ts
+++ b/yudao-ui-admin-vue3/src/components/Form/src/helper.ts
@@ -1,4 +1,3 @@
-import { useI18n } from '@/hooks/web/useI18n'
 import type { Slots } from 'vue'
 import { getSlot } from '@/utils/tsxHelper'
 import { PlaceholderMoel } from './types'
diff --git a/yudao-ui-admin-vue3/src/components/IFrame/src/IFrame.vue b/yudao-ui-admin-vue3/src/components/IFrame/src/IFrame.vue
index b4d3bea67..522da3cc4 100644
--- a/yudao-ui-admin-vue3/src/components/IFrame/src/IFrame.vue
+++ b/yudao-ui-admin-vue3/src/components/IFrame/src/IFrame.vue
@@ -1,5 +1,4 @@
 <script setup lang="ts">
-import { ref, onMounted } from 'vue'
 import { propTypes } from '@/utils/propTypes'
 
 const props = defineProps({
diff --git a/yudao-ui-admin-vue3/src/components/Icon/src/Icon.vue b/yudao-ui-admin-vue3/src/components/Icon/src/Icon.vue
index 4c32f9bcf..bd94fcd4c 100644
--- a/yudao-ui-admin-vue3/src/components/Icon/src/Icon.vue
+++ b/yudao-ui-admin-vue3/src/components/Icon/src/Icon.vue
@@ -1,6 +1,4 @@
 <script setup lang="ts">
-import { computed, unref, ref, watch, nextTick } from 'vue'
-import { ElIcon } from 'element-plus'
 import { propTypes } from '@/utils/propTypes'
 import Iconify from '@purge-icons/generated'
 import { useDesign } from '@/hooks/web/useDesign'
diff --git a/yudao-ui-admin-vue3/src/components/ImageViewer/src/ImageViewer.vue b/yudao-ui-admin-vue3/src/components/ImageViewer/src/ImageViewer.vue
index 02fdb0084..a2ddc072c 100644
--- a/yudao-ui-admin-vue3/src/components/ImageViewer/src/ImageViewer.vue
+++ b/yudao-ui-admin-vue3/src/components/ImageViewer/src/ImageViewer.vue
@@ -1,6 +1,5 @@
 <script setup lang="ts">
-import { ElImageViewer } from 'element-plus'
-import { computed, ref, PropType } from 'vue'
+import { PropType } from 'vue'
 import { propTypes } from '@/utils/propTypes'
 
 const props = defineProps({
diff --git a/yudao-ui-admin-vue3/src/components/Infotip/src/Infotip.vue b/yudao-ui-admin-vue3/src/components/Infotip/src/Infotip.vue
index 41ac96aed..a03f34e28 100644
--- a/yudao-ui-admin-vue3/src/components/Infotip/src/Infotip.vue
+++ b/yudao-ui-admin-vue3/src/components/Infotip/src/Infotip.vue
@@ -1,6 +1,5 @@
 <script setup lang="ts">
 import { PropType } from 'vue'
-import { Highlight } from '@/components/Highlight'
 import { useDesign } from '@/hooks/web/useDesign'
 import { propTypes } from '@/utils/propTypes'
 import { TipSchema } from '@/types/infoTip'
diff --git a/yudao-ui-admin-vue3/src/components/InputPassword/src/InputPassword.vue b/yudao-ui-admin-vue3/src/components/InputPassword/src/InputPassword.vue
index ff4a4bbc8..9e82cd41a 100644
--- a/yudao-ui-admin-vue3/src/components/InputPassword/src/InputPassword.vue
+++ b/yudao-ui-admin-vue3/src/components/InputPassword/src/InputPassword.vue
@@ -1,6 +1,4 @@
 <script setup lang="ts">
-import { ref, unref, computed, watch } from 'vue'
-import { ElInput } from 'element-plus'
 import { propTypes } from '@/utils/propTypes'
 import { useConfigGlobal } from '@/hooks/web/useConfigGlobal'
 import { zxcvbn } from '@zxcvbn-ts/core'
diff --git a/yudao-ui-admin-vue3/src/components/Search/src/Search.vue b/yudao-ui-admin-vue3/src/components/Search/src/Search.vue
index 68d06085e..ffff5681b 100644
--- a/yudao-ui-admin-vue3/src/components/Search/src/Search.vue
+++ b/yudao-ui-admin-vue3/src/components/Search/src/Search.vue
@@ -1,9 +1,7 @@
 <script setup lang="ts">
-import { Form } from '@/components/Form'
-import { PropType, computed, unref, ref } from 'vue'
+import { PropType } from 'vue'
 import { propTypes } from '@/utils/propTypes'
-import { ElButton } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { useForm } from '@/hooks/web/useForm'
 import { findIndex } from '@/utils'
 import { cloneDeep } from 'lodash-es'
diff --git a/yudao-ui-admin-vue3/src/components/Sticky/src/Sticky.vue b/yudao-ui-admin-vue3/src/components/Sticky/src/Sticky.vue
index 6906fbc34..5d6680592 100644
--- a/yudao-ui-admin-vue3/src/components/Sticky/src/Sticky.vue
+++ b/yudao-ui-admin-vue3/src/components/Sticky/src/Sticky.vue
@@ -1,7 +1,6 @@
 <script setup lang="ts">
 import { propTypes } from '@/utils/propTypes'
-import { ref, onMounted, onActivated, shallowRef } from 'vue'
-import { useEventListener, useWindowSize, isClient } from '@vueuse/core'
+import { isClient, useEventListener, useWindowSize } from '@vueuse/core'
 import type { CSSProperties } from 'vue'
 const props = defineProps({
   // 距离顶部或者底部的距离(单位px)
diff --git a/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadFile.vue b/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadFile.vue
index 4706cac93..d02ad8264 100644
--- a/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadFile.vue
+++ b/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadFile.vue
@@ -33,11 +33,11 @@
   </div>
 </template>
 <script setup lang="ts" name="UploadFile">
-import { PropType, ref } from 'vue'
-import { useMessage } from '@/hooks/web/useMessage'
+import { PropType } from 'vue'
+
 import { propTypes } from '@/utils/propTypes'
 import { getAccessToken, getTenantId } from '@/utils/auth'
-import { ElUpload, UploadInstance, UploadProps, UploadRawFile, UploadUserFile } from 'element-plus'
+import type { UploadInstance, UploadUserFile, UploadProps, UploadRawFile } from 'element-plus'
 
 const message = useMessage() // 消息弹窗
 const emit = defineEmits(['update:modelValue'])
diff --git a/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImg.vue b/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImg.vue
index 7f7b3a484..a350528c7 100644
--- a/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImg.vue
+++ b/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImg.vue
@@ -51,11 +51,8 @@
 </template>
 
 <script setup lang="ts" name="UploadImg">
-import { ref } from 'vue'
 import type { UploadProps } from 'element-plus'
-import { ElUpload, ElNotification, ElImageViewer } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
+
 import { generateUUID } from '@/utils'
 import { propTypes } from '@/utils/propTypes'
 import { getAccessToken, getTenantId } from '@/utils/auth'
@@ -111,17 +108,8 @@ const beforeUpload: UploadProps['beforeUpload'] = (rawFile) => {
   const imgSize = rawFile.size / 1024 / 1024 < props.fileSize
   const imgType = props.fileType
   if (!imgType.includes(rawFile.type as FileTypes))
-    ElNotification({
-      title: '温馨提示',
-      message: '上传图片不符合所需的格式!',
-      type: 'warning'
-    })
-  if (!imgSize)
-    ElNotification({
-      title: '温馨提示',
-      message: `上传图片大小不能超过 ${props.fileSize}M!`,
-      type: 'warning'
-    })
+    message.notifyWarning('上传图片不符合所需的格式!')
+  if (!imgSize) message.notifyWarning(`上传图片大小不能超过 ${props.fileSize}M!`)
   return imgType.includes(rawFile.type as FileTypes) && imgSize
 }
 
@@ -133,11 +121,7 @@ const uploadSuccess: UploadProps['onSuccess'] = (res: any): void => {
 
 // 图片上传错误提示
 const uploadError = () => {
-  ElNotification({
-    title: '温馨提示',
-    message: '图片上传失败,请您重新上传!',
-    type: 'error'
-  })
+  message.notifyError('图片上传失败,请您重新上传!')
 }
 </script>
 <style scoped lang="scss">
diff --git a/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue b/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue
index 22444c6f7..df3eb45f4 100644
--- a/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue
+++ b/yudao-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue
@@ -49,7 +49,7 @@
 import { PropType, ref } from 'vue'
 import { ElUpload, ElNotification, ElImageViewer } from 'element-plus'
 import type { UploadProps, UploadFile, UploadUserFile } from 'element-plus'
-import { useMessage } from '@/hooks/web/useMessage'
+
 import { propTypes } from '@/utils/propTypes'
 import { getAccessToken, getTenantId } from '@/utils/auth'
 
diff --git a/yudao-ui-admin-vue3/src/components/Verifition/src/Verify.vue b/yudao-ui-admin-vue3/src/components/Verifition/src/Verify.vue
index a6c391078..6bfc353ee 100644
--- a/yudao-ui-admin-vue3/src/components/Verifition/src/Verify.vue
+++ b/yudao-ui-admin-vue3/src/components/Verifition/src/Verify.vue
@@ -38,7 +38,6 @@
  * */
 import { VerifySlide, VerifyPoints } from './Verify'
 import { computed, ref, toRefs, watchEffect } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
 
 export default {
   name: 'Vue3Verify',
diff --git a/yudao-ui-admin-vue3/src/components/Verifition/src/Verify/VerifyPoints.vue b/yudao-ui-admin-vue3/src/components/Verifition/src/Verify/VerifyPoints.vue
index b0a6207d1..8eeb83f60 100644
--- a/yudao-ui-admin-vue3/src/components/Verifition/src/Verify/VerifyPoints.vue
+++ b/yudao-ui-admin-vue3/src/components/Verifition/src/Verify/VerifyPoints.vue
@@ -66,7 +66,6 @@ import { resetSize } from './../utils/util'
 import { aesEncrypt } from './../utils/ase'
 import { getCodeApi, reqCheckApi } from '@/api/login'
 import { onMounted, reactive, ref, nextTick, toRefs, getCurrentInstance } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
 
 const props = defineProps({
   //弹出式pop,固定fixed
diff --git a/yudao-ui-admin-vue3/src/components/Verifition/src/Verify/VerifySlide.vue b/yudao-ui-admin-vue3/src/components/Verifition/src/Verify/VerifySlide.vue
index 0fdbb1cbd..6b6108df7 100644
--- a/yudao-ui-admin-vue3/src/components/Verifition/src/Verify/VerifySlide.vue
+++ b/yudao-ui-admin-vue3/src/components/Verifition/src/Verify/VerifySlide.vue
@@ -79,17 +79,6 @@
 import { aesEncrypt } from './../utils/ase'
 import { resetSize } from './../utils/util'
 import { getCodeApi, reqCheckApi } from '@/api/login'
-import { useI18n } from '@/hooks/web/useI18n'
-import {
-  computed,
-  onMounted,
-  reactive,
-  ref,
-  watch,
-  nextTick,
-  toRefs,
-  getCurrentInstance
-} from 'vue'
 
 const props = defineProps({
   captchaType: {
diff --git a/yudao-ui-admin-vue3/src/components/XButton/src/XButton.vue b/yudao-ui-admin-vue3/src/components/XButton/src/XButton.vue
index 13c35bef3..3ef712302 100644
--- a/yudao-ui-admin-vue3/src/components/XButton/src/XButton.vue
+++ b/yudao-ui-admin-vue3/src/components/XButton/src/XButton.vue
@@ -1,6 +1,6 @@
 <script setup lang="ts">
+import { PropType } from 'vue'
 import { propTypes } from '@/utils/propTypes'
-import { computed, useAttrs, PropType } from 'vue'
 
 const props = defineProps({
   modelValue: propTypes.bool.def(false),
diff --git a/yudao-ui-admin-vue3/src/components/XButton/src/XTextButton.vue b/yudao-ui-admin-vue3/src/components/XButton/src/XTextButton.vue
index 9a3a8a56b..a256a9851 100644
--- a/yudao-ui-admin-vue3/src/components/XButton/src/XTextButton.vue
+++ b/yudao-ui-admin-vue3/src/components/XButton/src/XTextButton.vue
@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { propTypes } from '@/utils/propTypes'
-import { computed, useAttrs, PropType } from 'vue'
+import { PropType } from 'vue'
 
 const props = defineProps({
   modelValue: propTypes.bool.def(false),
diff --git a/yudao-ui-admin-vue3/src/components/XModal/src/XModal.vue b/yudao-ui-admin-vue3/src/components/XModal/src/XModal.vue
index 84200ad14..e705cf8a0 100644
--- a/yudao-ui-admin-vue3/src/components/XModal/src/XModal.vue
+++ b/yudao-ui-admin-vue3/src/components/XModal/src/XModal.vue
@@ -1,6 +1,5 @@
 <script setup lang="ts">
 import { propTypes } from '@/utils/propTypes'
-import { computed, useAttrs, useSlots } from 'vue'
 import { ElScrollbar } from 'element-plus'
 const slots = useSlots()
 
diff --git a/yudao-ui-admin-vue3/src/components/XTable/src/XTable.vue b/yudao-ui-admin-vue3/src/components/XTable/src/XTable.vue
index 3abbe9102..d093489db 100644
--- a/yudao-ui-admin-vue3/src/components/XTable/src/XTable.vue
+++ b/yudao-ui-admin-vue3/src/components/XTable/src/XTable.vue
@@ -6,15 +6,14 @@
   </VxeGrid>
 </template>
 <script lang="ts" setup name="XTable">
-import { computed, PropType, ref, unref, useAttrs, watch } from 'vue'
+import { PropType } from 'vue'
 import { SizeType, VxeGridInstance } from 'vxe-table'
 import { useAppStore } from '@/store/modules/app'
 import { useDesign } from '@/hooks/web/useDesign'
 import { XTableProps } from './type'
 import { isBoolean, isFunction } from '@/utils/is'
-import { useMessage } from '@/hooks/web/useMessage'
+
 import download from '@/utils/download'
-import { useI18n } from '@/hooks/web/useI18n'
 
 const { t } = useI18n()
 const message = useMessage() // 消息弹窗
@@ -260,6 +259,10 @@ const getToolBarConfig = (options: XTableProps) => {
       return
     }
   } else if (!topActionSlots) {
+    options.toolbarConfig = {
+      enabled: true
+    }
+  } else {
     options.toolbarConfig = {
       slots: { buttons: 'toolbar_buttons' }
     }
diff --git a/yudao-ui-admin-vue3/src/config/axios/service.ts b/yudao-ui-admin-vue3/src/config/axios/service.ts
index 89e899fa5..8a049e229 100644
--- a/yudao-ui-admin-vue3/src/config/axios/service.ts
+++ b/yudao-ui-admin-vue3/src/config/axios/service.ts
@@ -10,7 +10,7 @@ import qs from 'qs'
 import { config } from '@/config/axios/config'
 import { getAccessToken, getRefreshToken, getTenantId, removeToken, setToken } from '@/utils/auth'
 import errorCode from './errorCode'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { resetRouter } from '@/router'
 import { useCache } from '@/hooks/web/useCache'
 
diff --git a/yudao-ui-admin-vue3/src/directives/permission/hasPermi.ts b/yudao-ui-admin-vue3/src/directives/permission/hasPermi.ts
index 643510155..d86d2f54c 100644
--- a/yudao-ui-admin-vue3/src/directives/permission/hasPermi.ts
+++ b/yudao-ui-admin-vue3/src/directives/permission/hasPermi.ts
@@ -1,6 +1,6 @@
 import type { App } from 'vue'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
-import { useI18n } from '@/hooks/web/useI18n'
+
 const { t } = useI18n() // 国际化
 
 export function hasPermi(app: App<Element>) {
diff --git a/yudao-ui-admin-vue3/src/directives/permission/hasRole.ts b/yudao-ui-admin-vue3/src/directives/permission/hasRole.ts
index 29d1611e1..31a352a72 100644
--- a/yudao-ui-admin-vue3/src/directives/permission/hasRole.ts
+++ b/yudao-ui-admin-vue3/src/directives/permission/hasRole.ts
@@ -1,6 +1,6 @@
 import type { App } from 'vue'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
-import { useI18n } from '@/hooks/web/useI18n'
+
 const { t } = useI18n() // 国际化
 
 export function hasRole(app: App<Element>) {
diff --git a/yudao-ui-admin-vue3/src/hooks/event/useScrollTo.ts b/yudao-ui-admin-vue3/src/hooks/event/useScrollTo.ts
index 74fd673c8..92aec8722 100644
--- a/yudao-ui-admin-vue3/src/hooks/event/useScrollTo.ts
+++ b/yudao-ui-admin-vue3/src/hooks/event/useScrollTo.ts
@@ -1,5 +1,3 @@
-import { ref, unref } from 'vue'
-
 export interface ScrollToParams {
   el: HTMLElement
   to: number
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useConfigGlobal.ts b/yudao-ui-admin-vue3/src/hooks/web/useConfigGlobal.ts
index bde9d7881..afb3db3a9 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useConfigGlobal.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useConfigGlobal.ts
@@ -1,5 +1,4 @@
 import { ConfigGlobalTypes } from '@/types/configGlobal'
-import { inject } from 'vue'
 
 export const useConfigGlobal = () => {
   const configGlobal = inject('configGlobal', {}) as ConfigGlobalTypes
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useCrudSchemas.ts b/yudao-ui-admin-vue3/src/hooks/web/useCrudSchemas.ts
index 514881947..34e655b11 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useCrudSchemas.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useCrudSchemas.ts
@@ -3,7 +3,7 @@ import { AxiosPromise } from 'axios'
 import { findIndex } from '@/utils'
 import { eachTree, treeMap, filter } from '@/utils/tree'
 import { getBoolDictOptions, getDictOptions, getIntDictOptions } from '@/utils/dict'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { FormSchema } from '@/types/form'
 import { TableColumn } from '@/types/table'
 import { DescriptionsSchema } from '@/types/descriptions'
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useEmitt.ts b/yudao-ui-admin-vue3/src/hooks/web/useEmitt.ts
index 26b5d626c..d4efea728 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useEmitt.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useEmitt.ts
@@ -1,5 +1,4 @@
 import mitt from 'mitt'
-import { onBeforeUnmount } from 'vue'
 
 interface Option {
   name: string // 事件名称
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useForm.ts b/yudao-ui-admin-vue3/src/hooks/web/useForm.ts
index 356ee8f9c..53a8a94d1 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useForm.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useForm.ts
@@ -1,6 +1,5 @@
 import type { Form, FormExpose } from '@/components/Form'
 import type { ElForm } from 'element-plus'
-import { ref, unref, nextTick } from 'vue'
 import type { FormProps } from '@/components/Form/src/types'
 import { FormSchema, FormSetPropsType } from '@/types/form'
 
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useIntro.ts b/yudao-ui-admin-vue3/src/hooks/web/useIntro.ts
index 85604df6a..7fe00845d 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useIntro.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useIntro.ts
@@ -1,7 +1,7 @@
 import introJs from 'intro.js'
 import { IntroJs, Step, Options } from 'intro.js'
 import 'intro.js/introjs.css'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { useDesign } from '@/hooks/web/useDesign'
 
 export const useIntro = (setps?: Step[], options?: Options) => {
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useNProgress.ts b/yudao-ui-admin-vue3/src/hooks/web/useNProgress.ts
index 28990e7de..6d8c0b910 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useNProgress.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useNProgress.ts
@@ -1,8 +1,7 @@
-import { nextTick, unref } from 'vue'
+import { useCssVar } from '@vueuse/core'
 import type { NProgressOptions } from 'nprogress'
 import NProgress from 'nprogress'
 import 'nprogress/nprogress.css'
-import { useCssVar } from '@vueuse/core'
 
 const primaryColor = useCssVar('--el-color-primary', document.documentElement)
 
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useTable.ts b/yudao-ui-admin-vue3/src/hooks/web/useTable.ts
index a5628bb5f..7a9b1afea 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useTable.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useTable.ts
@@ -3,7 +3,7 @@ import { Table, TableExpose } from '@/components/Table'
 import { ElMessage, ElMessageBox, ElTable } from 'element-plus'
 import { computed, nextTick, reactive, ref, unref, watch } from 'vue'
 import type { TableProps } from '@/components/Table/src/types'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { TableSetPropsType } from '@/types/table'
 
 const { t } = useI18n()
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useTimeAgo.ts b/yudao-ui-admin-vue3/src/hooks/web/useTimeAgo.ts
index b6d186227..08f5d1e66 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useTimeAgo.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useTimeAgo.ts
@@ -1,5 +1,4 @@
 import { useTimeAgo as useTimeAgoCore, UseTimeAgoMessages } from '@vueuse/core'
-import { computed, unref } from 'vue'
 import { useLocaleStoreWithOut } from '@/store/modules/locale'
 
 const TIME_AGO_MESSAGE_MAP: {
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useTitle.ts b/yudao-ui-admin-vue3/src/hooks/web/useTitle.ts
index d0eb18860..020a9b771 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useTitle.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useTitle.ts
@@ -1,7 +1,6 @@
 import { watch, ref } from 'vue'
 import { isString } from '@/utils/is'
 import { useAppStoreWithOut } from '@/store/modules/app'
-import { useI18n } from '@/hooks/web/useI18n'
 
 const appStore = useAppStoreWithOut()
 
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useValidator.ts b/yudao-ui-admin-vue3/src/hooks/web/useValidator.ts
index a0d36c35e..0c16fa31c 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useValidator.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useValidator.ts
@@ -1,5 +1,3 @@
-import { useI18n } from '@/hooks/web/useI18n'
-
 const { t } = useI18n()
 
 type Callback = (error?: string | Error | undefined) => void
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts b/yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts
index 315dae8f0..5c765d4fa 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts
@@ -1,4 +1,3 @@
-import { reactive } from 'vue'
 import {
   FormItemRenderOptions,
   VxeColumnPropTypes,
@@ -7,7 +6,7 @@ import {
   VxeTableDefines
 } from 'vxe-table'
 import { eachTree } from 'xe-utils'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { getBoolDictOptions, getDictOptions, getIntDictOptions } from '@/utils/dict'
 import { FormSchema } from '@/types/form'
 import { VxeTableColumn } from '@/types/table'
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useVxeGrid.ts b/yudao-ui-admin-vue3/src/hooks/web/useVxeGrid.ts
index 34106be2a..5ac07c862 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useVxeGrid.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useVxeGrid.ts
@@ -2,8 +2,7 @@ import { computed, nextTick, reactive } from 'vue'
 import { SizeType, VxeGridProps, VxeTablePropTypes } from 'vxe-table'
 import { useAppStore } from '@/store/modules/app'
 import { VxeAllSchemas } from './useVxeCrudSchemas'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
+
 import download from '@/utils/download'
 
 const { t } = useI18n()
diff --git a/yudao-ui-admin-vue3/src/hooks/web/useXTable.ts b/yudao-ui-admin-vue3/src/hooks/web/useXTable.ts
index b258a2523..fddb7c46d 100644
--- a/yudao-ui-admin-vue3/src/hooks/web/useXTable.ts
+++ b/yudao-ui-admin-vue3/src/hooks/web/useXTable.ts
@@ -1,4 +1,3 @@
-import { ref, unref } from 'vue'
 import { XTableProps } from '@/components/XTable/src/type'
 
 export interface tableMethod {
diff --git a/yudao-ui-admin-vue3/src/layout/components/AppView.vue b/yudao-ui-admin-vue3/src/layout/components/AppView.vue
index 6f33a07a4..dda59ed17 100644
--- a/yudao-ui-admin-vue3/src/layout/components/AppView.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/AppView.vue
@@ -2,7 +2,6 @@
 import { useTagsViewStore } from '@/store/modules/tagsView'
 import { useAppStore } from '@/store/modules/app'
 import { Footer } from '@/layout/components/Footer'
-import { computed } from 'vue'
 
 const appStore = useAppStore()
 
diff --git a/yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue b/yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue
index c6e5aa031..19be74005 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue
@@ -6,7 +6,7 @@ import { usePermissionStore } from '@/store/modules/permission'
 import { filterBreadcrumb } from './helper'
 import { filter, treeToList } from '@/utils/tree'
 import type { RouteLocationNormalizedLoaded, RouteMeta } from 'vue-router'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { Icon } from '@/components/Icon'
 import { useAppStore } from '@/store/modules/app'
 import { useDesign } from '@/hooks/web/useDesign'
diff --git a/yudao-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue b/yudao-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue
index 197b86d41..a8f47dc67 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue
@@ -1,5 +1,4 @@
 <script setup lang="ts">
-import { computed, unref } from 'vue'
 import { useAppStore } from '@/store/modules/app'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
diff --git a/yudao-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue b/yudao-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue
index ed986162f..8c18f2a18 100644
--- a/yudao-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue
@@ -1,10 +1,10 @@
 <script setup lang="ts">
-import { ElDropdown, ElDropdownMenu, ElDropdownItem } from 'element-plus'
-import { PropType, ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
+import { PropType } from 'vue'
+
 import { useDesign } from '@/hooks/web/useDesign'
 import type { RouteLocationNormalizedLoaded } from 'vue-router'
 import { contextMenuSchema } from '@/types/contextMenu'
+import type { ElDropdown } from 'element-plus'
 
 const { getPrefixCls } = useDesign()
 
diff --git a/yudao-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue b/yudao-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue
index 00c83ed4c..239812c68 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue
@@ -1,6 +1,5 @@
 <script setup lang="ts">
 import { useAppStore } from '@/store/modules/app'
-import { computed } from 'vue'
 import { useDesign } from '@/hooks/web/useDesign'
 
 const { getPrefixCls } = useDesign()
diff --git a/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue b/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue
index 9040908c5..0e56724ba 100644
--- a/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue
@@ -1,6 +1,4 @@
 <script setup lang="ts">
-import { computed, unref } from 'vue'
-import { ElDropdown, ElDropdownMenu, ElDropdownItem } from 'element-plus'
 import { useLocaleStore } from '@/store/modules/locale'
 import { useLocale } from '@/hooks/web/useLocale'
 import { propTypes } from '@/utils/propTypes'
diff --git a/yudao-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue b/yudao-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue
index 40718d093..4d22f7da3 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue
@@ -1,10 +1,9 @@
 <script lang="tsx">
-import { computed, defineComponent, unref, PropType } from 'vue'
+import { PropType } from 'vue'
 import { ElMenu, ElScrollbar } from 'element-plus'
 import { useAppStore } from '@/store/modules/app'
 import { usePermissionStore } from '@/store/modules/permission'
 import { useRenderMenuItem } from './components/useRenderMenuItem'
-import { useRouter } from 'vue-router'
 import { isUrl } from '@/utils/is'
 import { useDesign } from '@/hooks/web/useDesign'
 import { LayoutType } from '@/types/layout'
diff --git a/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx b/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx
index 6f7caff7a..fc30b9006 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx
+++ b/yudao-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx
@@ -1,6 +1,5 @@
 import type { RouteMeta } from 'vue-router'
 import { Icon } from '@/components/Icon'
-import { useI18n } from '@/hooks/web/useI18n'
 
 export const useRenderMenuTitle = () => {
   const renderMenuTitle = (meta: RouteMeta) => {
diff --git a/yudao-ui-admin-vue3/src/layout/components/Menu/src/helper.ts b/yudao-ui-admin-vue3/src/layout/components/Menu/src/helper.ts
index b48388139..c26f5f4bf 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Menu/src/helper.ts
+++ b/yudao-ui-admin-vue3/src/layout/components/Menu/src/helper.ts
@@ -1,5 +1,4 @@
 import type { RouteMeta } from 'vue-router'
-import { ref, unref } from 'vue'
 import { findPath } from '@/utils/tree'
 
 type OnlyOneChildType = AppRouteRecordRaw & { noShowingChildren?: boolean }
diff --git a/yudao-ui-admin-vue3/src/layout/components/Message/src/Message.vue b/yudao-ui-admin-vue3/src/layout/components/Message/src/Message.vue
index 205683f97..ba21cfdce 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Message/src/Message.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/Message/src/Message.vue
@@ -1,7 +1,4 @@
 <script setup lang="ts">
-import { ref } from 'vue'
-import { ElTabs, ElTabPane, ElPopover, ElBadge } from 'element-plus'
-
 const activeName = ref('notice')
 
 const noticeList = ref([
diff --git a/yudao-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue b/yudao-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue
index 14bb7393d..de0532fdc 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue
@@ -1,8 +1,7 @@
 <script setup lang="ts">
-import { ElDrawer, ElDivider, ElMessage } from 'element-plus'
-import { ref, unref, computed, watch } from 'vue'
+import { ElMessage } from 'element-plus'
 import { useCssVar, useClipboard } from '@vueuse/core'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 import { useDesign } from '@/hooks/web/useDesign'
 
diff --git a/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue
index 9787ea7f8..7c5e24048 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue
@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { PropType, watch, unref, ref } from 'vue'
+import { PropType } from 'vue'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 
diff --git a/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue
index f44397c45..e0dc0885e 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue
@@ -1,8 +1,6 @@
 <script setup lang="ts">
-import { computed, ref, watch } from 'vue'
-import { ElSwitch, ElInput } from 'element-plus'
 import { setCssVar } from '@/utils'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { useDesign } from '@/hooks/web/useDesign'
 import { useWatermark } from '@/hooks/web/useWatermark'
 import { useAppStore } from '@/store/modules/app'
diff --git a/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue
index 0932471af..07dbab95d 100644
--- a/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue
@@ -1,6 +1,5 @@
 <script setup lang="ts">
 import { useAppStore } from '@/store/modules/app'
-import { computed } from 'vue'
 import { useDesign } from '@/hooks/web/useDesign'
 
 const { getPrefixCls } = useDesign()
diff --git a/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue b/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue
index cb8d9f849..0dc698c07 100644
--- a/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue
@@ -1,8 +1,6 @@
 <script setup lang="ts">
-import { computed } from 'vue'
-import { ElDropdown, ElDropdownMenu, ElDropdownItem } from 'element-plus'
 import { useAppStore } from '@/store/modules/app'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 import { ElementPlusSize } from '@/types/elementPlus'
diff --git a/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue b/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue
index 0e5b69081..015d6c731 100644
--- a/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue
@@ -1,12 +1,10 @@
 <script lang="tsx">
 import { usePermissionStore } from '@/store/modules/permission'
 import { useAppStore } from '@/store/modules/app'
-import { computed, unref, defineComponent, watch, ref, onMounted } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { ElScrollbar } from 'element-plus'
 import { Icon } from '@/components/Icon'
 import { Menu } from '@/layout/components/Menu'
-import { useRouter } from 'vue-router'
 import { pathResolve } from '@/utils/routerHelper'
 import { cloneDeep } from 'lodash-es'
 import { filterMenusPath, initTabMap, tabPathMap } from './helper'
diff --git a/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts b/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts
index 37a1a6869..cce39323d 100644
--- a/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts
+++ b/yudao-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts
@@ -2,7 +2,6 @@ import { getAllParentPath } from '@/layout/components/Menu/src/helper'
 import type { RouteMeta } from 'vue-router'
 import { isUrl } from '@/utils/is'
 import { cloneDeep } from 'lodash-es'
-import { reactive } from 'vue'
 
 export type TabMapTypes = {
   [key: string]: string[]
diff --git a/yudao-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue b/yudao-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue
index e1ab3cb05..bf5a15e4a 100644
--- a/yudao-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue
@@ -1,17 +1,15 @@
 <script setup lang="ts">
-import { onMounted, watch, computed, unref, ref, nextTick } from 'vue'
-import { useRouter } from 'vue-router'
 import type { RouteLocationNormalizedLoaded, RouterLinkProps } from 'vue-router'
 import { usePermissionStore } from '@/store/modules/permission'
 import { useTagsViewStore } from '@/store/modules/tagsView'
 import { useAppStore } from '@/store/modules/app'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { filterAffixTags } from './helper'
 import { ContextMenu, ContextMenuExpose } from '@/layout/components/ContextMenu'
 import { useDesign } from '@/hooks/web/useDesign'
-import { useTemplateRefsList } from '@vueuse/core'
 import { ElScrollbar } from 'element-plus'
 import { useScrollTo } from '@/hooks/event/useScrollTo'
+import { useTemplateRefsList } from '@vueuse/core'
 
 const { getPrefixCls } = useDesign()
 
diff --git a/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue b/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue
index 25221d16a..1af67cf0b 100644
--- a/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue
@@ -1,7 +1,5 @@
 <script setup lang="ts">
-import { ref } from 'vue'
 import { useAppStore } from '@/store/modules/app'
-import { ElSwitch } from 'element-plus'
 import { useIcon } from '@/hooks/web/useIcon'
 import { useDesign } from '@/hooks/web/useDesign'
 
diff --git a/yudao-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue b/yudao-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue
index 2259d693f..62b5eb5aa 100644
--- a/yudao-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue
+++ b/yudao-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue
@@ -1,8 +1,7 @@
 <script setup lang="ts">
-import { ElDropdown, ElDropdownMenu, ElDropdownItem, ElMessageBox } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
+import { ElMessageBox } from 'element-plus'
+
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
-import { useRouter } from 'vue-router'
 import { useDesign } from '@/hooks/web/useDesign'
 import avatarImg from '@/assets/imgs/avatar.gif'
 import { useUserStore } from '@/store/modules/user'
diff --git a/yudao-ui-admin-vue3/src/plugins/vxeTable/index.ts b/yudao-ui-admin-vue3/src/plugins/vxeTable/index.ts
index bfaea8604..9576e8175 100644
--- a/yudao-ui-admin-vue3/src/plugins/vxeTable/index.ts
+++ b/yudao-ui-admin-vue3/src/plugins/vxeTable/index.ts
@@ -1,6 +1,7 @@
-import { App, unref } from 'vue'
+import { App } from 'vue'
 import XEUtils from 'xe-utils'
 import './renderer'
+import 'vxe-table/lib/style.css'
 import { i18n } from '@/plugins/vueI18n'
 import zhCN from 'vxe-table/lib/locale/lang/zh-CN'
 import enUS from 'vxe-table/lib/locale/lang/en-US'
diff --git a/yudao-ui-admin-vue3/src/plugins/vxeTable/renderer/dataTimeRangePicker.tsx b/yudao-ui-admin-vue3/src/plugins/vxeTable/renderer/dataTimeRangePicker.tsx
index 6f6b9aec2..d6508d2cd 100644
--- a/yudao-ui-admin-vue3/src/plugins/vxeTable/renderer/dataTimeRangePicker.tsx
+++ b/yudao-ui-admin-vue3/src/plugins/vxeTable/renderer/dataTimeRangePicker.tsx
@@ -1,4 +1,3 @@
-import { useI18n } from '@/hooks/web/useI18n'
 import { ElDatePicker } from 'element-plus'
 import { VXETable } from 'vxe-table'
 
diff --git a/yudao-ui-admin-vue3/src/router/modules/remaining.ts b/yudao-ui-admin-vue3/src/router/modules/remaining.ts
index d26cd11fd..e511e1948 100644
--- a/yudao-ui-admin-vue3/src/router/modules/remaining.ts
+++ b/yudao-ui-admin-vue3/src/router/modules/remaining.ts
@@ -1,5 +1,5 @@
 import { Layout } from '@/utils/routerHelper'
-import { useI18n } from '@/hooks/web/useI18n'
+
 const { t } = useI18n()
 /**
 * redirect: noredirect        当设置 noredirect 的时候该路由在面包屑导航中不可被点击
diff --git a/yudao-ui-admin-vue3/src/types/auto-components.d.ts b/yudao-ui-admin-vue3/src/types/auto-components.d.ts
new file mode 100644
index 000000000..0a56908aa
--- /dev/null
+++ b/yudao-ui-admin-vue3/src/types/auto-components.d.ts
@@ -0,0 +1,93 @@
+// generated by unplugin-vue-components
+// We suggest you to commit this file into source control
+// Read more: https://github.com/vuejs/core/pull/3399
+import '@vue/runtime-core'
+
+export {}
+
+declare module '@vue/runtime-core' {
+  export interface GlobalComponents {
+    Backtop: typeof import('./../components/Backtop/src/Backtop.vue')['default']
+    ConfigGlobal: typeof import('./../components/ConfigGlobal/src/ConfigGlobal.vue')['default']
+    ContentDetailWrap: typeof import('./../components/ContentDetailWrap/src/ContentDetailWrap.vue')['default']
+    ContentWrap: typeof import('./../components/ContentWrap/src/ContentWrap.vue')['default']
+    CopperModal: typeof import('./../components/Cropper/src/CopperModal.vue')['default']
+    CountTo: typeof import('./../components/CountTo/src/CountTo.vue')['default']
+    Crontab: typeof import('./../components/Crontab/src/Crontab.vue')['default']
+    Cropper: typeof import('./../components/Cropper/src/Cropper.vue')['default']
+    CropperAvatar: typeof import('./../components/Cropper/src/CropperAvatar.vue')['default']
+    Descriptions: typeof import('./../components/Descriptions/src/Descriptions.vue')['default']
+    Dialog: typeof import('./../components/Dialog/src/Dialog.vue')['default']
+    DictTag: typeof import('./../components/DictTag/src/DictTag.vue')['default']
+    Echart: typeof import('./../components/Echart/src/Echart.vue')['default']
+    Editor: typeof import('./../components/Editor/src/Editor.vue')['default']
+    ElBadge: typeof import('element-plus/es')['ElBadge']
+    ElButton: typeof import('element-plus/es')['ElButton']
+    ElCard: typeof import('element-plus/es')['ElCard']
+    ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+    ElCol: typeof import('element-plus/es')['ElCol']
+    ElCollapseTransition: typeof import('element-plus/es')['ElCollapseTransition']
+    ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
+    ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
+    ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
+    ElDivider: typeof import('element-plus/es')['ElDivider']
+    ElDrawer: typeof import('element-plus/es')['ElDrawer']
+    ElDropdown: typeof import('element-plus/es')['ElDropdown']
+    ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
+    ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
+    ElForm: typeof import('element-plus/es')['ElForm']
+    ElFormItem: typeof import('element-plus/es')['ElFormItem']
+    ElIcon: typeof import('element-plus/es')['ElIcon']
+    ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
+    ElInput: typeof import('element-plus/es')['ElInput']
+    ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
+    ElLink: typeof import('element-plus/es')['ElLink']
+    ElOption: typeof import('element-plus/es')['ElOption']
+    ElPopover: typeof import('element-plus/es')['ElPopover']
+    ElRadio: typeof import('element-plus/es')['ElRadio']
+    ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
+    ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
+    ElRow: typeof import('element-plus/es')['ElRow']
+    ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
+    ElSelect: typeof import('element-plus/es')['ElSelect']
+    ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
+    ElSwitch: typeof import('element-plus/es')['ElSwitch']
+    ElTabPane: typeof import('element-plus/es')['ElTabPane']
+    ElTabs: typeof import('element-plus/es')['ElTabs']
+    ElTag: typeof import('element-plus/es')['ElTag']
+    ElTooltip: typeof import('element-plus/es')['ElTooltip']
+    ElTransfer: typeof import('element-plus/es')['ElTransfer']
+    ElTree: typeof import('element-plus/es')['ElTree']
+    ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
+    ElUpload: typeof import('element-plus/es')['ElUpload']
+    Error: typeof import('./../components/Error/src/Error.vue')['default']
+    Form: typeof import('./../components/Form/src/Form.vue')['default']
+    Highlight: typeof import('./../components/Highlight/src/Highlight.vue')['default']
+    Icon: typeof import('./../components/Icon/src/Icon.vue')['default']
+    IconSelect: typeof import('./../components/Icon/src/IconSelect.vue')['default']
+    IFrame: typeof import('./../components/IFrame/src/IFrame.vue')['default']
+    ImageViewer: typeof import('./../components/ImageViewer/src/ImageViewer.vue')['default']
+    Infotip: typeof import('./../components/Infotip/src/Infotip.vue')['default']
+    InputPassword: typeof import('./../components/InputPassword/src/InputPassword.vue')['default']
+    Qrcode: typeof import('./../components/Qrcode/src/Qrcode.vue')['default']
+    RouterLink: typeof import('vue-router')['RouterLink']
+    RouterView: typeof import('vue-router')['RouterView']
+    Search: typeof import('./../components/Search/src/Search.vue')['default']
+    Sticky: typeof import('./../components/Sticky/src/Sticky.vue')['default']
+    Table: typeof import('./../components/Table/src/Table.vue')['default']
+    Tooltip: typeof import('./../components/Tooltip/src/Tooltip.vue')['default']
+    UploadFile: typeof import('./../components/UploadFile/src/UploadFile.vue')['default']
+    UploadImg: typeof import('./../components/UploadFile/src/UploadImg.vue')['default']
+    UploadImgs: typeof import('./../components/UploadFile/src/UploadImgs.vue')['default']
+    Verify: typeof import('./../components/Verifition/src/Verify.vue')['default']
+    VerifyPoints: typeof import('./../components/Verifition/src/Verify/VerifyPoints.vue')['default']
+    VerifySlide: typeof import('./../components/Verifition/src/Verify/VerifySlide.vue')['default']
+    XButton: typeof import('./../components/XButton/src/XButton.vue')['default']
+    XModal: typeof import('./../components/XModal/src/XModal.vue')['default']
+    XTable: typeof import('./../components/XTable/src/XTable.vue')['default']
+    XTextButton: typeof import('./../components/XButton/src/XTextButton.vue')['default']
+  }
+  export interface ComponentCustomProperties {
+    vLoading: typeof import('element-plus/es')['ElLoadingDirective']
+  }
+}
diff --git a/yudao-ui-admin-vue3/src/types/auto-imports.d.ts b/yudao-ui-admin-vue3/src/types/auto-imports.d.ts
new file mode 100644
index 000000000..68e0f7a40
--- /dev/null
+++ b/yudao-ui-admin-vue3/src/types/auto-imports.d.ts
@@ -0,0 +1,67 @@
+// Generated by 'unplugin-auto-import'
+export {}
+declare global {
+  const DICT_TYPE: typeof import('@/utils/dict')['DICT_TYPE']
+  const EffectScope: typeof import('vue')['EffectScope']
+  const computed: typeof import('vue')['computed']
+  const createApp: typeof import('vue')['createApp']
+  const customRef: typeof import('vue')['customRef']
+  const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
+  const defineComponent: typeof import('vue')['defineComponent']
+  const effectScope: typeof import('vue')['effectScope']
+  const getCurrentInstance: typeof import('vue')['getCurrentInstance']
+  const getCurrentScope: typeof import('vue')['getCurrentScope']
+  const h: typeof import('vue')['h']
+  const inject: typeof import('vue')['inject']
+  const isProxy: typeof import('vue')['isProxy']
+  const isReactive: typeof import('vue')['isReactive']
+  const isReadonly: typeof import('vue')['isReadonly']
+  const isRef: typeof import('vue')['isRef']
+  const markRaw: typeof import('vue')['markRaw']
+  const nextTick: typeof import('vue')['nextTick']
+  const onActivated: typeof import('vue')['onActivated']
+  const onBeforeMount: typeof import('vue')['onBeforeMount']
+  const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
+  const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
+  const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
+  const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
+  const onDeactivated: typeof import('vue')['onDeactivated']
+  const onErrorCaptured: typeof import('vue')['onErrorCaptured']
+  const onMounted: typeof import('vue')['onMounted']
+  const onRenderTracked: typeof import('vue')['onRenderTracked']
+  const onRenderTriggered: typeof import('vue')['onRenderTriggered']
+  const onScopeDispose: typeof import('vue')['onScopeDispose']
+  const onServerPrefetch: typeof import('vue')['onServerPrefetch']
+  const onUnmounted: typeof import('vue')['onUnmounted']
+  const onUpdated: typeof import('vue')['onUpdated']
+  const provide: typeof import('vue')['provide']
+  const reactive: typeof import('vue')['reactive']
+  const readonly: typeof import('vue')['readonly']
+  const ref: typeof import('vue')['ref']
+  const required: typeof import('@/utils/formRules')['required']
+  const resolveComponent: typeof import('vue')['resolveComponent']
+  const resolveDirective: typeof import('vue')['resolveDirective']
+  const shallowReactive: typeof import('vue')['shallowReactive']
+  const shallowReadonly: typeof import('vue')['shallowReadonly']
+  const shallowRef: typeof import('vue')['shallowRef']
+  const toRaw: typeof import('vue')['toRaw']
+  const toRef: typeof import('vue')['toRef']
+  const toRefs: typeof import('vue')['toRefs']
+  const triggerRef: typeof import('vue')['triggerRef']
+  const unref: typeof import('vue')['unref']
+  const useAttrs: typeof import('vue')['useAttrs']
+  const useCssModule: typeof import('vue')['useCssModule']
+  const useCssVars: typeof import('vue')['useCssVars']
+  const useI18n: typeof import('@/hooks/web/useI18n')['useI18n']
+  const useLink: typeof import('vue-router')['useLink']
+  const useMessage: typeof import('@/hooks/web/useMessage')['useMessage']
+  const useRoute: typeof import('vue-router')['useRoute']
+  const useRouter: typeof import('vue-router')['useRouter']
+  const useSlots: typeof import('vue')['useSlots']
+  const useVxeCrudSchemas: typeof import('@/hooks/web/useVxeCrudSchemas')['useVxeCrudSchemas']
+  const useXTable: typeof import('@/hooks/web/useXTable')['useXTable']
+  const watch: typeof import('vue')['watch']
+  const watchEffect: typeof import('vue')['watchEffect']
+  const watchPostEffect: typeof import('vue')['watchPostEffect']
+  const watchSyncEffect: typeof import('vue')['watchSyncEffect']
+}
diff --git a/yudao-ui-admin-vue3/src/utils/formRules.ts b/yudao-ui-admin-vue3/src/utils/formRules.ts
index d9090a903..2989867fc 100644
--- a/yudao-ui-admin-vue3/src/utils/formRules.ts
+++ b/yudao-ui-admin-vue3/src/utils/formRules.ts
@@ -1,5 +1,3 @@
-import { useI18n } from '@/hooks/web/useI18n'
-
 const { t } = useI18n()
 
 // 必填项
diff --git a/yudao-ui-admin-vue3/src/utils/index.ts b/yudao-ui-admin-vue3/src/utils/index.ts
index b413a2b5a..d30584738 100644
--- a/yudao-ui-admin-vue3/src/utils/index.ts
+++ b/yudao-ui-admin-vue3/src/utils/index.ts
@@ -1,5 +1,3 @@
-// import type { Plugin } from 'vue'
-
 /**
  *
  * @param component 需要注册的组件
diff --git a/yudao-ui-admin-vue3/src/views/Error/403.vue b/yudao-ui-admin-vue3/src/views/Error/403.vue
index 67bab9d0a..a22162209 100644
--- a/yudao-ui-admin-vue3/src/views/Error/403.vue
+++ b/yudao-ui-admin-vue3/src/views/Error/403.vue
@@ -2,9 +2,6 @@
   <Error type="403" @error-click="errorClick()" />
 </template>
 <script setup lang="ts">
-import { Error } from '@/components/Error'
-import { useRouter } from 'vue-router'
-
 const { push } = useRouter()
 
 const errorClick = () => {
diff --git a/yudao-ui-admin-vue3/src/views/Error/404.vue b/yudao-ui-admin-vue3/src/views/Error/404.vue
index b8f121f26..337d78d01 100644
--- a/yudao-ui-admin-vue3/src/views/Error/404.vue
+++ b/yudao-ui-admin-vue3/src/views/Error/404.vue
@@ -2,9 +2,6 @@
   <Error @error-click="errorClick()" />
 </template>
 <script setup lang="ts">
-import { Error } from '@/components/Error'
-import { useRouter } from 'vue-router'
-
 const { push } = useRouter()
 
 const errorClick = () => {
diff --git a/yudao-ui-admin-vue3/src/views/Error/500.vue b/yudao-ui-admin-vue3/src/views/Error/500.vue
index d9f3ede46..c66e713f4 100644
--- a/yudao-ui-admin-vue3/src/views/Error/500.vue
+++ b/yudao-ui-admin-vue3/src/views/Error/500.vue
@@ -2,9 +2,6 @@
   <Error type="500" @error-click="errorClick()" />
 </template>
 <script setup lang="ts">
-import { Error } from '@/components/Error'
-import { useRouter } from 'vue-router'
-
 const { push } = useRouter()
 
 const errorClick = () => {
diff --git a/yudao-ui-admin-vue3/src/views/Home/Index.vue b/yudao-ui-admin-vue3/src/views/Home/Index.vue
index 07ab61be3..6c586f0b3 100644
--- a/yudao-ui-admin-vue3/src/views/Home/Index.vue
+++ b/yudao-ui-admin-vue3/src/views/Home/Index.vue
@@ -161,17 +161,12 @@
   </el-row>
 </template>
 <script setup lang="ts" name="Home">
-import { ref, reactive } from 'vue'
 import { set } from 'lodash-es'
 import { EChartsOption } from 'echarts'
-import { ElRow, ElCol, ElSkeleton, ElCard, ElDivider, ElLink } from 'element-plus'
 import { formatTime } from '@/utils'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { useUserStore } from '@/store/modules/user'
 import { useWatermark } from '@/hooks/web/useWatermark'
-import { Echart } from '@/components/Echart'
-import { CountTo } from '@/components/CountTo'
-import { Highlight } from '@/components/Highlight'
 import avatarImg from '@/assets/imgs/avatar.gif'
 import type { WorkplaceTotal, Project, Notice, Shortcut } from './types'
 import { pieOptions, barOptions } from './echarts-data'
diff --git a/yudao-ui-admin-vue3/src/views/Home/Index2.vue b/yudao-ui-admin-vue3/src/views/Home/Index2.vue
index de91eb54c..0f588510a 100644
--- a/yudao-ui-admin-vue3/src/views/Home/Index2.vue
+++ b/yudao-ui-admin-vue3/src/views/Home/Index2.vue
@@ -141,14 +141,10 @@
   </el-row>
 </template>
 <script setup lang="ts">
-import { ref, reactive } from 'vue'
 import { set } from 'lodash-es'
 import { EChartsOption } from 'echarts'
-import { ElRow, ElCol, ElCard, ElSkeleton } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { useDesign } from '@/hooks/web/useDesign'
-import { Echart } from '@/components/Echart'
-import { CountTo } from '@/components/CountTo'
 import type { AnalysisTotalTypes } from './types'
 import { pieOptions, barOptions, lineOptions } from './echarts-data'
 
diff --git a/yudao-ui-admin-vue3/src/views/Home/echarts-data.ts b/yudao-ui-admin-vue3/src/views/Home/echarts-data.ts
index 00a195eb8..56093f4b6 100644
--- a/yudao-ui-admin-vue3/src/views/Home/echarts-data.ts
+++ b/yudao-ui-admin-vue3/src/views/Home/echarts-data.ts
@@ -1,5 +1,4 @@
 import { EChartsOption } from 'echarts'
-import { useI18n } from '@/hooks/web/useI18n'
 
 const { t } = useI18n()
 
diff --git a/yudao-ui-admin-vue3/src/views/Login/Login.vue b/yudao-ui-admin-vue3/src/views/Login/Login.vue
index d6154cada..a513b0caa 100644
--- a/yudao-ui-admin-vue3/src/views/Login/Login.vue
+++ b/yudao-ui-admin-vue3/src/views/Login/Login.vue
@@ -60,7 +60,7 @@
 </template>
 <script setup lang="ts">
 import { underlineToHump } from '@/utils'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { useDesign } from '@/hooks/web/useDesign'
 import { useAppStore } from '@/store/modules/app'
 import { ThemeSwitch } from '@/layout/components/ThemeSwitch'
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/LoginForm.vue b/yudao-ui-admin-vue3/src/views/Login/components/LoginForm.vue
index 0953c0759..1e41b9940 100644
--- a/yudao-ui-admin-vue3/src/views/Login/components/LoginForm.vue
+++ b/yudao-ui-admin-vue3/src/views/Login/components/LoginForm.vue
@@ -128,27 +128,13 @@
   </el-form>
 </template>
 <script setup lang="ts">
-import { reactive, ref, unref, onMounted, computed, watch } from 'vue'
+import { ElLoading } from 'element-plus'
 import LoginFormTitle from './LoginFormTitle.vue'
-import {
-  ElForm,
-  ElFormItem,
-  ElInput,
-  ElCheckbox,
-  ElCol,
-  ElLink,
-  ElRow,
-  ElDivider,
-  ElLoading
-} from 'element-plus'
-import { useRouter } from 'vue-router'
 import type { RouteLocationNormalizedLoaded } from 'vue-router'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { useIcon } from '@/hooks/web/useIcon'
-import { useMessage } from '@/hooks/web/useMessage'
-import { required } from '@/utils/formRules'
+
 import * as authUtil from '@/utils/auth'
-import { Verify } from '@/components/Verifition'
 import { usePermissionStore } from '@/store/modules/permission'
 import * as LoginApi from '@/api/login'
 import { LoginStateEnum, useLoginState, useFormValid } from './useLogin'
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/LoginFormTitle.vue b/yudao-ui-admin-vue3/src/views/Login/components/LoginFormTitle.vue
index 3ad4d37be..693d622a6 100644
--- a/yudao-ui-admin-vue3/src/views/Login/components/LoginFormTitle.vue
+++ b/yudao-ui-admin-vue3/src/views/Login/components/LoginFormTitle.vue
@@ -4,8 +4,6 @@
   </h2>
 </template>
 <script setup lang="ts">
-import { computed, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
 import { LoginStateEnum, useLoginState } from './useLogin'
 
 const { t } = useI18n()
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/MobileForm.vue b/yudao-ui-admin-vue3/src/views/Login/components/MobileForm.vue
index 8f0cbdb3c..0aa1e035b 100644
--- a/yudao-ui-admin-vue3/src/views/Login/components/MobileForm.vue
+++ b/yudao-ui-admin-vue3/src/views/Login/components/MobileForm.vue
@@ -92,14 +92,10 @@
   </el-form>
 </template>
 <script setup lang="ts">
-import { reactive, ref, unref, watch, computed } from 'vue'
-import { ElForm, ElFormItem, ElInput, ElRow, ElCol } from 'element-plus'
-import { useRouter } from 'vue-router'
 import type { RouteLocationNormalizedLoaded } from 'vue-router'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { useIcon } from '@/hooks/web/useIcon'
-import { useMessage } from '@/hooks/web/useMessage'
-import { required } from '@/utils/formRules'
+
 import { setTenantId, setToken } from '@/utils/auth'
 import { usePermissionStore } from '@/store/modules/permission'
 import { getTenantIdByNameApi, sendSmsCodeApi, smsLoginApi } from '@/api/login'
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/QrCodeForm.vue b/yudao-ui-admin-vue3/src/views/Login/components/QrCodeForm.vue
index e312480bd..bdf7e2a51 100644
--- a/yudao-ui-admin-vue3/src/views/Login/components/QrCodeForm.vue
+++ b/yudao-ui-admin-vue3/src/views/Login/components/QrCodeForm.vue
@@ -17,11 +17,8 @@
   </el-row>
 </template>
 <script setup lang="ts">
-import { computed, unref } from 'vue'
-import { ElRow, ElCol, ElCard, ElDivider } from 'element-plus'
-import { Qrcode } from '@/components/Qrcode'
 import logoImg from '@/assets/imgs/logo.png'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import LoginFormTitle from './LoginFormTitle.vue'
 import { useLoginState, LoginStateEnum } from './useLogin'
 
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/RegisterForm.vue b/yudao-ui-admin-vue3/src/views/Login/components/RegisterForm.vue
index 6227c9e26..7d048506c 100644
--- a/yudao-ui-admin-vue3/src/views/Login/components/RegisterForm.vue
+++ b/yudao-ui-admin-vue3/src/views/Login/components/RegisterForm.vue
@@ -36,10 +36,8 @@
   </Form>
 </template>
 <script setup lang="ts">
-import { computed, reactive, ref, unref } from 'vue'
-import { ElInput, FormRules } from 'element-plus'
-import { Form } from '@/components/Form'
-import { useI18n } from '@/hooks/web/useI18n'
+import type { FormRules } from 'element-plus'
+
 import { useForm } from '@/hooks/web/useForm'
 import { useValidator } from '@/hooks/web/useValidator'
 import LoginFormTitle from './LoginFormTitle.vue'
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/useLogin.ts b/yudao-ui-admin-vue3/src/views/Login/components/useLogin.ts
index 251bfcbf9..dc46e0973 100644
--- a/yudao-ui-admin-vue3/src/views/Login/components/useLogin.ts
+++ b/yudao-ui-admin-vue3/src/views/Login/components/useLogin.ts
@@ -1,4 +1,4 @@
-import { ref, computed, unref, Ref } from 'vue'
+import { Ref } from 'vue'
 
 export enum LoginStateEnum {
   LOGIN,
diff --git a/yudao-ui-admin-vue3/src/views/Profile/Index.vue b/yudao-ui-admin-vue3/src/views/Profile/Index.vue
index 7c8b49dc3..6a31f1578 100644
--- a/yudao-ui-admin-vue3/src/views/Profile/Index.vue
+++ b/yudao-ui-admin-vue3/src/views/Profile/Index.vue
@@ -31,9 +31,6 @@
   </div>
 </template>
 <script setup lang="ts" name="Profile">
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { ElCard, ElTabs, ElTabPane } from 'element-plus'
 import { BasicInfo, ProfileUser, ResetPwd, UserSocial } from './components/'
 const { t } = useI18n()
 
diff --git a/yudao-ui-admin-vue3/src/views/Profile/components/BasicInfo.vue b/yudao-ui-admin-vue3/src/views/Profile/components/BasicInfo.vue
index 4129eb316..ccb7d6f3c 100644
--- a/yudao-ui-admin-vue3/src/views/Profile/components/BasicInfo.vue
+++ b/yudao-ui-admin-vue3/src/views/Profile/components/BasicInfo.vue
@@ -11,12 +11,11 @@
   <XButton type="danger" :title="t('common.reset')" @click="init()" />
 </template>
 <script setup lang="ts">
-import { reactive, onMounted, unref, ref } from 'vue'
 import type { FormRules } from 'element-plus'
-import { ElMessage, ElRadioGroup, ElRadio } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
+import { ElMessage } from 'element-plus'
+
 import { FormSchema } from '@/types/form'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 import {
   getUserProfileApi,
   updateUserProfileApi,
diff --git a/yudao-ui-admin-vue3/src/views/Profile/components/ProfileUser.vue b/yudao-ui-admin-vue3/src/views/Profile/components/ProfileUser.vue
index cff385e1c..2f5a77b25 100644
--- a/yudao-ui-admin-vue3/src/views/Profile/components/ProfileUser.vue
+++ b/yudao-ui-admin-vue3/src/views/Profile/components/ProfileUser.vue
@@ -40,10 +40,9 @@
   </div>
 </template>
 <script setup lang="ts">
-import { onMounted, ref } from 'vue'
 import dayjs from 'dayjs'
 import UserAvatar from './UserAvatar.vue'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { getUserProfileApi, ProfileVO } from '@/api/system/user/profile'
 
 const { t } = useI18n()
diff --git a/yudao-ui-admin-vue3/src/views/Profile/components/ResetPwd.vue b/yudao-ui-admin-vue3/src/views/Profile/components/ResetPwd.vue
index 74ea9970b..0b37807fb 100644
--- a/yudao-ui-admin-vue3/src/views/Profile/components/ResetPwd.vue
+++ b/yudao-ui-admin-vue3/src/views/Profile/components/ResetPwd.vue
@@ -16,14 +16,13 @@
   </el-form>
 </template>
 <script setup lang="ts">
-import { ref, reactive } from 'vue'
-import { ElForm, ElFormItem, ElMessage } from 'element-plus'
 import type { FormRules, FormInstance } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
+
 import { InputPassword } from '@/components/InputPassword'
 import { updateUserPwdApi } from '@/api/system/user/profile'
 
 const { t } = useI18n()
+const message = useMessage()
 const formRef = ref<FormInstance>()
 const password = reactive({
   oldPassword: '',
@@ -58,7 +57,7 @@ const submit = (formEl: FormInstance | undefined) => {
   formEl.validate(async (valid) => {
     if (valid) {
       await updateUserPwdApi(password.oldPassword, password.newPassword)
-      ElMessage.success(t('common.updateSuccess'))
+      message.success(t('common.updateSuccess'))
     }
   })
 }
diff --git a/yudao-ui-admin-vue3/src/views/Profile/components/UserAvatar.vue b/yudao-ui-admin-vue3/src/views/Profile/components/UserAvatar.vue
index d879d5b87..81259410b 100644
--- a/yudao-ui-admin-vue3/src/views/Profile/components/UserAvatar.vue
+++ b/yudao-ui-admin-vue3/src/views/Profile/components/UserAvatar.vue
@@ -11,9 +11,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import { computed, ref } from 'vue'
 import { propTypes } from '@/utils/propTypes'
-import { CropperAvatar } from '@/components/Cropper'
 import { uploadAvatarApi } from '@/api/system/user/profile'
 const props = defineProps({
   img: propTypes.string.def('')
diff --git a/yudao-ui-admin-vue3/src/views/Profile/components/UserSocial.vue b/yudao-ui-admin-vue3/src/views/Profile/components/UserSocial.vue
index ee94dcfee..35cce076a 100644
--- a/yudao-ui-admin-vue3/src/views/Profile/components/UserSocial.vue
+++ b/yudao-ui-admin-vue3/src/views/Profile/components/UserSocial.vue
@@ -22,9 +22,6 @@
   </el-table>
 </template>
 <script setup lang="ts">
-import { onMounted, ref } from 'vue'
-import { ElTable, ElTableColumn } from 'element-plus'
-import { useMessage } from '@/hooks/web/useMessage'
 import { SystemUserSocialTypeEnum } from '@/utils/constants'
 import { getUserProfileApi, ProfileVO } from '@/api/system/user/profile'
 import { socialAuthRedirect, socialUnbind } from '@/api/system/user/socialUser'
diff --git a/yudao-ui-admin-vue3/src/views/Redirect/Redirect.vue b/yudao-ui-admin-vue3/src/views/Redirect/Redirect.vue
index 3a6a6a62f..8be6c739d 100644
--- a/yudao-ui-admin-vue3/src/views/Redirect/Redirect.vue
+++ b/yudao-ui-admin-vue3/src/views/Redirect/Redirect.vue
@@ -2,9 +2,6 @@
   <div></div>
 </template>
 <script setup lang="ts" name="Redirect">
-import { unref } from 'vue'
-import { useRouter } from 'vue-router'
-
 const { currentRoute, replace } = useRouter()
 const { params, query } = unref(currentRoute)
 const { path, _redirect_type = 'path' } = params
diff --git a/yudao-ui-admin-vue3/src/views/bpm/form/form.data.ts b/yudao-ui-admin-vue3/src/views/bpm/form/form.data.ts
index 463a87ba2..8e2ed896c 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/form/form.data.ts
+++ b/yudao-ui-admin-vue3/src/views/bpm/form/form.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
 import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas'
-import { DICT_TYPE } from '@/utils/dict'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/bpm/form/index.vue b/yudao-ui-admin-vue3/src/views/bpm/form/index.vue
index e6d27854e..eff394704 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/form/index.vue
+++ b/yudao-ui-admin-vue3/src/views/bpm/form/index.vue
@@ -1,15 +1,13 @@
 <script setup lang="ts" name="Form">
-import { ref, unref } from 'vue'
 import dayjs from 'dayjs'
-import { ElMessage } from 'element-plus'
 import { DICT_TYPE } from '@/utils/dict'
-import { useTable } from '@/hooks/web/useTable'
-import { useI18n } from '@/hooks/web/useI18n'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 import type { FormVO } from '@/api/bpm/form/types'
 import { rules, allSchemas } from './form.data'
 import * as FormApi from '@/api/bpm/form'
+import { useTable } from '@/hooks/web/useTable'
 const { t } = useI18n() // 国际化
+const message = useMessage()
 
 // ========== 列表相关 ==========
 const { register, tableObject, methods } = useTable<FormVO>({
@@ -57,10 +55,10 @@ const submitForm = async () => {
         const data = unref(formRef)?.formModel as FormVO
         if (actionType.value === 'create') {
           await FormApi.createFormApi(data)
-          ElMessage.success(t('common.createSuccess'))
+          message.success(t('common.createSuccess'))
         } else {
           await FormApi.updateFormApi(data)
-          ElMessage.success(t('common.updateSuccess'))
+          message.success(t('common.updateSuccess'))
         }
         // 操作成功,重新加载列表
         dialogVisible.value = false
diff --git a/yudao-ui-admin-vue3/src/views/bpm/group/group.data.ts b/yudao-ui-admin-vue3/src/views/bpm/group/group.data.ts
index 684f55018..1964b1f8b 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/group/group.data.ts
+++ b/yudao-ui-admin-vue3/src/views/bpm/group/group.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
 import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas'
-import { DICT_TYPE } from '@/utils/dict'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/bpm/group/index.vue b/yudao-ui-admin-vue3/src/views/bpm/group/index.vue
index 1db887a74..ee3355f93 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/group/index.vue
+++ b/yudao-ui-admin-vue3/src/views/bpm/group/index.vue
@@ -1,11 +1,8 @@
 <script setup lang="ts" name="Group">
-import { ref, unref, onMounted } from 'vue'
 import dayjs from 'dayjs'
-import { ElMessage, ElSelect, ElOption } from 'element-plus'
 import { DICT_TYPE } from '@/utils/dict'
 import { useTable } from '@/hooks/web/useTable'
-import { useI18n } from '@/hooks/web/useI18n'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 import type { UserGroupVO } from '@/api/bpm/userGroup/types'
 import { rules, allSchemas } from './group.data'
 import * as UserGroupApi from '@/api/bpm/userGroup'
@@ -13,6 +10,7 @@ import { getListSimpleUsersApi } from '@/api/system/user'
 import { UserVO } from '@/api/system/user'
 
 const { t } = useI18n() // 国际化
+const message = useMessage()
 
 // ========== 列表相关 ==========
 const { register, tableObject, methods } = useTable<UserGroupVO>({
@@ -67,10 +65,10 @@ const submitForm = async () => {
         const data = unref(formRef)?.formModel as UserGroupVO
         if (actionType.value === 'create') {
           await UserGroupApi.createUserGroupApi(data)
-          ElMessage.success(t('common.createSuccess'))
+          message.success(t('common.createSuccess'))
         } else {
           await UserGroupApi.updateUserGroupApi(data)
-          ElMessage.success(t('common.updateSuccess'))
+          message.success(t('common.updateSuccess'))
         }
         // 操作成功,重新加载列表
         dialogVisible.value = false
diff --git a/yudao-ui-admin-vue3/src/views/bpm/model/index.vue b/yudao-ui-admin-vue3/src/views/bpm/model/index.vue
index 025f36e27..d232846b1 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/model/index.vue
+++ b/yudao-ui-admin-vue3/src/views/bpm/model/index.vue
@@ -1,17 +1,14 @@
 <script setup lang="ts" name="Model">
-import { ref, unref } from 'vue'
 import dayjs from 'dayjs'
-import { ElTableColumn, ElTag, ElSwitch } from 'element-plus'
 import { DICT_TYPE } from '@/utils/dict'
 import { useTable } from '@/hooks/web/useTable'
-import { useI18n } from '@/hooks/web/useI18n'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 import type { ModelVO } from '@/api/bpm/model/types'
 import { rules, allSchemas } from './model.data'
 import * as ModelApi from '@/api/bpm/model'
-import { useMessage } from '@/hooks/web/useMessage'
-const message = useMessage()
+
 const { t } = useI18n() // 国际化
+const message = useMessage()
 
 // ========== 列表相关 ==========
 const { register, tableObject, methods } = useTable<ModelVO>({
diff --git a/yudao-ui-admin-vue3/src/views/bpm/model/model.data.ts b/yudao-ui-admin-vue3/src/views/bpm/model/model.data.ts
index 9ae9c8b58..ac813738d 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/model/model.data.ts
+++ b/yudao-ui-admin-vue3/src/views/bpm/model/model.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
 import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas'
-import { DICT_TYPE } from '@/utils/dict'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/bpm/processInstance/index.vue b/yudao-ui-admin-vue3/src/views/bpm/processInstance/index.vue
index efa4f56b6..e71498df0 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/processInstance/index.vue
+++ b/yudao-ui-admin-vue3/src/views/bpm/processInstance/index.vue
@@ -1,14 +1,13 @@
 <script setup lang="ts" name="ProcessInstance">
-import { ref } from 'vue'
 import dayjs from 'dayjs'
 import { DICT_TYPE } from '@/utils/dict'
 import { useTable } from '@/hooks/web/useTable'
-import { useI18n } from '@/hooks/web/useI18n'
 import type { ProcessInstanceVO } from '@/api/bpm/processInstance/types'
 import { allSchemas } from './process.data'
 import * as ProcessInstanceApi from '@/api/bpm/processInstance'
-import { ElMessage, ElMessageBox } from 'element-plus'
+import { ElMessageBox } from 'element-plus'
 const { t } = useI18n() // 国际化
+const message = useMessage()
 
 // ========== 列表相关 ==========
 const { register, tableObject, methods } = useTable<ProcessInstanceVO>({
@@ -32,7 +31,7 @@ const handleCancel = (row: ProcessInstanceVO) => {
     inputErrorMessage: '取消原因不能为空'
   }).then(async ({ value }) => {
     await ProcessInstanceApi.cancelProcessInstanceApi(row.id, value)
-    ElMessage.success('取消成功')
+    message.success('取消成功')
     getList()
   })
 }
diff --git a/yudao-ui-admin-vue3/src/views/bpm/processInstance/process.data.ts b/yudao-ui-admin-vue3/src/views/bpm/processInstance/process.data.ts
index ce363a131..7be3f1fe7 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/processInstance/process.data.ts
+++ b/yudao-ui-admin-vue3/src/views/bpm/processInstance/process.data.ts
@@ -1,7 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
 import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas'
-import { DICT_TYPE } from '@/utils/dict'
 const { t } = useI18n() // 国际化
 
 // CrudSchema
diff --git a/yudao-ui-admin-vue3/src/views/bpm/task/done/done.data.ts b/yudao-ui-admin-vue3/src/views/bpm/task/done/done.data.ts
index aa7ce9355..d28391cf1 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/task/done/done.data.ts
+++ b/yudao-ui-admin-vue3/src/views/bpm/task/done/done.data.ts
@@ -1,7 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
 import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas'
-import { DICT_TYPE } from '@/utils/dict'
 const { t } = useI18n() // 国际化
 
 // CrudSchema
diff --git a/yudao-ui-admin-vue3/src/views/bpm/task/done/index.vue b/yudao-ui-admin-vue3/src/views/bpm/task/done/index.vue
index 69b181473..db4b36832 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/task/done/index.vue
+++ b/yudao-ui-admin-vue3/src/views/bpm/task/done/index.vue
@@ -2,12 +2,10 @@
 import dayjs from 'dayjs'
 import duration from 'dayjs/plugin/duration'
 import { DICT_TYPE } from '@/utils/dict'
-import { useTable } from '@/hooks/web/useTable'
-import { useI18n } from '@/hooks/web/useI18n'
 import type { TaskDoneVO } from '@/api/bpm/task/types'
 import { allSchemas } from './done.data'
 import * as TaskDoneApi from '@/api/bpm/task'
-import { useRouter } from 'vue-router'
+import { useTable } from '@/hooks/web/useTable'
 dayjs.extend(duration)
 const { t } = useI18n() // 国际化
 const { push } = useRouter()
diff --git a/yudao-ui-admin-vue3/src/views/bpm/task/todo/done.data.ts b/yudao-ui-admin-vue3/src/views/bpm/task/todo/done.data.ts
index f1105943f..5ad3d2c46 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/task/todo/done.data.ts
+++ b/yudao-ui-admin-vue3/src/views/bpm/task/todo/done.data.ts
@@ -1,5 +1,3 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
 import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas'
 const { t } = useI18n() // 国际化
 
diff --git a/yudao-ui-admin-vue3/src/views/bpm/task/todo/index.vue b/yudao-ui-admin-vue3/src/views/bpm/task/todo/index.vue
index 8ac48bd40..f0e59a090 100644
--- a/yudao-ui-admin-vue3/src/views/bpm/task/todo/index.vue
+++ b/yudao-ui-admin-vue3/src/views/bpm/task/todo/index.vue
@@ -5,7 +5,6 @@ import { useTable } from '@/hooks/web/useTable'
 import type { TaskTodoVO } from '@/api/bpm/task/types'
 import { allSchemas } from './done.data'
 import * as TaskTodoApi from '@/api/bpm/task'
-import { useRouter } from 'vue-router'
 const { push } = useRouter()
 // ========== 列表相关 ==========
 const { register, tableObject, methods } = useTable<TaskTodoVO>({
diff --git a/yudao-ui-admin-vue3/src/views/infra/apiAccessLog/apiAccessLog.data.ts b/yudao-ui-admin-vue3/src/views/infra/apiAccessLog/apiAccessLog.data.ts
index 817145e32..927e2330b 100644
--- a/yudao-ui-admin-vue3/src/views/infra/apiAccessLog/apiAccessLog.data.ts
+++ b/yudao-ui-admin-vue3/src/views/infra/apiAccessLog/apiAccessLog.data.ts
@@ -1,6 +1,4 @@
-import { reactive } from 'vue'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 
 // CrudSchema
 const crudSchemas = reactive<VxeCrudSchema>({
diff --git a/yudao-ui-admin-vue3/src/views/infra/apiAccessLog/index.vue b/yudao-ui-admin-vue3/src/views/infra/apiAccessLog/index.vue
index 14cf656aa..6a09927d7 100644
--- a/yudao-ui-admin-vue3/src/views/infra/apiAccessLog/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/apiAccessLog/index.vue
@@ -36,9 +36,6 @@
   </XModal>
 </template>
 <script setup lang="ts" name="ApiAccessLog">
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useXTable } from '@/hooks/web/useXTable'
 import { allSchemas } from './apiAccessLog.data'
 import * as ApiAccessLogApi from '@/api/infra/apiAccessLog'
 
diff --git a/yudao-ui-admin-vue3/src/views/infra/apiErrorLog/apiErrorLog.data.ts b/yudao-ui-admin-vue3/src/views/infra/apiErrorLog/apiErrorLog.data.ts
index 713d04824..6471f64d7 100644
--- a/yudao-ui-admin-vue3/src/views/infra/apiErrorLog/apiErrorLog.data.ts
+++ b/yudao-ui-admin-vue3/src/views/infra/apiErrorLog/apiErrorLog.data.ts
@@ -1,6 +1,4 @@
-import { reactive } from 'vue'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 
 // CrudSchema
 const crudSchemas = reactive<VxeCrudSchema>({
diff --git a/yudao-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue b/yudao-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue
index 2fffc6efc..4193351a3 100644
--- a/yudao-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue
@@ -52,13 +52,9 @@
   </XModal>
 </template>
 <script setup lang="ts" name="ApiErrorLog">
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useXTable } from '@/hooks/web/useXTable'
 import { allSchemas } from './apiErrorLog.data'
 import * as ApiErrorLogApi from '@/api/infra/apiErrorLog'
 import { InfraApiErrorLogProcessStatusEnum } from '@/utils/constants'
-import { useMessage } from '@/hooks/web/useMessage'
 
 const { t } = useI18n() // 国际化
 const message = useMessage()
diff --git a/yudao-ui-admin-vue3/src/views/infra/codegen/EditTable.vue b/yudao-ui-admin-vue3/src/views/infra/codegen/EditTable.vue
index 32371d52f..820d23ca0 100644
--- a/yudao-ui-admin-vue3/src/views/infra/codegen/EditTable.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/codegen/EditTable.vue
@@ -21,12 +21,6 @@
   </ContentWrap>
 </template>
 <script setup lang="ts">
-import { ref, unref, onMounted } from 'vue'
-import { useRouter, useRoute } from 'vue-router'
-import { ElTabs, ElTabPane } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { ContentDetailWrap } from '@/components/ContentDetailWrap'
 import { BasicInfoForm, CloumInfoForm } from './components'
 import { getCodegenTableApi, updateCodegenTableApi } from '@/api/infra/codegen'
 import { CodegenTableVO, CodegenColumnVO, CodegenUpdateReqVO } from '@/api/infra/codegen/types'
diff --git a/yudao-ui-admin-vue3/src/views/infra/codegen/codegen.data.ts b/yudao-ui-admin-vue3/src/views/infra/codegen/codegen.data.ts
index 6de4c7475..f3723a350 100644
--- a/yudao-ui-admin-vue3/src/views/infra/codegen/codegen.data.ts
+++ b/yudao-ui-admin-vue3/src/views/infra/codegen/codegen.data.ts
@@ -1,7 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/infra/codegen/components/BasicInfoForm.vue b/yudao-ui-admin-vue3/src/views/infra/codegen/components/BasicInfoForm.vue
index 865f57ec3..2009553fa 100644
--- a/yudao-ui-admin-vue3/src/views/infra/codegen/components/BasicInfoForm.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/codegen/components/BasicInfoForm.vue
@@ -2,15 +2,13 @@
   <Form :rules="rules" @register="register" />
 </template>
 <script setup lang="ts">
-import { onMounted, PropType, reactive, ref, watch } from 'vue'
-import { required } from '@/utils/formRules'
 import { useForm } from '@/hooks/web/useForm'
-import { Form } from '@/components/Form'
 import { FormSchema } from '@/types/form'
 import { CodegenTableVO } from '@/api/infra/codegen/types'
-import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
+import { getIntDictOptions } from '@/utils/dict'
 import { listSimpleMenusApi } from '@/api/system/menu'
 import { handleTree, defaultProps } from '@/utils/tree'
+import { PropType } from 'vue'
 
 const props = defineProps({
   basicInfo: {
diff --git a/yudao-ui-admin-vue3/src/views/infra/codegen/components/CloumInfoForm.vue b/yudao-ui-admin-vue3/src/views/infra/codegen/components/CloumInfoForm.vue
index fe4d2bed9..0b6ea6972 100644
--- a/yudao-ui-admin-vue3/src/views/infra/codegen/components/CloumInfoForm.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/codegen/components/CloumInfoForm.vue
@@ -111,7 +111,7 @@
   </vxe-table>
 </template>
 <script setup lang="ts">
-import { onMounted, PropType, ref } from 'vue'
+import { PropType } from 'vue'
 import { DictTypeVO } from '@/api/system/dict/types'
 import { CodegenColumnVO } from '@/api/infra/codegen/types'
 import { listSimpleDictTypeApi } from '@/api/system/dict/dict.type'
diff --git a/yudao-ui-admin-vue3/src/views/infra/codegen/components/ImportTable.vue b/yudao-ui-admin-vue3/src/views/infra/codegen/components/ImportTable.vue
index e4dd8d743..38a81541c 100644
--- a/yudao-ui-admin-vue3/src/views/infra/codegen/components/ImportTable.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/codegen/components/ImportTable.vue
@@ -49,11 +49,7 @@
   </XModal>
 </template>
 <script setup lang="ts">
-import { ref, reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
 import { VxeTableInstance } from 'vxe-table'
-import { ElForm, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'
 import type { DatabaseTableVO } from '@/api/infra/codegen/types'
 import { getSchemaTableListApi, createCodegenListApi } from '@/api/infra/codegen'
 import { getDataSourceConfigListApi, DataSourceConfigVO } from '@/api/infra/dataSourceConfig'
diff --git a/yudao-ui-admin-vue3/src/views/infra/codegen/components/Preview.vue b/yudao-ui-admin-vue3/src/views/infra/codegen/components/Preview.vue
index 2d30cafc5..2d9482ff0 100644
--- a/yudao-ui-admin-vue3/src/views/infra/codegen/components/Preview.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/codegen/components/Preview.vue
@@ -30,11 +30,7 @@
   </XModal>
 </template>
 <script setup lang="ts">
-import { reactive, ref, unref } from 'vue'
 import { useClipboard } from '@vueuse/core'
-import { ElCard, ElTree, ElTabs, ElTabPane } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
 import { handleTree2 } from '@/utils/tree'
 import { previewCodegenApi } from '@/api/infra/codegen'
 import { CodegenTableVO, CodegenPreviewVO } from '@/api/infra/codegen/types'
diff --git a/yudao-ui-admin-vue3/src/views/infra/codegen/index.vue b/yudao-ui-admin-vue3/src/views/infra/codegen/index.vue
index 4e8ef8fa5..8337d2d45 100644
--- a/yudao-ui-admin-vue3/src/views/infra/codegen/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/codegen/index.vue
@@ -57,11 +57,6 @@
   <Preview ref="previewRef" />
 </template>
 <script setup lang="ts" name="Codegen">
-import { ref } from 'vue'
-import { useRouter } from 'vue-router'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
 import download from '@/utils/download'
 import * as CodegenApi from '@/api/infra/codegen'
 import { CodegenTableVO } from '@/api/infra/codegen/types'
diff --git a/yudao-ui-admin-vue3/src/views/infra/config/config.data.ts b/yudao-ui-admin-vue3/src/views/infra/config/config.data.ts
index 67dc1cc2e..41acfa153 100644
--- a/yudao-ui-admin-vue3/src/views/infra/config/config.data.ts
+++ b/yudao-ui-admin-vue3/src/views/infra/config/config.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/infra/config/index.vue b/yudao-ui-admin-vue3/src/views/infra/config/index.vue
index e726ab8d9..73f0f8ad3 100644
--- a/yudao-ui-admin-vue3/src/views/infra/config/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/config/index.vue
@@ -83,12 +83,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Config">
-// 全局相关的 import
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 // 业务相关的 import
 import * as ConfigApi from '@/api/infra/config'
 import { rules, allSchemas } from './config.data'
diff --git a/yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/dataSourceConfig.data.ts b/yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/dataSourceConfig.data.ts
index 60764d411..a790ad17f 100644
--- a/yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/dataSourceConfig.data.ts
+++ b/yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/dataSourceConfig.data.ts
@@ -1,7 +1,4 @@
-import { reactive } from 'vue'
-import { required } from '@/utils/formRules'
-import { useI18n } from '@/hooks/web/useI18n'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 // 国际化
 const { t } = useI18n()
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue b/yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue
index 0326a386d..1e3db49d4 100644
--- a/yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue
@@ -66,12 +66,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="DataSourceConfig">
-// 全局相关的 import
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useXTable } from '@/hooks/web/useXTable'
-import { useMessage } from '@/hooks/web/useMessage'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 // 业务相关的 import
 import * as DataSourceConfiggApi from '@/api/infra/dataSourceConfig'
 import { rules, allSchemas } from './dataSourceConfig.data'
diff --git a/yudao-ui-admin-vue3/src/views/infra/dbDoc/index.vue b/yudao-ui-admin-vue3/src/views/infra/dbDoc/index.vue
index 68385644a..18db3e73b 100644
--- a/yudao-ui-admin-vue3/src/views/infra/dbDoc/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/dbDoc/index.vue
@@ -25,10 +25,8 @@
   </ContentWrap>
 </template>
 <script setup lang="ts" name="DbDoc">
-import { onMounted, ref } from 'vue'
 import download from '@/utils/download'
-import { useI18n } from '@/hooks/web/useI18n'
-import { IFrame } from '@/components/IFrame'
+
 import * as DbDocApi from '@/api/infra/dbDoc'
 
 const { t } = useI18n() // 国际化
diff --git a/yudao-ui-admin-vue3/src/views/infra/druid/index.vue b/yudao-ui-admin-vue3/src/views/infra/druid/index.vue
index 9f216b07e..0f8af4b5a 100644
--- a/yudao-ui-admin-vue3/src/views/infra/druid/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/druid/index.vue
@@ -4,9 +4,6 @@
   </ContentWrap>
 </template>
 <script setup lang="ts" name="Druid">
-import { ref } from 'vue'
-import { IFrame } from '@/components/IFrame'
-
 const BASE_URL = import.meta.env.VITE_BASE_URL
 const src = ref(BASE_URL + '/druid/index.html')
 </script>
diff --git a/yudao-ui-admin-vue3/src/views/infra/fileConfig/fileConfig.data.ts b/yudao-ui-admin-vue3/src/views/infra/fileConfig/fileConfig.data.ts
index 732e7a6ec..d0f648699 100644
--- a/yudao-ui-admin-vue3/src/views/infra/fileConfig/fileConfig.data.ts
+++ b/yudao-ui-admin-vue3/src/views/infra/fileConfig/fileConfig.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/infra/fileConfig/index.vue b/yudao-ui-admin-vue3/src/views/infra/fileConfig/index.vue
index 227efab29..9d796a659 100644
--- a/yudao-ui-admin-vue3/src/views/infra/fileConfig/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/fileConfig/index.vue
@@ -158,22 +158,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="FileConfig">
-// 全局相关的 import
-import { ref } from 'vue'
-import {
-  ElForm,
-  ElFormItem,
-  FormInstance,
-  ElSelect,
-  ElOption,
-  ElInput,
-  ElInputNumber,
-  ElRadio,
-  ElRadioGroup
-} from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
+import type { FormInstance } from 'element-plus'
 // 业务相关的 import
 import * as FileConfigApi from '@/api/infra/fileConfig'
 import { rules, allSchemas } from './fileConfig.data'
diff --git a/yudao-ui-admin-vue3/src/views/infra/fileList/fileList.data.ts b/yudao-ui-admin-vue3/src/views/infra/fileList/fileList.data.ts
index cc0516014..29be6dae4 100644
--- a/yudao-ui-admin-vue3/src/views/infra/fileList/fileList.data.ts
+++ b/yudao-ui-admin-vue3/src/views/infra/fileList/fileList.data.ts
@@ -1,6 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // CrudSchema
diff --git a/yudao-ui-admin-vue3/src/views/infra/fileList/index.vue b/yudao-ui-admin-vue3/src/views/infra/fileList/index.vue
index 946c165b7..cda8b68dd 100644
--- a/yudao-ui-admin-vue3/src/views/infra/fileList/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/fileList/index.vue
@@ -82,11 +82,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="FileList">
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { ElUpload, ElImage, UploadInstance, UploadRawFile } from 'element-plus'
+import type { UploadInstance, UploadRawFile } from 'element-plus'
 // 业务相关的 import
 import { allSchemas } from './fileList.data'
 import * as FileApi from '@/api/infra/fileList'
diff --git a/yudao-ui-admin-vue3/src/views/infra/job/JobLog.vue b/yudao-ui-admin-vue3/src/views/infra/job/JobLog.vue
index 801b067de..7f860cec6 100644
--- a/yudao-ui-admin-vue3/src/views/infra/job/JobLog.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/job/JobLog.vue
@@ -48,10 +48,8 @@
   </XModal>
 </template>
 <script setup lang="ts" name="JobLog">
-import { ref } from 'vue'
 import dayjs from 'dayjs'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useXTable } from '@/hooks/web/useXTable'
+
 import * as JobLogApi from '@/api/infra/jobLog'
 import { allSchemas } from './jobLog.data'
 
diff --git a/yudao-ui-admin-vue3/src/views/infra/job/index.vue b/yudao-ui-admin-vue3/src/views/infra/job/index.vue
index 3d788cd2c..613f84c43 100644
--- a/yudao-ui-admin-vue3/src/views/infra/job/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/job/index.vue
@@ -129,14 +129,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Job">
-import { ref, unref } from 'vue'
-import { useRouter } from 'vue-router'
-import { ElDropdown, ElDropdownMenu, ElDropdownItem } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
-import { Crontab } from '@/components/Crontab'
+import type { FormExpose } from '@/components/Form'
 import * as JobApi from '@/api/infra/job'
 import { rules, allSchemas } from './job.data'
 import { InfraJobStatusEnum } from '@/utils/constants'
diff --git a/yudao-ui-admin-vue3/src/views/infra/job/job.data.ts b/yudao-ui-admin-vue3/src/views/infra/job/job.data.ts
index aa568c2be..a0fc3bec8 100644
--- a/yudao-ui-admin-vue3/src/views/infra/job/job.data.ts
+++ b/yudao-ui-admin-vue3/src/views/infra/job/job.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { DICT_TYPE } from '@/utils/dict'
-import { required } from '@/utils/formRules'
-import { useI18n } from '@/hooks/web/useI18n'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 // 表单校验
 export const rules = reactive({
diff --git a/yudao-ui-admin-vue3/src/views/infra/job/jobLog.data.ts b/yudao-ui-admin-vue3/src/views/infra/job/jobLog.data.ts
index 5a033ab0e..ac6e39f24 100644
--- a/yudao-ui-admin-vue3/src/views/infra/job/jobLog.data.ts
+++ b/yudao-ui-admin-vue3/src/views/infra/job/jobLog.data.ts
@@ -1,7 +1,4 @@
-import { reactive } from 'vue'
-import { DICT_TYPE } from '@/utils/dict'
-import { useI18n } from '@/hooks/web/useI18n'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 // 国际化
 const { t } = useI18n()
 // CrudSchema
diff --git a/yudao-ui-admin-vue3/src/views/infra/redis/index.vue b/yudao-ui-admin-vue3/src/views/infra/redis/index.vue
index b4689b7aa..b54a6c491 100644
--- a/yudao-ui-admin-vue3/src/views/infra/redis/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/redis/index.vue
@@ -125,21 +125,9 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Redis">
-import { onBeforeMount, ref } from 'vue'
-import {
-  ElRow,
-  ElCard,
-  ElCol,
-  ElTable,
-  ElTableColumn,
-  ElScrollbar,
-  ElDescriptions,
-  ElDescriptionsItem
-} from 'element-plus'
 import * as echarts from 'echarts'
 import { DICT_TYPE } from '@/utils/dict'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
+
 import * as RedisApi from '@/api/infra/redis'
 import { RedisKeyInfo, RedisMonitorInfoVO } from '@/api/infra/redis/types'
 
diff --git a/yudao-ui-admin-vue3/src/views/infra/server/index.vue b/yudao-ui-admin-vue3/src/views/infra/server/index.vue
index 2401a2e31..8e748b26d 100644
--- a/yudao-ui-admin-vue3/src/views/infra/server/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/server/index.vue
@@ -4,9 +4,6 @@
   </ContentWrap>
 </template>
 <script setup lang="ts" name="Server">
-import { ref } from 'vue'
-import { IFrame } from '@/components/IFrame'
-
 const BASE_URL = import.meta.env.VITE_BASE_URL
 const src = ref(BASE_URL + '/admin/applications')
 </script>
diff --git a/yudao-ui-admin-vue3/src/views/infra/skywalking/index.vue b/yudao-ui-admin-vue3/src/views/infra/skywalking/index.vue
index 561a19d86..4c02f5336 100644
--- a/yudao-ui-admin-vue3/src/views/infra/skywalking/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/skywalking/index.vue
@@ -4,8 +4,5 @@
   </ContentWrap>
 </template>
 <script setup lang="ts" name="Skywalking">
-import { ref } from 'vue'
-import { IFrame } from '@/components/IFrame'
-
 const src = ref('http://skywalking.shop.iocoder.cn')
 </script>
diff --git a/yudao-ui-admin-vue3/src/views/infra/swagger/index.vue b/yudao-ui-admin-vue3/src/views/infra/swagger/index.vue
index 5d4697c1a..72a826e61 100644
--- a/yudao-ui-admin-vue3/src/views/infra/swagger/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/swagger/index.vue
@@ -4,9 +4,6 @@
   </ContentWrap>
 </template>
 <script setup lang="ts" name="Swagger">
-import { ref } from 'vue'
-import { IFrame } from '@/components/IFrame'
-
 const BASE_URL = import.meta.env.VITE_BASE_URL
 const src = ref(BASE_URL + '/doc.html')
 </script>
diff --git a/yudao-ui-admin-vue3/src/views/infra/webSocket/index.vue b/yudao-ui-admin-vue3/src/views/infra/webSocket/index.vue
index 4820204a0..655045c05 100644
--- a/yudao-ui-admin-vue3/src/views/infra/webSocket/index.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/webSocket/index.vue
@@ -56,11 +56,9 @@
   </div>
 </template>
 <script setup lang="ts">
-import { computed, reactive, ref, watchEffect } from 'vue'
-import { ElCard, ElInput, ElTag } from 'element-plus'
-import { useWebSocket } from '@vueuse/core'
 import dayjs from 'dayjs'
 import { useUserStore } from '@/store/modules/user'
+import { useWebSocket } from '@vueuse/core'
 
 const userStore = useUserStore()
 
diff --git a/yudao-ui-admin-vue3/src/views/pay/app/app.data.ts b/yudao-ui-admin-vue3/src/views/pay/app/app.data.ts
index c26b46131..30f141802 100644
--- a/yudao-ui-admin-vue3/src/views/pay/app/app.data.ts
+++ b/yudao-ui-admin-vue3/src/views/pay/app/app.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/pay/app/index.vue b/yudao-ui-admin-vue3/src/views/pay/app/index.vue
index 227e3c05d..8972a8bbc 100644
--- a/yudao-ui-admin-vue3/src/views/pay/app/index.vue
+++ b/yudao-ui-admin-vue3/src/views/pay/app/index.vue
@@ -76,11 +76,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="App">
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 import { rules, allSchemas } from './app.data'
 import * as AppApi from '@/api/pay/app'
 
diff --git a/yudao-ui-admin-vue3/src/views/pay/merchant/index.vue b/yudao-ui-admin-vue3/src/views/pay/merchant/index.vue
index 18ea70771..1ea460ec9 100644
--- a/yudao-ui-admin-vue3/src/views/pay/merchant/index.vue
+++ b/yudao-ui-admin-vue3/src/views/pay/merchant/index.vue
@@ -75,11 +75,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Merchant">
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 import { rules, allSchemas } from './merchant.data'
 import * as MerchantApi from '@/api/pay/merchant'
 
diff --git a/yudao-ui-admin-vue3/src/views/pay/merchant/merchant.data.ts b/yudao-ui-admin-vue3/src/views/pay/merchant/merchant.data.ts
index 45d8c71e9..e0e0727d7 100644
--- a/yudao-ui-admin-vue3/src/views/pay/merchant/merchant.data.ts
+++ b/yudao-ui-admin-vue3/src/views/pay/merchant/merchant.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/pay/order/index.vue b/yudao-ui-admin-vue3/src/views/pay/order/index.vue
index a0d82a41d..2edf5785d 100644
--- a/yudao-ui-admin-vue3/src/views/pay/order/index.vue
+++ b/yudao-ui-admin-vue3/src/views/pay/order/index.vue
@@ -42,9 +42,6 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Order">
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useXTable } from '@/hooks/web/useXTable'
 import { allSchemas } from './order.data'
 import * as OrderApi from '@/api/pay/order'
 
diff --git a/yudao-ui-admin-vue3/src/views/pay/order/order.data.ts b/yudao-ui-admin-vue3/src/views/pay/order/order.data.ts
index ac08006ad..7b993088b 100644
--- a/yudao-ui-admin-vue3/src/views/pay/order/order.data.ts
+++ b/yudao-ui-admin-vue3/src/views/pay/order/order.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/pay/refund/index.vue b/yudao-ui-admin-vue3/src/views/pay/refund/index.vue
index 94da462b4..6b7b3d46a 100644
--- a/yudao-ui-admin-vue3/src/views/pay/refund/index.vue
+++ b/yudao-ui-admin-vue3/src/views/pay/refund/index.vue
@@ -34,9 +34,6 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Refund">
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useXTable } from '@/hooks/web/useXTable'
 import { allSchemas } from './refund.data'
 import * as RefundApi from '@/api/pay/refund'
 
diff --git a/yudao-ui-admin-vue3/src/views/pay/refund/refund.data.ts b/yudao-ui-admin-vue3/src/views/pay/refund/refund.data.ts
index 0f9dce10b..456f441dd 100644
--- a/yudao-ui-admin-vue3/src/views/pay/refund/refund.data.ts
+++ b/yudao-ui-admin-vue3/src/views/pay/refund/refund.data.ts
@@ -1,7 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // CrudSchema
diff --git a/yudao-ui-admin-vue3/src/views/system/dept/dept.data.ts b/yudao-ui-admin-vue3/src/views/system/dept/dept.data.ts
index 2515266f5..5e3d0761f 100644
--- a/yudao-ui-admin-vue3/src/views/system/dept/dept.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/dept/dept.data.ts
@@ -1,8 +1,5 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
+
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/dept/index.vue b/yudao-ui-admin-vue3/src/views/system/dept/index.vue
index c095982fa..3b182e2af 100644
--- a/yudao-ui-admin-vue3/src/views/system/dept/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/dept/index.vue
@@ -75,13 +75,8 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Dept">
-import { nextTick, onMounted, ref, unref } from 'vue'
-import { ElSelect, ElTreeSelect, ElOption } from 'element-plus'
 import { handleTree, defaultProps } from '@/utils/tree'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 import { allSchemas, rules } from './dept.data'
 import * as DeptApi from '@/api/system/dept'
 import { getListSimpleUsersApi, UserVO } from '@/api/system/user'
diff --git a/yudao-ui-admin-vue3/src/views/system/dict/dict.data.ts b/yudao-ui-admin-vue3/src/views/system/dict/dict.data.ts
index c33cc3531..cdfe45385 100644
--- a/yudao-ui-admin-vue3/src/views/system/dict/dict.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/dict/dict.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { DICT_TYPE } from '@/utils/dict'
-import { required } from '@/utils/formRules'
-import { useI18n } from '@/hooks/web/useI18n'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 // 国际化
 const { t } = useI18n()
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/dict/dict.type.ts b/yudao-ui-admin-vue3/src/views/system/dict/dict.type.ts
index ca24053de..73b5a021c 100644
--- a/yudao-ui-admin-vue3/src/views/system/dict/dict.type.ts
+++ b/yudao-ui-admin-vue3/src/views/system/dict/dict.type.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { DICT_TYPE } from '@/utils/dict'
-import { required } from '@/utils/formRules'
-import { useI18n } from '@/hooks/web/useI18n'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/dict/index.vue b/yudao-ui-admin-vue3/src/views/system/dict/index.vue
index 21124a072..d4cce4846 100644
--- a/yudao-ui-admin-vue3/src/views/system/dict/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/dict/index.vue
@@ -122,13 +122,8 @@
   </div>
 </template>
 <script setup lang="ts" name="Dict">
-import { ref, unref, reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
 import { VxeTableEvents } from 'vxe-table'
-import { FormExpose } from '@/components/Form'
-import { ElInput, ElTag, ElCard } from 'element-plus'
+import type { FormExpose } from '@/components/Form'
 import * as DictTypeSchemas from './dict.type'
 import * as DictDataSchemas from './dict.data'
 import * as DictTypeApi from '@/api/system/dict/dict.type'
diff --git a/yudao-ui-admin-vue3/src/views/system/errorCode/errorCode.data.ts b/yudao-ui-admin-vue3/src/views/system/errorCode/errorCode.data.ts
index c6af9fbe0..36f5e4c5e 100644
--- a/yudao-ui-admin-vue3/src/views/system/errorCode/errorCode.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/errorCode/errorCode.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { required } from '@/utils/formRules'
-import { useI18n } from '@/hooks/web/useI18n'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/errorCode/index.vue b/yudao-ui-admin-vue3/src/views/system/errorCode/index.vue
index 316d26d17..1ff3d103d 100644
--- a/yudao-ui-admin-vue3/src/views/system/errorCode/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/errorCode/index.vue
@@ -67,12 +67,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="ErrorCode">
-// 全局相关的 import
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 // 业务相关的 import
 import { rules, allSchemas } from './errorCode.data'
 import * as ErrorCodeApi from '@/api/system/errorCode'
diff --git a/yudao-ui-admin-vue3/src/views/system/loginlog/index.vue b/yudao-ui-admin-vue3/src/views/system/loginlog/index.vue
index 3872107bb..f2bb8c677 100644
--- a/yudao-ui-admin-vue3/src/views/system/loginlog/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/loginlog/index.vue
@@ -28,10 +28,6 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Loginlog">
-// 全局相关的 import
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useXTable } from '@/hooks/web/useXTable'
 // 业务相关的 import
 import { allSchemas } from './loginLog.data'
 import { getLoginLogPageApi, exportLoginLogApi, LoginLogVO } from '@/api/system/loginLog'
diff --git a/yudao-ui-admin-vue3/src/views/system/loginlog/loginLog.data.ts b/yudao-ui-admin-vue3/src/views/system/loginlog/loginLog.data.ts
index 2320faa43..75988e432 100644
--- a/yudao-ui-admin-vue3/src/views/system/loginlog/loginLog.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/loginlog/loginLog.data.ts
@@ -1,6 +1,4 @@
-import { reactive } from 'vue'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 
 // CrudSchema
 const crudSchemas = reactive<VxeCrudSchema>({
diff --git a/yudao-ui-admin-vue3/src/views/system/menu/index.vue b/yudao-ui-admin-vue3/src/views/system/menu/index.vue
index 6bdda3176..b92c35653 100644
--- a/yudao-ui-admin-vue3/src/views/system/menu/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/menu/index.vue
@@ -175,32 +175,14 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Menu">
-// 全局相关的 import
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
-import { useMessage } from '@/hooks/web/useMessage'
-import {
-  ElCol,
-  ElForm,
-  ElFormItem,
-  ElInput,
-  ElInputNumber,
-  ElTreeSelect,
-  ElRadio,
-  ElRadioGroup,
-  ElRadioButton,
-  FormInstance
-} from 'element-plus'
-import { Tooltip } from '@/components/Tooltip'
-import { IconSelect } from '@/components/Icon'
+import { FormInstance } from 'element-plus'
 // 业务相关的 import
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { SystemMenuTypeEnum, CommonStatusEnum } from '@/utils/constants'
 import { handleTree, defaultProps } from '@/utils/tree'
 import * as MenuApi from '@/api/system/menu'
 import { allSchemas, rules } from './menu.data'
-import { useXTable } from '@/hooks/web/useXTable'
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
diff --git a/yudao-ui-admin-vue3/src/views/system/menu/menu.data.ts b/yudao-ui-admin-vue3/src/views/system/menu/menu.data.ts
index cf496a19d..d04ed277c 100644
--- a/yudao-ui-admin-vue3/src/views/system/menu/menu.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/menu/menu.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { DICT_TYPE } from '@/utils/dict'
-import { required } from '@/utils/formRules'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 新增和修改的表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/notice/index.vue b/yudao-ui-admin-vue3/src/views/system/notice/index.vue
index 4654b741b..aceadbbaa 100644
--- a/yudao-ui-admin-vue3/src/views/system/notice/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/notice/index.vue
@@ -71,16 +71,10 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Notice">
-// 全局相关的 import
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 // 业务相关的 import
 import * as NoticeApi from '@/api/system/notice'
 import { rules, allSchemas } from './notice.data'
-import { Editor } from '@/components/Editor'
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
diff --git a/yudao-ui-admin-vue3/src/views/system/notice/notice.data.ts b/yudao-ui-admin-vue3/src/views/system/notice/notice.data.ts
index ad22b5967..7a72a7239 100644
--- a/yudao-ui-admin-vue3/src/views/system/notice/notice.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/notice/notice.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/oauth2/client/client.data.ts b/yudao-ui-admin-vue3/src/views/system/oauth2/client/client.data.ts
index 87ecd9f90..5f84e8117 100644
--- a/yudao-ui-admin-vue3/src/views/system/oauth2/client/client.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/oauth2/client/client.data.ts
@@ -1,8 +1,5 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
 import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 const authorizedGrantOptions = getStrDictOptions(DICT_TYPE.SYSTEM_OAUTH2_GRANT_TYPE)
diff --git a/yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue b/yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue
index f9fcabd68..9ff446926 100644
--- a/yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue
@@ -130,13 +130,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Client">
-// 全局相关的 import
-import { ref, unref } from 'vue'
-import { ElTag } from 'element-plus'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 // 业务相关的 import
 import * as ClientApi from '@/api/system/oauth2/client'
 import { rules, allSchemas } from './client.data'
diff --git a/yudao-ui-admin-vue3/src/views/system/oauth2/token/index.vue b/yudao-ui-admin-vue3/src/views/system/oauth2/token/index.vue
index 9011ac80a..f0dfbd9ca 100644
--- a/yudao-ui-admin-vue3/src/views/system/oauth2/token/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/oauth2/token/index.vue
@@ -25,11 +25,6 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Token">
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-
 import { allSchemas } from './token.data'
 import * as TokenApi from '@/api/system/oauth2/token'
 
diff --git a/yudao-ui-admin-vue3/src/views/system/oauth2/token/token.data.ts b/yudao-ui-admin-vue3/src/views/system/oauth2/token/token.data.ts
index 5ab13f7b1..8a0e84860 100644
--- a/yudao-ui-admin-vue3/src/views/system/oauth2/token/token.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/oauth2/token/token.data.ts
@@ -1,7 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 // CrudSchema
 const crudSchemas = reactive<VxeCrudSchema>({
diff --git a/yudao-ui-admin-vue3/src/views/system/operatelog/index.vue b/yudao-ui-admin-vue3/src/views/system/operatelog/index.vue
index 29a455559..7f1e9bb44 100644
--- a/yudao-ui-admin-vue3/src/views/system/operatelog/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/operatelog/index.vue
@@ -42,10 +42,6 @@
   </XModal>
 </template>
 <script setup lang="ts" name="OperateLog">
-// 全局相关的 import
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useXTable } from '@/hooks/web/useXTable'
 // 业务相关的 import
 import * as OperateLogApi from '@/api/system/operatelog'
 import { allSchemas } from './operatelog.data'
diff --git a/yudao-ui-admin-vue3/src/views/system/operatelog/operatelog.data.ts b/yudao-ui-admin-vue3/src/views/system/operatelog/operatelog.data.ts
index b28e8f288..e0f0578b1 100644
--- a/yudao-ui-admin-vue3/src/views/system/operatelog/operatelog.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/operatelog/operatelog.data.ts
@@ -1,7 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 
 const { t } = useI18n() // 国际化
 
diff --git a/yudao-ui-admin-vue3/src/views/system/post/index.vue b/yudao-ui-admin-vue3/src/views/system/post/index.vue
index 08a7ca0be..f8e5be3b0 100644
--- a/yudao-ui-admin-vue3/src/views/system/post/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/post/index.vue
@@ -72,12 +72,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Post">
-// 全局相关的 import
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 // 业务相关的 import
 import * as PostApi from '@/api/system/post'
 import { rules, allSchemas } from './post.data'
diff --git a/yudao-ui-admin-vue3/src/views/system/post/post.data.ts b/yudao-ui-admin-vue3/src/views/system/post/post.data.ts
index 9b3041ebd..7a32b233c 100644
--- a/yudao-ui-admin-vue3/src/views/system/post/post.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/post/post.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/role/index.vue b/yudao-ui-admin-vue3/src/views/system/role/index.vue
index c9dc24874..72c602c1a 100644
--- a/yudao-ui-admin-vue3/src/views/system/role/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/role/index.vue
@@ -148,21 +148,8 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Role">
-import { onMounted, reactive, ref, unref } from 'vue'
-import {
-  ElForm,
-  ElFormItem,
-  ElSelect,
-  ElOption,
-  ElTree,
-  ElCard,
-  ElSwitch,
-  ElTag
-} from 'element-plus'
-import { FormExpose } from '@/components/Form'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
+import type { ElTree } from 'element-plus'
+import type { FormExpose } from '@/components/Form'
 import { handleTree, defaultProps } from '@/utils/tree'
 import { SystemDataScopeEnum } from '@/utils/constants'
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
diff --git a/yudao-ui-admin-vue3/src/views/system/role/role.data.ts b/yudao-ui-admin-vue3/src/views/system/role/role.data.ts
index 172b8c892..fef2ec47b 100644
--- a/yudao-ui-admin-vue3/src/views/system/role/role.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/role/role.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 // 国际化
 const { t } = useI18n()
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/sensitiveWord/index.vue b/yudao-ui-admin-vue3/src/views/system/sensitiveWord/index.vue
index 77afad482..c3de895db 100644
--- a/yudao-ui-admin-vue3/src/views/system/sensitiveWord/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/sensitiveWord/index.vue
@@ -103,12 +103,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="SensitiveWord">
-import { onMounted, ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
-import { ElTag, ElSelect, ElOption } from 'element-plus'
+import type { FormExpose } from '@/components/Form'
 import * as SensitiveWordApi from '@/api/system/sensitiveWord'
 import { rules, allSchemas } from './sensitiveWord.data'
 
diff --git a/yudao-ui-admin-vue3/src/views/system/sensitiveWord/sensitiveWord.data.ts b/yudao-ui-admin-vue3/src/views/system/sensitiveWord/sensitiveWord.data.ts
index 06b5849e1..79c90e6cf 100644
--- a/yudao-ui-admin-vue3/src/views/system/sensitiveWord/sensitiveWord.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/sensitiveWord/sensitiveWord.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/sms/smsChannel/index.vue b/yudao-ui-admin-vue3/src/views/system/sms/smsChannel/index.vue
index 0a4bb8bb9..ee47a51aa 100644
--- a/yudao-ui-admin-vue3/src/views/system/sms/smsChannel/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/sms/smsChannel/index.vue
@@ -68,12 +68,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="SmsChannel">
-// 全局相关的 import
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 // 业务相关的 import
 import * as SmsChannelApi from '@/api/system/sms/smsChannel'
 import { rules, allSchemas } from './sms.channel.data'
diff --git a/yudao-ui-admin-vue3/src/views/system/sms/smsChannel/sms.channel.data.ts b/yudao-ui-admin-vue3/src/views/system/sms/smsChannel/sms.channel.data.ts
index 14f438fdc..cc014469f 100644
--- a/yudao-ui-admin-vue3/src/views/system/sms/smsChannel/sms.channel.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/sms/smsChannel/sms.channel.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/sms/smsLog/index.vue b/yudao-ui-admin-vue3/src/views/system/sms/smsLog/index.vue
index 293dadfe4..93d1315fc 100644
--- a/yudao-ui-admin-vue3/src/views/system/sms/smsLog/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/sms/smsLog/index.vue
@@ -31,10 +31,6 @@
   </XModal>
 </template>
 <script setup lang="ts" name="SmsLog">
-// 全局相关的 import
-import { ref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useXTable } from '@/hooks/web/useXTable'
 import { allSchemas } from './sms.log.data'
 import * as SmsLoglApi from '@/api/system/sms/smsLog'
 const { t } = useI18n() // 国际化
diff --git a/yudao-ui-admin-vue3/src/views/system/sms/smsLog/sms.log.data.ts b/yudao-ui-admin-vue3/src/views/system/sms/smsLog/sms.log.data.ts
index 29bedef14..501a5a2bd 100644
--- a/yudao-ui-admin-vue3/src/views/system/sms/smsLog/sms.log.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/sms/smsLog/sms.log.data.ts
@@ -1,7 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // CrudSchema
diff --git a/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue b/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue
index 314f392ef..0bc40c8d8 100644
--- a/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue
@@ -109,13 +109,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="SmsTemplate">
-// 全局相关的 import
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
-import { ElForm, ElFormItem, ElInput } from 'element-plus'
+import type { FormExpose } from '@/components/Form'
 // 业务相关的 import
 import * as SmsTemplateApi from '@/api/system/sms/smsTemplate'
 import { rules, allSchemas } from './sms.template.data'
diff --git a/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/sms.template.data.ts b/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/sms.template.data.ts
index c088485bc..2fb46fdaf 100644
--- a/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/sms.template.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/sms.template.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/tenant/index.vue b/yudao-ui-admin-vue3/src/views/system/tenant/index.vue
index 24f3c3781..20c697d69 100644
--- a/yudao-ui-admin-vue3/src/views/system/tenant/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/tenant/index.vue
@@ -86,12 +86,7 @@
   </XModal>
 </template>
 <script setup lang="ts" name="Tenant">
-import { ref, unref } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { ElTag } from 'element-plus'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 import * as TenantApi from '@/api/system/tenant'
 import { rules, allSchemas, tenantPackageOption } from './tenant.data'
 
diff --git a/yudao-ui-admin-vue3/src/views/system/tenant/tenant.data.ts b/yudao-ui-admin-vue3/src/views/system/tenant/tenant.data.ts
index 01eafc924..7e81138c1 100644
--- a/yudao-ui-admin-vue3/src/views/system/tenant/tenant.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/tenant/tenant.data.ts
@@ -1,11 +1,9 @@
-import { reactive } from 'vue'
-import { useI18n } from '@/hooks/web/useI18n'
-import { required } from '@/utils/formRules'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 import { getTenantPackageList, TenantPackageVO } from '@/api/system/tenantPackage'
 import { ComponentOptions } from '@/types/components'
+
 const { t } = useI18n() // 国际化
+
 export const tenantPackageOption: ComponentOptions[] = []
 const getTenantPackageOptions = async () => {
   const res = await getTenantPackageList()
diff --git a/yudao-ui-admin-vue3/src/views/system/tenantPackage/index.vue b/yudao-ui-admin-vue3/src/views/system/tenantPackage/index.vue
index 9d5f57ec2..a665b8aff 100644
--- a/yudao-ui-admin-vue3/src/views/system/tenantPackage/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/tenantPackage/index.vue
@@ -65,13 +65,9 @@
   </XModal>
 </template>
 <script setup lang="ts" name="TenantPackage">
-import { onMounted, ref, unref } from 'vue'
 import { handleTree, defaultProps } from '@/utils/tree'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
-import { ElCard, ElSwitch, ElTree } from 'element-plus'
+import type { FormExpose } from '@/components/Form'
+import type { ElTree } from 'element-plus'
 // 业务相关的 import
 import { rules, allSchemas } from './tenantPackage.data'
 import * as TenantPackageApi from '@/api/system/tenantPackage'
diff --git a/yudao-ui-admin-vue3/src/views/system/tenantPackage/tenantPackage.data.ts b/yudao-ui-admin-vue3/src/views/system/tenantPackage/tenantPackage.data.ts
index 32cc19704..e28ea842b 100644
--- a/yudao-ui-admin-vue3/src/views/system/tenantPackage/tenantPackage.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/tenantPackage/tenantPackage.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { required } from '@/utils/formRules'
-import { useI18n } from '@/hooks/web/useI18n'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 const { t } = useI18n() // 国际化
 
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/system/user/index.vue b/yudao-ui-admin-vue3/src/views/system/user/index.vue
index 936a09602..971db66dc 100644
--- a/yudao-ui-admin-vue3/src/views/system/user/index.vue
+++ b/yudao-ui-admin-vue3/src/views/system/user/index.vue
@@ -261,36 +261,12 @@
   </XModal>
 </template>
 <script setup lang="ts" name="User">
-import { nextTick, onMounted, reactive, ref, unref, watch } from 'vue'
-import {
-  ElTag,
-  ElInput,
-  ElCard,
-  ElTree,
-  ElTreeSelect,
-  ElSelect,
-  ElOption,
-  ElTransfer,
-  ElForm,
-  ElFormItem,
-  ElUpload,
-  ElSwitch,
-  ElCheckbox,
-  ElDropdown,
-  ElDropdownMenu,
-  ElDropdownItem,
-  UploadInstance,
-  UploadRawFile
-} from 'element-plus'
-import { useRouter } from 'vue-router'
+import type { ElTree, UploadRawFile, UploadInstance } from 'element-plus'
 import { handleTree, defaultProps } from '@/utils/tree'
 import download from '@/utils/download'
 import { CommonStatusEnum } from '@/utils/constants'
 import { getAccessToken, getTenantId } from '@/utils/auth'
-import { useI18n } from '@/hooks/web/useI18n'
-import { useMessage } from '@/hooks/web/useMessage'
-import { useXTable } from '@/hooks/web/useXTable'
-import { FormExpose } from '@/components/Form'
+import type { FormExpose } from '@/components/Form'
 import { rules, allSchemas } from './user.data'
 import * as UserApi from '@/api/system/user'
 import { listSimpleDeptApi } from '@/api/system/dept'
diff --git a/yudao-ui-admin-vue3/src/views/system/user/user.data.ts b/yudao-ui-admin-vue3/src/views/system/user/user.data.ts
index d06745c06..c5b617c3d 100644
--- a/yudao-ui-admin-vue3/src/views/system/user/user.data.ts
+++ b/yudao-ui-admin-vue3/src/views/system/user/user.data.ts
@@ -1,8 +1,4 @@
-import { reactive } from 'vue'
-import { required } from '@/utils/formRules'
-import { useI18n } from '@/hooks/web/useI18n'
-import { DICT_TYPE } from '@/utils/dict'
-import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
+import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 // 国际化
 const { t } = useI18n()
 // 表单校验
diff --git a/yudao-ui-admin-vue3/src/views/visualization/jmreport/index.vue b/yudao-ui-admin-vue3/src/views/visualization/jmreport/index.vue
index 0dc956ac1..3e33ad3a9 100644
--- a/yudao-ui-admin-vue3/src/views/visualization/jmreport/index.vue
+++ b/yudao-ui-admin-vue3/src/views/visualization/jmreport/index.vue
@@ -4,8 +4,6 @@
   </ContentWrap>
 </template>
 <script setup lang="ts" name="Jmreport">
-import { ref } from 'vue'
-import { IFrame } from '@/components/IFrame'
 import { getAccessToken } from '@/utils/auth'
 
 const BASE_URL = import.meta.env.VITE_BASE_URL
diff --git a/yudao-ui-admin-vue3/tsconfig.json b/yudao-ui-admin-vue3/tsconfig.json
index 97f0654da..ba17219a2 100644
--- a/yudao-ui-admin-vue3/tsconfig.json
+++ b/yudao-ui-admin-vue3/tsconfig.json
@@ -33,6 +33,11 @@
     ],
     "typeRoots": ["./node_modules/@types/", "./types"]
   },
-  "include": ["src/**/*", "types/**/*.d.ts"],
+  "include": [
+    "src/**/*",
+    "types/**/*.d.ts",
+    "src/types/auto-imports.d.ts",
+    "src/types/auto-components.d.ts"
+  ],
   "exclude": ["dist", "node_modules"]
 }
diff --git a/yudao-ui-admin-vue3/use.md b/yudao-ui-admin-vue3/use.md
index afbafde2d..405d794e6 100644
--- a/yudao-ui-admin-vue3/use.md
+++ b/yudao-ui-admin-vue3/use.md
@@ -25,7 +25,6 @@
 - 本框架集成了国际化,不需要的话可以自己想办法移除,使用方法如下
 
 ```bash
-import { useI18n } from '@/hooks/web/useI18n'
 const { t } = useI18n()
 t('common.createTime')
 并在src/locales 增加相应的中英文