|
|
@ -230,14 +230,29 @@ import { |
|
|
|
saveMountedCardInfo, |
|
|
|
openBuzzer, |
|
|
|
closeBuzzer, |
|
|
|
getProjectInfo, |
|
|
|
getBloodTypes, |
|
|
|
} from '../../services/index' |
|
|
|
import { User } from '../../types/Index' |
|
|
|
import { useConsumablesStore, useDeviceStore } from '../../store' |
|
|
|
import { |
|
|
|
useConsumablesStore, |
|
|
|
useDeviceStore, |
|
|
|
useSettingTestTubeStore, |
|
|
|
} from '../../store' |
|
|
|
import { createWebSocket } from '../../websocket/socket' |
|
|
|
import type { AppEventMessage } from '../../websocket/socket' |
|
|
|
import type { |
|
|
|
AppEventMessage, |
|
|
|
DeviceWorkStateMessage, |
|
|
|
FooterMessageState, |
|
|
|
IncubationPlateStateMessage, |
|
|
|
OptScanModuleStateMessage, |
|
|
|
SensorStateMessage, |
|
|
|
TubeHolderStateMessage, |
|
|
|
} from '../../websocket/socket' |
|
|
|
import { getServerInfo } from '../../utils/getServerInfo' |
|
|
|
import { eventBus } from '../../eventBus' |
|
|
|
import { logout } from '@/services/Login/login' |
|
|
|
import { useRunningStore } from '@/store/modules/running' |
|
|
|
// import { formatDate } from '@/utils/formDate' |
|
|
|
|
|
|
|
const selectedTab = ref(sessionStorage.getItem('selectedTab') || '常规') |
|
|
@ -252,6 +267,9 @@ const showFailModal = ref(false) |
|
|
|
// const failItems = ref<CheckItem[]>([]); |
|
|
|
const consumableStore = useConsumablesStore() |
|
|
|
const deviceStore = useDeviceStore() |
|
|
|
const runningStore = useRunningStore() |
|
|
|
const settingTubeStore = useSettingTestTubeStore() |
|
|
|
|
|
|
|
// 新增的变量 |
|
|
|
const user = ref<User>( |
|
|
|
JSON.parse(sessionStorage.getItem('token') || '{}') as unknown as User, |
|
|
@ -270,9 +288,10 @@ const WarnMessage = ref<string>('') |
|
|
|
const showRecentMsgDialog = ref(false) |
|
|
|
|
|
|
|
// WebSocket 实例 |
|
|
|
const { wsUrl } = getServerInfo('/api/v1/app/ws/event') |
|
|
|
|
|
|
|
const ws = createWebSocket(wsUrl) |
|
|
|
const eventUrl = getServerInfo('/api/v1/app/ws/event') |
|
|
|
const wsEvent = createWebSocket(eventUrl.wsUrl) |
|
|
|
const stateUrl = getServerInfo('/api/v1/app/ws/state') |
|
|
|
const wsState = createWebSocket(stateUrl.wsUrl) |
|
|
|
|
|
|
|
// 处理应用事件消息 |
|
|
|
const handleAppEvent = (data: AppEventMessage['data']) => { |
|
|
@ -336,10 +355,67 @@ const showInitDeviceAlert = () => { |
|
|
|
showModal.value = true |
|
|
|
} |
|
|
|
|
|
|
|
const handleDeviceState = (data: DeviceWorkStateMessage['data']) => { |
|
|
|
deviceStore.setDeviceState(data) |
|
|
|
} |
|
|
|
const handleSensorState = (data: SensorStateMessage['data']) => { |
|
|
|
deviceStore.setSensorState(data) |
|
|
|
} |
|
|
|
const handleFooterState = (data: FooterMessageState['data']) => { |
|
|
|
deviceStore.setMessageState(data) |
|
|
|
} |
|
|
|
const handleTubeHolderStateMessage = (data: TubeHolderStateMessage['data']) => { |
|
|
|
runningStore.setTubeHolderState(data) |
|
|
|
} |
|
|
|
|
|
|
|
const handleOptScanModuleStateMessage = ( |
|
|
|
data: OptScanModuleStateMessage['data'], |
|
|
|
) => { |
|
|
|
runningStore.setOptScanModuleState(data) |
|
|
|
} |
|
|
|
|
|
|
|
const handleIncubationPlateStateMessage = ( |
|
|
|
data: IncubationPlateStateMessage['data'], |
|
|
|
) => { |
|
|
|
runningStore.setSubTanks(data.subtanks) |
|
|
|
} |
|
|
|
const getProjectList = async () => { |
|
|
|
const res = await getProjectInfo() |
|
|
|
if (res.success) { |
|
|
|
settingTubeStore.setSupportedProjects(res.data) |
|
|
|
} |
|
|
|
} |
|
|
|
const getBloodTypeList = async () => { |
|
|
|
const res = await getBloodTypes() |
|
|
|
if (res.success) { |
|
|
|
settingTubeStore.setBloodTypes(res.data) |
|
|
|
} |
|
|
|
} |
|
|
|
onMounted(() => { |
|
|
|
eventBus.on('initDevice', showInitDeviceAlert) |
|
|
|
ws.connect() |
|
|
|
ws.subscribe<AppEventMessage>('AppEvent', handleAppEvent) |
|
|
|
wsEvent.connect() |
|
|
|
wsEvent.subscribe<AppEventMessage>('AppEvent', handleAppEvent) |
|
|
|
wsState.connect() |
|
|
|
wsState.subscribe<DeviceWorkStateMessage>( |
|
|
|
'DeviceWorkState', |
|
|
|
handleDeviceState, |
|
|
|
) |
|
|
|
wsState.subscribe<SensorStateMessage>('SensorState', handleSensorState) |
|
|
|
wsState.subscribe<FooterMessageState>('MessageBoxState', handleFooterState) |
|
|
|
wsState.subscribe<TubeHolderStateMessage>( |
|
|
|
'TubeHolderState', |
|
|
|
handleTubeHolderStateMessage, |
|
|
|
) |
|
|
|
wsState.subscribe<IncubationPlateStateMessage>( |
|
|
|
'IncubationPlateState', |
|
|
|
handleIncubationPlateStateMessage, |
|
|
|
) |
|
|
|
wsState.subscribe<OptScanModuleStateMessage>( |
|
|
|
'OptScanModuleState', |
|
|
|
handleOptScanModuleStateMessage, |
|
|
|
) |
|
|
|
getProjectList() |
|
|
|
getBloodTypeList() |
|
|
|
}) |
|
|
|
|
|
|
|
// onBeforeUnmount(() => { |
|
|
|