index.ts 1.39 KB
import { EChartsOption } from 'echarts';
import { Component } from 'vue';
import { WidgetComponentType } from '../../detail/config/visualOptions';
import {
  Instrument1DefaultConfig,
  Instrument2DefaultConfig,
  instrumentComponent1,
  instrumentComponent2,
  InstrumentComponentType,
} from './dashBoardComponent.config';
import DashBoardComponent from './DashBoardComponent.vue';
import DigitalDashBoard from './DigitalDashBoard.vue';
import { buildUUID } from '/@/utils/uuid';

export interface DashboardComponentLayout {
  chartOption: EChartsOption;
  componentType: InstrumentComponentType;
}

interface InstrumentComponentConfig {
  id: WidgetComponentType;
  layout: DashboardComponentLayout;
  component: Component;
  value: Recordable;
}

export const instrumentComponentConfig: InstrumentComponentConfig[] = [
  {
    id: 'instrument-component-1',
    layout: {
      chartOption: instrumentComponent1(Instrument1DefaultConfig),
      componentType: 'instrument-component-1',
    },
    component: DashBoardComponent,
    value: { id: buildUUID() },
  },
  {
    id: 'instrument-component-2',
    layout: {
      chartOption: instrumentComponent2(Instrument2DefaultConfig),
      componentType: 'instrument-component-2',
    },
    component: DashBoardComponent,
    value: { id: buildUUID() },
  },
  {
    id: 'digital-dashboard-component',
    layout: {},
    component: DigitalDashBoard,
    value: {},
  },
];