From babd7a49ba48c83334bbe9a4c992d784e062f6e3 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 04 七月 2025 14:33:47 +0800
Subject: [PATCH] fix: 江佑保系统健壮性修复
---
src/views/Home/components/UploadInsurePersonDialog.vue | 6 +++
src/hooks/dic.ts | 5 ++
src/constants/insuranceClaim.ts | 13 ++++++
src/services/api/typings.d.ts | 8 ++--
src/views/Home/components/InsureOrderInfoView.vue | 74 +++++++++++++++++++++++++++++-------
src/views/Home/components/InsureInstructionsDialog.vue | 3 +
src/views/Home/Home.vue | 3 +
src/services/api/InsuranceOrder.ts | 2
8 files changed, 92 insertions(+), 22 deletions(-)
diff --git a/src/constants/insuranceClaim.ts b/src/constants/insuranceClaim.ts
index 5ec5d81..cdeb0ca 100644
--- a/src/constants/insuranceClaim.ts
+++ b/src/constants/insuranceClaim.ts
@@ -92,6 +92,10 @@
Reject = -10,
/**寰呭鏍� */
WaitAudit = 10,
+ /**寰呭鏍� 寮哄埗鍐嶅鍚庣殑鍐嶅鐘舵��*/
+ WaitReAudit = 11,
+ /**寰呭鏍� 琛ユ彁鍚庣殑鍐嶅鐘舵��*/
+ WaitFillAudit = 12,
/**瀹℃牳涓� */
Auditing = 15,
/**閫氳繃 */
@@ -101,6 +105,15 @@
export const InsurancePolicyAuditStatusEnumText = {
[InsurancePolicyAuditStatusEnum.Reject]: '椹冲洖',
[InsurancePolicyAuditStatusEnum.WaitAudit]: '寰呭鏍�',
+ [InsurancePolicyAuditStatusEnum.WaitReAudit]: '寰呭鏍�',
+ [InsurancePolicyAuditStatusEnum.WaitFillAudit]: '寰呭鏍�',
+ [InsurancePolicyAuditStatusEnum.Auditing]: '瀹℃牳涓�',
+ [InsurancePolicyAuditStatusEnum.Pass]: '閫氳繃',
+};
+
+export const InsurancePolicyAuditStatusEnumTextForFilter = {
+ [InsurancePolicyAuditStatusEnum.Reject]: '椹冲洖',
+ [InsurancePolicyAuditStatusEnum.WaitAudit]: '寰呭鏍�',
[InsurancePolicyAuditStatusEnum.Auditing]: '瀹℃牳涓�',
[InsurancePolicyAuditStatusEnum.Pass]: '閫氳繃',
};
diff --git a/src/hooks/dic.ts b/src/hooks/dic.ts
index 7c5ab3e..e206017 100644
--- a/src/hooks/dic.ts
+++ b/src/hooks/dic.ts
@@ -80,8 +80,13 @@
staleTime: Infinity,
});
+ function getInsureProductSchemeByCode(code: string) {
+ return allInsureProductSchemeList.value.find((x) => x.code === code);
+ }
+
return {
allInsureProductSchemeList,
refetch,
+ getInsureProductSchemeByCode,
};
}
diff --git a/src/services/api/InsuranceOrder.ts b/src/services/api/InsuranceOrder.ts
index 54e53d5..d7fb3a0 100644
--- a/src/services/api/InsuranceOrder.ts
+++ b/src/services/api/InsuranceOrder.ts
@@ -460,7 +460,7 @@
body: API.RestorePolicyInput,
options?: API.RequestConfig
) {
- return request<any>('/api/InsuranceOrder/RestorePolicyStatus', {
+ return request<boolean>('/api/InsuranceOrder/RestorePolicyStatus', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index ebb87b8..17f224a 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -935,6 +935,8 @@
auditRemark?: string;
/** 淇濋櫓浜у搧IdNumber */
productIdNumber?: string;
+ /** 鏂规浠g爜 */
+ productSchemeCode?: string;
/** 鏄惁璧扮嚎涓婃祦绋� */
productOnline?: boolean;
payStatus?: InsurancePolicyListPayStatusEnum;
@@ -1576,7 +1578,7 @@
failCount?: number;
}
- type InsurancePolicyAuditStatusEnum = 10 | 15 | 20 | -10;
+ type InsurancePolicyAuditStatusEnum = 10 | 11 | 12 | 15 | 20 | -10;
type InsurancePolicyListPayStatusEnum = 1 | 2;
@@ -1611,7 +1613,7 @@
invoiceDownloadOssUrl?: string;
}
- type InsurancePolicyPayStatusEnum = 1 | 2 | -1;
+ type InsurancePolicyPayStatusEnum = 0 | 1 | 2 | -1;
type InsurancePolicyStatusEnum = 10 | 20 | 30;
@@ -2083,8 +2085,6 @@
}
interface RestorePolicyDto {
- /** Id */
- id?: string;
/** 璁㈠崟鍙� */
channelOrderNo?: string;
/** 淇濆崟鍙� */
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 8f164ac..de84ceb 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -27,7 +27,7 @@
<QueryFilterItem>
<FieldRadio
v-model="extraParamState.auditStatus"
- :value-enum="InsurancePolicyAuditStatusEnumText"
+ :value-enum="InsurancePolicyAuditStatusEnumTextForFilter"
buttonStyle
showAllBtn
@change="getList()"
@@ -154,6 +154,7 @@
InsurancePolicyStatusEnum,
AppType,
InsurancePolicyAuditStatusEnumText,
+ InsurancePolicyAuditStatusEnumTextForFilter,
InsurancePolicyAuditStatusEnum,
InsurancePolicyProductIdNumberEnum,
InsurancePolicyListPayStatusEnum,
diff --git a/src/views/Home/components/InsureInstructionsDialog.vue b/src/views/Home/components/InsureInstructionsDialog.vue
index 588ff25..7dbb543 100644
--- a/src/views/Home/components/InsureInstructionsDialog.vue
+++ b/src/views/Home/components/InsureInstructionsDialog.vue
@@ -8,6 +8,7 @@
width="600px"
:close-on-click-modal="false"
:close-on-press-escape="false"
+ @close="goTo(`step0`)"
>
<div class="insureInstructionsDialog-content">
<!-- <img :src="IconTaipingLogo" alt="" class="logo" /> -->
@@ -97,7 +98,7 @@
const visibleFiles = ref(false);
-const { isCurrent, goToNext, goToPrevious, isLast, isFirst } = useStepper(
+const { isCurrent, goToNext, goToPrevious, isLast, isFirst, goTo } = useStepper(
InsuranceTempList.map((x, index) => `step${index}`)
);
</script>
diff --git a/src/views/Home/components/InsureOrderInfoView.vue b/src/views/Home/components/InsureOrderInfoView.vue
index 8772799..4c31188 100644
--- a/src/views/Home/components/InsureOrderInfoView.vue
+++ b/src/views/Home/components/InsureOrderInfoView.vue
@@ -94,8 +94,26 @@
</QueryFilterItem>
</template>
<template #btn>
- <template v-if="detail.status === InsurancePolicyStatusEnum.WaitEffect">
- <template v-if="!detail.productOnline">
+ <template v-if="detail.productOnline">
+ <el-button
+ v-if="detail.auditStatus === InsurancePolicyAuditStatusEnum.Pass"
+ @click="handleSupplySubmit()"
+ type="primary"
+ >琛ユ彁</el-button
+ >
+ <template v-if="detail.status !== InsurancePolicyStatusEnum.WaitEffect">
+ <el-button @click="handleExport(InsuranceDetailStatusEnum.Effecting)" type="primary"
+ >瀵煎嚭鍦ㄤ繚浜哄憳</el-button
+ >
+ <el-button @click="handleExport(InsuranceDetailStatusEnum.Fail)" type="primary"
+ >瀵煎嚭閿欒浜哄憳</el-button
+ >
+ <el-button @click="handleGoStampFiles(id)" type="primary">涓嬭浇淇濆崟</el-button>
+ <el-button @click="handleGoDownloadInvoice(id)" type="primary">涓嬭浇鍙戠エ</el-button>
+ </template>
+ </template>
+ <template v-else>
+ <template v-if="detail.status === InsurancePolicyStatusEnum.WaitEffect">
<el-button @click="handleTemplateDownload()" link type="primary"
>妯℃澘涓嬭浇</el-button
>
@@ -113,18 +131,6 @@
</template>
</BlFileUpload>
<el-button @click="handleClear()" type="primary">娓呯┖鏁版嵁</el-button>
- </template>
- </template>
- <template v-else>
- <template v-if="detail.productOnline">
- <el-button @click="handleExport(InsuranceDetailStatusEnum.Effecting)" type="primary"
- >瀵煎嚭鍦ㄤ繚浜哄憳</el-button
- >
- <el-button @click="handleExport(InsuranceDetailStatusEnum.Fail)" type="primary"
- >瀵煎嚭閿欒浜哄憳</el-button
- >
- <el-button @click="handleGoStampFiles(id)" type="primary">涓嬭浇淇濆崟</el-button>
- <el-button @click="handleGoDownloadInvoice(id)" type="primary">涓嬭浇鍙戠エ</el-button>
</template>
<template v-else>
<el-button @click="handleExport(null)" type="primary">涓嬭浇浜哄憳娓呭崟</el-button>
@@ -145,6 +151,7 @@
</ChunkCell>
<ChangePersonInfoDialog v-bind="dialogProps"></ChangePersonInfoDialog>
<InsureClaimDetailDialog v-bind="dialogInsureClaimProps"></InsureClaimDetailDialog>
+ <UploadInsurePersonDialog v-bind="dialogSupplyProps" isSupply />
</AppContainer>
</LoadingLayout>
</template>
@@ -190,7 +197,12 @@
import { downloadFile, downloadFileByUrl, Message, OrderInputType } from '@bole-core/core';
import { setOSSLink } from '@/utils';
import dayjs from 'dayjs';
-import { useInsureActions } from '@/hooks';
+import {
+ useInsureActions,
+ useInsureProductSchemeAllList,
+ useUserInsureProductSetting,
+} from '@/hooks';
+import UploadInsurePersonDialog from './UploadInsurePersonDialog.vue';
defineOptions({
name: 'InsureOrderInfoView',
@@ -548,6 +560,38 @@
}
} catch (error) {}
}
+
+const { getInsureProductIdByIdNumber } = useUserInsureProductSetting();
+const { getInsureProductSchemeByCode } = useInsureProductSchemeAllList({
+ insureProductId: computed(() => getInsureProductIdByIdNumber(detail.value.productIdNumber)),
+});
+
+function handleSupplySubmit() {
+ handleSupplyAdd({
+ serialNum: detail.value.serialNum,
+ productIdNumber: detail.value.productIdNumber,
+ productSchemeIdNumber: getInsureProductSchemeByCode(detail.value.productSchemeCode)?.idNumber,
+ effectStartTime: dayjs().add(1, 'day').format('YYYY-MM-DD'),
+ });
+}
+
+const {
+ dialogProps: dialogSupplyProps,
+ handleAdd: handleSupplyAdd,
+ editForm: supplyForm,
+} = useFormDialog({
+ onConfirm: supplySubmit,
+ defaultFormParams: {
+ serialNum: '',
+ url: [] as UploadUserFile[],
+ productIdNumber: '',
+ productSchemeIdNumber: '',
+ effectStartTime: dayjs().add(1, 'day').format('YYYY-MM-DD'),
+ },
+});
+
+// TODO 琛ユ彁
+async function supplySubmit() {}
</script>
<style lang="scss" scoped>
diff --git a/src/views/Home/components/UploadInsurePersonDialog.vue b/src/views/Home/components/UploadInsurePersonDialog.vue
index 168ac0b..6be682b 100644
--- a/src/views/Home/components/UploadInsurePersonDialog.vue
+++ b/src/views/Home/components/UploadInsurePersonDialog.vue
@@ -25,6 +25,7 @@
enum-label-key="productName"
enum-value-key="productIdNumber"
@change="handleProductChange"
+ :disabled="isSupply"
></ProFormSelect>
</ProFormItemV2>
<ProFormItemV2
@@ -40,6 +41,7 @@
v-model="form.productSchemeIdNumber"
enum-label-key="name"
enum-value-key="idNumber"
+ :disabled="isSupply"
></ProFormSelect>
</ProFormItemV2>
<ProFormItemV2 label="鎵规鍙凤細" prop="serialNum" :check-rules="[{ message: '璇疯緭鍏ユ壒娆″彿' }]">
@@ -47,6 +49,7 @@
placeholder="璇疯緭鍏ユ壒娆″彿"
v-model.trim="innerForm.serialNum"
:maxlength="30"
+ :disabled="isSupply"
></ProFormText>
</ProFormItemV2>
<ProFormItemV2
@@ -60,6 +63,7 @@
value-format="YYYY-MM-DD"
placeholder="璇烽�夋嫨璧蜂繚鏃ユ湡"
:disabled-date="disabledStartDate"
+ :disabled="isSupply"
></ProFormDatePicker>
</ProFormItemV2>
<ProFormItemV2
@@ -118,10 +122,12 @@
productSchemeIdNumber: string;
effectStartTime: string;
};
+ isSupply?: boolean;
};
const props = withDefaults(defineProps<Props>(), {
modelValue: false,
+ isSupply: false,
});
const emit = defineEmits<{
--
Gitblit v1.9.1