<template>
|
|
<view class='updateUserInfo'>
|
|
<!--顶部导航栏-->
|
|
<navbar leftClick @leftClick="$utils.navigateBack" title="修改个人信息" />
|
|
|
|
<!--主页面-->
|
|
<view class="frame">
|
|
<view class="headImage">
|
|
<view style="" class="key">头像</view>
|
|
<button style="" class="value" @chooseavatar="onChooseAvatar" open-type="chooseAvatar">
|
|
<image
|
|
:src="form.headImage" v-if="form.headImage"
|
|
style="width: 100%;height: 100%" mode="aspectFill">
|
|
</image>
|
|
<image src="/static/image/tabbar/6.png" v-else style="width: 100%;height: 100%" mode="aspectFill">
|
|
</image>
|
|
</button>
|
|
</view>
|
|
<view class="item">
|
|
<view class="label">昵称</view>
|
|
<view class="value">
|
|
<input type="nickname" placeholder="请输入昵称" style="text-align: right;" id="nickName"
|
|
v-model="form.nickName" />
|
|
</view>
|
|
</view>
|
|
<!-- <view class="item" @click="sexChange">
|
|
<view class="label">性别</view>
|
|
<view>{{form.sex}}</view>
|
|
</view> -->
|
|
<!-- <view class="item">
|
|
<view class="label">联系方式</view>
|
|
<view class="value">
|
|
<uv-input v-model="form.phone" placeholder="联系方式" border="bottom" clearable></uv-input>
|
|
</view>
|
|
</view> -->
|
|
</view>
|
|
|
|
<!-- ActionSheet 操作菜单 -->
|
|
<uv-action-sheet ref="actionSheet" :actions="sexList" title="性别" @select="select" @close="close">
|
|
</uv-action-sheet>
|
|
|
|
<!--确认修改个人信息按钮-->
|
|
<button @click="confirmEditUserInfo" class="bottomBtn">
|
|
确认修改
|
|
</button>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
mapState,
|
|
} from 'vuex'
|
|
export default {
|
|
computed: {
|
|
...mapState(['userInfo']),
|
|
},
|
|
data() {
|
|
return {
|
|
form: {
|
|
sex: '',
|
|
nickName: '1',
|
|
phone: '',
|
|
headImage: '',
|
|
},
|
|
// itemUserImage: userInfo.headImage,
|
|
fileList: [],
|
|
sexList: [{
|
|
name: '男',
|
|
value: 1
|
|
},
|
|
{
|
|
name: '女',
|
|
value: 0
|
|
},
|
|
],
|
|
}
|
|
},
|
|
onLoad() {
|
|
this.form.phone = this.userInfo.phone
|
|
this.form.headImage = this.userInfo.headImage
|
|
this.form.nickName = this.userInfo.nickName
|
|
this.form.sex = this.userInfo.sex
|
|
if (this.userInfo.sex == '' || this.userInfo.sex == null) {
|
|
this.form.sex = '未知'
|
|
}
|
|
},
|
|
methods: {
|
|
|
|
onChooseAvatar(res) {
|
|
let self = this
|
|
console.log(res.target.avatarUrl, "res.target.avatarUrl");
|
|
self.$Oss.ossUpload(res.target.avatarUrl)
|
|
.then(url => {
|
|
console.log(url, "url");
|
|
self.form.headImage = url
|
|
})
|
|
},
|
|
|
|
// 确认修改个人信息
|
|
confirmEditUserInfo() {
|
|
let self = this
|
|
uni.createSelectorQuery().in(this)
|
|
.select("#nickName")
|
|
.fields({
|
|
properties: ["value"],
|
|
})
|
|
.exec((res) => {
|
|
const nickName = res?.[0]?.value
|
|
self.form.nickName = nickName
|
|
|
|
if (self.$utils.verificationAll(self.form, {
|
|
headImage: '请选择头像',
|
|
nickName: '请填写昵称'
|
|
})) {
|
|
return
|
|
}
|
|
|
|
self.$api('updateInfo', {
|
|
headImg : self.form.headImage,
|
|
nickname : self.form.nickName,
|
|
}, res => {
|
|
if (res.code == 200) {
|
|
uni.redirectTo({
|
|
url: '/pages/index/center'
|
|
})
|
|
}
|
|
})
|
|
})
|
|
|
|
},
|
|
|
|
sexChange() {
|
|
this.$refs.actionSheet.open() //打开ActionSheet 操作菜单
|
|
},
|
|
|
|
// ActionSheet 操作菜单选中
|
|
select(e) {
|
|
console.log('选中该项:', e);
|
|
this.form.sex = e.name
|
|
this.$refs.actionSheet.close() //关闭操作菜单
|
|
},
|
|
|
|
// ActionSheet 操作菜单关闭
|
|
close() {
|
|
this.$refs.actionSheet.close() //关闭操作菜单
|
|
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
* {
|
|
box-sizing: border-box;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.updateUserInfo {
|
|
.frame {
|
|
padding: 28rpx 28rpx 0 28rpx;
|
|
|
|
.headImage {
|
|
display: flex;
|
|
// width: 100vw;
|
|
padding: 20rpx;
|
|
|
|
.key {
|
|
width: 500rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.value {
|
|
border-radius: 50rpx;
|
|
border: 1px solid red;
|
|
box-sizing: border-box;
|
|
overflow: hidden;
|
|
width: 100rpx;
|
|
height: 100rpx;
|
|
padding: 0;
|
|
}
|
|
}
|
|
|
|
|
|
.item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
// border-bottom: 1px solid #c9c9c9;
|
|
margin-top: 20rpx;
|
|
padding: 20rpx;
|
|
|
|
.label {
|
|
width: 50%;
|
|
}
|
|
|
|
.value {
|
|
width: 50%;
|
|
text-align: right;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/deep/ .input__content {
|
|
/deep/.uv-input__content__field-wrapper {
|
|
border: 1px solid red;
|
|
|
|
input {
|
|
text-align: right;
|
|
}
|
|
}
|
|
}
|
|
|
|
/deep/ .uv-input__content__field-wrapper__field {
|
|
text-align: right;
|
|
}
|
|
.bottomBtn {
|
|
position: fixed;
|
|
bottom: 5%;
|
|
left: 10%;
|
|
width: 80%;
|
|
height: 80rpx;
|
|
text-align: center;
|
|
color: #ffffff;
|
|
background: $uni-color;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
font-size: 30rpx;
|
|
}
|
|
</style>
|