From 3339fa19a6b295e827f4fc41694701490cbd3e66 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期四, 10 四月 2025 11:20:08 +0800 Subject: [PATCH] 拆机: 允许 已领用的拆机 --- src/views/ecg/doctor/components/DevInstallPanel.vue | 125 +++++++++++++++++++++++++++++++---------- 1 files changed, 95 insertions(+), 30 deletions(-) diff --git a/src/views/ecg/doctor/components/DevInstallPanel.vue b/src/views/ecg/doctor/components/DevInstallPanel.vue index 442d30e..9253690 100644 --- a/src/views/ecg/doctor/components/DevInstallPanel.vue +++ b/src/views/ecg/doctor/components/DevInstallPanel.vue @@ -6,16 +6,23 @@ label-width="100px" v-loading="formLoading" > + <el-form-item label="妫�鏌ラ」鐩�" prop=""> + {{formData.checkType && checkTypeStore.getCheckTypeName(formData.checkType)}} + </el-form-item> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="鎮h�呯紪鍙�" prop="patId"> <el-input v-model="formData.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" @input="getRentInfoByPatId" /> +<!-- <Qrcode v-if="formData.patId !== undefined && formData.patId !== ''" :text="formData.patId" logo="/logo.gif" width=100 />--> + <Barcode v-if="displayBarCode" :value="displayBarCode" :width=100 /> + <el-button @click="copyBarcode()">澶嶅埗</el-button> </el-form-item> <el-form-item label="鎮h�呭悕绉�" prop="patName"> <el-input v-model="formData.patName" placeholder="璇疯緭鍏ユ偅鑰呭悕绉�" /> </el-form-item> <el-form-item label="鎮h�呮弿杩�" prop="patDeptDesc"> - 绉戝: {{formData.patDeptDesc}} 鐥呭尯: {{formData.patWardDesc}} 搴婁綅: {{formData.patBedNo}} + <dict-tag :type="DICT_TYPE.ECG_PAT_SOURCE" :value="formData.patSrc" /> + {{formData.patDetails?.deptDesc}} {{formData.patDetails?.wardDesc}} {{formData.patDetails?.bedNo}} </el-form-item> <el-form-item label="瑁呮満鏃堕棿" prop="rentTime"> <el-date-picker @@ -31,9 +38,7 @@ <el-input v-model="formData.devId" placeholder="璇疯緭鍏ヨ澶囩紪鍙�" @input="getDevInfo"/> </el-form-item> <el-form-item label="璁惧鎻忚堪" prop=""> - <span v-if="formData.brand !== null"> {{formData.brand}} </span> - {{" "}} - <span v-if="formData.model !== null"> {{formData.model}} </span> + {{formData.brand + " " + formData.model + " " + tranlateDevState(formData.state)}} </el-form-item> <el-form-item label="澶囨敞" prop="remark"> <el-input v-model="formData.remark" placeholder="璇疯緭鍏ュ娉�" /> @@ -116,11 +121,39 @@ import {isStringEmpty} from "@/utils/stringUtil"; import {curDayEnd, curDayStart} from "@/utils/dateUtil"; import {DeviceApi} from "@/api/ecg/devmanage"; +import {QueueVO} from "@/api/ecg/queue"; +import {RoomBedVO} from "@/api/ecg/doctor"; +import {Barcode} from "@/components/Barcode"; +import {useCheckTypeStore} from "@/store/modules/checkType"; +import {DICT_TYPE} from "@/utils/dict"; +import {tranlateDevState} from "../../../../utils/statusFormatter"; -/** 瑁呮満 琛ㄥ崟 */ -defineOptions({ name: 'DevrInstall' }) +/** 璁惧瑁呮満 琛ㄥ崟 */ +defineComponent({ name: 'DevInstallPanel' }) + +const props = defineProps({ + room: { + type: Object as PropType<RoomBedVO>, + required: true + } +}) const emit = defineEmits(['event_dev_install']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋� + +const checkTypeStore = useCheckTypeStore() + +const setPatient = (queueVO: QueueVO | undefined) => { + resetForm() + formData.value.applyNo = queueVO?.applyNo + formData.value.episodeId = queueVO?.episodeId + formData.value.patId = queueVO?.patId + formData.value.patName = queueVO?.patName + formData.value.checkType = queueVO?.bookCheckType + formData.value.patSrc = queueVO?.patDetails.source + getReadyRentInfo(formData.value) + copyBarcode() +} +defineExpose({ setPatient }) // 鎻愪緵 setPatient 鏂规硶锛岀敤浜庤缃偅鑰� const { t } = useI18n() // 鍥介檯鍖� const message = useMessage() // 娑堟伅寮圭獥 @@ -132,10 +165,14 @@ const formData = ref({}) const formRules = reactive({ - // devId: [{ required: true, message: '璁惧缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }], + devId: [{ required: true, message: '璁惧缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }], rentTime: [{ required: true, message: '璇烽�夋嫨瑁呮満鏃ユ湡', trigger: 'blur' }], + patId: [{ required: true, message: '鎮h�呬笉鑳戒负绌�', trigger: 'blur' }], + patName: [{ required: true, message: '鎮h�呭悕涓嶈兘涓虹┖', trigger: 'blur' }] }) const formRef = ref() // 琛ㄥ崟 Ref + +const displayBarCode = ref<string> () /** 鎻愪氦琛ㄥ崟 */ const submitForm = async () => { @@ -144,8 +181,9 @@ // 鎻愪氦璇锋眰 formLoading.value = true try { + formData.value.roomId = props.room.roomId + formData.value.bedNo = props.room.bedNo const data = formData.value as unknown as DevRentVO - //await DevRentApi.updateDevRent(data) await DevRentApi.devInstall(data) message.success(t('鎿嶄綔鎴愬姛')) dialogVisible.value = false @@ -179,6 +217,7 @@ category: '', brand: '', model: '', + state: -1, } formRef.value?.resetFields() } @@ -188,27 +227,17 @@ formData.value.category = "" formData.value.brand = "" formData.value.model = "" + formData.value.state = -1 return } const data = await DeviceApi.getDeviceByDevId(formData.value.devId!) console.info( data ) - formData.value.category = data === null ? "" : data.category - formData.value.brand = data === null ? "" : data.brand - formData.value.model = data === null ? "" : data.model + formData.value.category = data?.category || "" + formData.value.brand = data?.brand || "" + formData.value.model = data?.model || "" + formData.value.state = data?.state || -1 } - -/* -const getRentInfoByDevId = () => { - const tempDevId = formData.value.devId; - resetForm() - if (isStringEmpty(tempDevId)) - return - - formData.value.devId = tempDevId; - getRentInfo() -} -*/ const getRentInfoByPatId = () => { const tempPatId = formData.value.patId; @@ -217,19 +246,25 @@ return formData.value.patId = tempPatId; - getRentInfo() + getReadyRentInfo(formData.value) + copyBarcode() } -const getRentInfo = async () => { - const data = await DevRentApi.getReadyRent(formData.value) +const getReadyRentInfo = async (devRentVO) => { + const data = await DevRentApi.getReadyRent(devRentVO) if (null === data) return - formData.value = data - if (data.returnTime === null) - data.returnTime = new Date().getTime() + // formData.value = data //涓嶈兘鏁翠釜璧嬪�硷紝 榛樿瑁呮満鏃堕棿琚竻绌� + formData.value.id = data.id; + formData.value.applyNo = data.applyNo; + formData.value.episodeId = data.episodeId; + //formData.value.devId = data.devId // 璁╁尰鐢熸墜鍔ㄨ緭鍏ワ紝閬垮厤鍑洪敊 + formData.value.category = data.category + formData.value.brand = data.brand + formData.value.model = data.model + formData.value.patDetails = data.patDetails } - const loading = ref(true) // 鍒楄〃鐨勫姞杞戒腑 const list = ref<JobRecordVO[]>([]) // 鍒楄〃鐨勬暟鎹� @@ -270,6 +305,8 @@ } const cancelInstall = async () => { + formData.value.roomId = props.room.roomId + formData.value.bedNo = props.room.bedNo const data = formData.value as unknown as DevRentVO if (formData.value.id === null || formData.value.id === undefined) { const result = await DevRentApi.devInstallCancel(data) @@ -285,6 +322,34 @@ getList() } +const getDisplayBarcode = (): string => { + if (!formData.value.checkType) + return "" + + const displayBarcode: number[] = checkTypeStore.getCheckTypeDispBarCode(formData.value.checkType!) + if (!displayBarcode.includes( formData.value.patSrc )) + return "" + + return getBarcode() +} + +const getBarcode = (): string => { + if (!formData.value.checkType) + return "" + + if (1 === formData.value.patSrc || 2 === formData.value.patSrc) + return formData.value.applyNo??"" + else if (3 === formData.value.patSrc || 4 === formData.value.patSrc) + return formData.value.episodeId??"" + + return "" +} + +const copyBarcode = async () => { + displayBarCode.value = getDisplayBarcode() + await navigator.clipboard.writeText( getBarcode() ); +} + /** 鍒濆鍖� **/ onMounted(() => { resetForm() -- Gitblit v1.9.3