From 5eb6e6bab29554390851bbed86615110e62efa48 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 11 八月 2025 13:43:18 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
---
apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue | 21 +++
apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue | 35 ++---
packages/components/src/Input/ChooseInputWithAreaPicker.vue | 9
packages/hooks/area.ts | 5
apps/cMiniApp/src/hooks/user.ts | 3
apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue | 119 +++++++++++--------
packages/services/apiV2/typings.d.ts | 22 ++-
apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue | 71 ++++++-----
apps/cMiniApp/src/stores/modules/user.ts | 30 ++--
apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue | 14 +-
10 files changed, 192 insertions(+), 137 deletions(-)
diff --git a/apps/cMiniApp/src/hooks/user.ts b/apps/cMiniApp/src/hooks/user.ts
index 1f9b943..d81560c 100644
--- a/apps/cMiniApp/src/hooks/user.ts
+++ b/apps/cMiniApp/src/hooks/user.ts
@@ -10,7 +10,7 @@
export function useUser() {
const userStore = useUserStore();
- const { userDetail, userInfo, locationCity } = storeToRefs(userStore);
+ const { userDetail, userInfo, locationCity, userId } = storeToRefs(userStore);
function updateUserInfo() {
return userStore.getCurrentUserInfo();
@@ -43,6 +43,7 @@
isCompanyAudited,
isCertified,
locationCity,
+ userId,
};
}
diff --git a/apps/cMiniApp/src/stores/modules/user.ts b/apps/cMiniApp/src/stores/modules/user.ts
index d49e137..21cf5ab 100644
--- a/apps/cMiniApp/src/stores/modules/user.ts
+++ b/apps/cMiniApp/src/stores/modules/user.ts
@@ -87,6 +87,10 @@
accountInfo(): Partial<AccountInfo> {
return getAccountInfoFromAccessToken(this.userInfo?.accessToken);
},
+
+ userId: (state) => {
+ return state.userInfo?.id ?? '';
+ },
},
actions: {
// 鎵嬫満鍙锋巿鏉僀ode鐧诲綍
@@ -188,19 +192,19 @@
},
async getCurrentUserInfo() {
- try {
- let res = await userServices.getUserInfo({ showLoading: false });
- if (res) {
- // res.frontStatus = getUserCertificationFrontStatusAdapter(
- // res.userCertificationStatus,
- // res.userCertificationAuditStatus
- // );
- // res.originalAvatarUrl = res.avatarUrl;
- // res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar;
- // this.setUserDetail(res);
- // this.firstGetUserDetail = false;
- }
- } catch (error) {}
+ // try {
+ // let res = await userServices.getUserInfo({ showLoading: false });
+ // if (res) {
+ // res.frontStatus = getUserCertificationFrontStatusAdapter(
+ // res.userCertificationStatus,
+ // res.userCertificationAuditStatus
+ // );
+ // res.originalAvatarUrl = res.avatarUrl;
+ // res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar;
+ // this.setUserDetail(res);
+ // this.firstGetUserDetail = false;
+ // }
+ // } catch (error) {}
},
setTokenAction(tokenInfo: API.LoginCommandCallback) {
diff --git a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
index 9bf9b84..61ef2e5 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
@@ -1,32 +1,32 @@
<template>
<ContentScrollView :paddingH="false">
<nut-form :model-value="form" ref="formRef" :rules="rules">
- <nut-form-item label="澶村儚:" class="bole-form-item" prop="avatarUrl">
- <Uploader v-model:file-list="form.avatarUrl" :maximum="1" class="bole-uploader"> </Uploader>
+ <nut-form-item label="澶村儚:" class="bole-form-item" prop="avatar">
+ <Uploader v-model:file-list="form.avatar" :maximum="1" class="bole-uploader"> </Uploader>
</nut-form-item>
<nut-form-item label="濮撳悕:" class="bole-form-item" prop="name">
- <nut-input v-model.trim="form.name" placeholder="璇疯緭鍏ヤ紒涓氬悕绉�" />
+ <nut-input v-model.trim="form.name" placeholder="璇疯緭鍏ュ鍚�" />
</nut-form-item>
- <nut-form-item label="鎵嬫満鍙�:" class="bole-form-item" prop="phoneNumber" required>
- <nut-input v-model.trim="form.phoneNumber" placeholder="璇疯緭鍏ユ墜鏈哄彿" type="text" />
+ <nut-form-item label="鎵嬫満鍙�:" class="bole-form-item" prop="contactPhoneNumber" required>
+ <nut-input v-model.trim="form.contactPhoneNumber" placeholder="璇疯緭鍏ユ墜鏈哄彿" type="text" />
</nut-form-item>
- <nut-form-item label="韬唤:" class="bole-form-item" prop="socialIdentity">
+ <nut-form-item label="韬唤:" class="bole-form-item" prop="personalIdentityCode">
<ChooseInputWithPicker
- v-model="form.socialIdentity"
+ v-model="form.personalIdentityCode"
placeholder="璇烽�夋嫨韬唤"
- :value-enum="IdentityTypeList"
+ :value-enum="identityList"
/>
</nut-form-item>
- <nut-form-item label="瀛﹀巻:" class="bole-form-item" prop="educationalLevel">
+ <nut-form-item label="瀛﹀巻:" class="bole-form-item" prop="educationalBackgroundCode">
<ChooseInputWithPicker
- v-model="form.educationalLevel"
+ v-model="form.educationalBackgroundCode"
placeholder="璇烽�夋嫨瀛﹀巻"
- :value-enum="EducationTypeList"
+ :value-enum="educationList"
/>
</nut-form-item>
<nut-form-item label="甯搁┗鍩庡競:" class="bole-form-item" prop="areaList">
<ChooseInputWithAreaPicker
- :columns="cityAreaTree"
+ :columns="completeAreaTree"
v-model="form.areaList"
placeholder="璇烽�夋嫨甯搁┗鍩庡競"
></ChooseInputWithAreaPicker>
@@ -41,11 +41,10 @@
<script setup lang="ts">
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { ChooseInputWithPicker, ChooseInputWithAreaPicker } from '@12333/components';
-import { TaskStatusText } from '@/constants';
import { convertApi2FormUrlOnlyOne, Message, setOSSLink } from '@12333/utils';
-import { useAllAreaList, useArea, useSearchSettingType } from '@12333/hooks';
-import { Gender, SearchType } from '@12333/constants';
-import * as userResumeServices from '@12333/services/api/userResume';
+import { useArea, useDictionaryDataSelect } from '@12333/hooks';
+import { CategoryCode } from '@12333/constants';
+import * as userResumeServices from '@12333/services/apiV2/userResume';
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
@@ -53,23 +52,24 @@
name: 'InnerPage',
});
-const { searchSettingTypeList: EducationTypeList } = useSearchSettingType({
- searchType: SearchType.Education,
-});
-const { searchSettingTypeList: IdentityTypeList } = useSearchSettingType({
- searchType: SearchType.Identity,
+const { dictionaryDataList: identityList } = useDictionaryDataSelect({
+ categoryCode: CategoryCode.Identity,
});
-const { findAreaNameFromCode, cityAreaTree } = useAllAreaList();
+const { dictionaryDataList: educationList } = useDictionaryDataSelect({
+ categoryCode: CategoryCode.Education,
+});
+
+const { completeAreaTree } = useArea();
const form = reactive({
- avatarUrl: [],
+ avatar: [],
name: '',
- phoneNumber: '',
- gender: Gender.Male,
- socialIdentity: '',
- educationalLevel: '',
- areaList: [] as number[],
+ identity: '',
+ contactPhoneNumber: '',
+ personalIdentityCode: '',
+ educationalBackgroundCode: '',
+ areaList: [] as string[],
});
const {
@@ -78,29 +78,43 @@
data: detail,
refetch,
} = useQuery({
- queryKey: ['userResumeServices/getUserResumeBaseInfo'],
+ queryKey: ['userResumeServices/getUserResumePersonal'],
queryFn: async () => {
- return await userResumeServices.getUserResumeBaseInfo({
- showLoading: false,
- });
+ return await userResumeServices.getUserResumePersonal(
+ {},
+ {
+ showLoading: false,
+ }
+ );
},
- placeholderData: () => ({} as API.UserResumeBaseInfoOutput),
+ placeholderData: () => ({} as API.GetUserResumePersonalQueryResult),
onSuccess(data) {
- form.avatarUrl = convertApi2FormUrlOnlyOne(setOSSLink(data.avatarUrl));
+ form.avatar = convertApi2FormUrlOnlyOne(setOSSLink(data.avatar));
form.name = data.name;
- form.phoneNumber = data.phoneNumber;
- form.gender = data.genderType;
- form.socialIdentity = data.socialIdentity;
- form.educationalLevel = data.educationalLevel;
- form.areaList = [data.residentProvinceCode, data.residentCityCode];
+ form.identity = data.identity;
+ form.contactPhoneNumber = data.contactPhoneNumber;
+ form.personalIdentityCode = data.personalIdentityCode ?? '';
+ form.educationalBackgroundCode = data.educationalBackgroundCode ?? '';
+ form.areaList =
+ data.provinceCode && data.cityCode ? [data.provinceCode, data.cityCode] : ['', ''];
},
});
const rules = reactive<FormRules>({
- phoneNumber: [{ required: true, message: '璇疯緭鍏ユ墜鏈哄彿' }],
- socialIdentity: [{ required: true, message: '璇烽�夋嫨韬唤' }],
- educationalLevel: [{ required: true, message: '璇烽�夋嫨瀛﹀巻' }],
- areaList: [{ required: true, message: '璇烽�夋嫨甯搁┗鍩庡競' }],
+ contactPhoneNumber: [{ required: true, message: '璇疯緭鍏ユ墜鏈哄彿' }],
+ personalIdentityCode: [{ required: true, message: '璇烽�夋嫨韬唤' }],
+ educationalBackgroundCode: [{ required: true, message: '璇烽�夋嫨瀛﹀巻' }],
+ areaList: [
+ {
+ required: true,
+ validator: () => {
+ if (!form.areaList.length) {
+ return Promise.reject('璇烽�夋嫨甯搁┗鍩庡競');
+ }
+ return Promise.resolve();
+ },
+ },
+ ],
});
const formRef = ref<any>(null);
function handleConfirm() {
@@ -114,18 +128,17 @@
async function confirm() {
try {
- let params: API.SaveUserResumeBaseInfoInput = {
+ let params: API.SaveUserResumePersonalCommand = {
name: form.name,
- avatarUrl: form.avatarUrl[0]?.path,
- phoneNumber: form.phoneNumber,
- educationalLevel: form.educationalLevel,
- socialIdentity: form.socialIdentity,
- residentProvinceCode: form.areaList[0],
- residentProvinceName: findAreaNameFromCode(form.areaList[0]),
- residentCityCode: form.areaList[1],
- residentCityName: findAreaNameFromCode(form.areaList[1]),
+ identity: form.identity,
+ avatar: form.avatar[0]?.path,
+ contactPhoneNumber: form.contactPhoneNumber,
+ educationalBackgroundCode: form.educationalBackgroundCode,
+ personalIdentityCode: form.personalIdentityCode,
+ provinceCode: form.areaList[0],
+ cityCode: form.areaList[1],
};
- let res = await userResumeServices.saveUserResumeBaseInfo(params);
+ let res = await userResumeServices.saveUserResumePersonal(params);
if (res) {
Message.success('淇濆瓨鎴愬姛', {
onClosed() {
diff --git a/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue
index 71a124b..5ca5b03 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/expectPosition/InnerPage.vue
@@ -6,12 +6,12 @@
<div class="expect-position-page-footer">
<div class="expect-position-select-wrapper" v-if="checkdList.length > 0">
<div class="expect-position-select-item" v-for="(item, index) in checkdList" :key="index">
- <div class="expect-position-select-item-text">{{ item.name }}</div>
+ <div class="expect-position-select-item-text">{{ item.label }}</div>
<div class="expect-position-select-item-icon-wrapper">
<Close
:size="8"
class="expect-position-select-item-icon"
- @click="handleDelete(item.id)"
+ @click="handleDelete(item.value)"
/>
</div>
</div>
@@ -23,8 +23,8 @@
<script setup lang="ts">
import { PositionSelectView } from '@12333/components';
-import { SearchType } from '@12333/constants';
-import { useSearchSettingType } from '@12333/hooks';
+import { CategoryCode } from '@12333/constants';
+import { useDictionaryDataSelect } from '@12333/hooks';
import { Close } from '@nutui/icons-vue-taro';
import Taro from '@tarojs/taro';
import { size } from 'lodash';
@@ -44,13 +44,13 @@
const positionList = ref([]);
-const { searchSettingTypeList: position } = useSearchSettingType({
- searchType: SearchType.Position,
+const { dictionaryDataList: position } = useDictionaryDataSelect({
+ categoryCode: CategoryCode.Position,
});
const checkdList = computed(() => {
if (!positionList.value.length) return [];
- return position.value.filter((x) => positionList.value.includes(x.id));
+ return position.value.filter((x) => positionList.value.includes(x.value));
});
function handleDelete(id: string) {
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue
index 9109faa..d8dc7b3 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue
@@ -19,6 +19,8 @@
import { List, ListItem } from '@12333/components';
import Taro from '@tarojs/taro';
import { RouterPath } from '@/constants';
+import * as userResumeServices from '@12333/services/apiV2/userResume';
+import { useQuery } from '@tanstack/vue-query';
defineOptions({
name: 'InnerPage',
@@ -30,6 +32,25 @@
workYear: '',
});
+const {
+ isLoading,
+ isError,
+ data: detail,
+ refetch,
+} = useQuery({
+ queryKey: ['userResumeServices/getUserResumeCredentials'],
+ queryFn: async () => {
+ return await userResumeServices.getUserResumeCredentials(
+ {},
+ {
+ showLoading: false,
+ }
+ );
+ },
+ placeholderData: () => [] as API.GetUserResumeCredentialsQueryResultItem[],
+ onSuccess(data) {},
+});
+
function handleAdd() {
Taro.navigateTo({
url: RouterPath.mineCertificateAddOrEdit,
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue
index 4526023..6faed82 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue
@@ -1,7 +1,7 @@
<template>
<ContentView>
<nut-noticebar
- text="涓汉绠�鍘嗗凡瀹屽杽50%锛屽畬鍠勭畝鍘嗗彲鎻愬崌褰曠敤鐜�"
+ :text="`涓汉绠�鍘嗗凡瀹屽杽${detail?.completeRate ?? 0}锛屽畬鍠勭畝鍘嗗彲鎻愬崌褰曠敤鐜嘸"
:left-icon="false"
background="transparent"
close-mode
@@ -35,14 +35,18 @@
<div class="mine-curriculum-info-item-left">
<img :src="IconPhone" class="mine-curriculum-info-item-phone-icon" />
<div class="mine-curriculum-info-item-phone">
- {{ detail?.phoneNumber ?? '' }}
+ {{ detail?.contactPhoneNumber ?? '' }}
</div>
</div>
<div class="mine-curriculum-info-item-detail">
{{
- `${detail?.age ?? ''}宀� | ${detail?.personalIdentityContent} | ${
- detail?.educationalBackgroundContent
- }`
+ `${detail?.age ? `${detail?.age}宀乣 : ''}
+ ${detail?.personalIdentityContent ? `| ${detail?.personalIdentityContent}` : ''}
+ ${
+ detail?.educationalBackgroundContent
+ ? `| ${detail?.educationalBackgroundContent}`
+ : ''
+ }`
}}
</div>
</div>
@@ -103,7 +107,6 @@
<script setup lang="ts">
import { useUserStore } from '@/stores/modules/user';
-import { useIsLogin } from '@/hooks';
import MineAgreementSignDetailItem from '../../mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue';
import { List, ListItem, JobTagList, Avatar } from '@12333/components';
import {
@@ -121,19 +124,13 @@
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import { setOSSLink } from '@12333/utils';
-import { useEvent, useEventChannel } from 'senin-mini/hooks';
+import { useEvent } from 'senin-mini/hooks';
defineOptions({
name: 'InnerPage',
});
-const { userDetail } = useUserStore();
-const isLogin = useIsLogin();
-const router = Taro.useRouter();
-
-const usrId = computed(() => userDetail?.userId ?? '');
-
-const eventChannel = useEventChannel();
+const { userId } = useUser();
useEvent('updateResume', function (data: { content: boolean }) {
if (data.content) {
@@ -143,9 +140,7 @@
}
});
-const jobTag = computed(
- () => detail?.value?.userExpectJobs?.map((x) => x.personalIdentityContent) ?? []
-);
+const jobTag = computed(() => detail?.value?.userExpectJobs?.map((x) => x.expectJobContent) ?? []);
const {
isLoading,
@@ -153,17 +148,17 @@
data: detail,
refetch,
} = useQuery({
- queryKey: ['userResumeServices/getUserResume', usrId],
+ queryKey: ['userResumeServices/getUserResume', userId],
queryFn: async () => {
return await userResumeServices.getUserResume(
- { userId: usrId.value },
+ { userId: userId.value },
{
showLoading: false,
}
);
},
placeholderData: () => ({} as API.GetUserResumeQueryResult),
- enabled: !!usrId.value,
+ enabled: computed(() => !!userId.value),
});
function goPage(routeName: string) {
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue
index d40cd5c..4439660 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue
@@ -1,7 +1,12 @@
<template>
<ContentScrollView :paddingH="false">
<nut-form :model-value="form" ref="formRef" :rules="rules">
- <nut-form-item label="鏈熸湜宀椾綅:" class="bole-form-item" prop="jobIdList" label-position="top">
+ <nut-form-item
+ label="鏈熸湜宀椾綅:"
+ class="bole-form-item"
+ prop="userExpectJobs"
+ label-position="top"
+ >
<CommonInputField class="job-common-input-field" @click="goExpectPosition">
<JobTagList :jobTagList="jobTagList" />
</CommonInputField>
@@ -10,14 +15,14 @@
<ChooseInputWithPicker
v-model="form.freeTime"
placeholder="璇烽�夋嫨绌洪棽鏃堕棿"
- :value-enum="UserResumeFreeTimeEnumText"
+ :value-enum="EnumPersonalFreeTimeText"
/>
</nut-form-item>
<nut-form-item label="姹傝亴鐘舵��:" class="bole-form-item" prop="jobSeekingStatus">
<ChooseInputWithPicker
v-model="form.jobSeekingStatus"
placeholder="璇烽�夋嫨姹傝亴鐘舵��"
- :value-enum="UserResumeJobSeekingStatusEnumText"
+ :value-enum="EnumPersonalJobSeekingStatusText"
/>
</nut-form-item>
</nut-form>
@@ -31,35 +36,37 @@
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { ChooseInputWithPicker, JobTagList, CommonInputField } from '@12333/components';
import {
- UserResumeFreeTimeEnumText,
- UserResumeJobSeekingStatusEnumText,
- UserResumeFreeTimeEnum,
- UserResumeJobSeekingStatusEnum,
- SearchType,
+ CategoryCode,
+ EnumPersonalFreeTime,
+ EnumPersonalJobSeekingStatus,
+ EnumPersonalFreeTimeText,
+ EnumPersonalJobSeekingStatusText,
} from '@12333/constants';
import Taro from '@tarojs/taro';
-import * as userResumeServices from '@12333/services/api/userResume';
-import { useSearchSettingType } from '@12333/hooks';
+import * as userResumeServices from '@12333/services/apiV2/userResume';
+import { useDictionaryDataSelect } from '@12333/hooks';
import { Message } from '@12333/utils';
-import { goBack } from '@/utils';
import { useQuery } from '@tanstack/vue-query';
defineOptions({
name: 'InnerPage',
});
-const { searchSettingTypeList: positionList } = useSearchSettingType({
- searchType: SearchType.Position,
+const { dictionaryDataList: positionList } = useDictionaryDataSelect({
+ categoryCode: CategoryCode.Position,
});
const jobTagList = computed(() => {
- return positionList.value?.filter((x) => form.jobIdList.includes(x.id)).map((x) => x.name) || [];
+ return (
+ positionList.value?.filter((x) => form.userExpectJobs.includes(x.value)).map((x) => x.label) ||
+ []
+ );
});
const form = reactive({
- jobIdList: [] as string[],
- freeTime: UserResumeFreeTimeEnum.NoLimit,
- jobSeekingStatus: UserResumeJobSeekingStatusEnum.Activing,
+ userExpectJobs: [] as string[],
+ freeTime: EnumPersonalFreeTime.NoLimit,
+ jobSeekingStatus: EnumPersonalJobSeekingStatus.Active,
});
const {
@@ -68,26 +75,29 @@
data: detail,
refetch,
} = useQuery({
- queryKey: ['userResumeServices/getResumeExpectationJob'],
+ queryKey: ['userResumeServices/getUserResumeJobSeeking'],
queryFn: async () => {
- return await userResumeServices.getResumeExpectationJob({
- showLoading: false,
- });
+ return await userResumeServices.getUserResumeJobSeeking(
+ {},
+ {
+ showLoading: false,
+ }
+ );
},
- placeholderData: () => ({} as API.UserResumeExpectationJobOutput),
+ placeholderData: () => ({} as API.GetUserResumeJobSeekingQueryResult),
onSuccess(data) {
- form.jobIdList = data.jobIdList.map((x) => x.id);
+ form.userExpectJobs = data.userExpectJobs.map((x) => x.expectJobCode);
form.freeTime = data.freeTime;
form.jobSeekingStatus = data.jobSeekingStatus;
},
});
const rules = reactive<FormRules>({
- jobIdList: [
+ userExpectJobs: [
{
required: true,
validator() {
- if (form.jobIdList.length) return Promise.resolve(true);
+ if (form.userExpectJobs.length) return Promise.resolve(true);
return Promise.reject('璇烽�夋嫨鏈熸湜宀椾綅');
},
},
@@ -107,12 +117,12 @@
async function confirm() {
try {
- let params: API.SaveUserResumeExpectationJobInput = {
- jobIdList: form.jobIdList,
+ let params: API.SaveUserResumeJobSeekingCommand = {
+ userExpectJobsExpectJobCode: form.userExpectJobs,
freeTime: form.freeTime,
jobSeekingStatus: form.jobSeekingStatus,
};
- let res = await userResumeServices.saveUserResumeExpectationJob(params);
+ let res = await userResumeServices.saveUserResumeJobSeeking(params);
if (res) {
Message.success('淇濆瓨鎴愬姛', {
onClosed() {
@@ -133,11 +143,12 @@
url: `${RouterPath.expectPosition}`,
events: {
addPosition: function (data: { content: string[] }) {
- form.jobIdList = data.content?.length ? data.content : [];
+ form.userExpectJobs = data.content?.length ? data.content : [];
},
},
success: function (res) {
- res.eventChannel.emit('updatePosition', { content: form.jobIdList });
+ console.log('res: ', res);
+ res.eventChannel.emit('updatePosition', { content: form.userExpectJobs });
},
});
}
diff --git a/packages/components/src/Input/ChooseInputWithAreaPicker.vue b/packages/components/src/Input/ChooseInputWithAreaPicker.vue
index 62b687f..b0cd598 100644
--- a/packages/components/src/Input/ChooseInputWithAreaPicker.vue
+++ b/packages/components/src/Input/ChooseInputWithAreaPicker.vue
@@ -18,7 +18,7 @@
type Props = {
fieldNames?: object;
columns: API.AreaTreeNode[];
- modelValue: Array<string | number>;
+ modelValue: Array<string>;
title?: string;
};
@@ -30,12 +30,11 @@
children: 'children',
}),
});
-const inputValue = computed(() =>
- props.modelValue.map((x) => findAreaNameFromCode(Number(x))).join(',')
-);
+console.log('props: ', props);
+const inputValue = computed(() => props.modelValue.map((x) => findAreaNameFromCode(x)).join(','));
const emit = defineEmits<{
- (e: 'update:modelValue', val: Array<string | number>): void;
+ (e: 'update:modelValue', val: Array<string>): void;
}>();
function handleOpen() {
diff --git a/packages/hooks/area.ts b/packages/hooks/area.ts
index ec57c26..f8bd597 100644
--- a/packages/hooks/area.ts
+++ b/packages/hooks/area.ts
@@ -12,10 +12,11 @@
categoryCode: CategoryCode.Area,
staleTime: Infinity,
all: true,
- maxDeep: AreaType.Area,
+ maxDeep: AreaType.City,
});
const areaList = computed(() => dictionaryDataList.value.map(convertDictionaryToAreaTreeNode));
+ console.log('areaList: ', areaList);
const areaTree = computed(() => formatAreaListToTree(areaList.value));
@@ -43,7 +44,7 @@
return {
children: [],
areaCode: item.data?.code,
- parentCode: '',
+ parentCode: item.data?.field1,
areaName: item.label,
layer: Number(item.data?.field4),
quickQuery: item.data?.field2,
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index 656be26..8f283be 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -1543,7 +1543,7 @@
/** 浣撻噸 */
weight?: number;
/** 鐢熸椿鐓� */
- photos?: string[];
+ photoImgs?: string[];
}
type GetUserResumeJobSeekingQuery = Record<string, any>;
@@ -1571,6 +1571,8 @@
avatar?: string;
/** 濮撳悕 */
name?: string;
+ /** 鎵嬫満鍙� */
+ contactPhoneNumber?: string;
/** 韬唤璇佸彿 */
identity?: string;
/** 韬唤缂栧彿 */
@@ -1594,12 +1596,14 @@
interface GetUserResumeQueryResult {
/** 鐢ㄦ埛Id */
id?: string;
+ /** 瀹屽杽搴� */
+ completeRate?: number;
/** 澶村儚 */
avatar?: string;
/** 濮撳悕 */
name?: string;
/** 鎵嬫満鍙� */
- phoneNumber?: string;
+ contactPhoneNumber?: string;
/** 韬唤璇佸彿 */
identity?: string;
gender?: EnumUserGender;
@@ -1665,10 +1669,12 @@
}
interface GetUserResumeQueryResultExpectJob {
+ /** 鏈熸湜宀椾綅涓婄骇缂栧彿 */
+ expectJobParentCode?: string;
/** 鏈熸湜宀椾綅缂栧彿 */
- personalIdentityCode?: string;
+ expectJobCode?: string;
/** 鏈熸湜宀椾綅 */
- personalIdentityContent?: string;
+ expectJobContent?: string;
}
type GetUserResumeWorkExperienceQuery = Record<string, any>;
@@ -1681,6 +1687,8 @@
}
interface LoginCommandCallback {
+ /** 鐢ㄦ埛Id */
+ id?: string;
/** 鐢ㄦ埛璁块棶浠ょ墝 */
accessToken?: string;
/** 鍒锋柊浠ょ墝 */
@@ -2040,12 +2048,12 @@
/** 浣撻噸 */
weight?: number;
/** 鐢熸椿鐓� */
- photos?: string[];
+ photosImg?: string[];
}
interface SaveUserResumeJobSeekingCommand {
/** 鐢ㄦ埛淇℃伅鏈熸湜宀椾綅 */
- userExpectJobs: string[];
+ userExpectJobsExpectJobCode: string[];
freeTime: EnumPersonalFreeTime;
jobSeekingStatus: EnumPersonalJobSeekingStatus;
}
@@ -2055,6 +2063,8 @@
avatar?: string;
/** 濮撳悕 */
name?: string;
+ /** 鎵嬫満鍙� */
+ contactPhoneNumber?: string;
/** 韬唤璇佸彿 */
identity: string;
/** 韬唤缂栧彿 */
--
Gitblit v1.9.1