Bläddra i källkod

feat: 删除功能

Gaokun Wang 3 veckor sedan
förälder
incheckning
3ea3999c57

+ 1 - 0
src/assets/styles/element.scss

@@ -1,5 +1,6 @@
 /* 设置 notification、message 层级在 loading 之上 */
 .el-message,
+.el-message-box,
 .el-notification {
   z-index: 4000 !important;
 }

+ 1 - 0
src/hooks/index.ts

@@ -1,3 +1,4 @@
 export * from './useTable'
 export * from './useSelection'
 export * from './useDictOptions'
+export * from './useHandleData'

+ 34 - 0
src/hooks/useHandleData.ts

@@ -0,0 +1,34 @@
+import { ElMessageBox } from 'element-plus'
+import { HandleDataMessageType } from './interface'
+
+/**
+ * @description 操作单条数据信息 (二次确认【删除、禁用、启用、重置密码】)
+ * @param {Function} api 操作数据接口的api方法 (必传)
+ * @param {Object} params 携带的操作数据参数 {id,params} (必传)
+ * @param {String} message 提示信息 (必传)
+ * @param {String} confirmType icon类型 (不必传,默认为 warning)
+ * @returns {Promise}
+ */
+export const useHandleData = (
+  api: (params: any) => Promise<any>,
+  params: any = {},
+  message: string,
+  confirmType: HandleDataMessageType = 'warning'
+) => {
+  return new Promise((resolve, reject) => {
+    ElMessageBox.confirm(`是否${message}?`, '温馨提示', {
+      confirmButtonText: '确定',
+      cancelButtonText: '取消',
+      type: confirmType,
+      draggable: true
+    }).then(async () => {
+      const res = await api(params)
+      if (!res) return reject(false)
+      ElMessage({
+        type: 'success',
+        message: `${message}成功!`
+      })
+      resolve(true)
+    })
+  })
+}

+ 5 - 0
src/main.ts

@@ -3,6 +3,11 @@ import App from './App.vue'
 
 import setupAppUse from '../plugins/app-use'
 
+// element css
+import 'element-plus/dist/index.css'
+// element dark css
+import 'element-plus/theme-chalk/dark/css-vars.css'
+
 import '@/assets/styles/index.scss'
 
 // svg图标注册

+ 620 - 602
src/types/auto-imports.d.ts

