diff --git a/src/api/faultQuery.ts b/src/api/faultQuery.ts index 8383500..4598ee0 100644 --- a/src/api/faultQuery.ts +++ b/src/api/faultQuery.ts @@ -75,3 +75,20 @@ export async function faultQueryType(): Promise> { const response = await api.get(`${faultQueryUriBase}/type`); return response.data; } + +export interface NccFaultQueryListItem { + nccTypeName: string; + nccData: { action: string; datas: string[] }[]; +} + +/** + * 分页查询ncc故障查询 + * @param params + * @returns + */ +export async function nccFaultQueryPageQuery(): Promise< + NccFaultQueryListItem[] +> { + const response = await api.post(`${faultQueryUriBase}/ncc`); + return response.data; +} diff --git a/src/components/SysMenu.vue b/src/components/SysMenu.vue index 166dc6b..dcd83f7 100644 --- a/src/components/SysMenu.vue +++ b/src/components/SysMenu.vue @@ -125,7 +125,11 @@ const list = reactive([ }, { show: true, +<<<<<<< HEAD path: '/sysManage/alarmRecord', +======= + path: '/alarmInfo/list', +>>>>>>> origin/develop label: '报警管理', icon: 'alarm_on', }, diff --git a/src/components/alarm/alarmInfoEnum.ts b/src/components/alarm/alarmInfoEnum.ts index 987f9a8..b8c3c6a 100644 --- a/src/components/alarm/alarmInfoEnum.ts +++ b/src/components/alarm/alarmInfoEnum.ts @@ -30,6 +30,7 @@ export enum showAlertTypeData { '列车完整性', '列车故障救援', 'ats卡滞', + '列车报点', I = 'I类信息', II = 'II类信息', III = 'III类信息', @@ -67,6 +68,7 @@ export enum showAlertTypeData { TRAIN_INTEGRITY_ALARM = '列车完整性', TRAIN_FAULT_HELP = '列车故障救援', INTERLOCKED_ATS_STUCK = 'ats卡滞', + TRAIN_RECORD = '列车报点', } export enum saveAlertTypeData { @@ -103,6 +105,7 @@ export enum saveAlertTypeData { 列车完整性 = 'TRAIN_INTEGRITY_ALARM', 列车故障救援 = 'TRAIN_FAULT_HELP', ats卡滞 = 'INTERLOCKED_ATS_STUCK', + 列车报点 = 'TRAIN_RECORD', } export const GuardConfigTypeData = { diff --git a/src/components/alarm/setAlarmText.vue b/src/components/alarm/setAlarmText.vue index c965411..3eadc64 100644 --- a/src/components/alarm/setAlarmText.vue +++ b/src/components/alarm/setAlarmText.vue @@ -40,7 +40,9 @@ import DraggableDialog from '../common/DraggableDialog.vue'; -import { onMounted, onUnmounted, ref, watch } from 'vue'; +import { computed, onMounted, onUnmounted, ref, watch } from 'vue'; import { JlGraphic } from 'jl-graphic'; import { Station } from 'src/graphics/station/Station'; import { useLineStore } from 'src/stores/line-store'; @@ -124,6 +130,8 @@ import { QForm, useQuasar } from 'quasar'; import { ApiError } from 'src/boot/axios'; import { mockLocalDemoTestSet } from 'src/api/AlertMock'; import { isArraysEqual, saveAlertTypeData } from './alarmInfoEnum'; +import { Section } from 'src/graphics/section/Section'; +import { Platform } from 'src/graphics/platform/Platform'; const lineStore = useLineStore(); const setAlartTextData = ref<{ @@ -152,6 +160,7 @@ const setAlartTextData = ref<{ }, ], }); +const needShowTrainGroup = ['列车信号故障', '列车报点']; const optionsAlertType = [ '蓝显', '道岔失表', @@ -160,7 +169,8 @@ const optionsAlertType = [ '列车信号故障', '应急触发', '道岔挤岔', - '列车完整性' + '列车完整性', + '列车报点', ]; const mapAlertType = new Map([ ['蓝显', ['station']], @@ -171,18 +181,30 @@ const mapAlertType = new Map([ ['应急触发', ['Platform']], ['道岔挤岔', ['Turnout']], ['列车完整性', ['LogicSection']], + ['列车报点', ['Section']], ]); enum DeviceType { station = 'DEVICE_TYPE_RTU', Turnout = 'DEVICE_TYPE_SWITCH', LogicSection = 'DEVICE_TYPE_TRACK', Platform = 'DEVICE_TYPE_PLATFORM', + Section = 'DEVICE_TYPE_SECTION', } -const optionsStatus = [ - { label: '正常', value: 'NORMAL' }, - { label: '设置', value: 'BEGIN' }, - { label: '报警', value: 'ALERT' }, -]; +const optionsStatus = computed(() => { + if (setAlartTextData.value.alertType !== '列车报点') { + return [ + { label: '正常', value: 'NORMAL' }, + { label: '设置', value: 'BEGIN' }, + { label: '报警', value: 'ALERT' }, + ]; + } else { + return [ + { label: '到站', value: 'NORMAL' }, + { label: '离站', value: 'BEGIN' }, + ]; + } +}); +let allplatformRefSection: number[] = []; let selectGraphic: JlGraphic[] = []; watch( @@ -212,16 +234,22 @@ watch( setAlartTextData.value.alertType == '蓝显' ) { select = true; - } - if ( + } else if ( + g.type == Section.Type && + setAlartTextData.value.alertType == '列车报点' && + allplatformRefSection.includes(g.id) + ) { + select = true; + } else if ( g.type !== Station.Type && + g.type !== Section.Type && mapAlertType.get(setAlartTextData.value.alertType)?.includes(g.type) ) { select = true; } return select; }) as JlGraphic[]; - if (setAlartTextData.value.alertType !== '列车信号故障') { + if (!needShowTrainGroup.includes(setAlartTextData.value.alertType)) { selectGraphic.push(...deviceFilter); } else if (deviceFilter.length) { selectGraphic = [deviceFilter[0]]; @@ -242,6 +270,12 @@ watch( ); onMounted(() => { + const platforms = lineStore + .getLineApp() + .queryStore.queryByType(Platform.Type); + platforms.forEach((platform) => + allplatformRefSection.push(platform.datas.refSectionId) + ); lineStore.getLineApp().emit('options-update', { mouseToolOptions: { boxSelect: true, diff --git a/src/drawApp/graphics/PlatformInteraction.ts b/src/drawApp/graphics/PlatformInteraction.ts index 19e0cdc..a8d48bd 100644 --- a/src/drawApp/graphics/PlatformInteraction.ts +++ b/src/drawApp/graphics/PlatformInteraction.ts @@ -207,6 +207,12 @@ export class PlatformState extends GraphicStateBase implements IPlatformState { set rtuId(value: number) { this.states.rtuId = value; } + get bizWaitTimeSec(): number { + return this.states.bizWaitTimeSec; + } + set bizWaitTimeSec(value: number) { + this.states.bizWaitTimeSec = value; + } get states(): state.Platform { return this.getState(); } diff --git a/src/graphics/platform/Platform.ts b/src/graphics/platform/Platform.ts index 2311a5d..768fb5e 100644 --- a/src/graphics/platform/Platform.ts +++ b/src/graphics/platform/Platform.ts @@ -11,6 +11,7 @@ import { } from 'jl-graphic'; import { Station } from '../station/Station'; import { Section } from '../section/Section'; +import { useLineStore } from 'src/stores/line-store'; export interface IPlatformData extends GraphicData { get code(): string; // 编号 @@ -66,6 +67,8 @@ export interface IPlatformState extends GraphicState { set stopTime(v: number); get rtuId(): number; // 集中站站号 set rtuId(v: number); + get bizWaitTimeSec(): number; //乘客等待秒数 + set bizWaitTimeSec(v: number); } //站台颜色 @@ -189,6 +192,8 @@ class codeGraph extends Container { runLevel: VectorText = new VectorText(''); //运行等级 runTime: VectorText = new VectorText(''); //运行时间 stopTime: VectorText = new VectorText(''); //停站时间 + waitSec: VectorText = new VectorText(); //VectorText + circle: Graphics = new Graphics(); constructor() { super(); @@ -197,12 +202,14 @@ class codeGraph extends Container { this.addChild(this.circle); this.addChild(this.stopTime); this.addChild(this.runTime); + this.addChild(this.waitSec); this.character.setVectorFontSize(platformConsts.besideFontSize); this.runLevel.setVectorFontSize(platformConsts.besideFontSize); this.stopTime.setVectorFontSize(platformConsts.besideFontSize); this.runTime.setVectorFontSize(platformConsts.besideFontSize); + this.waitSec.setVectorFontSize(platformConsts.besideFontSize); } - draw(): void { + draw(datas: IPlatformData): void { //扣车 const character = this.character; character.text = 'H'; @@ -254,11 +261,25 @@ class codeGraph extends Container { platformConsts.besideSpacing ); stopTime.style.fill = PlatformColorEnum.whiteNumbers; + //乘客等待时间 + const waitSec = this.waitSec; + + waitSec.anchor.set(0.5); + let yPos = platformConsts.height / 2 + platformConsts.doorPlatformSpacing; + + if (datas.direction == 'down') { + yPos = -platformConsts.height / 2 - platformConsts.doorPlatformSpacing; + } + waitSec.position.set(0, yPos); + + waitSec.style.fill = PlatformColorEnum.whiteNumbers; + character.visible = false; circle.visible = false; runLevel.visible = false; stopTime.visible = false; runTime.visible = false; + waitSec.visible = false; } clear(): void { this.character.destroy(); @@ -309,6 +330,21 @@ class codeGraph extends Container { this.stopTime.visible = true; this.stopTime.text = stateData.stopTime; } + if (stateData.bizWaitTimeSec && useLineStore().faultStatistics) { + const minutes = Math.floor(stateData.bizWaitTimeSec / 60); + const seconds = stateData.bizWaitTimeSec % 60; + let minutesString = '' + minutes; + let secondsString = '' + seconds; + if (minutes < 10) { + minutesString = `0${minutes}`; + } + if (seconds < 10) { + secondsString = `0${seconds}`; + } + + this.waitSec.visible = true; + this.waitSec.text = `乘客已经等待了${minutesString}:${secondsString}`; + } } } //子元素--站台旁菱形图标 @@ -388,7 +424,7 @@ export class Platform extends JlGraphic { } this.platformGraphic.draw(this.states); this.besideGraphic.draw(); - this.codeGraph.draw(); + this.codeGraph.draw(this.datas); this.doorGraphic.position.set( 0, diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 91c58df..03edd6a 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -51,6 +51,21 @@ label="返回" @click="backConfirm" /> + + - + diff --git a/src/pages/EmergencyResponseManage.vue b/src/pages/EmergencyResponseManage.vue index f8aafbf..7f99ce4 100644 --- a/src/pages/EmergencyResponseManage.vue +++ b/src/pages/EmergencyResponseManage.vue @@ -15,8 +15,8 @@ /> - -
+ +
@@ -136,16 +141,25 @@ import { faultQueryPageQuery, faultQueryType, FaultTypeItem, + NccFaultQueryListItem, + nccFaultQueryPageQuery, } from 'src/api/faultQuery'; -import { pageQuery } from 'src/api/LineInfoApi'; -import { ApiError } from 'src/boot/axios'; +import { getMonitorPath } from 'src/router/routes'; +import { useUserStore } from 'src/stores/user-store'; + +const props = withDefaults( + defineProps<{ + sizeHeight: number; + sizeWidth: number; + }>(), + { sizeHeight: 500, sizeWidth: 500 } +); const $q = useQuasar(); - const tab = ref('GUIDE'); const tableTitle = reactive({ - faultNameShower: '', - faultDriverShower: '', + faultNameShower: '故障现象', + faultDriverShower: '司机处理结果', }); const inputSearchName = ref('故障现象'); watch(tab, (tabVal) => { @@ -159,18 +173,8 @@ watch(tab, (tabVal) => { tableTitle.faultDriverShower = '故障现象'; } handleSelectFaultType(); - searchTable(); }); -const tabList = ref([ - { - label: '故障指导', - value: 'GUIDE', - }, - { - label: '退出服务', - value: 'SERVICE', - }, -]); +const tabList = ref(); const tableRef = ref(); const columns = computed(() => [ @@ -334,60 +338,109 @@ function handleSelectFaultType() { let allType = ''; searchOptionsFaultType.value = [{ label: '全部', value: '' }]; for (let i = 0; i < allOptionsFaultType.length; i++) { - allOptionsFaultType[i].fts.forEach((item) => { - if ( - (tab.value == 'GUIDE' && - item.faultType.includes('FAULT_EMERGENCY_GUIDE')) || - (tab.value == 'SERVICE' && - item.faultType.includes('FAULT_EXIT_SERVICE')) - ) { - searchOptionsFaultType.value.push({ - label: item.typeName, - value: item.faultType, - }); - if (allType == '') { - allType = item.faultType; - } else { - allType = allType + ',' + item.faultType; + if (allOptionsFaultType[i].lineId == filter.lineId) { + allOptionsFaultType[i].fts.forEach((item) => { + if ( + (tab.value == 'GUIDE' && + item.faultType.includes('FAULT_EMERGENCY_GUIDE')) || + (tab.value == 'SERVICE' && + item.faultType.includes('FAULT_EXIT_SERVICE')) + ) { + searchOptionsFaultType.value.push({ + label: item.typeName, + value: item.faultType, + }); + if (allType == '') { + allType = item.faultType; + } else { + allType = allType + ',' + item.faultType; + } } - } - }); + }); + break; + } } filter.faultType = allType; searchOptionsFaultType.value[0].value = allType; } -const searchOptionsLineId = ref<{ label: string; value: number }[]>([ - { label: '全部', value: 0 }, -]); -async function queryLineInfo() { - try { - let response = await pageQuery({ - current: 1, - size: 50, - }); - response.records.forEach((info) => { - searchOptionsLineId.value.push({ label: info.name, value: info.lineId }); - }); - } catch (err) { - const error = err as ApiError; - $q.notify({ - type: 'negative', - message: error.title, - }); - } -} - function searchTable() { tableRef.value?.requestServerInteraction(); } +//ncc相关 +const nccDatas = ref(); +const selectMenuName = ref(''); +const menuOption = ref< + { + label: string; + value: string; + }[] +>([]); +const showNccData = ref<{ action: string; datas: string[] }[]>(); + +function selectedMenu(name: string) { + showNccData.value = nccDatas.value?.find( + (nccData) => nccData.nccTypeName == name + )?.nccData; +} + +async function nccFaultQueryPageQueryFn() { + try { + nccDatas.value = await nccFaultQueryPageQuery(); + nccDatas.value.forEach((nccDta) => + menuOption.value.push({ + label: nccDta.nccTypeName, + value: nccDta.nccTypeName, + }) + ); + selectMenuName.value = nccDatas.value[0].nccTypeName; + showNccData.value = nccDatas.value[0].nccData; + } catch (err) { + $q.notify({ + type: 'negative', + message: '无法获取ncc故障查询', + }); + } +} + +const showTooltip = ref(false); +function onMouseOver(e: MouseEvent) { + const target = e.target as HTMLElement; + if (target.scrollWidth > target.clientWidth) { + showTooltip.value = true; + } +} + +const userStore = useUserStore(); +const roleType = ref(''); onMounted(() => { - queryLineInfo(); - queryAllFaultType(); - setTimeout(() => { - searchTable(); - }, 1000); + const config = getMonitorPath(userStore.roles); + if (config.lineType == 'NCC') { + roleType.value = 'NCC'; + tabList.value = [ + { + label: 'ncc应急处置流程', + value: 'NCC', + }, + ]; + tab.value = 'NCC'; + nccFaultQueryPageQueryFn(); + } else { + roleType.value = 'OCC'; + tabList.value = [ + { + label: '故障指导', + value: 'GUIDE', + }, + { + label: '退出服务', + value: 'SERVICE', + }, + ]; + filter.lineId = config.lineIds[0]; + queryAllFaultType(); + } }); @@ -396,6 +449,7 @@ onMounted(() => { background-color: #31ccec; } .custom-column { + max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -412,15 +466,15 @@ onMounted(() => { justify-content: center; margin-top: 10px; } -.dialogContainer { +.occContainer { display: flex; height: calc(100vh - 120px); .left { - width: calc(50vw + 60px); + width: 67%; } .right { flex: 1; - height: calc(100vh - 120px); + height: 100%; .detaiRow { margin: 10px 0 0 20px; .text { @@ -453,4 +507,27 @@ onMounted(() => { } } } +.nccContainer { + .q-btn-toggle { + margin-bottom: 15px; + } + .box-card { + width: 98%; + min-height: 150px; + margin-bottom: 15px; + padding: 0 5px; + .head { + padding: 5px 5px; + font-size: 20px; + font-weight: 600; + } + .detail { + margin-bottom: 10px; + padding: 5px 5px; + line-height: 28px; + white-space: pre-wrap; + font-size: 20px; + } + } +} diff --git a/src/pages/LineMonitorPage.vue b/src/pages/LineMonitorPage.vue index 117cc43..94bd00e 100644 --- a/src/pages/LineMonitorPage.vue +++ b/src/pages/LineMonitorPage.vue @@ -3,14 +3,42 @@
+
+
+ +
+
+ +
+
diff --git a/src/pages/UserLogin.vue b/src/pages/UserLogin.vue index ea9a1df..5658d59 100644 --- a/src/pages/UserLogin.vue +++ b/src/pages/UserLogin.vue @@ -24,8 +24,7 @@ label="账号" lazy-rules type="tel" - mask="###########" - :rules="[(val) => val.length == 11 || '请输入正确手机格式!']" + :rules="[(val) => val.length || '请输入账号!']" /> -
+
diff --git a/src/protos/alertConst.ts b/src/protos/alertConst.ts index 0896c0e..f83f575 100644 --- a/src/protos/alertConst.ts +++ b/src/protos/alertConst.ts @@ -42,7 +42,8 @@ export namespace alert { TRAIN_LOST_LOCATION = 27, TRAIN_INTEGRITY_ALARM = 28, TRAIN_FAULT_HELP = 29, - INTERLOCKED_ATS_STUCK = 30 + INTERLOCKED_ATS_STUCK = 30, + TRAIN_RECORD = 31 } export enum TipTimeConfig { HOLIDAYS_MORN_PEAK = 0, diff --git a/src/protos/device_status.ts b/src/protos/device_status.ts index 31b06c0..2981dc6 100644 --- a/src/protos/device_status.ts +++ b/src/protos/device_status.ts @@ -3191,6 +3191,9 @@ export namespace state { timestamp?: number; lineId?: number; receiveTime?: number; + bizWaitTimerGoing?: boolean; + bizWaitStartTimeSec?: number; + bizWaitTimeSec?: number; }) { super(); pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls); @@ -3258,6 +3261,15 @@ export namespace state { if ("receiveTime" in data && data.receiveTime != undefined) { this.receiveTime = data.receiveTime; } + if ("bizWaitTimerGoing" in data && data.bizWaitTimerGoing != undefined) { + this.bizWaitTimerGoing = data.bizWaitTimerGoing; + } + if ("bizWaitStartTimeSec" in data && data.bizWaitStartTimeSec != undefined) { + this.bizWaitStartTimeSec = data.bizWaitStartTimeSec; + } + if ("bizWaitTimeSec" in data && data.bizWaitTimeSec != undefined) { + this.bizWaitTimeSec = data.bizWaitTimeSec; + } } } get emergstop() { @@ -3386,6 +3398,24 @@ export namespace state { set receiveTime(value: number) { pb_1.Message.setField(this, 21, value); } + get bizWaitTimerGoing() { + return pb_1.Message.getFieldWithDefault(this, 22, false) as boolean; + } + set bizWaitTimerGoing(value: boolean) { + pb_1.Message.setField(this, 22, value); + } + get bizWaitStartTimeSec() { + return pb_1.Message.getFieldWithDefault(this, 23, 0) as number; + } + set bizWaitStartTimeSec(value: number) { + pb_1.Message.setField(this, 23, value); + } + get bizWaitTimeSec() { + return pb_1.Message.getFieldWithDefault(this, 24, 0) as number; + } + set bizWaitTimeSec(value: number) { + pb_1.Message.setField(this, 24, value); + } static fromObject(data: { emergstop?: boolean; trainberth?: boolean; @@ -3408,6 +3438,9 @@ export namespace state { timestamp?: number; lineId?: number; receiveTime?: number; + bizWaitTimerGoing?: boolean; + bizWaitStartTimeSec?: number; + bizWaitTimeSec?: number; }): Platform { const message = new Platform({}); if (data.emergstop != null) { @@ -3473,6 +3506,15 @@ export namespace state { if (data.receiveTime != null) { message.receiveTime = data.receiveTime; } + if (data.bizWaitTimerGoing != null) { + message.bizWaitTimerGoing = data.bizWaitTimerGoing; + } + if (data.bizWaitStartTimeSec != null) { + message.bizWaitStartTimeSec = data.bizWaitStartTimeSec; + } + if (data.bizWaitTimeSec != null) { + message.bizWaitTimeSec = data.bizWaitTimeSec; + } return message; } toObject() { @@ -3498,6 +3540,9 @@ export namespace state { timestamp?: number; lineId?: number; receiveTime?: number; + bizWaitTimerGoing?: boolean; + bizWaitStartTimeSec?: number; + bizWaitTimeSec?: number; } = {}; if (this.emergstop != null) { data.emergstop = this.emergstop; @@ -3562,6 +3607,15 @@ export namespace state { if (this.receiveTime != null) { data.receiveTime = this.receiveTime; } + if (this.bizWaitTimerGoing != null) { + data.bizWaitTimerGoing = this.bizWaitTimerGoing; + } + if (this.bizWaitStartTimeSec != null) { + data.bizWaitStartTimeSec = this.bizWaitStartTimeSec; + } + if (this.bizWaitTimeSec != null) { + data.bizWaitTimeSec = this.bizWaitTimeSec; + } return data; } serialize(): Uint8Array; @@ -3610,6 +3664,12 @@ export namespace state { writer.writeInt32(20, this.lineId); if (this.receiveTime != 0) writer.writeInt64(21, this.receiveTime); + if (this.bizWaitTimerGoing != false) + writer.writeBool(22, this.bizWaitTimerGoing); + if (this.bizWaitStartTimeSec != 0) + writer.writeInt64(23, this.bizWaitStartTimeSec); + if (this.bizWaitTimeSec != 0) + writer.writeInt64(24, this.bizWaitTimeSec); if (!w) return writer.getResultBuffer(); } @@ -3682,6 +3742,15 @@ export namespace state { case 21: message.receiveTime = reader.readInt64(); break; + case 22: + message.bizWaitTimerGoing = reader.readBool(); + break; + case 23: + message.bizWaitStartTimeSec = reader.readInt64(); + break; + case 24: + message.bizWaitTimeSec = reader.readInt64(); + break; default: reader.skipField(); } } diff --git a/src/protos/system_warn_message.ts b/src/protos/system_warn_message.ts index 42bb039..97ac234 100644 --- a/src/protos/system_warn_message.ts +++ b/src/protos/system_warn_message.ts @@ -78,6 +78,7 @@ export namespace state { lineId?: number; occRealConned?: boolean; occUnrealConned?: boolean; + atsWarnShowCounter?: boolean; }) { super(); pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls); @@ -91,6 +92,9 @@ export namespace state { if ("occUnrealConned" in data && data.occUnrealConned != undefined) { this.occUnrealConned = data.occUnrealConned; } + if ("atsWarnShowCounter" in data && data.atsWarnShowCounter != undefined) { + this.atsWarnShowCounter = data.atsWarnShowCounter; + } } } get lineId() { @@ -111,10 +115,17 @@ export namespace state { set occUnrealConned(value: boolean) { pb_1.Message.setField(this, 3, value); } + get atsWarnShowCounter() { + return pb_1.Message.getFieldWithDefault(this, 4, false) as boolean; + } + set atsWarnShowCounter(value: boolean) { + pb_1.Message.setField(this, 4, value); + } static fromObject(data: { lineId?: number; occRealConned?: boolean; occUnrealConned?: boolean; + atsWarnShowCounter?: boolean; }): WarnMessage { const message = new WarnMessage({}); if (data.lineId != null) { @@ -126,6 +137,9 @@ export namespace state { if (data.occUnrealConned != null) { message.occUnrealConned = data.occUnrealConned; } + if (data.atsWarnShowCounter != null) { + message.atsWarnShowCounter = data.atsWarnShowCounter; + } return message; } toObject() { @@ -133,6 +147,7 @@ export namespace state { lineId?: number; occRealConned?: boolean; occUnrealConned?: boolean; + atsWarnShowCounter?: boolean; } = {}; if (this.lineId != null) { data.lineId = this.lineId; @@ -143,6 +158,9 @@ export namespace state { if (this.occUnrealConned != null) { data.occUnrealConned = this.occUnrealConned; } + if (this.atsWarnShowCounter != null) { + data.atsWarnShowCounter = this.atsWarnShowCounter; + } return data; } serialize(): Uint8Array; @@ -155,6 +173,8 @@ export namespace state { writer.writeBool(2, this.occRealConned); if (this.occUnrealConned != false) writer.writeBool(3, this.occUnrealConned); + if (this.atsWarnShowCounter != false) + writer.writeBool(4, this.atsWarnShowCounter); if (!w) return writer.getResultBuffer(); } @@ -173,6 +193,9 @@ export namespace state { case 3: message.occUnrealConned = reader.readBool(); break; + case 4: + message.atsWarnShowCounter = reader.readBool(); + break; default: reader.skipField(); } } diff --git a/src/router/routes.ts b/src/router/routes.ts index 4743361..e88ee20 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -119,6 +119,21 @@ const routes: RouteRecordRaw[] = [ meta: { description: '报警记录', }, + component: () => import('pages/AlarmRecord.vue'), + }, + ], + }, + { + path: '/alarmInfo', + name: 'alarmInfo', + component: () => import('layouts/MainLayout.vue'), + children: [ + { + path: 'list', + name: 'list', + meta: { + description: '报警信息', + }, component: () => import('pages/AlarmInfoList.vue'), }, ], diff --git a/src/stores/line-store.ts b/src/stores/line-store.ts index e757f2a..0b99d29 100644 --- a/src/stores/line-store.ts +++ b/src/stores/line-store.ts @@ -13,6 +13,7 @@ export const useLineStore = defineStore('line', { selectedGraphics: null as JlGraphic[] | null, lineId: null as number | null, lineName: null as string | null, + faultStatistics: false, }), getters: { selectedGraphicType: (state) => { diff --git a/xian-ncc-da-message b/xian-ncc-da-message index 0f95f00..7aef4b8 160000 --- a/xian-ncc-da-message +++ b/xian-ncc-da-message @@ -1 +1 @@ -Subproject commit 0f95f00449d14672b382f03727b34e339131786b +Subproject commit 7aef4b876fae6622d93a21c99fe293df7bf7d572