Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
梁建民
/
scm_app
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
7573331c
authored
May 29, 2026
by
liangjianmin
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
feat(mine): 优化个人信息面板样式和布局
调整个人信息面板的样式,增加标题和子标题,重构信息项的显示方式,提升用户体验。
parent
936cece5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
125 additions
and
94 deletions
assets/css/mine/index.scss
pages/mine/index.vue
assets/css/mine/index.scss
View file @
7573331c
.mine-page
{
min-height
:
100vh
;
padding-bottom
:
158rpx
;
background
:
#f8fafc
;
padding
:
0
28rpx
180rpx
;
box-sizing
:
border-box
;
background
:
linear-gradient
(
180deg
,
#eef5ff
0%
,
#f7f9fc
42%
,
#f6f8fb
100%
);
.profile-hero
{
position
:
relative
;
padding
:
32rpx
32rpx
32rpx
;
margin-bottom
:
16rpx
;
padding
:
20rpx
24rpx
26rpx
;
margin
:
6rpx
-28rpx
0
;
background
:
#197adb
;
border-radius
:
0
0
28rpx
28rpx
;
box-shadow
:
0
12rpx
28rpx
rgba
(
25
,
122
,
219
,
0
.16
);
.hero-bg
{
position
:
absolute
;
top
:
0
;
left
:
0
;
right
:
0
;
height
:
148rpx
;
background
:
linear-gradient
(
135deg
,
#2563eb
0%
,
#3b82f6
100%
);
border-radius
:
0
0
32rpx
32rpx
;
overflow
:
hidden
;
&
:
:
before
{
content
:
''
;
position
:
absolute
;
top
:
-50%
;
right
:
-20%
;
width
:
200rpx
;
height
:
200rpx
;
background
:
radial-gradient
(
circle
,
rgba
(
255
,
255
,
255
,
0
.15
)
0%
,
transparent
70%
);
border-radius
:
50%
;
}
&
:
:
after
{
content
:
''
;
position
:
absolute
;
bottom
:
-30%
;
left
:
-10%
;
width
:
160rpx
;
height
:
160rpx
;
background
:
radial-gradient
(
circle
,
rgba
(
255
,
255
,
255
,
0
.1
)
0%
,
transparent
70%
);
border-radius
:
50%
;
}
display
:
none
;
}
.profile-card
{
position
:
relative
;
z-index
:
1
;
min-height
:
132rpx
;
display
:
flex
;
align-items
:
center
;
padding
:
0
;
box-sizing
:
border-box
;
border-radius
:
0
;
background
:
transparent
;
box-shadow
:
none
;
.avatar
{
width
:
96rpx
;
height
:
96rpx
;
border-radius
:
24rpx
;
background
:
rgba
(
255
,
255
,
255
,
0
.2
);
backdrop-filter
:
blur
(
8rpx
);
border
:
2rpx
solid
rgba
(
255
,
255
,
255
,
0
.3
);
background
:
rgba
(
255
,
255
,
255
,
0
.18
);
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
20rpx
;
margin-right
:
22rpx
;
flex-shrink
:
0
;
.avatar-img
{
width
:
72rpx
;
...
...
@@ -66,96 +46,139 @@
}
.profile-meta
{
flex
:
1
;
min-width
:
0
;
display
:
flex
;
flex-direction
:
column
;
min-width
:
0
;
.p-name
{
font-size
:
36rpx
;
font-weight
:
600
;
font-size
:
38rpx
;
line-height
:
48rpx
;
font-weight
:
700
;
color
:
#ffffff
;
letter-spacing
:
0
.5rpx
;
letter-spacing
:
0
;
}
.p-email
{
margin-top
:
10
rpx
;
margin-top
:
8
rpx
;
font-size
:
24rpx
;
color
:
rgba
(
255
,
255
,
255
,
0
.86
);
line-height
:
34rpx
;
color
:
rgba
(
255
,
255
,
255
,
0
.82
);
word-break
:
break-all
;
}
}
}
}
.info-list
{
margin
:
32rpx
32rpx
0
;
.info-panel
{
margin-top
:
24rpx
;
padding
:
28rpx
28rpx
8rpx
;
border-radius
:
26rpx
;
background
:
#ffffff
;
border-radius
:
20rpx
;
padding
:
8rpx
28rpx
;
box-shadow
:
0
4rpx
16rpx
rgba
(
15
,
23
,
42
,
0
.06
);
box-shadow
:
0
18rpx
42rpx
rgba
(
15
,
23
,
42
,
0
.06
);
.info-item
{
padding
:
30rpx
0
;
border-bottom
:
1rpx
solid
#f1f5f9
;
&
:last-child
{
border-bottom
:
none
;
.panel-title
{
display
:
flex
;
align-items
:
flex-end
;
justify-content
:
space-between
;
margin-bottom
:
8rpx
;
.panel-name
{
font-size
:
30rpx
;
line-height
:
40rpx
;
font-weight
:
700
;
color
:
#172033
;
}
.info-icon
{
width
:
60rpx
;
height
:
60rpx
;
border-radius
:
16rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
20rpx
;
flex-shrink
:
0
;
.panel-sub
{
font-size
:
22rpx
;
line-height
:
32rpx
;
color
:
#94a3b8
;
}
}
.info-label
{
font-size
:
28rpx
;
color
:
#64748b
;
width
:
140rpx
;
flex-shrink
:
0
;
}
.info-list
{
.info-item
{
padding
:
26rpx
0
;
border-bottom
:
1rpx
solid
#edf1f7
;
.info-value
{
flex
:
1
;
font-size
:
28rpx
;
font-weight
:
500
;
color
:
#1e293b
;
text-align
:
right
;
word-break
:
break-all
;
&
:last-child
{
border-bottom
:
none
;
}
.info-icon
{
width
:
64rpx
;
height
:
64rpx
;
border-radius
:
18rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
22rpx
;
flex-shrink
:
0
;
box-shadow
:
0
10rpx
22rpx
rgba
(
15
,
23
,
42
,
0
.1
);
}
.info-content
{
flex
:
1
;
min-width
:
0
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
.info-label
{
font-size
:
27rpx
;
color
:
#64748b
;
flex-shrink
:
0
;
}
.info-value
{
margin-left
:
24rpx
;
flex
:
1
;
font-size
:
28rpx
;
font-weight
:
600
;
color
:
#172033
;
text-align
:
right
;
word-break
:
break-all
;
&
.empty
{
color
:
#cbd5e1
;
&
.empty
{
color
:
#cbd5e1
;
font-weight
:
500
;
}
}
}
}
}
.logout-wrap
{
padding
:
36rpx
32rpx
;
.logout-fixed
{
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0
;
z-index
:
10
;
padding
:
20rpx
28rpx
calc
(
24rpx
+
env
(
safe-area-inset-bottom
));
box-sizing
:
border-box
;
background
:
linear-gradient
(
180deg
,
rgba
(
246
,
248
,
251
,
0
)
0%
,
rgba
(
246
,
248
,
251
,
0
.94
)
28%
,
#f6f8fb
100%
);
.logout-btn
{
height
:
92rpx
;
border-radius
:
24rpx
;
background
:
#ffffff
;
border
-radius
:
20rpx
;
box-shadow
:
0
4rpx
16rpx
rgba
(
239
,
68
,
68
,
0
.08
);
border
:
1rpx
solid
rgba
(
239
,
68
,
68
,
0
.12
)
;
box-shadow
:
0
16rpx
36rpx
rgba
(
15
,
23
,
42
,
0
.08
);
transition
:
all
0
.2s
ease
;
&
:active
{
transform
:
scale
(
0
.98
);
background
:
#f
ef2f2
;
background
:
#f
ff5f5
;
}
.logout-text
{
margin-left
:
10rpx
;
font-size
:
28rpx
;
font-weight
:
5
00
;
font-weight
:
6
00
;
color
:
#ef4444
;
margin-left
:
10rpx
;
letter-spacing
:
0
.5rpx
;
letter-spacing
:
0
;
}
}
}
...
...
pages/mine/index.vue
View file @
7573331c
...
...
@@ -13,17 +13,25 @@
</view>
</view>
<view
class=
"info-list"
>
<view
class=
"info-item row verCenter"
v-for=
"item in infoFields"
:key=
"item.key"
>
<view
class=
"info-icon"
:style=
"
{ background: item.bg }">
<u-icon
:name=
"item.icon"
color=
"#ffffff"
size=
"32"
></u-icon>
<view
class=
"info-panel"
>
<view
class=
"panel-title"
>
<text
class=
"panel-name"
>
账号资料
</text>
<text
class=
"panel-sub"
>
基础信息
</text>
</view>
<view
class=
"info-list"
>
<view
class=
"info-item row verCenter"
v-for=
"item in infoFields"
:key=
"item.key"
>
<view
class=
"info-icon"
:style=
"
{ background: item.bg }">
<u-icon
:name=
"item.icon"
color=
"#ffffff"
size=
"32"
></u-icon>
</view>
<view
class=
"info-content"
>
<text
class=
"info-label"
>
{{
item
.
label
}}
</text>
<text
class=
"info-value"
:class=
"
{ empty: !info[item.key] }">
{{
info
[
item
.
key
]
||
'--'
}}
</text>
</view>
</view>
<text
class=
"info-label"
>
{{
item
.
label
}}
</text>
<text
class=
"info-value"
:class=
"
{ empty: !info[item.key] }">
{{
info
[
item
.
key
]
||
'--'
}}
</text>
</view>
</view>
<view
class=
"logout-
wrap
"
>
<view
class=
"logout-
fixed
"
>
<view
class=
"logout-btn row rowCenter verCenter"
@
click=
"exit"
>
<u-icon
name=
"close-circle"
color=
"#ef4444"
size=
"32"
></u-icon>
<text
class=
"logout-text"
>
退出账号
</text>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment