b165f94a
“wangming”
111
|
1
2
3
4
5
6
7
8
9
|
<template>
<view class="page">
<view class="header-hero" :style="{ paddingTop: statusBarHeight + 'px' }">
<view class="top-bar">
<view class="top-left" @click="goBack">
<AppIcon name="chevronLeft" size="sm" color="white" />
</view>
<view class="top-center">
<text class="page-title">{{ t('profile.title') }}</text>
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
10
|
<LocationPicker />
|
b165f94a
“wangming”
111
|
11
12
13
14
15
16
17
18
19
20
|
</view>
<view class="top-right" @click="isMenuOpen = true">
<AppIcon name="menu" size="sm" color="white" />
</view>
</view>
</view>
<view class="content">
<view class="avatar-wrap">
<view class="avatar"><AppIcon name="user" size="lg" color="white" /></view>
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
21
22
|
<text class="avatar-name">{{ name }}</text>
<text class="avatar-role">Employee</text>
|
b165f94a
“wangming”
111
|
23
|
</view>
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
24
25
26
27
28
29
30
31
32
33
|
<view class="info-card">
<view class="info-row">
<view class="info-icon-box blue">
<AppIcon name="user" size="sm" color="blue" />
</view>
<view class="info-detail">
<text class="info-label">{{ t('profile.name') }}</text>
<text class="info-value">{{ name }}</text>
</view>
|
b165f94a
“wangming”
111
|
34
|
</view>
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
35
36
37
38
39
40
41
42
43
|
<view class="info-divider" />
<view class="info-row">
<view class="info-icon-box green">
<AppIcon name="mail" size="sm" color="green" />
</view>
<view class="info-detail">
<text class="info-label">{{ t('profile.email') }}</text>
<text class="info-value">{{ email }}</text>
</view>
|
b165f94a
“wangming”
111
|
44
|
</view>
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
45
46
47
48
49
50
51
52
53
|
<view class="info-divider" />
<view class="info-row">
<view class="info-icon-box orange">
<AppIcon name="phone" size="sm" color="orange" />
</view>
<view class="info-detail">
<text class="info-label">{{ t('profile.phone') }}</text>
<text class="info-value">{{ phone }}</text>
</view>
|
b165f94a
“wangming”
111
|
54
|
</view>
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
55
56
57
58
59
60
61
62
63
|
<view class="info-divider" />
<view class="info-row">
<view class="info-icon-box purple">
<AppIcon name="tag" size="sm" color="purple" />
</view>
<view class="info-detail">
<text class="info-label">{{ t('profile.employeeId') }}</text>
<text class="info-value">{{ employeeId }}</text>
</view>
|
b165f94a
“wangming”
111
|
64
65
|
</view>
</view>
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
66
67
68
69
70
|
<view class="btn-password" @click="goChangePassword">
<AppIcon name="settings" size="sm" color="primary" />
<text class="btn-password-text">Change Password</text>
<AppIcon name="chevronRight" size="sm" color="gray" />
|
b165f94a
“wangming”
111
|
71
72
73
74
75
76
77
78
79
80
81
82
|
</view>
</view>
<SideMenu v-model="isMenuOpen" />
</view>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useI18n } from 'vue-i18n'
import AppIcon from '../../components/AppIcon.vue'
import SideMenu from '../../components/SideMenu.vue'
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
83
|
import LocationPicker from '../../components/LocationPicker.vue'
|
b165f94a
“wangming”
111
|
84
85
86
87
|
import { getStatusBarHeight } from '../../utils/statusBar'
const { t } = useI18n()
const statusBarHeight = getStatusBarHeight()
|
b165f94a
“wangming”
111
|
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
const isMenuOpen = ref(false)
const name = ref(uni.getStorageSync('userName') || 'John Smith')
const email = ref('john.smith@company.com')
const phone = ref('+1 (555) 123-4567')
const employeeId = ref('EMP-2024-001')
const goBack = () => {
const pages = getCurrentPages()
if (pages.length > 1) {
uni.navigateBack()
} else {
uni.redirectTo({ url: '/pages/index/index' })
}
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
103
104
|
const goChangePassword = () => {
uni.navigateTo({ url: '/pages/more/change-password' })
|
b165f94a
“wangming”
111
|
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
}
</script>
<style scoped>
.page {
min-height: 100vh;
background: #f9fafb;
}
.header-hero {
background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-dark));
padding: 16rpx 32rpx 24rpx;
}
.top-bar {
height: 96rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.top-left,
.top-right {
width: 64rpx;
height: 64rpx;
border-radius: 999rpx;
background: rgba(255, 255, 255, 0.15);
display: flex;
align-items: center;
justify-content: center;
}
.top-center {
flex: 1;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
139
140
141
|
display: flex;
flex-direction: column;
align-items: center;
|
b165f94a
“wangming”
111
|
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
}
.page-title {
font-size: 34rpx;
font-weight: 600;
color: #fff;
}
.content {
padding: 48rpx;
}
.avatar-wrap {
display: flex;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
156
157
158
|
flex-direction: column;
align-items: center;
margin-bottom: 40rpx;
|
b165f94a
“wangming”
111
|
159
160
161
|
}
.avatar {
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
162
163
|
width: 140rpx;
height: 140rpx;
|
b165f94a
“wangming”
111
|
164
165
166
167
168
|
background: var(--theme-primary);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
169
|
margin-bottom: 16rpx;
|
b165f94a
“wangming”
111
|
170
171
|
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
172
173
174
175
|
.avatar-name {
font-size: 36rpx;
font-weight: 700;
color: #111827;
|
b165f94a
“wangming”
111
|
176
|
display: block;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
177
|
margin-bottom: 4rpx;
|
b165f94a
“wangming”
111
|
178
179
|
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
180
181
182
|
.avatar-role {
font-size: 26rpx;
color: #6b7280;
|
b165f94a
“wangming”
111
|
183
184
|
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
185
186
187
188
189
190
|
.info-card {
background: #fff;
padding: 12rpx 32rpx;
border-radius: 20rpx;
margin-bottom: 32rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);
|
b165f94a
“wangming”
111
|
191
192
|
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
193
|
.info-row {
|
b165f94a
“wangming”
111
|
194
|
display: flex;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
195
|
align-items: center;
|
b165f94a
“wangming”
111
|
196
|
gap: 24rpx;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
197
|
padding: 28rpx 0;
|
b165f94a
“wangming”
111
|
198
199
|
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
200
201
|
.info-divider {
height: 1rpx;
|
b165f94a
“wangming”
111
|
202
|
background: #f3f4f6;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
203
204
205
206
207
|
}
.info-icon-box {
width: 72rpx;
height: 72rpx;
|
b165f94a
“wangming”
111
|
208
209
210
211
|
border-radius: 16rpx;
display: flex;
align-items: center;
justify-content: center;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
212
|
flex-shrink: 0;
|
b165f94a
“wangming”
111
|
213
214
|
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
215
216
|
.info-icon-box.blue {
background: #eff6ff;
|
b165f94a
“wangming”
111
|
217
218
|
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
219
220
221
222
223
224
225
226
227
228
229
230
231
|
.info-icon-box.green {
background: #f0fdf4;
}
.info-icon-box.orange {
background: #fff7ed;
}
.info-icon-box.purple {
background: #faf5ff;
}
.info-detail {
|
b165f94a
“wangming”
111
|
232
|
flex: 1;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
233
|
min-width: 0;
|
b165f94a
“wangming”
111
|
234
235
|
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
|
.info-label {
font-size: 24rpx;
color: #9ca3af;
display: block;
margin-bottom: 4rpx;
}
.info-value {
font-size: 30rpx;
font-weight: 500;
color: #111827;
display: block;
}
.btn-password {
background: #fff;
padding: 32rpx;
border-radius: 20rpx;
display: flex;
align-items: center;
gap: 20rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);
|
b165f94a
“wangming”
111
|
258
259
|
}
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
260
261
262
|
.btn-password-text {
flex: 1;
font-size: 30rpx;
|
b165f94a
“wangming”
111
|
263
|
font-weight: 600;
|
940fb6ea
“wangming”
又改了一个版本,这泰额太纠结了,一...
|
264
|
color: #111827;
|
b165f94a
“wangming”
111
|
265
266
|
}
</style>
|