From 58e6c22b584ba40169753ec5038dec7d780c0bd3 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 17 十月 2025 19:47:30 +0800
Subject: [PATCH] Merge branch 'dev-1.2.0.1' of http://120.26.58.240:8888/r/flexJobMiniApp into dev-1.2.0.1
---
apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue | 137 ++++++++++++++++++++++++---------------------
1 files changed, 73 insertions(+), 64 deletions(-)
diff --git a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
index 9bf9b84..d745d5c 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="areaTree"
v-model="form.areaList"
placeholder="璇烽�夋嫨甯搁┗鍩庡競"
></ChooseInputWithAreaPicker>
@@ -41,35 +41,42 @@
<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 { 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';
import { useQuery } from '@tanstack/vue-query';
+import { useEventChannel } from 'senin-mini/hooks';
+import { goBack } from '@/utils';
defineOptions({
name: 'InnerPage',
});
-const { searchSettingTypeList: EducationTypeList } = useSearchSettingType({
- searchType: SearchType.Education,
-});
-const { searchSettingTypeList: IdentityTypeList } = useSearchSettingType({
- searchType: SearchType.Identity,
+const { updateUserResume } = useUpdateResume();
+
+const eventChannel = useEventChannel();
+
+const { dictionaryDataList: identityList } = useDictionaryDataSelect({
+ categoryCode: CategoryCode.Identity,
});
-const { findAreaNameFromCode, cityAreaTree } = useAllAreaList();
+const { dictionaryDataList: educationList } = useDictionaryDataSelect({
+ categoryCode: CategoryCode.Education,
+});
+
+const { areaTree } = useAreaTree({
+ maxLayer: AreaType.City,
+});
const form = reactive({
- avatarUrl: [],
+ avatar: [],
name: '',
- phoneNumber: '',
- gender: Gender.Male,
- socialIdentity: '',
- educationalLevel: '',
- areaList: [] as number[],
+ contactPhoneNumber: '',
+ personalIdentityCode: '',
+ educationalBackgroundCode: '',
+ areaList: [] as string[],
});
const {
@@ -78,29 +85,41 @@
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.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.avatar = convertApi2FormUrlOnlyOne(data.avatar);
+ form.name = data.name ?? '';
+ form.contactPhoneNumber = data.contactPhoneNumber ?? '';
+ form.personalIdentityCode = data.personalIdentityCode ?? '';
+ form.educationalBackgroundCode = data.educationalBackgroundCode ?? '';
+ form.areaList = [data.provinceCode, data.cityCode].filter(Boolean);
},
});
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,34 +133,24 @@
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]),
+ 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() {
- Taro.navigateTo({
- url: `${RouterPath.mineCurriculumVitae}`,
- success: function (res) {
- res.eventChannel.emit('updateResume', { content: true });
- },
- });
+ goBack();
+ updateUserResume();
},
});
}
} catch (error) {}
}
</script>
-
-<style lang="scss">
-@import '@/styles/common.scss';
-</style>
--
Gitblit v1.9.1