|
|
|
@ -23,18 +23,20 @@ export let packagesList: PackagesType = {
|
|
|
|
|
// [PackagesCategoryEnum.VCHART]: VChartList,
|
|
|
|
|
[PackagesCategoryEnum.INFORMATIONS]: InformationList,
|
|
|
|
|
// [PackagesCategoryEnum.TABLES]: TableList,
|
|
|
|
|
// [PackagesCategoryEnum.DECORATES]: DecorateList,
|
|
|
|
|
[PackagesCategoryEnum.DECORATES]: DecorateList,
|
|
|
|
|
// [PackagesCategoryEnum.PHOTOS]: PhotoList,
|
|
|
|
|
// [PackagesCategoryEnum.ICONS]: IconList
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 组件缓存, 可以大幅度提升组件加载速度
|
|
|
|
|
const componentCacheMap = new Map<string, any>()
|
|
|
|
|
|
|
|
|
|
const loadConfig = (packageName: string, categoryName: string, keyName: string) => {
|
|
|
|
|
const key = packageName + categoryName + keyName
|
|
|
|
|
if (!componentCacheMap.has(key)) {
|
|
|
|
|
componentCacheMap.set(key, import(`./components/${packageName}/${categoryName}/${keyName}/config.ts`))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return componentCacheMap.get(key)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -44,6 +46,7 @@ const loadConfig = (packageName: string, categoryName: string, keyName: string)
|
|
|
|
|
*/
|
|
|
|
|
export const createComponent = async (targetData: ConfigType) => {
|
|
|
|
|
const { redirectComponent, category, key } = targetData
|
|
|
|
|
|
|
|
|
|
// redirectComponent 是给图片组件库和图标组件库使用的
|
|
|
|
|
if (redirectComponent) {
|
|
|
|
|
const [packageName, categoryName, keyName] = redirectComponent.split('/')
|
|
|
|
|