diff --git a/src/eventBus.ts b/src/eventBus.ts index 04211dd..8686e60 100644 --- a/src/eventBus.ts +++ b/src/eventBus.ts @@ -16,11 +16,11 @@ export type ErrorModalData = { export type ConsumeType = 'Plate' | 'LittleBuf' | 'BigBuf' | 'Tip' type Events = { - initDevice: void + initDevice: void, + AppTubeSettingUpdateEvent: void, confirm: { type: ConsumeType; value: number; index: number } 'show-error-modal': ErrorModalData 'show-stack-modal': ErrorModalData['stackInfo'] | null | undefined - // 其他事件类型 } export const eventBus = mitt() diff --git a/src/pages/Index/Index.vue b/src/pages/Index/Index.vue index 69416d8..7352be1 100644 --- a/src/pages/Index/Index.vue +++ b/src/pages/Index/Index.vue @@ -102,8 +102,9 @@ const failItems = ref([]); const consumableStore = useConsumablesStore(); // 新增的变量 const user = ref(JSON.parse(sessionStorage.getItem('token') || '{}') as unknown as User) -const isTesting = ref(false); // 用于控制按钮的显示 -const isPaused = ref(false); // 用于控制是否暂停测试 +const isTesting = ref(false); // 是否处理运行中,用于控制按钮的显示 +const isPaused = ref(false); // 是否运行中 点击了暂停,用于控制是否暂停测试 + const username = ref(user.value.account) const failMessage = ref(''); // 存储动态生成的错误信息 const idCardInserted = ref(false) // id卡插入状态 @@ -145,6 +146,7 @@ const handleAppEvent = (data: AppEventMessage['data']) => { EventText.value = "id卡已拔出" } else if (data.typeName === 'AppTubeholderSettingUpdateEvent') { EventText.value = "试管架配置更新" + eventBus.emit('AppTubeSettingUpdateEvent'); } else if (data.typeName === "DoA8kStepActionEvent") { EventText.value = data.actionStepName! } else { @@ -194,6 +196,11 @@ const generateErrorMessages = (data: CheckItem[]): string[] => { // 开始测试 const startTest = async () => { + const res = await getInitState() + if (res.ecode === 'SUC' && !res.data.deviceInited) { + eventBus.emit('initDevice') + return + } try { const res = await startWork(); if (res.success) { @@ -203,12 +210,6 @@ const startTest = async () => { console.error('开始测试失败:', error); isTesting.value = false; } - const isCheck = sessionStorage.getItem('testStarted'); - if (!isCheck) { - isTesting.value = false; - await startInit() - } - }; // 暂停测试 @@ -238,7 +239,6 @@ const continueTest = async () => { }; const handleConfirm = async () => { showModal.value = false; // 关闭初始弹窗 - await startInit() }; @@ -257,7 +257,7 @@ const pollingInitState = async () => { showLoadingModal.value = false; if (res.data.passed) { console.log("初始化成功") - // sessionStorage.setItem('testStarted', "true"); + sessionStorage.setItem('deviceResetFinished', "true"); showAlreadyModal.value = true; } else { @@ -269,7 +269,6 @@ const pollingInitState = async () => { } } - // const checkIfResetCompleted = async () => { // if (showFailModal.value) { // showFailModal.value = false; @@ -283,7 +282,7 @@ const pollingInitState = async () => { // //检测初始化是否成功 // if (initState.data.passed) { // console.log("初始化成功") -// sessionStorage.setItem('testStarted', "true"); +// sessionStorage.setItem('deviceResetFinished', "true"); // showLoadingModal.value = false; // showAlreadyModal.value = true; // } else { @@ -301,7 +300,7 @@ const pollingInitState = async () => { // console.log("初始化失败,但是没有失败项") // showLoadingModal.value = false; // 隐藏 LoadingModal // showAlreadyModal.value = true; // 显示已完成弹窗 -// sessionStorage.setItem('testStarted', "true"); +// sessionStorage.setItem('deviceResetFinished', "true"); // } // } // } @@ -323,14 +322,13 @@ const handleAlreadyConfirm = () => { }; onMounted(() => { - openTest(); + checkInit(); }); // 开始检测 -const openTest = () => { - const hasExecuted = sessionStorage.getItem('testStarted'); - // 如果没有标记,执行 openTest 并设置标记 - if (!hasExecuted) { +const checkInit = () => { + const hasExecutedReset = sessionStorage.getItem('deviceResetFinished'); + if (hasExecutedReset === "false") { showModal.value = true; } }; diff --git a/src/pages/Index/Regular/TestTube.vue b/src/pages/Index/Regular/TestTube.vue index cc9c64f..660c8b6 100644 --- a/src/pages/Index/Regular/TestTube.vue +++ b/src/pages/Index/Regular/TestTube.vue @@ -64,7 +64,7 @@