hookehuyr

新增个人信息API联调

1 +/*
2 + * @Date: 2022-10-20 13:15:00
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2022-10-21 17:12:41
5 + * @FilePath: /swx/src/api/User/index.js
6 + * @Description: 用户信息
7 + */
8 +import { fn, fetch } from '../fn';
9 +
10 +const Api = {
11 + USER_INFO: '/srv/?a=user_info',
12 + USER_EDIT: '/srv/?a=user_edit',
13 +}
14 +
15 +/**
16 + * @description: 我的信息
17 + * @returns
18 + */
19 +export const infoUserAPI = (params) => fn(fetch.get(Api.USER_INFO, params));
20 +
21 +/**
22 + * @description: 修改我的信息
23 + * @returns
24 + */
25 +export const editUserAPI = (params) => fn(fetch.post(Api.USER_EDIT, params));
1 <!-- 1 <!--
2 * @Date: 2022-09-19 14:11:06 2 * @Date: 2022-09-19 14:11:06
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2022-10-21 13:36:39 4 + * @LastEditTime: 2022-10-21 17:21:34
5 * @FilePath: /swx/src/pages/apxUserInfo/index.vue 5 * @FilePath: /swx/src/pages/apxUserInfo/index.vue
6 * @Description: 补充资料 6 * @Description: 补充资料
7 --> 7 -->
...@@ -17,11 +17,11 @@ ...@@ -17,11 +17,11 @@
17 <label class="h5-label at-input__title at-input__title--required">头像</label> 17 <label class="h5-label at-input__title at-input__title--required">头像</label>
18 <van-uploader v-if="!has_image" @after-read="afterRead"> 18 <van-uploader v-if="!has_image" @after-read="afterRead">
19 <view class=""> 19 <view class="">
20 - <van-icon :name="icon_upload" size="5rem" color="" class="upload-icon" /> 20 + <van-icon :name="icon_upload" size="3rem" color="" class="upload-icon" />
21 </view> 21 </view>
22 </van-uploader> 22 </van-uploader>
23 <view v-else class="upload-box"> 23 <view v-else class="upload-box">
24 - <van-image :round="true" width="5rem" height="5rem" :src="uploader_image" /> 24 + <van-image :round="true" width="3rem" height="3rem" :src="uploader_image" />
25 <van-icon name="clear" size="1.5rem" color="#000" class="upload-close" @tap="removeUploadImage" /> 25 <van-icon name="clear" size="1.5rem" color="#000" class="upload-close" @tap="removeUploadImage" />
26 </view> 26 </view>
27 </view> 27 </view>
...@@ -35,13 +35,14 @@ ...@@ -35,13 +35,14 @@
35 35
36 <script setup> 36 <script setup>
37 import Taro from '@tarojs/taro' 37 import Taro from '@tarojs/taro'
38 -import { ref } from "vue"; 38 +import { ref, onMounted } from "vue";
39 import { AtInput } from 'taro-ui-vue3' 39 import { AtInput } from 'taro-ui-vue3'
40 import "taro-ui-vue3/dist/style/components/input.scss"; 40 import "taro-ui-vue3/dist/style/components/input.scss";
41 import bottomButton from "@/components/bottom-button"; 41 import bottomButton from "@/components/bottom-button";
42 import icon_upload from '@/images/icon/qiandao@2x.png' 42 import icon_upload from '@/images/icon/qiandao@2x.png'
43 import BASE_URL from '@/utils/config'; 43 import BASE_URL from '@/utils/config';
44 import Toast from '@/components/vant-weapp/toast/toast'; 44 import Toast from '@/components/vant-weapp/toast/toast';
45 +import { editUserAPI, infoUserAPI } from '@/api/User/index';
45 46
46 const nickname = ref(''); 47 const nickname = ref('');
47 const has_image = ref(false) 48 const has_image = ref(false)
...@@ -84,7 +85,7 @@ const removeUploadImage = () => { ...@@ -84,7 +85,7 @@ const removeUploadImage = () => {
84 uploader_image.value = '' 85 uploader_image.value = ''
85 } 86 }
86 87
87 -const onSubmit = () => { 88 +const onSubmit = async () => {
88 if (!uploader_image.value) { 89 if (!uploader_image.value) {
89 Toast('头像不能为空'); 90 Toast('头像不能为空');
90 return false; 91 return false;
...@@ -93,7 +94,31 @@ const onSubmit = () => { ...@@ -93,7 +94,31 @@ const onSubmit = () => {
93 Toast('昵称不能为空'); 94 Toast('昵称不能为空');
94 return false; 95 return false;
95 } 96 }
97 + const params = {
98 + nickname: nickname.value,
99 + avatar: uploader_image.value
100 + }
101 + const { code, data } = await editUserAPI(params);
102 + if (code) {
103 + Taro.showToast({
104 + title: '保存成功',
105 + icon: 'success',
106 + duration: 2000
107 + });
108 + Taro.navigateBack()
109 + }
96 } 110 }
111 +
112 +onMounted(async () => {
113 + const { code, data } = await infoUserAPI();
114 + if (code) {
115 + nickname.value = data.user.nickname;
116 + if (data.user.avatar) {
117 + has_image.value = true;
118 + uploader_image.value = data.user.avatar;
119 + }
120 + }
121 +})
97 </script> 122 </script>
98 123
99 <script> 124 <script>
......