help.ts 3.56 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';
import DashBoardComponent from '../../components/InstrumentComponent/DashBoardComponent.vue';
import PictureComponent from '../../components/PictureComponent/PictureComponent.vue';
import { transformPictureConfig } from '../../components/PictureComponent/pictureComponent.config';
import { WidgetComponentType } from './visualOptions';
import {
  DashboardComponentLayout,
  instrumentComponent1,
  instrumentComponent2,
  transformDashboardComponentConfig,
} from '../../components/InstrumentComponent/dashBoardComponent.config';
import DigitalDashBoard from '../../components/InstrumentComponent/DigitalDashBoard.vue';
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',
  INSTRUMENT_COMPONENT_1 = 'instrument-component-1',
  INSTRUMENT_COMPONENT_2 = 'instrument-component-2',
  DIGITAL_DASHBOARD_COMPONENT = 'digital-dashboard-component',
  PICTURE_COMPONENT_1 = 'picture-component-1',
}

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

export const frontComponentMap = new Map<WidgetComponentType, 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,
});

frontComponentMap.set(FrontComponent.INSTRUMENT_COMPONENT_1, {
  Component: DashBoardComponent,
  ComponentConfig: {
    chartOption: instrumentComponent1(),
    componentType: FrontComponent.INSTRUMENT_COMPONENT_1,
  } as DashboardComponentLayout,
  transformConfig: transformDashboardComponentConfig,
});

frontComponentMap.set(FrontComponent.INSTRUMENT_COMPONENT_2, {
  Component: DashBoardComponent,
  ComponentConfig: {
    chartOption: instrumentComponent2(),
    componentType: FrontComponent.INSTRUMENT_COMPONENT_2,
  } as DashboardComponentLayout,
  transformConfig: transformDashboardComponentConfig,
});

frontComponentMap.set(FrontComponent.DIGITAL_DASHBOARD_COMPONENT, {
  Component: DigitalDashBoard,
  ComponentConfig: {},
  transformConfig: transformDashboardComponentConfig,
});

frontComponentMap.set(FrontComponent.PICTURE_COMPONENT_1, {
  Component: PictureComponent,
  ComponentConfig: {},
  transformConfig: transformPictureConfig,
});