|  |  |  | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | <template v-if="form.billingMethod === EnumBillingMethod.Hour"> | 
|---|
|  |  |  | <ProFormCol> | 
|---|
|  |  |  | <ProFormColItem :span="12"> | 
|---|
|  |  |  | <ProFormItemV2 label="核定工时:" prop="verifyWorkHours"> | 
|---|
|  |  |  | <ProFormInputNumber | 
|---|
|  |  |  | :controls="false" | 
|---|
|  |  |  | v-model="form.verifyWorkHours" | 
|---|
|  |  |  | placeholder="请输入核定工时" | 
|---|
|  |  |  | :min="0" | 
|---|
|  |  |  | :max="999999999999" | 
|---|
|  |  |  | unit="小时/天" | 
|---|
|  |  |  | ></ProFormInputNumber> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | <ProFormCol> | 
|---|
|  |  |  | <ProFormColItem :span="12"> | 
|---|
|  |  |  | <ProFormItemV2 label="超时服务费:" prop="timeoutServiceFee"> | 
|---|
|  |  |  | <ProFormInputNumber | 
|---|
|  |  |  | :controls="false" | 
|---|
|  |  |  | v-model="form.timeoutServiceFee" | 
|---|
|  |  |  | placeholder="请输入超时服务费" | 
|---|
|  |  |  | :min="0" | 
|---|
|  |  |  | :max="999999999999" | 
|---|
|  |  |  | unit="元/小时" | 
|---|
|  |  |  | ></ProFormInputNumber> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <ProFormCol> | 
|---|
|  |  |  | <ProFormColItem :span="12"> | 
|---|
|  |  |  | <ProFormItemV2 | 
|---|
|  |  |  | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | <ProFormCol> | 
|---|
|  |  |  | <ProFormColItem :span="12"> | 
|---|
|  |  |  | <ProFormItemV2 | 
|---|
|  |  |  | label="详细地址:" | 
|---|
|  |  |  | prop="addressDetail" | 
|---|
|  |  |  | :check-rules="[{ message: '请输入详细地址' }]" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <ProFormText v-model.trim="form.addressDetail" placeholder="请输入详细地址" /> | 
|---|
|  |  |  | <ProFormItemV2 label="地点说明:" prop="addressDetail"> | 
|---|
|  |  |  | <ProFormText v-model.trim="form.addressDetail" placeholder="请输入地点说明" /> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | <ProFormCol> | 
|---|
|  |  |  | <ProFormColItem :span="12"> | 
|---|
|  |  |  | <ProFormItemV2 label="任务描述:" prop="description"> | 
|---|
|  |  |  | <ProFormTextArea | 
|---|
|  |  |  | :rows="4" | 
|---|
|  |  |  | v-model.trim="form.description" | 
|---|
|  |  |  | placeholder="请输入任务描述" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | <ProFormCol> | 
|---|
|  |  |  | <ProFormColItem :span="12"> | 
|---|
|  |  |  | <ProFormItemV2 | 
|---|
|  |  |  | label="报名时间:" | 
|---|
|  |  |  | prop="applyTime" | 
|---|
|  |  |  | :check-rules="[{ message: '请选择报名时间', type: 'array' }]" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <ProFormDatePicker | 
|---|
|  |  |  | v-model="form.applyTime" | 
|---|
|  |  |  | type="daterange" | 
|---|
|  |  |  | range-separator="至" | 
|---|
|  |  |  | start-placeholder="开始日期" | 
|---|
|  |  |  | end-placeholder="结束日期" | 
|---|
|  |  |  | :disabled-date="disabledapplyDate" | 
|---|
|  |  |  | ></ProFormDatePicker> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | <ProFormCol> | 
|---|
|  |  |  | <ProFormColItem :span="12"> | 
|---|
|  |  |  | <ProFormItemV2 | 
|---|
|  |  |  | label="验收方式:" | 
|---|
|  |  |  | prop="checkReceiveMethod" | 
|---|
|  |  |  | :check-rules="[{ message: '请选择验收方式' }]" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <ProFormRadio | 
|---|
|  |  |  | v-model="form.checkReceiveMethod" | 
|---|
|  |  |  | :value-enum="EnumTaskCheckReceiveMethodText" | 
|---|
|  |  |  | :button-style="false" | 
|---|
|  |  |  | ></ProFormRadio> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | <ProFormItemV2 | 
|---|
|  |  |  | label="结算方式:" | 
|---|
|  |  |  | prop="settlementAccess" | 
|---|
|  |  |  | :check-rules="[{ message: '请选择结算方式' }]" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <ProFormSelect | 
|---|
|  |  |  | v-model="form.settlementAccess" | 
|---|
|  |  |  | :value-enum="settlementAccessList" | 
|---|
|  |  |  | :disabled="isEdit" | 
|---|
|  |  |  | placeholder="请选择结算方式" | 
|---|
|  |  |  | ></ProFormSelect> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProForm> | 
|---|
|  |  |  | <template #footer> | 
|---|
|  |  |  | <el-button @click="handleBack()">关闭</el-button> | 
|---|
|  |  |  | 
|---|
|  |  |  | ProFormDatePicker, | 
|---|
|  |  |  | ProFormCheckbox, | 
|---|
|  |  |  | ProFormSelect, | 
|---|
|  |  |  | ProFormTextArea, | 
|---|
|  |  |  | } from '@bole-core/components'; | 
|---|
|  |  |  | import { FormInstance, ModelValueType } from 'element-plus'; | 
|---|
|  |  |  | import { Message } from '@bole-core/core'; | 
|---|
|  |  |  | 
|---|
|  |  |  | import * as taskServices from '@/services/api/task'; | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | EnumUserGenderTextForEdit, | 
|---|
|  |  |  | EnumBillingMethod, | 
|---|
|  |  |  | EnumBillingMethodText, | 
|---|
|  |  |  | EnumBillingMethodUnitText, | 
|---|
|  |  |  | EnumSettlementCycleText, | 
|---|
|  |  |  | 
|---|
|  |  |  | EnumSettlementCycleDateMonthArray, | 
|---|
|  |  |  | EnumSettlementCycleDateWeekArray, | 
|---|
|  |  |  | EnumSettlementCycle, | 
|---|
|  |  |  | EnumTaskCheckReceiveMethodText, | 
|---|
|  |  |  | EnumEnterpriseWalletAccessText, | 
|---|
|  |  |  | } from '@/constants'; | 
|---|
|  |  |  | import { format, FormValidator } from '@/utils'; | 
|---|
|  |  |  | import dayjs from 'dayjs'; | 
|---|
|  |  |  | 
|---|
|  |  |  | const id = route.params.id as string; | 
|---|
|  |  |  | const isEdit = !!id; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { settlementAccessList } = useEnterpriseWalletAccessSelect(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function disabledDate(time: Date) { | 
|---|
|  |  |  | return dayjs(time).isBefore(dayjs(), 'day'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function disabledapplyDate(time: Date) { | 
|---|
|  |  |  | return dayjs(time).isBefore(form.time[0], 'day'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const eventContext = useGlobalEventContext(); | 
|---|
|  |  |  | 
|---|
|  |  |  | time: [] as unknown as ModelValueType, | 
|---|
|  |  |  | weMapInfo: {} as WeMapModel, | 
|---|
|  |  |  | addressDetail: '', | 
|---|
|  |  |  | verifyWorkHours: null as number, | 
|---|
|  |  |  | timeoutServiceFee: null as number, | 
|---|
|  |  |  | description: '', | 
|---|
|  |  |  | checkReceiveMethod: '' as any as EnumTaskCheckReceiveMethod, | 
|---|
|  |  |  | applyTime: [] as unknown as ModelValueType, | 
|---|
|  |  |  | settlementAccess: '' as any as EnumEnterpriseWalletAccess, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { isLoading } = useQuery({ | 
|---|
|  |  |  | 
|---|
|  |  |  | format(data.beginTime, 'YYYY-MM-DD 00:00:00'), | 
|---|
|  |  |  | format(data.endTime, 'YYYY-MM-DD 23:59:59'), | 
|---|
|  |  |  | ]; | 
|---|
|  |  |  | form.applyTime = [ | 
|---|
|  |  |  | format(data.applyBeginTime, 'YYYY-MM-DD 00:00:00'), | 
|---|
|  |  |  | format(data.applyEndTime, 'YYYY-MM-DD 23:59:59'), | 
|---|
|  |  |  | ]; | 
|---|
|  |  |  | form.weMapInfo = { | 
|---|
|  |  |  | latitude: data.latitude, | 
|---|
|  |  |  | longitude: data.longitude, | 
|---|
|  |  |  | 
|---|
|  |  |  | addressName: data.addressName, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | form.addressDetail = data.addressDetail; | 
|---|
|  |  |  | form.verifyWorkHours = data.verifyWorkHours; | 
|---|
|  |  |  | form.timeoutServiceFee = data.timeoutServiceFee; | 
|---|
|  |  |  | form.description = data.description; | 
|---|
|  |  |  | form.checkReceiveMethod = data.checkReceiveMethod; | 
|---|
|  |  |  | form.applyTime = [ | 
|---|
|  |  |  | format(data.applyBeginTime, 'YYYY-MM-DD 00:00:00'), | 
|---|
|  |  |  | format(data.applyEndTime, 'YYYY-MM-DD 23:59:59'), | 
|---|
|  |  |  | ]; | 
|---|
|  |  |  | form.settlementAccess = data.settlementAccess; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | enabled: isEdit, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | 
|---|
|  |  |  | latitude: form.weMapInfo.latitude, | 
|---|
|  |  |  | beginTime: dayjs(form.time[0]).format('YYYY-MM-DD 00:00:00'), | 
|---|
|  |  |  | endTime: dayjs(form.time[1]).format('YYYY-MM-DD 23:59:59'), | 
|---|
|  |  |  | applyBeginTime: dayjs(form.applyTime[0]).format('YYYY-MM-DD 00:00:00'), | 
|---|
|  |  |  | applyEndTime: dayjs(form.applyTime[1]).format('YYYY-MM-DD 23:59:59'), | 
|---|
|  |  |  | verifyWorkHours: form.verifyWorkHours, | 
|---|
|  |  |  | timeoutServiceFee: form.timeoutServiceFee, | 
|---|
|  |  |  | description: form.description, | 
|---|
|  |  |  | checkReceiveMethod: form.checkReceiveMethod, | 
|---|
|  |  |  | settlementAccess: form.settlementAccess, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | if (isEdit) { | 
|---|
|  |  |  | params.id = id; | 
|---|