@@ -6,311 +6,329 @@
 // biome-ignore lint: disable
 export {}
 declare global {
-  const EffectScope: typeof import('vue')['EffectScope']
-  const ElMessage: typeof import('element-plus/es')['ElMessage']
-  const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
-  const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
-  const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
-  const computed: typeof import('vue')['computed']
-  const computedAsync: typeof import('@vueuse/core')['computedAsync']
-  const computedEager: typeof import('@vueuse/core')['computedEager']
-  const computedInject: typeof import('@vueuse/core')['computedInject']
-  const computedWithControl: typeof import('@vueuse/core')['computedWithControl']
-  const controlledComputed: typeof import('@vueuse/core')['controlledComputed']
-  const controlledRef: typeof import('@vueuse/core')['controlledRef']
-  const createApp: typeof import('vue')['createApp']
-  const createEventHook: typeof import('@vueuse/core')['createEventHook']
-  const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
-  const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
-  const createPinia: typeof import('pinia')['createPinia']
-  const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
-  const createRef: typeof import('@vueuse/core')['createRef']
-  const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate']
-  const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
-  const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise']
-  const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
-  const customRef: typeof import('vue')['customRef']
-  const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
-  const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch']
-  const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
-  const defineComponent: typeof import('vue')['defineComponent']
-  const defineStore: typeof import('pinia')['defineStore']
-  const eagerComputed: typeof import('@vueuse/core')['eagerComputed']
-  const effectScope: typeof import('vue')['effectScope']
-  const extendRef: typeof import('@vueuse/core')['extendRef']
-  const getActivePinia: typeof import('pinia')['getActivePinia']
-  const getCurrentInstance: typeof import('vue')['getCurrentInstance']
-  const getCurrentScope: typeof import('vue')['getCurrentScope']
-  const h: typeof import('vue')['h']
-  const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
-  const inject: typeof import('vue')['inject']
-  const injectLocal: typeof import('@vueuse/core')['injectLocal']
-  const isDefined: typeof import('@vueuse/core')['isDefined']
-  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 makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
-  const mapActions: typeof import('pinia')['mapActions']
-  const mapGetters: typeof import('pinia')['mapGetters']
-  const mapState: typeof import('pinia')['mapState']
-  const mapStores: typeof import('pinia')['mapStores']
-  const mapWritableState: typeof import('pinia')['mapWritableState']
-  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 onClickOutside: typeof import('@vueuse/core')['onClickOutside']
-  const onDeactivated: typeof import('vue')['onDeactivated']
-  const onElementRemoval: typeof import('@vueuse/core')['onElementRemoval']
-  const onErrorCaptured: typeof import('vue')['onErrorCaptured']
-  const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
-  const onLongPress: typeof import('@vueuse/core')['onLongPress']
-  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 onStartTyping: typeof import('@vueuse/core')['onStartTyping']
-  const onUnmounted: typeof import('vue')['onUnmounted']
-  const onUpdated: typeof import('vue')['onUpdated']
-  const onWatcherCleanup: typeof import('vue')['onWatcherCleanup']
-  const pausableWatch: typeof import('@vueuse/core')['pausableWatch']
-  const provide: typeof import('vue')['provide']
-  const provideLocal: typeof import('@vueuse/core')['provideLocal']
-  const reactify: typeof import('@vueuse/core')['reactify']
-  const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
-  const reactive: typeof import('vue')['reactive']
-  const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed']
-  const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit']
-  const reactivePick: typeof import('@vueuse/core')['reactivePick']
-  const readonly: typeof import('vue')['readonly']
-  const ref: typeof import('vue')['ref']
-  const refAutoReset: typeof import('@vueuse/core')['refAutoReset']
-  const refDebounced: typeof import('@vueuse/core')['refDebounced']
-  const refDefault: typeof import('@vueuse/core')['refDefault']
-  const refThrottled: typeof import('@vueuse/core')['refThrottled']
-  const refWithControl: typeof import('@vueuse/core')['refWithControl']
-  const resolveComponent: typeof import('vue')['resolveComponent']
-  const resolveRef: typeof import('@vueuse/core')['resolveRef']
-  const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
-  const setActivePinia: typeof import('pinia')['setActivePinia']
-  const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
-  const shallowReactive: typeof import('vue')['shallowReactive']
-  const shallowReadonly: typeof import('vue')['shallowReadonly']
-  const shallowRef: typeof import('vue')['shallowRef']
-  const storeToRefs: typeof import('pinia')['storeToRefs']
-  const syncRef: typeof import('@vueuse/core')['syncRef']
-  const syncRefs: typeof import('@vueuse/core')['syncRefs']
-  const templateRef: typeof import('@vueuse/core')['templateRef']
-  const throttledRef: typeof import('@vueuse/core')['throttledRef']
-  const throttledWatch: typeof import('@vueuse/core')['throttledWatch']
-  const toRaw: typeof import('vue')['toRaw']
-  const toReactive: typeof import('@vueuse/core')['toReactive']
-  const toRef: typeof import('vue')['toRef']
-  const toRefs: typeof import('vue')['toRefs']
-  const toValue: typeof import('vue')['toValue']
-  const triggerRef: typeof import('vue')['triggerRef']
-  const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
-  const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']
-  const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted']
-  const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose']
-  const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted']
-  const unref: typeof import('vue')['unref']
-  const unrefElement: typeof import('@vueuse/core')['unrefElement']
-  const until: typeof import('@vueuse/core')['until']
-  const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
-  const useAnimate: typeof import('@vueuse/core')['useAnimate']
-  const useArrayDifference: typeof import('@vueuse/core')['useArrayDifference']
-  const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery']
-  const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
-  const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
-  const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
-  const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast']
-  const useArrayIncludes: typeof import('@vueuse/core')['useArrayIncludes']
-  const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
-  const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
-  const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
-  const useArraySome: typeof import('@vueuse/core')['useArraySome']
-  const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique']
-  const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
-  const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
-  const useAttrs: typeof import('vue')['useAttrs']
-  const useBase64: typeof import('@vueuse/core')['useBase64']
-  const useBattery: typeof import('@vueuse/core')['useBattery']
-  const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
-  const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
-  const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
-  const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
-  const useCached: typeof import('@vueuse/core')['useCached']
-  const useClipboard: typeof import('@vueuse/core')['useClipboard']
-  const useClipboardItems: typeof import('@vueuse/core')['useClipboardItems']
-  const useCloned: typeof import('@vueuse/core')['useCloned']
-  const useColorMode: typeof import('@vueuse/core')['useColorMode']
-  const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
-  const useCountdown: typeof import('@vueuse/core')['useCountdown']
-  const useCounter: typeof import('@vueuse/core')['useCounter']
-  const useCssModule: typeof import('vue')['useCssModule']
-  const useCssVar: typeof import('@vueuse/core')['useCssVar']
-  const useCssVars: typeof import('vue')['useCssVars']
-  const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement']
-  const useCycleList: typeof import('@vueuse/core')['useCycleList']
-  const useDark: typeof import('@vueuse/core')['useDark']
-  const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
-  const useDebounce: typeof import('@vueuse/core')['useDebounce']
-  const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
-  const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
-  const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
-  const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
-  const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
-  const useDevicesList: typeof import('@vueuse/core')['useDevicesList']
-  const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia']
-  const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility']
-  const useDraggable: typeof import('@vueuse/core')['useDraggable']
-  const useDropZone: typeof import('@vueuse/core')['useDropZone']
-  const useElementBounding: typeof import('@vueuse/core')['useElementBounding']
-  const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint']
-  const useElementHover: typeof import('@vueuse/core')['useElementHover']
-  const useElementSize: typeof import('@vueuse/core')['useElementSize']
-  const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility']
-  const useEventBus: typeof import('@vueuse/core')['useEventBus']
-  const useEventListener: typeof import('@vueuse/core')['useEventListener']
-  const useEventSource: typeof import('@vueuse/core')['useEventSource']
-  const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper']
-  const useFavicon: typeof import('@vueuse/core')['useFavicon']
-  const useFetch: typeof import('@vueuse/core')['useFetch']
-  const useFileDialog: typeof import('@vueuse/core')['useFileDialog']
-  const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess']
-  const useFocus: typeof import('@vueuse/core')['useFocus']
-  const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin']
-  const useFps: typeof import('@vueuse/core')['useFps']
-  const useFullscreen: typeof import('@vueuse/core')['useFullscreen']
-  const useGamepad: typeof import('@vueuse/core')['useGamepad']
-  const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
-  const useId: typeof import('vue')['useId']
-  const useIdle: typeof import('@vueuse/core')['useIdle']
-  const useImage: typeof import('@vueuse/core')['useImage']
-  const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
-  const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
-  const useInterval: typeof import('@vueuse/core')['useInterval']
-  const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
-  const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
-  const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
-  const useLink: typeof import('vue-router')['useLink']
-  const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
-  const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
-  const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
-  const useMediaControls: typeof import('@vueuse/core')['useMediaControls']
-  const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery']
-  const useMemoize: typeof import('@vueuse/core')['useMemoize']
-  const useMemory: typeof import('@vueuse/core')['useMemory']
-  const useModel: typeof import('vue')['useModel']
-  const useMounted: typeof import('@vueuse/core')['useMounted']
-  const useMouse: typeof import('@vueuse/core')['useMouse']
-  const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement']
-  const useMousePressed: typeof import('@vueuse/core')['useMousePressed']
-  const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver']
-  const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage']
-  const useNetwork: typeof import('@vueuse/core')['useNetwork']
-  const useNow: typeof import('@vueuse/core')['useNow']
-  const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl']
-  const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination']
-  const useOnline: typeof import('@vueuse/core')['useOnline']
-  const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
-  const useParallax: typeof import('@vueuse/core')['useParallax']
-  const useParentElement: typeof import('@vueuse/core')['useParentElement']
-  const usePerformanceObserver: typeof import('@vueuse/core')['usePerformanceObserver']
-  const usePermission: typeof import('@vueuse/core')['usePermission']
-  const usePointer: typeof import('@vueuse/core')['usePointer']
-  const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
-  const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
-  const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
-  const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
-  const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
-  const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
-  const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
-  const usePreferredReducedTransparency: typeof import('@vueuse/core')['usePreferredReducedTransparency']
-  const usePrevious: typeof import('@vueuse/core')['usePrevious']
-  const useRafFn: typeof import('@vueuse/core')['useRafFn']
-  const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
-  const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
-  const useRoute: typeof import('vue-router')['useRoute']
-  const useRouter: typeof import('vue-router')['useRouter']
-  const useSSRWidth: typeof import('@vueuse/core')['useSSRWidth']
-  const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
-  const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
-  const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
-  const useScroll: typeof import('@vueuse/core')['useScroll']
-  const useScrollLock: typeof import('@vueuse/core')['useScrollLock']
-  const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
-  const useShare: typeof import('@vueuse/core')['useShare']
-  const useSlots: typeof import('vue')['useSlots']
-  const useSorted: typeof import('@vueuse/core')['useSorted']
-  const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
-  const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
-  const useStepper: typeof import('@vueuse/core')['useStepper']
-  const useStorage: typeof import('@vueuse/core')['useStorage']
-  const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync']
-  const useStyleTag: typeof import('@vueuse/core')['useStyleTag']
-  const useSupported: typeof import('@vueuse/core')['useSupported']
-  const useSwipe: typeof import('@vueuse/core')['useSwipe']
-  const useTemplateRef: typeof import('vue')['useTemplateRef']
-  const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
-  const useTextDirection: typeof import('@vueuse/core')['useTextDirection']
-  const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
-  const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
-  const useThrottle: typeof import('@vueuse/core')['useThrottle']
-  const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
-  const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
-  const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
-  const useTimeout: typeof import('@vueuse/core')['useTimeout']
-  const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
-  const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
-  const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
-  const useTitle: typeof import('@vueuse/core')['useTitle']
-  const useToNumber: typeof import('@vueuse/core')['useToNumber']
-  const useToString: typeof import('@vueuse/core')['useToString']
-  const useToggle: typeof import('@vueuse/core')['useToggle']
-  const useTransition: typeof import('@vueuse/core')['useTransition']
-  const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
-  const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
-  const useVModel: typeof import('@vueuse/core')['useVModel']
-  const useVModels: typeof import('@vueuse/core')['useVModels']
-  const useVibrate: typeof import('@vueuse/core')['useVibrate']
-  const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
-  const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
-  const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
-  const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
-  const useWebWorker: typeof import('@vueuse/core')['useWebWorker']
-  const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn']
-  const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus']
-  const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll']
-  const useWindowSize: typeof import('@vueuse/core')['useWindowSize']
-  const watch: typeof import('vue')['watch']
-  const watchArray: typeof import('@vueuse/core')['watchArray']
-  const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
-  const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
-  const watchDeep: typeof import('@vueuse/core')['watchDeep']
-  const watchEffect: typeof import('vue')['watchEffect']
-  const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
-  const watchImmediate: typeof import('@vueuse/core')['watchImmediate']
-  const watchOnce: typeof import('@vueuse/core')['watchOnce']
-  const watchPausable: typeof import('@vueuse/core')['watchPausable']
-  const watchPostEffect: typeof import('vue')['watchPostEffect']
-  const watchSyncEffect: typeof import('vue')['watchSyncEffect']
-  const watchThrottled: typeof import('@vueuse/core')['watchThrottled']
-  const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable']
-  const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
-  const whenever: typeof import('@vueuse/core')['whenever']
+  const EffectScope: (typeof import('vue'))['EffectScope']
+  const ElMessage: (typeof import('element-plus/es'))['ElMessage']
+  const ElMessageBox: (typeof import('element-plus/es'))['ElMessageBox']
+  const acceptHMRUpdate: (typeof import('pinia'))['acceptHMRUpdate']
+  const asyncComputed: (typeof import('@vueuse/core'))['asyncComputed']
+  const autoResetRef: (typeof import('@vueuse/core'))['autoResetRef']
+  const computed: (typeof import('vue'))['computed']
+  const computedAsync: (typeof import('@vueuse/core'))['computedAsync']
+  const computedEager: (typeof import('@vueuse/core'))['computedEager']
+  const computedInject: (typeof import('@vueuse/core'))['computedInject']
+  const computedWithControl: (typeof import('@vueuse/core'))['computedWithControl']
+  const controlledComputed: (typeof import('@vueuse/core'))['controlledComputed']
+  const controlledRef: (typeof import('@vueuse/core'))['controlledRef']
+  const createApp: (typeof import('vue'))['createApp']
+  const createEventHook: (typeof import('@vueuse/core'))['createEventHook']
+  const createGlobalState: (typeof import('@vueuse/core'))['createGlobalState']
+  const createInjectionState: (typeof import('@vueuse/core'))['createInjectionState']
+  const createPinia: (typeof import('pinia'))['createPinia']
+  const createReactiveFn: (typeof import('@vueuse/core'))['createReactiveFn']
+  const createRef: (typeof import('@vueuse/core'))['createRef']
+  const createReusableTemplate: (typeof import('@vueuse/core'))['createReusableTemplate']
+  const createSharedComposable: (typeof import('@vueuse/core'))['createSharedComposable']
+  const createTemplatePromise: (typeof import('@vueuse/core'))['createTemplatePromise']
+  const createUnrefFn: (typeof import('@vueuse/core'))['createUnrefFn']
+  const customRef: (typeof import('vue'))['customRef']
+  const debouncedRef: (typeof import('@vueuse/core'))['debouncedRef']
+  const debouncedWatch: (typeof import('@vueuse/core'))['debouncedWatch']
+  const defineAsyncComponent: (typeof import('vue'))['defineAsyncComponent']
+  const defineComponent: (typeof import('vue'))['defineComponent']
+  const defineStore: (typeof import('pinia'))['defineStore']
+  const eagerComputed: (typeof import('@vueuse/core'))['eagerComputed']
+  const effectScope: (typeof import('vue'))['effectScope']
+  const extendRef: (typeof import('@vueuse/core'))['extendRef']
+  const getActivePinia: (typeof import('pinia'))['getActivePinia']
+  const getCurrentInstance: (typeof import('vue'))['getCurrentInstance']
+  const getCurrentScope: (typeof import('vue'))['getCurrentScope']
+  const h: (typeof import('vue'))['h']
+  const ignorableWatch: (typeof import('@vueuse/core'))['ignorableWatch']
+  const inject: (typeof import('vue'))['inject']
+  const injectLocal: (typeof import('@vueuse/core'))['injectLocal']
+  const isDefined: (typeof import('@vueuse/core'))['isDefined']
+  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 makeDestructurable: (typeof import('@vueuse/core'))['makeDestructurable']
+  const mapActions: (typeof import('pinia'))['mapActions']
+  const mapGetters: (typeof import('pinia'))['mapGetters']
+  const mapState: (typeof import('pinia'))['mapState']
+  const mapStores: (typeof import('pinia'))['mapStores']
+  const mapWritableState: (typeof import('pinia'))['mapWritableState']
+  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 onClickOutside: (typeof import('@vueuse/core'))['onClickOutside']
+  const onDeactivated: (typeof import('vue'))['onDeactivated']
+  const onElementRemoval: (typeof import('@vueuse/core'))['onElementRemoval']
+  const onErrorCaptured: (typeof import('vue'))['onErrorCaptured']
+  const onKeyStroke: (typeof import('@vueuse/core'))['onKeyStroke']
+  const onLongPress: (typeof import('@vueuse/core'))['onLongPress']
+  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 onStartTyping: (typeof import('@vueuse/core'))['onStartTyping']
+  const onUnmounted: (typeof import('vue'))['onUnmounted']
+  const onUpdated: (typeof import('vue'))['onUpdated']
+  const onWatcherCleanup: (typeof import('vue'))['onWatcherCleanup']
+  const pausableWatch: (typeof import('@vueuse/core'))['pausableWatch']
+  const provide: (typeof import('vue'))['provide']
+  const provideLocal: (typeof import('@vueuse/core'))['provideLocal']
+  const reactify: (typeof import('@vueuse/core'))['reactify']
+  const reactifyObject: (typeof import('@vueuse/core'))['reactifyObject']
+  const reactive: (typeof import('vue'))['reactive']
+  const reactiveComputed: (typeof import('@vueuse/core'))['reactiveComputed']
+  const reactiveOmit: (typeof import('@vueuse/core'))['reactiveOmit']
+  const reactivePick: (typeof import('@vueuse/core'))['reactivePick']
+  const readonly: (typeof import('vue'))['readonly']
+  const ref: (typeof import('vue'))['ref']
+  const refAutoReset: (typeof import('@vueuse/core'))['refAutoReset']
+  const refDebounced: (typeof import('@vueuse/core'))['refDebounced']
+  const refDefault: (typeof import('@vueuse/core'))['refDefault']
+  const refThrottled: (typeof import('@vueuse/core'))['refThrottled']
+  const refWithControl: (typeof import('@vueuse/core'))['refWithControl']
+  const resolveComponent: (typeof import('vue'))['resolveComponent']
+  const resolveRef: (typeof import('@vueuse/core'))['resolveRef']
+  const resolveUnref: (typeof import('@vueuse/core'))['resolveUnref']
+  const setActivePinia: (typeof import('pinia'))['setActivePinia']
+  const setMapStoreSuffix: (typeof import('pinia'))['setMapStoreSuffix']
+  const shallowReactive: (typeof import('vue'))['shallowReactive']
+  const shallowReadonly: (typeof import('vue'))['shallowReadonly']
+  const shallowRef: (typeof import('vue'))['shallowRef']
+  const storeToRefs: (typeof import('pinia'))['storeToRefs']
+  const syncRef: (typeof import('@vueuse/core'))['syncRef']
+  const syncRefs: (typeof import('@vueuse/core'))['syncRefs']
+  const templateRef: (typeof import('@vueuse/core'))['templateRef']
+  const throttledRef: (typeof import('@vueuse/core'))['throttledRef']
+  const throttledWatch: (typeof import('@vueuse/core'))['throttledWatch']
+  const toRaw: (typeof import('vue'))['toRaw']
+  const toReactive: (typeof import('@vueuse/core'))['toReactive']
+  const toRef: (typeof import('vue'))['toRef']
+  const toRefs: (typeof import('vue'))['toRefs']
+  const toValue: (typeof import('vue'))['toValue']
+  const triggerRef: (typeof import('vue'))['triggerRef']
+  const tryOnBeforeMount: (typeof import('@vueuse/core'))['tryOnBeforeMount']
+  const tryOnBeforeUnmount: (typeof import('@vueuse/core'))['tryOnBeforeUnmount']
+  const tryOnMounted: (typeof import('@vueuse/core'))['tryOnMounted']
+  const tryOnScopeDispose: (typeof import('@vueuse/core'))['tryOnScopeDispose']
+  const tryOnUnmounted: (typeof import('@vueuse/core'))['tryOnUnmounted']
+  const unref: (typeof import('vue'))['unref']
+  const unrefElement: (typeof import('@vueuse/core'))['unrefElement']
+  const until: (typeof import('@vueuse/core'))['until']
+  const useActiveElement: (typeof import('@vueuse/core'))['useActiveElement']
+  const useAnimate: (typeof import('@vueuse/core'))['useAnimate']
+  const useArrayDifference: (typeof import('@vueuse/core'))['useArrayDifference']
+  const useArrayEvery: (typeof import('@vueuse/core'))['useArrayEvery']
+  const useArrayFilter: (typeof import('@vueuse/core'))['useArrayFilter']
+  const useArrayFind: (typeof import('@vueuse/core'))['useArrayFind']
+  const useArrayFindIndex: (typeof import('@vueuse/core'))['useArrayFindIndex']
+  const useArrayFindLast: (typeof import('@vueuse/core'))['useArrayFindLast']
+  const useArrayIncludes: (typeof import('@vueuse/core'))['useArrayIncludes']
+  const useArrayJoin: (typeof import('@vueuse/core'))['useArrayJoin']
+  const useArrayMap: (typeof import('@vueuse/core'))['useArrayMap']
+  const useArrayReduce: (typeof import('@vueuse/core'))['useArrayReduce']
+  const useArraySome: (typeof import('@vueuse/core'))['useArraySome']
+  const useArrayUnique: (typeof import('@vueuse/core'))['useArrayUnique']
+  const useAsyncQueue: (typeof import('@vueuse/core'))['useAsyncQueue']
+  const useAsyncState: (typeof import('@vueuse/core'))['useAsyncState']
+  const useAttrs: (typeof import('vue'))['useAttrs']
+  const useBase64: (typeof import('@vueuse/core'))['useBase64']
+  const useBattery: (typeof import('@vueuse/core'))['useBattery']
+  const useBluetooth: (typeof import('@vueuse/core'))['useBluetooth']
+  const useBreakpoints: (typeof import('@vueuse/core'))['useBreakpoints']
+  const useBroadcastChannel: (typeof import('@vueuse/core'))['useBroadcastChannel']
+  const useBrowserLocation: (typeof import('@vueuse/core'))['useBrowserLocation']
+  const useCached: (typeof import('@vueuse/core'))['useCached']
+  const useClipboard: (typeof import('@vueuse/core'))['useClipboard']
+  const useClipboardItems: (typeof import('@vueuse/core'))['useClipboardItems']
+  const useCloned: (typeof import('@vueuse/core'))['useCloned']
+  const useColorMode: (typeof import('@vueuse/core'))['useColorMode']
+  const useConfirmDialog: (typeof import('@vueuse/core'))['useConfirmDialog']
+  const useCountdown: (typeof import('@vueuse/core'))['useCountdown']
+  const useCounter: (typeof import('@vueuse/core'))['useCounter']
+  const useCssModule: (typeof import('vue'))['useCssModule']
+  const useCssVar: (typeof import('@vueuse/core'))['useCssVar']
+  const useCssVars: (typeof import('vue'))['useCssVars']
+  const useCurrentElement: (typeof import('@vueuse/core'))['useCurrentElement']
+  const useCycleList: (typeof import('@vueuse/core'))['useCycleList']
+  const useDark: (typeof import('@vueuse/core'))['useDark']
+  const useDateFormat: (typeof import('@vueuse/core'))['useDateFormat']
+  const useDebounce: (typeof import('@vueuse/core'))['useDebounce']
+  const useDebounceFn: (typeof import('@vueuse/core'))['useDebounceFn']
+  const useDebouncedRefHistory: (typeof import('@vueuse/core'))['useDebouncedRefHistory']
+  const useDeviceMotion: (typeof import('@vueuse/core'))['useDeviceMotion']
+  const useDeviceOrientation: (typeof import('@vueuse/core'))['useDeviceOrientation']
+  const useDevicePixelRatio: (typeof import('@vueuse/core'))['useDevicePixelRatio']
+  const useDevicesList: (typeof import('@vueuse/core'))['useDevicesList']
+  const useDisplayMedia: (typeof import('@vueuse/core'))['useDisplayMedia']
+  const useDocumentVisibility: (typeof import('@vueuse/core'))['useDocumentVisibility']
+  const useDraggable: (typeof import('@vueuse/core'))['useDraggable']
+  const useDropZone: (typeof import('@vueuse/core'))['useDropZone']
+  const useElementBounding: (typeof import('@vueuse/core'))['useElementBounding']
+  const useElementByPoint: (typeof import('@vueuse/core'))['useElementByPoint']
+  const useElementHover: (typeof import('@vueuse/core'))['useElementHover']
+  const useElementSize: (typeof import('@vueuse/core'))['useElementSize']
+  const useElementVisibility: (typeof import('@vueuse/core'))['useElementVisibility']
+  const useEventBus: (typeof import('@vueuse/core'))['useEventBus']
+  const useEventListener: (typeof import('@vueuse/core'))['useEventListener']
+  const useEventSource: (typeof import('@vueuse/core'))['useEventSource']
+  const useEyeDropper: (typeof import('@vueuse/core'))['useEyeDropper']
+  const useFavicon: (typeof import('@vueuse/core'))['useFavicon']
+  const useFetch: (typeof import('@vueuse/core'))['useFetch']
+  const useFileDialog: (typeof import('@vueuse/core'))['useFileDialog']
+  const useFileSystemAccess: (typeof import('@vueuse/core'))['useFileSystemAccess']
+  const useFocus: (typeof import('@vueuse/core'))['useFocus']
+  const useFocusWithin: (typeof import('@vueuse/core'))['useFocusWithin']
+  const useFps: (typeof import('@vueuse/core'))['useFps']
+  const useFullscreen: (typeof import('@vueuse/core'))['useFullscreen']
+  const useGamepad: (typeof import('@vueuse/core'))['useGamepad']
+  const useGeolocation: (typeof import('@vueuse/core'))['useGeolocation']
+  const useId: (typeof import('vue'))['useId']
+  const useIdle: (typeof import('@vueuse/core'))['useIdle']
+  const useImage: (typeof import('@vueuse/core'))['useImage']
+  const useInfiniteScroll: (typeof import('@vueuse/core'))['useInfiniteScroll']
+  const useIntersectionObserver: (typeof import('@vueuse/core'))['useIntersectionObserver']
+  const useInterval: (typeof import('@vueuse/core'))['useInterval']
+  const useIntervalFn: (typeof import('@vueuse/core'))['useIntervalFn']
+  const useKeyModifier: (typeof import('@vueuse/core'))['useKeyModifier']
+  const useLastChanged: (typeof import('@vueuse/core'))['useLastChanged']
+  const useLink: (typeof import('vue-router'))['useLink']
+  const useLocalStorage: (typeof import('@vueuse/core'))['useLocalStorage']
+  const useMagicKeys: (typeof import('@vueuse/core'))['useMagicKeys']
+  const useManualRefHistory: (typeof import('@vueuse/core'))['useManualRefHistory']
+  const useMediaControls: (typeof import('@vueuse/core'))['useMediaControls']
+  const useMediaQuery: (typeof import('@vueuse/core'))['useMediaQuery']
+  const useMemoize: (typeof import('@vueuse/core'))['useMemoize']
+  const useMemory: (typeof import('@vueuse/core'))['useMemory']
+  const useModel: (typeof import('vue'))['useModel']
+  const useMounted: (typeof import('@vueuse/core'))['useMounted']
+  const useMouse: (typeof import('@vueuse/core'))['useMouse']
+  const useMouseInElement: (typeof import('@vueuse/core'))['useMouseInElement']
+  const useMousePressed: (typeof import('@vueuse/core'))['useMousePressed']
+  const useMutationObserver: (typeof import('@vueuse/core'))['useMutationObserver']
+  const useNavigatorLanguage: (typeof import('@vueuse/core'))['useNavigatorLanguage']
+  const useNetwork: (typeof import('@vueuse/core'))['useNetwork']
+  const useNow: (typeof import('@vueuse/core'))['useNow']
+  const useObjectUrl: (typeof import('@vueuse/core'))['useObjectUrl']
+  const useOffsetPagination: (typeof import('@vueuse/core'))['useOffsetPagination']
+  const useOnline: (typeof import('@vueuse/core'))['useOnline']
+  const usePageLeave: (typeof import('@vueuse/core'))['usePageLeave']
+  const useParallax: (typeof import('@vueuse/core'))['useParallax']
+  const useParentElement: (typeof import('@vueuse/core'))['useParentElement']
+  const usePerformanceObserver: (typeof import('@vueuse/core'))['usePerformanceObserver']
+  const usePermission: (typeof import('@vueuse/core'))['usePermission']
+  const usePointer: (typeof import('@vueuse/core'))['usePointer']
+  const usePointerLock: (typeof import('@vueuse/core'))['usePointerLock']
+  const usePointerSwipe: (typeof import('@vueuse/core'))['usePointerSwipe']
+  const usePreferredColorScheme: (typeof import('@vueuse/core'))['usePreferredColorScheme']
+  const usePreferredContrast: (typeof import('@vueuse/core'))['usePreferredContrast']
+  const usePreferredDark: (typeof import('@vueuse/core'))['usePreferredDark']
+  const usePreferredLanguages: (typeof import('@vueuse/core'))['usePreferredLanguages']
+  const usePreferredReducedMotion: (typeof import('@vueuse/core'))['usePreferredReducedMotion']
+  const usePreferredReducedTransparency: (typeof import('@vueuse/core'))['usePreferredReducedTransparency']
+  const usePrevious: (typeof import('@vueuse/core'))['usePrevious']
+  const useRafFn: (typeof import('@vueuse/core'))['useRafFn']
+  const useRefHistory: (typeof import('@vueuse/core'))['useRefHistory']
+  const useResizeObserver: (typeof import('@vueuse/core'))['useResizeObserver']
+  const useRoute: (typeof import('vue-router'))['useRoute']
+  const useRouter: (typeof import('vue-router'))['useRouter']
+  const useSSRWidth: (typeof import('@vueuse/core'))['useSSRWidth']
+  const useScreenOrientation: (typeof import('@vueuse/core'))['useScreenOrientation']
+  const useScreenSafeArea: (typeof import('@vueuse/core'))['useScreenSafeArea']
+  const useScriptTag: (typeof import('@vueuse/core'))['useScriptTag']
+  const useScroll: (typeof import('@vueuse/core'))['useScroll']
+  const useScrollLock: (typeof import('@vueuse/core'))['useScrollLock']
+  const useSessionStorage: (typeof import('@vueuse/core'))['useSessionStorage']
+  const useShare: (typeof import('@vueuse/core'))['useShare']
+  const useSlots: (typeof import('vue'))['useSlots']
+  const useSorted: (typeof import('@vueuse/core'))['useSorted']
+  const useSpeechRecognition: (typeof import('@vueuse/core'))['useSpeechRecognition']
+  const useSpeechSynthesis: (typeof import('@vueuse/core'))['useSpeechSynthesis']
+  const useStepper: (typeof import('@vueuse/core'))['useStepper']
+  const useStorage: (typeof import('@vueuse/core'))['useStorage']
+  const useStorageAsync: (typeof import('@vueuse/core'))['useStorageAsync']
+  const useStyleTag: (typeof import('@vueuse/core'))['useStyleTag']
+  const useSupported: (typeof import('@vueuse/core'))['useSupported']
+  const useSwipe: (typeof import('@vueuse/core'))['useSwipe']
+  const useTemplateRef: (typeof import('vue'))['useTemplateRef']
+  const useTemplateRefsList: (typeof import('@vueuse/core'))['useTemplateRefsList']
+  const useTextDirection: (typeof import('@vueuse/core'))['useTextDirection']
+  const useTextSelection: (typeof import('@vueuse/core'))['useTextSelection']
+  const useTextareaAutosize: (typeof import('@vueuse/core'))['useTextareaAutosize']
+  const useThrottle: (typeof import('@vueuse/core'))['useThrottle']
+  const useThrottleFn: (typeof import('@vueuse/core'))['useThrottleFn']
+  const useThrottledRefHistory: (typeof import('@vueuse/core'))['useThrottledRefHistory']
+  const useTimeAgo: (typeof import('@vueuse/core'))['useTimeAgo']
+  const useTimeout: (typeof import('@vueuse/core'))['useTimeout']
+  const useTimeoutFn: (typeof import('@vueuse/core'))['useTimeoutFn']
+  const useTimeoutPoll: (typeof import('@vueuse/core'))['useTimeoutPoll']
+  const useTimestamp: (typeof import('@vueuse/core'))['useTimestamp']
+  const useTitle: (typeof import('@vueuse/core'))['useTitle']
+  const useToNumber: (typeof import('@vueuse/core'))['useToNumber']
+  const useToString: (typeof import('@vueuse/core'))['useToString']
+  const useToggle: (typeof import('@vueuse/core'))['useToggle']
+  const useTransition: (typeof import('@vueuse/core'))['useTransition']
+  const useUrlSearchParams: (typeof import('@vueuse/core'))['useUrlSearchParams']
+  const useUserMedia: (typeof import('@vueuse/core'))['useUserMedia']
+  const useVModel: (typeof import('@vueuse/core'))['useVModel']
+  const useVModels: (typeof import('@vueuse/core'))['useVModels']
+  const useVibrate: (typeof import('@vueuse/core'))['useVibrate']
+  const useVirtualList: (typeof import('@vueuse/core'))['useVirtualList']
+  const useWakeLock: (typeof import('@vueuse/core'))['useWakeLock']
+  const useWebNotification: (typeof import('@vueuse/core'))['useWebNotification']
+  const useWebSocket: (typeof import('@vueuse/core'))['useWebSocket']
+  const useWebWorker: (typeof import('@vueuse/core'))['useWebWorker']
+  const useWebWorkerFn: (typeof import('@vueuse/core'))['useWebWorkerFn']
+  const useWindowFocus: (typeof import('@vueuse/core'))['useWindowFocus']
+  const useWindowScroll: (typeof import('@vueuse/core'))['useWindowScroll']
+  const useWindowSize: (typeof import('@vueuse/core'))['useWindowSize']
+  const watch: (typeof import('vue'))['watch']
+  const watchArray: (typeof import('@vueuse/core'))['watchArray']
+  const watchAtMost: (typeof import('@vueuse/core'))['watchAtMost']
+  const watchDebounced: (typeof import('@vueuse/core'))['watchDebounced']
+  const watchDeep: (typeof import('@vueuse/core'))['watchDeep']
+  const watchEffect: (typeof import('vue'))['watchEffect']
+  const watchIgnorable: (typeof import('@vueuse/core'))['watchIgnorable']
+  const watchImmediate: (typeof import('@vueuse/core'))['watchImmediate']
+  const watchOnce: (typeof import('@vueuse/core'))['watchOnce']
+  const watchPausable: (typeof import('@vueuse/core'))['watchPausable']
+  const watchPostEffect: (typeof import('vue'))['watchPostEffect']
+  const watchSyncEffect: (typeof import('vue'))['watchSyncEffect']
+  const watchThrottled: (typeof import('@vueuse/core'))['watchThrottled']
+  const watchTriggerable: (typeof import('@vueuse/core'))['watchTriggerable']
+  const watchWithFilter: (typeof import('@vueuse/core'))['watchWithFilter']
+  const whenever: (typeof import('@vueuse/core'))['whenever']
 }
 // for type re-export
 declare global {
   // @ts-ignore
-  export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
+  export type {
+    Component,
+    Slot,
+    Slots,
+    ComponentPublicInstance,
+    ComputedRef,
+    DirectiveBinding,
+    ExtractDefaultPropTypes,
+    ExtractPropTypes,
+    ExtractPublicPropTypes,
+    InjectionKey,
+    PropType,
+    Ref,
+    MaybeRef,
+    MaybeRefOrGetter,
+    VNode,
+    WritableComputedRef
+  } from 'vue'
   import('vue')
 }
 
