const protocol = location.protocol const host = process.env.VUE_APP_GATEWAY || location.host export const GATEWAY = `${protocol}//${host}` export const GATEWAY_WS = `${protocol === 'https:' ? 'wss:' : 'ws:'}//${host}` export const GATEWAY_CAMERA = `${GATEWAY_WS}${process.env.VUE_APP_CAMERA_PROXY}` export const GATEWAY_CAMERA_RECORD = `${GATEWAY_WS}${process.env.VUE_APP_CAMERA_RECORD_PROXY}` export const ONE_DAY = 3600 * 24 * 1000 export const AssetType = { IMAGE: 1, VIDEO: 2, AUDIO: 3, PPT: 4, PDF: 5, DOC: 6, STREAMING_MEDIA: 100 } export const AssetTypeInfo = { [AssetType.IMAGE]: '图片', [AssetType.VIDEO]: '视频', [AssetType.AUDIO]: '音频', [AssetType.PPT]: 'PPT', [AssetType.PDF]: 'PDF', [AssetType.DOC]: 'WORD', [AssetType.STREAMING_MEDIA]: '流媒体' } export const AssetTag = { AD: 1, PUBLICITY: 2, LOCAL_PUBLICITY: 3, SHIM: 4 } export const AssetTagInfo = { [AssetTag.AD]: '广告', [AssetTag.PUBLICITY]: '公益', [AssetTag.LOCAL_PUBLICITY]: '地方宣传', [AssetTag.SHIM]: '垫片' } export const State = { DRAFT: -1, READY: 0, SUBMITTED: 1, RESOLVED: 2, REJECTED: 3, CANCEL: 7, // 占位值 REVIEW_ASSET: 1000, DRAFT_CONTENT: 1001, AVAILABLE: 1002 } export const WorkflowState = { DRAFT: 0, FIRST_LEVEL: 1, SECOND_LEVEL: 2, FINAL_LEVEL: 3, DONE: 4 } export const WorkflowStateInfo = { [WorkflowState.DRAFT]: '初始', [WorkflowState.FIRST_LEVEL]: '一审', [WorkflowState.SECOND_LEVEL]: '二审', [WorkflowState.FINAL_LEVEL]: '三审', [WorkflowState.DONE]: '结束' } export const ScheduleType = { RECUR: 2, COMPLEX: 3 } export const PublishType = { PROGRAM_TO_DEVICE: 1, ASSET_TO_DEVICE: 2, ASSET_TO_PRODUCT_TYPE: 3, PROGRAM_TO_PRODUCT_TYPE: 4 } export const PublishTargetType = { CALENDAR: 1, EVENT: 2 } export const EventPriority = { SHIM: 1, SCHEDULING: 2, INSERTED: 3, AUTO_PROGRAMME: 4, EMBEDDED: 5, EMERGENT: 99 } export const EventPriorityDescription = { [EventPriority.SHIM]: '默认', [EventPriority.SCHEDULING]: '常规', [EventPriority.INSERTED]: '临时', [EventPriority.AUTO_PROGRAMME]: '节目单', [EventPriority.EMBEDDED]: '预埋', [EventPriority.EMERGENT]: '紧急' } export const EventPriorityInfo = { [EventPriority.SHIM]: `${EventPriority.SHIM} ${EventPriorityDescription[EventPriority.SHIM]}`, [EventPriority.SCHEDULING]: `${EventPriority.SCHEDULING} ${EventPriorityDescription[EventPriority.SCHEDULING]}`, [EventPriority.INSERTED]: `${EventPriority.INSERTED} ${EventPriorityDescription[EventPriority.INSERTED]}`, [EventPriority.AUTO_PROGRAMME]: `${EventPriority.AUTO_PROGRAMME} ${EventPriorityDescription[EventPriority.AUTO_PROGRAMME]}`, [EventPriority.EMBEDDED]: `${EventPriority.EMBEDDED} ${EventPriorityDescription[EventPriority.EMBEDDED]}`, [EventPriority.EMERGENT]: `${EventPriority.EMERGENT} ${EventPriorityDescription[EventPriority.EMERGENT]}` } export const EventFrequency = { ONCE: 'ONCE', DAILY: 'DAILY', WEEKLY: 'WEEKLY', MULTI: 'MULTI' } export const EventTarget = { PROGRAM: 1, RECUR: 2, ASSETS: 3 } export const EventTargetInfo = { [EventTarget.PROGRAM]: '节目', [EventTarget.RECUR]: '轮播', [EventTarget.ASSETS]: '素材包' } export const ThirdPartyDevice = { GATEWAY: 0, RECEIVING_CARD: 1, SENDING_CARD: 2, SCREEN: 3, LED_CAMERA: 4, TRAFFIC_CAMERA: 5, PLC: 6, BOX: 7, MULTI_FUNCTION_CARD: 8, SMOKE_SENSOR: 9, TEMPERATURE_SENSOR: 10, LIGHT_SENSOR: 11, FLOODING_SENSOR: 12, TRANSLOCATION_SENSOR: 13 } export const ThirdPartyDeviceInfo = { [ThirdPartyDevice.GATEWAY]: '物联网关', [ThirdPartyDevice.RECEIVING_CARD]: '接收卡', [ThirdPartyDevice.SENDING_CARD]: '发送控制设备', [ThirdPartyDevice.SCREEN]: '屏', [ThirdPartyDevice.LED_CAMERA]: '监控摄像头', [ThirdPartyDevice.TRAFFIC_CAMERA]: '人流摄像头', [ThirdPartyDevice.PLC]: 'PLC', [ThirdPartyDevice.BOX]: '终端设备', [ThirdPartyDevice.MULTI_FUNCTION_CARD]: '多功能卡', [ThirdPartyDevice.SMOKE_SENSOR]: '烟雾传感器', [ThirdPartyDevice.TEMPERATURE_SENSOR]: '温度传感器', [ThirdPartyDevice.LIGHT_SENSOR]: '光照传感器', [ThirdPartyDevice.FLOODING_SENSOR]: '水浸传感器', [ThirdPartyDevice.TRANSLOCATION_SENSOR]: '位移传感器' } export const Camera = { LED: 1, TRAFFIC: 2 } export const CameraToThirdPartyMap = { [Camera.LED]: ThirdPartyDevice.LED_CAMERA, [Camera.TRAFFIC]: ThirdPartyDevice.TRAFFIC_CAMERA } export const ThirdPartyToCameraMap = { [ThirdPartyDevice.LED_CAMERA]: Camera.LED, [ThirdPartyDevice.TRAFFIC_CAMERA]: Camera.TRAFFIC } export const CameraInfo = { [Camera.LED]: ThirdPartyDeviceInfo[CameraToThirdPartyMap[Camera.LED]], [Camera.TRAFFIC]: ThirdPartyDeviceInfo[CameraToThirdPartyMap[Camera.TRAFFIC]] } export const SendingCard = { IS_ASYNC: 1, SUPPORT_DETECTION: 1 << 1, SUPPORT_CONTENT_PROTECTION: 1 << 2, RECOVERY_CARD: 1 << 3 } export const SendingCardFeatures = [ { key: 'IS_ASYNC', label: '异步盒' }, { key: 'SUPPORT_DETECTION', label: '设备监测' }, { key: 'SUPPORT_CONTENT_PROTECTION', label: '内容保护' }, { key: 'RECOVERY_CARD', label: '回采卡' } ] export const ReceivingCard = { TEMPERATURE: 1, VOLTAGE: 1 << 1, MONITOR: 1 << 2 } export const ReceivingCardFeatures = [ { key: 'TEMPERATURE', label: '温度检测' }, { key: 'VOLTAGE', label: '电压检测' }, { key: 'MONITOR', label: '支持检测卡' } ] export const Sensor = { SMOKE: 0, TEMPERATURE: 1, LIGHT: 2, FLOODING: 3, TRANSLOCATION: 4 } export const SensorToThirdPartyMap = { [Sensor.SMOKE]: ThirdPartyDevice.SMOKE_SENSOR, [Sensor.TEMPERATURE]: ThirdPartyDevice.TEMPERATURE_SENSOR, [Sensor.LIGHT]: ThirdPartyDevice.LIGHT_SENSOR, [Sensor.FLOODING]: ThirdPartyDevice.FLOODING_SENSOR, [Sensor.TRANSLOCATION]: ThirdPartyDevice.TRANSLOCATION_SENSOR } export const ThirdPartyToSensorMap = { [ThirdPartyDevice.SMOKE_SENSOR]: Sensor.SMOKE, [ThirdPartyDevice.TEMPERATURE_SENSOR]: Sensor.TEMPERATURE, [ThirdPartyDevice.LIGHT_SENSOR]: Sensor.LIGHT, [ThirdPartyDevice.FLOODING_SENSOR]: Sensor.FLOODING, [ThirdPartyDevice.TRANSLOCATION_SENSOR]: Sensor.TRANSLOCATION } export const SensorInfo = { [Sensor.SMOKE]: ThirdPartyDeviceInfo[SensorToThirdPartyMap[Sensor.SMOKE]], [Sensor.TEMPERATURE]: ThirdPartyDeviceInfo[SensorToThirdPartyMap[Sensor.TEMPERATURE]], [Sensor.LIGHT]: ThirdPartyDeviceInfo[SensorToThirdPartyMap[Sensor.LIGHT]], [Sensor.FLOODING]: ThirdPartyDeviceInfo[SensorToThirdPartyMap[Sensor.FLOODING]], [Sensor.TRANSLOCATION]: ThirdPartyDeviceInfo[SensorToThirdPartyMap[Sensor.TRANSLOCATION]] } export const Role = { SUPER_ADMIN: 'ROLE_SUPER_ADMIN', ADMIN: 'ROLE_ADMIN', SUPERVISOR: 'ROLE_OPERATION_SUPERVISOR', STAFF: 'ROLE_OPERATION_STAFF', FIRST_LEVEL_REVIEWER: 'ROLE_FIRST_LEVEL_REVIEWER', SECOND_LEVEL_REVIEWER: 'ROLE_SECOND_LEVEL_REVIEWER', FINAL_REVIEWER: 'ROLE_FINAL_REVIEWER', VISITOR: '__ROLE_VISITOR__' } export const JUMP_REVIEW = true export const Access = { MANAGE_TENANTS: 'manange-tenants', MANAGE_TENANT: 'manange-tenant', MANAGE_GROUP: 'manage-group', MANAGE_DEVICE: 'manage-device', MANAGE_CALENDAR: 'manage-calendar', VIEW_LOGS: 'view-logs', REVIEW_RELEASE_FIRST: 'review-release-first', REVIEW_RELEASE_SECOND: 'review-release-second', REVIEW_RELEASE_FINAL: 'review-release-final' } export const RoleAccess = { [Role.SUPER_ADMIN]: [ Access.MANAGE_TENANTS, Access.MANAGE_TENANT, Access.MANAGE_GROUP, Access.MANAGE_CALENDAR, Access.MANAGE_DEVICE, Access.REVIEW_RELEASE_FIRST, Access.REVIEW_RELEASE_SECOND, Access.REVIEW_RELEASE_FINAL ], [Role.ADMIN]: [ Access.MANAGE_TENANT, Access.MANAGE_GROUP, Access.MANAGE_CALENDAR, Access.MANAGE_DEVICE ], [Role.SUPERVISOR]: [ Access.MANAGE_GROUP, Access.MANAGE_DEVICE ], [Role.STAFF]: [ Access.MANAGE_CALENDAR, Access.MANAGE_DEVICE ], [Role.FIRST_LEVEL_REVIEWER]: [ Access.REVIEW_RELEASE_FIRST ], [Role.SECOND_LEVEL_REVIEWER]: [ Access.REVIEW_RELEASE_SECOND ], [Role.FINAL_REVIEWER]: [ Access.REVIEW_RELEASE_FINAL ] } export const AlarmLevelInfo = { 0: '提示性预警', 1: '中级预警', 2: '紧急预警', 9999: '自定义' } export const AlarmStrategies = [ { key: 'note', label: '短信', support: true }, { key: 'email', label: '邮件', support: true }, { key: 'wechat', label: '微信', support: __WECHAT__ }, { key: 'wechatApplet', label: '小程序', support: __WECHAT__ } ] export const SupportedAlarmStrategies = AlarmStrategies.filter(({ support }) => support) export const TimeType = { SCREEN: 1, RANGE: 2, POINT: 3 } export const SCREEN_TIME_KEY = 'screen' export const TaskFromType = { FILL: 0, ORDER: 1, ASSET: 2, CONTRACT: 3 } export const TaskFromTypeInfo = { [TaskFromType.FILL]: '填充', [TaskFromType.ORDER]: '订单', [TaskFromType.ASSET]: '素材', [TaskFromType.CONTRACT]: '合同' } export const Dataset = { FILL: 0, COMMON: 1 } export const AppletOrderType = { PACKAGE: 1, SOON: 2, DAILY: 3 } export const AppletOrderKeyMap = { [AppletOrderType.PACKAGE]: 'orders', [AppletOrderType.SOON]: 'directOrders', [AppletOrderType.DAILY]: 'injectOrders' } export const AppletOrderAssetKeyMap = { [AppletOrderType.PACKAGE]: 'assets', [AppletOrderType.SOON]: 'directAssets', [AppletOrderType.DAILY]: 'injectAssets' } export const Quality = { f: { videoWidth: 640, videoHeight: 360, videoBitRate: 36 * 1024, frameRate: 1 }, ff: { videoWidth: 1280, videoHeight: 720, videoBitRate: 100 * 1024, frameRate: 10 }, fff: { videoWidth: 1920, videoHeight: 1080, videoBitRate: 1024 * 1024, frameRate: 20 } } export const Frequency = { DAILY: 0, WEEKLY: 1, ONCE: 2 } export const BoxModels = [ { value: 'U8系列', label: 'U8系列' }, { value: 'TB系列', label: 'TB系列' }, { value: '9210', label: '9210' } ]