From 5c2531930dc7c87d0c39d116c84f87b507394eb9 Mon Sep 17 00:00:00 2001
From: Liuyi <candymxq888@outlook.com>
Date: 星期六, 12 十月 2024 08:57:18 +0800
Subject: [PATCH] 添加附近站点,添加消费记录,重写用户申请位置权限

---
 pages/userInfo/index.vue |  107 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 93 insertions(+), 14 deletions(-)

diff --git a/pages/userInfo/index.vue b/pages/userInfo/index.vue
index faba080..7dce482 100644
--- a/pages/userInfo/index.vue
+++ b/pages/userInfo/index.vue
@@ -1,7 +1,43 @@
 <script setup>
 	import { onMounted, ref } from 'vue'
-
+	import { editUserInfoApi,getUserInfo } from '../../api/index.js'
+	const isEdit = ref(false)
+	const editForm = ref({id:'',userName:'',userPhone:''})
 	const userInfo = ref(JSON.parse(uni.getStorageSync('userInfo')))
+	function edit(){
+		editForm.value.id = userInfo.value.id
+		editForm.value.userName = userInfo.value.userName
+		editForm.value.userPhone = userInfo.value.userPhone
+		isEdit.value = true
+	}
+	function cancel(){
+		isEdit.value = false
+		editForm.vlaue = {id:'',userName:'',userPhone:''}
+	}
+	async function submitEdit(){
+		await editUserInfoApi(editForm.value).then(async(res) =>{
+			
+			if(res.code == 200){
+				uni.showToast({
+					title: '修改成功!',
+					duration: 2000,
+				});
+				await getUserInfo().then((res) =>{
+					userInfo.value.userName = res.data.userInfo.userName
+					userInfo.value.userPhone = res.data.userInfo.userPhone
+					uni.setStorageSync('userInfo',JSON.stringify(userInfo.value))
+				})
+			}else{
+				uni.showToast({
+					title: '请求错误!请重试',
+					duration: 2000,
+					icon:'none'
+				});
+			}
+			isEdit.value = false
+			editForm.vlaue = {id:'',userName:'',userPhone:''}
+		})
+	}
 </script>
 <template>
 	<view class="container">
@@ -9,13 +45,16 @@
 		<view class="content">
 			<view class="info-box">
 				<view class="info-up">
-					<view>
+					<view class="info-img">
 						<text>头像</text>
 						<image src='../../static/logo.png' alt=''></image>
 					</view>
-					<view>
+					<view class="info-name">
 						<text>用户名称</text>
-						<text class="info-value">{{userInfo.userName}}</text>
+						<view>
+							<input v-if="isEdit" v-model="editForm.userName" placeholder="请输入新用户名"/>
+							<text v-else class="info-value">{{userInfo.userName}}</text>
+						</view>
 					</view>
 				</view>
 				<view class="info-list">
@@ -26,13 +65,16 @@
 					<view class="item">
 						<text>联系方式</text>
 						<view>
-							<text>{{userInfo.userPhone}}</text>
-							<image class="edit"src="../../static/images//other/more.png" alt=''></image>
+							<input v-if="isEdit" v-model="editForm.userPhone" placeholder="请输入新联系方式"/>
+							<text v-else>{{userInfo.userPhone}}</text>
+							<!-- <image class="edit"src="../../static/images//other/more.png" alt=''></image> -->
 						</view>
 					</view>
 				</view>
 			</view>
-			<view class="subBtn">确认修改</view>
+			<view v-if="!isEdit" @click="edit()" class="subBtn">修改</view>
+			<view v-if="isEdit" @click="cancel()" class="btn btn1">取消</view>
+			<view v-if="isEdit" @click="submitEdit()" class="btn btn2">确认修改</view>
 		</view>
 	</view>
 </template>
@@ -47,17 +89,29 @@
 			background:linear-gradient(to top,#FFFFFF,#E8EFFF);  
 			padding-top:36rpx;
 			position: relative;
+			box-sizing: border-box;
 			.info-value{
 				font-size:32rpx;
 				color: #777777;
 			}
-			.edit{
-				margin-left:15rpx;
-				width: 20rpx;
-				height:28rpx;
-			}
+			// .edit{
+			// 	margin-left:15rpx;
+			// 	width: 20rpx;
+			// 	height:28rpx;
+			// }
 			.info-box{
 				width: 100%;
+				//该页面公用input样式
+				input{
+					border-radius: 10rpx;
+					border:1px solid rgba(101, 156, 244, 0.2);
+					padding:5rpx 10rpx;
+					box-shadow: 0 0 12rpx 1rpx rgba(101, 156, 244, 0.2);
+					color: #777777;
+					height:50rpx;
+					line-height:50rpx;
+					width:300rpx;
+				}
 				.info-up{
 					height:308rpx;
 					width:100%;
@@ -70,7 +124,7 @@
 					box-sizing: border-box;
 					font-size: 32rpx;
 					color: #343434;
-					view:first-child{
+					.info-img{
 						width:100%;
 						display: flex;
 						justify-content:space-between;
@@ -81,7 +135,7 @@
 							border-radius: 50rpx;
 						}
 					}
-					view:last-child{
+					.info-name{
 						width:100%;
 						display: flex;
 						justify-content:space-between;
@@ -135,6 +189,31 @@
 				bottom:100rpx;
 				left:32rpx;
 			}
+			.btn{
+					width: 200rpx;
+					height: 70rpx;
+					border-radius: 32rpx;
+					text-align: center;
+					line-height: 70rpx;
+					letter-spacing:3rpx;
+					font-weight: 300;
+					font-size: 36rpx;
+					position: absolute;
+					bottom:100rpx;
+			}
+			.btn1{
+				color:#5EA1FA;
+				background:#FFFFFF;
+				position: absolute;
+				left:130rpx;
+				border:2rpx solid #5EA1FA;
+			}
+			.btn2{
+				color: #FFFFFF;
+				background:#5EA1FA;
+				position: absolute;
+				right:130rpx;
+			}
 		}
 	}
 </style>

--
Gitblit v1.9.3