@@ -319,305 +337,305 @@ import { UnwrapRef } from 'vue'
 declare module 'vue' {
   interface GlobalComponents {}
   interface ComponentCustomProperties {
-    readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
-    readonly ElMessage: UnwrapRef<typeof import('element-plus/es')['ElMessage']>
-    readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
-    readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
-    readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']>
-    readonly computed: UnwrapRef<typeof import('vue')['computed']>
-    readonly computedAsync: UnwrapRef<typeof import('@vueuse/core')['computedAsync']>
-    readonly computedEager: UnwrapRef<typeof import('@vueuse/core')['computedEager']>
-    readonly computedInject: UnwrapRef<typeof import('@vueuse/core')['computedInject']>
-    readonly computedWithControl: UnwrapRef<typeof import('@vueuse/core')['computedWithControl']>
-    readonly controlledComputed: UnwrapRef<typeof import('@vueuse/core')['controlledComputed']>
-    readonly controlledRef: UnwrapRef<typeof import('@vueuse/core')['controlledRef']>
-    readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
-    readonly createEventHook: UnwrapRef<typeof import('@vueuse/core')['createEventHook']>
-    readonly createGlobalState: UnwrapRef<typeof import('@vueuse/core')['createGlobalState']>
-    readonly createInjectionState: UnwrapRef<typeof import('@vueuse/core')['createInjectionState']>
-    readonly createPinia: UnwrapRef<typeof import('pinia')['createPinia']>
-    readonly createReactiveFn: UnwrapRef<typeof import('@vueuse/core')['createReactiveFn']>
-    readonly createRef: UnwrapRef<typeof import('@vueuse/core')['createRef']>
-    readonly createReusableTemplate: UnwrapRef<typeof import('@vueuse/core')['createReusableTemplate']>
-    readonly createSharedComposable: UnwrapRef<typeof import('@vueuse/core')['createSharedComposable']>
-    readonly createTemplatePromise: UnwrapRef<typeof import('@vueuse/core')['createTemplatePromise']>
-    readonly createUnrefFn: UnwrapRef<typeof import('@vueuse/core')['createUnrefFn']>
-    readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
-    readonly debouncedRef: UnwrapRef<typeof import('@vueuse/core')['debouncedRef']>
-    readonly debouncedWatch: UnwrapRef<typeof import('@vueuse/core')['debouncedWatch']>
-    readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
-    readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
-    readonly defineStore: UnwrapRef<typeof import('pinia')['defineStore']>
-    readonly eagerComputed: UnwrapRef<typeof import('@vueuse/core')['eagerComputed']>
-    readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
-    readonly extendRef: UnwrapRef<typeof import('@vueuse/core')['extendRef']>
-    readonly getActivePinia: UnwrapRef<typeof import('pinia')['getActivePinia']>
-    readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
-    readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
-    readonly h: UnwrapRef<typeof import('vue')['h']>
-    readonly ignorableWatch: UnwrapRef<typeof import('@vueuse/core')['ignorableWatch']>
-    readonly inject: UnwrapRef<typeof import('vue')['inject']>
-    readonly injectLocal: UnwrapRef<typeof import('@vueuse/core')['injectLocal']>
-    readonly isDefined: UnwrapRef<typeof import('@vueuse/core')['isDefined']>
-    readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
-    readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
-    readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
-    readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
-    readonly makeDestructurable: UnwrapRef<typeof import('@vueuse/core')['makeDestructurable']>
-    readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
-    readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
-    readonly mapState: UnwrapRef<typeof import('pinia')['mapState']>
-    readonly mapStores: UnwrapRef<typeof import('pinia')['mapStores']>
-    readonly mapWritableState: UnwrapRef<typeof import('pinia')['mapWritableState']>
-    readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
-    readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
-    readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
-    readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
-    readonly onBeforeRouteLeave: UnwrapRef<typeof import('vue-router')['onBeforeRouteLeave']>
-    readonly onBeforeRouteUpdate: UnwrapRef<typeof import('vue-router')['onBeforeRouteUpdate']>
-    readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
-    readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
-    readonly onClickOutside: UnwrapRef<typeof import('@vueuse/core')['onClickOutside']>
-    readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
-    readonly onElementRemoval: UnwrapRef<typeof import('@vueuse/core')['onElementRemoval']>
-    readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
-    readonly onKeyStroke: UnwrapRef<typeof import('@vueuse/core')['onKeyStroke']>
-    readonly onLongPress: UnwrapRef<typeof import('@vueuse/core')['onLongPress']>
-    readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
-    readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
-    readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
-    readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
-    readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
-    readonly onStartTyping: UnwrapRef<typeof import('@vueuse/core')['onStartTyping']>
-    readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
-    readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
-    readonly onWatcherCleanup: UnwrapRef<typeof import('vue')['onWatcherCleanup']>
-    readonly pausableWatch: UnwrapRef<typeof import('@vueuse/core')['pausableWatch']>
-    readonly provide: UnwrapRef<typeof import('vue')['provide']>
-    readonly provideLocal: UnwrapRef<typeof import('@vueuse/core')['provideLocal']>
-    readonly reactify: UnwrapRef<typeof import('@vueuse/core')['reactify']>
-    readonly reactifyObject: UnwrapRef<typeof import('@vueuse/core')['reactifyObject']>
-    readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
-    readonly reactiveComputed: UnwrapRef<typeof import('@vueuse/core')['reactiveComputed']>
-    readonly reactiveOmit: UnwrapRef<typeof import('@vueuse/core')['reactiveOmit']>
-    readonly reactivePick: UnwrapRef<typeof import('@vueuse/core')['reactivePick']>
-    readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
-    readonly ref: UnwrapRef<typeof import('vue')['ref']>
-    readonly refAutoReset: UnwrapRef<typeof import('@vueuse/core')['refAutoReset']>
-    readonly refDebounced: UnwrapRef<typeof import('@vueuse/core')['refDebounced']>
-    readonly refDefault: UnwrapRef<typeof import('@vueuse/core')['refDefault']>
-    readonly refThrottled: UnwrapRef<typeof import('@vueuse/core')['refThrottled']>
-    readonly refWithControl: UnwrapRef<typeof import('@vueuse/core')['refWithControl']>
-    readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
-    readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
-    readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
-    readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
-    readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
-    readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
-    readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
-    readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
-    readonly storeToRefs: UnwrapRef<typeof import('pinia')['storeToRefs']>
-    readonly syncRef: UnwrapRef<typeof import('@vueuse/core')['syncRef']>
-    readonly syncRefs: UnwrapRef<typeof import('@vueuse/core')['syncRefs']>
-    readonly templateRef: UnwrapRef<typeof import('@vueuse/core')['templateRef']>
-    readonly throttledRef: UnwrapRef<typeof import('@vueuse/core')['throttledRef']>
-    readonly throttledWatch: UnwrapRef<typeof import('@vueuse/core')['throttledWatch']>
-    readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
-    readonly toReactive: UnwrapRef<typeof import('@vueuse/core')['toReactive']>
-    readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
-    readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
-    readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
-    readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
-    readonly tryOnBeforeMount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeMount']>
-    readonly tryOnBeforeUnmount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeUnmount']>
-    readonly tryOnMounted: UnwrapRef<typeof import('@vueuse/core')['tryOnMounted']>
-    readonly tryOnScopeDispose: UnwrapRef<typeof import('@vueuse/core')['tryOnScopeDispose']>
-    readonly tryOnUnmounted: UnwrapRef<typeof import('@vueuse/core')['tryOnUnmounted']>
-    readonly unref: UnwrapRef<typeof import('vue')['unref']>
-    readonly unrefElement: UnwrapRef<typeof import('@vueuse/core')['unrefElement']>
-    readonly until: UnwrapRef<typeof import('@vueuse/core')['until']>
-    readonly useActiveElement: UnwrapRef<typeof import('@vueuse/core')['useActiveElement']>
-    readonly useAnimate: UnwrapRef<typeof import('@vueuse/core')['useAnimate']>
-    readonly useArrayDifference: UnwrapRef<typeof import('@vueuse/core')['useArrayDifference']>
-    readonly useArrayEvery: UnwrapRef<typeof import('@vueuse/core')['useArrayEvery']>
-    readonly useArrayFilter: UnwrapRef<typeof import('@vueuse/core')['useArrayFilter']>
-    readonly useArrayFind: UnwrapRef<typeof import('@vueuse/core')['useArrayFind']>
-    readonly useArrayFindIndex: UnwrapRef<typeof import('@vueuse/core')['useArrayFindIndex']>
-    readonly useArrayFindLast: UnwrapRef<typeof import('@vueuse/core')['useArrayFindLast']>
-    readonly useArrayIncludes: UnwrapRef<typeof import('@vueuse/core')['useArrayIncludes']>
-    readonly useArrayJoin: UnwrapRef<typeof import('@vueuse/core')['useArrayJoin']>
-    readonly useArrayMap: UnwrapRef<typeof import('@vueuse/core')['useArrayMap']>
-    readonly useArrayReduce: UnwrapRef<typeof import('@vueuse/core')['useArrayReduce']>
-    readonly useArraySome: UnwrapRef<typeof import('@vueuse/core')['useArraySome']>
-    readonly useArrayUnique: UnwrapRef<typeof import('@vueuse/core')['useArrayUnique']>
-    readonly useAsyncQueue: UnwrapRef<typeof import('@vueuse/core')['useAsyncQueue']>
-    readonly useAsyncState: UnwrapRef<typeof import('@vueuse/core')['useAsyncState']>
-    readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
-    readonly useBase64: UnwrapRef<typeof import('@vueuse/core')['useBase64']>
-    readonly useBattery: UnwrapRef<typeof import('@vueuse/core')['useBattery']>
-    readonly useBluetooth: UnwrapRef<typeof import('@vueuse/core')['useBluetooth']>
-    readonly useBreakpoints: UnwrapRef<typeof import('@vueuse/core')['useBreakpoints']>
-    readonly useBroadcastChannel: UnwrapRef<typeof import('@vueuse/core')['useBroadcastChannel']>
-    readonly useBrowserLocation: UnwrapRef<typeof import('@vueuse/core')['useBrowserLocation']>
-    readonly useCached: UnwrapRef<typeof import('@vueuse/core')['useCached']>
-    readonly useClipboard: UnwrapRef<typeof import('@vueuse/core')['useClipboard']>
-    readonly useClipboardItems: UnwrapRef<typeof import('@vueuse/core')['useClipboardItems']>
-    readonly useCloned: UnwrapRef<typeof import('@vueuse/core')['useCloned']>
-    readonly useColorMode: UnwrapRef<typeof import('@vueuse/core')['useColorMode']>
-    readonly useConfirmDialog: UnwrapRef<typeof import('@vueuse/core')['useConfirmDialog']>
-    readonly useCountdown: UnwrapRef<typeof import('@vueuse/core')['useCountdown']>
-    readonly useCounter: UnwrapRef<typeof import('@vueuse/core')['useCounter']>
-    readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
-    readonly useCssVar: UnwrapRef<typeof import('@vueuse/core')['useCssVar']>
-    readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
-    readonly useCurrentElement: UnwrapRef<typeof import('@vueuse/core')['useCurrentElement']>
-    readonly useCycleList: UnwrapRef<typeof import('@vueuse/core')['useCycleList']>
-    readonly useDark: UnwrapRef<typeof import('@vueuse/core')['useDark']>
-    readonly useDateFormat: UnwrapRef<typeof import('@vueuse/core')['useDateFormat']>
-    readonly useDebounce: UnwrapRef<typeof import('@vueuse/core')['useDebounce']>
-    readonly useDebounceFn: UnwrapRef<typeof import('@vueuse/core')['useDebounceFn']>
-    readonly useDebouncedRefHistory: UnwrapRef<typeof import('@vueuse/core')['useDebouncedRefHistory']>
-    readonly useDeviceMotion: UnwrapRef<typeof import('@vueuse/core')['useDeviceMotion']>
-    readonly useDeviceOrientation: UnwrapRef<typeof import('@vueuse/core')['useDeviceOrientation']>
-    readonly useDevicePixelRatio: UnwrapRef<typeof import('@vueuse/core')['useDevicePixelRatio']>
-    readonly useDevicesList: UnwrapRef<typeof import('@vueuse/core')['useDevicesList']>
-    readonly useDisplayMedia: UnwrapRef<typeof import('@vueuse/core')['useDisplayMedia']>
-    readonly useDocumentVisibility: UnwrapRef<typeof import('@vueuse/core')['useDocumentVisibility']>
-    readonly useDraggable: UnwrapRef<typeof import('@vueuse/core')['useDraggable']>
-    readonly useDropZone: UnwrapRef<typeof import('@vueuse/core')['useDropZone']>
-    readonly useElementBounding: UnwrapRef<typeof import('@vueuse/core')['useElementBounding']>
-    readonly useElementByPoint: UnwrapRef<typeof import('@vueuse/core')['useElementByPoint']>
-    readonly useElementHover: UnwrapRef<typeof import('@vueuse/core')['useElementHover']>
-    readonly useElementSize: UnwrapRef<typeof import('@vueuse/core')['useElementSize']>
-    readonly useElementVisibility: UnwrapRef<typeof import('@vueuse/core')['useElementVisibility']>
-    readonly useEventBus: UnwrapRef<typeof import('@vueuse/core')['useEventBus']>
-    readonly useEventListener: UnwrapRef<typeof import('@vueuse/core')['useEventListener']>
-    readonly useEventSource: UnwrapRef<typeof import('@vueuse/core')['useEventSource']>
-    readonly useEyeDropper: UnwrapRef<typeof import('@vueuse/core')['useEyeDropper']>
-    readonly useFavicon: UnwrapRef<typeof import('@vueuse/core')['useFavicon']>
-    readonly useFetch: UnwrapRef<typeof import('@vueuse/core')['useFetch']>
-    readonly useFileDialog: UnwrapRef<typeof import('@vueuse/core')['useFileDialog']>
-    readonly useFileSystemAccess: UnwrapRef<typeof import('@vueuse/core')['useFileSystemAccess']>
-    readonly useFocus: UnwrapRef<typeof import('@vueuse/core')['useFocus']>
-    readonly useFocusWithin: UnwrapRef<typeof import('@vueuse/core')['useFocusWithin']>
-    readonly useFps: UnwrapRef<typeof import('@vueuse/core')['useFps']>
-    readonly useFullscreen: UnwrapRef<typeof import('@vueuse/core')['useFullscreen']>
-    readonly useGamepad: UnwrapRef<typeof import('@vueuse/core')['useGamepad']>
-    readonly useGeolocation: UnwrapRef<typeof import('@vueuse/core')['useGeolocation']>
-    readonly useId: UnwrapRef<typeof import('vue')['useId']>
-    readonly useIdle: UnwrapRef<typeof import('@vueuse/core')['useIdle']>
-    readonly useImage: UnwrapRef<typeof import('@vueuse/core')['useImage']>
-    readonly useInfiniteScroll: UnwrapRef<typeof import('@vueuse/core')['useInfiniteScroll']>
-    readonly useIntersectionObserver: UnwrapRef<typeof import('@vueuse/core')['useIntersectionObserver']>
-    readonly useInterval: UnwrapRef<typeof import('@vueuse/core')['useInterval']>
-    readonly useIntervalFn: UnwrapRef<typeof import('@vueuse/core')['useIntervalFn']>
-    readonly useKeyModifier: UnwrapRef<typeof import('@vueuse/core')['useKeyModifier']>
-    readonly useLastChanged: UnwrapRef<typeof import('@vueuse/core')['useLastChanged']>
-    readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
-    readonly useLocalStorage: UnwrapRef<typeof import('@vueuse/core')['useLocalStorage']>
-    readonly useMagicKeys: UnwrapRef<typeof import('@vueuse/core')['useMagicKeys']>
-    readonly useManualRefHistory: UnwrapRef<typeof import('@vueuse/core')['useManualRefHistory']>
-    readonly useMediaControls: UnwrapRef<typeof import('@vueuse/core')['useMediaControls']>
-    readonly useMediaQuery: UnwrapRef<typeof import('@vueuse/core')['useMediaQuery']>
-    readonly useMemoize: UnwrapRef<typeof import('@vueuse/core')['useMemoize']>
-    readonly useMemory: UnwrapRef<typeof import('@vueuse/core')['useMemory']>
-    readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
-    readonly useMounted: UnwrapRef<typeof import('@vueuse/core')['useMounted']>
-    readonly useMouse: UnwrapRef<typeof import('@vueuse/core')['useMouse']>
-    readonly useMouseInElement: UnwrapRef<typeof import('@vueuse/core')['useMouseInElement']>
-    readonly useMousePressed: UnwrapRef<typeof import('@vueuse/core')['useMousePressed']>
-    readonly useMutationObserver: UnwrapRef<typeof import('@vueuse/core')['useMutationObserver']>
-    readonly useNavigatorLanguage: UnwrapRef<typeof import('@vueuse/core')['useNavigatorLanguage']>
-    readonly useNetwork: UnwrapRef<typeof import('@vueuse/core')['useNetwork']>
-    readonly useNow: UnwrapRef<typeof import('@vueuse/core')['useNow']>
-    readonly useObjectUrl: UnwrapRef<typeof import('@vueuse/core')['useObjectUrl']>
-    readonly useOffsetPagination: UnwrapRef<typeof import('@vueuse/core')['useOffsetPagination']>
-    readonly useOnline: UnwrapRef<typeof import('@vueuse/core')['useOnline']>
-    readonly usePageLeave: UnwrapRef<typeof import('@vueuse/core')['usePageLeave']>
-    readonly useParallax: UnwrapRef<typeof import('@vueuse/core')['useParallax']>
-    readonly useParentElement: UnwrapRef<typeof import('@vueuse/core')['useParentElement']>
-    readonly usePerformanceObserver: UnwrapRef<typeof import('@vueuse/core')['usePerformanceObserver']>
-    readonly usePermission: UnwrapRef<typeof import('@vueuse/core')['usePermission']>
-    readonly usePointer: UnwrapRef<typeof import('@vueuse/core')['usePointer']>
-    readonly usePointerLock: UnwrapRef<typeof import('@vueuse/core')['usePointerLock']>
-    readonly usePointerSwipe: UnwrapRef<typeof import('@vueuse/core')['usePointerSwipe']>
-    readonly usePreferredColorScheme: UnwrapRef<typeof import('@vueuse/core')['usePreferredColorScheme']>
-    readonly usePreferredContrast: UnwrapRef<typeof import('@vueuse/core')['usePreferredContrast']>
-    readonly usePreferredDark: UnwrapRef<typeof import('@vueuse/core')['usePreferredDark']>
-    readonly usePreferredLanguages: UnwrapRef<typeof import('@vueuse/core')['usePreferredLanguages']>
-    readonly usePreferredReducedMotion: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedMotion']>
-    readonly usePreferredReducedTransparency: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedTransparency']>
-    readonly usePrevious: UnwrapRef<typeof import('@vueuse/core')['usePrevious']>
-    readonly useRafFn: UnwrapRef<typeof import('@vueuse/core')['useRafFn']>
-    readonly useRefHistory: UnwrapRef<typeof import('@vueuse/core')['useRefHistory']>
-    readonly useResizeObserver: UnwrapRef<typeof import('@vueuse/core')['useResizeObserver']>
-    readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
-    readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
-    readonly useSSRWidth: UnwrapRef<typeof import('@vueuse/core')['useSSRWidth']>
-    readonly useScreenOrientation: UnwrapRef<typeof import('@vueuse/core')['useScreenOrientation']>
-    readonly useScreenSafeArea: UnwrapRef<typeof import('@vueuse/core')['useScreenSafeArea']>
-    readonly useScriptTag: UnwrapRef<typeof import('@vueuse/core')['useScriptTag']>
-    readonly useScroll: UnwrapRef<typeof import('@vueuse/core')['useScroll']>
-    readonly useScrollLock: UnwrapRef<typeof import('@vueuse/core')['useScrollLock']>
-    readonly useSessionStorage: UnwrapRef<typeof import('@vueuse/core')['useSessionStorage']>
-    readonly useShare: UnwrapRef<typeof import('@vueuse/core')['useShare']>
-    readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
-    readonly useSorted: UnwrapRef<typeof import('@vueuse/core')['useSorted']>
-    readonly useSpeechRecognition: UnwrapRef<typeof import('@vueuse/core')['useSpeechRecognition']>
-    readonly useSpeechSynthesis: UnwrapRef<typeof import('@vueuse/core')['useSpeechSynthesis']>
-    readonly useStepper: UnwrapRef<typeof import('@vueuse/core')['useStepper']>
-    readonly useStorage: UnwrapRef<typeof import('@vueuse/core')['useStorage']>
-    readonly useStorageAsync: UnwrapRef<typeof import('@vueuse/core')['useStorageAsync']>
-    readonly useStyleTag: UnwrapRef<typeof import('@vueuse/core')['useStyleTag']>
-    readonly useSupported: UnwrapRef<typeof import('@vueuse/core')['useSupported']>
-    readonly useSwipe: UnwrapRef<typeof import('@vueuse/core')['useSwipe']>
-    readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
-    readonly useTemplateRefsList: UnwrapRef<typeof import('@vueuse/core')['useTemplateRefsList']>
-    readonly useTextDirection: UnwrapRef<typeof import('@vueuse/core')['useTextDirection']>
-    readonly useTextSelection: UnwrapRef<typeof import('@vueuse/core')['useTextSelection']>
-    readonly useTextareaAutosize: UnwrapRef<typeof import('@vueuse/core')['useTextareaAutosize']>
-    readonly useThrottle: UnwrapRef<typeof import('@vueuse/core')['useThrottle']>
-    readonly useThrottleFn: UnwrapRef<typeof import('@vueuse/core')['useThrottleFn']>
-    readonly useThrottledRefHistory: UnwrapRef<typeof import('@vueuse/core')['useThrottledRefHistory']>
-    readonly useTimeAgo: UnwrapRef<typeof import('@vueuse/core')['useTimeAgo']>
-    readonly useTimeout: UnwrapRef<typeof import('@vueuse/core')['useTimeout']>
-    readonly useTimeoutFn: UnwrapRef<typeof import('@vueuse/core')['useTimeoutFn']>
-    readonly useTimeoutPoll: UnwrapRef<typeof import('@vueuse/core')['useTimeoutPoll']>
-    readonly useTimestamp: UnwrapRef<typeof import('@vueuse/core')['useTimestamp']>
-    readonly useTitle: UnwrapRef<typeof import('@vueuse/core')['useTitle']>
-    readonly useToNumber: UnwrapRef<typeof import('@vueuse/core')['useToNumber']>
-    readonly useToString: UnwrapRef<typeof import('@vueuse/core')['useToString']>
-    readonly useToggle: UnwrapRef<typeof import('@vueuse/core')['useToggle']>
-    readonly useTransition: UnwrapRef<typeof import('@vueuse/core')['useTransition']>
-    readonly useUrlSearchParams: UnwrapRef<typeof import('@vueuse/core')['useUrlSearchParams']>
-    readonly useUserMedia: UnwrapRef<typeof import('@vueuse/core')['useUserMedia']>
-    readonly useVModel: UnwrapRef<typeof import('@vueuse/core')['useVModel']>
-    readonly useVModels: UnwrapRef<typeof import('@vueuse/core')['useVModels']>
-    readonly useVibrate: UnwrapRef<typeof import('@vueuse/core')['useVibrate']>
-    readonly useVirtualList: UnwrapRef<typeof import('@vueuse/core')['useVirtualList']>
-    readonly useWakeLock: UnwrapRef<typeof import('@vueuse/core')['useWakeLock']>
-    readonly useWebNotification: UnwrapRef<typeof import('@vueuse/core')['useWebNotification']>
-    readonly useWebSocket: UnwrapRef<typeof import('@vueuse/core')['useWebSocket']>
-    readonly useWebWorker: UnwrapRef<typeof import('@vueuse/core')['useWebWorker']>
-    readonly useWebWorkerFn: UnwrapRef<typeof import('@vueuse/core')['useWebWorkerFn']>
-    readonly useWindowFocus: UnwrapRef<typeof import('@vueuse/core')['useWindowFocus']>
-    readonly useWindowScroll: UnwrapRef<typeof import('@vueuse/core')['useWindowScroll']>
-    readonly useWindowSize: UnwrapRef<typeof import('@vueuse/core')['useWindowSize']>
-    readonly watch: UnwrapRef<typeof import('vue')['watch']>
-    readonly watchArray: UnwrapRef<typeof import('@vueuse/core')['watchArray']>
-    readonly watchAtMost: UnwrapRef<typeof import('@vueuse/core')['watchAtMost']>
-    readonly watchDebounced: UnwrapRef<typeof import('@vueuse/core')['watchDebounced']>
-    readonly watchDeep: UnwrapRef<typeof import('@vueuse/core')['watchDeep']>
-    readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
-    readonly watchIgnorable: UnwrapRef<typeof import('@vueuse/core')['watchIgnorable']>
-    readonly watchImmediate: UnwrapRef<typeof import('@vueuse/core')['watchImmediate']>
-    readonly watchOnce: UnwrapRef<typeof import('@vueuse/core')['watchOnce']>
-    readonly watchPausable: UnwrapRef<typeof import('@vueuse/core')['watchPausable']>
-    readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
-    readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
-    readonly watchThrottled: UnwrapRef<typeof import('@vueuse/core')['watchThrottled']>
-    readonly watchTriggerable: UnwrapRef<typeof import('@vueuse/core')['watchTriggerable']>
-    readonly watchWithFilter: UnwrapRef<typeof import('@vueuse/core')['watchWithFilter']>
-    readonly whenever: UnwrapRef<typeof import('@vueuse/core')['whenever']>
+    readonly EffectScope: UnwrapRef<(typeof import('vue'))['EffectScope']>
+    readonly ElMessage: UnwrapRef<(typeof import('element-plus/es'))['ElMessage']>
+    readonly acceptHMRUpdate: UnwrapRef<(typeof import('pinia'))['acceptHMRUpdate']>
+    readonly asyncComputed: UnwrapRef<(typeof import('@vueuse/core'))['asyncComputed']>
+    readonly autoResetRef: UnwrapRef<(typeof import('@vueuse/core'))['autoResetRef']>
+    readonly computed: UnwrapRef<(typeof import('vue'))['computed']>
+    readonly computedAsync: UnwrapRef<(typeof import('@vueuse/core'))['computedAsync']>
+    readonly computedEager: UnwrapRef<(typeof import('@vueuse/core'))['computedEager']>
+    readonly computedInject: UnwrapRef<(typeof import('@vueuse/core'))['computedInject']>
+    readonly computedWithControl: UnwrapRef<(typeof import('@vueuse/core'))['computedWithControl']>
+    readonly controlledComputed: UnwrapRef<(typeof import('@vueuse/core'))['controlledComputed']>
+    readonly controlledRef: UnwrapRef<(typeof import('@vueuse/core'))['controlledRef']>
+    readonly createApp: UnwrapRef<(typeof import('vue'))['createApp']>
+    readonly createEventHook: UnwrapRef<(typeof import('@vueuse/core'))['createEventHook']>
+    readonly createGlobalState: UnwrapRef<(typeof import('@vueuse/core'))['createGlobalState']>
+    readonly createInjectionState: UnwrapRef<(typeof import('@vueuse/core'))['createInjectionState']>
+    readonly createPinia: UnwrapRef<(typeof import('pinia'))['createPinia']>
+    readonly createReactiveFn: UnwrapRef<(typeof import('@vueuse/core'))['createReactiveFn']>
+    readonly createRef: UnwrapRef<(typeof import('@vueuse/core'))['createRef']>
+    readonly createReusableTemplate: UnwrapRef<(typeof import('@vueuse/core'))['createReusableTemplate']>
+    readonly createSharedComposable: UnwrapRef<(typeof import('@vueuse/core'))['createSharedComposable']>
+    readonly createTemplatePromise: UnwrapRef<(typeof import('@vueuse/core'))['createTemplatePromise']>
+    readonly createUnrefFn: UnwrapRef<(typeof import('@vueuse/core'))['createUnrefFn']>
+    readonly customRef: UnwrapRef<(typeof import('vue'))['customRef']>
+    readonly debouncedRef: UnwrapRef<(typeof import('@vueuse/core'))['debouncedRef']>
+    readonly debouncedWatch: UnwrapRef<(typeof import('@vueuse/core'))['debouncedWatch']>
+    readonly defineAsyncComponent: UnwrapRef<(typeof import('vue'))['defineAsyncComponent']>
+    readonly defineComponent: UnwrapRef<(typeof import('vue'))['defineComponent']>
+    readonly defineStore: UnwrapRef<(typeof import('pinia'))['defineStore']>
+    readonly eagerComputed: UnwrapRef<(typeof import('@vueuse/core'))['eagerComputed']>
+    readonly effectScope: UnwrapRef<(typeof import('vue'))['effectScope']>
+    readonly extendRef: UnwrapRef<(typeof import('@vueuse/core'))['extendRef']>
+    readonly getActivePinia: UnwrapRef<(typeof import('pinia'))['getActivePinia']>
+    readonly getCurrentInstance: UnwrapRef<(typeof import('vue'))['getCurrentInstance']>
+    readonly getCurrentScope: UnwrapRef<(typeof import('vue'))['getCurrentScope']>
+    readonly h: UnwrapRef<(typeof import('vue'))['h']>
+    readonly ignorableWatch: UnwrapRef<(typeof import('@vueuse/core'))['ignorableWatch']>
+    readonly inject: UnwrapRef<(typeof import('vue'))['inject']>
+    readonly injectLocal: UnwrapRef<(typeof import('@vueuse/core'))['injectLocal']>
+    readonly isDefined: UnwrapRef<(typeof import('@vueuse/core'))['isDefined']>
+    readonly isProxy: UnwrapRef<(typeof import('vue'))['isProxy']>
+    readonly isReactive: UnwrapRef<(typeof import('vue'))['isReactive']>
+    readonly isReadonly: UnwrapRef<(typeof import('vue'))['isReadonly']>
+    readonly isRef: UnwrapRef<(typeof import('vue'))['isRef']>
+    readonly makeDestructurable: UnwrapRef<(typeof import('@vueuse/core'))['makeDestructurable']>
+    readonly mapActions: UnwrapRef<(typeof import('pinia'))['mapActions']>
+    readonly mapGetters: UnwrapRef<(typeof import('pinia'))['mapGetters']>
+    readonly mapState: UnwrapRef<(typeof import('pinia'))['mapState']>
+    readonly mapStores: UnwrapRef<(typeof import('pinia'))['mapStores']>
+    readonly mapWritableState: UnwrapRef<(typeof import('pinia'))['mapWritableState']>
+    readonly markRaw: UnwrapRef<(typeof import('vue'))['markRaw']>
+    readonly nextTick: UnwrapRef<(typeof import('vue'))['nextTick']>
+    readonly onActivated: UnwrapRef<(typeof import('vue'))['onActivated']>
+    readonly onBeforeMount: UnwrapRef<(typeof import('vue'))['onBeforeMount']>
+    readonly onBeforeRouteLeave: UnwrapRef<(typeof import('vue-router'))['onBeforeRouteLeave']>
+    readonly onBeforeRouteUpdate: UnwrapRef<(typeof import('vue-router'))['onBeforeRouteUpdate']>
+    readonly onBeforeUnmount: UnwrapRef<(typeof import('vue'))['onBeforeUnmount']>
+    readonly onBeforeUpdate: UnwrapRef<(typeof import('vue'))['onBeforeUpdate']>
+    readonly onClickOutside: UnwrapRef<(typeof import('@vueuse/core'))['onClickOutside']>
+    readonly onDeactivated: UnwrapRef<(typeof import('vue'))['onDeactivated']>
+    readonly onElementRemoval: UnwrapRef<(typeof import('@vueuse/core'))['onElementRemoval']>
+    readonly onErrorCaptured: UnwrapRef<(typeof import('vue'))['onErrorCaptured']>
+    readonly onKeyStroke: UnwrapRef<(typeof import('@vueuse/core'))['onKeyStroke']>
+    readonly onLongPress: UnwrapRef<(typeof import('@vueuse/core'))['onLongPress']>
+    readonly onMounted: UnwrapRef<(typeof import('vue'))['onMounted']>
+    readonly onRenderTracked: UnwrapRef<(typeof import('vue'))['onRenderTracked']>
+    readonly onRenderTriggered: UnwrapRef<(typeof import('vue'))['onRenderTriggered']>
+    readonly onScopeDispose: UnwrapRef<(typeof import('vue'))['onScopeDispose']>
+    readonly onServerPrefetch: UnwrapRef<(typeof import('vue'))['onServerPrefetch']>
+    readonly onStartTyping: UnwrapRef<(typeof import('@vueuse/core'))['onStartTyping']>
+    readonly onUnmounted: UnwrapRef<(typeof import('vue'))['onUnmounted']>
+    readonly onUpdated: UnwrapRef<(typeof import('vue'))['onUpdated']>
+    readonly onWatcherCleanup: UnwrapRef<(typeof import('vue'))['onWatcherCleanup']>
+    readonly pausableWatch: UnwrapRef<(typeof import('@vueuse/core'))['pausableWatch']>
+    readonly provide: UnwrapRef<(typeof import('vue'))['provide']>
+    readonly provideLocal: UnwrapRef<(typeof import('@vueuse/core'))['provideLocal']>
+    readonly reactify: UnwrapRef<(typeof import('@vueuse/core'))['reactify']>
+    readonly reactifyObject: UnwrapRef<(typeof import('@vueuse/core'))['reactifyObject']>
+    readonly reactive: UnwrapRef<(typeof import('vue'))['reactive']>
+    readonly reactiveComputed: UnwrapRef<(typeof import('@vueuse/core'))['reactiveComputed']>
+    readonly reactiveOmit: UnwrapRef<(typeof import('@vueuse/core'))['reactiveOmit']>
+    readonly reactivePick: UnwrapRef<(typeof import('@vueuse/core'))['reactivePick']>
+    readonly readonly: UnwrapRef<(typeof import('vue'))['readonly']>
+    readonly ref: UnwrapRef<(typeof import('vue'))['ref']>
+    readonly refAutoReset: UnwrapRef<(typeof import('@vueuse/core'))['refAutoReset']>
+    readonly refDebounced: UnwrapRef<(typeof import('@vueuse/core'))['refDebounced']>
+    readonly refDefault: UnwrapRef<(typeof import('@vueuse/core'))['refDefault']>
+    readonly refThrottled: UnwrapRef<(typeof import('@vueuse/core'))['refThrottled']>
+    readonly refWithControl: UnwrapRef<(typeof import('@vueuse/core'))['refWithControl']>
+    readonly resolveComponent: UnwrapRef<(typeof import('vue'))['resolveComponent']>
+    readonly resolveRef: UnwrapRef<(typeof import('@vueuse/core'))['resolveRef']>
+    readonly resolveUnref: UnwrapRef<(typeof import('@vueuse/core'))['resolveUnref']>
+    readonly setActivePinia: UnwrapRef<(typeof import('pinia'))['setActivePinia']>
+    readonly setMapStoreSuffix: UnwrapRef<(typeof import('pinia'))['setMapStoreSuffix']>
+    readonly shallowReactive: UnwrapRef<(typeof import('vue'))['shallowReactive']>
+    readonly shallowReadonly: UnwrapRef<(typeof import('vue'))['shallowReadonly']>
+    readonly shallowRef: UnwrapRef<(typeof import('vue'))['shallowRef']>
+    readonly storeToRefs: UnwrapRef<(typeof import('pinia'))['storeToRefs']>
+    readonly syncRef: UnwrapRef<(typeof import('@vueuse/core'))['syncRef']>
+    readonly syncRefs: UnwrapRef<(typeof import('@vueuse/core'))['syncRefs']>
+    readonly templateRef: UnwrapRef<(typeof import('@vueuse/core'))['templateRef']>
+    readonly throttledRef: UnwrapRef<(typeof import('@vueuse/core'))['throttledRef']>
+    readonly throttledWatch: UnwrapRef<(typeof import('@vueuse/core'))['throttledWatch']>
+    readonly toRaw: UnwrapRef<(typeof import('vue'))['toRaw']>
+    readonly toReactive: UnwrapRef<(typeof import('@vueuse/core'))['toReactive']>
+    readonly toRef: UnwrapRef<(typeof import('vue'))['toRef']>
+    readonly toRefs: UnwrapRef<(typeof import('vue'))['toRefs']>
+    readonly toValue: UnwrapRef<(typeof import('vue'))['toValue']>
+    readonly triggerRef: UnwrapRef<(typeof import('vue'))['triggerRef']>
+    readonly tryOnBeforeMount: UnwrapRef<(typeof import('@vueuse/core'))['tryOnBeforeMount']>
+    readonly tryOnBeforeUnmount: UnwrapRef<(typeof import('@vueuse/core'))['tryOnBeforeUnmount']>
+    readonly tryOnMounted: UnwrapRef<(typeof import('@vueuse/core'))['tryOnMounted']>
+    readonly tryOnScopeDispose: UnwrapRef<(typeof import('@vueuse/core'))['tryOnScopeDispose']>
+    readonly tryOnUnmounted: UnwrapRef<(typeof import('@vueuse/core'))['tryOnUnmounted']>
+    readonly unref: UnwrapRef<(typeof import('vue'))['unref']>
+    readonly unrefElement: UnwrapRef<(typeof import('@vueuse/core'))['unrefElement']>
+    readonly until: UnwrapRef<(typeof import('@vueuse/core'))['until']>
+    readonly useActiveElement: UnwrapRef<(typeof import('@vueuse/core'))['useActiveElement']>
+    readonly useAnimate: UnwrapRef<(typeof import('@vueuse/core'))['useAnimate']>
+    readonly useArrayDifference: UnwrapRef<(typeof import('@vueuse/core'))['useArrayDifference']>
+    readonly useArrayEvery: UnwrapRef<(typeof import('@vueuse/core'))['useArrayEvery']>
+    readonly useArrayFilter: UnwrapRef<(typeof import('@vueuse/core'))['useArrayFilter']>
+    readonly useArrayFind: UnwrapRef<(typeof import('@vueuse/core'))['useArrayFind']>
+    readonly useArrayFindIndex: UnwrapRef<(typeof import('@vueuse/core'))['useArrayFindIndex']>
+    readonly useArrayFindLast: UnwrapRef<(typeof import('@vueuse/core'))['useArrayFindLast']>
+    readonly useArrayIncludes: UnwrapRef<(typeof import('@vueuse/core'))['useArrayIncludes']>
+    readonly useArrayJoin: UnwrapRef<(typeof import('@vueuse/core'))['useArrayJoin']>
+    readonly useArrayMap: UnwrapRef<(typeof import('@vueuse/core'))['useArrayMap']>
+    readonly useArrayReduce: UnwrapRef<(typeof import('@vueuse/core'))['useArrayReduce']>
+    readonly useArraySome: UnwrapRef<(typeof import('@vueuse/core'))['useArraySome']>
+    readonly useArrayUnique: UnwrapRef<(typeof import('@vueuse/core'))['useArrayUnique']>
+    readonly useAsyncQueue: UnwrapRef<(typeof import('@vueuse/core'))['useAsyncQueue']>
+    readonly useAsyncState: UnwrapRef<(typeof import('@vueuse/core'))['useAsyncState']>
+    readonly useAttrs: UnwrapRef<(typeof import('vue'))['useAttrs']>
+    readonly useBase64: UnwrapRef<(typeof import('@vueuse/core'))['useBase64']>
+    readonly useBattery: UnwrapRef<(typeof import('@vueuse/core'))['useBattery']>
+    readonly useBluetooth: UnwrapRef<(typeof import('@vueuse/core'))['useBluetooth']>
+    readonly useBreakpoints: UnwrapRef<(typeof import('@vueuse/core'))['useBreakpoints']>
+    readonly useBroadcastChannel: UnwrapRef<(typeof import('@vueuse/core'))['useBroadcastChannel']>
+    readonly useBrowserLocation: UnwrapRef<(typeof import('@vueuse/core'))['useBrowserLocation']>
+    readonly useCached: UnwrapRef<(typeof import('@vueuse/core'))['useCached']>
+    readonly useClipboard: UnwrapRef<(typeof import('@vueuse/core'))['useClipboard']>
+    readonly useClipboardItems: UnwrapRef<(typeof import('@vueuse/core'))['useClipboardItems']>
+    readonly useCloned: UnwrapRef<(typeof import('@vueuse/core'))['useCloned']>
+    readonly useColorMode: UnwrapRef<(typeof import('@vueuse/core'))['useColorMode']>
+    readonly useConfirmDialog: UnwrapRef<(typeof import('@vueuse/core'))['useConfirmDialog']>
+    readonly useCountdown: UnwrapRef<(typeof import('@vueuse/core'))['useCountdown']>
+    readonly useCounter: UnwrapRef<(typeof import('@vueuse/core'))['useCounter']>
+    readonly useCssModule: UnwrapRef<(typeof import('vue'))['useCssModule']>
+    readonly useCssVar: UnwrapRef<(typeof import('@vueuse/core'))['useCssVar']>
+    readonly useCssVars: UnwrapRef<(typeof import('vue'))['useCssVars']>
+    readonly useCurrentElement: UnwrapRef<(typeof import('@vueuse/core'))['useCurrentElement']>
+    readonly useCycleList: UnwrapRef<(typeof import('@vueuse/core'))['useCycleList']>
+    readonly useDark: UnwrapRef<(typeof import('@vueuse/core'))['useDark']>
+    readonly useDateFormat: UnwrapRef<(typeof import('@vueuse/core'))['useDateFormat']>
+    readonly useDebounce: UnwrapRef<(typeof import('@vueuse/core'))['useDebounce']>
+    readonly useDebounceFn: UnwrapRef<(typeof import('@vueuse/core'))['useDebounceFn']>
+    readonly useDebouncedRefHistory: UnwrapRef<(typeof import('@vueuse/core'))['useDebouncedRefHistory']>
+    readonly useDeviceMotion: UnwrapRef<(typeof import('@vueuse/core'))['useDeviceMotion']>
+    readonly useDeviceOrientation: UnwrapRef<(typeof import('@vueuse/core'))['useDeviceOrientation']>
+    readonly useDevicePixelRatio: UnwrapRef<(typeof import('@vueuse/core'))['useDevicePixelRatio']>
+    readonly useDevicesList: UnwrapRef<(typeof import('@vueuse/core'))['useDevicesList']>
+    readonly useDisplayMedia: UnwrapRef<(typeof import('@vueuse/core'))['useDisplayMedia']>
+    readonly useDocumentVisibility: UnwrapRef<(typeof import('@vueuse/core'))['useDocumentVisibility']>
+    readonly useDraggable: UnwrapRef<(typeof import('@vueuse/core'))['useDraggable']>
+    readonly useDropZone: UnwrapRef<(typeof import('@vueuse/core'))['useDropZone']>
+    readonly useElementBounding: UnwrapRef<(typeof import('@vueuse/core'))['useElementBounding']>
+    readonly useElementByPoint: UnwrapRef<(typeof import('@vueuse/core'))['useElementByPoint']>
+    readonly useElementHover: UnwrapRef<(typeof import('@vueuse/core'))['useElementHover']>
+    readonly useElementSize: UnwrapRef<(typeof import('@vueuse/core'))['useElementSize']>
+    readonly useElementVisibility: UnwrapRef<(typeof import('@vueuse/core'))['useElementVisibility']>
+    readonly useEventBus: UnwrapRef<(typeof import('@vueuse/core'))['useEventBus']>
+    readonly useEventListener: UnwrapRef<(typeof import('@vueuse/core'))['useEventListener']>
+    readonly useEventSource: UnwrapRef<(typeof import('@vueuse/core'))['useEventSource']>
+    readonly useEyeDropper: UnwrapRef<(typeof import('@vueuse/core'))['useEyeDropper']>
+    readonly useFavicon: UnwrapRef<(typeof import('@vueuse/core'))['useFavicon']>
+    readonly useFetch: UnwrapRef<(typeof import('@vueuse/core'))['useFetch']>
+    readonly useFileDialog: UnwrapRef<(typeof import('@vueuse/core'))['useFileDialog']>
+    readonly useFileSystemAccess: UnwrapRef<(typeof import('@vueuse/core'))['useFileSystemAccess']>
+    readonly useFocus: UnwrapRef<(typeof import('@vueuse/core'))['useFocus']>
+    readonly useFocusWithin: UnwrapRef<(typeof import('@vueuse/core'))['useFocusWithin']>
+    readonly useFps: UnwrapRef<(typeof import('@vueuse/core'))['useFps']>
+    readonly useFullscreen: UnwrapRef<(typeof import('@vueuse/core'))['useFullscreen']>
+    readonly useGamepad: UnwrapRef<(typeof import('@vueuse/core'))['useGamepad']>
+    readonly useGeolocation: UnwrapRef<(typeof import('@vueuse/core'))['useGeolocation']>
+    readonly useId: UnwrapRef<(typeof import('vue'))['useId']>
+    readonly useIdle: UnwrapRef<(typeof import('@vueuse/core'))['useIdle']>
+    readonly useImage: UnwrapRef<(typeof import('@vueuse/core'))['useImage']>
+    readonly useInfiniteScroll: UnwrapRef<(typeof import('@vueuse/core'))['useInfiniteScroll']>
+    readonly useIntersectionObserver: UnwrapRef<(typeof import('@vueuse/core'))['useIntersectionObserver']>
+    readonly useInterval: UnwrapRef<(typeof import('@vueuse/core'))['useInterval']>
+    readonly useIntervalFn: UnwrapRef<(typeof import('@vueuse/core'))['useIntervalFn']>
+    readonly useKeyModifier: UnwrapRef<(typeof import('@vueuse/core'))['useKeyModifier']>
+    readonly useLastChanged: UnwrapRef<(typeof import('@vueuse/core'))['useLastChanged']>
+    readonly useLink: UnwrapRef<(typeof import('vue-router'))['useLink']>
+    readonly useLocalStorage: UnwrapRef<(typeof import('@vueuse/core'))['useLocalStorage']>
+    readonly useMagicKeys: UnwrapRef<(typeof import('@vueuse/core'))['useMagicKeys']>
+    readonly useManualRefHistory: UnwrapRef<(typeof import('@vueuse/core'))['useManualRefHistory']>
+    readonly useMediaControls: UnwrapRef<(typeof import('@vueuse/core'))['useMediaControls']>
+    readonly useMediaQuery: UnwrapRef<(typeof import('@vueuse/core'))['useMediaQuery']>
+    readonly useMemoize: UnwrapRef<(typeof import('@vueuse/core'))['useMemoize']>
+    readonly useMemory: UnwrapRef<(typeof import('@vueuse/core'))['useMemory']>
+    readonly useModel: UnwrapRef<(typeof import('vue'))['useModel']>
+    readonly useMounted: UnwrapRef<(typeof import('@vueuse/core'))['useMounted']>
+    readonly useMouse: UnwrapRef<(typeof import('@vueuse/core'))['useMouse']>
+    readonly useMouseInElement: UnwrapRef<(typeof import('@vueuse/core'))['useMouseInElement']>
+    readonly useMousePressed: UnwrapRef<(typeof import('@vueuse/core'))['useMousePressed']>
+    readonly useMutationObserver: UnwrapRef<(typeof import('@vueuse/core'))['useMutationObserver']>
+    readonly useNavigatorLanguage: UnwrapRef<(typeof import('@vueuse/core'))['useNavigatorLanguage']>
+    readonly useNetwork: UnwrapRef<(typeof import('@vueuse/core'))['useNetwork']>
+    readonly useNow: UnwrapRef<(typeof import('@vueuse/core'))['useNow']>
+    readonly useObjectUrl: UnwrapRef<(typeof import('@vueuse/core'))['useObjectUrl']>
+    readonly useOffsetPagination: UnwrapRef<(typeof import('@vueuse/core'))['useOffsetPagination']>
+    readonly useOnline: UnwrapRef<(typeof import('@vueuse/core'))['useOnline']>
+    readonly usePageLeave: UnwrapRef<(typeof import('@vueuse/core'))['usePageLeave']>
+    readonly useParallax: UnwrapRef<(typeof import('@vueuse/core'))['useParallax']>
+    readonly useParentElement: UnwrapRef<(typeof import('@vueuse/core'))['useParentElement']>
+    readonly usePerformanceObserver: UnwrapRef<(typeof import('@vueuse/core'))['usePerformanceObserver']>
+    readonly usePermission: UnwrapRef<(typeof import('@vueuse/core'))['usePermission']>
+    readonly usePointer: UnwrapRef<(typeof import('@vueuse/core'))['usePointer']>
+    readonly usePointerLock: UnwrapRef<(typeof import('@vueuse/core'))['usePointerLock']>
+    readonly usePointerSwipe: UnwrapRef<(typeof import('@vueuse/core'))['usePointerSwipe']>
+    readonly usePreferredColorScheme: UnwrapRef<(typeof import('@vueuse/core'))['usePreferredColorScheme']>
+    readonly usePreferredContrast: UnwrapRef<(typeof import('@vueuse/core'))['usePreferredContrast']>
+    readonly usePreferredDark: UnwrapRef<(typeof import('@vueuse/core'))['usePreferredDark']>
+    readonly usePreferredLanguages: UnwrapRef<(typeof import('@vueuse/core'))['usePreferredLanguages']>
+    readonly usePreferredReducedMotion: UnwrapRef<(typeof import('@vueuse/core'))['usePreferredReducedMotion']>
+    readonly usePreferredReducedTransparency: UnwrapRef<(typeof import('@vueuse/core'))['usePreferredReducedTransparency']>
+    readonly usePrevious: UnwrapRef<(typeof import('@vueuse/core'))['usePrevious']>
+    readonly useRafFn: UnwrapRef<(typeof import('@vueuse/core'))['useRafFn']>
+    readonly useRefHistory: UnwrapRef<(typeof import('@vueuse/core'))['useRefHistory']>
+    readonly useResizeObserver: UnwrapRef<(typeof import('@vueuse/core'))['useResizeObserver']>
+    readonly useRoute: UnwrapRef<(typeof import('vue-router'))['useRoute']>
+    readonly useRouter: UnwrapRef<(typeof import('vue-router'))['useRouter']>
+    readonly useSSRWidth: UnwrapRef<(typeof import('@vueuse/core'))['useSSRWidth']>
+    readonly useScreenOrientation: UnwrapRef<(typeof import('@vueuse/core'))['useScreenOrientation']>
+    readonly useScreenSafeArea: UnwrapRef<(typeof import('@vueuse/core'))['useScreenSafeArea']>
+    readonly useScriptTag: UnwrapRef<(typeof import('@vueuse/core'))['useScriptTag']>
+    readonly useScroll: UnwrapRef<(typeof import('@vueuse/core'))['useScroll']>
+    readonly useScrollLock: UnwrapRef<(typeof import('@vueuse/core'))['useScrollLock']>
+    readonly useSessionStorage: UnwrapRef<(typeof import('@vueuse/core'))['useSessionStorage']>
+    readonly useShare: UnwrapRef<(typeof import('@vueuse/core'))['useShare']>
+    readonly useSlots: UnwrapRef<(typeof import('vue'))['useSlots']>
+    readonly useSorted: UnwrapRef<(typeof import('@vueuse/core'))['useSorted']>
+    readonly useSpeechRecognition: UnwrapRef<(typeof import('@vueuse/core'))['useSpeechRecognition']>
+    readonly useSpeechSynthesis: UnwrapRef<(typeof import('@vueuse/core'))['useSpeechSynthesis']>
+    readonly useStepper: UnwrapRef<(typeof import('@vueuse/core'))['useStepper']>
+    readonly useStorage: UnwrapRef<(typeof import('@vueuse/core'))['useStorage']>
+    readonly useStorageAsync: UnwrapRef<(typeof import('@vueuse/core'))['useStorageAsync']>
+    readonly useStyleTag: UnwrapRef<(typeof import('@vueuse/core'))['useStyleTag']>
+    readonly useSupported: UnwrapRef<(typeof import('@vueuse/core'))['useSupported']>
+    readonly useSwipe: UnwrapRef<(typeof import('@vueuse/core'))['useSwipe']>
+    readonly useTemplateRef: UnwrapRef<(typeof import('vue'))['useTemplateRef']>
+    readonly useTemplateRefsList: UnwrapRef<(typeof import('@vueuse/core'))['useTemplateRefsList']>
+    readonly useTextDirection: UnwrapRef<(typeof import('@vueuse/core'))['useTextDirection']>
+    readonly useTextSelection: UnwrapRef<(typeof import('@vueuse/core'))['useTextSelection']>
+    readonly useTextareaAutosize: UnwrapRef<(typeof import('@vueuse/core'))['useTextareaAutosize']>
+    readonly useThrottle: UnwrapRef<(typeof import('@vueuse/core'))['useThrottle']>
+    readonly useThrottleFn: UnwrapRef<(typeof import('@vueuse/core'))['useThrottleFn']>
+    readonly useThrottledRefHistory: UnwrapRef<(typeof import('@vueuse/core'))['useThrottledRefHistory']>
+    readonly useTimeAgo: UnwrapRef<(typeof import('@vueuse/core'))['useTimeAgo']>
+    readonly useTimeout: UnwrapRef<(typeof import('@vueuse/core'))['useTimeout']>
+    readonly useTimeoutFn: UnwrapRef<(typeof import('@vueuse/core'))['useTimeoutFn']>
+    readonly useTimeoutPoll: UnwrapRef<(typeof import('@vueuse/core'))['useTimeoutPoll']>
+    readonly useTimestamp: UnwrapRef<(typeof import('@vueuse/core'))['useTimestamp']>
+    readonly useTitle: UnwrapRef<(typeof import('@vueuse/core'))['useTitle']>
+    readonly useToNumber: UnwrapRef<(typeof import('@vueuse/core'))['useToNumber']>
+    readonly useToString: UnwrapRef<(typeof import('@vueuse/core'))['useToString']>
+    readonly useToggle: UnwrapRef<(typeof import('@vueuse/core'))['useToggle']>
+    readonly useTransition: UnwrapRef<(typeof import('@vueuse/core'))['useTransition']>
+    readonly useUrlSearchParams: UnwrapRef<(typeof import('@vueuse/core'))['useUrlSearchParams']>
+    readonly useUserMedia: UnwrapRef<(typeof import('@vueuse/core'))['useUserMedia']>
+    readonly useVModel: UnwrapRef<(typeof import('@vueuse/core'))['useVModel']>
+    readonly useVModels: UnwrapRef<(typeof import('@vueuse/core'))['useVModels']>
+    readonly useVibrate: UnwrapRef<(typeof import('@vueuse/core'))['useVibrate']>
+    readonly useVirtualList: UnwrapRef<(typeof import('@vueuse/core'))['useVirtualList']>
+    readonly useWakeLock: UnwrapRef<(typeof import('@vueuse/core'))['useWakeLock']>
+    readonly useWebNotification: UnwrapRef<(typeof import('@vueuse/core'))['useWebNotification']>
+    readonly useWebSocket: UnwrapRef<(typeof import('@vueuse/core'))['useWebSocket']>
+    readonly useWebWorker: UnwrapRef<(typeof import('@vueuse/core'))['useWebWorker']>
+    readonly useWebWorkerFn: UnwrapRef<(typeof import('@vueuse/core'))['useWebWorkerFn']>
+    readonly useWindowFocus: UnwrapRef<(typeof import('@vueuse/core'))['useWindowFocus']>
+    readonly useWindowScroll: UnwrapRef<(typeof import('@vueuse/core'))['useWindowScroll']>
+    readonly useWindowSize: UnwrapRef<(typeof import('@vueuse/core'))['useWindowSize']>
+    readonly watch: UnwrapRef<(typeof import('vue'))['watch']>
+    readonly watchArray: UnwrapRef<(typeof import('@vueuse/core'))['watchArray']>
+    readonly watchAtMost: UnwrapRef<(typeof import('@vueuse/core'))['watchAtMost']>
+    readonly watchDebounced: UnwrapRef<(typeof import('@vueuse/core'))['watchDebounced']>
+    readonly watchDeep: UnwrapRef<(typeof import('@vueuse/core'))['watchDeep']>
+    readonly watchEffect: UnwrapRef<(typeof import('vue'))['watchEffect']>
+    readonly watchIgnorable: UnwrapRef<(typeof import('@vueuse/core'))['watchIgnorable']>
+    readonly watchImmediate: UnwrapRef<(typeof import('@vueuse/core'))['watchImmediate']>
+    readonly watchOnce: UnwrapRef<(typeof import('@vueuse/core'))['watchOnce']>
+    readonly watchPausable: UnwrapRef<(typeof import('@vueuse/core'))['watchPausable']>
+    readonly watchPostEffect: UnwrapRef<(typeof import('vue'))['watchPostEffect']>
+    readonly watchSyncEffect: UnwrapRef<(typeof import('vue'))['watchSyncEffect']>
+    readonly watchThrottled: UnwrapRef<(typeof import('@vueuse/core'))['watchThrottled']>
+    readonly watchTriggerable: UnwrapRef<(typeof import('@vueuse/core'))['watchTriggerable']>
+    readonly watchWithFilter: UnwrapRef<(typeof import('@vueuse/core'))['watchWithFilter']>
+    readonly whenever: UnwrapRef<(typeof import('@vueuse/core'))['whenever']>
   }
-}
+}

