ソースを参照

refactor(mine,personal_message,avatar):头像回显

HMY 1 年間 前
コミット
d3601977fe

+ 1 - 1
api/mine.js

@@ -146,7 +146,7 @@ export function updateUserInfoHeaderFileId(params) {
 		url: preUrl,
 		method: 'post',
 		data: {
-			serviceId: 'ygoa_miniapp_updateUserInfoPhoto',
+			serviceId: 'miniapp_updateUserInfoPhoto',
 			params: {
 				userid: params.userid,
 				headerFileId: params.headerFileId

+ 1 - 0
config.js

@@ -12,4 +12,5 @@ export default {
 	lateTimeRange:['09:00:00', '09:30:00'], //迟到时间范围
 	timeout: 10000,
 	// baseUrl: 'http://118.195.146.34:20076/ynet',
+	defaultAvatarPath:'/static/images/mine/headImg.jpg',//默认头像路径
 }

+ 10 - 4
pages/mine/avatar/avatar.vue

@@ -12,19 +12,20 @@
 
 <script setup>
 	import {onMounted, ref} from 'vue';
-	import {uploadAvatarFile,updateUserInfoHeaderFileId} from '@/api/mine';
+	import {uploadAvatarFile,updateUserInfoHeaderFileId,getUserInfo} from '@/api/mine';
 	import { useUserStore } from '@/store/user.js';
 	import $modal from '@/plugins/modal.js';
 	import $tab from '@/plugins/tab.js'
 	import config from '@/config';
+
 	const userStore=useUserStore();
-	const defaultAvatarPath='/static/images/mine/headImg.jpg'
 	//所选头像信息
 	const selectedImage = ref({});
 
 	onMounted(()=>{
 		selectedImage.value={
-			path:userStore.user.photo==""?defaultAvatarPath:config.baseUrlPre+userStore.user.photo
+			//TODO:默认头像放服务器
+			path:userStore.user.photo==""?config.defaultAvatarPath:config.baseUrlPre+userStore.user.photo
 		}
 	})
 	function chooseImage() {
@@ -57,11 +58,16 @@
 		uploadAvatarFile(data).then(res => {
 			if('success'===res.returnMsg){
 				const params={
-					userid:userStore.useId,
+					userid:userStore.user.useId,
 					headerFileId:res.returnParams
 				}
 				updateUserInfoHeaderFileId(params).then(res=>{
 					if('success'===res.returnMsg){
+						// const _user = userStore.user
+						getUserInfo(userStore.user.useId).then(res=>{
+							userStore.user.photo = res.returnParams[0].photo;
+							uni.setStorageSync('userInfo', userStore.user)
+						})
 						$modal.msgSuccess('提交成功');
 						setTimeout(() => {
 							$tab.navigateBack()

+ 9 - 12
pages/mine/index.vue

@@ -3,15 +3,15 @@
 		<!-- 用户信息部分 -->
 		<uni-card margin="0" spacing="0">
 			<view class="headImg">
-				<image :src="headImg" class="avatar" @click="toEditAvatar"></image>
+				<image :src="userStore.user.photo==''?config.defaultAvatarPath:config.baseUrlPre+userStore.user.photo" class="avatar" @click="toEditAvatar"></image>
 			</view>
 			<view class="user-info">
 				<view class="info-detail">
 					<view class="name">
-						<text>姓名: {{ userInfo.name}}</text>
+						<text>姓名: {{ userStore.user.name}}</text>
 					</view>
 					<view>
-						<text>ID: {{ userInfo.useId }}</text>
+						<text>ID: {{ userStore.user.useId }}</text>
 					</view>
 					<!-- 部门切换框 -->
 					<view class="uni-list-cell">
@@ -25,7 +25,7 @@
 						</view>
 					</view>
 					<view>
-						<text> 职务: {{ userInfo.positionName ||'暂无'}}</text>
+						<text> 职务: {{ userStore.user.positionName ||'暂无'}}</text>
 					</view>
 
 				</view>
@@ -76,19 +76,16 @@
 		onMounted
 	} from 'vue';
 
-	import headImg from "@/static/images/mine/headImg.jpg"
 	import $tab from "@/plugins/tab.js"
 	import { getUnReadMessageNum } from '@/api/message';
 	import { getUnProcessNum } from '@/api/process';
-	import {
-		useUserStore
-	} from '@/store/user.js'
+	import {useUserStore} from '@/store/user.js'
+	import config from '@/config';
 	const userStore = useUserStore()
-	const userInfo = ref({})
+	const headImg=ref()
 	onMounted(() => {
-		userInfo.value = userStore.user
+		//TODO
 		showTarBarBadge();
-		
 	})
 	
 	function showTarBarBadge(){
@@ -134,7 +131,7 @@
 
 	// 查看个人信息的函数
 	function lookMsg() {
-		$tab.navigateTo('/pages/mine/personal_message/personal_message?id=' + userInfo.useId + '&name=' + userInfo.name);
+		$tab.navigateTo('/pages/mine/personal_message/personal_message?id=' + userStore.user.useId + '&name=' + userStore.user.name);
 	};
 
 	// 编辑资料的函数

+ 8 - 2
pages/mine/personal_message/personal_message.vue

@@ -52,11 +52,11 @@
 </template>
 
 <script setup>
-	import { ref } from 'vue';
-	import headImg from "@/static/images/mine/headImg.jpg";
+	import { onMounted, ref } from 'vue';
 	import { onLoad } from '@dcloudio/uni-app'
 	import { getUserInfo } from '@/api/mine.js'
 	import { useUserStore } from '@/store/user.js'
+	import config from '@/config';
 	const userStore = useUserStore()
 	const userInfo = ref({})
 	// 监听页面加载
@@ -66,9 +66,11 @@
 		if (!options.useId) {
 			// 获取传入的标题参数
 			userInfo.value = userStore.user
+			setHeadImg()
 		} else {
 			getUserInfo(options.useId).then((res) => {
 				userInfo.value = res.returnParams[0]
+				setHeadImg()
 			})
 		}
 		const name = userInfo.value.name;
@@ -79,6 +81,10 @@
 			});
 		}
 	})
+	const headImg=ref()
+	function setHeadImg() {
+		headImg.value=userInfo.value.photo==""?config.defaultAvatarPath:config.baseUrlPre+userInfo.value.photo
+	}
 </script>
 
 <style lang="scss" scoped>