From 4f0a665d8b0078defa95c6557ed46c681ca29fc6 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 11 九月 2025 17:38:04 +0800
Subject: [PATCH] feat: 页面
---
src/views/CPersonManage/components/CPersonDetailDialog.vue | 180 -----------------
src/views/CPersonManage/components/SignDetailView.vue | 127 ++++++++++++
src/constants/task.ts | 14 +
.eslintrc-auto-import.json | 2
auto-imports.d.ts | 4
src/views/CPersonManage/components/StaffResumeView.vue | 124 ++++++++++++
src/views/CPersonManage/components/StaffDetailInfoView.vue | 112 +++++++++++
7 files changed, 392 insertions(+), 171 deletions(-)
diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index 8db6b7f..74eb8be 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -56,7 +56,9 @@
"EnumPagedListOrder": true,
"EnumPayAccess": true,
"EnumPersonalFreeTime": true,
+ "EnumPersonalFreeTimeText": true,
"EnumPersonalJobSeekingStatus": true,
+ "EnumPersonalJobSeekingStatusText": true,
"EnumPersonalRealMethod": true,
"EnumPersonalUserRealStatus": true,
"EnumRealAccess": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index 7318f0d..69e51a1 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -58,7 +58,9 @@
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']
@@ -351,7 +353,9 @@
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']>
diff --git a/src/constants/task.ts b/src/constants/task.ts
index c5bad05..1025579 100644
--- a/src/constants/task.ts
+++ b/src/constants/task.ts
@@ -53,3 +53,17 @@
[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]: '鏆傛椂涓嶆壘浠诲姟',
+};
diff --git a/src/views/CPersonManage/components/CPersonDetailDialog.vue b/src/views/CPersonManage/components/CPersonDetailDialog.vue
index cd5cb06..9c2baf9 100644
--- a/src/views/CPersonManage/components/CPersonDetailDialog.vue
+++ b/src/views/CPersonManage/components/CPersonDetailDialog.vue
@@ -2,49 +2,13 @@
<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>
@@ -56,33 +20,11 @@
</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',
@@ -91,13 +33,6 @@
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');
@@ -106,103 +41,6 @@
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>
diff --git a/src/views/CPersonManage/components/SignDetailView.vue b/src/views/CPersonManage/components/SignDetailView.vue
new file mode 100644
index 0000000..a4d2ddd
--- /dev/null
+++ b/src/views/CPersonManage/components/SignDetailView.vue
@@ -0,0 +1,127 @@
+<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>
diff --git a/src/views/CPersonManage/components/StaffDetailInfoView.vue b/src/views/CPersonManage/components/StaffDetailInfoView.vue
new file mode 100644
index 0000000..5dbe708
--- /dev/null
+++ b/src/views/CPersonManage/components/StaffDetailInfoView.vue
@@ -0,0 +1,112 @@
+<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>
diff --git a/src/views/CPersonManage/components/StaffResumeView.vue b/src/views/CPersonManage/components/StaffResumeView.vue
new file mode 100644
index 0000000..e5658c3
--- /dev/null
+++ b/src/views/CPersonManage/components/StaffResumeView.vue
@@ -0,0 +1,124 @@
+<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>
--
Gitblit v1.9.1