From 84aedf23b13386576a70b21ebdf5d6ddd9c947ec Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 09:43:32 +0800
Subject: [PATCH] fix: bug

---
 apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue |  201 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 192 insertions(+), 9 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
index 8ece015..e2d71ef 100644
--- a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
@@ -25,10 +25,58 @@
             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 ||
+          form.billingMethod === EnumBillingMethod.Day
+        "
+      >
+        <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"
@@ -80,14 +128,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>
@@ -124,16 +172,22 @@
         prop="weMapInfo"
         required
       >
-        <ChooseLocationInput placeholder="璇烽�夋嫨浠诲姟鍦扮偣" v-model="form.weMapInfo" />
+        <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="浠诲姟寮�濮嬫棩鏈�:"
@@ -145,6 +199,7 @@
           v-model="form.beginTime"
           :minDate="nowDate"
           placeholder="璇烽�夋嫨浠诲姟寮�濮嬫棩鏈�"
+          @change="timeChange"
         ></ChooseInputWithDatePicker>
       </nut-form-item>
       <nut-form-item label="浠诲姟缁撴潫鏃ユ湡:" class="bole-form-item" prop="endTime" label-width="90px">
@@ -153,6 +208,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"
+          :minDate="form.beginTime ? dayjs(form.beginTime).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>
@@ -176,6 +284,10 @@
   EnumUserGenderTextOptions,
   EnumSettlementCycleDateWeekArray,
   EnumSettlementCycleDateMonthArray,
+  EnumTaskCheckReceiveMethod,
+  EnumTaskCheckReceiveMethodText,
+  EnumEnterpriseWalletAccess,
+  EnumEnterpriseWalletAccessText,
 } from '@12333/constants';
 import {
   ChooseInputWithPicker,
@@ -187,12 +299,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';
 
@@ -202,12 +317,20 @@
 
 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';
 
 const nowDate = dayjs().toDate();
+const applyBeginTimeMinDate = computed(() => {
+  return form.applyBeginTime
+    ? dayjs(form.applyBeginTime).toDate()
+    : form.beginTime
+    ? dayjs(form.beginTime).toDate()
+    : nowDate;
+});
 
 const { dictionaryDataList: WelfareTypeList } = useDictionaryDataSelect({
   categoryCode: CategoryCode.Welfare,
@@ -242,13 +365,22 @@
 
   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: '璇烽�夋嫨鎬у埆瑕佹眰' }],
   settlementCycleDate: [{ required: true, message: '璇疯缃粨绠楁棩鏈�' }],
-  addressDetail: [{ required: true, message: '璇疯緭鍏ヨ缁嗗湴鍧�' }],
+  settlementAccess: [{ required: true, message: '璇烽�夋嫨缁撶畻鏂瑰紡' }],
+  // addressDetail: [{ required: true, message: '璇疯緭鍏ヨ缁嗗湴鍧�' }],
   billingMethod: [
     {
       required: true,
@@ -305,6 +437,34 @@
       },
     },
   ],
+  applyBeginTime: [
+    {
+      required: true,
+      message: '璇烽�夋嫨鎶ュ悕寮�濮嬫棩鏈�',
+      validator(value) {
+        if (!value) return Promise.reject('璇烽�夋嫨鎶ュ悕寮�濮嬫棩鏈�');
+        if (dayjs(value).isBefore(dayjs(form.beginTime)))
+          return Promise.reject('鎶ュ悕寮�濮嬫棩鏈熼渶澶т簬浠诲姟寮�濮嬫棩鏈�');
+        if (dayjs(value).isAfter(dayjs(form.endTime)))
+          return Promise.reject('鎶ュ悕寮�濮嬫棩鏈熼渶灏忎簬浠诲姟缁撴潫鏃ユ湡');
+        return Promise.resolve(true);
+      },
+    },
+  ],
+  applyEndTime: [
+    {
+      required: true,
+      message: '璇烽�夋嫨鎶ュ悕缁撴潫鏃ユ湡',
+      validator(value) {
+        if (!value) return Promise.reject('璇烽�夋嫨鎶ュ悕缁撴潫鏃ユ湡');
+        if (dayjs(value).isBefore(dayjs(form.applyBeginTime)))
+          return Promise.reject('鎶ュ悕缁撴潫鏃ユ湡闇�澶т簬鎶ュ悕寮�濮嬫棩鏈�');
+        if (dayjs(value).isAfter(dayjs(form.endTime)))
+          return Promise.reject('鎶ュ悕缁撴潫鏃ユ湡闇�灏忎簬浠诲姟缁撴潫鏃ユ湡');
+        return Promise.resolve(true);
+      },
+    },
+  ],
 });
 
 const {
@@ -347,6 +507,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;
   },
 });
 
@@ -381,6 +548,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;
@@ -399,6 +573,15 @@
   } catch (error) {}
 }
 
+function timeChange() {
+  form.applyBeginTime = '';
+  form.applyEndTime = '';
+}
+
+function applyTimeChange() {
+  form.applyEndTime = '';
+}
+
 function settleTypeChange() {
   form.settlementDate = null as number;
 }

--
Gitblit v1.9.1