|  |  | 
 |  |  |           }}</BlRadio> | 
 |  |  |         </nut-radio-group> | 
 |  |  |       </nut-form-item> | 
 |  |  |       <nut-form-item label=" " class="bole-form-item" prop="serviceFee" label-width="0"> | 
 |  |  |       <nut-form-item | 
 |  |  |         v-if="form.billingMethod !== EnumBillingMethod.Face" | 
 |  |  |         label=" " | 
 |  |  |         class="bole-form-item" | 
 |  |  |         prop="serviceFee" | 
 |  |  |         label-width="0" | 
 |  |  |       > | 
 |  |  |         <div class="bole-form-input-wrapper"> | 
 |  |  |           <NumberInput | 
 |  |  |             v-model.trim="form.serviceFee" | 
 |  |  | 
 |  |  |           <div class="form-input-unit">{{ BillingMethodEnumUnit[form.billingMethod] }}</div> | 
 |  |  |         </div> | 
 |  |  |       </nut-form-item> | 
 |  |  |       <template v-if="form.billingMethod === EnumBillingMethod.Hour"> | 
 |  |  |       <template | 
 |  |  |         v-if=" | 
 |  |  |           form.billingMethod === EnumBillingMethod.Hour || | 
 |  |  |           form.billingMethod === EnumBillingMethod.Day | 
 |  |  |         " | 
 |  |  |       > | 
 |  |  |         <nut-form-item | 
 |  |  |           label="核定工时:" | 
 |  |  |           class="bole-form-item" | 
 |  |  | 
 |  |  |           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"> | 
 |  |  | 
 |  |  |       > | 
 |  |  |         <ChooseInputWithDatePicker | 
 |  |  |           v-model="form.applyBeginTime" | 
 |  |  |           :minDate="form.beginTime ? dayjs(form.beginTime).toDate() : nowDate" | 
 |  |  |           :minDate="nowDate" | 
 |  |  |           placeholder="请选择报名开始日期" | 
 |  |  |         ></ChooseInputWithDatePicker> | 
 |  |  |       </nut-form-item> | 
 |  |  | 
 |  |  |       > | 
 |  |  |         <ChooseInputWithDatePicker | 
 |  |  |           v-model="form.applyEndTime" | 
 |  |  |           :max-date="form.endTime ? dayjs(form.endTime).toDate() : nowDate" | 
 |  |  |           :minDate="form.applyBeginTime ? dayjs(form.applyBeginTime).toDate() : nowDate" | 
 |  |  |           placeholder="请选择报名结束日期" | 
 |  |  |         ></ChooseInputWithDatePicker> | 
 |  |  |       </nut-form-item> | 
 |  |  | 
 |  |  |         <ChooseInputWithPicker | 
 |  |  |           v-model="form.settlementAccess" | 
 |  |  |           placeholder="请选择结算方式" | 
 |  |  |           :value-enum="EnumEnterpriseWalletAccessText" | 
 |  |  |           :value-enum="settlementAccessList" | 
 |  |  |           :disabled="isEdit" | 
 |  |  |         /> | 
 |  |  |       </nut-form-item> | 
 |  |  | 
 |  |  |   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'; | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  | 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, | 
 |  |  | 
 |  |  |         if (!form.billingMethod) { | 
 |  |  |           return Promise.reject('请选择服务费类型'); | 
 |  |  |         } | 
 |  |  |         if (!form.serviceFee) { | 
 |  |  |         if (!form.serviceFee && form.billingMethod !== EnumBillingMethod.Face) { | 
 |  |  |           return Promise.reject('请输入服务费'); | 
 |  |  |         } | 
 |  |  |         return Promise.resolve(true); | 
 |  |  | 
 |  |  |         if (!value) return Promise.reject('请选择结束日期'); | 
 |  |  |         if (dayjs(value).isBefore(dayjs(form.beginTime))) | 
 |  |  |           return Promise.reject('结束日期需大于开始日期'); | 
 |  |  |         return Promise.resolve(true); | 
 |  |  |       }, | 
 |  |  |     }, | 
 |  |  |   ], | 
 |  |  |   applyBeginTime: [ | 
 |  |  |     { | 
 |  |  |       required: true, | 
 |  |  |       message: '请选择报名开始日期', | 
 |  |  |       validator(value) { | 
 |  |  |         if (!value) 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); | 
 |  |  |       }, | 
 |  |  |     }, | 
 |  |  | 
 |  |  |   } catch (error) {} | 
 |  |  | } | 
 |  |  |  | 
 |  |  | function timeChange() { | 
 |  |  |   form.applyBeginTime = ''; | 
 |  |  |   form.applyEndTime = ''; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | function applyTimeChange() { | 
 |  |  |   form.applyEndTime = ''; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | function settleTypeChange() { | 
 |  |  |   form.settlementDate = null as number; | 
 |  |  | } |