| | |
| | | "EnumPagedListOrder": true, |
| | | "EnumPayAccess": true, |
| | | "EnumPersonalFreeTime": true, |
| | | "EnumPersonalFreeTimeText": true, |
| | | "EnumPersonalJobSeekingStatus": true, |
| | | "EnumPersonalJobSeekingStatusText": true, |
| | | "EnumPersonalRealMethod": true, |
| | | "EnumPersonalUserRealStatus": true, |
| | | "EnumRealAccess": true, |
| | |
| | | const EnumPagedListOrder: typeof import('./src/constants/apiEnum')['EnumPagedListOrder'] |
| | | const EnumPayAccess: typeof import('./src/constants/apiEnum')['EnumPayAccess'] |
| | | const EnumPersonalFreeTime: typeof import('./src/constants/apiEnum')['EnumPersonalFreeTime'] |
| | | const EnumPersonalFreeTimeText: typeof import('./src/constants/task')['EnumPersonalFreeTimeText'] |
| | | const EnumPersonalJobSeekingStatus: typeof import('./src/constants/apiEnum')['EnumPersonalJobSeekingStatus'] |
| | | const EnumPersonalJobSeekingStatusText: typeof import('./src/constants/task')['EnumPersonalJobSeekingStatusText'] |
| | | const EnumPersonalRealMethod: typeof import('./src/constants/apiEnum')['EnumPersonalRealMethod'] |
| | | const EnumPersonalUserRealStatus: typeof import('./src/constants/apiEnum')['EnumPersonalUserRealStatus'] |
| | | const EnumRealAccess: typeof import('./src/constants/apiEnum')['EnumRealAccess'] |
| | |
| | | readonly EnumPagedListOrder: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPagedListOrder']> |
| | | readonly EnumPayAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPayAccess']> |
| | | readonly EnumPersonalFreeTime: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPersonalFreeTime']> |
| | | readonly EnumPersonalFreeTimeText: UnwrapRef<typeof import('./src/constants/task')['EnumPersonalFreeTimeText']> |
| | | readonly EnumPersonalJobSeekingStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPersonalJobSeekingStatus']> |
| | | readonly EnumPersonalJobSeekingStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumPersonalJobSeekingStatusText']> |
| | | readonly EnumPersonalRealMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPersonalRealMethod']> |
| | | readonly EnumPersonalUserRealStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPersonalUserRealStatus']> |
| | | readonly EnumRealAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumRealAccess']> |
| | |
| | | [EnumTaskCheckReceiveStatus.WaitSubmit]: '待验收', |
| | | [EnumTaskCheckReceiveStatus.Completed]: '已验收', |
| | | }; |
| | | |
| | | export const EnumPersonalFreeTimeText = { |
| | | [EnumPersonalFreeTime.NoLimit]: '不限', |
| | | [EnumPersonalFreeTime.WinterSummerVacations]: '寒暑假', |
| | | [EnumPersonalFreeTime.FestivalAndHoliday]: '节假日', |
| | | [EnumPersonalFreeTime.Weekend]: '周六日', |
| | | [EnumPersonalFreeTime.Weekday]: '工作日', |
| | | }; |
| | | |
| | | export const EnumPersonalJobSeekingStatusText = { |
| | | [EnumPersonalJobSeekingStatus.Active]: '积极找任务', |
| | | [EnumPersonalJobSeekingStatus.Whatever]: '随便看看', |
| | | [EnumPersonalJobSeekingStatus.Not]: '暂时不找任务', |
| | | }; |
| | |
| | | <ProDialog title="申请详情" v-model="visible" width="1200px" destroy-on-close> |
| | | <ProTabs v-model="form.tabType" hasBorder> |
| | | <ProTabPane lazy label="人员详情" name="user"> |
| | | <ProForm :model="form" ref="dialogForm" label-width="120px" is-read> |
| | | <ProFormItemV2 label="姓名:" prop="name"> |
| | | <ProFormText v-model.trim="form.name" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="身份证号:" prop="identity"> |
| | | <ProFormText v-model.trim="form.identity" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="手机号:" prop="contactPhoneNumber"> |
| | | <ProFormText v-model.trim="form.contactPhoneNumber" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="性别:" prop="gender"> |
| | | <ProFormRadio |
| | | v-model="form.gender" |
| | | :value-enum="EnumUserGenderTextForPerson" |
| | | ></ProFormRadio> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="年龄:" prop="age"> |
| | | <ProFormInputNumber v-model="form.age" unit="岁"></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="身份证正面:" prop="identityImg"> |
| | | <ProFormImageUpload v-model:file-url="form.identityImg" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="身份证反面:" prop="identityBackImg"> |
| | | <ProFormImageUpload v-model:file-url="form.identityBackImg" /> |
| | | </ProFormItemV2> |
| | | </ProForm> |
| | | <!-- <StaffDetailInfoView :form="form" /> --> |
| | | </ProTabPane> |
| | | <ProTabPane lazy label="人员简历" name="resume"> |
| | | <!-- <StaffResumeView :form="form" /> --> |
| | | </ProTabPane> |
| | | <ProTabPane lazy label="签约详情" name="sign"> |
| | | <ProDialogTableWrapper :height="400"> |
| | | <ProTableV2 v-bind="proTableProps" :columns="column" :show-operation-column="false"> |
| | | <template #contractUrl="{ row }"> |
| | | <PreviewBtn |
| | | v-if=" |
| | | row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass && |
| | | row.contractUrl |
| | | " |
| | | :show-download-btn="false" |
| | | :url="setOSSLink(row.contractUrl)" |
| | | > |
| | | </PreviewBtn> |
| | | </template> |
| | | </ProTableV2> |
| | | </ProDialogTableWrapper> |
| | | <SignDetailView :form="form" /> |
| | | </ProTabPane> |
| | | </ProTabs> |
| | | <template #footer> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | ProDialog, |
| | | ProTableV2, |
| | | ProDialogTableWrapper, |
| | | ProTabs, |
| | | ProTabPane, |
| | | useTable, |
| | | ProForm, |
| | | ProFormItemV2, |
| | | ProFormText, |
| | | UploadUserFile, |
| | | ProFormImageUpload, |
| | | ProFormRadio, |
| | | ProFormInputNumber, |
| | | defineColumns, |
| | | PreviewBtn, |
| | | } from '@bole-core/components'; |
| | | import { ProDialog, ProTabs, ProTabPane } from '@bole-core/components'; |
| | | import _ from 'lodash'; |
| | | import * as userServices from '@/services/api/user'; |
| | | import { |
| | | EnumUserGender, |
| | | EnumUserGenderTextForPerson, |
| | | EnumTaskUserHireStatusText, |
| | | EnumTaskUserSignContractStatusText, |
| | | EnumTaskUserSignContractStatus, |
| | | } from '@/constants'; |
| | | import { setOSSLink } from '@/utils'; |
| | | import StaffDetailInfoView from './StaffDetailInfoView.vue'; |
| | | import StaffResumeView from './StaffResumeView.vue'; |
| | | import SignDetailView from './SignDetailView.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'CPersonDetailDialog', |
| | |
| | | type Form = { |
| | | tabType: string; |
| | | id: string; |
| | | name: string; |
| | | identity: string; |
| | | contactPhoneNumber: string; |
| | | age: number; |
| | | gender: EnumUserGender; |
| | | identityImg: UploadUserFile[]; |
| | | identityBackImg: UploadUserFile[]; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | |
| | | const emit = defineEmits<{ |
| | | (e: 'onCancel'): void; |
| | | }>(); |
| | | |
| | | const column = defineColumns([ |
| | | { |
| | | id: '1', |
| | | enCode: 'enterpriseName', |
| | | name: '所属客户', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'applyTime', |
| | | name: '报名时间', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'hireStatus', |
| | | name: '录用状态', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'hireTime', |
| | | name: '录用时间', |
| | | }, |
| | | { |
| | | id: '5', |
| | | enCode: 'userSignContractStatus', |
| | | name: '签约状态', |
| | | }, |
| | | { |
| | | id: '6', |
| | | enCode: 'enterpriseSignContractStatus', |
| | | name: '企业签约状态', |
| | | }, |
| | | { |
| | | id: '7', |
| | | enCode: 'enterpriseSignContractTime', |
| | | name: '企业签约时间', |
| | | }, |
| | | { |
| | | id: '8', |
| | | enCode: 'contractUrl', |
| | | name: '电子合同', |
| | | }, |
| | | ]); |
| | | |
| | | watch( |
| | | visible, |
| | | (val) => { |
| | | console.log('val: ', val); |
| | | if (val) { |
| | | getList(); |
| | | } |
| | | }, |
| | | { |
| | | immediate: true, |
| | | } |
| | | ); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetPersonalUserInfoSignContractsQuery = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | id: form.value.id, |
| | | }; |
| | | let res = await userServices.getPersonalUserInfoSignContracts(params); |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | columnsRenderProps: { |
| | | applyTime: { type: 'date' }, |
| | | hireTime: { type: 'date' }, |
| | | enterpriseSignContractTime: { type: 'date' }, |
| | | hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText }, |
| | | userSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText }, |
| | | enterpriseSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText }, |
| | | // contractUrl: { |
| | | // type: 'url', |
| | | // showDownloadBtn: false, |
| | | // formatter: (row: API.GetPersonalUserInfoSignContractsQueryResultItem) => |
| | | // setOSSLink(row.contractUrl), |
| | | // }, |
| | | }, |
| | | } |
| | | ); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
New file |
| | |
| | | <template> |
| | | <ProTableV2 |
| | | v-bind="proTableProps" |
| | | :columns="column" |
| | | :show-operation-column="false" |
| | | :auto-height="false" |
| | | :table-props="{ |
| | | height: '400px', |
| | | }" |
| | | > |
| | | <template #contractUrl="{ row }"> |
| | | <PreviewBtn |
| | | v-if="row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass && row.contractUrl" |
| | | :show-download-btn="false" |
| | | :url="setOSSLink(row.contractUrl)" |
| | | > |
| | | </PreviewBtn> |
| | | </template> |
| | | </ProTableV2> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { useTable, ProTableV2, defineColumns } from '@bole-core/components'; |
| | | import { setOSSLink } from '@/utils'; |
| | | import { |
| | | EnumTaskUserSignContractStatus, |
| | | EnumTaskUserHireStatusText, |
| | | EnumTaskUserSignContractStatusText, |
| | | } from '@/constants'; |
| | | import * as userServices from '@/services/api/user'; |
| | | |
| | | defineOptions({ |
| | | name: 'SignDetailView', |
| | | }); |
| | | |
| | | type Form = { |
| | | id: string; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | | |
| | | const isLoading = ref(false); |
| | | |
| | | const column = defineColumns([ |
| | | { |
| | | id: '1', |
| | | enCode: 'enterpriseName', |
| | | name: '所属客户', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'applyTime', |
| | | name: '报名时间', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'hireStatus', |
| | | name: '录用状态', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'hireTime', |
| | | name: '录用时间', |
| | | }, |
| | | { |
| | | id: '5', |
| | | enCode: 'userSignContractStatus', |
| | | name: '签约状态', |
| | | }, |
| | | { |
| | | id: '6', |
| | | enCode: 'enterpriseSignContractStatus', |
| | | name: '企业签约状态', |
| | | }, |
| | | { |
| | | id: '7', |
| | | enCode: 'enterpriseSignContractTime', |
| | | name: '企业签约时间', |
| | | }, |
| | | { |
| | | id: '8', |
| | | enCode: 'contractUrl', |
| | | name: '电子合同', |
| | | }, |
| | | ]); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetPersonalUserInfoSignContractsQuery = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | id: form.value.id, |
| | | }; |
| | | let res = await userServices.getPersonalUserInfoSignContracts(params); |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | columnsRenderProps: { |
| | | applyTime: { type: 'date' }, |
| | | hireTime: { type: 'date' }, |
| | | enterpriseSignContractTime: { type: 'date' }, |
| | | hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText }, |
| | | userSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText }, |
| | | enterpriseSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | onMounted(async () => { |
| | | isLoading.value = true; |
| | | await getList(); |
| | | isLoading.value = false; |
| | | }); |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <ProForm :model="detail" ref="dialogForm" label-width="120px" is-read> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="姓名:" prop="name"> |
| | | <ProFormText v-model.trim="detail.name"></ProFormText> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="实名时间:" prop="userRealTime"> |
| | | <div>{{ format(detail.userRealTime, 'YYYY-MM-DD HH:mm') }}</div> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="身份证号:" prop="identity"> |
| | | <ProFormText v-model.trim="detail.identity"></ProFormText> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="手机号:" prop="contactPhoneNumber"> |
| | | <ProFormText v-model.trim="detail.contactPhoneNumber"></ProFormText> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="性别:" prop="gender"> |
| | | <ProFormRadio |
| | | v-model="detail.gender" |
| | | :value-enum="EnumUserGenderTextForPerson" |
| | | ></ProFormRadio> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="年龄:" prop="age"> |
| | | <ProFormInputNumber v-model="detail.age"> </ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormItemV2 label="身份证正面:" prop="identityImg"> |
| | | <ProFormImageUpload v-model:file-url="detail.identityImg"> </ProFormImageUpload> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="身份证反面:" prop="identityBackImg"> |
| | | <ProFormImageUpload v-model:file-url="detail.identityBackImg"> </ProFormImageUpload> |
| | | </ProFormItemV2> |
| | | </ProForm> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | ProForm, |
| | | ProFormCol, |
| | | ProFormColItem, |
| | | ProFormItemV2, |
| | | ProFormText, |
| | | ProFormInputNumber, |
| | | ProFormImageUpload, |
| | | ProFormRadio, |
| | | UploadUserFile, |
| | | } from '@bole-core/components'; |
| | | import { convertApi2FormUrlOnlyOne, format } from '@/utils'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import { EnumUserGender, EnumUserGenderTextForPerson } from '@/constants'; |
| | | import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee'; |
| | | |
| | | defineOptions({ |
| | | name: 'StaffDetailInfoView', |
| | | }); |
| | | |
| | | type Form = { |
| | | id: string; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | | |
| | | const detail = reactive({ |
| | | name: '', |
| | | identity: '', |
| | | contactPhoneNumber: '', |
| | | gender: EnumUserGender.Male, |
| | | age: 0, |
| | | identityImg: [] as UploadUserFile[], |
| | | identityBackImg: [] as UploadUserFile[], |
| | | userRealTime: '', |
| | | }); |
| | | |
| | | const { isLoading } = useQuery({ |
| | | queryKey: ['enterpriseEmployeeServices/getEnterpriseEmployee', form.value.id], |
| | | queryFn: async () => { |
| | | return await enterpriseEmployeeServices.getEnterpriseEmployee({ id: form.value.id }); |
| | | }, |
| | | onSuccess(data) { |
| | | detail.name = data.name; |
| | | detail.identity = data.identity; |
| | | detail.contactPhoneNumber = data.contactPhoneNumber; |
| | | detail.gender = data.gender; |
| | | detail.age = data.age ?? 0; |
| | | detail.identityImg = data.identityImg ? convertApi2FormUrlOnlyOne(data.identityImg) : []; |
| | | detail.identityBackImg = data.identityBackImg |
| | | ? convertApi2FormUrlOnlyOne(data.identityBackImg) |
| | | : []; |
| | | detail.userRealTime = data.userRealTime ?? ''; |
| | | }, |
| | | enabled: computed(() => !!form.value.id), |
| | | }); |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <ProForm :model="detail" ref="dialogForm" label-width="120px" is-read> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="期望岗位:" prop="name"> |
| | | <div>{{ detail.userExpectJobs }}</div> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="空闲时间:" prop="freeTime"> |
| | | <ProFormRadio |
| | | v-model="detail.freeTime" |
| | | :value-enum="EnumPersonalFreeTimeText" |
| | | ></ProFormRadio> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="求职状态:" prop="jobSeekingStatus"> |
| | | <ProFormRadio |
| | | v-model="detail.jobSeekingStatus" |
| | | :value-enum="EnumPersonalJobSeekingStatusText" |
| | | ></ProFormRadio> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="工作年限:" prop="workSeniority"> |
| | | <ProFormText v-model="detail.workSeniority"></ProFormText> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="工作经验:" prop="workExperience"> |
| | | <ProFormText v-model="detail.workExperience"></ProFormText> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="身高:" prop="height"> |
| | | <ProFormInputNumber v-model="detail.height"></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 label="体重:" prop="weight"> |
| | | <ProFormInputNumber v-model="detail.weight"></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormItemV2 label="个人照片:" prop="photos"> |
| | | <ProFormImageUpload v-model:file-url="detail.photos"> </ProFormImageUpload> |
| | | </ProFormItemV2> |
| | | </ProForm> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | ProForm, |
| | | ProFormCol, |
| | | ProFormColItem, |
| | | ProFormItemV2, |
| | | ProFormText, |
| | | ProFormInputNumber, |
| | | ProFormRadio, |
| | | UploadUserFile, |
| | | ProFormImageUpload, |
| | | } from '@bole-core/components'; |
| | | import { EnumPersonalFreeTimeText, EnumPersonalJobSeekingStatusText } from '@/constants'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as userResumeServices from '@/services/api/userResume'; |
| | | import { convertApi2FormUrl } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'StaffResumeView', |
| | | }); |
| | | |
| | | type Form = { |
| | | id: string; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | | |
| | | const detail = reactive({ |
| | | userExpectJobs: '', |
| | | freeTime: '' as any as EnumPersonalFreeTime, |
| | | jobSeekingStatus: '' as any as EnumPersonalJobSeekingStatus, |
| | | workSeniority: '', |
| | | workExperience: '', |
| | | height: 0, |
| | | weight: 0, |
| | | photos: [] as UploadUserFile[], |
| | | }); |
| | | |
| | | const { isLoading } = useQuery({ |
| | | queryKey: ['userResumeServices/getUserResume', form.value.id], |
| | | queryFn: async () => { |
| | | return await userResumeServices.getUserResume({ enterpriseEmployeeId: form.value.id }); |
| | | }, |
| | | onSuccess(data) { |
| | | detail.userExpectJobs = |
| | | data.userExpectJobs?.length > 0 |
| | | ? data.userExpectJobs.map((x) => x.expectJobContent).join(',') |
| | | : ''; |
| | | detail.freeTime = data.freeTime; |
| | | detail.jobSeekingStatus = data.jobSeekingStatus; |
| | | detail.workSeniority = data.workSeniority; |
| | | detail.workExperience = data.workExperience; |
| | | detail.height = data.height ?? 0; |
| | | detail.weight = data.weight ?? 0; |
| | | detail.photos = data.photos |
| | | ? data.photos.map((x) => convertApi2FormUrl(x)) |
| | | : ([] as UploadUserFile[]); |
| | | }, |
| | | enabled: computed(() => !!form.value.id), |
| | | }); |
| | | </script> |