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 |  200 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 179 insertions(+), 21 deletions(-)

diff --git a/src/pages/mine/mine.vue b/src/pages/mine/mine.vue
index b8e2ca1..d62e102 100644
--- a/src/pages/mine/mine.vue
+++ b/src/pages/mine/mine.vue
@@ -1,42 +1,195 @@
 <template>
 	<view class="">
 		<view class="content chuany-flex chuany-align-end chuany-justify-center">
-			<up-avatar src="/static/avatar.jpg" shape="circle" size='80'></up-avatar>
+			<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
+				<!-- <image class="avatar" src="{{avatarUrl}}"></image> -->
+				<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">鏉庝附</text>
-				</view>
-			</fui-list-cell>
-			<fui-list-cell arrow>
-				<view class="fui-list__item">
-					<text>鎵嬫満鍙�</text>
-					<text class="fui-text__explain">13215465785</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> -->
 	</view>
 </template>
 
 <script setup>
-	import {ref} from 'vue';
+	import {
+		apiBaseUrl
+	} from '@/common/setting/constVarsHelper.js';
+	import {
+		onLoad,
+		onShow
+	} from "@dcloudio/uni-app";
+	import {
+		ref,
+		reactive,
+		getCurrentInstance,
+		toRefs,
+		computed
+	} from 'vue';
+	const {
+		$upload,
+		$api,
+		$db,
+		$util
+	} = getCurrentInstance().appContext.config.globalProperties
+	import {
+		useStore
+	} from 'vuex'
+	const store = useStore()
+	onLoad(() => {
+		// getUser()
+	})
+	onShow(() => {
+		// getUser()
+	})
+	// 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 = ()=>{
+	const goApply = () => {
 		uni.navigateTo({
 			url: '/pages/mine/apply'
 		});
+	}
+	const isShow = () => {
+		showEdit.value = true
+	}
+	const onChooseAvatar = (e) => {
+		const {
+			avatarUrl
+		} = e.detail
+		uploadFile(avatarUrl)
+	}
+	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>
 
 <style>
 	.content {
 		height: 300rpx;
-		background-color: #d8d8d8;
+		background: linear-gradient(to bottom, #fbec99, #ffffff);
+	}
+
+	.avatar-wrapper {
+		border-radius: 50%;
+		width: 80px !important;
+		height: 80px;
+		margin: 0;
+		padding: 0;
+		background-color: transparent;
 	}
 
 	.fui-list__item {
@@ -45,6 +198,7 @@
 		display: flex;
 		align-items: center;
 		justify-content: space-between;
+
 	}
 
 	.fui-text__explain {
@@ -52,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