| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import type { App } from 'vue'
- 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'
- import {
- PackagesCategoryEnum,
- PackagesType,
- ConfigType,
- FetchComFlagType
- } from '@/packages/index.d'
- const configModules = import.meta.globEager("./components/**/config.vue")
- const indexModules = import.meta.globEager("./components/**/index.vue")
- // * 所有图表
- export let packagesList: PackagesType = {
- [PackagesCategoryEnum.CHARTS]: ChartList,
- [PackagesCategoryEnum.INFORMATION]: InformationList,
- [PackagesCategoryEnum.TABLES]: TableList,
- [PackagesCategoryEnum.DECORATES]: DecorateList
- }
- /**
- * * 获取目标拖拽组件配置信息
- * @param dropData
- */
- export const createComponent = async (dropData: ConfigType) => {
- const { category, key } = dropData
- const chart = await import(`./components/${dropData.package}/${category}/${key}/config.ts`)
- return new chart.default()
- }
- /**
- * * 获取组件
- * @param {string} chartName 名称
- * @param {FetchComFlagType} flag 标识 0为展示组件, 1为配置组件
- */
- const fetchComponent = (chartName: string, flag: FetchComFlagType) => {
- const module = flag === FetchComFlagType.VIEW ? indexModules: configModules
- for (const key in module) {
- const urlSplit = key.split('/')
- if(urlSplit[urlSplit.length -2 ] === chartName) {
- return module[key]
- }
- }
- }
- /**
- * * 获取展示组件
- * @param {ConfigType} dropData 配置项
- */
- export const fetchChartComponent = (dropData: ConfigType) => {
- const { key } = dropData
- return fetchComponent(key, FetchComFlagType.VIEW)?.default
- }
- /**
- * * 获取配置组件
- * @param {ConfigType} dropData 配置项
- */
- export const fetchConfigComponent = (dropData: ConfigType) => {
- const { key } = dropData
- return fetchComponent(key, FetchComFlagType.CONFIG)?.default
- }
|