help.ts 1.95 KB
import { Component } from 'vue';
import TextComponent from '../../components/TextComponent/TextComponent.vue';
import {
  TextComponent1Config,
  TextComponent2Config,
  TextComponent3Config,
  TextComponent4Config,
  TextComponent5Config,
  transformTextComponentConfig,
} from '../../components/TextComponent/config';
import { DataComponentRecord, DataSource } from '/@/api/dataBoard/model';
export enum FrontComponent {
  TEXT_COMPONENT_1 = 'text-component-1',
  TEXT_COMPONENT_2 = 'text-component-2',
  TEXT_COMPONENT_3 = 'text-component-3',
  TEXT_COMPONENT_4 = 'text-component-4',
  TEXT_COMPONENT_5 = 'text-component-5',
}

export type FrontComponentType =
  | 'text-component-1'
  | 'text-component-2'
  | 'text-component-3'
  | 'text-component-4'
  | 'text-component-5';

export interface ComponentConfig {
  Component: Component;
  ComponentConfig: Recordable;
  transformConfig: (
    ComponentConfig: Recordable,
    record: DataComponentRecord,
    dataSourceRecord: DataSource
  ) => Recordable;
}

export const frontComponentMap = new Map<FrontComponentType, ComponentConfig>();

frontComponentMap.set(FrontComponent.TEXT_COMPONENT_1, {
  Component: TextComponent,
  ComponentConfig: TextComponent1Config,
  transformConfig: transformTextComponentConfig,
});

frontComponentMap.set(FrontComponent.TEXT_COMPONENT_2, {
  Component: TextComponent,
  ComponentConfig: TextComponent2Config,
  transformConfig: transformTextComponentConfig,
});

frontComponentMap.set(FrontComponent.TEXT_COMPONENT_3, {
  Component: TextComponent,
  ComponentConfig: TextComponent3Config,
  transformConfig: transformTextComponentConfig,
});

frontComponentMap.set(FrontComponent.TEXT_COMPONENT_4, {
  Component: TextComponent,
  ComponentConfig: TextComponent4Config,
  transformConfig: transformTextComponentConfig,
});

frontComponentMap.set(FrontComponent.TEXT_COMPONENT_5, {
  Component: TextComponent,
  ComponentConfig: TextComponent5Config,
  transformConfig: transformTextComponentConfig,
});