config.ts 1.5 KB
import { PublicConfigClass } from '@/packages/public'
import { CreateComponentType } from '@/packages/index.d'
import { SingleCameraConfig } from './index'
import cloneDeep from 'lodash/cloneDeep'

export enum sourceTypeEnum {
  CUSTOM = 'custom',
  PLATFORM = 'platform'
}

export enum sourceTypeNameEnum {
  CUSTOM = '自定义',
  PLATFORM = '平台获取'
}

export enum VideoPlayerTypeEnum {
  m3u8 = 'application/x-mpegURL',
  mp4 = 'video/mp4',
  webm = 'video/webm',
  flv = 'video/x-flv'
}

export interface videoListInterface {
  name: string
  accessMode: number
  id: string
  videoUrl: string
  label: string
  value: string
  sn: string
  channelId: string
  deviceId: string
  customUrl: string
  params: GBT28181Params
}

export interface GBT28181Params {
  channelNo: string
  deviceId: string
  deviceName: string
}

export enum AccessMode {
  ManuallyEnter = 0, //手动输入
  Streaming = 1, //流媒体
  GBT28181 = 2 //GBT28181
}

export interface Dataset {
  accessMode: AccessMode
  channelId?: string
  customUrl?: string
  deviceId?: string
  id?: string
  value?: string
}

export const option = {
  dataset: {} as Dataset,
  customVideoUrl: '', //用于手动输入视频流地址
  autoplay: true,
  poster: '',
  sourceType: sourceTypeEnum.CUSTOM,
  organization: '',
  videoId: null
}

export default class Config extends PublicConfigClass implements CreateComponentType {
  public key = SingleCameraConfig.key
  public chartConfig = cloneDeep(SingleCameraConfig)
  public option = cloneDeep(option)
}