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