From bd06057f03bc82fdbf4b75c3c810db6ff9da46b8 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期一, 11 八月 2025 14:10:11 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp --- apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue | 121 ++++++++++++++++++++++++++++++++++------ 1 files changed, 102 insertions(+), 19 deletions(-) diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue index d123c03..87b07bf 100644 --- a/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue @@ -1,28 +1,28 @@ <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="userExpectJobs" + 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="EnumPersonalFreeTimeText" /> </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="EnumPersonalJobSeekingStatusText" /> </nut-form-item> </nut-form> @@ -35,22 +35,75 @@ <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 { + CategoryCode, + EnumPersonalFreeTime, + EnumPersonalJobSeekingStatus, + EnumPersonalFreeTimeText, + EnumPersonalJobSeekingStatusText, +} from '@12333/constants'; import Taro from '@tarojs/taro'; +import * as userResumeServices from '@12333/services/apiV2/userResume'; +import { useDictionaryDataSelect } from '@12333/hooks'; +import { Message } from '@12333/utils'; +import { useQuery } from '@tanstack/vue-query'; defineOptions({ name: 'InnerPage', }); -const { userDetail } = useUser(); +const { dictionaryDataList: positionList } = useDictionaryDataSelect({ + categoryCode: CategoryCode.Position, +}); + +const jobTagList = computed(() => { + return ( + positionList.value?.filter((x) => form.userExpectJobs.includes(x.value)).map((x) => x.label) || + [] + ); +}); const form = reactive({ - job: TaskStatus.All, + userExpectJobs: [] as string[], + freeTime: EnumPersonalFreeTime.NoLimit, + jobSeekingStatus: EnumPersonalJobSeekingStatus.Active, +}); + +const { + isLoading, + isError, + data: detail, + refetch, +} = useQuery({ + queryKey: ['userResumeServices/getUserResumeJobSeeking'], + queryFn: async () => { + return await userResumeServices.getUserResumeJobSeeking( + {}, + { + showLoading: false, + } + ); + }, + placeholderData: () => ({} as API.GetUserResumeJobSeekingQueryResult), + onSuccess(data) { + form.userExpectJobs = data.userExpectJobs.map((x) => x.expectJobCode); + form.freeTime = data.freeTime; + form.jobSeekingStatus = data.jobSeekingStatus; + }, }); const rules = reactive<FormRules>({ - job: [{ required: true, message: '璇烽�夋嫨' }], + userExpectJobs: [ + { + required: true, + validator() { + if (form.userExpectJobs.length) return Promise.resolve(true); + return Promise.reject('璇烽�夋嫨鏈熸湜宀椾綅'); + }, + }, + ], + freeTime: [{ required: true, message: '璇烽�夋嫨绌洪棽鏃堕棿' }], + jobSeekingStatus: [{ required: true, message: '璇烽�夋嫨姹傝亴鐘舵��' }], }); const formRef = ref<any>(null); function handleConfirm() { @@ -62,11 +115,41 @@ }); } -function confirm() {} +async function confirm() { + try { + let params: API.SaveUserResumeJobSeekingCommand = { + userExpectJobs: form.userExpectJobs, + freeTime: form.freeTime, + jobSeekingStatus: form.jobSeekingStatus, + }; + let res = await userResumeServices.saveUserResumeJobSeeking(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.userExpectJobs = data.content?.length ? data.content : []; + }, + }, + success: function (res) { + console.log('res: ', res); + res.eventChannel.emit('updatePosition', { content: form.userExpectJobs }); + }, }); } </script> -- Gitblit v1.9.1