|
@ -136,6 +136,10 @@ |
|
|
</button> |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<InitWarn v-if="showEmergencyModal" :visible="showEmergencyModal" title="检查耗材" message="请将耗材加载完整后再添加" |
|
|
|
|
|
icon="/src/assets/update-pin-icon.svg" confirmText="确认" @confirm="showEmergencyModal = false" /> |
|
|
|
|
|
|
|
|
<InitWarn |
|
|
<InitWarn |
|
|
v-if="showModal" |
|
|
v-if="showModal" |
|
|
:visible="showModal" |
|
|
:visible="showModal" |
|
@ -187,6 +191,7 @@ import { createWebSocket } from '@/websocket/socket' |
|
|
import { isTubeExist } from '@/services/Index/index' |
|
|
import { isTubeExist } from '@/services/Index/index' |
|
|
import { InitWarn } from './Warn' |
|
|
import { InitWarn } from './Warn' |
|
|
import { getServerInfo } from '@/utils/getServerInfo' |
|
|
import { getServerInfo } from '@/utils/getServerInfo' |
|
|
|
|
|
import { EMERGENCY_STATE } from "@/constant" |
|
|
|
|
|
|
|
|
const { wsUrl } = getServerInfo('/api/v1/app/ws/state') |
|
|
const { wsUrl } = getServerInfo('/api/v1/app/ws/state') |
|
|
const socket = createWebSocket(wsUrl) |
|
|
const socket = createWebSocket(wsUrl) |
|
@ -273,10 +278,11 @@ const handleEmergencyPosState = (data: EmergencyPosStateMessage['data']) => { |
|
|
// data.tube.state = 'PROCESSING' |
|
|
// data.tube.state = 'PROCESSING' |
|
|
let { state } = data.tube |
|
|
let { state } = data.tube |
|
|
//当急诊试管状态是 EMPTY、TO_BE_PROCESSED、PROCESS_COMPLETE、ERROR可以编辑 |
|
|
//当急诊试管状态是 EMPTY、TO_BE_PROCESSED、PROCESS_COMPLETE、ERROR可以编辑 |
|
|
if (emergencyStateList.includes(state)) { |
|
|
|
|
|
emergencyStatus.value = true |
|
|
|
|
|
} else { |
|
|
|
|
|
emergencyStatus.value = false |
|
|
|
|
|
|
|
|
emergencyStore.setInfo(data.tube) |
|
|
|
|
|
if(emergencyStateList.includes(state)){ |
|
|
|
|
|
emergencyStatus.value = true; |
|
|
|
|
|
}else{ |
|
|
|
|
|
emergencyStatus.value = false; |
|
|
} |
|
|
} |
|
|
emergencyStore.setInfo(data.tube) |
|
|
emergencyStore.setInfo(data.tube) |
|
|
//当试管状态是完成时"PROCESS_COMPLETE",取消订阅上报事件 |
|
|
//当试管状态是完成时"PROCESS_COMPLETE",取消订阅上报事件 |
|
@ -310,14 +316,15 @@ const getEmergencyStatus = () => { |
|
|
const activeTab = ref(0) |
|
|
const activeTab = ref(0) |
|
|
// 废料区状态判断 |
|
|
// 废料区状态判断 |
|
|
const isActive = ref(false) |
|
|
const isActive = ref(false) |
|
|
|
|
|
|
|
|
watch( |
|
|
watch( |
|
|
() => props.emergencyInfo, |
|
|
() => props.emergencyInfo, |
|
|
(newVal) => { |
|
|
(newVal) => { |
|
|
// 只有当急诊数据存在且不为空时,激活小球 |
|
|
|
|
|
if (newVal && Object.keys(newVal).length > 0) { |
|
|
|
|
|
isActive.value = true |
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
// 只有当急诊数据存在且不为空或者不是异常状态时,不激活小球 |
|
|
|
|
|
if (newVal && (newVal.state == EMERGENCY_STATE.EMPTY || newVal.state == EMERGENCY_STATE.ERROR)) { |
|
|
isActive.value = false // 没有急诊数据时,不激活小球 |
|
|
isActive.value = false // 没有急诊数据时,不激活小球 |
|
|
|
|
|
} else {//其它状态激活小球 |
|
|
|
|
|
isActive.value = true |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
{ immediate: true }, // 确保初始化时会触发一次 |
|
|
{ immediate: true }, // 确保初始化时会触发一次 |
|
@ -326,8 +333,22 @@ watch( |
|
|
const emergencyInfo = reactive(emergencyStore.$state.emergencyInfo) |
|
|
const emergencyInfo = reactive(emergencyStore.$state.emergencyInfo) |
|
|
const router = useRouter() |
|
|
const router = useRouter() |
|
|
// 跳转到添加急诊页面 |
|
|
// 跳转到添加急诊页面 |
|
|
|
|
|
let showEmergencyModal = ref(false) |
|
|
const addEmergency = () => { |
|
|
const addEmergency = () => { |
|
|
if (Object.keys(emergencyInfo).length > 0) { |
|
|
|
|
|
|
|
|
//未返回 反应板夹 数组时,直接提示 |
|
|
|
|
|
if(!consumableStore.consumableData.reactionPlateGroup){ |
|
|
|
|
|
showEmergencyModal.value = true; |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
//有反应板夹数据,但无项目时 也要给出提示信息 |
|
|
|
|
|
const clonereactionList = [...consumableStore.consumableData.reactionPlateGroup] |
|
|
|
|
|
const hasRactionPlatGroup = clonereactionList.every(item => !item.projId) |
|
|
|
|
|
if(hasRactionPlatGroup){ |
|
|
|
|
|
showEmergencyModal.value = true; |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
//已经有急诊位时 |
|
|
|
|
|
if (emergencyInfo?.pos) { |
|
|
//如果有急诊数据,就携带数据跳转,便于回显 |
|
|
//如果有急诊数据,就携带数据跳转,便于回显 |
|
|
router.push({ |
|
|
router.push({ |
|
|
path: '/index/emergency', |
|
|
path: '/index/emergency', |
|
@ -337,6 +358,11 @@ const addEmergency = () => { |
|
|
router.push('/index/emergency') |
|
|
router.push('/index/emergency') |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const saveIdInfo = ()=> { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//回显急诊信息 |
|
|
//回显急诊信息 |
|
|
const showEmergencyInfo = (item: EmergencyPosStateMessage['data']['tube']) => { |
|
|
const showEmergencyInfo = (item: EmergencyPosStateMessage['data']['tube']) => { |
|
|
console.log('回显急诊信息', item) |
|
|
console.log('回显急诊信息', item) |
|
|