wupengfei
2 天以前 85c2df026e79b6813e482af4e6ea124dac1fc112
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,
});
@@ -592,6 +620,7 @@
function handleTimeChange() {
  form.applyTime = [] as unknown as ModelValueType;
  calcTaskTotalServiceFee();
}
function handleBack() {
@@ -640,17 +669,30 @@
//   }
// });
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;
@@ -690,7 +732,11 @@
      description: form.description,
      checkReceiveMethods: form.checkReceiveMethods,
      settlementAccess: form.settlementAccess,
      insuranceProductId: form.insuranceProductId,
    };
    if (form.billingMethod !== EnumBillingMethod.Face) {
      params.serviceFee = form.serviceFee;
    }
    if (isEdit) {
      params.id = id;
    }