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 |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
index 567292f..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>
@@ -385,12 +386,17 @@
           </ProFormCol>
           <ProFormItemV2
             label="淇濋櫓浜у搧:"
-            prop="checkReceiveMethods"
+            prop="insuranceProductId"
             :check-rules="[{ message: '璇烽�夋嫨淇濋櫓浜у搧' }]"
+            v-if="
+              form.checkReceiveMethods.includes(EnumTaskCheckReceiveMethod.CheckIn) &&
+              form.isConfiguredInsurance
+            "
           >
             <ProFormSelect
-              v-model="form.checkReceiveMethods"
-              :value-enum="EnumTaskCheckReceiveMethodText"
+              v-model="form.insuranceProductId"
+              :value-enum="enterpriseInsuranceProductSelect"
+              @change="calcTaskTotalServiceFee"
             ></ProFormSelect>
           </ProFormItemV2>
           <ProFormItemV2 label="棰勮鏈嶅姟璐规�婚:" prop="totalServiceFee">
@@ -450,7 +456,7 @@
   EnumSettlementCycleDateWeekArray,
   EnumSettlementCycle,
   EnumTaskCheckReceiveMethodText,
-  EnumEnterpriseWalletAccessText,
+  EnumTaskCheckReceiveMethod,
 } from '@/constants';
 import { format, FormValidator, toThousand } from '@/utils';
 import dayjs from 'dayjs';
@@ -533,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({
@@ -592,6 +606,10 @@
     ];
     form.settlementAccess = data.settlementAccess;
     form.totalServiceFee = data.estimatedServiceFee;
+
+    form.insuranceProductId = data.insuranceProductId ?? '';
+
+    supplierEnterpriseChange();
   },
   enabled: isEdit,
 });
@@ -651,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 = {
@@ -661,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;
@@ -701,6 +732,7 @@
       description: form.description,
       checkReceiveMethods: form.checkReceiveMethods,
       settlementAccess: form.settlementAccess,
+      insuranceProductId: form.insuranceProductId ? form.insuranceProductId : null,
     };
     if (form.billingMethod !== EnumBillingMethod.Face) {
       params.serviceFee = form.serviceFee;

--
Gitblit v1.9.1