From 2d43a1df3f5ba42710e6d21c27d1e13bdb8dfd56 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期一, 24 三月 2025 09:23:08 +0800
Subject: [PATCH] -

---
 src/pages/mine/mine.vue |  172 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 136 insertions(+), 36 deletions(-)

diff --git a/src/pages/mine/mine.vue b/src/pages/mine/mine.vue
index 2489f02..d62e102 100644
--- a/src/pages/mine/mine.vue
+++ b/src/pages/mine/mine.vue
@@ -3,28 +3,35 @@
 		<view class="content chuany-flex chuany-align-end chuany-justify-center">
 			<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
 				<!-- <image class="avatar" src="{{avatarUrl}}"></image> -->
-				<up-avatar :src="avatarUrlImg" shape="circle" size='80'></up-avatar>
+				<up-avatar :src="userInfo.avatar" shape="circle" size='80'></up-avatar>
 			</button>
 
 		</view>
-		<fui-list>
-			<fui-list-cell arrow>
-				<view class="fui-list__item">
-					<text>鏄电О</text>
-					<text class="fui-text__explain">{{userInfo.nickname}}</text>
-					<!-- <input type="nickname" class="fui-text__explain weui-input" placeholder="璇疯緭鍏ユ樀绉�" /> -->
-				</view>
-			</fui-list-cell>
-			<fui-list-cell arrow>
-				<view class="fui-list__item">
-					<text>鎵嬫満鍙�</text>
-					<text class="fui-text__explain">{{userInfo.phone}}</text>
-				</view>
-			</fui-list-cell>
-			<fui-list-cell arrow @click="goApply">
-				<text>鐢宠鎺ュ崟</text>
-			</fui-list-cell>
-		</fui-list>
+		<up-cell title="鏄电О" :border="false">
+			<template #value>
+				<up-form labelPosition="left" :model="userInfo" ref="formRef" labelWidth='90' v-if="showEdit">
+					<up-form-item prop="enterpriseInfo.businessLicense" ref="item1">
+						<up-input v-model="userInfo.nickname" type="nickname" @blur="blurNickName" border="none"
+							placeholder="璇疯緭鍏ユ樀绉�" :readonly='!showEdit'>
+							<template #suffix>
+								<up-button @tap="saveUserNikename" text="淇濆瓨" type="success" form-type="submit"
+									size="mini"></up-button>
+							</template>
+							<!-- <template #suffix v-else>
+								<up-icon name="edit-pen" @click='isShow'></up-icon>
+							</template> -->
+						</up-input>
+
+					</up-form-item>
+				</up-form>
+				<text v-else>{{userInfo.nickname}}</text>
+			</template>
+			<template #right-icon v-if='!showEdit'>
+				<up-icon name="edit-pen" @click='isShow'></up-icon>
+			</template>
+		</up-cell>
+		<up-cell title="鎵嬫満鍙�" :value="userInfo.phone" :border="false"></up-cell>
+		<!-- <up-cell @click="goApply" title="鐢宠鎺ュ崟" isLink :border="false"></up-cell> -->
 		<!-- <view class="tabbtns">
 			<up-button color='#fece01' class="text-69" text="淇濆瓨" @click=''></up-button>
 		</view> -->
@@ -33,6 +40,9 @@
 
 <script setup>
 	import {
+		apiBaseUrl
+	} from '@/common/setting/constVarsHelper.js';
+	import {
 		onLoad,
 		onShow
 	} from "@dcloudio/uni-app";
@@ -40,44 +50,130 @@
 		ref,
 		reactive,
 		getCurrentInstance,
-		toRefs
+		toRefs,
+		computed
 	} from 'vue';
 	const {
 		$upload,
 		$api,
-		$db
+		$db,
+		$util
 	} = getCurrentInstance().appContext.config.globalProperties
+	import {
+		useStore
+	} from 'vuex'
+	const store = useStore()
 	onLoad(() => {
 		// getUser()
 	})
-	onShow(()=>{
-		getUser()
+	onShow(() => {
+		// getUser()
 	})
-	let avatarUrlImg = ref('')
-	let number1 = ref(0)
-	let userInfo = reactive({
-		nickname: '',
-		phone: '',
-		userWorker: false
-	})
+	// let userInfo = reactive({
+	// 	nickname: '',
+	// 	phone: '',
+	// 	userWorker: false
+	// })
+	let userInfo = computed(() => store.getters.userInfo || {})
+	let showEdit = ref(false)
 	// let src = "http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg"
 	const goApply = () => {
 		uni.navigateTo({
 			url: '/pages/mine/apply'
 		});
 	}
+	const isShow = () => {
+		showEdit.value = true
+	}
 	const onChooseAvatar = (e) => {
 		const {
 			avatarUrl
 		} = e.detail
-		avatarUrlImg.value = avatarUrl
+		uploadFile(avatarUrl)
 	}
-	const getUser = (e) => {
-		$api.getUser().then(res => {
-			userInfo.nickname = res.data.nickname
-			userInfo.phone = res.data.phone
-			$db.set('userInfo', JSON.stringify(res.data))
+	const uploadFile = (val) => {
+		uni.showLoading();
+		let userToken = $db.get("userToken");
+		uni.uploadFile({
+			url: apiBaseUrl + '/api/UpFile/UpdateFile',
+			filePath: val,
+			fileType: 'image',
+			name: 'file',
+			header: {
+				'Accept': 'application/json',
+				'Content-Type': 'multipart/form-data',
+				'Authorization': 'Bearer ' + userToken
+			},
+			formData: {
+				'method': 'images.upload',
+				'upfile': val
+			},
+			success: (uploadFileRes) => {
+
+				let res = JSON.parse(uploadFileRes.data);
+				if (res.code == 1) {
+					let obj = {
+						Avatar: res.data
+					}
+					$api.saveUser(obj).then(red => {
+						if (red.code == 1) {
+							$util.showToast({
+								title: "澶村儚淇濆瓨鎴愬姛锛�",
+								icon: "success"
+							})
+							store.dispatch('getUserInfo')
+						} else {
+							this.$util.showToast({
+								title: red.error
+							})
+						}
+					})
+				} else {
+					this.$util.showToast({
+						title: res.error
+					})
+				}
+
+			},
+			fail: (error) => {
+				console.log("浜や簰澶辫触");
+				console.log(error);
+				if (error && error.response) {
+					$upload.showError(error.response);
+				}
+			},
+			complete: () => {
+				uni.hideLoading();
+			}
+		});
+	}
+	const saveUserNikename = (val) => {
+		if (!userInfo.nickname) {
+			$util.showToast({
+				title: "璇疯緭鍏ユ樀绉帮紒",
+				icon: "success"
+			})
+			return
+		}
+		$api.saveUser({
+			Nickname: userInfo.nickname
+		}).then(res => {
+			if (res.code == 1) {
+				$util.showToast({
+					title: "鏄电О淇濆瓨鎴愬姛锛�",
+					icon: "success"
+				})
+				store.commit('setUserInfo', userInfo.value)
+				showEdit.value = false
+			} else {
+				$util.showToast({
+					title: res.error
+				})
+			}
 		})
+	}
+	const blurNickName = (val) => {
+		userInfo.nickname = val
 	}
 </script>
 
@@ -110,4 +206,8 @@
 		color: #7F7F7F;
 		flex-shrink: 0;
 	}
+
+	.u-form-item__body {
+		padding: 0 !important;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.1