goview_vue/src/utils/componets.ts

44 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-01-16 22:17:34 +08:00
import { defineAsyncComponent, AsyncComponentLoader } from 'vue'
2022-02-06 21:35:38 +08:00
import { AsyncLoading, AsyncSkeletonLoading } from '@/components/LoadingComponent'
2022-03-06 21:26:31 +08:00
import { ConfigType } from '@/packages/index.d'
import { fetchChartComponent } from '@/packages/index'
/**
* * package
* @param {ConfigType} dropData
*/
export const componentPackageInstall = async (dropData: Omit<ConfigType, "node">) => {
const key = dropData.key.substring(1)
console.log(window['$vue']);
if (!window['$vue'].component(key)) {
const chart = await fetchChartComponent(dropData)
window['$vue'].component(key, chart)
}
}
/**
* *
*/
export const componentInstall = <T> (key:string, node: T) => {
2022-03-06 21:26:31 +08:00
if(!window['$vue'].component(key) && node) {
window['$vue'].component(key, node)
}
}
2022-01-16 22:17:34 +08:00
/**
* *
* @param loader
* @returns
*/
export const loadAsyncComponent = (loader: AsyncComponentLoader<any>) =>
defineAsyncComponent({
loader,
loadingComponent: AsyncLoading,
delay: 20,
})
2022-02-06 21:35:38 +08:00
export const loadSkeletonAsyncComponent = (loader: AsyncComponentLoader<any>) =>
defineAsyncComponent({
loader,
loadingComponent: AsyncSkeletonLoading,
delay: 20,
})