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 |   91 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 73 insertions(+), 18 deletions(-)

diff --git a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
index cfccdcb..9bf9b84 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
@@ -7,8 +7,8 @@
       <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="socialIdentity">
         <ChooseInputWithPicker
@@ -24,12 +24,12 @@
           :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,12 +40,14 @@
 
 <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 { useSearchSettingType } from '@12333/hooks';
-import { SearchType } from '@12333/constants';
+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',
@@ -58,18 +60,44 @@
   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: '璇烽�夋嫨甯搁┗鍩庡競' }],
@@ -84,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