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