From b42ca1e9ab197ce53828f4607610ae10f25965bb Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 12 十二月 2025 19:59:13 +0800
Subject: [PATCH] feat: 新增渠道包
---
src/views/EmploymentManage/components/AddOrEditEmploymentView.vue | 94 ++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 84 insertions(+), 10 deletions(-)
diff --git a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
index 80dcd05..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>
@@ -41,6 +42,7 @@
:max="999999999999"
:precision="0"
unit="浜�"
+ @change="calcTaskTotalServiceFee"
></ProFormInputNumber>
</ProFormItemV2>
</ProFormColItem>
@@ -70,6 +72,7 @@
:showExtra="true"
:button-style="false"
:disabled="feeCannotEdit"
+ @change="calcTaskTotalServiceFee"
>
<template #extra>
<ProFormInputNumber
@@ -81,6 +84,7 @@
:max="999999999999"
:unit="EnumBillingMethodUnitText[form.billingMethod]"
:disabled="feeCannotEdit"
+ @change="calcTaskTotalServiceFee"
></ProFormInputNumber>
</template>
</RadioWithExtra>
@@ -105,6 +109,7 @@
:max="999999999999"
unit="灏忔椂/澶�"
:disabled="feeCannotEdit"
+ @change="calcTaskTotalServiceFee"
></ProFormInputNumber>
</ProFormItemV2>
</ProFormColItem>
@@ -146,6 +151,7 @@
:max="999999999999"
unit="浠�"
:disabled="feeCannotEdit"
+ @change="calcTaskTotalServiceFee"
></ProFormInputNumber>
</ProFormItemV2>
</ProFormColItem>
@@ -378,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>
@@ -435,7 +456,7 @@
EnumSettlementCycleDateWeekArray,
EnumSettlementCycle,
EnumTaskCheckReceiveMethodText,
- EnumEnterpriseWalletAccessText,
+ EnumTaskCheckReceiveMethod,
} from '@/constants';
import { format, FormValidator, toThousand } from '@/utils';
import dayjs from 'dayjs';
@@ -518,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({
@@ -576,6 +605,11 @@
format(data.applyEndTime, 'YYYY-MM-DD 23:59:59'),
];
form.settlementAccess = data.settlementAccess;
+ form.totalServiceFee = data.estimatedServiceFee;
+
+ form.insuranceProductId = data.insuranceProductId ?? '';
+
+ supplierEnterpriseChange();
},
enabled: isEdit,
});
@@ -586,18 +620,13 @@
function handleTimeChange() {
form.applyTime = [] as unknown as ModelValueType;
+ calcTaskTotalServiceFee();
}
function handleBack() {
closeViewPush(route, {
name: 'TaskManageList',
});
-}
-
-function calculateMonthInterval(startDate, endDate) {
- const diffInDays = dayjs(endDate).diff(startDate, 'day');
- const monthInterval = Math.ceil(diffInDays / 30);
- return monthInterval > 15 ? Math.ceil(monthInterval / 30) : monthInterval;
}
const productFormRef = ref<FormInstance>();
@@ -612,17 +641,58 @@
});
}
+// function calculateMonthInterval(startDate, endDate) {
+// const diffInDays = dayjs(endDate).diff(startDate, 'day');
+// const monthInterval = Math.ceil(diffInDays / 30);
+// return monthInterval > 15 ? Math.ceil(monthInterval / 30) : monthInterval;
+// }
+
+// const totalServiceFee = computed(() => {
+// const monthInterval = calculateMonthInterval(form.time[0], form.time[1]);
+// const dayInterval = dayjs(form.time[1]).diff(dayjs(form.time[0]), 'day');
+// switch (form.billingMethod) {
+// case EnumBillingMethod.Month:
+// return monthInterval * (form.serviceFee ?? 0) * (form.needPeopleNumber ?? 0);
+// case EnumBillingMethod.Day:
+// return dayInterval * (form.serviceFee ?? 0) * (form.needPeopleNumber ?? 0);
+// case EnumBillingMethod.Hour:
+// return (
+// dayInterval *
+// (form.verifyWorkHours ?? 0) *
+// (form.serviceFee ?? 0) *
+// (form.needPeopleNumber ?? 0)
+// );
+// case EnumBillingMethod.Piece:
+// return (form.totalPieceQuantity ?? 0) * (form.serviceFee ?? 0);
+// default:
+// return form.totalServiceFee;
+// }
+// });
+
+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 = {
billingMethod: form.billingMethod,
- serviceFee: form.serviceFee,
- verifyWorkHours: form.verifyWorkHours,
+ serviceFee: form.serviceFee ?? 0,
+ verifyWorkHours: form.verifyWorkHours ?? 0,
totalPieceQuantity: form.totalPieceQuantity,
- needPeopleNumber: form.needPeopleNumber,
+ 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;
@@ -662,7 +732,11 @@
description: form.description,
checkReceiveMethods: form.checkReceiveMethods,
settlementAccess: form.settlementAccess,
+ insuranceProductId: form.insuranceProductId ? form.insuranceProductId : null,
};
+ if (form.billingMethod !== EnumBillingMethod.Face) {
+ params.serviceFee = form.serviceFee;
+ }
if (isEdit) {
params.id = id;
}
--
Gitblit v1.9.1