描述:修改个人信息

This commit is contained in:
SelfRidicule 2024-03-13 15:14:37 +08:00
parent 453a519a09
commit 1c06538e9d
8 changed files with 375 additions and 398 deletions

View File

@ -0,0 +1,13 @@
import {
request
} from '../selfRequest';
// 用户信息
export function userProfile(id) {
return request({
url: '/user/profile?id=' + id,
method: "get",
});
}

View File

@ -127,7 +127,7 @@ App({
}); });
var that = this var that = this
wx.uploadFile({ wx.uploadFile({
url: that.DOMAIN_NAME + '/dfs/upload', url: that.DOMAIN_NAME + '/api/dfs/upload',
header: { header: {
'Authorization': 'Bearer ' + that.Getopenid() 'Authorization': 'Bearer ' + that.Getopenid()
}, },

View File

@ -1,10 +1,17 @@
let app = getApp() let app = getApp()
import {
userProfile
} from "../../api/user/user.js"
Page({ Page({
/** /**
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
DOMAIN_NAME: app.IMG_NAME,
userDetail: {},
// tabBar param // tabBar param
tabBarParam: { tabBarParam: {
selected: 2, selected: 2,
@ -33,58 +40,43 @@ Page({
"text": "我的" "text": "我的"
}, },
], ],
DOMAIN_NAME: app.IMG_NAME, customerPages: [{
customerPages: [ name: "我的活动",
[{ url: "/pages/myActivities/myActivities",
listIcon: "icontubiao-1", },
zh: "我的活动", {
url: "/pages/myActivities/myActivities", name: "业务申请",
borderRadius: '20rpx 20rpx 0 0' url: "/pages/my/serviceApply/serviceApply"
}, },
{ {
listIcon: "iconqiyexinxi", name: "园区建议",
zh: "业务申请", url: "/pages/complaint/complaint",
url: "../my/serviceApply/serviceApply" },
}, {
{ name: "账号设置",
listIcon: "iconqiyexinxi", url: "/pages/my/accountSetting/accountSetting",
zh: "园区建议", },
url: "/pages/complaint/complaint", {
borderRadius: '0 0 20rpx 20rpx', name: "我的服务",
marginbottom: true url: "/pages/enterpriseServices/myServiceList/myServiceList"
}, },
{ {
listIcon: "iconzhanghaoshezhi", name: "我的报修",
zh: "账号设置", url: "/pages/parkRepair/parkRepair",
url: "/pages/my/accountSetting/accountSetting", }
borderRadius: '20rpx 20rpx 0 0'
},
{
listIcon: "iconfuwu",
zh: "我的服务",
url: "/pages/enterpriseServices/myServiceList/myServiceList"
},
{
listIcon: "iconguzhangbaoxiu",
zh: "我的报修",
url: "/pages/parkRepair/parkRepair",
borderRadius: '0 0 20rpx 20rpx'
}
]
], ],
memberInfo: {}
}, },
// 切换tabbar // 切换tabbar
switchTab(e) { switchTab(e) {
const data = e.currentTarget.dataset const data = e.currentTarget.dataset
console.log('switchTab', data) console.log('switchTab', data)
const url = data.path const url = data.path
if(url == 'pages/meeting/accessControl/accessControl'){ if (url == 'pages/meeting/accessControl/accessControl') {
wx.navigateTo({ wx.navigateTo({
url: '/' + url url: '/' + url
}) })
}else{ } else {
wx.switchTab({ wx.switchTab({
url: '/' + url url: '/' + url
}) })
@ -94,29 +86,27 @@ Page({
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad(options) {}, onLoad(options) {
},
onShow() { onShow() {
let that = this let _this = this
if (wx.getStorageSync('token')) { let userId = wx.getStorageSync('userId');
app.AjaxRequest('get', { if (userId) {
'content-type': 'application/json', userProfile(userId).then(res => {
'Authorization': 'Bearer ' + app.Getopenid() console.log('userProfile', res);
}, '/user/profile', {}, function (res) { _this.setData({
that.setData({ userDetail: res.data
memberInfo: res.data
}) })
}) })
} else { } else {
app.getlogin() app.getlogin()
} }
}, },
navDetail(e) {
wx.navigateTo({
url: e.currentTarget.dataset.url,
})
},
navigateTo(e) { navigateTo(e) {
if (wx.getStorageSync('token')) { if (wx.getStorageSync('userId')) {
if (e.currentTarget.dataset.url == '/pages/parkRepair/parkRepair') { if (e.currentTarget.dataset.url == '/pages/parkRepair/parkRepair') {
wx.switchTab({ wx.switchTab({
url: e.currentTarget.dataset.url, url: e.currentTarget.dataset.url,
@ -130,15 +120,17 @@ Page({
app.getlogin() app.getlogin()
} }
}, },
navpersonalData() { navpersonalData() {
if (wx.getStorageSync('token')) { if (wx.getStorageSync('userId')) {
wx.navigateTo({ wx.navigateTo({
url: '../my/personalData/personalData', url: '/pages/my/personalData/personalData',
}) })
} else { } else {
wx.navigateTo({ wx.navigateTo({
url: '/pages/login/login', url: '/pages/login/login',
}) })
} }
} },
}) })

View File

@ -1,3 +1,6 @@
{ {
"navigationBarTitleText": "我的" "navigationBarTitleText": "我的",
"usingComponents": {
"van-icon": "@vant/weapp/icon/index"
}
} }

View File

@ -1,31 +1,24 @@
<view class="page"> <view class="containerView public">
<view bindtap="navpersonalData" style="padding: 24rpx;background:white;display: flex;margin-top:20rpx;border-radius: 20rpx;padding-right: 0;">
<view style="width:164rpx;height:164rpx;border-radius:50%;overflow:hidden;"> <!-- 个人 -->
<image src="{{memberInfo.avatar? memberInfo.avatar:'/images/user-unlogin.jpg'}}" mode="widthFix" style="width: 100%;"></image> <view class="itemView" bindtap="navpersonalData">
</view> <view class="itemData">
<view style="font-size:12pt;line-height:164rpx;width: 66%;text-indent: 40rpx;">{{memberInfo.nickname? memberInfo.nickname:'登录'}}</view> <image class="avatarImg" src="{{userDetail.avatar? DOMAIN_NAME + userDetail.avatar : DOMAIN_NAME + '/profile/static/user/headImg.png'}}" mode="aspectFill"></image>
<view class="iconBox"> <view class="label">{{userDetail.username? userDetail.username:'登录'}}</view>
<text class="iconfont iconyou" style="color:#939393;line-height:164rpx;"></text> <view class="propOpen"></view>
<van-icon name="arrow" size="40rpx" color="gray" />
</view> </view>
</view> </view>
<view class="my-page"> <!-- 菜单 -->
<view class="itemView">
<view class="my-mainfun-moudel1"> <view class="itemData" wx:for="{{customerPages}}" wx:key="*this" bindtap='navigateTo' data-url="{{item.url}}">
<block wx:for="{{customerPages[0]}}" wx:for-item="list" wx:key="i"> <view class="label">{{item.name}}</view>
<view class="main-item2" bindtap='navigateTo' data-url="{{list.url}}" style="{{list.marginbottom?'margin-bottom:25rpx;':''}};{{list.bordernone?'border-bottom:none':''}};border-radius:{{list.borderRadius}}" hidden='{{list.hide}}'> <view class="propOpen"></view>
<view class="main-item-text1"> <van-icon name="arrow" size="40rpx" color="gray" />
<view class="text-titl1">{{list.zh}}</view>
</view>
<view class="iconBox">
<text class="iconfont iconyou" style="color:#939393"></text>
</view>
</view>
</block>
</view> </view>
</view> </view>
<!-- tabBar --> <!-- tabBar -->
<view class="tab-bar"> <view class="tab-bar">
<view wx:for="{{tabBarList}}" wx:key="index" class="tab-bar-item {{item.bulge?'bulge':''}}" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab"> <view wx:for="{{tabBarList}}" wx:key="index" class="tab-bar-item {{item.bulge?'bulge':''}}" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab">

View File

@ -1,60 +1,40 @@
@import "../../tabBar.wxss"; @import "../../tabBar.wxss";
.page { .containerView.public {
overflow: auto; background: #f1f1f1;
height: 100%; padding: 0 20rpx;
padding: 0 24rpx;
} }
.iconsize{ .itemView {
font-size: 20pt; margin-top: 20rpx;
border-radius: 20rpx;
background: white;
} }
.topBox { .itemView .itemData {
display: flex; display: flex;
justify-content: flex-start;
align-items: center;
padding: 28rpx 24rpx;
border-bottom: 1px solid rgb(126, 126, 126, 0.2);
} }
.topBox>view { .itemView .itemData:last-of-type {
flex: 1; border-bottom: none;
text-align: center;
color: black;
border-right: 1rpx solid #cccccc;
} }
.topBox>view:last-child {
border: none; .itemView .avatarImg {
width: 120rpx;
height: 120rpx;
border-radius: 120rpx;
margin-right: 30rpx;
} }
.btext { .itemView .label {
font-size: 20pt; font-size: 30rpx;
font-weight: 550;
} }
.btext1 { .itemView .propOpen {
font-size: 10pt; flex: 1;
margin-top: 10rpx;
color: #4C4C4C;
}
.my-mainfun-moudel1 {
width: 100%;
margin-top: 20rpx;
}
.main-item2 {
font-size: 10pt;
padding: 4% 0;
padding-left: 24rpx;
border-bottom: 1rpx solid #F1F1F1;
display: flex;
background: white;
}
.iconBox {
text-align: center;
width: 10%;
}
.main-item-text1 {
width: 90%;
} }

View File

@ -1,222 +1,221 @@
let app = getApp() let app = getApp()
import {
userProfile
} from "../../../api/user/user.js"
Page({ Page({
/** data: {
* 页面的初始数据 sex: ['男', '女'],
*/ sexindex: 0,
data: { showDialog: false,
sex: ['男', '女'], ifName: true,
sexindex: 0, DOMAIN_NAME: app.IMG_NAME,
showDialog: false, park: [],
ifName: true, parkindex: 0
DOMAIN_NAME: '', },
park: [],
parkindex: 0
},
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onShow(e) { onShow(e) {
var that = this var that = this
that.setData({
DOMAIN_NAME: app.img_Name
})
app.AjaxRequest('get', {
'content-type': 'application/json'
}, '/park/list', {}, function (res) {
if (res.code == 0) {
res.data.forEach(item => {
let park = that.data.park
park.push(item.parkName)
that.setData({
park
})
})
that.setData({ that.setData({
parkList: res.data DOMAIN_NAME: app.img_Name
}) })
that.parkIdtype(res.data, wx.getStorageSync('parkId')) app.AjaxRequest('get', {
} 'content-type': 'application/json'
}) }, '/park/list', {}, function (res) {
that.getList() if (res.code == 0) {
}, res.data.forEach(item => {
let park = that.data.park
park.push(item.parkName)
that.setData({
park
})
})
that.setData({
parkList: res.data
})
that.parkIdtype(res.data, wx.getStorageSync('parkId'))
}
})
that.getList()
},
parkIdtype(list, id) { parkIdtype(list, id) {
list.forEach((item, index) => { list.forEach((item, index) => {
if (item.id == id) { if (item.id == id) {
this.setData({
parkindex: index
})
}
})
},
parkChange(e) {
var that = this
that.data.parkList.forEach(item => {
if (that.data.park[e.detail.value] == item.parkName) {
wx.request({
url: app.DOMAIN_NAME + '/user/profile/update',
data: {
parkId: item.id
},
method: 'POST',
header: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
},
success(ret) {
if (ret.data.code == 402 || ret.data.code == 401) {
wx.hideLoading()
wx.showModal({
confirmText: '确认',
content: '身份已过期,需重登录',
success(res) {
wx.removeStorageSync('MemberInfo')
wx.removeStorageSync('token')
if (res.confirm) {
wx.reLaunch({
url: '/pages/login/login'
})
}
}
})
} else if (ret.data.code != 0) {
wx.hideLoading()
wx.showModal({
confirmText: '好的',
content: ret.data.msg || '服务器开小差去了,请重试',
showCancel: false
})
} else if (ret.data.code == 0) {
that.setData({
parkindex: e.detail.value
})
wx.setStorageSync('parkId', item.id)
wx.setStorageSync('parkName', item.parkName)
wx.navigateBack()
wx.hideLoading()
}
}
})
}
})
},
cancel() {
this.setData({ this.setData({
parkindex: index ifName: true
}) })
} },
})
},
parkChange(e) { change(e) {
var that = this this.setData({
that.data.parkList.forEach(item => { name: e.currentTarget.dataset.name,
if (that.data.park[e.detail.value] == item.parkName) { ifName: false
wx.request({ })
url: app.DOMAIN_NAME + '/user/profile/update', },
data: {
parkId: item.id setValue(e) {
}, if (this.data.name == '姓名') {
method: 'POST', this.setData({
header: { nickname: e.detail.value
})
} else {
this.setData({
post: e.detail.value
})
}
},
confirm() {
let that = this
if (this.data.name == '姓名') {
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/user/profile/update', {
username: that.data.nickname
}, function (ret) {
that.setData({
ifName: true
})
that.getList()
})
} else {
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/user/profile/update', {
post: that.data.post
}, function (ret) {
that.setData({
ifName: true
})
that.getList()
})
}
},
// 性别选择
sexChange: function (e) {
let that = this
that.setData({
sexindex: e.detail.value
})
app.AjaxRequest('POST', {
'content-type': 'application/json', 'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid() 'Authorization': 'Bearer ' + app.Getopenid()
}, }, '/user/profile/update', {
success(ret) { gender: JSON.parse(e.detail.value)
if (ret.data.code == 402 || ret.data.code == 401) { }, function (ret) {
wx.hideLoading() that.getList()
wx.showModal({ })
confirmText: '确认', },
content: '身份已过期,需重登录', getList() {
success(res) { let that = this
wx.removeStorageSync('MemberInfo') userProfile(wx.getStorageSync('userId')).then(res => {
wx.removeStorageSync('token') that.setData({
if (res.confirm) { memberInfo: res.data,
wx.reLaunch({ sexindex: res.data.sex
url: '/pages/login/login' })
}) })
} },
} chooseimage: function () {
}) var that = this
} else if (ret.data.code != 0) { let imgUrl = that.data.imgUrl
wx.hideLoading() wx.chooseImage({
wx.showModal({ count: 1, // 默认9
confirmText: '好的', sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
content: ret.data.msg || '服务器开小差去了,请重试', sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
showCancel: false success: function (res) {
}) console.log(res.tempFilePaths[0])
} else if (ret.data.code == 0) { wx.navigateTo({
that.setData({ url: '../cropper/cropper?img=' + res.tempFilePaths[0],
parkindex: e.detail.value })
}) }
wx.setStorageSync('parkId', item.id) })
wx.setStorageSync('parkName', item.parkName) },
wx.navigateBack() navCropper() {
wx.hideLoading() this.chooseimage()
},
exitaccount() {
wx.showModal({
title: '提示',
content: '确定退出账号吗',
success(res) {
if (res.confirm) {
wx.clearStorageSync()
wx.reLaunch({
url: '/pages/login/login',
})
} else if (res.cancel) {
console.log('用户点击取消')
}
} }
}
}) })
}
})
},
cancel() {
this.setData({
ifName: true
})
},
change(e) {
this.setData({
name: e.currentTarget.dataset.name,
ifName: false
})
},
setValue(e) {
if (this.data.name == '姓名') {
this.setData({
nickname: e.detail.value
})
} else {
this.setData({
post: e.detail.value
})
} }
},
confirm() {
let that = this
if (this.data.name == '姓名') {
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/user/profile/update', {
nickname: that.data.nickname
}, function (ret) {
that.setData({
ifName: true
})
that.getList()
})
} else {
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/user/profile/update', {
post: that.data.post
}, function (ret) {
that.setData({
ifName: true
})
that.getList()
})
}
},
// 性别选择
sexChange: function (e) {
let that = this
that.setData({
sexindex: e.detail.value
})
app.AjaxRequest('POST', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/user/profile/update', {
gender: JSON.parse(e.detail.value)
}, function (ret) {
that.getList()
})
},
getList() {
let that = this
app.AjaxRequest('get', {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.Getopenid()
}, '/user/profile', {}, function (res) {
that.setData({
memberInfo: res.data,
sexindex: res.data.sex
})
})
},
chooseimage: function () {
var that = this
let imgUrl = that.data.imgUrl
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
console.log(res.tempFilePaths[0])
wx.navigateTo({
url: '../cropper/cropper?img=' + res.tempFilePaths[0],
})
}
})
},
navCropper() {
this.chooseimage()
},
exitaccount() {
wx.showModal({
title: '提示',
content: '确定退出账号吗',
success(res) {
if (res.confirm) {
wx.clearStorageSync()
wx.reLaunch({
url: '/pages/login/login',
})
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
}) })

View File

@ -1,74 +1,71 @@
<view class="page"> <view class="page">
<view class='toast-box' hidden='{{ifName}}'> <view class='toast-box' hidden='{{ifName}}'>
<view class='toastbg'></view> <view class='toastbg'></view>
<view class='showToast'> <view class='showToast'>
<view class='toast-title'> <view class='toast-title'>
<text>修改{{name}}</text> <text>修改{{name}}</text>
</view> </view>
<view class='toast-main'> <view class='toast-main'>
<view class='toast-input'> <view class='toast-input'>
<input placeholder='请输入{{name}}' value="{{name=='姓名'? memberInfo.nickname:memberInfo.post}}" <input placeholder='请输入{{name}}' value="{{name=='姓名'? memberInfo.nickname:memberInfo.post}}" bindinput='setValue' data-name='stuEidtName'></input>
bindinput='setValue' data-name='stuEidtName'></input> </view>
</view>
<view class='toast-button'>
<view class='button1'>
<button catchtap='cancel'>取消</button>
</view>
<view class='button2'>
<button catchtap='confirm'>确定</button>
</view>
</view>
</view> </view>
</view> </view>
<view class='toast-button'> <view style="padding: 0 24rpx;background:white;border-radius: 20rpx;margin-top: 24rpx">
<view class='button1'> <view style="padding:4% 0;background:white;display:flex;border-bottom:1rpx solid #E5E5E5;" bindtap="navCropper">
<button catchtap='cancel'>取消</button> <view style="font-size:28rpx;width:24%;line-height: 100rpx;">头像</view>
<view style="font-size:28rpx;width:70%;text-align:right">
<image src="{{memberInfo.avatar? DOMAIN_NAME + memberInfo.avatar : DOMAIN_NAME + '/profile/static/user/headImg.png'}}" mode="widthFix" style="width:100rpx;height:100rpx;border-radius:10rpx;">
</image>
</view>
<view style="width:6%;line-height: 100rpx;text-align:right">
<text class="iconfont iconyou" style="font-size:32rpx;color:#B2B2B2"></text>
</view>
</view> </view>
<view class='button2'> <view class="listBox" bindtap='change' data-name="姓名">
<button catchtap='confirm'>确定</button> <view style="width:24%;">姓名</view>
<view style="width:70%;text-align:right;color:#888888">{{memberInfo.username}}</view>
<view style="width:6%;text-align:right">
<text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text>
</view>
</view> </view>
</view> <view class="listBox">
</view> <view style="width:24%;">性别</view>
</view> <picker bindchange="sexChange" value="{{sexindex}}" range="{{sex}}" style="width:70%;text-align:right;color:#888888">
<view style="padding: 0 24rpx;background:white;border-radius: 20rpx;margin-top: 24rpx"> <view>
<view style="padding:4% 0;background:white;display:flex;border-bottom:1rpx solid #E5E5E5;" bindtap="navCropper"> {{sex[sexindex]}}
<view style="font-size:28rpx;width:24%;line-height: 100rpx;">头像</view> </view>
<view style="font-size:28rpx;width:70%;text-align:right"> </picker>
<image src="{{memberInfo.avatar? memberInfo.avatar:'/images/t.jpg'}}" mode="widthFix" <view style="width:6%;text-align:right">
style="width:100rpx;height:100rpx;border-radius:10rpx;"> <text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text>
</image> </view>
</view>
<view style="width:6%;line-height: 100rpx;text-align:right">
<text class="iconfont iconyou" style="font-size:32rpx;color:#B2B2B2"></text>
</view>
</view>
<view class="listBox" bindtap='change' data-name="姓名">
<view style="width:24%;">姓名</view>
<view style="width:70%;text-align:right;color:#888888">{{memberInfo.nickname}}</view>
<view style="width:6%;text-align:right">
<text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text>
</view>
</view>
<view class="listBox">
<view style="width:24%;">性别</view>
<picker bindchange="sexChange" value="{{sexindex}}" range="{{sex}}"
style="width:70%;text-align:right;color:#888888">
<view>
{{sex[sexindex]}}
</view> </view>
</picker> <!-- <view class="listBox" bindtap='change' data-name="职务">
<view style="width:6%;text-align:right">
<text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text>
</view>
</view>
<!-- <view class="listBox" bindtap='change' data-name="职务">
<view style="width:24%;">职务</view> <view style="width:24%;">职务</view>
<view style="width:70%;text-align:right;color:#888888">{{memberInfo.post? memberInfo.post:'无'}}</view> <view style="width:70%;text-align:right;color:#888888">{{memberInfo.post? memberInfo.post:'无'}}</view>
<view style="width:6%;text-align:right"> <view style="width:6%;text-align:right">
<text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text> <text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text>
</view> </view>
</view> --> </view> -->
<view class="listBox"> <view class="listBox">
<view style="width:24%;">园区</view> <view style="width:24%;">园区</view>
<picker bindchange="parkChange" name="park" value="{{parkindex}}" range="{{park}}"> <picker bindchange="parkChange" name="park" value="{{parkindex}}" range="{{park}}">
<text class="picker-txt">{{park[parkindex]}}</text> <text class="picker-txt">{{park[parkindex]}}</text>
</picker> </picker>
<view style="width:6%;text-align:right"> <view style="width:6%;text-align:right">
<text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text> <text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text>
</view> </view>
</view> </view>
<!-- <view class="listBox" style="border:none;"> <!-- <view class="listBox" style="border:none;">
<view style="width:24%;">公司</view> <view style="width:24%;">公司</view>
<view style="width:70%;text-align:right;color:#888888">{{memberInfo.customer.name? memberInfo.customer.name:'无'}} <view style="width:70%;text-align:right;color:#888888">{{memberInfo.customer.name? memberInfo.customer.name:'无'}}
</view> </view>
@ -76,6 +73,6 @@
<text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text> <text class="iconfont iconyou" style="font-size:28rpx;color:#B2B2B2"></text>
</view> </view>
</view> --> </view> -->
</view> </view>
<button class="exitBtn" bindtap="exitaccount">退出登录</button> <button class="exitBtn" bindtap="exitaccount">退出登录</button>
</view> </view>