From 1bbd7061dac79cacf5513234a04cac8ba0be5c6f Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 21 三月 2025 09:15:36 +0800 Subject: [PATCH] feat: 接口对接 --- apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue | 114 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 91 insertions(+), 23 deletions(-) diff --git a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue index 7b1d765..9bf9b84 100644 --- a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue @@ -7,29 +7,29 @@ <nut-form-item label="濮撳悕:" class="bole-form-item" prop="name"> <nut-input v-model.trim="form.name" placeholder="璇疯緭鍏ヤ紒涓氬悕绉�" /> </nut-form-item> - <nut-form-item label="鎵嬫満鍙�:" class="bole-form-item" prop="phone" required> - <nut-input v-model.trim="form.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" type="text" /> + <nut-form-item label="鎵嬫満鍙�:" class="bole-form-item" prop="phoneNumber" required> + <nut-input v-model.trim="form.phoneNumber" placeholder="璇疯緭鍏ユ墜鏈哄彿" type="text" /> </nut-form-item> - <nut-form-item label="韬唤:" class="bole-form-item" prop="gender"> + <nut-form-item label="韬唤:" class="bole-form-item" prop="socialIdentity"> <ChooseInputWithPicker - v-model="form.gender" + v-model="form.socialIdentity" placeholder="璇烽�夋嫨韬唤" - :value-enum="TaskStatusText" + :value-enum="IdentityTypeList" /> </nut-form-item> - <nut-form-item label="瀛﹀巻:" class="bole-form-item" prop="gender"> + <nut-form-item label="瀛﹀巻:" class="bole-form-item" prop="educationalLevel"> <ChooseInputWithPicker - v-model="form.gender" + v-model="form.educationalLevel" placeholder="璇烽�夋嫨瀛﹀巻" - :value-enum="TaskStatusText" + :value-enum="EducationTypeList" /> </nut-form-item> - <nut-form-item label="甯搁┗鍩庡競:" class="bole-form-item" prop="gender"> - <ChooseInputWithPicker - v-model="form.gender" + <nut-form-item label="甯搁┗鍩庡競:" class="bole-form-item" prop="areaList"> + <ChooseInputWithAreaPicker + :columns="cityAreaTree" + v-model="form.areaList" placeholder="璇烽�夋嫨甯搁┗鍩庡競" - :value-enum="TaskStatusText" - /> + ></ChooseInputWithAreaPicker> </nut-form-item> </nut-form> </ContentScrollView> @@ -40,26 +40,67 @@ <script setup lang="ts"> import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; -import { ChooseInputWithPicker } from '@12333/components'; -import { TaskStatusText, TaskStatus } from '@/constants'; -import { convertApi2FormUrlOnlyOne } from '@12333/utils'; -import { useUser } from '@/hooks'; +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 Taro from '@tarojs/taro'; +import { useQuery } from '@tanstack/vue-query'; defineOptions({ name: 'InnerPage', }); -const { userDetail } = useUser(); +const { searchSettingTypeList: EducationTypeList } = useSearchSettingType({ + searchType: SearchType.Education, +}); +const { searchSettingTypeList: IdentityTypeList } = useSearchSettingType({ + searchType: SearchType.Identity, +}); + +const { findAreaNameFromCode, cityAreaTree } = useAllAreaList(); const form = reactive({ - avatarUrl: convertApi2FormUrlOnlyOne(userDetail.value?.originalAvatarUrl), + avatarUrl: [], name: '', - phone: '', - gender: TaskStatus.All, + phoneNumber: '', + gender: Gender.Male, + socialIdentity: '', + educationalLevel: '', + areaList: [] as number[], +}); + +const { + isLoading, + isError, + data: detail, + refetch, +} = useQuery({ + queryKey: ['userResumeServices/getUserResumeBaseInfo'], + queryFn: async () => { + return await userResumeServices.getUserResumeBaseInfo({ + showLoading: false, + }); + }, + placeholderData: () => ({} as API.UserResumeBaseInfoOutput), + 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]; + }, }); const rules = reactive<FormRules>({ - phone: [{ required: true, message: '璇疯緭鍏ユ墜鏈哄彿' }], + phoneNumber: [{ required: true, message: '璇疯緭鍏ユ墜鏈哄彿' }], + socialIdentity: [{ required: true, message: '璇烽�夋嫨韬唤' }], + educationalLevel: [{ required: true, message: '璇烽�夋嫨瀛﹀巻' }], + areaList: [{ required: true, message: '璇烽�夋嫨甯搁┗鍩庡競' }], }); const formRef = ref<any>(null); function handleConfirm() { @@ -71,7 +112,34 @@ }); } -function confirm() {} +async function confirm() { + try { + let params: API.SaveUserResumeBaseInfoInput = { + 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]), + }; + let res = await userResumeServices.saveUserResumeBaseInfo(params); + if (res) { + Message.success('淇濆瓨鎴愬姛', { + onClosed() { + Taro.navigateTo({ + url: `${RouterPath.mineCurriculumVitae}`, + success: function (res) { + res.eventChannel.emit('updateResume', { content: true }); + }, + }); + }, + }); + } + } catch (error) {} +} </script> <style lang="scss"> -- Gitblit v1.9.1