From b697737f281023871227b26b6c9d6c309cd3e899 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 31 三月 2025 14:23:19 +0800
Subject: [PATCH] feat: 接口对接

---
 src/views/InsuranceClaim/hooks/index.ts |   79 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 77 insertions(+), 2 deletions(-)

diff --git a/src/views/InsuranceClaim/hooks/index.ts b/src/views/InsuranceClaim/hooks/index.ts
index 2bd62b9..3da1f4b 100644
--- a/src/views/InsuranceClaim/hooks/index.ts
+++ b/src/views/InsuranceClaim/hooks/index.ts
@@ -8,9 +8,13 @@
 
 type UseInsuranceClaimDetailOptions = {
   insuranceOrderId?: MaybeRef<string>;
+  fromRoute?: MaybeRef<string>;
 };
 
-export function useInsuranceClaimDetail({ insuranceOrderId }: UseInsuranceClaimDetailOptions) {
+export function useInsuranceClaimDetail({
+  insuranceOrderId,
+  fromRoute,
+}: UseInsuranceClaimDetailOptions) {
   const DefaultAccidentProcess = `浜嬫晠缁忚繃:
 娌荤枟鍖婚櫌:浜岀骇鍙婁互涓婂叕绔嬪尰闄�
 璇婃柇缁撴灉(涓庤瘖鏂瘉鏄庝竴鑷�)
@@ -55,6 +59,7 @@
 
   const form = reactive({
     insuranceOrderId: unref(insuranceOrderId),
+    fromRoute: unref(fromRoute),
     reportedTime: '',
     accidentTime: '',
     ...DefaultForm,
@@ -154,6 +159,76 @@
     });
   }
 
+  const { isLoading: isClaimDetailLoading } = useQuery({
+    queryKey: ['insuranceClaimServices/getInsuranceClaimDetail', _insuranceOrderId],
+    queryFn: async () => {
+      return await insuranceClaimServices.getInsuranceClaimDetail(
+        { id: form.insuranceOrderId },
+        {
+          showLoading: false,
+        }
+      );
+    },
+    placeholderData: () => ({} as API.InsuranceClaimDetailOutput),
+    onSuccess(data) {
+      if (data) {
+        form.name = data.name;
+        form.idNumber = data.idNumber;
+        // form.insuredInstitution = data.insuredInstitution;
+        form.insuranceScheme = data.insuranceScheme;
+        form.reportedTime = data.reportedTime;
+        form.contactNumber = data.contactNumber;
+        form.bakContactNumber = data.bakContactNumber;
+        form.accidentType = data.accidentType;
+        form.accidentTime = data.accidentTime;
+        form.disabilityRatio = data.disabilityRatio ?? 0;
+        form.accidentAddress = data.accidentAddress;
+        form.accidentProcess = data.accidentProcess ?? DefaultAccidentProcess;
+
+        form.insuranceBeginTime = data.insuranceBeginTime;
+        form.insuranceEndTime = data.insuranceEndTime;
+        form.laborContractEnterprise = data.laborContractEnterprise;
+        form.workEnterprise = data.workEnterprise;
+        form.workType = data.workType;
+
+        form.channel = data.channel;
+        form.onJobFlag = data.onJobFlag;
+        form.gender = data.gender;
+        form.age = data.age;
+        form.premiumAmount = data.premiumAmount;
+        form.incDecAmount = data.incDecAmount;
+
+        form.claimResult = data.claimResult ?? ('' as any as InsuranceClaimResultEnum);
+        form.claimResultTime = data.claimResultTime ?? '';
+        form.downPaymentAmount = data.downPaymentAmount ?? 0;
+
+        const attachmentIdCard = convertAttAchmentsToForm(
+          data.attachments,
+          InsuranceClaimAttachmentBusinessTypeEnum.InjuredIdCardImg
+        );
+        form.attachmentFrontIdCards = attachmentIdCard[0] ? [attachmentIdCard[0]] : [];
+        form.attachmentBackIdCards = attachmentIdCard[1] ? [attachmentIdCard[1]] : [];
+        form.attachmentSites = convertAttAchmentsToForm(
+          data.attachments,
+          InsuranceClaimAttachmentBusinessTypeEnum.InjurySiteImg
+        );
+        form.attachmentHandheldIdCards = convertAttAchmentsToForm(
+          data.attachments,
+          InsuranceClaimAttachmentBusinessTypeEnum.InjuredHandheldIdCardImg
+        );
+        form.attachmentAreas = convertAttAchmentsToForm(
+          data.attachments,
+          InsuranceClaimAttachmentBusinessTypeEnum.InjuredAreaImg
+        );
+        form.attachmentCases = convertAttAchmentsToForm(
+          data.attachments,
+          InsuranceClaimAttachmentBusinessTypeEnum.CasesImg
+        );
+      }
+    },
+    enabled: computed(() => !!form.insuranceOrderId && form.fromRoute === 'InsuranceOrderDetail'),
+  });
+
   const { isLoading } = useQuery({
     queryKey: ['insuranceOrderServices/getInsuranceOrderDetail', _insuranceOrderId],
     queryFn: async () => {
@@ -168,7 +243,7 @@
     onSuccess(data) {
       importInsuranceOrderData(data);
     },
-    enabled: computed(() => !!form.insuranceOrderId),
+    enabled: computed(() => !!form.insuranceOrderId && form.fromRoute !== 'InsuranceOrderDetail'),
   });
 
   function importInsuranceOrderData(data: API.InsuranceOrderListOutput) {

--
Gitblit v1.9.1