42 lines
1.3 KiB
TypeScript
Raw Normal View History

2022-01-19 19:59:11 +08:00
import type { App } from 'vue'
import {
PackagesCategoryEnum,
PackagesType,
ConfigType
} from '@/packages/index.d'
2022-01-25 11:09:32 +08:00
import { ChartList } from '@/packages/components/Charts/index'
import { DecorateList } from '@/packages/components/Decorates/index'
import { InformationList } from '@/packages/components/Informations/index'
import { TableList } from '@/packages/components/Tables/index'
2022-01-14 16:17:14 +08:00
2022-01-25 18:19:44 +08:00
// * 所有图表
2022-01-14 16:17:14 +08:00
let packagesList: PackagesType = {
2022-01-14 22:07:02 +08:00
[PackagesCategoryEnum.CHARTS]: ChartList,
2022-01-15 12:50:00 +08:00
[PackagesCategoryEnum.INFORMATION]: InformationList,
[PackagesCategoryEnum.TABLES]: TableList,
2022-01-19 19:59:11 +08:00
[PackagesCategoryEnum.DECORATES]: DecorateList
2022-01-14 16:17:14 +08:00
}
2022-01-25 18:19:44 +08:00
// * 注册
2022-01-19 19:59:11 +08:00
const packagesInstall = (app: App): void => {
for (const item in packagesList) {
const chartList: ConfigType[] = (packagesList as any)[item]
chartList.forEach((chart: ConfigType) => {
app.component(chart.key, chart.node)
})
}
}
2022-01-25 18:19:44 +08:00
/**
* *
* @param dropData
*/
const createComponent = async (dropData: ConfigType) => {
const { category } = dropData
const key = dropData.key.substring(1)
const chart = await import(`./components/${dropData.package}/${category}/${key}/config.ts`)
return new chart.default()
}
export { packagesList, packagesInstall, createComponent }