import { State } from 'dua/types'; import { Image } from '@/common/types/global'; import { QueryData } from '@/common/types/query'; export enum Status { STOP = 0, // 暂停 ONGOING = 1, // 进行中 INIT = 2, // 未运行,未开始 EXPIRED = 3, // 已过期,或者已失效 ALL = 4, // 全部 IS_DELETE = 5, // 已删除 } export const StatusList = [ { status: Status.ALL, name: '全部', }, { status: Status.STOP, name: '已暂停', }, { status: Status.EXPIRED, name: '已过期', }, { status: Status.INIT, name: '未开始', }, { status: Status.ONGOING, name: '进行中', // }, { // status: Status.IS_DELETE, // name: '已删除' }, ]; export const StatusMap = { [Status.ALL]: '全部', [Status.STOP]: '已暂停', [Status.EXPIRED]: '已过期', [Status.INIT]: '未开始', [Status.ONGOING]: '进行中', // [Status.IS_DELETE]: '已删除' }; export interface MonitorTaskMeta { id?: number; name?: string; } // 人员库 export interface MonitorLibs { id?: number; name?: string; depict?: string; persons?: Image[]; personTotal?: number; // 更新人 operator?: string; updateTime?: number; // 人员库类型 1 重点人员库 monitorType?: number; // 关联布控任务 monitorTask?: MonitorTaskMeta[]; // 关联布控数量 monitorTaskNum?: number; } export type MonitorLibsState = State; export interface PersonsLibs { id?: string; name?: string; idCard?: string; // 1 男 2 女 gender?: number; // 描述 depict?: string; phone?: string; images?: any[]; } export interface VehicleLibs { id?: string; name?: string; idCard?: string; // 1 男 2 女 gender?: number; // 描述 depict?: string; phone?: string; images?: any[]; } export interface NewQueryData extends QueryData { monitorLibType?: 1 | 2; } export type PersonsLibsState = State; export type VehicleLibsState = State; export const AlarmList = [ { value: 'appAlarm', label: 'APP 提醒' }, { value: 'smsAlarm', label: '短信提醒' }, { value: 'phoneAlarm', label: '电话提醒' }, ]; export const NodeType = { AREA: 'area', DEFENCE: 'defence', CHILD_DEFENCE: 'child_defence', }; export interface BaseInfo { id?: string; name?: string; type?: keyof typeof NodeType; parentIds?: string[]; createdTime?: number; updatedTime?: number; [key: string]: any; } export enum TransferType { devices = 'device', vehicle = 'vehicle', person = 'person', org = 'org', } export interface TransferData { oldSpaceIds: string[]; spaceIds: string[]; ids: string[]; type: TransferType; } export type DefenceAreaState = State; export interface RegionLocation { x: number; y: number; } export interface oAlarmPlanItem { // 布控计划 0-->自动 1-->自定义 iCycleMode?: number; // 自定义开始时间 iCycleStartTm?: number; // 自定义结束时间 iCycleEndTm?: number; aTimePeriod?: { isDays?: 1 | 2 | 3 | 4 | 5 | 6 | 7; timeArray?: { iAlarmSTm?: number; iAlarmETm?: number; }[]; }[]; } export interface oAlarmAudioItem { iEnable?: number; // mp3列表信息中id iAudioIndex?: number; sAudioUrl?: string; // 告警次数 iAudioCycleCnt?: number; ossKey?: string; // 声音名称 name?: string; timeArray?: timeArrayItem[]; } export interface oAlarmLightItem { // 是否启用 1->启用 0->禁用 默认0 iEnable?: number; // 同告警音 iSameAudioTime?: number; // 闪烁时常指定时间 iLightLastTime?: number; // 亮度 iLightBright?: number; iLightFlicker?: number; } export interface timeArrayItem { iAlarmSTm: string; iAlarmETm: string; } export interface oAlarmOutItem { // 是否启用 1->启用 0->禁用 默认0 iAlarmOutEnable?: number; iAlarmOutIndex?: number; // [1 - 100]输出时常 iAlarmOutLastTm?: number; // 输出设备1--投影灯,0--其他(默认) iAlarmOutType?: 1 | 0; // 每天最多定义八个时间段 timeArray?: timeArrayItem[]; } export interface Rule { // 启用 1->启用 0->禁用 默认0 iIndex?: number; iEnable?: 1 | 0; sName?: string; // 规则有效点数 iRegionPointNum?: number; sRuleId?: string; // 规则点 aRegion?: RegionLocation[]; // imgWidth?: number; imgHeight?: number; // 按位表示 人--->4, 车---2, 非---1,支持多选,按位表示 iAlarmTarget?: number; // 告警间隔时间 100-3600 默认300 iIntervalTime?: number; oAlarmPlan?: oAlarmPlanItem; // 告警音 oAlarmAudio?: oAlarmAudioItem; oAlarmLight?: oAlarmLightItem; oAlarmOut?: oAlarmOutItem; // app提醒(默认开启) appAlarm?: boolean; // 短信提醒 smsAlarm?: boolean; // 电话提醒 phoneAlarm?: boolean; // 接受人ID列表 acceptAlarmUserIds?: string[]; acceptAlarmUserName?: { realName: string; mobile: string }[]; // 人员离岗需额外添加字段 alarmType: number; //持续时间 iLastTime: number; // 接收人数 iPeopleCnt: number; } export interface RuleItem { id: number; sn?: string; name?: string; cid?: string; // 区域状态 status?: 0 | 1; deviceType?: number; aRuleArray?: Rule[]; [key: string]: any; } export type RuleState = State; export interface AlarmVoice { id: number; name?: string; ossKey?: string; url?: string; isUserLabel?: boolean; iAudioIndex?: number; } export type AreaMonitorRuleState = State; // 新的 智能应用 人员离岗 区域入侵 消防通道占用 // 区域model export type AreaInvasionState = State; //blockFireExits export type BlockFireExitsState = State; //personnelLeave export type PersonnelLeaveState = State; // export type StaffAggregationState = State; // rule model export type AreaInvasionRuleState = State; //blockFireExits export type BlockFireExitsRuleState = State; //personnelLeave export type PersonnelLeaveRuleState = State; export type StaffAggregationRuleState = State; // 多级预警 // 通知条件 export enum Conditions { // 设置未恢复 DEVICE_NOT_RECOVERY = 'deviceNotRecovery', // 预警未处理 EVENT_NOT_ON_PROCESS = 'eventNotOnProcess', // 预警开始 DEVICE_ALARM_CREATE = 'deviceAlarmCreate', } // 通知对象 export enum Ranges { // 设备联系人 DEVICE_CONTACTS = 'deviceContacts', // 项目负责人 MERCHANT_CONTACTS = 'merchantContacts', // 自定义联系人 CUSTOM_CONTACTS = 'customContacts', // 分组联系人 GROUP_CONTACTS = 'groupContacts', // 设备同房屋的人员 ROOM_CONTACTS = 'roomContacts', // 房间负责人 // ROOM_PRINCIPAL_CONTACTS = 'roomPrincipalContacts', // 楼层负责人 // FLOOR_PRINCIPAL_CONTACTS = 'floorPrincipalContacts', // 建筑负责人 BUILDING_PRINCIPAL_CONTACTS = 'buildingPrincipalContacts', // 区域负责人 AREA_PRINCIPAL_CONTACTS = 'areaPrincipalContacts', // 在岗值勤人员 ON_DUTY_OFFICER_CONTACTS = 'onDutyOfficerContacts', // 全部值勤人员 ALL_OFFICER_CONTACTS = 'allOfficerContacts', //部署人员 DEPLOY_CONTACTS = 'deployContacts', // 事件联系人 EVENT_CONTACTS = 'eventContacts', // 任务联系人 TASK_CONTACTS = 'taskContacts', // 角色联系人 MERCHANT_ROLE_CONTACTS = 'merchantRoleContacts', } // 通知方式 export enum NoticeTypes { SMS = 'sms', VOICE = 'voice', APP = 'app', } // 模版类型 export enum TemplatePackageType { SENSE_ALARM = 'senseAlarm', MAINTENANCE = 'maintenance', TASK_ALARM = 'taskAlarm', } export type MultiLevel = 1 | 2 | 3 | 4; export interface Contact { name?: string; contacts?: string; position?: string; } export interface NoticeRuleItem { // 通知时间 0 立刻 其他值分钟为单位 time?: number; // 通知条件 conditions?: Conditions[]; // 通知对象 ranges?: Ranges[]; // 通知方式 noticeTypes?: NoticeTypes[]; // 是否关联上级 cascade?: boolean; //自定义 contacts?: Contact[]; // 预警级别 multilevel?: MultiLevel; // 是否强制通知 isForceNotice?: boolean; // 模版类型 templatePackageType?: TemplatePackageType; } export interface NewNoticeRuleItem extends NoticeRuleItem { contactsSwitch?: boolean; merchantRoleMetadata?: any[]; } export enum Category { SMOKE = 'SMOKE', ELEC_FIRE = 'ELEC_FIRE', AIR_BREAKER = 'AIR_BREAKER', GAS = 'GAS', WATER = 'WATER', SECURITY = 'SECURITY', // 维保 MAINTENANCE = 'MAINTENANCE', FIRE_HOST = 'FIRE_HOST', // 森林防火 CAMERA_CAPTURE_GB_THERMAL_CAMERA = 'CAMERA_CAPTURE_GB_THERMAL_CAMERA', // 业主上报 JIN_SHU_JU = 'JINSHUJU', ENVIRONMENT = 'ENVIRONMENT', METEOROLOGY = 'METEOROLOGY', CAMERA_TASK_VEHICLE = 'CAMERA_TASK_VEHICLE', // 电动车识别 CAMERA_CAPTURE_E_MOTORCYCLE = 'CAMERA_CAPTURE_E_MOTORCYCLE', } export interface EventRuleItem { eventType?: string; eventName?: string; pause?: boolean; groupType?: string; groupName?: string; category?: Category; categoryName?: string; noticeTypes?: NoticeTypes[]; disablePause?: boolean; disableNoticeTypes?: string[]; } export interface AirSwitchControlState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface ElectricalFireWarningState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface SmokeFireWarningState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface FireWaterPerceptionState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface GasFirePerceptionState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface SecurityProtectionState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } // 维保 export interface DeviceMaintenanceState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface FireHostPerceptionState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface ForestFirePreventionState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface ProprietorReportingState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface NoticeConfigState { eventRules?: EventRuleItem[] | []; } export interface EnvironmentalPerceptionState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; } export interface EnvironmentalMonitoringState { noticeRules?: NoticeRuleItem[] | []; eventRules?: EventRuleItem[] | []; }