From e7ea25cc1befcba4f5843bfb83ad380fa8bb30dd Mon Sep 17 00:00:00 2001 From: guoapeng Date: Tue, 29 Jul 2025 20:49:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=80=A5=E5=81=9C=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Index/Index.vue | 58 +++++++++++++++++++++++++++++++++++++++++------ src/websocket/socket.ts | 11 +++++++++ 2 files changed, 62 insertions(+), 7 deletions(-) diff --git a/src/pages/Index/Index.vue b/src/pages/Index/Index.vue index a22e6fa..99071f2 100644 --- a/src/pages/Index/Index.vue +++ b/src/pages/Index/Index.vue @@ -391,6 +391,26 @@ @close="confirmWarn" @confirm="confirmWarn" /> + + @@ -459,6 +479,25 @@ import { SystemInfo } from '@/types/Index/System.ts' const systemStore = useSystemStore() // 使用 systemStore +const stopModal = ref(false) +const restoreModel = ref(false) + +const stopEmergencyKey = ref(false) + +watch(stopEmergencyKey, (newVal, oldValue) => { + if (newVal) { + stopModal.value = true + } + if (!newVal && oldValue) { + stopModal.value = false + restoreModel.value = true + } +}) + +const confirmRestore = () => { + restoreModel.value = false + eventBus.emit('initDevice') +} const router = useRouter() const route = useRoute() @@ -836,8 +875,13 @@ const handleConsumablesState = (data: ConsumablesStateMessage['data']) => { consumableStore.setConsumablesData(data) } + + const handleEmergencyKeyTriggered = (data: emergencyKeyTriggeredMessage['data']) => { - console.log('data---emergencyKeyTriggered-', data) + if (data.emergencyKeyTrigger !== stopEmergencyKey.value){ + stopEmergencyKey.value = data.emergencyKeyTrigger + console.log('stopEmergencyKey.value', stopEmergencyKey.value) + } } //未测试,先注释 @@ -907,7 +951,7 @@ onMounted(() => { handleConsumablesState, ) wsState.subscribe( - 'emergencyKeyTriggered', + 'EmergencyKeyState', handleEmergencyKeyTriggered, ) wsState.subscribe( @@ -999,11 +1043,11 @@ const untilDeviceReady = async () => { // 开始测试 const startTest = async () => { - // const res = await getInitState() - // if (res.ecode === 'SUC' && !res.data.deviceInited) { - // eventBus.emit('initDevice') - // return - // } + const res = await getInitState() + if (res.ecode === 'SUC' && !res.data.deviceInited) { + eventBus.emit('initDevice') + return + } try { if (deviceStore.sensorState?.pboxTemperature !== plateBoxTemperature.value) { warnMessage.value = '反应板夹区温度不等于预设温度' diff --git a/src/websocket/socket.ts b/src/websocket/socket.ts index 2a1c5a7..ae681b8 100644 --- a/src/websocket/socket.ts +++ b/src/websocket/socket.ts @@ -396,6 +396,15 @@ interface ConsumablesStateMessage extends BaseMessage { timestamp: number } +interface emergencyKeyTriggeredMessage extends BaseMessage { + messageType: 'Report' + dataType: 'EmergencyKeyState' + data: { + emergencyKeyTrigger: boolean + } + timestamp: number +} + // 消息类型联合 type WebSocketMessage = | OptScanModuleStateMessage @@ -411,6 +420,7 @@ type WebSocketMessage = | ConsumablesStateMessage | AppFlagStateListMessage | PreReactionPosGroupStateMessage +| emergencyKeyTriggeredMessage // 消息处理器类型 type MessageHandler = (data: T['data']) => void @@ -580,6 +590,7 @@ export type { TipInfo, AppFlagStateListMessage, PreReactionPosGroupStateMessage, + emergencyKeyTriggeredMessage, } // 导出 WebSocket 客户端