diff --git a/src/components/Application/index.ts b/src/components/Application/index.ts
index eafb28032..1dfffc12c 100644
--- a/src/components/Application/index.ts
+++ b/src/components/Application/index.ts
@@ -1,15 +1,14 @@
-import { withInstall } from '../util';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
import AppLogo from './src/AppLogo.vue';
+import AppProvider from './src/AppProvider.vue';
+import { withInstall } from '../util';
export const AppLocalePicker = createAsyncComponent(() => import('./src/AppLocalePicker.vue'));
-export const AppProvider = createAsyncComponent(() => import('./src/AppProvider.vue'));
export const AppSearch = createAsyncComponent(() => import('./src/search/AppSearch.vue'), {
loading: true,
});
-// export const AppLogo = createAsyncComponent(() => import('./src/AppLogo.vue'));
-
-withInstall(AppLocalePicker, AppLogo, AppProvider, AppSearch);
export { useAppProviderContext } from './src/useAppContext';
-export { AppLogo };
+export { AppLogo, AppProvider };
+
+withInstall(AppLogo, AppProvider);
diff --git a/src/components/Authority/index.ts b/src/components/Authority/index.ts
index ecdf807fd..9c2412e2a 100644
--- a/src/components/Authority/index.ts
+++ b/src/components/Authority/index.ts
@@ -1,6 +1,7 @@
import { withInstall } from '../util';
-import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
-export const Authority = createAsyncComponent(() => import('./src/index.vue'));
+import Authority from './src/index.vue';
withInstall(Authority);
+
+export { Authority };
diff --git a/src/components/Basic/index.ts b/src/components/Basic/index.ts
index d6cf643cc..73fed7451 100644
--- a/src/components/Basic/index.ts
+++ b/src/components/Basic/index.ts
@@ -1,8 +1,5 @@
-import { withInstall } from '../util';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export const BasicArrow = createAsyncComponent(() => import('./src/BasicArrow.vue'));
export const BasicHelp = createAsyncComponent(() => import('./src/BasicHelp.vue'));
export const BasicTitle = createAsyncComponent(() => import('./src/BasicTitle.vue'));
-
-withInstall(BasicArrow, BasicHelp, BasicTitle);
diff --git a/src/components/Button/index.ts b/src/components/Button/index.ts
index 57223d393..86ceebd25 100644
--- a/src/components/Button/index.ts
+++ b/src/components/Button/index.ts
@@ -2,5 +2,4 @@ import Button from './src/BasicButton.vue';
import { withInstall } from '../util';
withInstall(Button);
-
export { Button };
diff --git a/src/components/ClickOutSide/index.ts b/src/components/ClickOutSide/index.ts
index e84e8e00e..cb88bc529 100644
--- a/src/components/ClickOutSide/index.ts
+++ b/src/components/ClickOutSide/index.ts
@@ -1,6 +1,7 @@
import { withInstall } from '../util';
-import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
-export const ClickOutSide = createAsyncComponent(() => import('./src/index.vue'));
+import ClickOutSide from './src/index.vue';
withInstall(ClickOutSide);
+
+export { ClickOutSide };
diff --git a/src/components/Container/index.ts b/src/components/Container/index.ts
index eb708d497..ab3bd2e2a 100644
--- a/src/components/Container/index.ts
+++ b/src/components/Container/index.ts
@@ -1,14 +1,8 @@
import { withInstall } from '../util';
import CollapseContainer from './src/collapse/CollapseContainer.vue';
-import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
-export const ScrollContainer = createAsyncComponent(() => import('./src/ScrollContainer.vue'));
-
-// export const CollapseContainer = createAsyncComponent(
-// () => import('./src/collapse/CollapseContainer.vue')
-// );
-export const LazyContainer = createAsyncComponent(() => import('./src/LazyContainer.vue'));
+import ScrollContainer from './src/ScrollContainer.vue';
+import LazyContainer from './src/LazyContainer.vue';
withInstall(ScrollContainer, CollapseContainer, LazyContainer);
-
-export { CollapseContainer };
+export { CollapseContainer, ScrollContainer, LazyContainer };
export * from './src/types';
diff --git a/src/components/CountTo/index.ts b/src/components/CountTo/index.ts
index 24f9e6477..6ecc8aa64 100644
--- a/src/components/CountTo/index.ts
+++ b/src/components/CountTo/index.ts
@@ -1,8 +1,4 @@
// Transform vue-count-to to support vue3 version
-import { withInstall } from '../util';
-
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export const CountTo = createAsyncComponent(() => import('./src/index.vue'));
-
-withInstall(CountTo);
diff --git a/src/components/Description/index.ts b/src/components/Description/index.ts
index 9d60038ec..359dcbb27 100644
--- a/src/components/Description/index.ts
+++ b/src/components/Description/index.ts
@@ -1,9 +1,5 @@
-import { withInstall } from '../util';
-
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export const Description = createAsyncComponent(() => import('./src/index'));
-withInstall(Description);
-
export * from './src/types';
export { useDescription } from './src/useDescription';
diff --git a/src/components/Drawer/index.ts b/src/components/Drawer/index.ts
index 28ab6eb91..e8e1052a8 100644
--- a/src/components/Drawer/index.ts
+++ b/src/components/Drawer/index.ts
@@ -1,8 +1,9 @@
import { withInstall } from '../util';
-import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
-export const BasicDrawer = createAsyncComponent(() => import('./src/BasicDrawer'));
+import BasicDrawer from './src/BasicDrawer';
-withInstall(BasicDrawer);
+export { BasicDrawer };
export * from './src/types';
export { useDrawer, useDrawerInner } from './src/useDrawer';
+
+withInstall(BasicDrawer);
diff --git a/src/components/Dropdown/index.ts b/src/components/Dropdown/index.ts
index d229a7f81..0e71f027d 100644
--- a/src/components/Dropdown/index.ts
+++ b/src/components/Dropdown/index.ts
@@ -1,6 +1,6 @@
import { withInstall } from '../util';
-import Dropdown from './src/Dropdown';
+import Dropdown from './src/Dropdown.vue';
withInstall(Dropdown);
export * from './src/types';
diff --git a/src/components/Dropdown/src/Dropdown.tsx b/src/components/Dropdown/src/Dropdown.tsx
deleted file mode 100644
index f00c59dff..000000000
--- a/src/components/Dropdown/src/Dropdown.tsx
+++ /dev/null
@@ -1,57 +0,0 @@
-import type { Trigger } from './types';
-
-import { defineComponent, computed, unref } from 'vue';
-import { Dropdown, Menu } from 'ant-design-vue';
-import Icon from '/@/components/Icon/index';
-
-import { basicDropdownProps } from './props';
-import { getSlot } from '/@/utils/helper/tsxHelper';
-
-export default defineComponent({
- name: 'Dropdown',
- props: basicDropdownProps,
- emits: ['menuEvent'],
- setup(props, { slots, emit, attrs }) {
- const getMenuList = computed(() => props.dropMenuList);
-
- function handleClickMenu({ key }: any) {
- const menu = unref(getMenuList).find((item) => `${item.event}` === `${key}`);
- emit('menuEvent', menu);
- }
-
- function renderMenus() {
- return (
-
- );
- }
-
- return () => (
-
- {{
- default: () => {getSlot(slots)},
- overlay: () => renderMenus(),
- }}
-
- );
- },
-});
diff --git a/src/components/Dropdown/src/Dropdown.vue b/src/components/Dropdown/src/Dropdown.vue
new file mode 100644
index 000000000..3b26a8fbf
--- /dev/null
+++ b/src/components/Dropdown/src/Dropdown.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+ {{ item.text }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Dropdown/src/props.ts b/src/components/Dropdown/src/props.ts
deleted file mode 100644
index cd298ef95..000000000
--- a/src/components/Dropdown/src/props.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import type { PropType } from 'vue';
-import type { DropMenu } from './types';
-
-export const dropdownProps = {
- /**
- * the trigger mode which executes the drop-down action
- * @default ['hover']
- * @type string[]
- */
- trigger: {
- type: [Array] as PropType,
- default: () => {
- return ['contextmenu'];
- },
- },
-};
-export const basicDropdownProps = Object.assign({}, dropdownProps, {
- dropMenuList: {
- type: Array as PropType,
- default: () => [],
- },
- selectedKeys: {
- type: Array as PropType,
- default: () => [],
- },
-});
diff --git a/src/components/Dropdown/src/types.ts b/src/components/Dropdown/src/types.ts
index 11139fa63..0dbf70aa4 100644
--- a/src/components/Dropdown/src/types.ts
+++ b/src/components/Dropdown/src/types.ts
@@ -7,4 +7,4 @@ export interface DropMenu {
divider?: boolean;
}
-export type Trigger = 'click' | 'hover' | 'contextMenu';
+// export type Trigger = 'click' | 'hover' | 'contextMenu';
diff --git a/src/components/Excel/index.ts b/src/components/Excel/index.ts
index ac36ff860..e5977f0d7 100644
--- a/src/components/Excel/index.ts
+++ b/src/components/Excel/index.ts
@@ -1,12 +1,8 @@
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
-import { withInstall } from '../util';
-
export const ImpExcel = createAsyncComponent(() => import('./src/ImportExcel.vue'));
export const ExpExcelModel = createAsyncComponent(() => import('./src/ExportExcelModel.vue'));
-withInstall(ImpExcel, ExpExcelModel);
-
export * from './src/types';
export { jsonToSheetXlsx, aoaToSheetXlsx } from './src/Export2Excel';
diff --git a/src/components/Icon/index.less b/src/components/Icon/index.less
deleted file mode 100644
index 9e443e3a4..000000000
--- a/src/components/Icon/index.less
+++ /dev/null
@@ -1,14 +0,0 @@
-@import (reference) '../../design/index.less';
-
-.app-iconify {
- display: inline-block;
- vertical-align: middle;
-}
-
-span.iconify {
- display: block;
- min-width: 1em;
- min-height: 1em;
- background: @iconify-bg-color;
- border-radius: 100%;
-}
diff --git a/src/components/Icon/index.ts b/src/components/Icon/index.ts
new file mode 100644
index 000000000..d7993f05f
--- /dev/null
+++ b/src/components/Icon/index.ts
@@ -0,0 +1,7 @@
+import { withInstall } from '../util';
+import Icon from './src/index.vue';
+
+withInstall(Icon);
+
+export { Icon };
+export default Icon;
diff --git a/src/components/Icon/index.tsx b/src/components/Icon/index.tsx
deleted file mode 100644
index ca2949bd9..000000000
--- a/src/components/Icon/index.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-import './index.less';
-
-import type { PropType } from 'vue';
-import {
- defineComponent,
- ref,
- watch,
- onMounted,
- nextTick,
- unref,
- computed,
- CSSProperties,
-} from 'vue';
-import Iconify from '@purge-icons/generated';
-import { isString } from '/@/utils/is';
-import { propTypes } from '/@/utils/propTypes';
-export default defineComponent({
- name: 'GIcon',
- props: {
- // icon name
- icon: propTypes.string,
- // icon color
- color: propTypes.string,
- // icon size
- size: {
- type: [String, Number] as PropType,
- default: 16,
- },
- prefix: propTypes.string.def(''),
- },
- setup(props, { attrs }) {
- const elRef = ref(null);
-
- const getIconRef = computed(() => {
- const { icon, prefix } = props;
- return `${prefix ? prefix + ':' : ''}${icon}`;
- });
-
- const update = async () => {
- const el = unref(elRef);
- if (el) {
- await nextTick();
- const icon = unref(getIconRef);
-
- const svg = Iconify.renderSVG(icon, {});
-
- if (svg) {
- el.textContent = '';
- el.appendChild(svg);
- } else {
- const span = document.createElement('span');
- span.className = 'iconify';
- span.dataset.icon = icon;
- el.textContent = '';
- el.appendChild(span);
- }
- }
- };
-
- const wrapStyleRef = computed(
- (): CSSProperties => {
- const { size, color } = props;
- let fs = size;
- if (isString(size)) {
- fs = parseInt(size, 10);
- }
- return {
- fontSize: `${fs}px`,
- color,
- display: 'inline-flex',
- };
- }
- );
-
- watch(() => props.icon, update, { flush: 'post' });
-
- onMounted(update);
-
- return () => (
-
- );
- },
-});
diff --git a/src/components/Icon/src/index.vue b/src/components/Icon/src/index.vue
new file mode 100644
index 000000000..f26503a28
--- /dev/null
+++ b/src/components/Icon/src/index.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
diff --git a/src/components/Loading/index.ts b/src/components/Loading/index.ts
index d2b30e9c8..2e65df745 100644
--- a/src/components/Loading/index.ts
+++ b/src/components/Loading/index.ts
@@ -1,9 +1,5 @@
-import './src/indicator';
-import { withInstall } from '../util';
-
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export const Loading = createAsyncComponent(() => import('./src/index.vue'));
-withInstall(Loading);
export { useLoading } from './src/useLoading';
export { createLoading } from './src/createLoading';
diff --git a/src/components/Loading/src/indicator.tsx b/src/components/Loading/src/indicator.tsx
deleted file mode 100644
index f74bc0e65..000000000
--- a/src/components/Loading/src/indicator.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-// If you need to modify the default icon, you can open the comment and modify it here
-
-// import { Spin } from 'ant-design-vue';
-// import { LoadingOutlined } from '@ant-design/icons-vue';
-// Spin.setDefaultIndicator({
-// indicator: () => {
-// return ;
-// },
-// });
diff --git a/src/components/Loading/src/useLoading.ts b/src/components/Loading/src/useLoading.ts
index 10f8e31e6..04d308470 100644
--- a/src/components/Loading/src/useLoading.ts
+++ b/src/components/Loading/src/useLoading.ts
@@ -8,6 +8,10 @@ export interface UseLoadingOptions {
props?: Partial;
}
+interface Fn {
+ (): void;
+}
+
export function useLoading(props: Partial): [Fn, Fn];
export function useLoading(opt: Partial): [Fn, Fn];
diff --git a/src/components/Markdown/index.ts b/src/components/Markdown/index.ts
index 1ad8a7295..1e59bba25 100644
--- a/src/components/Markdown/index.ts
+++ b/src/components/Markdown/index.ts
@@ -1,8 +1,4 @@
-import { withInstall } from '../util';
-
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export const MarkDown = createAsyncComponent(() => import('./src/index.vue'));
-withInstall(MarkDown);
-
export * from './src/types';
diff --git a/src/components/Markdown/src/index.vue b/src/components/Markdown/src/index.vue
index 29af7fef8..21e011344 100644
--- a/src/components/Markdown/src/index.vue
+++ b/src/components/Markdown/src/index.vue
@@ -1,17 +1,8 @@
-
+
+
diff --git a/src/components/Tinymce/index.ts b/src/components/Tinymce/index.ts
index 0a31c55e9..e4633e835 100644
--- a/src/components/Tinymce/index.ts
+++ b/src/components/Tinymce/index.ts
@@ -1,6 +1,2 @@
-import { withInstall } from '../util';
-
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export const Tinymce = createAsyncComponent(() => import('./src/Editor.vue'));
-
-withInstall(Tinymce);
diff --git a/src/components/Tree/index.ts b/src/components/Tree/index.ts
index 9445da6d1..61eb3e895 100644
--- a/src/components/Tree/index.ts
+++ b/src/components/Tree/index.ts
@@ -1,9 +1,6 @@
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
-import { withInstall } from '../util';
export const BasicTree = createAsyncComponent(() => import('./src/BasicTree'));
-withInstall(BasicTree);
-
export type { ContextMenuItem } from '/@/hooks/web/useContextMenu';
export * from './src/types';
diff --git a/src/components/Upload/index.ts b/src/components/Upload/index.ts
index a923c2f24..af9805235 100644
--- a/src/components/Upload/index.ts
+++ b/src/components/Upload/index.ts
@@ -1,6 +1,2 @@
-import { withInstall } from '../util';
-
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export const BasicUpload = createAsyncComponent(() => import('./src/BasicUpload.vue'));
-
-withInstall(BasicUpload);
diff --git a/src/components/Verify/index.ts b/src/components/Verify/index.ts
index c26ffd344..720d40581 100644
--- a/src/components/Verify/index.ts
+++ b/src/components/Verify/index.ts
@@ -1,10 +1,6 @@
-import { withInstall } from '../util';
-
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export const BasicDragVerify = createAsyncComponent(() => import('./src/DragVerify'));
export const RotateDragVerify = createAsyncComponent(() => import('./src/ImgRotate'));
-withInstall(BasicDragVerify, RotateDragVerify);
-
export * from './src/types';
diff --git a/src/components/VirtualScroll/index.ts b/src/components/VirtualScroll/index.ts
index d894c7613..2875a531e 100644
--- a/src/components/VirtualScroll/index.ts
+++ b/src/components/VirtualScroll/index.ts
@@ -1,7 +1,3 @@
-import { withInstall } from '../util';
-
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export const VScroll = createAsyncComponent(() => import('./src/index'));
-
-withInstall(VScroll);
diff --git a/src/layouts/default/header/index.vue b/src/layouts/default/header/index.vue
index dfdbdac22..000ab0a06 100644
--- a/src/layouts/default/header/index.vue
+++ b/src/layouts/default/header/index.vue
@@ -84,6 +84,7 @@
} from './components';
import { useAppInject } from '/@/hooks/web/useAppInject';
import { useDesign } from '/@/hooks/web/useDesign';
+ import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
export default defineComponent({
name: 'LayoutHeader',