From d09fe6aa593b974119628baf5e91bdfd0de7c378 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 10 四月 2025 10:42:26 +0800
Subject: [PATCH] 翻译 设备状态信息

---
 src/views/ecg/appointment/AppointmentForm.vue |   80 +++++++++++++++++++++++++++++----------
 1 files changed, 59 insertions(+), 21 deletions(-)

diff --git a/src/views/ecg/appointment/AppointmentForm.vue b/src/views/ecg/appointment/AppointmentForm.vue
index a1a18ed..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,8 +65,8 @@
       </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 checkTypeStore.getCheckTypeOptions()"
                   :key="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,7 +142,7 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <el-form-item label="宸蹭粯娆炬爣璁�" prop="paid">
+      <el-form-item label="浠樻鏍囪" prop="paid">
         <el-checkbox v-model="formData.paid" :true-label=1 :false-label=0>
           宸蹭粯娆�
         </el-checkbox>
@@ -196,7 +196,7 @@
   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' }]
@@ -219,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()
@@ -232,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
   }
@@ -265,8 +282,29 @@
     bookTime: undefined,
     bookDate: new Date().getTime(),
     bookTimeslot: 9000930,
-    bookCheckType: checkTypeStore.getCheckTypeName(100)
+    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