help.ts 4.79 KB
import { Component } from 'vue';
import TextComponent from '../../components/TextComponent/TextComponent.vue';
import {
  TextComponent1Config,
  TextComponent2Config,
  TextComponent3Config,
  TextComponent4Config,
  TextComponent5Config,
  TextComponentDefaultConfig,
  transformTextComponentConfig,
} from '../../components/TextComponent/config';
import { ComponentInfo, 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,
  Instrument1DefaultConfig,
  Instrument2DefaultConfig,
  instrumentComponent1,
  instrumentComponent2,
  transformDashboardComponentConfig,
} from '../../components/InstrumentComponent/dashBoardComponent.config';
import DigitalDashBoard from '../../components/InstrumentComponent/DigitalDashBoard.vue';
import { DigitalComponentDefaultConfig } from '../../components/InstrumentComponent/digitalDashBoard.config';
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 frontComponentDefaultConfigMap = new Map<
  WidgetComponentType,
  Partial<ComponentInfo>
>();

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,
});

frontComponentDefaultConfigMap.set(FrontComponent.TEXT_COMPONENT_1, TextComponentDefaultConfig);
frontComponentDefaultConfigMap.set(FrontComponent.TEXT_COMPONENT_2, TextComponentDefaultConfig);
frontComponentDefaultConfigMap.set(FrontComponent.TEXT_COMPONENT_3, TextComponentDefaultConfig);
frontComponentDefaultConfigMap.set(FrontComponent.TEXT_COMPONENT_4, TextComponentDefaultConfig);
frontComponentDefaultConfigMap.set(FrontComponent.TEXT_COMPONENT_5, TextComponentDefaultConfig);

frontComponentDefaultConfigMap.set(FrontComponent.INSTRUMENT_COMPONENT_1, Instrument1DefaultConfig);
frontComponentDefaultConfigMap.set(FrontComponent.INSTRUMENT_COMPONENT_2, Instrument2DefaultConfig);

frontComponentDefaultConfigMap.set(
  FrontComponent.DIGITAL_DASHBOARD_COMPONENT,
  DigitalComponentDefaultConfig
);

export const getComponentDefaultConfig = (key: WidgetComponentType) => {
  return frontComponentDefaultConfigMap.get(key) || {};
};