perf: 处理注册时的分组场景

This commit is contained in:
奔跑的面条 2022-08-09 21:06:09 +08:00
parent b0e4383a43
commit 96d8cb0006

View File

@ -3,7 +3,7 @@ import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore
import { ChartEditStoreEnum, ChartEditStorage } from '@/store/modules/chartEditStore/chartEditStore.d' import { ChartEditStoreEnum, ChartEditStorage } from '@/store/modules/chartEditStore/chartEditStore.d'
import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore' import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore'
import { fetchChartComponent, fetchConfigComponent, createComponent } from '@/packages/index' import { fetchChartComponent, fetchConfigComponent, createComponent } from '@/packages/index'
import { CreateComponentType } from '@/packages/index.d' import { CreateComponentType, CreateComponentGroupType, ConfigType } from '@/packages/index.d'
// 请求处理 // 请求处理
export const useSync = () => { export const useSync = () => {
@ -25,15 +25,18 @@ export const useSync = () => {
chartHistoryStore.clearForwardStack() chartHistoryStore.clearForwardStack()
} }
// 列表组件注册 // 列表组件注册
projectData.componentList.forEach(async (e: CreateComponentType) => { projectData.componentList.forEach(async (e: CreateComponentType | CreateComponentGroupType) => {
if (!window['$vue'].component(e.chartConfig.chartKey)) { // 排除分组
if (e.isGroup) return
const target = e as CreateComponentType
if (!window['$vue'].component(target.chartConfig.chartKey)) {
window['$vue'].component( window['$vue'].component(
e.chartConfig.chartKey, target.chartConfig.chartKey,
fetchChartComponent(e.chartConfig) fetchChartComponent(target.chartConfig)
) )
window['$vue'].component( window['$vue'].component(
e.chartConfig.conKey, target.chartConfig.conKey,
fetchConfigComponent(e.chartConfig) fetchConfigComponent(target.chartConfig)
) )
} }
}) })
@ -44,7 +47,7 @@ export const useSync = () => {
for (const comItem of projectData[key]) { for (const comItem of projectData[key]) {
// 补充 class 上的方法 // 补充 class 上的方法
let newComponent: CreateComponentType = await createComponent( let newComponent: CreateComponentType = await createComponent(
comItem.chartConfig comItem.chartConfig as ConfigType
) )
chartEditStore.addComponentList( chartEditStore.addComponentList(
Object.assign(newComponent, {...comItem, id: getUUID()}), Object.assign(newComponent, {...comItem, id: getUUID()}),