0d1a4181
刘淇
个人中心
|
1
|
<template>
|
cf70629b
刘淇
养护计划 照片 自己写样式
|
2
|
<view class="page-container">
|
0d1a4181
刘淇
个人中心
|
3
|
<!-- 顶部用户信息栏 -->
|
12e66ec8
刘淇
新增树
|
4
5
6
7
8
9
10
11
12
13
|
<view class="header-bg">
<up-avatar
:src="'https://img.jichengshanshui.com.cn:28207/appimg/default-avatar.png'"
size="100rpx"
shape="square"
class="user-avatar"
></up-avatar>
<!-- 用户名+手机号 -->
<view class="user-info-content">
|
5b5a4862
刘淇
按钮放大
|
14
|
<view class="user-name">{{ userStore.isLogin ? userInfo.nickname : '未登录' }}</view>
|
c5fdc60a
刘淇
树详情
|
15
|
<!-- <view class="user-phone">{{ userStore.isLogin ? userInfo.nickname : '--------' }}</view>-->
|
24c0bbe7
刘淇
登录账号密码 加密存储
|
16
|
<view class="user-phone">上次登录时间 {{ timeFormat(userInfo.loginDate)}}</view>
|
c5fdc60a
刘淇
树详情
|
17
|
|
0d1a4181
刘淇
个人中心
|
18
|
</view>
|
12e66ec8
刘淇
新增树
|
19
|
|
0d1a4181
刘淇
个人中心
|
20
21
|
</view>
|
12e66ec8
刘淇
新增树
|
22
23
24
25
26
|
<view class="mine-content">
<up-cell-group title="个人信息">
<up-cell title="姓名" :value="userInfo.nickname"></up-cell>
<up-cell title="账号" :value="userInfo.username"></up-cell>
|
c5fdc60a
刘淇
树详情
|
27
|
<up-cell title="电话" :value="userInfo.mobile"></up-cell>
|
12e66ec8
刘淇
新增树
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<up-cell title="角色" :value="translateRoles(userStore.userInfo.roles)"></up-cell>
</up-cell-group>
</view>
<up-button
v-if="!userStore.isLogin"
type="primary"
size="mini"
shape="circle"
@click="handleLogin"
class="login-btn"
>
立即登录
</up-button>
|
0d1a4181
刘淇
个人中心
|
44
|
<!-- 退出登录按钮 (仅登录状态显示) -->
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
45
|
<view v-if="userStore.isLogin" class="logout-btn-wrap">
|
0d1a4181
刘淇
个人中心
|
46
47
48
|
<up-button
type="primary"
size="large"
|
12e66ec8
刘淇
新增树
|
49
|
shape="circle"
|
0d1a4181
刘淇
个人中心
|
50
|
@click="confirmLogout"
|
12e66ec8
刘淇
新增树
|
51
|
class="login-btn"
|
0d1a4181
刘淇
个人中心
|
52
53
54
55
|
>
退出登录
</up-button>
</view>
|
0d1a4181
刘淇
个人中心
|
56
57
58
|
</view>
</template>
|
c293da23
刘淇
新园林init
|
59
|
<script setup lang="ts">
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
60
61
62
|
import { computed } from 'vue'
import { useUserStore } from '@/pinia/user'
import { showModal, onShow } from '@dcloudio/uni-app'
|
12e66ec8
刘淇
新增树
|
63
|
import {translateRoles} from '@/common/utils/common'
|
0d1a4181
刘淇
个人中心
|
64
65
|
// 初始化Pinia仓库
const userStore = useUserStore()
|
c5fdc60a
刘淇
树详情
|
66
|
import { timeFormat } from '@/uni_modules/uview-plus';
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
67
68
|
// 计算属性获取用户信息(响应式)
const userInfo = computed(() => userStore.userInfo.user || {})
|
0d1a4181
刘淇
个人中心
|
69
|
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
70
71
72
|
/**
* 处理登录跳转
*/
|
0d1a4181
刘淇
个人中心
|
73
|
const handleLogin = () => {
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
74
75
|
uni.navigateTo({
url: '/pages/login/index'
|
0d1a4181
刘淇
个人中心
|
76
77
78
|
})
}
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
79
80
81
|
/**
* 确认退出登录(带二次确认)
*/
|
0d1a4181
刘淇
个人中心
|
82
|
const confirmLogout = async () => {
|
0d1a4181
刘淇
个人中心
|
83
|
try {
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
84
85
86
87
88
89
|
const res = await uni.showModal({
title: '提示',
content: '确定要退出登录吗?',
confirmText: '退出',
cancelText: '取消'
})
|
0d1a4181
刘淇
个人中心
|
90
|
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
91
92
|
if (res.confirm) {
await userStore.logout()
|
54955fb5
刘淇
巡查和养护 。 失效状态的判断
|
93
|
// uni.showToast({ title: '退出登录成功', type: 'success' })
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
94
|
}
|
0d1a4181
刘淇
个人中心
|
95
96
|
} catch (error) {
console.error('退出登录失败:', error)
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
97
|
uni.showToast({ title: '退出登录失败,请重试', type: 'error' })
|
0d1a4181
刘淇
个人中心
|
98
99
|
}
}
|
c293da23
刘淇
新园林init
|
100
|
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
101
102
103
104
|
// 页面显示时检查登录状态
onShow(() => {
userStore.checkLogin()
})
|
c293da23
刘淇
新园林init
|
105
106
|
</script>
|
0d1a4181
刘淇
个人中心
|
107
108
|
<script lang="ts">
export default {
|
67af4c8e
刘淇
工作台 如果没有子节点就不渲染父节点
|
109
110
111
112
|
name: 'UserCenter',
options: {
navigationBarTitleText: '个人中心'
}
|
0d1a4181
刘淇
个人中心
|
113
114
115
116
|
}
</script>
<style lang="scss" scoped>
|
cf70629b
刘淇
养护计划 照片 自己写样式
|
117
|
.page-container {
|
12e66ec8
刘淇
新增树
|
118
|
|
0d1a4181
刘淇
个人中心
|
119
120
|
}
|
12e66ec8
刘淇
新增树
|
121
122
123
124
125
|
.header-bg {
position:relative;
top: 0;
left: 0;
width: 100%;
|
24c0bbe7
刘淇
登录账号密码 加密存储
|
126
|
height: 220px;
|
12e66ec8
刘淇
新增树
|
127
128
129
130
131
|
//height: 120px;
background: url("https://img.jichengshanshui.com.cn:28207/appimg/bg.jpg") no-repeat;
background-size: 100% 100%;
z-index: -1;
display: flex;
|
5b5a4862
刘淇
按钮放大
|
132
|
padding: 80px 0 0 15px;
|
12e66ec8
刘淇
新增树
|
133
134
135
136
137
138
|
}
.mine-content{
margin-top: -150px;
border-radius: 30px 30px 0 0;
background: #fff;
}
|
0d1a4181
刘淇
个人中心
|
139
|
|
12e66ec8
刘淇
新增树
|
140
|
.user-avatar {
|
0d1a4181
刘淇
个人中心
|
141
|
|
0d1a4181
刘淇
个人中心
|
142
143
|
}
|
12e66ec8
刘淇
新增树
|
144
|
.user-info-content {
|
cf70629b
刘淇
养护计划 照片 自己写样式
|
145
|
margin-left: 15px;
|
12e66ec8
刘淇
新增树
|
146
147
148
|
flex: 1;
.user-name {
|
cf70629b
刘淇
养护计划 照片 自己写样式
|
149
|
font-size: 16px;
|
12e66ec8
刘淇
新增树
|
150
151
|
font-weight: 600;
color: #ffffff;
|
cf70629b
刘淇
养护计划 照片 自己写样式
|
152
153
|
margin-bottom: 5px;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
12e66ec8
刘淇
新增树
|
154
155
156
|
}
.user-phone {
|
cf70629b
刘淇
养护计划 照片 自己写样式
|
157
|
font-size: 13px;
|
12e66ec8
刘淇
新增树
|
158
159
160
|
color: rgba(255, 255, 255, 0.9);
}
}
|
0d1a4181
刘淇
个人中心
|
161
162
|
// 退出登录按钮
.logout-btn-wrap {
|
24c0bbe7
刘淇
登录账号密码 加密存储
|
163
|
margin: 80px 15px 0;
|
0d1a4181
刘淇
个人中心
|
164
|
}
|
12e66ec8
刘淇
新增树
|
165
166
|
// 登录按钮
.login-btn {
|
12e66ec8
刘淇
新增树
|
167
168
169
170
171
|
width: 100%;
height: 44px;
line-height: 44px;
border-radius: 4px;
font-size: 16px;
|
12e66ec8
刘淇
新增树
|
172
173
174
175
|
background: #0A86F4;
box-shadow: 0px 4px 6px 1px rgba(25,94,215,0.5);
border-radius: 23px;
}
|
c293da23
刘淇
新园林init
|
176
|
</style>
|