From 35a060b92d177657bfd9dfa39b3716c30eda9caf Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期一, 22 九月 2025 09:46:32 +0800 Subject: [PATCH] fix: bug --- apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue | 142 ++++++++++++++++++++++++++++++++++------------ 1 files changed, 104 insertions(+), 38 deletions(-) diff --git a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue index 8e810c9..d07afa3 100644 --- a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue @@ -20,10 +20,13 @@ </nut-form-item> <nut-form-item label=" " class="bole-form-item" prop="serviceFee" label-width="0"> <div class="bole-form-input-wrapper"> - <nut-input + <NumberInput v-model.trim="form.serviceFee" 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> @@ -36,11 +39,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 +83,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> @@ -83,7 +104,7 @@ <ChooseInputWithPicker v-model="form.genderLimit" placeholder="璇烽�夋嫨鎬у埆瑕佹眰" - :value-enum="EnumUserGenderText" + :value-enum="EnumUserGenderTextOptions" /> </nut-form-item> <nut-form-item @@ -99,13 +120,18 @@ 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="璇︾粏鍦板潃:" @@ -122,10 +148,18 @@ prop="beginTime" label-width="90px" > - <ChooseInputWithDatePicker v-model="form.beginTime"></ChooseInputWithDatePicker> + <ChooseInputWithDatePicker + v-model="form.beginTime" + :minDate="nowDate" + placeholder="璇烽�夋嫨浠诲姟寮�濮嬫棩鏈�" + ></ChooseInputWithDatePicker> </nut-form-item> <nut-form-item label="浠诲姟缁撴潫鏃ユ湡:" class="bole-form-item" prop="endTime" label-width="90px"> - <ChooseInputWithDatePicker v-model="form.endTime"></ChooseInputWithDatePicker> + <ChooseInputWithDatePicker + v-model="form.endTime" + :minDate="nowDate" + placeholder="璇烽�夋嫨浠诲姟缁撴潫鏃ユ湡" + ></ChooseInputWithDatePicker> </nut-form-item> </nut-form> </ContentScrollView> @@ -146,6 +180,9 @@ EnumUserGenderText, EnumSettlementCycleText, BillingMethodEnumUnit, + EnumUserGenderTextOptions, + EnumSettlementCycleDateWeekArray, + EnumSettlementCycleDateMonthArray, } from '@12333/constants'; import { ChooseInputWithPicker, @@ -173,10 +210,11 @@ const { userDetail } = useUser(); const { findAreaNameFromCode } = useAllAreaList(); const router = Taro.useRouter(); -const taskId = router.params?.taskId ?? ''; +const taskId = router.params?.id ?? ''; const isEdit = !!taskId; const isCopy = router.params?.isCopy === 'true'; -console.log('isCopy: ', router.params?.isCopy); + +const nowDate = dayjs().toDate(); const { dictionaryDataList: WelfareTypeList } = useDictionaryDataSelect({ categoryCode: CategoryCode.Welfare, @@ -185,20 +223,29 @@ 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: 0, - ageMaxLimit: 0, - genderLimit: '' as any as EnumUserGender, + 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: '', @@ -207,24 +254,36 @@ const rules = reactive<FormRules>({ name: [{ required: true, message: '璇疯緭鍏ヤ换鍔″悕绉�' }], genderLimit: [{ required: true, message: '璇烽�夋嫨鎬у埆瑕佹眰' }], + settlementCycleDate: [{ required: true, message: '璇疯缃粨绠楁棩鏈�' }], addressDetail: [{ required: true, message: '璇疯緭鍏ヨ缁嗗湴鍧�' }], - + billingMethod: [ + { + required: true, + message: '璇烽�夋嫨鏀惰垂鏂瑰紡', + validator: () => { + if (!form.billingMethod) { + return Promise.reject('璇烽�夋嫨鏈嶅姟璐圭被鍨�'); + } + if (!form.serviceFee) { + return Promise.reject('璇疯緭鍏ユ湇鍔¤垂'); + } + return Promise.resolve(true); + }, + }, + ], weMapInfo: [ { required: true, message: '璇疯缃伐浣滃湴鐐�', validator: FormValidator.validatorWeMap }, ], - // areaList: [ - // { required: true, message: '璇锋坊鍔犲伐浣滃湴鐐�', validator: FormValidator.validatorArray }, - // ], ageMinLimit: [ { required: true, message: '璇疯緭鍏ュ勾榫勮姹�', validator: () => { - if (!form.ageMinLimit) { + if (!form.ageMinLimit && form.ageMinLimit > 0) { return Promise.reject('璇疯緭鍏ュ勾榫勮姹�'); } - if (!form.ageMaxLimit) { + if (!form.ageMaxLimit && form.ageMaxLimit > 0) { return Promise.reject('璇疯緭鍏ュ勾榫勮姹�'); } if (Number(form.ageMaxLimit) <= Number(form.ageMinLimit)) { @@ -247,7 +306,8 @@ message: '璇烽�夋嫨缁撴潫鏃ユ湡', validator(value) { if (!value) return Promise.reject('璇烽�夋嫨缁撴潫鏃ユ湡'); - if (value <= form.beginTime) return Promise.reject('缁撴潫鏃ユ湡涓嶈兘灏忎簬寮�濮嬫棩鏈�'); + if (dayjs(value).isBefore(dayjs(form.beginTime))) + return Promise.reject('缁撴潫鏃ユ湡闇�澶т簬寮�濮嬫棩鏈�'); return Promise.resolve(true); }, }, @@ -276,17 +336,18 @@ form.billingMethod = data.billingMethod; form.serviceFee = data.serviceFee; form.settlementCycle = data.settlementCycle; - form.benefits = (data.benefits ?? []).map((item) => item.code); + form.settlementDate = data.settlementDate; + form.benefits = (data.benefits ?? []).map((item) => item.benefitCode); form.ageMinLimit = data.ageMinLimit; form.ageMaxLimit = data.ageMaxLimit; form.genderLimit = data.genderLimit; - form.credentialLimits = (data.credentialLimits ?? []).map((item) => item.code); + form.credentialLimits = (data.credentialLimits ?? []).map((item) => item.typeCode); form.beginTime = dayjs(data.beginTime).format('YYYY-MM-DD'); form.endTime = dayjs(data.endTime).format('YYYY-MM-DD'); form.addressDetail = data.addressDetail; form.weMapInfo = { - provinceName: findAreaNameFromCode(data.provinceCode), - cityName: findAreaNameFromCode(data.cityCode), + provinceName: data.provinceContent, + cityName: data.cityContent, provinceCode: data.provinceCode, cityCode: data.cityCode, latitude: data.latitude, @@ -313,6 +374,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, @@ -324,8 +386,8 @@ addressDetail: form.addressDetail, longitude: form.weMapInfo.longitude, latitude: form.weMapInfo.latitude, - beginTime: form.beginTime, - endTime: form.endTime, + beginTime: dayjs(form.beginTime).format('YYYY-MM-DD 00:00:00'), + endTime: dayjs(form.endTime).format('YYYY-MM-DD 23:59:59'), }; if (isEdit) { params.id = taskId; @@ -335,7 +397,7 @@ } let res = await taskServices.saveTaskInfo(params); if (res) { - Message.success(isEdit ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛', { + Message.success(isEdit && !isCopy ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛', { onClosed() { goBack(); }, @@ -344,8 +406,12 @@ } catch (error) {} } +function settleTypeChange() { + form.settlementDate = null as number; +} + function handleCancel() { - Taro.navigateBack(); + goBack(); } </script> -- Gitblit v1.9.1