From eb01fa3052576eb05faa83bb6b094aa5f85a4408 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期日, 19 十月 2025 17:29:38 +0800 Subject: [PATCH] Merge branch 'dev-1.2.0.1' of http://120.26.58.240:8888/r/flexJobMiniApp into dev-1.2.0.1 --- apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue | 214 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 190 insertions(+), 24 deletions(-) diff --git a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue index 010a8a2..03e7999 100644 --- a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue @@ -25,10 +25,53 @@ class="nut-input-text bole-input-text" placeholder="璇疯緭鍏ユ湇鍔¤垂" :min="0" + :max="999999999999" + :precision="2" + type="text" /> <div class="form-input-unit">{{ BillingMethodEnumUnit[form.billingMethod] }}</div> </div> </nut-form-item> + <template v-if="form.billingMethod === EnumBillingMethod.Hour"> + <nut-form-item + label="鏍稿畾宸ユ椂:" + class="bole-form-item" + prop="verifyWorkHours" + label-width="90" + > + <div class="bole-form-input-wrapper"> + <NumberInput + v-model.trim="form.verifyWorkHours" + class="nut-input-text bole-input-text" + placeholder="璇疯緭鍏ユ牳瀹氬伐鏃�" + :min="0" + :max="999999999999" + :precision="2" + type="text" + /> + <div class="form-input-unit">{{ '灏忔椂/澶�' }}</div> + </div> + </nut-form-item> + <nut-form-item + label="瓒呮椂鏈嶅姟璐�:" + class="bole-form-item" + prop="timeoutServiceFee" + label-width="90" + > + <div class="bole-form-input-wrapper"> + <NumberInput + v-model.trim="form.timeoutServiceFee" + class="nut-input-text bole-input-text" + placeholder="璇疯緭鍏ヨ秴鏃舵湇鍔¤垂" + :min="0" + :max="999999999999" + :precision="2" + type="text" + /> + <div class="form-input-unit">{{ '鍏�/灏忔椂' }}</div> + </div> + </nut-form-item> + </template> <nut-form-item label="缁撶畻鏂瑰紡:" class="bole-form-item" @@ -36,11 +79,29 @@ required label-width="90px" > - <nut-radio-group v-model="form.settlementCycle" direction="horizontal"> + <nut-radio-group + v-model="form.settlementCycle" + direction="horizontal" + @change="settleTypeChange" + > <BlRadio :label="Number(key)" v-for="(val, key) in EnumSettlementCycleText" :key="key">{{ val }}</BlRadio> </nut-radio-group> + </nut-form-item> + <nut-form-item + label="缁撶畻鏃ユ湡:" + class="bole-form-item" + prop="settlementDate" + label-width="90px" + required + v-if="form.settlementCycle !== EnumSettlementCycle.Day" + > + <ChooseInputWithPicker + v-model="form.settlementDate" + placeholder="璇疯缃粨绠楁棩鏈�" + :value-enum="settlementDateList" + /> </nut-form-item> <nut-form-item label="绂忓埄:" class="bole-form-item" prop="benefits" label-width="90px"> <ChooseInputWithCheckbox @@ -62,14 +123,14 @@ v-model.trim="form.ageMinLimit" class="nut-input-text bole-input-text" placeholder="璇烽�夋嫨骞撮緞鑼冨洿" - :min="1" + :min="16" /> <div class="form-input-separator">鑷�</div> <NumberInput v-model.trim="form.ageMaxLimit" class="nut-input-text bole-input-text" placeholder="璇烽�夋嫨骞撮緞鑼冨洿" - :min="1" + :min="16" /> </div> </nut-form-item> @@ -99,22 +160,29 @@ placeholder="璇烽�夋嫨璧勬牸璇佷功" /> </nut-form-item> - <nut-form-item label="浠诲姟鍦扮偣" class="bole-form-item" prop="weMapInfo" required> - <ChooseLocationInput placeholder="璇烽�夋嫨浠诲姟鍦扮偣" v-model="form.weMapInfo" /> - <!-- <ChooseInputWithAreaPicker - :columns="areaTreeList" - v-model="form.areaList" - placeholder="璇烽�夋嫨鎵�鍦ㄥ湴鍖�" - ></ChooseInputWithAreaPicker> --> + <nut-form-item + label="浠诲姟鍦扮偣" + label-width="90px" + class="bole-form-item" + prop="weMapInfo" + required + > + <ChooseLocationInput + inputAlign="left" + placeholder="璇烽�夋嫨浠诲姟鍦扮偣" + v-model="form.weMapInfo" + /> </nut-form-item> <nut-form-item - label="璇︾粏鍦板潃:" + label="鍦扮偣璇存槑:" class="bole-form-item" prop="addressDetail" label-width="90px" - required > - <nut-input v-model="form.addressDetail" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"> </nut-input> + <nut-input v-model="form.addressDetail" placeholder="璇疯緭鍏ュ湴鐐硅鏄�"> </nut-input> + </nut-form-item> + <nut-form-item label="浠诲姟璇存槑:" class="bole-form-item" prop="description" label-width="90px"> + <nut-textarea v-model="form.description" placeholder="璇疯緭鍏ヤ换鍔¤鏄�"> </nut-textarea> </nut-form-item> <nut-form-item label="浠诲姟寮�濮嬫棩鏈�:" @@ -134,6 +202,59 @@ :minDate="nowDate" placeholder="璇烽�夋嫨浠诲姟缁撴潫鏃ユ湡" ></ChooseInputWithDatePicker> + </nut-form-item> + <nut-form-item + label="鎶ュ悕寮�濮嬫棩鏈�:" + class="bole-form-item" + prop="applyBeginTime" + label-width="90px" + > + <ChooseInputWithDatePicker + v-model="form.applyBeginTime" + :minDate="form.beginTime ? dayjs(form.beginTime).toDate() : nowDate" + placeholder="璇烽�夋嫨鎶ュ悕寮�濮嬫棩鏈�" + ></ChooseInputWithDatePicker> + </nut-form-item> + <nut-form-item + label="鎶ュ悕缁撴潫鏃ユ湡:" + class="bole-form-item" + prop="applyEndTime" + label-width="90px" + > + <ChooseInputWithDatePicker + v-model="form.applyEndTime" + :max-date="form.endTime ? dayjs(form.endTime).toDate() : nowDate" + placeholder="璇烽�夋嫨鎶ュ悕缁撴潫鏃ユ湡" + ></ChooseInputWithDatePicker> + </nut-form-item> + <nut-form-item + label="楠屾敹鏂瑰紡:" + class="bole-form-item" + prop="checkReceiveMethod" + label-width="90px" + > + <nut-radio-group v-model="form.checkReceiveMethod" direction="horizontal"> + <BlRadio + :label="Number(key)" + v-for="(val, key) in EnumTaskCheckReceiveMethodText" + :key="key" + >{{ val }}</BlRadio + > + </nut-radio-group> + </nut-form-item> + <nut-form-item + label="缁撶畻鏂瑰紡:" + class="bole-form-item" + prop="settlementAccess" + label-width="90px" + required + > + <ChooseInputWithPicker + v-model="form.settlementAccess" + placeholder="璇烽�夋嫨缁撶畻鏂瑰紡" + :value-enum="settlementAccessList" + :disabled="isEdit" + /> </nut-form-item> </nut-form> </ContentScrollView> @@ -155,6 +276,12 @@ EnumSettlementCycleText, BillingMethodEnumUnit, EnumUserGenderTextOptions, + EnumSettlementCycleDateWeekArray, + EnumSettlementCycleDateMonthArray, + EnumTaskCheckReceiveMethod, + EnumTaskCheckReceiveMethodText, + EnumEnterpriseWalletAccess, + EnumEnterpriseWalletAccessText, } from '@12333/constants'; import { ChooseInputWithPicker, @@ -166,12 +293,15 @@ ChooseInputWithCheckbox, } from '@12333/components'; import { FormValidator, Message } from '@12333/utils'; -import * as flexWorkerServices from '@12333/services/api/FlexWorker'; import * as taskServices from '@12333/services/apiV2/task'; import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; import Taro from '@tarojs/taro'; import { goBack } from '@/utils'; -import { useAllAreaList, useDictionaryDataSelect } from '@12333/hooks'; +import { + useAllAreaList, + useDictionaryDataSelect, + useEnterpriseWalletAccessSelect, +} from '@12333/hooks'; import { useQuery } from '@tanstack/vue-query'; import dayjs from 'dayjs'; @@ -181,11 +311,11 @@ const { userDetail } = useUser(); const { findAreaNameFromCode } = useAllAreaList(); +const { settlementAccessList } = useEnterpriseWalletAccessSelect(); const router = Taro.useRouter(); const taskId = router.params?.id ?? ''; const isEdit = !!taskId; const isCopy = router.params?.isCopy === 'true'; -console.log('isCopy: ', router.params?.isCopy); const nowDate = dayjs().toDate(); @@ -196,29 +326,48 @@ categoryCode: CategoryCode.CertificateType, }); +const settlementDateList = computed(() => { + if (form.settlementCycle === EnumSettlementCycle.Month) { + return EnumSettlementCycleDateMonthArray; + } + if (form.settlementCycle === EnumSettlementCycle.Week) { + return EnumSettlementCycleDateWeekArray; + } + return []; +}); + const form = reactive({ name: '', - billingMethod: EnumBillingMethod.Month, + billingMethod: EnumBillingMethod.Day, serviceFee: '' as any as number, - settlementCycle: EnumSettlementCycle.Month, + settlementCycle: EnumSettlementCycle.Day, benefits: [] as string[], ageMinLimit: '' as any as number, ageMaxLimit: '' as any as number, genderLimit: 0 as any as EnumUserGender, credentialLimits: [] as string[], - // address: '', beginTime: '', endTime: '', - // areaList: [] as number[], + settlementDate: null as number, weMapInfo: {} as WeMapModel, addressDetail: '', + + verifyWorkHours: null as number, + timeoutServiceFee: null as number, + description: '', + checkReceiveMethod: EnumTaskCheckReceiveMethod.CheckIn, + applyBeginTime: '', + applyEndTime: '', + settlementAccess: '' as any as EnumEnterpriseWalletAccess, }); const rules = reactive<FormRules>({ name: [{ required: true, message: '璇疯緭鍏ヤ换鍔″悕绉�' }], genderLimit: [{ required: true, message: '璇烽�夋嫨鎬у埆瑕佹眰' }], - addressDetail: [{ required: true, message: '璇疯緭鍏ヨ缁嗗湴鍧�' }], + settlementCycleDate: [{ required: true, message: '璇疯缃粨绠楁棩鏈�' }], + settlementAccess: [{ required: true, message: '璇烽�夋嫨缁撶畻鏂瑰紡' }], + // addressDetail: [{ required: true, message: '璇疯緭鍏ヨ缁嗗湴鍧�' }], billingMethod: [ { required: true, @@ -237,9 +386,6 @@ weMapInfo: [ { required: true, message: '璇疯缃伐浣滃湴鐐�', validator: FormValidator.validatorWeMap }, ], - // areaList: [ - // { required: true, message: '璇锋坊鍔犲伐浣滃湴鐐�', validator: FormValidator.validatorArray }, - // ], ageMinLimit: [ { @@ -302,6 +448,7 @@ form.billingMethod = data.billingMethod; form.serviceFee = data.serviceFee; form.settlementCycle = data.settlementCycle; + form.settlementDate = data.settlementDate; form.benefits = (data.benefits ?? []).map((item) => item.benefitCode); form.ageMinLimit = data.ageMinLimit; form.ageMaxLimit = data.ageMaxLimit; @@ -319,6 +466,13 @@ longitude: data.longitude, addressName: data.addressName, }; + form.description = data.description; + form.verifyWorkHours = data.verifyWorkHours; + form.timeoutServiceFee = data.timeoutServiceFee; + form.checkReceiveMethod = data.checkReceiveMethod; + form.applyBeginTime = dayjs(data.applyBeginTime).format('YYYY-MM-DD'); + form.applyEndTime = dayjs(data.applyEndTime).format('YYYY-MM-DD'); + form.settlementAccess = data.settlementAccess; }, }); @@ -339,6 +493,7 @@ billingMethod: form.billingMethod, serviceFee: form.serviceFee, settlementCycle: form.settlementCycle, + settlementDate: form.settlementDate ? form.settlementDate : 0, benefits: form.benefits, ageMinLimit: form.ageMinLimit, ageMaxLimit: form.ageMaxLimit, @@ -352,6 +507,13 @@ latitude: form.weMapInfo.latitude, beginTime: dayjs(form.beginTime).format('YYYY-MM-DD 00:00:00'), endTime: dayjs(form.endTime).format('YYYY-MM-DD 23:59:59'), + description: form.description, + verifyWorkHours: form.verifyWorkHours, + timeoutServiceFee: form.timeoutServiceFee, + checkReceiveMethod: form.checkReceiveMethod, + 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, }; if (isEdit) { params.id = taskId; @@ -370,6 +532,10 @@ } catch (error) {} } +function settleTypeChange() { + form.settlementDate = null as number; +} + function handleCancel() { goBack(); } -- Gitblit v1.9.1