From 348e6bcdc7fa566a48b96dea53d24ec6dda49e1d Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期五, 11 四月 2025 18:06:40 +0800 Subject: [PATCH] update --- src/views/ecg/doctor/DevDismantle.vue | 77 +++++++++++++++++++++++++++++++++----- 1 files changed, 67 insertions(+), 10 deletions(-) diff --git a/src/views/ecg/doctor/DevDismantle.vue b/src/views/ecg/doctor/DevDismantle.vue index 22331cc..724af68 100644 --- a/src/views/ecg/doctor/DevDismantle.vue +++ b/src/views/ecg/doctor/DevDismantle.vue @@ -1,3 +1,4 @@ +<!--鎷嗘満鐣岄潰--> <template> <el-form ref="formRef" @@ -15,7 +16,7 @@ <el-input v-model="formData.patName" placeholder="璇疯緭鍏ユ偅鑰呭悕绉�" /> </el-form-item> <el-form-item label="鎮h�呮弿杩�" prop="patDeptDesc"> - 绉戝: {{formData.patDeptDesc}} 鐥呭尯: {{formData.patWardDesc}} 搴婁綅: {{formData.patBedNo}} + 绉戝: {{formData?.patDetails?.deptDesc}} 鐥呭尯: {{formData?.patDetails?.wardDesc}} 搴婁綅: {{formData?.patDetails?.bedNo}} </el-form-item> <el-form-item label="瑁呮満鏃堕棿" prop="rentTime"> <el-date-picker @@ -32,7 +33,7 @@ <el-input v-model="formData.devId" placeholder="璇疯緭鍏ヨ澶囩紪鍙�" @input="getRentInfoByDevId" /> </el-form-item> <el-form-item label="璁惧鎻忚堪" prop=""> - {{formData.brand + " " + formData.model}} + {{formData?.brand + " " + formData?.model + " " + tranlateDevState(formData?.devState)}} </el-form-item> <el-form-item label="鎷嗘満鏃堕棿" prop="returnTime"> <el-date-picker @@ -54,7 +55,7 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鑴辩" prop="detachment"> + <el-form-item label="鑴辫惤" prop="detachment"> <el-switch v-model="formData.detachment" :active-value="1" @@ -76,6 +77,7 @@ <el-button @click="submitForm" type="primary" :disabled="formLoading">鎷嗘満瀹屾垚</el-button> <el-button @click="resetForm()">閲� 缃�</el-button> <el-button @click="loseDismantle" :disabled="formLoading">閬� 澶�</el-button> + <el-button @click="damageDismantle" :disabled="formLoading">鎹� 姣�</el-button> <!-- 鍖荤敓鎷嗘満鍒楄〃 --> <ContentWrap> @@ -85,6 +87,7 @@ <template #default="scope"> <span v-if="scope.row.jobType === 20">"宸叉媶鏈�"</span> <span v-if="scope.row.jobType === 40">"宸查仐澶�"</span> + <span v-if="scope.row.jobType === 42">"宸叉崯姣�"</span> </template> </el-table-column> <!-- <el-table-column label="浣滀笟绫诲瀷" align="center" prop="jobType" />--> @@ -146,12 +149,14 @@ import {dateFormatter} from "@/utils/formatTime"; import {JobRecordApi, JobRecordVO} from "@/api/ecg/jobrecord"; import {isStringEmpty} from "@/utils/stringUtil"; -import {curDayEnd, curDayStart} from "@/utils/dateUtil"; +import {calculateHours, curDayEnd, curDayStart} from "@/utils/dateUtil"; +import {AppointmentApi} from "@/api/ecg/appointment"; +import {tranlateDevState} from "../../../utils/statusFormatter"; /** 瑁呮満鎷嗘満 琛ㄥ崟 */ defineOptions({ name: 'DevrDismantle' }) -const emit = defineEmits(['success']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋� +const emit = defineEmits(['event_dismantle_success']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋� const { t } = useI18n() // 鍥介檯鍖� const message = useMessage() // 娑堟伅寮圭獥 @@ -170,6 +175,37 @@ /** 鎻愪氦琛ㄥ崟 */ const submitForm = async () => { + const data = formData.value as unknown as DevRentVO + const durationHours = calculateHours(data.rentTime!, data.returnTime!) + if (durationHours > 20) { + _submitForm() + return; + } + + ElMessageBox.confirm( + '绂昏鏈轰笉鍒�20灏忔椂锛岀‘瀹氳鎷嗘満鍚楋紵', + 'Warning', + { + confirmButtonText: '濂界殑', + cancelButtonText: '涓嶇敤', + type: 'warning', + } + ) + .then(async () => { + _submitForm() + }) + .catch(() => { +/* + ElNotification({ + title: '娓╅Θ鎻愮ず', + message: '纭澶辫触', + type: 'warning' + }) +*/ + }) +} + +const _submitForm = async () => { // 鏍¢獙琛ㄥ崟 await formRef.value.validate() // 鎻愪氦璇锋眰 @@ -181,7 +217,7 @@ message.success(t('鎿嶄綔鎴愬姛')) dialogVisible.value = false // 鍙戦�佹搷浣滄垚鍔熺殑浜嬩欢 - emit('success') + emit('event_dismantle_success') resetForm() getList() } finally { @@ -189,7 +225,7 @@ } } -// 閬楀け鎿嶄綔 +// 閬楀け.鎷嗘満鎿嶄綔 const loseDismantle = async () => { // 鏍¢獙琛ㄥ崟 await formRef.value.validate() @@ -201,7 +237,27 @@ message.success(t('鎿嶄綔鎴愬姛')) dialogVisible.value = false // 鍙戦�佹搷浣滄垚鍔熺殑浜嬩欢 - emit('success') + emit('event_dismantle_success') + resetForm() + getList() + } finally { + formLoading.value = false + } +} + +// 鎹熸瘉.鎷嗘満鎿嶄綔 +const damageDismantle = async () => { + // 鏍¢獙琛ㄥ崟 + await formRef.value.validate() + // 鎻愪氦璇锋眰 + formLoading.value = true + try { + const data = formData.value as unknown as DevRentVO + await DevRentApi.devDamage(data) + message.success(t('鎿嶄綔鎴愬姛')) + dialogVisible.value = false + // 鍙戦�佹搷浣滄垚鍔熺殑浜嬩欢 + emit('event_dismantle_success') resetForm() getList() } finally { @@ -230,6 +286,7 @@ category: '', brand: '', model: '', + devState: undefined, } formRef.value?.resetFields() } @@ -255,7 +312,7 @@ } const getRentInfo = async () => { - const data = await DevRentApi.getInstalledRent(formData.value) + const data = await DevRentApi.getExistingRent(formData.value) if (null === data) return @@ -271,7 +328,7 @@ const queryParams = reactive({ pageNo: 1, pageSize: 10, - jobType: [20, 40], + jobType: [20, 40, 42], // 妫�鏌ョ姸鎬� docId: undefined, docName: undefined, devId: undefined, -- Gitblit v1.9.3