| | |
| | | { |
| | | "name": "灵工详情", |
| | | "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail", |
| | | "query": "id=700a3a67-5da5-49d2-a65a-08ddd661238b", |
| | | "query": "enterpriseEmployeeId=700a3a67-5da5-49d2-a65a-08ddd661238b", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | |
| | | fullHeight |
| | | > |
| | | <ProTabPane :title="`简历`" pane-key="1"> |
| | | <curriculumView /> |
| | | <curriculumView |
| | | :userExpectJobs="userExpectJobs" |
| | | :freeTime="freeTime" |
| | | :jobSeekingStatus="jobSeekingStatus" |
| | | :userCredentials="userCredentials" |
| | | :workSeniority="workSeniority" |
| | | :workExperience="workExperience" |
| | | :photos="photos" |
| | | :height="height" |
| | | :weight="weight" |
| | | /> |
| | | </ProTabPane> |
| | | <ProTabPane :title="`经历`" pane-key="2"> |
| | | <experienceView /> |
| | |
| | | contactPhoneNumber?: string; |
| | | identity?: string; |
| | | userId?: string; |
| | | |
| | | userExpectJobs?: API.GetUserResumeQueryResultExpectJob[]; |
| | | freeTime?: API.EnumPersonalFreeTime; |
| | | jobSeekingStatus?: API.EnumPersonalJobSeekingStatus; |
| | | userCredentials?: API.GetUserResumeQueryResultCredential[]; |
| | | workSeniority?: string; |
| | | workExperience?: string; |
| | | photos?: string[]; |
| | | /** 身高 */ |
| | | height?: number; |
| | | /** 体重 */ |
| | | weight?: number; |
| | | |
| | | taskInfoUsers?: API.GetUserResumeQueryResultExperience[]; |
| | | }; |
| | | |
| | | const tab = ref('1'); |
| | |
| | | <div class="curriculum-list"> |
| | | <CurriculumViewItem label="期望岗位:"> |
| | | <div class="curriculum-position-list"> |
| | | <div class="curriculum-position-list-item">客房服务员</div> |
| | | <div class="curriculum-position-list-item">客房服务员</div> |
| | | <div class="curriculum-position-list-item">客房服务员</div> |
| | | <div class="curriculum-position-list-item">客房服务员</div> |
| | | <div class="curriculum-position-list-item">客房员</div> |
| | | <div class="curriculum-position-list-item">客房服务员</div> |
| | | <div class="curriculum-position-list-item">客房服务员</div> |
| | | <div class="curriculum-position-list-item">客房服务员</div> |
| | | <div |
| | | v-for="userExpectJob in userExpectJobs" |
| | | :key="userExpectJob.expectJobCode" |
| | | class="curriculum-position-list-item" |
| | | > |
| | | {{ userExpectJob.expectJobContent }} |
| | | </div> |
| | | </div> |
| | | </CurriculumViewItem> |
| | | <CurriculumViewItem label="空闲时间:" text="不限"> </CurriculumViewItem> |
| | | <CurriculumViewItem label="求职状态:" text="积极找工作"> </CurriculumViewItem> |
| | | <CurriculumViewItem label="空闲时间:" :text="EnumPersonalFreeTimeText[freeTime]"> |
| | | </CurriculumViewItem> |
| | | <CurriculumViewItem |
| | | label="求职状态:" |
| | | :text="EnumPersonalJobSeekingStatusText[jobSeekingStatus]" |
| | | > |
| | | </CurriculumViewItem> |
| | | </div> |
| | | </CellChunk> |
| | | <CellChunk title="资格证书"> |
| | |
| | | :column-num="3" |
| | | :border="false" |
| | | :gutter="20" |
| | | v-if="list.length > 0" |
| | | v-if="_userCredentials.length > 0" |
| | | class="pro-img-grid" |
| | | > |
| | | <nut-grid-item v-for="(item, index) in list" :key="item" class="pro-img-grid-item"> |
| | | <nut-grid-item |
| | | v-for="(item, index) in _userCredentials" |
| | | :key="item" |
| | | class="pro-img-grid-item" |
| | | > |
| | | <div class="pro-img-grid-img-item"> |
| | | <PreviewImage :src="item" class="pro-img-grid-img" :urls="list" /> |
| | | <PreviewImage :src="item" class="pro-img-grid-img" :urls="_userCredentials" /> |
| | | </div> |
| | | </nut-grid-item> |
| | | </nut-grid> |
| | | </CellChunk> |
| | | <CellChunk title="工作经验"> |
| | | <CurriculumViewItem label="工作年限:" text="无工作经验,用户自己填写"> |
| | | <CurriculumViewItem label="工作年限:" :text="workSeniority ? `${workSeniority}年` : ''"> |
| | | </CurriculumViewItem> |
| | | <CurriculumViewItem label="工作经验:" text="客房服务员,用户自己填写"> |
| | | </CurriculumViewItem> |
| | | <CurriculumViewItem label="工作经验:" :text="workExperience"> </CurriculumViewItem> |
| | | </CellChunk> |
| | | <CellChunk title="详细信息"> |
| | | <CurriculumViewItem |
| | | label="身高:" |
| | | text="175 cm" |
| | | :text="`${height} cm`" |
| | | :label-width="labelWidth" |
| | | ></CurriculumViewItem> |
| | | <CurriculumViewItem |
| | | label="体重:" |
| | | text="80 kg" |
| | | :text="`${weight} kg`" |
| | | :label-width="labelWidth" |
| | | ></CurriculumViewItem> |
| | | <CurriculumViewItem label="个人照片:"> |
| | |
| | | :column-num="2" |
| | | :border="false" |
| | | :gutter="20" |
| | | v-if="list.length > 0" |
| | | v-if="_photos.length > 0" |
| | | class="pro-img-grid" |
| | | > |
| | | <nut-grid-item v-for="(item, index) in list" :key="item" class="pro-img-grid-item"> |
| | | <nut-grid-item v-for="(item, index) in _photos" :key="item" class="pro-img-grid-item"> |
| | | <div class="pro-img-grid-img-item"> |
| | | <PreviewImage :src="item" class="pro-img-grid-img" :urls="list" /> |
| | | <PreviewImage :src="item" class="pro-img-grid-img" :urls="_photos" /> |
| | | </div> |
| | | </nut-grid-item> |
| | | </nut-grid> |
| | |
| | | import CurriculumViewItem from './CurriculumViewItem.vue'; |
| | | import { PreviewImage } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { EnumPersonalFreeTimeText, EnumPersonalJobSeekingStatusText } from '@12333/constants'; |
| | | import { setOSSLink } from '@12333/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'curriculumView', |
| | | }); |
| | | |
| | | const labelWidth = Taro.pxTransform(120); |
| | | type Props = { |
| | | userExpectJobs?: API.GetUserResumeQueryResultExpectJob[]; |
| | | freeTime?: API.EnumPersonalFreeTime; |
| | | jobSeekingStatus?: API.EnumPersonalJobSeekingStatus; |
| | | userCredentials?: API.GetUserResumeQueryResultCredential[]; |
| | | workSeniority?: string; |
| | | workExperience?: string; |
| | | photos?: string[]; |
| | | /** 身高 */ |
| | | height?: number; |
| | | /** 体重 */ |
| | | weight?: number; |
| | | }; |
| | | |
| | | const list = ref([ |
| | | 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg', |
| | | 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg', |
| | | 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg', |
| | | 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg', |
| | | ]); |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | userExpectJobs: () => [], |
| | | userCredentials: () => [], |
| | | photos: () => [], |
| | | }); |
| | | |
| | | const _userCredentials = computed(() => props.userCredentials.map((x) => setOSSLink(x.img))); |
| | | const _photos = computed(() => props.photos.map((x) => setOSSLink(x))); |
| | | |
| | | const labelWidth = Taro.pxTransform(120); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | <template> |
| | | <ContentScrollView> |
| | | <Cell title="岗位经历"> |
| | | <nut-steps direction="vertical" progress-dot :current="3" class="job-detail-content-steps"> |
| | | <nut-step title="2024.12.24" content="您的订单已经打包完成,商品已发出"></nut-step> |
| | | <nut-step title="2024.12.24" content="您的订单正在配送途中"></nut-step> |
| | | <nut-step title="2024.12.24"> |
| | | <nut-steps |
| | | v-if="taskInfoUsers.length > 0" |
| | | direction="vertical" |
| | | progress-dot |
| | | :current="3" |
| | | class="job-detail-content-steps" |
| | | > |
| | | <nut-step |
| | | v-for="(taskInfoUser, index) in taskInfoUsers" |
| | | :key="index" |
| | | :title="taskInfoUser.signContractTime" |
| | | > |
| | | <template #content> |
| | | <p>收货地址为:</p> |
| | | <p>北京市经济技术开发区科创十一街18号院京东大厦</p> |
| | | <p>在{{ taskInfoUser.enterpriseName }}:</p> |
| | | <p>做过{{ taskInfoUser.name }}</p> |
| | | </template> |
| | | </nut-step> |
| | | </nut-steps> |
| | | <NoData v-else /> |
| | | </Cell> |
| | | </ContentScrollView> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import NoData from '../../NoData/NoData.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'experienceView', |
| | | }); |
| | | |
| | | type Props = { |
| | | taskInfoUsers?: API.GetUserResumeQueryResultExperience[]; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | taskInfoUsers: () => [], |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | |
| | | function goFlexJobDetail(item: API.GetUserResumesQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.flexJobDetail}?id=${item.id}`, |
| | | url: `${RouterPath.flexJobDetail}?enterpriseEmployeeId=${item.id}`, |
| | | }); |
| | | } |
| | | |
| | |
| | | :contactPhoneNumber="userResumeInfo.contactPhoneNumber" |
| | | :identity="userResumeInfo.identity" |
| | | :isCollapse="isCollapse" |
| | | :userId="userId" |
| | | :userId="enterpriseEmployeeId" |
| | | :userExpectJobs="userResumeInfo.userExpectJobs" |
| | | :freeTime="userResumeInfo.freeTime" |
| | | :jobSeekingStatus="userResumeInfo.jobSeekingStatus" |
| | | :userCredentials="userResumeInfo.userCredentials" |
| | | :workSeniority="userResumeInfo.workSeniority" |
| | | :workExperience="userResumeInfo.workExperience" |
| | | :photos="userResumeInfo.photos" |
| | | :height="userResumeInfo.height" |
| | | :weight="userResumeInfo.weight" |
| | | :taskInfoUsers="userResumeInfo.taskInfoUsers" |
| | | > |
| | | <template #footer> |
| | | <PageFooterAction |
| | |
| | | openType="share" |
| | | ></PageFooterAction> |
| | | <PageFooterAction |
| | | :icon="IconAttentionActive" |
| | | :icon="userResumeInfo.isCollected ? IconAttentionActive : IconAttention" |
| | | text="收藏" |
| | | :isFlex="false" |
| | | @click="handleAttention" |
| | |
| | | }); |
| | | |
| | | const router = Taro.useRouter(); |
| | | const userId = router.params?.id ?? ''; |
| | | const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? ''; |
| | | |
| | | const { isLoading, isError, userResumeInfo, refetch } = useUserResume({ |
| | | userId, |
| | | userId: enterpriseEmployeeId, |
| | | }); |
| | | |
| | | const { isCollapse, toggle } = useToggle(); |
| | |
| | | const handleContact = useAccessLogin(async () => { |
| | | try { |
| | | if (!isCollapse.value) { |
| | | await userResumeServices.contactUserResume({ id: userId }); |
| | | await userResumeServices.contactUserResume({ id: enterpriseEmployeeId }); |
| | | toggle(); |
| | | } |
| | | } catch (error) {} |
| | |
| | | async function handleAttention() { |
| | | try { |
| | | let params: API.CollectUserResumeCommand = { |
| | | id: userId, |
| | | // isCollected: userResumeInfo.value.i, |
| | | id: enterpriseEmployeeId, |
| | | isCollected: !userResumeInfo.value.isCollected, |
| | | }; |
| | | let res = await userResumeServices.collectUserResume(params); |
| | | if (res) { |
| | | Message.success('收藏成功'); |
| | | refetch({ type: 'inactive' }); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| | |
| | | <template> |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <JobDetailContent :isCollapse="true"> |
| | | <JobDetailContent |
| | | :avatar="userResumeInfo.avatar" |
| | | :name="userResumeInfo.name" |
| | | :age="userResumeInfo.age" |
| | | :isReal="userResumeInfo.isReal" |
| | | :gender="userResumeInfo.gender" |
| | | :personalIdentityContent="userResumeInfo.personalIdentityContent" |
| | | :educationalBackgroundContent="userResumeInfo.educationalBackgroundContent" |
| | | :taskCount="userResumeInfo.taskCount" |
| | | :contactPhoneNumber="userResumeInfo.contactPhoneNumber" |
| | | :identity="userResumeInfo.identity" |
| | | :userId="enterpriseEmployeeId" |
| | | :userExpectJobs="userResumeInfo.userExpectJobs" |
| | | :freeTime="userResumeInfo.freeTime" |
| | | :jobSeekingStatus="userResumeInfo.jobSeekingStatus" |
| | | :userCredentials="userResumeInfo.userCredentials" |
| | | :workSeniority="userResumeInfo.workSeniority" |
| | | :workExperience="userResumeInfo.workExperience" |
| | | :photos="userResumeInfo.photos" |
| | | :height="userResumeInfo.height" |
| | | :weight="userResumeInfo.weight" |
| | | :taskInfoUsers="userResumeInfo.taskInfoUsers" |
| | | :isCollapse="true" |
| | | > |
| | | <template #footer> |
| | | <PageFooterBtn type="primary" plain @click="taskWorkerHireRefuse(10)">谢绝</PageFooterBtn> |
| | | <PageFooterBtn type="primary" @click="taskWorkerHireRefuse(20)">录用</PageFooterBtn> |
| | | <PageFooterBtn type="primary" plain @click="setTaskUserHire(EnumTaskUserHireStatus.Refuse)" |
| | | >谢绝</PageFooterBtn |
| | | > |
| | | <PageFooterBtn type="primary" @click="setTaskUserHire(EnumTaskUserHireStatus.Pass)" |
| | | >录用</PageFooterBtn |
| | | > |
| | | </template> |
| | | </JobDetailContent> |
| | | </LoadingLayout> |
| | |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as taskUserServices from '@12333/services/apiV2/taskUser'; |
| | | import { Message } from '@12333/utils'; |
| | | import { useUserResume } from '@12333/hooks'; |
| | | import { EnumTaskUserHireStatus } from '@12333/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const router = Taro.useRouter(); |
| | | const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? ''; |
| | | const id = router.params?.id ?? ''; |
| | | |
| | | const { |
| | | isLoading, |
| | | isError, |
| | | data: detail, |
| | | refetch, |
| | | } = useQuery({ |
| | | queryKey: ['taskServices/getTaskInfo', id], |
| | | queryFn: async () => { |
| | | return await taskServices.getTaskInfo( |
| | | { id: id }, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.GetTaskInfoQueryResult), |
| | | const { isLoading, isError, userResumeInfo, refetch } = useUserResume({ |
| | | userId: enterpriseEmployeeId, |
| | | }); |
| | | |
| | | async function taskWorkerHireRefuse(hireStatus: FlexTaskWorkerHireEnum) { |
| | | async function setTaskUserHire(hireStatus: EnumTaskUserHireStatus) { |
| | | try { |
| | | let params: API.SetTaskUserHireCommand = { |
| | | id: id, |
| | |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| | |
| | | <template> |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <JobDetailContent :isCollapse="true"> |
| | | <JobDetailContent |
| | | :avatar="userResumeInfo.avatar" |
| | | :name="userResumeInfo.name" |
| | | :age="userResumeInfo.age" |
| | | :isReal="userResumeInfo.isReal" |
| | | :gender="userResumeInfo.gender" |
| | | :personalIdentityContent="userResumeInfo.personalIdentityContent" |
| | | :educationalBackgroundContent="userResumeInfo.educationalBackgroundContent" |
| | | :taskCount="userResumeInfo.taskCount" |
| | | :contactPhoneNumber="userResumeInfo.contactPhoneNumber" |
| | | :identity="userResumeInfo.identity" |
| | | :userId="enterpriseEmployeeId" |
| | | :userExpectJobs="userResumeInfo.userExpectJobs" |
| | | :freeTime="userResumeInfo.freeTime" |
| | | :jobSeekingStatus="userResumeInfo.jobSeekingStatus" |
| | | :userCredentials="userResumeInfo.userCredentials" |
| | | :workSeniority="userResumeInfo.workSeniority" |
| | | :workExperience="userResumeInfo.workExperience" |
| | | :photos="userResumeInfo.photos" |
| | | :height="userResumeInfo.height" |
| | | :weight="userResumeInfo.weight" |
| | | :taskInfoUsers="userResumeInfo.taskInfoUsers" |
| | | :isCollapse="true" |
| | | > |
| | | <!-- <template #footer> |
| | | <PageFooterBtn type="primary" plain>解约</PageFooterBtn> |
| | | <PageFooterBtn type="primary">签约</PageFooterBtn> |
| | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as flexWorkerServices from '@12333/services/api/FlexWorker'; |
| | | import { useUserResume } from '@12333/hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const router = Taro.useRouter(); |
| | | const taskId = router.params?.id ?? ''; |
| | | const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? ''; |
| | | |
| | | const { |
| | | isLoading, |
| | | isError, |
| | | data: detail, |
| | | refetch, |
| | | } = useQuery({ |
| | | queryKey: ['flexWorkerServices/getOrdeForDetail', taskId], |
| | | queryFn: async () => { |
| | | return await flexWorkerServices.getOrdeForDetail( |
| | | { id: taskId }, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.OrderInfoDto), |
| | | const { isLoading, isError, userResumeInfo, refetch } = useUserResume({ |
| | | userId: enterpriseEmployeeId, |
| | | }); |
| | | </script> |
| | | |
| | |
| | | |
| | | function goDetail(item: API.GetEnterpriseEmployeesQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.flexJobDetailFromManage}?userId=${item.id}`, |
| | | url: `${RouterPath.flexJobDetailFromManage}?enterpriseEmployeeId=${item.id}`, |
| | | }); |
| | | } |
| | | |
| | |
| | | </div> |
| | | </template> |
| | | <template #footerRight> |
| | | <nut-button type="primary" @click="goToJobDetail(item.id)">查看详情</nut-button> |
| | | <nut-button type="primary" @click="goToJobDetail(item)">查看详情</nut-button> |
| | | </template> |
| | | </FlexJobCard> |
| | | </template> |
| | |
| | | id: id, |
| | | }); |
| | | |
| | | function goToJobDetail(id: string) { |
| | | function goToJobDetail(item: API.GetTaskUsersQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.flexJobDetailFromTask}?id=${id}`, |
| | | url: `${RouterPath.flexJobDetailFromTask}?enterpriseEmployeeId=${item.enterpriseEmployeeId}&id=${item.id}`, |
| | | }); |
| | | } |
| | | </script> |
| | |
| | | return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.waitAssignCount ?? 0; |
| | | }); |
| | | |
| | | function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.flexJobDetail}?taskId=${item.id}`, |
| | | }); |
| | | } |
| | | //有问题 |
| | | // function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) { |
| | | // Taro.navigateTo({ |
| | | // url: `${RouterPath.taskManage}?taskId=${item.id}`, |
| | | // }); |
| | | // } |
| | | |
| | | function goBatchTaskList(item: API.GetTaskInfosQueryResultItem, status: EnumTaskUserArrangeStatus) { |
| | | Taro.navigateTo({ |
| | |
| | | {{ workExperience }} |
| | | </div> |
| | | <div class="flexJob-card-done-detail" v-if="showDoneDetail"> |
| | | <div class="flexJob-card-done-detail-item"> |
| | | {{ workSeniority }} |
| | | </div> |
| | | <div class="flexJob-card-done-detail-item">{{ workSeniority }}年</div> |
| | | <!-- <div class="flexJob-card-done-detail-item">{{ '在「宁波雷迪森酒店」,做过客房服务员' }}</div> --> |
| | | </div> |
| | | <div class="flexJob-card-footer"> |
| | |
| | | // @ts-ignore |
| | | import { request } from '@/utils/request'; |
| | | |
| | | /** 编辑灵工信息 POST /api/user/enterpriseEmployee/editEnterpriseEmployee */ |
| | | export async function editEnterpriseEmployee( |
| | | body: API.EditEnterpriseEmployeeCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<string>('/api/user/enterpriseEmployee/editEnterpriseEmployee', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 查询灵工详情 GET /api/user/enterpriseEmployee/getEnterpriseEmployee */ |
| | | export async function getEnterpriseEmployee( |
| | | // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) |
| | |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** 导入灵工信息 POST /api/user/enterpriseEmployee/importEnterpriseEmployees */ |
| | | export async function importEnterpriseEmployees( |
| | | body: API.ImportEnterpriseEmployeesCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/user/enterpriseEmployee/importEnterpriseEmployees', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | |
| | | ids: string[]; |
| | | } |
| | | |
| | | interface EditEnterpriseEmployeeCommand { |
| | | /** 灵工Id */ |
| | | id?: string; |
| | | /** 姓名 */ |
| | | name?: string; |
| | | /** 身份证号 */ |
| | | identity?: string; |
| | | /** 手机号 */ |
| | | contactPhoneNumber?: string; |
| | | gender?: EnumUserGender; |
| | | /** 年龄 */ |
| | | age?: number; |
| | | /** 身份证人像面 */ |
| | | identityImg?: string; |
| | | /** 身份证国徽面 */ |
| | | identityBackImg?: string; |
| | | } |
| | | |
| | | enum EnumBillingMethod { |
| | | /**按月 */ |
| | | Month = 10, |
| | |
| | | photos?: string[]; |
| | | /** 经历 */ |
| | | taskInfoUsers?: GetUserResumeQueryResultExperience[]; |
| | | /** 是否已收藏 */ |
| | | isCollected?: boolean; |
| | | } |
| | | |
| | | interface GetUserResumeQueryResultCredential { |
| | |
| | | workExperience?: string; |
| | | } |
| | | |
| | | interface ImportEnterpriseEmployeesCommand { |
| | | /** Excel地址 */ |
| | | excelUrl?: string; |
| | | } |
| | | |
| | | interface LoginCommandCallback { |
| | | /** 用户Id */ |
| | | id?: string; |