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 ( - - {() => ( - <> - {unref(getMenuList).map((item) => { - const { disabled, icon, text, divider, event } = item; - return [ - - {() => ( - <> - {icon && } - {text} - - )} - , - // @ts-ignore - divider && , - ]; - })} - - )} - - ); - } - - 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 @@ + + + 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',