From 49206ee0689d44367b9f5de3decf0c3ec02bfb51 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期二, 15 四月 2025 10:56:18 +0800 Subject: [PATCH] update --- src/views/ecg/doctor/components/DevInstallPanel.vue | 181 +++++++++++++++++++++++++++++--------------- 1 files changed, 118 insertions(+), 63 deletions(-) diff --git a/src/views/ecg/doctor/components/DevInstallPanel.vue b/src/views/ecg/doctor/components/DevInstallPanel.vue index dc8b793..9dc5525 100644 --- a/src/views/ecg/doctor/components/DevInstallPanel.vue +++ b/src/views/ecg/doctor/components/DevInstallPanel.vue @@ -7,21 +7,22 @@ v-loading="formLoading" > <el-form-item label="妫�鏌ラ」鐩�" prop=""> - {{formData.checkType && checkTypeStore.getCheckTypeName(formData.checkType)}} + {{formData?.checkType && 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="getDisplayBarcode()" :value="getDisplayBarcode()" :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"> - <dict-tag :type="DICT_TYPE.ECG_PAT_SOURCE" :value="formData.patSrc" /> - {{formData.patDetails?.deptDesc}} {{formData.patDetails?.wardDesc}} {{formData.patDetails?.bedNo}} + <el-form-item label="鎮h�呮弿杩�" prop="patDetails"> + <dict-tag :type="DICT_TYPE.ECG_PAT_SOURCE" :value="formData.patDetails?.source ||''" /> + {{formData?.patDetails?.deptDesc}} {{formData?.patDetails?.wardDesc}} {{formData?.patDetails?.bedNo}} </el-form-item> <el-form-item label="瑁呮満鏃堕棿" prop="rentTime"> <el-date-picker @@ -37,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> + {{devInfo?.brand || '-'}} {{devInfo?.model || '-' }} {{tranlateDevState(devInfo?.state)}} </el-form-item> <el-form-item label="澶囨敞" prop="remark"> <el-input v-model="formData.remark" placeholder="璇疯緭鍏ュ娉�" /> @@ -83,7 +82,7 @@ :formatter="dateFormatter" width="180px" /> - <el-table-column label="鎿嶄綔" align="center" min-width="120px"> +<!-- <el-table-column label="鎿嶄綔" align="center" min-width="120px"> <template #default="scope"> <el-button link @@ -102,7 +101,7 @@ 鍒犻櫎 </el-button> </template> - </el-table-column> + </el-table-column>--> </el-table> <!-- 鍒嗛〉 --> <Pagination @@ -121,12 +120,14 @@ import {JobRecordApi, JobRecordVO} from "@/api/ecg/jobrecord"; import {isStringEmpty} from "@/utils/stringUtil"; import {curDayEnd, curDayStart} from "@/utils/dateUtil"; -import {DeviceApi} from "@/api/ecg/devmanage"; +import {DeviceApi, DeviceVO} 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"; +import {getCheckTypeName} from "../../../../utils/checkTypeFormatter"; /** 璁惧瑁呮満 琛ㄥ崟 */ defineComponent({ name: 'DevInstallPanel' }) @@ -137,6 +138,43 @@ required: true } }) + +const { t } = useI18n() // 鍥介檯鍖� +const message = useMessage() // 娑堟伅寮圭獥 + +const dialogVisible = ref(false) // 寮圭獥鐨勬槸鍚﹀睍绀� + +const formRef = ref() // 琛ㄥ崟 Ref + +const displayBarCode = ref<string> () + +const formLoading = ref(false) // 琛ㄥ崟鐨勫姞杞戒腑锛�1锛変慨鏀规椂鐨勬暟鎹姞杞斤紱2锛夋彁浜ょ殑鎸夐挳绂佺敤 + +const formData = ref<Partial<DevRentVO>>({ + applyNo: undefined, + episodeId: undefined, + patId: '', + patName: '', + rentTime: new Date().getTime(), + devId: '', + remark: '', + checkType: undefined, +}) + +const devInfo = ref<Partial<DeviceVO>>({ + category: undefined, + brand: undefined, + model: undefined, + state: undefined, +}) + +const formRules = reactive({ + 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 emit = defineEmits(['event_dev_install']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋� @@ -149,27 +187,11 @@ 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() // 娑堟伅寮圭獥 - -const dialogVisible = ref(false) // 寮圭獥鐨勬槸鍚﹀睍绀� - -const formLoading = ref(false) // 琛ㄥ崟鐨勫姞杞戒腑锛�1锛変慨鏀规椂鐨勬暟鎹姞杞斤紱2锛夋彁浜ょ殑鎸夐挳绂佺敤 - -const formData = ref({}) - -const formRules = reactive({ - 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 submitForm = async () => { @@ -178,6 +200,9 @@ // 鎻愪氦璇锋眰 formLoading.value = true try { + if (null == formData.value) + return + formData.value.roomId = props.room.roomId formData.value.bedNo = props.room.bedNo const data = formData.value as unknown as DevRentVO @@ -200,63 +225,69 @@ devId: undefined, patId: undefined, patName: undefined, - patDeptCode: undefined, - patDeptDesc: undefined, - patWardCode: undefined, - patWardDesc: undefined, - patBedNo: undefined, rentTime: new Date().getTime(), returnTime: undefined, interference: undefined, baseline: undefined, detachment: undefined, remark: undefined, - category: '', - brand: '', - model: '', + checkType: undefined, } formRef.value?.resetFields() + devInfo.value = { + category: undefined, + brand: undefined, + model: undefined, + state: undefined, + } } const getDevInfo = async () => { - if (isStringEmpty(formData.value.devId)) { - formData.value.category = "" - formData.value.brand = "" - formData.value.model = "" + if (formData.value?.devId == null) { + devInfo.value.brand = undefined + devInfo.value.model = undefined + devInfo.value.state = undefined 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 + const data = await DeviceApi.getDeviceByDevId(formData.value?.devId) + if ( null !== data) + devInfo.value = data } const getRentInfoByPatId = () => { - const tempPatId = formData.value.patId; + if (null == formData.value?.patId) + return; + + const tempPatId = formData.value?.patId; resetForm() if (isStringEmpty(tempPatId)) return formData.value.patId = tempPatId; getReadyRentInfo(formData.value) + copyBarcode() } +// 鑾峰彇鎮h�呯殑棰嗙敤淇℃伅 const getReadyRentInfo = async (devRentVO) => { const data = await DevRentApi.getReadyRent(devRentVO) - if (null === data) + if ( data == null) return - // 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 + formData.value = data //涓嶈兘鏁翠釜璧嬪�硷紝 榛樿瑁呮満鏃堕棿琚竻绌� + if (formData.value == null) + return + + // 榛樿瑁呮満鏃堕棿 閲囩敤褰撳墠鏃ユ湡 + formData.value.rentTime = new Date().getTime() + + // 璁╁尰鐢熸墜鍔ㄨ緭鍏ワ紝閬垮厤鍑洪敊 + formData.value.devId = '' + devInfo.value.category = undefined + devInfo.value.brand = undefined + devInfo.value.model = undefined + devInfo.value.state = undefined } const loading = ref(true) // 鍒楄〃鐨勫姞杞戒腑 @@ -294,7 +325,14 @@ } const getSelectedRent = async (rentId) => { - formData.value = await DevRentApi.getDevRent(rentId) + const data = await DevRentApi.getDevRent(rentId) + + formData.value = data + + devInfo.value.category = data.category + devInfo.value.brand = data.brand + devInfo.value.model = data.model + devInfo.value.state = data.devState } const cancelInstall = async () => { @@ -315,22 +353,39 @@ getList() } -const getDisplayBarcode = () => { +const getDisplayBarcode = (): string => { if (!formData.value.checkType) return "" const displayBarcode: number[] = checkTypeStore.getCheckTypeDispBarCode(formData.value.checkType!) - if (!displayBarcode.includes( formData.value.patSrc )) + if (formData.value.patDetails == null || formData.value.patDetails.source == null || + !displayBarcode.includes( formData.value.patDetails.source )) 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 getBarcode() +} + +const getBarcode = (): string => { + if (!formData.value.checkType) + return "" + + const patSource = formData.value.patDetails?.source + if (patSource == null) + return "" + + if (1 === patSource || 2 === patSource) + return formData.value.applyNo??"" + else if (3 === patSource || 4 === patSource) + return formData.value.episodeId??"" return "" } +const copyBarcode = async () => { + displayBarCode.value = getDisplayBarcode() + await navigator.clipboard.writeText( getBarcode() ); +} + /** 鍒濆鍖� **/ onMounted(() => { resetForm() -- Gitblit v1.9.3