+ 23 - 5
src/views/system/dict/index.vue

@@ -14,12 +14,14 @@
         <!-- 表格 header 按钮 -->
         <template #tableHeader="scope">
           <el-button type="primary" icon="CirclePlus" @click="openDrawer('新增')"> 新增 </el-button>
-          <el-button type="danger" icon="Delete" plain :disabled="!scope.isSelected"> 批量删除 </el-button>
+          <el-button type="danger" icon="Delete" plain :disabled="!scope.isSelected" @click="batchDelete(scope.selectedListIds)">
+            批量删除
+          </el-button>
         </template>
 
         <template #operation="{ row }">
           <el-button type="primary" link icon="EditPen" @click="openDrawer('编辑', row)"> 编辑 </el-button>
-          <el-button v-if="row.id !== 1" type="primary" link icon="Delete"> 删除 </el-button>
+          <el-button v-if="row.isLock !== '1'" type="primary" link icon="Delete" @click="deleteRow(row)"> 删除 </el-button>
         </template>
       </ProTable>
     </div>
@@ -33,7 +35,8 @@ import DictDrawer from './components/DictDrawer.vue'
 import TreeFilter from '@/components/TreeFilter/index.vue'
 import { ColumnProps, ProTableInstance, SearchProps } from '@/components/ProTable/interface'
 import { OrgFormBo } from '@/api/interface/system/org'
