|
|
@ -60,8 +60,10 @@ |
|
|
|
icon="/src/assets/Warn.svg" cancelText="返回" confirmText="确认取下/开始复位" @close="showModal = false" |
|
|
|
@confirm="handleConfirm" /> |
|
|
|
<!-- 通用加载弹窗组件 --> |
|
|
|
<LoadingModal v-if="showLoadingModal" :visible="showLoadingModal" title="正在自检/自动复位中" message="请不要有任何手动操作!" |
|
|
|
cancelText="返回" confirmText="确认取下/开始复位" disableButtons @close="showLoadingModal = false" /> |
|
|
|
<LoadingModal v-if="showDeviceResettingModal" :visible="showDeviceResettingModal" title="正在自检/自动复位中" message="请不要有任何手动操作!" |
|
|
|
cancelText="返回" confirmText="确认取下/开始复位" disableButtons @close="showDeviceResettingModal = false" /> |
|
|
|
<LoadingModal v-if="showDeviceWaitingModal" :visible="showDeviceWaitingModal" title="设备正在响应中" message="请不要有任何手动操作!" |
|
|
|
:showBtns="false" /> |
|
|
|
<!-- 自动自检已完成 --> |
|
|
|
<InitWarn v-if="showAlreadyModal" :visible="showAlreadyModal" title="确认操作" message="自检/自动复位已完成!" |
|
|
|
icon="/src/assets/OK.svg" cancelText="返回" confirmText="确认" @close="showAlreadyModal = false" |
|
|
@ -83,7 +85,7 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import { ref, onMounted, onBeforeUnmount } from 'vue'; |
|
|
|
import { Time, InitWarn, LoadingModal } from './Components/Consumables'; |
|
|
|
import { startWork, pauseWork, continueWork, stopWork, getInitState, initDevice, saveMountedCardInfo, openBuzzer, closeBuzzer } from '../../services/index'; |
|
|
|
import { startWork, pauseWork, continueWork, stopWork, getDeviceWorkState, getInitState, initDevice, saveMountedCardInfo, openBuzzer, closeBuzzer } from '../../services/index'; |
|
|
|
import { CheckItem, User } from '../../types/Index'; |
|
|
|
import { useConsumablesStore } from '../../store'; |
|
|
|
import { createWebSocket } from '../../websocket/socket'; |
|
|
@ -94,7 +96,8 @@ const selectedTab = ref(sessionStorage.getItem('selectedTab') || '常规'); |
|
|
|
const lineWidth = ref(0); |
|
|
|
const lineLeft = ref(0); |
|
|
|
const showModal = ref(false); |
|
|
|
const showLoadingModal = ref(false); |
|
|
|
const showDeviceResettingModal = ref(false); |
|
|
|
const showDeviceWaitingModal = ref(false); |
|
|
|
const showAlreadyModal = ref(false); |
|
|
|
const showFailModal = ref(false); |
|
|
|
const checkData = ref<CheckItem[]>([]); |
|
|
@ -104,6 +107,7 @@ const consumableStore = useConsumablesStore(); |
|
|
|
const user = ref<User>(JSON.parse(sessionStorage.getItem('token') || '{}') as unknown as User) |
|
|
|
const isTesting = ref(false); // 是否处理运行中,用于控制按钮的显示 |
|
|
|
const isPaused = ref(false); // 是否运行中 点击了暂停,用于控制是否暂停测试 |
|
|
|
let deviceReadyCallback: any = null |
|
|
|
|
|
|
|
const username = ref<string>(user.value.account) |
|
|
|
const failMessage = ref(''); // 存储动态生成的错误信息 |
|
|
@ -194,6 +198,21 @@ const generateErrorMessages = (data: CheckItem[]): string[] => { |
|
|
|
.map(item => `错误:${item.typechinfo} 检测未通过,请检查设备状态。`); |
|
|
|
}; |
|
|
|
|
|
|
|
const untilDeviceReady = async () => { |
|
|
|
showDeviceWaitingModal.value = true |
|
|
|
const res = await getDeviceWorkState(); |
|
|
|
if (res.ecode === "SUC") { |
|
|
|
if (res.data.pending) { |
|
|
|
setTimeout(async () => await untilDeviceReady(), 250) |
|
|
|
} else { |
|
|
|
showDeviceWaitingModal.value = false; |
|
|
|
deviceReadyCallback && deviceReadyCallback() |
|
|
|
} |
|
|
|
} else { |
|
|
|
showDeviceWaitingModal.value = false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 开始测试 |
|
|
|
const startTest = async () => { |
|
|
|
const res = await getInitState() |
|
|
@ -204,7 +223,8 @@ const startTest = async () => { |
|
|
|
try { |
|
|
|
const res = await startWork(); |
|
|
|
if (res.success) { |
|
|
|
isTesting.value = true; |
|
|
|
deviceReadyCallback = () => isTesting.value = true; |
|
|
|
await untilDeviceReady() |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('开始测试失败:', error); |
|
|
@ -216,7 +236,8 @@ const startTest = async () => { |
|
|
|
const pauseTest = async () => { |
|
|
|
const res = await pauseWork(); |
|
|
|
if (res.success) { |
|
|
|
isPaused.value = true; |
|
|
|
deviceReadyCallback = () => isPaused.value = true; |
|
|
|
await untilDeviceReady() |
|
|
|
} |
|
|
|
// 在这里添加暂停测试的逻辑 |
|
|
|
}; |
|
|
@ -226,14 +247,16 @@ const stopTest = async () => { |
|
|
|
console.log('测试已停止'); |
|
|
|
const res = await stopWork(); |
|
|
|
if (res.success) { |
|
|
|
isTesting.value = false; |
|
|
|
deviceReadyCallback = () => isTesting.value = false; |
|
|
|
await untilDeviceReady() |
|
|
|
} |
|
|
|
}; |
|
|
|
//继续测试 |
|
|
|
const continueTest = async () => { |
|
|
|
const res = await continueWork(); |
|
|
|
if (res.success) { |
|
|
|
isPaused.value = false; |
|
|
|
deviceReadyCallback = () => isPaused.value = false; |
|
|
|
await untilDeviceReady() |
|
|
|
console.log('继续测试'); |
|
|
|
} |
|
|
|
}; |
|
|
@ -248,13 +271,13 @@ const startInit = async () => { |
|
|
|
} |
|
|
|
|
|
|
|
const pollingInitState = async () => { |
|
|
|
showLoadingModal.value = true; // 显示 LoadingModal |
|
|
|
showDeviceResettingModal.value = true; // 显示 LoadingModal |
|
|
|
const res = await getInitState(); |
|
|
|
if (res.ecode === "SUC") { |
|
|
|
if (res.data.isBusy) { |
|
|
|
setTimeout(async () => await pollingInitState(), 500) |
|
|
|
} else { |
|
|
|
showLoadingModal.value = false; |
|
|
|
showDeviceResettingModal.value = false; |
|
|
|
if (res.data.passed) { |
|
|
|
console.log("初始化成功") |
|
|
|
sessionStorage.setItem('deviceResetFinished', "true"); |
|
|
|