ソースを参照

fix: 修复急诊注册功能的类型错误和异常处理

- 修复 src/domain/patient/registrationGenerator.ts 中缺失的宠物相关属性 (owner_name, is_anaesthesia, is_sedation)
- 在 src/pages/security/Login.tsx 中为急诊按钮添加异常处理和防止表单提交
- 优化 src/domain/patient/handleEmergencyOperation.ts 中的急诊操作流程
sw 2 週間 前
コミット
77c7b62931

+ 7 - 2
src/domain/patient/handleEmergencyOperation.ts

@@ -19,9 +19,14 @@ const handleEmergencyOperation = async () => {
 
     // Step 2: Register Emergency Work
     const registrationResult = await registerWork(registrationInfo);
-    if (!registrationResult) {
-      throw new Error('Failed to register emergency work');
+    if (!registrationResult || registrationResult.code !== '0x000000') {
+      throw new Error(
+        `Failed to register emergency work : ${JSON.stringify(registrationResult)}`
+      );
     }
+    console.info(
+      `Emergency registration result: ${JSON.stringify(registrationResult)}`
+    );
 
     // Switch system mode back to normal
     // dispatch(setSystemMode(SystemMode.Normal));

+ 3 - 0
src/domain/patient/registrationGenerator.ts

@@ -46,6 +46,9 @@ const generateRegistrationInfo = (): RegisterInfo => {
     thickness: 0,
     length: 0,
     comment: '',
+    owner_name: '', // 宠物主人姓名
+    is_anaesthesia: false, // 麻醉状态
+    is_sedation: false, // 是否镇静
   };
 
   // 获取用于急诊的所有procudure

+ 16 - 1
src/pages/security/Login.tsx

@@ -64,6 +64,21 @@ const Login: React.FC = () => {
     }
   };
 
+  // 急诊操作处理流程
+  const handleEmergencyClick = async (e: React.MouseEvent<HTMLElement>) => {
+    e.preventDefault(); // 阻止表单提交
+    try {
+      await handleEmergencyOperation();
+      message.success('急诊模式启动成功');
+    } catch (e) {
+      dispatch(setSystemMode(SystemMode.Normal));
+      message.error(
+        `急诊操作失败: ${e instanceof Error ? e.message : '未知错误'}`
+      );
+      console.error('Emergency operation failed:', e);
+    }
+  };
+
   return (
     <Row
       className="fixed inset-0 z-50 bg-white bg-opacity-100 w-full h-full flex items-center justify-center"
@@ -126,7 +141,7 @@ const Login: React.FC = () => {
                     type="primary"
                     size="large"
                     className="w-full"
-                    onClick={handleEmergencyOperation}
+                    onClick={handleEmergencyClick}
                   >
                     急诊
                   </Button>