酒店桌布为微信小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

232 lines
4.8 KiB

<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>