From 3fd7a12be67b3412035731aa8ff23575b92d6009 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期三, 27 十一月 2024 14:15:04 +0800
Subject: [PATCH] 预约小票 格式调整
---
src/views/ecg/appointment/AppointmentForm.vue | 91 ++++++++++++++++++++++++++++++++++-----------
1 files changed, 69 insertions(+), 22 deletions(-)
diff --git a/src/views/ecg/appointment/AppointmentForm.vue b/src/views/ecg/appointment/AppointmentForm.vue
index 3fdc288..864f5a3 100644
--- a/src/views/ecg/appointment/AppointmentForm.vue
+++ b/src/views/ecg/appointment/AppointmentForm.vue
@@ -10,7 +10,7 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="鎮h�呯紪鍙�" prop="patId">
- <el-input v-model="formData.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" />
+ <el-input v-model="formData.patId" placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" clearable @input="searchBookInfo"/>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -26,7 +26,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)"
:key="dict.value"
- :label="dict.value"
+ :value="dict.value"
>
{{ dict.label }}
</el-radio>
@@ -51,7 +51,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="棰勭害鏃堕棿娈�" prop="bookTimeslot">
+ <el-form-item label="棰勭害鏃堕棿" prop="bookTimeslot">
<el-select v-model="formData.bookTimeslot" placeholder="璇烽�夋嫨棰勭害鏃堕棿娈�">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.ECG_BOOK_TIMESLOT)"
@@ -65,10 +65,10 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12">
- <el-form-item label="棰勭害妫�鏌ョ被鍨�" prop="bookCheckType">
- <el-select v-model="formData.bookCheckType" placeholder="璇烽�夋嫨棰勭害妫�鏌ョ被鍨�">
+ <el-form-item label="妫�鏌ョ被鍨�" prop="bookCheckType">
+ <el-select v-model="formData.bookCheckType" placeholder="璇烽�夋嫨妫�鏌ョ被鍨�">
<el-option
- v-for="dict in getIntDictOptions(DICT_TYPE.ECG_CHECK_TYPE)"
+ v-for="dict in checkTypeStore.getCheckTypeOptions()"
:key="dict.value"
:label="dict.label"
:value="dict.value"
@@ -113,25 +113,25 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12">
- <el-form-item label="鎮h�呮墍鍦ㄧ瀹や唬鐮�" prop="patDeptCode">
- <el-input v-model="formData.patDeptCode" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ瀹や唬鐮�" />
+ <el-form-item label="绉戝浠g爜" prop="patDeptCode">
+ <el-input v-model="formData.patDeptCode" placeholder="璇疯緭鍏ョ瀹や唬鐮�" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鎮h�呮墍鍦ㄧ瀹ゅ悕绉�" prop="patDeptDesc">
- <el-input v-model="formData.patDeptDesc" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ瀹ゅ悕绉�" />
+ <el-form-item label="绉戝鍚嶇О" prop="patDeptDesc">
+ <el-input v-model="formData.patDeptDesc" placeholder="璇疯緭鍏ョ瀹ゅ悕绉�" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
- <el-form-item label="鎮h�呮墍鍦ㄧ梾鍖轰唬鐮�" prop="patWardCode">
- <el-input v-model="formData.patWardCode" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ梾鍖轰唬鐮�" />
+ <el-form-item label="鐥呭尯浠g爜" prop="patWardCode">
+ <el-input v-model="formData.patWardCode" placeholder="璇疯緭鍏ョ梾鍖轰唬鐮�" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鎮h�呮墍鍦ㄧ梾鍖哄悕绉�" prop="patWardDesc">
- <el-input v-model="formData.patWardDesc" placeholder="璇疯緭鍏ユ偅鑰呮墍鍦ㄧ梾鍖哄悕绉�" />
+ <el-form-item label="鐥呭尯鍚嶇О" prop="patWardDesc">
+ <el-input v-model="formData.patWardDesc" placeholder="璇疯緭鍏ョ梾鍖哄悕绉�" />
</el-form-item>
</el-col>
</el-row>
@@ -142,6 +142,11 @@
</el-form-item>
</el-col>
</el-row>
+ <el-form-item label="浠樻鏍囪" prop="paid">
+ <el-checkbox v-model="formData.paid" :true-label=1 :false-label=0>
+ 宸蹭粯娆�
+ </el-checkbox>
+ </el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading">纭� 瀹�</el-button>
@@ -152,9 +157,12 @@
<script setup lang="ts">
import {DICT_TYPE, getIntDictOptions} from '@/utils/dict'
import { AppointmentApi, AppointmentVO } from '@/api/ecg/appointment'
+import {useCheckTypeStore} from "@/store/modules/checkType";
/** 棰勭害 琛ㄥ崟 */
defineOptions({ name: 'AppointmentForm' })
+
+const checkTypeStore = useCheckTypeStore();
const { t } = useI18n() // 鍥介檯鍖�
const message = useMessage() // 娑堟伅寮圭獥
@@ -181,13 +189,14 @@
bookTime: undefined,
bookDate: new Date().getTime(),
bookTimeslot: 9000930,
- bookCheckType: 10
+ bookCheckType: 100, //甯歌妫�鏌�
+ paid: 0,
})
const formRules = reactive({
patId: [{ required: true, message: '鎮h�呯紪鍙蜂笉鑳戒负绌�', trigger: 'blur' }],
patName: [{ required: true, message: '鎮h�呭鍚嶄笉鑳戒负绌�', trigger: 'blur' }],
patGender: [{ required: true, message: '鎮h�呮�у埆涓嶈兘涓虹┖', trigger: 'blur' }],
- bookId: [{ required: true, message: '棰勭害缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
+ // bookId: [{ required: true, message: '棰勭害缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
bookDate: [{ required: true, message: '棰勭害鏃ユ湡涓嶈兘涓虹┖', trigger: 'blur' }],
bookTimeslot: [{ required: true, message: '棰勭害妫�鏌ユ椂闂存涓嶈兘涓虹┖', trigger: 'blur' }],
bookCheckType: [{ required: true, message: '棰勭害妫�鏌ョ被鍨嬩笉鑳戒负绌�', trigger: 'change' }]
@@ -210,10 +219,25 @@
}
}
}
-defineExpose({ open }) // 鎻愪緵 open 鏂规硶锛岀敤浜庢墦寮�寮圭獥
+const openByQueue = async (type: string, patId: string, checkType: number) => {
+ dialogVisible.value = true
+ dialogTitle.value = t('action.' + type)
+ formType.value = type
+ resetForm()
+ // 淇敼鏃讹紝璁剧疆鏁版嵁
+ if (patId) {
+ formLoading.value = true
+ try {
+ formData.value = await AppointmentApi.getCurAppointmentByPatIdAndCheckType( patId, checkType )
+ } finally {
+ formLoading.value = false
+ }
+ }
+}
+defineExpose({ open, openByQueue }) // 鎻愪緵 open 鏂规硶锛岀敤浜庢墦寮�寮圭獥
/** 鎻愪氦琛ㄥ崟 */
-const emit = defineEmits(['success']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋�
+const emit = defineEmits(['event_appointment_success']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋�
const submitForm = async () => {
// 鏍¢獙琛ㄥ崟
await formRef.value.validate()
@@ -223,14 +247,16 @@
const data = formData.value as unknown as AppointmentVO
if (formType.value === 'create') {
await AppointmentApi.createAppointment(data)
+ // 鍙戦�佹搷浣滄垚鍔熺殑浜嬩欢
+ emit('event_appointment_success')
message.success(t('common.createSuccess'))
- } else {
+ } else if (formType.value === 'update') {
await AppointmentApi.updateAppointment(data)
+ // 鍙戦�佹搷浣滄垚鍔熺殑浜嬩欢
+ emit('event_appointment_success')
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
- // 鍙戦�佹搷浣滄垚鍔熺殑浜嬩欢
- emit('success')
} finally {
formLoading.value = false
}
@@ -256,8 +282,29 @@
bookTime: undefined,
bookDate: new Date().getTime(),
bookTimeslot: 9000930,
- bookCheckType: 10
+ bookCheckType: checkTypeStore.getCheckTypeName(100),
+ paid: 0,
}
formRef.value?.resetFields()
}
+
+const searchBookInfo = async () => {
+ const tmpPatId = formData.value.patId
+ if (null === tmpPatId || "" === tmpPatId)
+ return
+
+ const data = await AppointmentApi.queryAppointmentFromHis( tmpPatId ) // 瀵瑰簲鏁版嵁搴撲腑 pat_id
+ console.info( data )
+ if (null !== data) {
+ formData.value = data
+ return
+ }
+
+ ElNotification({
+ title: '娓╅Θ鎻愮ず',
+ message: "娌℃湁寮�鍗曚俊鎭�",
+ type: 'warning'
+ })
+}
+
</script>
--
Gitblit v1.9.3