From ab9a81adf064bc1905dbcec39e97371c3e1d5c5d Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 17 十月 2025 19:46:08 +0800
Subject: [PATCH] feat: 1.2.0.1
---
apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue | 115 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 86 insertions(+), 29 deletions(-)
diff --git a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
index dbb88a9..d07afa3 100644
--- a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
@@ -25,6 +25,9 @@
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>
@@ -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>
@@ -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="璇︾粏鍦板潃:"
@@ -125,12 +151,14 @@
<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"
:minDate="nowDate"
+ placeholder="璇烽�夋嫨浠诲姟缁撴潫鏃ユ湡"
></ChooseInputWithDatePicker>
</nut-form-item>
</nut-form>
@@ -153,6 +181,8 @@
EnumSettlementCycleText,
BillingMethodEnumUnit,
EnumUserGenderTextOptions,
+ EnumSettlementCycleDateWeekArray,
+ EnumSettlementCycleDateMonthArray,
} from '@12333/constants';
import {
ChooseInputWithPicker,
@@ -180,10 +210,9 @@
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();
@@ -194,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: '',
@@ -216,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)) {
@@ -256,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);
},
},
@@ -285,13 +336,14 @@
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;
form.genderLimit = data.genderLimit;
form.credentialLimits = (data.credentialLimits ?? []).map((item) => item.typeCode);
- form.beginTime = dayjs(data.beginTime).format('YYYY-MM-DD 00:00:00');
- form.endTime = dayjs(data.endTime).format('YYYY-MM-DD 23:59:59');
+ 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: data.provinceContent,
@@ -322,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,
@@ -344,7 +397,7 @@
}
let res = await taskServices.saveTaskInfo(params);
if (res) {
- Message.success(isEdit ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛', {
+ Message.success(isEdit && !isCopy ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛', {
onClosed() {
goBack();
},
@@ -353,6 +406,10 @@
} catch (error) {}
}
+function settleTypeChange() {
+ form.settlementDate = null as number;
+}
+
function handleCancel() {
goBack();
}
--
Gitblit v1.9.1