Files
2025-08-26 16:17:24 +08:00

206 lines
5.5 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="waper">
<view class="bgcolor"></view>
<view class="banner">
<view class="user">
<view class="img">
<image :src="avatar" mode=""></image>
</view>
<view class="name">
<view>{{userData.nickName || '-'}}</view>
<view>{{userData.scenicName || '-'}}</view>
</view>
</view>
</view>
<view class="menu">
<!-- <view class="menu_waper">
<view class="list" @click="toList">
<view>
<image src="../../static/img/mine_menu.png" mode=""></image>
<text>核销记录</text>
</view>
<view>
<u-icon name="arrow-right"></u-icon>
</view>
</view>
</view> -->
</view>
<view class="login_btn" @click="loginOut">
退出登录
</view>
<tabbar name="mine"></tabbar>
<uni-popup class="popupRefund" ref="popup" background-color="#fff">
<view class="popup-content">
<view class="con">
<view class="title">温馨提示</view>
<view class="text">确认退出登录吗</view>
<view class="btn-box">
<view class="close" @click="close">取消</view>
<view class="save" @click="onExit">确认</view>
</view>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import tabbar from '@/components/tabbar.vue'
import _config from '../../common/http/config.js'
export default {
components: { tabbar },
data() {
return {
avatar: '',
userData: {}
}
},
onLoad() {
this.getInfo()
},
methods: {
async getInfo() {
let info = await this.$http.getInfo();
this.userData = info.data
this.avatar = this.userData.avatar ? (_config.url + this.userData.avatar) : require('../../static/img/avatar.png')
},
toList () {
uni.navigateTo({ url: '/pages/list/list' })
},
loginOut () {
this.$refs.popup.open('center')
},
close() {
this.$refs.popup.close()
},
onExit() {
uni.removeStorageSync("tourism_token");
uni.reLaunch({ url: '/pages/login/login' })
}
}
}
</script>
<style lang="scss">
page{ height: 100%; }
.waper{
width: 100%; height: 100%;
.bgcolor {
width: 100%; height: 218rpx; background: linear-gradient( 180deg, #E8F8F4 0%, rgba(232,248,244,0) 100%);
}
.banner{
width: 100%;
position: relative;
top: -17rpx;
padding: 0 0 34rpx 34rpx; box-sizing: border-box;
.user{
width: 100%; height: 140rpx; box-sizing: border-box; padding-left: 194rpx; position: relative;
.img{
width: 148rpx; height: 148rpx; position: absolute; left: 0; top: 0;
image{ border-radius: 50%; }
}
.name{
width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
view{
&:nth-child(1){ line-height: 56rpx; color: #333; font-size: 40rpx; font-weight: bold; }
&:nth-child(2){ line-height: 34rpx; margin-top: 10rpx; color: #666; font-size: 24rpx; }
}
}
}
}
.menu{
width: 100%; box-sizing: border-box; padding: 0 32rpx;
.menu_waper{
background: #fff; padding: 32rpx 34rpx 32rpx 22rpx; border-radius: 10rpx;
.list{
width: 100%; height: 44rpx; display: flex; justify-content: space-between; align-items: center;
view{
&:nth-child(1){
height: 100%; display: flex; align-items: center;
image{ width: 44rpx; height: 44rpx; margin-right: 22rpx; }
text{ color: #333; font-size: 28rpx; font-weight: 500; }
}
&:nth-child(2){
/deep/.uicon-arrow-right {
font-size: 34rpx !important;
color: #999999 !important;
}
}
}
}
}
}
.login_btn{
margin: 208rpx auto 0;
width: 628rpx;
height: 90rpx;
background: #03AE80;
border-radius: 20rpx;
line-height: 90rpx;
text-align: center;
font-weight: 800;
font-size: 32rpx;
color: #F6F9FF;
}
.popupRefund {
.popup-content {
position: relative;
width: 595rpx;
height: 397rpx;
background-color: #FFFFFF;
border-radius: 20rpx;
.con {
position: absolute;
width: 510rpx;
top: 64rpx;
left: 50%;
transform: translateX(-50%);
.title {
font-weight: 800;
font-size: 40rpx;
color: #000000;
text-align: center;
}
.text {
margin-top: 32rpx;
font-weight: 500;
font-size: 30rpx;
color: #333333;
line-height: 44rpx;
text-align: center;
}
.btn-box {
margin-top: 90rpx;
display: flex;
align-items: center;
flex-direction: row;
justify-content: space-around;
.close {
width: 236rpx;
height: 77rpx;
border-radius: 10rpx;
border: 1rpx solid #666666;
line-height: 77rpx;
text-align: center;
font-weight: 400;
font-size: 30rpx;
color: #666666;
}
.save {
width: 240rpx;
height: 80rpx;
background: #03AE80;
border-radius: 10rpx;
line-height: 80rpx;
text-align: center;
font-weight: 500;
font-size: 30rpx;
color: #FFFFFF;
}
}
}
}
}
}
</style>