存档点

This commit is contained in:
2026-01-14 11:07:26 +08:00
parent 141ddbb059
commit 39ea6f2fb1
28 changed files with 2738 additions and 418 deletions

View File

@@ -1,20 +1,26 @@
<template>
<view class="container">
<view class="user-info">
<view class="avatar">
<text class="avatar-text">{{ userInfo ? userInfo.name.charAt(0).toUpperCase() : 'U' }}</text>
<view class="user-info" @click="handleUserInfoClick">
<image v-if="userInfo.avatarUrl" class="avatar" :src="userInfo.avatarUrl" mode="aspectFill"></image>
<view v-else class="avatar">
<text class="avatar-text">{{ userInfo.nickName ? userInfo.nickName.charAt(0) : 'U' }}</text>
</view>
<view class="info">
<text class="username">{{ userInfo ? userInfo.name : '未登录' }}</text>
<text class="username">{{ userInfo.nickName || '未登录' }}</text>
<text v-if="!userInfo.nickName" class="login-tip">点击登录保存答题记录</text>
</view>
</view>
<view class="menu-list">
<view class="menu-item" @click="handleLogout">
<text class="menu-text">退出登录</text>
<view class="menu-item">
<text class="menu-text">关于我们</text>
<text class="arrow">></text>
</view>
</view>
<view v-if="userInfo.nickName" class="action-section">
<button class="logout-btn" @click="handleLogout">退出登录</button>
</view>
</view>
</template>
@@ -24,14 +30,10 @@ import storage from '../../utils/storage.js'
export default {
data() {
return {
userInfo: null
userInfo: {}
}
},
onLoad() {
this.loadUserInfo()
},
onShow() {
this.loadUserInfo()
},
@@ -41,18 +43,39 @@ export default {
const userInfo = storage.getUserInfo()
if (userInfo) {
this.userInfo = userInfo
} else {
this.userInfo = {}
}
},
handleUserInfoClick() {
if (!this.userInfo.nickName) {
this.handleLogin()
}
},
handleLogin() {
uni.navigateTo({
url: '/pages/login/login?redirect=' + encodeURIComponent('/pages/mine/mine')
})
},
handleLogout() {
uni.showModal({
title: '提示',
content: '确定要退出登录吗?',
success: (res) => {
if (res.confirm) {
storage.clearAll()
uni.reLaunch({
url: '/pages/login/login'
storage.removeToken()
storage.removeUserInfo()
storage.removeQuestion()
storage.clearAnsweredQuestions()
this.userInfo = {}
uni.showToast({
title: '已退出登录',
icon: 'success'
})
}
}
@@ -65,7 +88,6 @@ export default {
<style scoped>
.container {
min-height: 100vh;
background: #f5f5f5;
}
.user-info {
@@ -75,6 +97,10 @@ export default {
align-items: center;
}
.user-info:active {
opacity: 0.9;
}
.avatar {
width: 120rpx;
height: 120rpx;
@@ -105,8 +131,8 @@ export default {
margin-bottom: 10rpx;
}
.phone {
font-size: 28rpx;
.login-tip {
font-size: 24rpx;
color: rgba(255, 255, 255, 0.8);
}
@@ -136,4 +162,26 @@ export default {
font-size: 32rpx;
color: #999;
}
.action-section {
margin-top: 60rpx;
padding: 0 40rpx;
}
.logout-btn {
width: 100%;
height: 88rpx;
background: #ffffff;
color: #ff4d4f;
font-size: 32rpx;
border-radius: 12rpx;
border: 2rpx solid #ff4d4f;
display: flex;
align-items: center;
justify-content: center;
}
.logout-btn:active {
background: #fff1f0;
}
</style>