From b17fa2ae350c5967e3db80be8490edf87cb2b493 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 12 十二月 2025 18:37:44 +0800
Subject: [PATCH] feat: 保险
---
src/views/EmploymentManage/components/AddOrEditEmploymentView.vue | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 44 insertions(+), 5 deletions(-)
diff --git a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
index 944cdb5..d130636 100644
--- a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
+++ b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
@@ -13,6 +13,7 @@
:value-enum="supplierEnterpriseSelect"
placeholder="璇烽�夋嫨渚涘簲鍟�"
:disabled="isEdit"
+ @change="supplierEnterpriseChange"
></ProFormSelect>
</ProFormItemV2>
<ProFormCol>
@@ -383,6 +384,21 @@
</ProFormItemV2>
</ProFormColItem>
</ProFormCol>
+ <ProFormItemV2
+ label="淇濋櫓浜у搧:"
+ prop="insuranceProductId"
+ :check-rules="[{ message: '璇烽�夋嫨淇濋櫓浜у搧' }]"
+ v-if="
+ form.checkReceiveMethods.includes(EnumTaskCheckReceiveMethod.CheckIn) &&
+ form.isConfiguredInsurance
+ "
+ >
+ <ProFormSelect
+ v-model="form.insuranceProductId"
+ :value-enum="enterpriseInsuranceProductSelect"
+ @change="calcTaskTotalServiceFee"
+ ></ProFormSelect>
+ </ProFormItemV2>
<ProFormItemV2 label="棰勮鏈嶅姟璐规�婚:" prop="totalServiceFee">
{{ `${toThousand(form.totalServiceFee)}鍏僠 }}
</ProFormItemV2>
@@ -440,7 +456,7 @@
EnumSettlementCycleDateWeekArray,
EnumSettlementCycle,
EnumTaskCheckReceiveMethodText,
- EnumEnterpriseWalletAccessText,
+ EnumTaskCheckReceiveMethod,
} from '@/constants';
import { format, FormValidator, toThousand } from '@/utils';
import dayjs from 'dayjs';
@@ -523,10 +539,18 @@
applyTime: [] as unknown as ModelValueType,
settlementAccess: '' as any as EnumEnterpriseWalletAccess,
totalServiceFee: 0,
+
+ insuranceProductId: '',
+ isConfiguredInsurance: false,
});
const { settlementAccessList } = useEnterpriseWalletAccessSelect({
supplierEnterpriseId: computed(() => form.supplierEnterpriseId),
+});
+
+const { enterpriseInsuranceProductSelect } = useEnterpriseInsuranceProductSelect({
+ supplierEnterpriseId: computed(() => form.supplierEnterpriseId),
+ isConfiguredInsurance: computed(() => form.isConfiguredInsurance),
});
const { isLoading } = useQuery({
@@ -582,6 +606,10 @@
];
form.settlementAccess = data.settlementAccess;
form.totalServiceFee = data.estimatedServiceFee;
+
+ form.insuranceProductId = data.insuranceProductId ?? '';
+
+ supplierEnterpriseChange();
},
enabled: isEdit,
});
@@ -641,6 +669,14 @@
// }
// });
+function supplierEnterpriseChange() {
+ if (form.supplierEnterpriseId) {
+ form.isConfiguredInsurance = supplierEnterpriseSelect.value?.find(
+ (item) => item.value === form.supplierEnterpriseId
+ )?.data?.isConfiguredInsurance;
+ }
+}
+
async function calcTaskTotalServiceFee() {
try {
let params: API.CalcTaskTotalServiceFeeCommand = {
@@ -651,7 +687,12 @@
needPeopleNumber: form.needPeopleNumber ?? 0,
beginTime: dayjs(form.time[0]).format('YYYY-MM-DD 00:00:00'),
endTime: dayjs(form.time[1]).format('YYYY-MM-DD 23:59:59'),
+ supplierEnterpriseId: form.supplierEnterpriseId,
+ checkReceiveMethods: form.checkReceiveMethods,
};
+ if (form.insuranceProductId) {
+ params.insuranceProductId = form.insuranceProductId;
+ }
let res = await taskServices.calcTaskTotalServiceFee(params);
if (res) {
form.totalServiceFee = res.totalServiceFee;
@@ -691,11 +732,9 @@
description: form.description,
checkReceiveMethods: form.checkReceiveMethods,
settlementAccess: form.settlementAccess,
+ insuranceProductId: form.insuranceProductId ? form.insuranceProductId : null,
};
- if (
- form.billingMethod !== EnumBillingMethod.Face &&
- form.billingMethod !== EnumBillingMethod.Piece
- ) {
+ if (form.billingMethod !== EnumBillingMethod.Face) {
params.serviceFee = form.serviceFee;
}
if (isEdit) {
--
Gitblit v1.9.1