| | |
| | | import * as userResumeServices from '@12333/services/apiV2/userResume'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import { useEventChannel } from 'senin-mini/hooks'; |
| | | import { goBack } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const eventChannel = useEventChannel(); |
| | | |
| | | const { dictionaryDataList: identityList } = useDictionaryDataSelect({ |
| | | categoryCode: CategoryCode.Identity, |
| | |
| | | const form = reactive({ |
| | | avatar: [], |
| | | name: '', |
| | | identity: '', |
| | | contactPhoneNumber: '', |
| | | personalIdentityCode: '', |
| | | educationalBackgroundCode: '', |
| | |
| | | }, |
| | | placeholderData: () => ({} as API.GetUserResumePersonalQueryResult), |
| | | onSuccess(data) { |
| | | form.avatar = convertApi2FormUrlOnlyOne(setOSSLink(data.avatar)); |
| | | form.name = data.name; |
| | | form.identity = data.identity; |
| | | form.contactPhoneNumber = data.contactPhoneNumber; |
| | | form.avatar = convertApi2FormUrlOnlyOne(data.avatar); |
| | | form.name = data.name ?? ''; |
| | | form.contactPhoneNumber = data.contactPhoneNumber ?? ''; |
| | | form.personalIdentityCode = data.personalIdentityCode ?? ''; |
| | | form.educationalBackgroundCode = data.educationalBackgroundCode ?? ''; |
| | | form.areaList = [data.provinceCode, data.cityCode].filter(Boolean); |
| | |
| | | try { |
| | | let params: API.SaveUserResumePersonalCommand = { |
| | | name: form.name, |
| | | identity: form.identity, |
| | | avatar: form.avatar[0]?.path, |
| | | avatar: form.avatar?.[0]?.path ?? '', |
| | | contactPhoneNumber: form.contactPhoneNumber, |
| | | educationalBackgroundCode: form.educationalBackgroundCode, |
| | | personalIdentityCode: form.personalIdentityCode, |
| | | provinceCode: form.areaList[0], |
| | | cityCode: form.areaList[1], |
| | | provinceCode: form.areaList?.[0] ?? '', |
| | | cityCode: form.areaList?.[1] ?? '', |
| | | }; |
| | | let res = await userResumeServices.saveUserResumePersonal(params); |
| | | if (res) { |
| | | Message.success('保存成功', { |
| | | onClosed() { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.mineCurriculumVitae}`, |
| | | success: function (res) { |
| | | res.eventChannel.emit('updateResume', { content: true }); |
| | | }, |
| | | }); |
| | | goBack(); |
| | | eventChannel.emit('updateResume', { content: true }); |
| | | }, |
| | | }); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| | |
| | | /> |
| | | </nut-form-item> |
| | | <nut-form-item label="证书编号:" class="bole-form-item" prop="code"> |
| | | <nut-input v-model="form.code" type="number" placeholder="请输入"> </nut-input> |
| | | <nut-input v-model="form.code" type="text" placeholder="请输入"> </nut-input> |
| | | </nut-form-item> |
| | | <nut-form-item |
| | | label="永久证书:" |
| | |
| | | <nut-switch v-model="form.isForever" /> |
| | | </nut-form-item> |
| | | <nut-form-item label="开始日期:" class="bole-form-item" prop="startDate"> |
| | | <ChooseInputWithDatePicker v-model="form.startDate"></ChooseInputWithDatePicker> |
| | | <ChooseInputWithDatePicker |
| | | v-model="form.startDate" |
| | | placeholder="请选择开始日期" |
| | | ></ChooseInputWithDatePicker> |
| | | </nut-form-item> |
| | | <nut-form-item label="结束日期:" class="bole-form-item" prop="endDate"> |
| | | <ChooseInputWithDatePicker v-model="form.endDate"></ChooseInputWithDatePicker> |
| | | <ChooseInputWithDatePicker |
| | | v-model="form.endDate" |
| | | placeholder="请选择结束日期" |
| | | ></ChooseInputWithDatePicker> |
| | | </nut-form-item> |
| | | <nut-form-item label="发证单位:" class="bole-form-item" prop="issueUnit"> |
| | | <nut-input v-model="form.issueUnit" placeholder="请输入"> </nut-input> |
| | |
| | | onSuccess(data) { |
| | | form.typeCode = data.typeCode; |
| | | form.code = data.code; |
| | | form.startDate = dayjs(data.startDate).format('YYYY-MM-DD 00:00:00'); |
| | | form.endDate = dayjs(data.endDate).format('YYYY-MM-DD 23:59:59'); |
| | | form.startDate = dayjs(data.startDate).format('YYYY-MM-DD'); |
| | | form.endDate = dayjs(data.endDate).format('YYYY-MM-DD'); |
| | | form.issueUnit = data.issueUnit; |
| | | form.isForever = data.isForever; |
| | | form.img = convertApi2FormUrlOnlyOne(setOSSLink(data.img)); |
| | |
| | | startDate: dayjs(form.startDate).format('YYYY-MM-DD 00:00:00'), |
| | | endDate: dayjs(form.endDate).format('YYYY-MM-DD 23:59:59'), |
| | | issueUnit: form.issueUnit, |
| | | img: form.img[0]?.path, |
| | | backImg: form.backImg[0]?.path, |
| | | img: form.img?.[0]?.path, |
| | | backImg: form.backImg?.[0]?.path, |
| | | }; |
| | | if (isEdit.value) { |
| | | params.id = id; |
| | | } |
| | | let res = await userResumeServices.saveUserResumeCredential(params); |
| | | if (res) { |
| | | Message.success(isEdit ? '编辑成功' : '添加成功', { |
| | | Message.success(isEdit.value ? '编辑成功' : '添加成功', { |
| | | onClosed() { |
| | | goBack(); |
| | | queryClient.invalidateQueries(['userResumeServices/getUserResumeCredentials']); |
| | |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | useEvent('updateResume', function (data: { content: boolean }) { |
| | | if (data.content) { |
| | | refetch({ |
| | | type: 'inactive', |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | const { userResumeInfo, refetch } = useUserResume(); |
| | | |
| | | const jobTag = computed( |
| | |
| | | function goPage(routeName: string) { |
| | | Taro.navigateTo({ |
| | | url: routeName, |
| | | events: { |
| | | updateResume(data: { content: boolean }) { |
| | | console.log('content: ', data.content); |
| | | if (data.content) { |
| | | refetch({ |
| | | type: 'inactive', |
| | | }); |
| | | } |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | function goEditMineInfo() { |
| | |
| | | import { useDictionaryDataSelect } from '@12333/hooks'; |
| | | import { Message } from '@12333/utils'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import { goBack } from '@/utils'; |
| | | import { useEventChannel } from 'senin-mini/hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const eventChannel = useEventChannel(); |
| | | |
| | | const { dictionaryDataList: positionList } = useDictionaryDataSelect({ |
| | | categoryCode: CategoryCode.Position, |
| | |
| | | if (res) { |
| | | Message.success('保存成功', { |
| | | onClosed() { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.mineCurriculumVitae}`, |
| | | success: function (res) { |
| | | res.eventChannel.emit('updateResume', { content: true }); |
| | | }, |
| | | }); |
| | | goBack(); |
| | | eventChannel.emit('updateResume', { content: true }); |
| | | }, |
| | | }); |
| | | } |
| | |
| | | Complete = 20, |
| | | } |
| | | |
| | | /** 任务用户安排状态 */ |
| | | export enum EnumTaskUserArrangeStatus { |
| | | /**未安排 */ |
| | | Wait = 10, |
| | | /**已安排 */ |
| | | Complete = 20, |
| | | } |
| | | |
| | | /** 任务录用状态 */ |
| | | export enum EnumTaskUserHireStatus { |
| | | /**待录用 */ |
| | |
| | | Refuse = 30, |
| | | } |
| | | |
| | | /** 任务用户签约状态 */ |
| | | export enum EnumTaskUserSignContractStatus { |
| | | /**待签约 */ |
| | | Wait = 10, |
| | | /**已签约 */ |
| | | Pass = 20, |
| | | /**已拒签 */ |
| | | Refuse = 30, |
| | | } |
| | | |
| | | /** 用户性别 */ |
| | | export enum EnumUserGender { |
| | | /**男 */ |
| | |
| | | Complete = 20, |
| | | } |
| | | |
| | | enum EnumTaskUserArrangeStatus { |
| | | /**未安排 */ |
| | | Wait = 10, |
| | | /**已安排 */ |
| | | Complete = 20, |
| | | } |
| | | |
| | | enum EnumTaskUserHireStatus { |
| | | /**待录用 */ |
| | | Wait = 10, |
| | | /**已录用 */ |
| | | Pass = 20, |
| | | /**已谢绝 */ |
| | | Refuse = 30, |
| | | } |
| | | |
| | | enum EnumTaskUserSignContractStatus { |
| | | /**待签约 */ |
| | | Wait = 10, |
| | | /**已签约 */ |
| | | Pass = 20, |
| | | /**已拒签 */ |
| | | Refuse = 30, |
| | | } |
| | | |
| | |
| | | name?: string; |
| | | /** 手机号 */ |
| | | contactPhoneNumber?: string; |
| | | /** 身份证号 */ |
| | | identity?: string; |
| | | /** 身份编号 */ |
| | | personalIdentityCode?: string; |
| | | /** 身份 */ |
| | |
| | | photos?: string[]; |
| | | /** 经历 */ |
| | | taskInfoUsers?: GetUserResumeQueryResultExperience[]; |
| | | /** 报名时间 */ |
| | | createdTime?: string; |
| | | hireStatus?: EnumTaskUserHireStatus; |
| | | /** 录用时间 */ |
| | | hireTime?: string; |
| | | arrangeStatus?: EnumTaskUserArrangeStatus; |
| | | /** 安排状态 */ |
| | | arrangeTime?: string; |
| | | userSignContractStatus?: EnumTaskUserSignContractStatus; |
| | | /** 灵工签约时间 */ |
| | | userSignContractTime?: string; |
| | | enterpriseSignContractStatus?: EnumTaskUserSignContractStatus; |
| | | /** 企业签约时间 */ |
| | | enterpriseSignContractTime?: string; |
| | | /** 电子合同 */ |
| | | contractUrl?: string; |
| | | } |
| | | |
| | | interface GetUserResumeQueryResultCredential { |
| | |
| | | name?: string; |
| | | /** 手机号 */ |
| | | contactPhoneNumber?: string; |
| | | /** 身份证号 */ |
| | | identity?: string; |
| | | /** 年龄 */ |
| | | age?: number; |
| | | gender?: EnumUserGender; |
| | | /** 是否实名 */ |
| | | isReal?: boolean; |
| | | /** 年龄 */ |
| | | age?: number; |
| | | /** 实名时间 */ |
| | | realTime?: string; |
| | | /** 身份编号 */ |
| | | personalIdentityCode?: string; |
| | | /** 身份 */ |
| | |
| | | /** 工作经验 */ |
| | | workExperience?: string; |
| | | hireStatus?: EnumTaskUserHireStatus; |
| | | /** 录用时间 */ |
| | | hireTime?: string; |
| | | arrangeStatus?: EnumTaskUserArrangeStatus; |
| | | /** 安排状态 */ |
| | | arrangeTime?: string; |
| | | userSignContractStatus?: EnumTaskUserSignContractStatus; |
| | | /** 灵工签约时间 */ |
| | | userSignContractTime?: string; |
| | | enterpriseSignContractStatus?: EnumTaskUserSignContractStatus; |
| | | /** 企业签约时间 */ |
| | | enterpriseSignContractTime?: string; |
| | | } |
| | | |
| | | type GetUserResumeWorkExperienceQuery = Record<string, any>; |
| | |
| | | name?: string; |
| | | /** 手机号 */ |
| | | contactPhoneNumber?: string; |
| | | /** 身份证号 */ |
| | | identity: string; |
| | | /** 身份编号 */ |
| | | personalIdentityCode: string; |
| | | /** 学历编号 */ |
| | |
| | | }; |
| | | |
| | | export function setOSSLink(url: string) { |
| | | console.log('url: ', url, OSSBaseURL); |
| | | if (!url) { |
| | | return ''; |
| | | } |