From b3dc565fe8a341bdb069b8f0feb912cd751a589f Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 14 八月 2025 09:12:27 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
---
apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue | 2
apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue | 11
apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue | 2
packages/services/apiV2/enterpriseEmployee.ts | 30 ++
apps/bMiniApp/project.private.config.json | 14
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue | 47 ++-
apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue | 6
apps/cMiniApp/src/hooks/user.ts | 42 ---
apps/bMiniApp/src/pages/home/index.vue | 52 ++--
packages/utils/common.ts | 4
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue | 60 +++--
packages/hooks/user.ts | 51 ++++
apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue | 6
apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue | 76 ++++--
apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue | 2
apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue | 81 ++++--
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue | 56 ++++
apps/cMiniApp/auto-imports.d.ts | 2
packages/hooks/index.ts | 1
apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue | 1
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue | 2
packages/services/apiV2/typings.d.ts | 33 +++
apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue | 31 ++
apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue | 1
packages/components/src/Card/FlexJobCard.vue | 4
apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue | 8
26 files changed, 421 insertions(+), 204 deletions(-)
diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json
index ed02394..d16cb0a 100644
--- a/apps/bMiniApp/project.private.config.json
+++ b/apps/bMiniApp/project.private.config.json
@@ -9,6 +9,13 @@
"miniprogram": {
"list": [
{
+ "name": "鐏靛伐璇︽儏",
+ "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail",
+ "query": "enterpriseEmployeeId=700a3a67-5da5-49d2-a65a-08ddd661238b",
+ "launchMode": "default",
+ "scene": null
+ },
+ {
"name": "鐏靛伐绠$悊",
"pathName": "subpackages/flexJobManage/flexJobManage/flexJobManage",
"query": "",
@@ -61,13 +68,6 @@
"name": "楠屾敹绠$悊",
"pathName": "subpackages/task/taskCheck/taskCheck",
"query": "",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "鐏靛伐璇︽儏",
- "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail",
- "query": "id=c4cfe028-23e7-0be8-ee56-3a11e3743b9d",
"launchMode": "default",
"scene": null
},
diff --git a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
index 6552419..5bf9aba 100644
--- a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -1,17 +1,28 @@
<template>
<ContentView style="background-color: transparent" class="job-detail-content">
- <FlexJobTopView size="small" class="job-detail-content-top" />
+ <FlexJobTopView
+ :avatar="avatar"
+ :name="name"
+ :age="age"
+ :isReal="isReal"
+ :gender="gender"
+ :personalIdentityContent="personalIdentityContent"
+ :educationalBackgroundContent="educationalBackgroundContent"
+ :taskCount="taskCount"
+ size="small"
+ class="job-detail-content-top"
+ />
<div class="job-detail-content-contact-info">
<div class="job-detail-content-contact-info-item">
<div class="job-detail-content-contact-info-item-label">鎵嬫満鍙凤細</div>
<div class="job-detail-content-contact-info-item-text">
- {{ isCollapse ? '13333333333' : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
+ {{ isCollapse ? contactPhoneNumber : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
</div>
</div>
<div class="job-detail-content-contact-info-item">
<div class="job-detail-content-contact-info-item-label">韬唤璇佸彿锛�</div>
<div class="job-detail-content-contact-info-item-text">
- {{ isCollapse ? hiddenIDNumberForEnd6('330902199909123456') : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
+ {{ isCollapse ? hiddenIDNumberForEnd6(identity) : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
</div>
</div>
</div>
@@ -26,7 +37,17 @@
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 />
@@ -42,6 +63,7 @@
import { hiddenIDNumberForEnd6 } from '@12333/utils';
import curriculumView from './components/curriculumView.vue';
import experienceView from './components/experienceView.vue';
+import { EnumUserGender } from '@12333/constants';
defineOptions({
name: 'JobDetailContent',
@@ -49,6 +71,32 @@
type Props = {
isCollapse: boolean;
+
+ avatar?: string;
+ name?: string;
+ gender?: EnumUserGender;
+ age?: number;
+ isReal?: boolean;
+ personalIdentityContent?: string;
+ educationalBackgroundContent?: string;
+ taskCount?: number;
+ 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');
diff --git a/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
index b06b8f9..7946288 100644
--- a/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
@@ -5,18 +5,22 @@
<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="璧勬牸璇佷功">
@@ -25,31 +29,34 @@
: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="涓汉鐓х墖锛�">
@@ -58,12 +65,12 @@
: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>
@@ -77,19 +84,37 @@
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">
diff --git a/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue b/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
index 6cd3d6e..b901e3c 100644
--- a/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
@@ -1,24 +1,43 @@
<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="鎮ㄧ殑璁㈠崟姝e湪閰嶉�侀�斾腑"></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">
diff --git a/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue b/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue
index 3c642e9..ca28574 100644
--- a/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue
+++ b/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue
@@ -9,7 +9,11 @@
></ProRadio>
</QueryMenuItem>
<QueryMenuItem title="韬唤">
- <ProRadio v-model="query.identity" :value-enum="identityList" show-all-btn></ProRadio>
+ <ProRadio
+ v-model="query.personalIdentityCode"
+ :value-enum="identityList"
+ show-all-btn
+ ></ProRadio>
</QueryMenuItem>
<QueryMenuItem>
<template #title>
@@ -66,7 +70,7 @@
const query = defineModel<{
genderLimit: number | string;
age: number[];
- identity: string;
+ personalIdentityCode: string;
certificateType: string;
}>('query');
diff --git a/apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue b/apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue
index 79c5d34..d85aeb8 100644
--- a/apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue
+++ b/apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue
@@ -1,14 +1,13 @@
<template>
<QueryMenuView @close="handleReset" @confirm="emit('close')" cancelText="閲嶇疆">
<div class="home-query-position-menu-view">
- <PositionSelectView v-model="query.position" />
+ <PositionSelectView v-model="query.userExpectJobs" />
</div>
</QueryMenuView>
</template>
<script setup lang="ts">
import { QueryMenuView, QueryMenuItem, PositionSelectView } from '@12333/components';
-import { GenderText } from '@12333/constants';
defineOptions({
name: 'HomeQueryPositionMenuView',
@@ -24,11 +23,12 @@
}>();
const query = defineModel<{
- position: string[];
+ userExpectJobs: string[];
}>('query');
const DefaultQuery = {
...query.value,
+ userExpectJobs: [...query.value.userExpectJobs],
};
function handleReset() {
diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue
index e4b1113..af9b8e4 100644
--- a/apps/bMiniApp/src/pages/home/index.vue
+++ b/apps/bMiniApp/src/pages/home/index.vue
@@ -33,7 +33,6 @@
title-gutter="8"
title-scroll
>
- <ProTabPane :title="`鎺ㄨ崘`" :pane-key="HomeOrderType.Recommend"></ProTabPane>
<ProTabPane :title="`鏈�鏂癭" :pane-key="HomeOrderType.LastShelfTime"></ProTabPane>
<template #right>
<Menu>
@@ -58,7 +57,20 @@
:key="queryState.orderType"
>
<template #renderItem="{ item }">
- <FlexJobCard @click="goFlexJobDetail(item)" :showFooterLeft="false" />
+ <FlexJobCard
+ :name="item.name"
+ :gender="item.gender"
+ :age="item.age"
+ :isReal="item.isReal"
+ :personalIdentityContent="item.personalIdentityContent"
+ :educationalBackgroundContent="item.educationalBackgroundContent"
+ :taskCount="item.taskCount"
+ :avatar="item.avatar"
+ :workExperience="item.workExperience"
+ :workSeniority="item.workSeniority"
+ @click="goFlexJobDetail(item)"
+ :showFooterLeft="false"
+ />
</template>
</InfiniteLoading>
</PageLayoutWithBg>
@@ -80,12 +92,12 @@
EnumTaskReleaseStatus,
EnumUserGender,
} from '@12333/constants';
-import * as taskServices from '@12333/services/apiV2/task';
import _ from 'lodash';
import HomeQueryMenuView from './HomeQueryMenuView.vue';
import HomeQueryPositionMenuView from './HomeQueryPositionMenuView.vue';
import IconLocaltion from '@/assets/home/icon-localtion.png';
import { setLocationCity } from '@/utils';
+import * as userResumeServices from '@12333/services/apiV2/userResume';
const { locationCity } = useUser();
@@ -100,12 +112,12 @@
const queryMenuState = reactive({
genderLimit: '' as any as EnumUserGender,
age: [15, 65],
- identity: '',
+ personalIdentityCode: '',
certificateType: '',
});
const queryPositionState = reactive({
- position: [] as string[],
+ userExpectJobs: [] as string[],
});
const queryState = reactive({
@@ -114,32 +126,26 @@
const { infiniteLoadingProps } = useInfiniteLoading(
({ pageParam }) => {
- let params: API.GetTaskInfosQuery = {
+ let params: API.GetUserResumesQuery = {
pageModel: {
rows: 20,
page: pageParam,
- orderInput: [
- queryState.orderType === HomeOrderType.Recommend
- ? { property: 'recommendStatus', order: EnumPagedListOrder.Desc }
- : { property: 'createdTime', order: EnumPagedListOrder.Desc },
- ],
+ orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
},
- // keywords: 'string',
- // time: '2025-08-08T02:58:58.756Z',
- // cityCode: 'string',
- // settlementCycle: 10,
- // benefitCodes: ['string'],
- genderLimit: queryMenuState.genderLimit,
- // status: 10,
- releaseStatus: EnumTaskReleaseStatus.InProcess,
+ userExpectJobs: queryPositionState.userExpectJobs,
+ gender: queryMenuState.genderLimit,
+ personalIdentityCode: queryMenuState.personalIdentityCode,
+ // ageMin: queryMenuState.age[0],
+ // ageMax: queryMenuState.age[1],
+ userCredentials: queryMenuState.certificateType ? [queryMenuState.certificateType] : null,
};
- return taskServices.getTaskInfos(params, {
+ return userResumeServices.getUserResumes(params, {
showLoading: false,
});
},
{
- queryKey: ['taskServices/getTaskInfos', queryState, queryMenuState, queryPositionState],
+ queryKey: ['userResumeServices/getUserResumes', queryState, queryMenuState, queryPositionState],
}
);
@@ -167,9 +173,9 @@
selectPositionItem.value?.toggle?.();
}
-function goFlexJobDetail(item: API.GetTaskInfosQueryResultItem) {
+function goFlexJobDetail(item: API.GetUserResumesQueryResultItem) {
Taro.navigateTo({
- url: `${RouterPath.flexJobDetail}?id=${item.id}`,
+ url: `${RouterPath.flexJobDetail}?enterpriseEmployeeId=${item.id}`,
});
}
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
index e143e38..307de77 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
@@ -1,7 +1,30 @@
<template>
<PageLayoutWithBg class="flexJobDetail-page-wrapper" title="鐏靛伐璇︽儏" :need-auth="false">
<LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
- <JobDetailContent :isCollapse="isCollapse">
+ <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"
+ :isCollapse="isCollapse"
+ :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
:icon="IconShare"
@@ -10,12 +33,12 @@
openType="share"
></PageFooterAction>
<PageFooterAction
- :icon="IconAttentionActive"
+ :icon="userResumeInfo.isCollected ? IconAttentionActive : IconAttention"
text="鏀惰棌"
:isFlex="false"
@click="handleAttention"
></PageFooterAction>
- <PageFooterBtn type="primary" @click="toggle">绔嬪嵆鑱旂郴</PageFooterBtn>
+ <PageFooterBtn type="primary" @click="handleContact">绔嬪嵆鑱旂郴</PageFooterBtn>
</template>
</JobDetailContent>
</LoadingLayout>
@@ -25,54 +48,47 @@
<script setup lang="ts">
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import * as userResumeServices from '@12333/services/apiV2/userResume';
import IconShare from '@/assets/flexJob/icon-share.png';
import IconAttention from '@/assets/flexJob/icon-attention-lg.png';
import IconAttentionActive from '@/assets/flexJob/icon-attention-lg-active.png';
import { useToggle } from 'senin-mini/hooks';
import { Message } from '@12333/utils';
+import { useUserResume } from '@12333/hooks';
+import { useAccessLogin } from '@/hooks';
defineOptions({
name: 'flexJobDetail',
});
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,
});
const { isCollapse, toggle } = useToggle();
+const handleContact = useAccessLogin(async () => {
+ try {
+ if (!isCollapse.value) {
+ await userResumeServices.contactUserResume({ id: enterpriseEmployeeId });
+ toggle();
+ }
+ } catch (error) {}
+});
+
async function handleAttention() {
try {
- let params: API.CollectFlexWorkerResumeInput = {
- flexWorkerId: detail.value?.flexWorkerId,
- userResumeId: detail.value?.userResumeId,
+ let params: API.CollectUserResumeCommand = {
+ id: enterpriseEmployeeId,
+ isCollected: !userResumeInfo.value.isCollected,
};
- let res = await flexWorkerServices.collectFlexWorkerResume(params);
+ let res = await userResumeServices.collectUserResume(params);
if (res) {
- Message.success('鏀惰棌鎴愬姛');
+ refetch({ type: 'inactive' });
}
} catch (error) {}
}
</script>
-
-<style lang="scss">
-@import '@/styles/common.scss';
-</style>
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
index b239454..3275278 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
@@ -1,9 +1,36 @@
<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>
@@ -14,33 +41,22 @@
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,
@@ -56,7 +72,3 @@
} catch (error) {}
}
</script>
-
-<style lang="scss">
-@import '@/styles/common.scss';
-</style>
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
index f1ba77d..ebde239 100644
--- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
@@ -1,6 +1,29 @@
<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>瑙g害</PageFooterBtn>
<PageFooterBtn type="primary">绛剧害</PageFooterBtn>
@@ -12,31 +35,17 @@
<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>
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
index 15b3dfa..c47dcb3 100644
--- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
@@ -102,7 +102,7 @@
function goDetail(item: API.GetEnterpriseEmployeesQueryResultItem) {
Taro.navigateTo({
- url: `${RouterPath.flexJobDetailFromManage}?userId=${item.id}`,
+ url: `${RouterPath.flexJobDetailFromManage}?enterpriseEmployeeId=${item.id}`,
});
}
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
index 557ab87..45182b1 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
@@ -22,7 +22,7 @@
</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>
@@ -52,9 +52,9 @@
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>
diff --git a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
index 3a2e09d..0dcd380 100644
--- a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
@@ -78,11 +78,12 @@
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({
diff --git a/apps/cMiniApp/auto-imports.d.ts b/apps/cMiniApp/auto-imports.d.ts
index 5702a8e..f8c3f8a 100644
--- a/apps/cMiniApp/auto-imports.d.ts
+++ b/apps/cMiniApp/auto-imports.d.ts
@@ -91,7 +91,6 @@
const useSlots: typeof import('vue')['useSlots']
const useSwitchTab: typeof import('./src/hooks/router')['useSwitchTab']
const useTemplateRef: typeof import('vue')['useTemplateRef']
- const useUpdateResume: typeof import('./src/hooks/user')['useUpdateResume']
const useUser: typeof import('./src/hooks/user')['useUser']
const useUserResume: typeof import('./src/hooks/user')['useUserResume']
const watch: typeof import('vue')['watch']
@@ -204,7 +203,6 @@
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
readonly useSwitchTab: UnwrapRef<typeof import('./src/hooks/router')['useSwitchTab']>
readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
- readonly useUpdateResume: UnwrapRef<typeof import('./src/hooks/user')['useUpdateResume']>
readonly useUser: UnwrapRef<typeof import('./src/hooks/user')['useUser']>
readonly useUserResume: UnwrapRef<typeof import('./src/hooks/user')['useUserResume']>
readonly watch: UnwrapRef<typeof import('vue')['watch']>
diff --git a/apps/cMiniApp/src/hooks/user.ts b/apps/cMiniApp/src/hooks/user.ts
index 6cf7092..a0d6025 100644
--- a/apps/cMiniApp/src/hooks/user.ts
+++ b/apps/cMiniApp/src/hooks/user.ts
@@ -6,6 +6,7 @@
import { MaybeRef } from 'vue';
import { useRefeshDidShow } from '@12333/hooks/infiniteLoading';
import * as userResumeServices from '@12333/services/apiV2/userResume';
+import { useUserResume as useUserResumeHook } from '@12333/hooks';
export function useUser() {
const userStore = useUserStore();
@@ -97,44 +98,5 @@
export function useUserResume() {
const { userId } = useUser();
-
- const { data, refetch } = useQuery({
- queryKey: ['userResumeServices/getUserResume', userId],
- queryFn: async () => {
- return await userResumeServices.getUserResume(
- { userId: userId.value },
- {
- showLoading: false,
- }
- );
- },
- placeholderData: () => ({} as API.GetUserResumeQueryResult),
- enabled: computed(() => !!userId.value),
- });
-
- return {
- userResumeInfo: data,
- refetch,
- };
-}
-
-export function useUpdateResume() {
- const queryClient = useQueryClient();
-
- const updateUserResumeCredentials = () => {
- return queryClient.invalidateQueries({
- queryKey: ['userResumeServices/getUserResumeCredentials'],
- });
- };
-
- const updateUserResume = () => {
- return queryClient.invalidateQueries({
- queryKey: ['userResumeServices/getUserResume'],
- });
- };
-
- return {
- updateUserResumeCredentials,
- updateUserResume,
- };
+ return useUserResumeHook({ userId });
}
diff --git a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
index a15def4..3e5993c 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
@@ -42,7 +42,7 @@
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { ChooseInputWithPicker, ChooseInputWithAreaPicker } from '@12333/components';
import { convertApi2FormUrlOnlyOne, Message, setOSSLink } from '@12333/utils';
-import { useAreaTree, useDictionaryDataSelect } from '@12333/hooks';
+import { useAreaTree, useDictionaryDataSelect, useUpdateResume } from '@12333/hooks';
import { AreaType, CategoryCode } from '@12333/constants';
import * as userResumeServices from '@12333/services/apiV2/userResume';
import Taro from '@tarojs/taro';
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
index 46deb43..4b22776 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
@@ -67,7 +67,7 @@
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import Taro from '@tarojs/taro';
-import { useDictionaryDataSelect } from '@12333/hooks';
+import { useDictionaryDataSelect, useUpdateResume } from '@12333/hooks';
import { CategoryCode } from '@12333/constants';
import { convertApi2FormUrlOnlyOne, Message, setOSSLink, FormValidator } from '@12333/utils';
import dayjs from 'dayjs';
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
index e4d1581..bb8ce63 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
@@ -29,6 +29,7 @@
<script setup lang="ts">
import { goBack } from '@/utils';
import { NumberInput } from '@12333/components';
+import { useUpdateResume } from '@12333/hooks';
import * as userResumeServices from '@12333/services/apiV2/userResume';
import { convertApiPath2Url, Message } from '@12333/utils';
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue
index a826890..edc93bf 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue
@@ -44,7 +44,7 @@
} from '@12333/constants';
import Taro from '@tarojs/taro';
import * as userResumeServices from '@12333/services/apiV2/userResume';
-import { useDictionaryDataSelect } from '@12333/hooks';
+import { useDictionaryDataSelect, useUpdateResume } from '@12333/hooks';
import { Message } from '@12333/utils';
import { useQuery } from '@tanstack/vue-query';
import { goBack } from '@/utils';
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue
index 36a1ced..963e43b 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue
@@ -16,6 +16,7 @@
<script setup lang="ts">
import { goBack } from '@/utils';
+import { useUpdateResume } from '@12333/hooks';
import * as userResumeServices from '@12333/services/apiV2/userResume';
import { Message } from '@12333/utils';
import { useQuery } from '@tanstack/vue-query';
diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue
index 36fca70..2d5cbb8 100644
--- a/packages/components/src/Card/FlexJobCard.vue
+++ b/packages/components/src/Card/FlexJobCard.vue
@@ -14,9 +14,7 @@
{{ 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">
diff --git a/packages/hooks/index.ts b/packages/hooks/index.ts
index 517d13d..cfdc8fd 100644
--- a/packages/hooks/index.ts
+++ b/packages/hooks/index.ts
@@ -7,3 +7,4 @@
export * from './enterprise';
export * from './task';
export * from './taskUser';
+export * from './user';
diff --git a/packages/hooks/user.ts b/packages/hooks/user.ts
new file mode 100644
index 0000000..476e815
--- /dev/null
+++ b/packages/hooks/user.ts
@@ -0,0 +1,51 @@
+import { MaybeRef, computed, unref } from 'vue';
+import * as userResumeServices from '@12333/services/apiV2/userResume';
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
+
+type UseUserResumeOptions = {
+ userId: MaybeRef<string>;
+};
+
+export function useUserResume({ userId }: UseUserResumeOptions) {
+ const { data, refetch, isLoading, isError } = useQuery({
+ queryKey: ['userResumeServices/getUserResume', userId],
+ queryFn: async () => {
+ return await userResumeServices.getUserResume(
+ { userId: unref(userId) },
+ {
+ showLoading: false,
+ }
+ );
+ },
+ placeholderData: () => ({} as API.GetUserResumeQueryResult),
+ enabled: computed(() => !!unref(userId)),
+ });
+
+ return {
+ userResumeInfo: data,
+ refetch,
+ isLoading,
+ isError,
+ };
+}
+
+export function useUpdateResume() {
+ const queryClient = useQueryClient();
+
+ const updateUserResumeCredentials = () => {
+ return queryClient.invalidateQueries({
+ queryKey: ['userResumeServices/getUserResumeCredentials'],
+ });
+ };
+
+ const updateUserResume = () => {
+ return queryClient.invalidateQueries({
+ queryKey: ['userResumeServices/getUserResume'],
+ });
+ };
+
+ return {
+ updateUserResumeCredentials,
+ updateUserResume,
+ };
+}
diff --git a/packages/services/apiV2/enterpriseEmployee.ts b/packages/services/apiV2/enterpriseEmployee.ts
index 1c915b2..cb2c49a 100644
--- a/packages/services/apiV2/enterpriseEmployee.ts
+++ b/packages/services/apiV2/enterpriseEmployee.ts
@@ -2,6 +2,21 @@
// @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(
// 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
@@ -37,3 +52,18 @@
}
);
}
+
+/** 瀵煎叆鐏靛伐淇℃伅 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 || {}),
+ });
+}
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index beca1f6..7ef9946 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -243,6 +243,24 @@
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,
@@ -2396,6 +2414,8 @@
releaseStatus?: EnumTaskReleaseStatus;
recommendStatus?: EnumTaskRecommendStatus;
checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+ /** 鏄惁鏀惰棌 */
+ isCollected?: boolean;
pageModel?: PagedListQueryPageModel;
}
@@ -2670,6 +2690,8 @@
photos?: string[];
/** 缁忓巻 */
taskInfoUsers?: GetUserResumeQueryResultExperience[];
+ /** 鏄惁宸叉敹钘� */
+ isCollected?: boolean;
}
interface GetUserResumeQueryResultCredential {
@@ -2725,6 +2747,10 @@
ageMax?: number;
/** 璧勬牸璇佷功缂栧彿 */
userCredentials?: string[];
+ /** 鏄惁宸叉敹钘� */
+ isCollected?: boolean;
+ /** 鏄惁宸茶仈绯� */
+ isContacted?: boolean;
pageModel?: PagedListQueryPageModel;
}
@@ -2766,6 +2792,8 @@
workSeniority?: string;
/** 宸ヤ綔缁忛獙 */
workExperience?: string;
+ /** 鍒涘缓鏃堕棿 */
+ createdTime?: string;
}
type GetUserResumeWorkExperienceQuery = Record<string, any>;
@@ -2777,6 +2805,11 @@
workExperience?: string;
}
+ interface ImportEnterpriseEmployeesCommand {
+ /** Excel鍦板潃 */
+ excelUrl?: string;
+ }
+
interface LoginCommandCallback {
/** 鐢ㄦ埛Id */
id?: string;
diff --git a/packages/utils/common.ts b/packages/utils/common.ts
index bd11db4..238407e 100644
--- a/packages/utils/common.ts
+++ b/packages/utils/common.ts
@@ -131,5 +131,7 @@
return list.filter(Boolean).join(separator);
}
-export const hiddenIDNumberForEnd6 = (realIDNumber: string) =>
+export const hiddenIDNumberForEnd6 = (realIDNumber: string) => {
+ if (!realIDNumber) return '';
realIDNumber.replace(/^(\d+)(.{6})$/, '$1******');
+};
--
Gitblit v1.9.1