| | |
| | | <LoadingLayout :loading="isLoading && isEdit"> |
| | | <AppContainer> |
| | | <PageFormLayout title="基本信息"> |
| | | <ProForm :model="form" ref="productFormRef" label-width="110px" :is-read="isDetail"> |
| | | <ProForm :model="form" ref="productFormRef" label-width="120px" :is-read="isDetail"> |
| | | <ProFormItemV2 |
| | | label="供应商:" |
| | | prop="supplierEnterpriseId" |
| | |
| | | v-model="form.supplierEnterpriseId" |
| | | :value-enum="supplierEnterpriseSelect" |
| | | placeholder="请选择供应商" |
| | | :disabled="isEdit" |
| | | ></ProFormSelect> |
| | | </ProFormItemV2> |
| | | <ProFormCol> |
| | |
| | | :max="999999999999" |
| | | :precision="0" |
| | | unit="人" |
| | | @change="calcTaskTotalServiceFee" |
| | | ></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | |
| | | :showExtra="true" |
| | | :button-style="false" |
| | | :disabled="feeCannotEdit" |
| | | @change="calcTaskTotalServiceFee" |
| | | > |
| | | <template #extra> |
| | | <ProFormInputNumber |
| | |
| | | :max="999999999999" |
| | | :unit="EnumBillingMethodUnitText[form.billingMethod]" |
| | | :disabled="feeCannotEdit" |
| | | @change="calcTaskTotalServiceFee" |
| | | ></ProFormInputNumber> |
| | | </template> |
| | | </RadioWithExtra> |
| | |
| | | :max="999999999999" |
| | | unit="小时/天" |
| | | :disabled="feeCannotEdit" |
| | | @change="calcTaskTotalServiceFee" |
| | | ></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | |
| | | :max="999999999999" |
| | | unit="件" |
| | | :disabled="feeCannotEdit" |
| | | @change="calcTaskTotalServiceFee" |
| | | ></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | |
| | | <ProFormCheckbox |
| | | v-model="form.checkReceiveMethods" |
| | | :value-enum="EnumTaskCheckReceiveMethodText" |
| | | :disabled="isEdit" |
| | | ></ProFormCheckbox> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | |
| | | format(data.applyEndTime, 'YYYY-MM-DD 23:59:59'), |
| | | ]; |
| | | form.settlementAccess = data.settlementAccess; |
| | | form.totalServiceFee = data.estimatedServiceFee; |
| | | }, |
| | | enabled: isEdit, |
| | | }); |
| | |
| | | |
| | | 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>(); |
| | |
| | | }); |
| | | } |
| | | |
| | | // 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; |
| | | // } |
| | | // }); |
| | | |
| | | 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'), |
| | | }; |
| | |
| | | checkReceiveMethods: form.checkReceiveMethods, |
| | | settlementAccess: form.settlementAccess, |
| | | }; |
| | | if ( |
| | | form.billingMethod !== EnumBillingMethod.Face && |
| | | form.billingMethod !== EnumBillingMethod.Piece |
| | | ) { |
| | | params.serviceFee = form.serviceFee; |
| | | } |
| | | if (isEdit) { |
| | | params.id = id; |
| | | } |