| | |
| | | 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> |
| | |
| | | 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 |
| | |
| | | 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> |
| | |
| | | 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="详细地址:" |
| | |
| | | > |
| | | <ChooseInputWithDatePicker |
| | | v-model="form.beginTime" |
| | | :minDate="nowDate" |
| | | placeholder="请选择任务开始日期" |
| | | ></ChooseInputWithDatePicker> |
| | | </nut-form-item> |
| | |
| | | EnumSettlementCycleText, |
| | | BillingMethodEnumUnit, |
| | | EnumUserGenderTextOptions, |
| | | EnumSettlementCycleDateWeekArray, |
| | | EnumSettlementCycleDateMonthArray, |
| | | } from '@12333/constants'; |
| | | import { |
| | | ChooseInputWithPicker, |
| | |
| | | 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(); |
| | | |
| | |
| | | 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: '' 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: '', |
| | |
| | | const rules = reactive<FormRules>({ |
| | | name: [{ required: true, message: '请输入任务名称' }], |
| | | genderLimit: [{ required: true, message: '请选择性别要求' }], |
| | | settlementCycleDate: [{ required: true, message: '请设置结算日期' }], |
| | | addressDetail: [{ required: true, message: '请输入详细地址' }], |
| | | billingMethod: [ |
| | | { |
| | |
| | | weMapInfo: [ |
| | | { required: true, message: '请设置工作地点', validator: FormValidator.validatorWeMap }, |
| | | ], |
| | | // areaList: [ |
| | | // { required: true, message: '请添加工作地点', validator: FormValidator.validatorArray }, |
| | | // ], |
| | | |
| | | ageMinLimit: [ |
| | | { |
| | |
| | | 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); |
| | | }, |
| | | }, |
| | |
| | | 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, |
| | |
| | | billingMethod: form.billingMethod, |
| | | serviceFee: form.serviceFee, |
| | | settlementCycle: form.settlementCycle, |
| | | settlementDate: form.settlementDate ? form.settlementDate : 0, |
| | | benefits: form.benefits, |
| | | ageMinLimit: form.ageMinLimit, |
| | | ageMaxLimit: form.ageMaxLimit, |
| | |
| | | } |
| | | let res = await taskServices.saveTaskInfo(params); |
| | | if (res) { |
| | | Message.success(isEdit ? '编辑成功' : '发布成功', { |
| | | Message.success(isEdit && !isCopy ? '编辑成功' : '发布成功', { |
| | | onClosed() { |
| | | goBack(); |
| | | }, |
| | |
| | | } catch (error) {} |
| | | } |
| | | |
| | | function settleTypeChange() { |
| | | form.settlementDate = null as number; |
| | | } |
| | | |
| | | function handleCancel() { |
| | | goBack(); |
| | | } |