From f95d3066203612a450e462edd679eb5a4973f35c Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 10 十一月 2025 16:59:29 +0800
Subject: [PATCH] fix: bug
---
apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue | 37 +++++++++++++++++++++++++++++++++----
1 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
index f366d37..66120ad 100644
--- a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
@@ -352,7 +352,7 @@
prop="totalServiceFee"
label-width="110px"
>
- {{ `${toThousand(form.totalServiceFee)}鍏僠 }}
+ {{ `${toThousand(totalServiceFee)}鍏僠 }}
</nut-form-item>
</nut-form>
</ContentScrollView>
@@ -414,8 +414,8 @@
const { supplierEnterpriseSelect } = useGetSupplierEnterpriseSelect();
const router = Taro.useRouter();
const taskId = router.params?.id ?? '';
-const isEdit = !!taskId;
const isCopy = router.params?.isCopy === 'true';
+const isEdit = !!taskId && !isCopy;
const nowDate = dayjs().toDate();
const applyBeginTimeMinDate = computed(() => {
@@ -581,6 +581,10 @@
{
required: true,
message: '璇烽�夋嫨楠屾敹鏂瑰紡',
+ validator(value) {
+ if (!value?.length) return Promise.reject('璇烽�夋嫨楠屾敹鏂瑰紡');
+ return Promise.resolve(true);
+ },
},
],
});
@@ -605,7 +609,7 @@
);
},
placeholderData: () => ({} as API.GetTaskInfoQueryResult),
- enabled: isEdit,
+ enabled: isEdit || isCopy,
onSuccess(data) {
form.supplierEnterpriseId = data.supplierEnterpriseId;
form.name = data.name;
@@ -631,6 +635,7 @@
latitude: data.latitude,
longitude: data.longitude,
addressName: data.addressName,
+ address: data.addressName,
};
form.description = data.description;
form.verifyWorkHours = data.verifyWorkHours;
@@ -648,7 +653,10 @@
async function calcTaskTotalServiceFee() {
try {
- if (!form.beginTime || !form.endTime || !form.needPeopleNumber) {
+ if (!form.beginTime || !form.endTime) {
+ return;
+ }
+ if (form.billingMethod !== EnumBillingMethod.Piece && !form.needPeopleNumber) {
return;
}
let params: API.CalcTaskTotalServiceFeeCommand = {
@@ -667,6 +675,27 @@
} catch (error) {}
}
+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() {
if (!formRef.value) return;
--
Gitblit v1.9.1