From 1a7e45eb20ccdb433df5b18e10aafbd34aad049a Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 31 十月 2025 13:53:49 +0800
Subject: [PATCH] fix: bug
---
src/views/EmploymentManage/components/AddOrEditEmploymentView.vue | 147 ++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 134 insertions(+), 13 deletions(-)
diff --git a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
index fdb4e19..073b80d 100644
--- a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
+++ b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
@@ -3,6 +3,17 @@
<AppContainer>
<PageFormLayout title="鍩烘湰淇℃伅">
<ProForm :model="form" ref="productFormRef" label-width="110px" :is-read="isDetail">
+ <ProFormItemV2
+ label="渚涘簲鍟�:"
+ prop="supplierEnterpriseId"
+ :check-rules="[{ message: '璇烽�夋嫨渚涘簲鍟�' }]"
+ >
+ <ProFormSelect
+ v-model="form.supplierEnterpriseId"
+ :value-enum="supplierEnterpriseSelect"
+ placeholder="璇烽�夋嫨渚涘簲鍟�"
+ ></ProFormSelect>
+ </ProFormItemV2>
<ProFormCol>
<ProFormColItem :span="12">
<ProFormItemV2
@@ -17,6 +28,24 @@
<ProFormCol>
<ProFormColItem :span="12">
<ProFormItemV2
+ label="闇�姹備汉鏁�:"
+ prop="needPeopleNumber"
+ :check-rules="[{ message: '璇疯緭鍏ラ渶姹備汉鏁�' }]"
+ >
+ <ProFormInputNumber
+ :controls="false"
+ v-model="form.needPeopleNumber"
+ placeholder="璇疯緭鍏ラ渶姹備汉鏁�"
+ :min="0"
+ :max="999999999999"
+ unit="浜�"
+ ></ProFormInputNumber>
+ </ProFormItemV2>
+ </ProFormColItem>
+ </ProFormCol>
+ <ProFormCol>
+ <ProFormColItem :span="12">
+ <ProFormItemV2
label="鏈嶅姟璐�:"
prop="billingMethod"
:check-rules="[
@@ -25,7 +54,7 @@
if (!form.billingMethod) {
callback(new Error('璇烽�夋嫨鏈嶅姟璐圭被鍨�'));
}
- if (!form.serviceFee) {
+ if (!form.serviceFee && form.billingMethod !== EnumBillingMethod.Face) {
callback(new Error('璇疯緭鍏ユ湇鍔¤垂'));
}
callback();
@@ -38,46 +67,68 @@
:value-enum="EnumBillingMethodText"
:showExtra="true"
:button-style="false"
+ :disabled="feeCannotEdit"
>
<template #extra>
<ProFormInputNumber
+ v-if="form.billingMethod !== EnumBillingMethod.Face"
:controls="false"
v-model="form.serviceFee"
placeholder="璇疯緭鍏�"
:min="0"
:max="999999999999"
:unit="EnumBillingMethodUnitText[form.billingMethod]"
+ :disabled="feeCannotEdit"
></ProFormInputNumber>
</template>
</RadioWithExtra>
</ProFormItemV2>
</ProFormColItem>
</ProFormCol>
- <template v-if="form.billingMethod === EnumBillingMethod.Hour">
+ <template
+ v-if="
+ form.billingMethod === EnumBillingMethod.Hour ||
+ form.billingMethod === EnumBillingMethod.Day
+ "
+ >
<ProFormCol>
<ProFormColItem :span="12">
- <ProFormItemV2 label="鏍稿畾宸ユ椂:" prop="name">
+ <ProFormItemV2
+ label="鏍稿畾宸ユ椂:"
+ prop="verifyWorkHours"
+ :check-rules="[{ message: '璇疯緭鍏ユ牳瀹氬伐鏃�' }]"
+ >
+ <span v-if="isDetail && !form.verifyWorkHours"></span>
<ProFormInputNumber
+ v-else
:controls="false"
- v-model="form.serviceFee"
+ v-model="form.verifyWorkHours"
placeholder="璇疯緭鍏ユ牳瀹氬伐鏃�"
:min="0"
:max="999999999999"
unit="灏忔椂/澶�"
+ :disabled="feeCannotEdit"
></ProFormInputNumber>
</ProFormItemV2>
</ProFormColItem>
</ProFormCol>
<ProFormCol>
<ProFormColItem :span="12">
- <ProFormItemV2 label="瓒呮椂鏈嶅姟璐�:" prop="name">
+ <ProFormItemV2
+ label="瓒呮椂鏈嶅姟璐�:"
+ prop="timeoutServiceFee"
+ :check-rules="[{ message: '璇疯緭鍏ヨ秴鏃舵湇鍔¤垂' }]"
+ >
+ <span v-if="isDetail && !form.timeoutServiceFee"></span>
<ProFormInputNumber
+ v-else
:controls="false"
- v-model="form.serviceFee"
+ v-model="form.timeoutServiceFee"
placeholder="璇疯緭鍏ヨ秴鏃舵湇鍔¤垂"
:min="0"
:max="999999999999"
unit="鍏�/灏忔椂"
+ :disabled="feeCannotEdit"
></ProFormInputNumber>
</ProFormItemV2>
</ProFormColItem>
@@ -96,6 +147,7 @@
:value-enum="EnumSettlementCycleText"
:button-style="false"
@change="handleSettlementCycleChange"
+ :disabled="feeCannotEdit"
></ProFormRadio>
</ProFormItemV2>
</ProFormColItem>
@@ -237,10 +289,10 @@
</ProFormCol>
<ProFormCol>
<ProFormColItem :span="12">
- <ProFormItemV2 label="浠诲姟鎻忚堪:" prop="addressDetail">
+ <ProFormItemV2 label="浠诲姟鎻忚堪:" prop="description">
<ProFormTextArea
:rows="4"
- v-model.trim="form.addressDetail"
+ v-model.trim="form.description"
placeholder="璇疯緭鍏ヤ换鍔℃弿杩�"
/>
</ProFormItemV2>
@@ -260,6 +312,7 @@
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡"
:disabled-date="disabledDate"
+ @change="handleTimeChange"
></ProFormDatePicker>
</ProFormItemV2>
</ProFormColItem>
@@ -268,16 +321,16 @@
<ProFormColItem :span="12">
<ProFormItemV2
label="鎶ュ悕鏃堕棿:"
- prop="time"
+ prop="applyTime"
:check-rules="[{ message: '璇烽�夋嫨鎶ュ悕鏃堕棿', type: 'array' }]"
>
<ProFormDatePicker
- v-model="form.time"
+ v-model="form.applyTime"
type="daterange"
range-separator="鑷�"
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡"
- :disabled-date="disabledDate"
+ :disabled-date="disabledapplyDate"
></ProFormDatePicker>
</ProFormItemV2>
</ProFormColItem>
@@ -286,13 +339,29 @@
<ProFormColItem :span="12">
<ProFormItemV2
label="楠屾敹鏂瑰紡:"
- prop="genderLimit"
+ prop="checkReceiveMethod"
:check-rules="[{ message: '璇烽�夋嫨楠屾敹鏂瑰紡' }]"
>
- <ProFormRadio v-model="form.genderLimit" :value-enum="[]"></ProFormRadio>
+ <ProFormRadio
+ v-model="form.checkReceiveMethod"
+ :value-enum="EnumTaskCheckReceiveMethodText"
+ :button-style="false"
+ ></ProFormRadio>
</ProFormItemV2>
</ProFormColItem>
</ProFormCol>
+ <ProFormItemV2
+ label="缁撶畻鏂瑰紡:"
+ prop="settlementAccess"
+ :check-rules="[{ message: '璇烽�夋嫨缁撶畻鏂瑰紡' }]"
+ >
+ <ProFormSelect
+ v-model="form.settlementAccess"
+ :value-enum="settlementAccessList"
+ :disabled="isEdit"
+ placeholder="璇烽�夋嫨缁撶畻鏂瑰紡"
+ ></ProFormSelect>
+ </ProFormItemV2>
</ProForm>
<template #footer>
<el-button @click="handleBack()">鍏抽棴</el-button>
@@ -334,6 +403,8 @@
EnumSettlementCycleDateMonthArray,
EnumSettlementCycleDateWeekArray,
EnumSettlementCycle,
+ EnumTaskCheckReceiveMethodText,
+ EnumEnterpriseWalletAccessText,
} from '@/constants';
import { format, FormValidator } from '@/utils';
import dayjs from 'dayjs';
@@ -349,9 +420,19 @@
const id = route.params.id as string;
const isEdit = !!id;
+const { supplierEnterpriseSelect } = useGetSupplierEnterpriseSelect();
+
function disabledDate(time: Date) {
return dayjs(time).isBefore(dayjs(), 'day');
}
+
+function disabledapplyDate(time: Date) {
+ return dayjs(time).isAfter(dayjs(form.time[1]), 'day') || dayjs(time).isBefore(dayjs(), 'day');
+}
+
+const feeCannotEdit = computed(() => {
+ return dayjs().isAfter(form.time[0], 'second') && isEdit;
+});
const eventContext = useGlobalEventContext();
@@ -382,7 +463,9 @@
});
const form = reactive({
+ supplierEnterpriseId: '',
name: '',
+ needPeopleNumber: null as number,
billingMethod: EnumBillingMethod.Day,
serviceFee: null,
settlementCycle: EnumSettlementCycle.Day,
@@ -395,6 +478,16 @@
time: [] as unknown as ModelValueType,
weMapInfo: {} as WeMapModel,
addressDetail: '',
+ verifyWorkHours: null as number,
+ timeoutServiceFee: null as number,
+ description: '',
+ checkReceiveMethod: '' as any as EnumTaskCheckReceiveMethod,
+ applyTime: [] as unknown as ModelValueType,
+ settlementAccess: '' as any as EnumEnterpriseWalletAccess,
+});
+
+const { settlementAccessList } = useEnterpriseWalletAccessSelect({
+ supplierEnterpriseId: computed(() => form.supplierEnterpriseId),
});
const { isLoading } = useQuery({
@@ -409,7 +502,9 @@
},
placeholderData: () => ({} as API.GetTaskInfoQueryResult),
onSuccess(data) {
+ form.supplierEnterpriseId = data.supplierEnterpriseId;
form.name = data.name;
+ form.needPeopleNumber = data.needPeopleNumber;
form.billingMethod = data.billingMethod;
form.serviceFee = data.serviceFee;
form.settlementCycle = data.settlementCycle;
@@ -423,6 +518,10 @@
format(data.beginTime, 'YYYY-MM-DD 00:00:00'),
format(data.endTime, 'YYYY-MM-DD 23:59:59'),
];
+ form.applyTime = [
+ format(data.applyBeginTime, 'YYYY-MM-DD 00:00:00'),
+ format(data.applyEndTime, 'YYYY-MM-DD 23:59:59'),
+ ];
form.weMapInfo = {
latitude: data.latitude,
longitude: data.longitude,
@@ -433,12 +532,25 @@
addressName: data.addressName,
};
form.addressDetail = data.addressDetail;
+ form.verifyWorkHours = data.verifyWorkHours;
+ form.timeoutServiceFee = data.timeoutServiceFee;
+ form.description = data.description;
+ form.checkReceiveMethod = data.checkReceiveMethod;
+ form.applyTime = [
+ format(data.applyBeginTime, 'YYYY-MM-DD 00:00:00'),
+ format(data.applyEndTime, 'YYYY-MM-DD 23:59:59'),
+ ];
+ form.settlementAccess = data.settlementAccess;
},
enabled: isEdit,
});
function handleSettlementCycleChange() {
form.settlementDate = null as number;
+}
+
+function handleTimeChange() {
+ form.applyTime = [] as unknown as ModelValueType;
}
function handleBack() {
@@ -460,7 +572,9 @@
async function submit() {
try {
let params: API.SaveTaskInfoCommand = {
+ supplierEnterpriseId: form.supplierEnterpriseId,
name: form.name,
+ needPeopleNumber: form.needPeopleNumber,
billingMethod: form.billingMethod,
serviceFee: form.serviceFee,
settlementCycle: form.settlementCycle,
@@ -478,6 +592,13 @@
latitude: form.weMapInfo.latitude,
beginTime: dayjs(form.time[0]).format('YYYY-MM-DD 00:00:00'),
endTime: dayjs(form.time[1]).format('YYYY-MM-DD 23:59:59'),
+ applyBeginTime: dayjs(form.applyTime[0]).format('YYYY-MM-DD 00:00:00'),
+ applyEndTime: dayjs(form.applyTime[1]).format('YYYY-MM-DD 23:59:59'),
+ verifyWorkHours: form.verifyWorkHours,
+ timeoutServiceFee: form.timeoutServiceFee,
+ description: form.description,
+ checkReceiveMethod: form.checkReceiveMethod,
+ settlementAccess: form.settlementAccess,
};
if (isEdit) {
params.id = id;
--
Gitblit v1.9.1