| | |
| | | placeholder="请选择供应商" |
| | | :value-enum="supplierEnterpriseSelect" |
| | | :disabled="isEdit" |
| | | @change="supplierEnterpriseChange" |
| | | /> |
| | | </nut-form-item> |
| | | <nut-form-item label="任务名称:" class="bole-form-item" prop="name" label-width="90px"> |
| | |
| | | </nut-checkbox-group> |
| | | </nut-form-item> |
| | | <nut-form-item |
| | | label="保险产品:" |
| | | class="bole-form-item" |
| | | prop="insuranceProductId" |
| | | label-width="90px" |
| | | required |
| | | v-if=" |
| | | form.checkReceiveMethods.includes(EnumTaskCheckReceiveMethod.CheckIn) && |
| | | form.isConfiguredInsurance |
| | | " |
| | | > |
| | | <ChooseInputWithPicker |
| | | v-model="form.insuranceProductId" |
| | | placeholder="请选择保险产品" |
| | | :value-enum="enterpriseInsuranceProductSelect" |
| | | @change="calcTaskTotalServiceFee()" |
| | | /> |
| | | </nut-form-item> |
| | | <nut-form-item |
| | | label="结算方式:" |
| | | class="bole-form-item" |
| | | prop="settlementAccess" |
| | |
| | | prop="totalServiceFee" |
| | | label-width="110px" |
| | | > |
| | | {{ `${toThousand(totalServiceFee)}元` }} |
| | | {{ `${toThousand(form.totalServiceFee)}元` }} |
| | | </nut-form-item> |
| | | </nut-form> |
| | | </ContentScrollView> |
| | |
| | | import { |
| | | useAllAreaList, |
| | | useDictionaryDataSelect, |
| | | useEnterpriseInsuranceProductSelect, |
| | | useEnterpriseWalletAccessSelect, |
| | | useGetSupplierEnterpriseSelect, |
| | | } from '@12333/hooks'; |
| | |
| | | const { findAreaNameFromCode } = useAllAreaList(); |
| | | |
| | | const { supplierEnterpriseSelect } = useGetSupplierEnterpriseSelect(); |
| | | |
| | | const router = Taro.useRouter(); |
| | | const taskId = router.params?.id ?? ''; |
| | | const isCopy = router.params?.isCopy === 'true'; |
| | |
| | | totalPieceQuantity: '' as any as number, |
| | | |
| | | totalServiceFee: null as number, |
| | | insuranceProductId: '', |
| | | isConfiguredInsurance: false, |
| | | }); |
| | | |
| | | const rules = reactive<FormRules>({ |
| | |
| | | }, |
| | | }, |
| | | ], |
| | | insuranceProductId: [ |
| | | { |
| | | required: true, |
| | | message: '请选择保险产品', |
| | | validator(value) { |
| | | if (!value?.length) return Promise.reject('请选择保险产品'); |
| | | return Promise.resolve(true); |
| | | }, |
| | | }, |
| | | ], |
| | | }); |
| | | |
| | | const { settlementAccessList } = useEnterpriseWalletAccessSelect({ |
| | | supplierEnterpriseId: computed(() => form.supplierEnterpriseId), |
| | | }); |
| | | |
| | | const { enterpriseInsuranceProductSelect } = useEnterpriseInsuranceProductSelect({ |
| | | supplierEnterpriseId: computed(() => form.supplierEnterpriseId), |
| | | isConfiguredInsurance: computed(() => form.isConfiguredInsurance), |
| | | }); |
| | | |
| | | const { |
| | |
| | | form.applyBeginTime = dayjs(data.applyBeginTime).format('YYYY-MM-DD'); |
| | | form.applyEndTime = dayjs(data.applyEndTime).format('YYYY-MM-DD'); |
| | | form.settlementAccess = data.settlementAccess; |
| | | form.insuranceProductId = data.insuranceProductId; |
| | | form.totalServiceFee = data.estimatedServiceFee; |
| | | |
| | | supplierEnterpriseChange(); |
| | | if (!!data.timeoutServiceFee) { |
| | | calcTaskTotalServiceFee(); |
| | | } |
| | |
| | | if (!form.beginTime || !form.endTime) { |
| | | return; |
| | | } |
| | | if (form.billingMethod !== EnumBillingMethod.Piece && !form.needPeopleNumber) { |
| | | |
| | | if (form.billingMethod !== EnumBillingMethod.Piece || !form.needPeopleNumber) { |
| | | return; |
| | | } |
| | | let params: API.CalcTaskTotalServiceFeeCommand = { |
| | |
| | | needPeopleNumber: form.needPeopleNumber, |
| | | beginTime: dayjs(form.beginTime).format('YYYY-MM-DD 00:00:00'), |
| | | endTime: dayjs(form.endTime).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, { showLoading: false }); |
| | | if (res) { |
| | | form.totalServiceFee = res.totalServiceFee; |
| | |
| | | } catch (error) {} |
| | | } |
| | | |
| | | const totalServiceFee = computed(() => { |
| | | if (!form.beginTime || !form.endTime) { |
| | | return 0; |
| | | function supplierEnterpriseChange() { |
| | | if (form.supplierEnterpriseId) { |
| | | form.isConfiguredInsurance = supplierEnterpriseSelect.value?.find( |
| | | (item) => item.value === form.supplierEnterpriseId |
| | | )?.data?.isConfiguredInsurance; |
| | | } |
| | | var days = dayjs(form.endTime).diff(dayjs(form.beginTime), 'day') + 1; |
| | | const serviceFee = form.serviceFee || 0; |
| | | const needPeopleNumber = form.needPeopleNumber || 0; |
| | | switch (form.billingMethod) { |
| | | case EnumBillingMethod.Month: |
| | | return serviceFee * Math.round(days / 30) * needPeopleNumber; |
| | | case EnumBillingMethod.Day: |
| | | return serviceFee * days * needPeopleNumber; |
| | | case EnumBillingMethod.Hour: |
| | | return serviceFee * (form.verifyWorkHours || 0) * days * needPeopleNumber; |
| | | case EnumBillingMethod.Piece: |
| | | return serviceFee * (form.totalPieceQuantity || 0); |
| | | default: |
| | | return 0; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // const totalServiceFee = computed(() => { |
| | | // if (!form.beginTime || !form.endTime) { |
| | | // return 0; |
| | | // } |
| | | // var days = dayjs(form.endTime).diff(dayjs(form.beginTime), 'day') + 1; |
| | | // const serviceFee = form.serviceFee || 0; |
| | | // const needPeopleNumber = form.needPeopleNumber || 0; |
| | | // switch (form.billingMethod) { |
| | | // case EnumBillingMethod.Month: |
| | | // return serviceFee * Math.round(days / 30) * needPeopleNumber; |
| | | // case EnumBillingMethod.Day: |
| | | // return serviceFee * days * needPeopleNumber; |
| | | // case EnumBillingMethod.Hour: |
| | | // return serviceFee * (form.verifyWorkHours || 0) * days * needPeopleNumber; |
| | | // case EnumBillingMethod.Piece: |
| | | // return serviceFee * (form.totalPieceQuantity || 0); |
| | | // default: |
| | | // return 0; |
| | | // } |
| | | // }); |
| | | |
| | | const formRef = ref<any>(null); |
| | | function handleConfirm() { |
| | |
| | | applyBeginTime: dayjs(form.applyBeginTime).format('YYYY-MM-DD 00:00:00'), |
| | | applyEndTime: dayjs(form.applyEndTime).format('YYYY-MM-DD 23:59:59'), |
| | | settlementAccess: form.settlementAccess, |
| | | insuranceProductId: form.insuranceProductId ? form.insuranceProductId : null, |
| | | }; |
| | | if (form.billingMethod !== EnumBillingMethod.Face) { |
| | | params.serviceFee = form.serviceFee; |