<template> <view class="content"> <view class="row1"> <text class="tit">头像</text> <view class="background-img" @click="imgsub"> <image class="background-img" v-model="userInfo.avatar" :src="userInfo.avatar" mode="aspectFill"> </image> </view> </view> <view class="row"> <text class="tit">昵称</text> <input class="input" type="text" v-model="userInfo.nickname" placeholder-class="placeholder" /> </view> <view class="row"> <text class="tit">ID</text> <input class="input" type="text" disabled="true" v-model="userInfo.uid" placeholder-class="placeholder" /> </view> <view class="row" v-if="userInfo.tjr"> <text class="tit">推荐人</text> <input class="input" type="text" disabled="true" v-model="userInfo.tjr" placeholder-class="placeholder" /> </view> <view class="add-btn tj" @click="confirm">提交</view> <view class="add-btn" @click="cancel">退出</view> <!-- <uni-popup ref="popup" type="center"> <view class="psw-wrapper"> <view class="psw-title">请输入自己的账户</view> <input type="text" v-model="password" class="psw-ipt" /> <view class="psw-btn"> <text @click.stop="qx">取消</text> <text class="psw-qd" @click.stop="pswQd">确定</text> </view> </view> </uni-popup> --> </view> </template> <script> import { mapState, mapMutations } from 'vuex'; import { upload } from '@/api/order.js'; import { userEdit, logout } from '@/api/set.js'; export default { data() { return { show: false, password: '', } }, onLoad() { console.log(this.userInfo) }, computed: { ...mapState('user', ['userInfo']) }, methods: { ...mapMutations('user', ['logout']), imgsub() { console.log('上传头像') upload({ filename: '' }).then(data => { console.log("data", data); this.userInfo.avatar = data[0].url; }) }, confirm() { userEdit({ avatar: this.userInfo.avatar, nickname: this.userInfo.nickname }) .then(e => { this.$api.msg('修改成功'); setTimeout(() => { uni.switchTab({ url: '/pages/user/user' }); }, 1000); console.log(e); }) .catch(e => { console.log(e); }); }, toLogout() { let obj = this; uni.showModal({ content: '确定要退出登录么', success: (e) => { if (e.confirm) { logout({}).then((e) => { uni.navigateBack(); }).catch((e) => { console.log(e); }) obj.logout(); } } }); }, cancel() { // this.$refs.popup.open(); let obj = this; uni.showModal({ content: '确定要退出登录么', success: e => { if (e.confirm) { logout({}).then(e => { obj.logout(); uni.switchTab({ url: '/pages/index/index' }) }) .catch(e => { console.log(e); }); } } }); }, qx() { this.password = ''; this.$refs.popup.close(); }, pswQd() { if (this.password != this.userInfo.phone) { this.$refs.popup.close(); this.password = ''; this.$api.msg("请输入自己的账户") return } this.$refs.popup.close(); this.password = ''; this.$api.msg("申请注销成功,请耐心等待审核") } } } </script> <style lang="scss"> .row1 { display: flex; align-items: center; justify-content: space-between; position: relative; padding: 0 30upx; height: 110upx; background: #fff; margin-bottom: 20upx; .tit { flex-shrink: 0; width: 120upx; font-size: $font-lg; color: $font-color-dark; } .background-img { width: 80rpx; height: 80rpx; border-radius: 50%; background: #f2f2f2; } } .row { display: flex; align-items: center; padding: 0 30upx; height: 110upx; background: #fff; .tit { flex-shrink: 0; width: 120upx; font-size: $font-lg; color: $font-color-dark; } .input { flex: 1; text-align: right; font-size: $font-base; color: $color-gray; } } .add-btn { display: flex; align-items: center; justify-content: center; margin:40rpx auto 30rpx; width: 560rpx; height: 80rpx; background: #fff; border-radius: 40px; color: $base-color; border: 1px solid $base-color; } .tj { margin-top: 160rpx; background: $base-color; color: #fff; } .out { display: flex; align-items: center; justify-content: center; margin: 0 auto 30rpx; width: 560rpx; height: 80rpx; border: 1px solid #DC262B; background: #FFFFFF; border-radius: 40px; color: #DC262B; } .psw-wrapper { width: 548rpx; height: 344rpx; background-color: #ffffff; .psw-title { width: 100%; font-size: 35rpx; padding: 43rpx 0 49rpx; text-align: center; font-weight: 800; } .psw-ipt { display: block; background-color: #dce3ed; height: 90rpx; width: 464rpx; padding-left: 30rpx; margin: 0 auto; font-size: 80rpx; } .psw-btn text { display: inline-block; text-align: center; width: 50%; padding-top: 29rpx; font-size: 35rpx; } .psw-qd { color: #32C6FF; } } </style>