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 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, FIRST_LEVEL_DOING: 10, FIRST_LEVEL: 21, FIRST_LEVEL_REJECTED: 31, SECOND_LEVEL_DOING: 20, SECOND_LEVEL: 22, SECOND_LEVEL_REJECTED: 32, FINAL_LEVEL_DOING: 30, WORKFLOW_DONE: 99, // 占位值 REVIEW_ASSET: 1000, DRAFT_CONTENT: 1001, AVAILABLE: 1002 } export const WorkflowStateInfo = { [State.SUBMITTED]: '提交', [State.FIRST_LEVEL_DOING]: '一审', [State.FIRST_LEVEL]: '一审通过', [State.FIRST_LEVEL_REJECTED]: '一审驳回', [State.SECOND_LEVEL_DOING]: '二审', [State.SECOND_LEVEL]: '二审通过', [State.SECOND_LEVEL_REJECTED]: '二审驳回', [State.FINAL_LEVEL_DOING]: '三审', [State.RESOLVED]: '三审通过', [State.REJECTED]: '三审驳回', [State.WORKFLOW_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 EventFreq = { ONCE: 'ONCE', WEEKLY: 'WEEKLY' } 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 Transmitter = { IS_ASYNC: 1, SUPPORT_DETECTION: 1 << 1, SUPPORT_CONTENT_PROTECTION: 1 << 2, RECOVERY_CARD: 1 << 3 } 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.REVIEW_RELEASE_FIRST, Access.REVIEW_RELEASE_SECOND, Access.REVIEW_RELEASE_FINAL ], [Role.ADMIN]: [ Access.MANAGE_TENANT ], [Role.SUPERVISOR]: [ Access.MANAGE_GROUP ], [Role.STAFF]: [ Access.MANAGE_CALENDAR ], [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: '紧急预警' } 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 }