-import { useDictOptions } from '@/hooks'
+import { useDictOptions, useHandleData } from '@/hooks'
+import { DictVO } from '@/api/interface/system/dict'
 const initParam = reactive({ dictId: '', parentId: '' })
 
 const selectTreeId = ref<string>('')
@@ -56,7 +59,7 @@ const refreshTree = () => {
 
 // 表格配置项
 const columns: ColumnProps<RoleInfo>[] = [
-  { type: 'selection', width: 60 },
+  { type: 'selection', width: 60, selectable: row => row.isLock !== '1' },
   { prop: 'dictLabel', label: '字典标签' },
   { prop: 'dictValue', label: '字典值' },
   {
@@ -65,7 +68,7 @@ const columns: ColumnProps<RoleInfo>[] = [
     tag: true,
     enum: useDictOptions('COMMON_STATUS'),
     width: 80,
-    fieldNames: { label: 'dictLabel', value: 'status', tagType: 'callbackShowStyle' }
+    fieldNames: { label: 'dictLabel', value: 'dictValue', tagType: 'callbackShowStyle' }
   },
   { prop: 'orderNum', label: '排序' },
   { prop: 'remark', label: '备注' },
@@ -80,6 +83,21 @@ const searchColumns: SearchProps[] = [{ prop: 'dictLabel', label: '字典标签'
 // 获取table列表
 const getTableList = (params: RoleQuery) => DictApi.page(params)
 
+// 单行删除
+const deleteRow = async (row: DictVO) => {
+  await useHandleData(DictApi.delete, [row.dictId], `删除【${row.dictLabel}】字典`)
+  proTableRef.value?.getTableList()
+  refreshTree()
+}
+
+// 批量删除信息
+const batchDelete = async (ids: (string | number)[]) => {
+  await useHandleData(DictApi.delete, ids, '删除所选用户信息')
+  proTableRef.value?.clearSelection()
+  proTableRef.value?.getTableList()
+  refreshTree()
+}
+
 // 打开 drawer(新增、查看、编辑)
 const drawerRef = ref<InstanceType<typeof DictDrawer> | null>(null)
 const openDrawer = (title: string, row: Partial<OrgFormBo> = {}) => {

+ 2 - 1
vite.config.ts

@@ -76,7 +76,8 @@ export default defineConfig(({ mode, command }: ConfigEnv): UserConfig => {
         'sortablejs',
         'element-plus/es/components/dropdown/style/css',
         'element-plus/es/components/dropdown-menu/style/css',
-        'element-plus/es/components/dropdown-item/style/css'
+        'element-plus/es/components/dropdown-item/style/css',
+        'element-plus/es/components/message-box/style/css'
       ]
     }
   }