demingshangjia/pages/user/info.vue
2020-07-30 19:49:12 +08:00

187 lines
3.9 KiB
Vue

<template>
<view class="info">
<view class="head" @click="chooseImage">
<image :src="fileurl" :key="num"></image>
<text>更换头像</text>
</view>
<view class="item">
<text class="title">用户名</text>
<input type="text" value="" v-model="info.member_nickname" placeholder="请输入用户名"/>
</view>
<view class="item">
<text class="title">个性签名</text>
<input type="text" value="" v-model="info.signature" placeholder="请输入个性签名"/>
</view>
<view class="password" @click="updatePwd">
<text>修改密码</text>
<image src="/static/image/user/1.png"></image>
</view>
<u-toast ref="uToast" />
</view>
</template>
<script>
export default {
name: 'info',
data() {
return {
fileurl: "",
filename:"",
info:{},
num:0
};
},
onLoad() {
this.getmyinfo()
},
onNavigationBarButtonTap() {
let that = this;
this.$u.api.changeinfo({
nickname:that.info.member_nickname,
avatar:that.filename,
signature:that.info.signature
}).then(res => {
console.log(res);
if (res.errCode != 0) {
this.$refs.uToast.show({
title: res.message,
type: 'error'
});
} else {
this.$refs.uToast.show({
title: res.message,
type: 'success'
});
}
});
},
methods: {
// 获取个人信息
getmyinfo(){
let that = this;
this.$u.api.getshopinfo({}).then(res => {
console.log(res);
if (res.errCode != 0) {
this.$refs.uToast.show({
title: res.message,
type: 'error'
});
} else {
this.info = res.data.memberInfo
this.fileurl = res.data.memberInfo.member_avatar
}
});
},
// 获取图片,上传图片
chooseImage(sourceType) {
let that = this
const token = uni.getStorageSync('token');
uni.chooseImage({
count: 1,
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
success: function(res) {
console.log(JSON.stringify(res.tempFilePaths));
const tempFilePaths = res.tempFilePaths;
that.fileurl = tempFilePaths[0]
uni.uploadFile({
url: 'https://dmmall.sdbairui.com/storeapi/Upload/uploadFile',
filePath: tempFilePaths[0],
name: 'avatar',
formData:{
name:"avatar"
},
header:{
Authorization:'Bearer' + " " + token
},
success: uploadFileRes => {
let obj = JSON.parse(uploadFileRes.data)
that.fileurl = obj.data.file_path
that.filename = obj.data.file_name
that.num++
console.log(that.fileurl,that.filename)
}
});
}
});
},
updatePwd() {
uni.navigateTo({
url: '/pages/user/updatePassword'
});
}
}
};
</script>
<style lang="scss" scoped>
.info {
min-height: calc(100vh - var(--window-top));
background: #ececec;
.head {
height: 202rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: #fff;
margin-bottom: 2rpx;
> image {
width: 120rpx;
height: 120rpx;
border-radius: 50%;
}
> text {
font-size: 24rpx;
color: #ff780f;
margin-top: 20rpx;
}
margin-bottom: 2rpx;
}
.item {
display: flex;
align-items: center;
height: 98rpx;
background: rgba(255, 255, 255, 1);
padding: 0 30rpx;
margin-bottom: 2rpx;
.title {
width: 120rpx;
font-size: 30rpx;
color: rgba(51, 51, 51, 1);
margin-right: 120rpx;
}
.value {
font-size: 30rpx;
color: rgba(101, 101, 101, 1);
}
}
.password {
margin-top: 20rpx;
padding: 0 30rpx;
height: 98rpx;
display: flex;
align-items: center;
justify-content: space-between;
background: rgba(255, 255, 255, 1);
> text {
font-size: 30rpx;
color: rgba(51, 51, 51, 1);
}
> image {
width: 11rpx;
height: 22rpx;
}
}
.image-popup {
padding: 0 30rpx;
> view {
font-size: 28rpx;
color: rgba(51, 51, 51, 1);
line-height: 98rpx;
text-align: center;
&:first-child {
border-bottom: 2rpx solid #ebebeb;
}
}
}
}
</style>