From c2463c02a17f92df55ec77ed2da3fb724290c072 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 17:34:30 +0800
Subject: [PATCH] fix: bug
---
apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue | 137 +++++++++++++++++++++++++++++++++++----------
1 files changed, 107 insertions(+), 30 deletions(-)
diff --git a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
index 7b1d765..d745d5c 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
@@ -1,35 +1,35 @@
<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="phone" required>
- <nut-input v-model.trim="form.phone" 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="gender">
+ <nut-form-item label="韬唤:" class="bole-form-item" prop="personalIdentityCode">
<ChooseInputWithPicker
- v-model="form.gender"
+ v-model="form.personalIdentityCode"
placeholder="璇烽�夋嫨韬唤"
- :value-enum="TaskStatusText"
+ :value-enum="identityList"
/>
</nut-form-item>
- <nut-form-item label="瀛﹀巻:" class="bole-form-item" prop="gender">
+ <nut-form-item label="瀛﹀巻:" class="bole-form-item" prop="educationalBackgroundCode">
<ChooseInputWithPicker
- v-model="form.gender"
+ v-model="form.educationalBackgroundCode"
placeholder="璇烽�夋嫨瀛﹀巻"
- :value-enum="TaskStatusText"
+ :value-enum="educationList"
/>
</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="areaTree"
+ v-model="form.areaList"
placeholder="璇烽�夋嫨甯搁┗鍩庡競"
- :value-enum="TaskStatusText"
- />
+ ></ChooseInputWithAreaPicker>
</nut-form-item>
</nut-form>
</ContentScrollView>
@@ -40,26 +40,86 @@
<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 { convertApi2FormUrlOnlyOne, Message, setOSSLink } from '@12333/utils';
+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 { userDetail } = useUser();
+const { updateUserResume } = useUpdateResume();
+
+const eventChannel = useEventChannel();
+
+const { dictionaryDataList: identityList } = useDictionaryDataSelect({
+ categoryCode: CategoryCode.Identity,
+});
+
+const { dictionaryDataList: educationList } = useDictionaryDataSelect({
+ categoryCode: CategoryCode.Education,
+});
+
+const { areaTree } = useAreaTree({
+ maxLayer: AreaType.City,
+});
const form = reactive({
- avatarUrl: convertApi2FormUrlOnlyOne(userDetail.value?.originalAvatarUrl),
+ avatar: [],
name: '',
- phone: '',
- gender: TaskStatus.All,
+ contactPhoneNumber: '',
+ personalIdentityCode: '',
+ educationalBackgroundCode: '',
+ areaList: [] as string[],
+});
+
+const {
+ isLoading,
+ isError,
+ data: detail,
+ refetch,
+} = useQuery({
+ queryKey: ['userResumeServices/getUserResumePersonal'],
+ queryFn: async () => {
+ return await userResumeServices.getUserResumePersonal(
+ {},
+ {
+ showLoading: false,
+ }
+ );
+ },
+ placeholderData: () => ({} as API.GetUserResumePersonalQueryResult),
+ onSuccess(data) {
+ 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>({
- phone: [{ 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() {
@@ -71,9 +131,26 @@
});
}
-function confirm() {}
+async function confirm() {
+ try {
+ let params: API.SaveUserResumePersonalCommand = {
+ name: form.name,
+ 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.saveUserResumePersonal(params);
+ if (res) {
+ Message.success('淇濆瓨鎴愬姛', {
+ onClosed() {
+ goBack();
+ updateUserResume();
+ },
+ });
+ }
+ } catch (error) {}
+}
</script>
-
-<style lang="scss">
-@import '@/styles/common.scss';
-</style>
--
Gitblit v1.9.1