| | |
| | | <template> |
| | | <ContentScrollView :paddingH="false"> |
| | | <nut-form :model-value="form" ref="formRef" :rules="rules"> |
| | | <nut-form-item label="期望岗位:" class="bole-form-item" prop="job" label-position="top"> |
| | | <!-- <ChooseInputWithPicker |
| | | v-model="form.job" |
| | | placeholder="请选择期望岗位" |
| | | :value-enum="TaskStatusText" |
| | | /> --> |
| | | <nut-form-item label="期望岗位:" class="bole-form-item" prop="jobIdList" label-position="top"> |
| | | <CommonInputField class="job-common-input-field" @click="goExpectPosition"> |
| | | <JobTagList /> |
| | | <JobTagList :jobTagList="jobTagList" /> |
| | | </CommonInputField> |
| | | </nut-form-item> |
| | | <nut-form-item label="空闲时间:" class="bole-form-item" prop="job"> |
| | | <nut-form-item label="空闲时间:" class="bole-form-item" prop="freeTime"> |
| | | <ChooseInputWithPicker |
| | | v-model="form.job" |
| | | v-model="form.freeTime" |
| | | placeholder="请选择空闲时间" |
| | | :value-enum="TaskStatusText" |
| | | :value-enum="UserResumeFreeTimeEnumText" |
| | | /> |
| | | </nut-form-item> |
| | | <nut-form-item label="求职状态:" class="bole-form-item" prop="job"> |
| | | <nut-form-item label="求职状态:" class="bole-form-item" prop="jobSeekingStatus"> |
| | | <ChooseInputWithPicker |
| | | v-model="form.job" |
| | | v-model="form.jobSeekingStatus" |
| | | placeholder="请选择求职状态" |
| | | :value-enum="TaskStatusText" |
| | | :value-enum="UserResumeJobSeekingStatusEnumText" |
| | | /> |
| | | </nut-form-item> |
| | | </nut-form> |
| | |
| | | <script setup lang="ts"> |
| | | import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; |
| | | import { ChooseInputWithPicker, JobTagList, CommonInputField } from '@12333/components'; |
| | | import { TaskStatusText, TaskStatus } from '@/constants'; |
| | | import { useUser } from '@/hooks'; |
| | | import { |
| | | UserResumeFreeTimeEnumText, |
| | | UserResumeJobSeekingStatusEnumText, |
| | | UserResumeFreeTimeEnum, |
| | | UserResumeJobSeekingStatusEnum, |
| | | SearchType, |
| | | } from '@12333/constants'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as userResumeServices from '@12333/services/api/userResume'; |
| | | import { useSearchSettingType } from '@12333/hooks'; |
| | | import { Message } from '@12333/utils'; |
| | | import { goBack } from '@/utils'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const { userDetail } = useUser(); |
| | | const { searchSettingTypeList: positionList } = useSearchSettingType({ |
| | | searchType: SearchType.Position, |
| | | }); |
| | | |
| | | const jobTagList = computed(() => { |
| | | return positionList.value?.filter((x) => form.jobIdList.includes(x.id)).map((x) => x.name) || []; |
| | | }); |
| | | |
| | | const form = reactive({ |
| | | job: TaskStatus.All, |
| | | jobIdList: [] as string[], |
| | | freeTime: UserResumeFreeTimeEnum.NoLimit, |
| | | jobSeekingStatus: UserResumeJobSeekingStatusEnum.Activing, |
| | | }); |
| | | |
| | | const { |
| | | isLoading, |
| | | isError, |
| | | data: detail, |
| | | refetch, |
| | | } = useQuery({ |
| | | queryKey: ['userResumeServices/getResumeExpectationJob'], |
| | | queryFn: async () => { |
| | | return await userResumeServices.getResumeExpectationJob({ |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | placeholderData: () => ({} as API.UserResumeExpectationJobOutput), |
| | | onSuccess(data) { |
| | | form.jobIdList = data.jobIdList.map((x) => x.id); |
| | | form.freeTime = data.freeTime; |
| | | form.jobSeekingStatus = data.jobSeekingStatus; |
| | | }, |
| | | }); |
| | | |
| | | const rules = reactive<FormRules>({ |
| | | job: [{ required: true, message: '请选择' }], |
| | | jobIdList: [ |
| | | { |
| | | required: true, |
| | | validator() { |
| | | if (form.jobIdList.length) return Promise.resolve(true); |
| | | return Promise.reject('请选择期望岗位'); |
| | | }, |
| | | }, |
| | | ], |
| | | freeTime: [{ required: true, message: '请选择空闲时间' }], |
| | | jobSeekingStatus: [{ required: true, message: '请选择求职状态' }], |
| | | }); |
| | | const formRef = ref<any>(null); |
| | | function handleConfirm() { |
| | |
| | | }); |
| | | } |
| | | |
| | | function confirm() {} |
| | | async function confirm() { |
| | | try { |
| | | let params: API.SaveUserResumeExpectationJobInput = { |
| | | jobIdList: form.jobIdList, |
| | | freeTime: form.freeTime, |
| | | jobSeekingStatus: form.jobSeekingStatus, |
| | | }; |
| | | let res = await userResumeServices.saveUserResumeExpectationJob(params); |
| | | if (res) { |
| | | Message.success('保存成功', { |
| | | onClosed() { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.mineCurriculumVitae}`, |
| | | success: function (res) { |
| | | res.eventChannel.emit('updateResume', { content: true }); |
| | | }, |
| | | }); |
| | | }, |
| | | }); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |
| | | function goExpectPosition() { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.expectPosition}`, |
| | | events: { |
| | | addPosition: function (data: { content: string[] }) { |
| | | form.jobIdList = data.content?.length ? data.content : []; |
| | | }, |
| | | }, |
| | | success: function (res) { |
| | | res.eventChannel.emit('updatePosition', { content: form.jobIdList }); |
| | | }, |
| | | }); |
| | | } |
| | | </script> |