From f699666f96e28fd26aea15460e3af92f4c0d8f98 Mon Sep 17 00:00:00 2001 From: joylink_zhaoerwei Date: Thu, 14 Nov 2024 18:15:56 +0800 Subject: [PATCH] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit e932e7d0aef401b46e7dd36af9a4534b4ddf8a97 Author: joylink_zhaoerwei Date: Thu Nov 14 18:14:13 2024 +0800 增加是否播报语音 commit 05896cb241ad7b1586de08f4a8cef6db0dfe7bd7 Author: joylink_zhaoerwei Date: Thu Nov 14 17:51:50 2024 +0800 添加应急处置流程表 commit debaf975106abda5941aece154a59efff3568668 Author: joylink_fanyuhong <18706759286@163.com> Date: Thu Nov 14 15:59:51 2024 +0800 菜单调整 commit 99b7cba025ee624d50cb830d3a8e5b75d11d802c Author: joylink_fanyuhong <18706759286@163.com> Date: Thu Nov 14 14:50:39 2024 +0800 卡斯柯=》同方 commit 41e59960ee94254d9920ddee4c9d0237888f5085 Author: joylink_fanyuhong <18706759286@163.com> Date: Thu Nov 14 14:46:13 2024 +0800 公里表显示调整 commit 0da7654efa244ea9d5bf9ce41f90711257d8bdf8 Author: joylink_zhaoerwei Date: Thu Nov 14 11:14:19 2024 +0800 增加5个故障 --- src/components/ConnectInfoDialog.vue | 2 +- src/components/SysMenu.vue | 42 ++- src/components/alarm/alarmInfoEnum.ts | 15 + src/components/alarm/commonAlarm.vue | 1 + src/components/alarm/setAlarmText.vue | 2 + src/graphics/station/Station.ts | 28 +- src/layouts/MainLayout.vue | 16 +- src/pages/DecisionInfoManage.vue | 5 + src/pages/EmergencyResponseManage.vue | 456 ++++++++++++++++++++++++++ src/protos/alertConst.ts | 7 +- src/router/routes.ts | 5 + src/stores/line-net-store.ts | 8 +- xian-ncc-da-message | 2 +- 13 files changed, 561 insertions(+), 28 deletions(-) create mode 100644 src/pages/EmergencyResponseManage.vue diff --git a/src/components/ConnectInfoDialog.vue b/src/components/ConnectInfoDialog.vue index 2b0750e..e276b21 100644 --- a/src/components/ConnectInfoDialog.vue +++ b/src/components/ConnectInfoDialog.vue @@ -3,7 +3,7 @@ ref="dialogRef" @show="onDialogShow" seamless - title="与卡斯柯连接状态信息" + title="与同方连接状态信息" :width="300" :height="0" > diff --git a/src/components/SysMenu.vue b/src/components/SysMenu.vue index 57eabd0..166dc6b 100644 --- a/src/components/SysMenu.vue +++ b/src/components/SysMenu.vue @@ -45,12 +45,6 @@ import { reactive } from 'vue'; const userStore = useUserStore(); const list = reactive([ - { - show: true, - path: getMonitorPath(userStore.roles).monitorPath, - label: '监控', - icon: 'computer', - }, { show: userStore.defaultRole == 'ADMIN', path: '', @@ -72,11 +66,6 @@ const list = reactive([ label: '线路信息管理', icon: 'format_list_numbered', }, - { - path: '/dataManage/decisionInfo', - label: '决策信息管理', - icon: 'format_align_center', - }, { path: '/dataManage/faultQuery', label: '故障查询管理', @@ -106,6 +95,7 @@ const list = reactive([ icon: 'manage_accounts', }, { + show: userStore.defaultRole == 'ADMIN', path: '/sysManage/role', label: '权限管理', icon: 'nature_people', @@ -127,5 +117,35 @@ const list = reactive([ }, ], }, + { + show: true, + path: getMonitorPath(userStore.roles).monitorPath, + label: '监控管理', + icon: 'computer', + }, + { + show: true, + path: '/sysManage/alarmRecord', + label: '报警管理', + icon: 'alarm_on', + }, + { + show: true, + path: '', + label: '辅助决策', + icon: 'developer_board', + children: [ + { + path: '/dataManage/decisionInfo', + label: '辅助决策方案管理查询', + icon: 'format_align_center', + }, + { + path: '/dataManage/emergencyResponse', + label: '应急处置流程表', + icon: 'call_merge', + }, + ], + }, ]); diff --git a/src/components/alarm/alarmInfoEnum.ts b/src/components/alarm/alarmInfoEnum.ts index fce1206..987f9a8 100644 --- a/src/components/alarm/alarmInfoEnum.ts +++ b/src/components/alarm/alarmInfoEnum.ts @@ -25,6 +25,11 @@ export enum showAlertTypeData { '一级联锁', '应急触发', '道岔挤岔', + 'zc联锁故障', + '列车定位丢失', + '列车完整性', + '列车故障救援', + 'ats卡滞', I = 'I类信息', II = 'II类信息', III = 'III类信息', @@ -57,6 +62,11 @@ export enum showAlertTypeData { INTERLOCK_LEVEL_ONE = '一级联锁', PLATFORM_EMERG_STOP = '应急触发', SWITCH_JAMMED = '道岔挤岔', + INTERLOCKED_ZC_FAULT = 'zc联锁故障', + TRAIN_LOST_LOCATION = '列车定位丢失', + TRAIN_INTEGRITY_ALARM = '列车完整性', + TRAIN_FAULT_HELP = '列车故障救援', + INTERLOCKED_ATS_STUCK = 'ats卡滞', } export enum saveAlertTypeData { @@ -88,6 +98,11 @@ export enum saveAlertTypeData { 一级联锁 = 'INTERLOCK_LEVEL_ONE', 应急触发 = 'PLATFORM_EMERG_STOP', 道岔挤岔 = 'SWITCH_JAMMED', + zc联锁故障 = 'INTERLOCKED_ZC_FAULT', + 列车定位丢失 = 'TRAIN_LOST_LOCATION', + 列车完整性 = 'TRAIN_INTEGRITY_ALARM', + 列车故障救援 = 'TRAIN_FAULT_HELP', + ats卡滞 = 'INTERLOCKED_ATS_STUCK', } export const GuardConfigTypeData = { diff --git a/src/components/alarm/commonAlarm.vue b/src/components/alarm/commonAlarm.vue index 93db671..397fb53 100644 --- a/src/components/alarm/commonAlarm.vue +++ b/src/components/alarm/commonAlarm.vue @@ -81,6 +81,7 @@ function playAlarmMusic(type: number, lineId: number) { i--; } } + if (!lineNetStore.handlePlayAble) return; if (lineNetStore.playAble && audio.value.paused) { const alarmType = (showAlertTypeData as never)[type + '']; let mapAlarmMusic = new Map(); diff --git a/src/components/alarm/setAlarmText.vue b/src/components/alarm/setAlarmText.vue index eb7bdc3..c965411 100644 --- a/src/components/alarm/setAlarmText.vue +++ b/src/components/alarm/setAlarmText.vue @@ -160,6 +160,7 @@ const optionsAlertType = [ '列车信号故障', '应急触发', '道岔挤岔', + '列车完整性' ]; const mapAlertType = new Map([ ['蓝显', ['station']], @@ -169,6 +170,7 @@ const mapAlertType = new Map([ ['列车信号故障', ['LogicSection', 'Turnout']], ['应急触发', ['Platform']], ['道岔挤岔', ['Turnout']], + ['列车完整性', ['LogicSection']], ]); enum DeviceType { station = 'DEVICE_TYPE_RTU', diff --git a/src/graphics/station/Station.ts b/src/graphics/station/Station.ts index 12b2394..ed3934a 100644 --- a/src/graphics/station/Station.ts +++ b/src/graphics/station/Station.ts @@ -195,14 +195,26 @@ export class Station extends JlGraphic { codeGraph.anchor.set(0.5); const kilometerCode = this.datas.kilometerSystem?.kilometer || 12345678; if (Math.floor(kilometerCode * 1000).toString().length > 3) { - const kiloBit = Math.floor(Number(kilometerCode) / 1000000).toString(); - kilometerGraph.text = - 'K' + - kiloBit + - '+' + - ( - Number(kilometerCode.toString().substring(kiloBit.length)) / 1000 - ).toFixed(3); + if (Number(kilometerCode) > 0) { + const kiloBit = Math.floor(Number(kilometerCode) / 1000000).toString(); + kilometerGraph.text = + 'K' + + kiloBit + + '+' + + ( + Number(kilometerCode.toString().substring(kiloBit.length)) / 1000 + ).toFixed(3); + } else { + const fuKilometerCode = Number(kilometerCode) * -1; + const kiloBit = Math.floor(fuKilometerCode / 1000000).toString(); + kilometerGraph.text = + 'K-' + + kiloBit + + '-' + + ( + Number(kilometerCode.toString().substring(kiloBit.length)) / 1000 + ).toFixed(3); + } } else { kilometerGraph.text = (kilometerCode * 1000).toFixed(3); } diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index d2159a7..91c58df 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -15,13 +15,13 @@ 西安NCC调度辅助决策系统 - + /> --> + diff --git a/src/pages/DecisionInfoManage.vue b/src/pages/DecisionInfoManage.vue index 113a288..757976f 100644 --- a/src/pages/DecisionInfoManage.vue +++ b/src/pages/DecisionInfoManage.vue @@ -413,6 +413,11 @@ const optionsAlertType = [ '联锁区失表', '应急触发', '道岔挤岔', + 'zc联锁故障', + '列车定位丢失', + '列车完整性', + '列车故障救援', + 'ats卡滞', ]; const searchOptionsAlertType = ['全部', ...optionsAlertType]; let optionsLocationType = ref([]); diff --git a/src/pages/EmergencyResponseManage.vue b/src/pages/EmergencyResponseManage.vue new file mode 100644 index 0000000..f8aafbf --- /dev/null +++ b/src/pages/EmergencyResponseManage.vue @@ -0,0 +1,456 @@ + + + + + diff --git a/src/protos/alertConst.ts b/src/protos/alertConst.ts index d5c0b1f..0896c0e 100644 --- a/src/protos/alertConst.ts +++ b/src/protos/alertConst.ts @@ -37,7 +37,12 @@ export namespace alert { SWITCH_LOST_INTERLOCK_AREA = 22, INTERLOCK_LEVEL_ONE = 23, PLATFORM_EMERG_STOP = 24, - SWITCH_JAMMED = 25 + SWITCH_JAMMED = 25, + INTERLOCKED_ZC_FAULT = 26, + TRAIN_LOST_LOCATION = 27, + TRAIN_INTEGRITY_ALARM = 28, + TRAIN_FAULT_HELP = 29, + INTERLOCKED_ATS_STUCK = 30 } export enum TipTimeConfig { HOLIDAYS_MORN_PEAK = 0, diff --git a/src/router/routes.ts b/src/router/routes.ts index 4ddbeba..4743361 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -51,6 +51,11 @@ const routes: RouteRecordRaw[] = [ name: 'faultQuery', component: () => import('pages/FaultQueryManage.vue'), }, + { + path: 'emergencyResponse', + name: 'emergencyResponse', + component: () => import('pages/EmergencyResponseManage.vue'), + }, { path: 'thresholdValue', name: 'thresholdValue', diff --git a/src/stores/line-net-store.ts b/src/stores/line-net-store.ts index 0b1d48b..4db806c 100644 --- a/src/stores/line-net-store.ts +++ b/src/stores/line-net-store.ts @@ -33,7 +33,8 @@ export const useLineNetStore = defineStore('lineNet', { alarmInfo: [] as AlarmInfo[], //报警信息 untreatedMap: new Map(), // 未处理的报警 alarmInfoListTable: undefined as QTable | undefined, - playAble: false, //是否允许播放音乐 + playAble: false, //是否允许播放音乐(与页面交互之后为true) + handlePlayAble: true, //默认交互之后可播放音乐 closeAllAlarmInfoDialog: false, connectButtonColor: 'green', connectInfo: null as state.WarnLineMessage | null, @@ -99,12 +100,11 @@ export const useLineNetStore = defineStore('lineNet', { data.msgs.forEach((item: state.WarnMessage) => { if (!item.occRealConned) { newTip = - newTip + `
${item.lineId}号线路与卡斯柯的实时连接已断开;
`; + newTip + `
${item.lineId}号线路与同方的实时连接已断开;
`; } if (!item.occUnrealConned) { newTip = - newTip + - `
${item.lineId}号线路与卡斯柯的非实时连接已断开
`; + newTip + `
${item.lineId}号线路与同方的非实时连接已断开
`; } }); if (newTip && (newTip !== tip || !msgNotify)) { diff --git a/xian-ncc-da-message b/xian-ncc-da-message index a7b7268..0f95f00 160000 --- a/xian-ncc-da-message +++ b/xian-ncc-da-message @@ -1 +1 @@ -Subproject commit a7b726826b89520f047c268415702df8116d225f +Subproject commit 0f95f00449d14672b382f03727b34e339131786b