418 lines
6.1 KiB
Plaintext
418 lines
6.1 KiB
Plaintext
/* 个人统计页面样式 */
|
|
page {
|
|
background: linear-gradient(135deg, #1A1A1A 0%, #252525 100%);
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.container {
|
|
padding: 30rpx;
|
|
padding-bottom: 120rpx;
|
|
}
|
|
|
|
/* 用户头部 */
|
|
.user-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 32rpx 24rpx;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.user-info {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
flex: 1;
|
|
}
|
|
|
|
.avatar {
|
|
width: 96rpx;
|
|
height: 96rpx;
|
|
border-radius: 50%;
|
|
border: 3rpx solid #fff;
|
|
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.user-detail {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6rpx;
|
|
}
|
|
|
|
.nickname {
|
|
font-size: 32rpx;
|
|
font-weight: bold;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.user-desc {
|
|
font-size: 24rpx;
|
|
color: #B0B0B0;
|
|
}
|
|
|
|
.share-btn {
|
|
padding: 16rpx 28rpx;
|
|
background: linear-gradient(135deg, #ff9500 0%, #ff7700 100%);
|
|
color: white;
|
|
border-radius: 40rpx;
|
|
font-size: 26rpx;
|
|
border: none;
|
|
}
|
|
|
|
/* 时间范围选择 */
|
|
.time-range-bar {
|
|
display: flex;
|
|
gap: 12rpx;
|
|
padding: 16rpx 24rpx;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.range-btn {
|
|
flex: 1;
|
|
padding: 16rpx 0;
|
|
background: #f8f8f8;
|
|
border-radius: 24rpx;
|
|
font-size: 28rpx;
|
|
color: #E0E0E0;
|
|
text-align: center;
|
|
}
|
|
|
|
.range-btn.active {
|
|
background: linear-gradient(135deg, #50C878 0%, #06a854 100%);
|
|
color: white;
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* 核心数据 */
|
|
.core-stats {
|
|
padding: 32rpx 24rpx;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.stats-row {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
align-items: baseline;
|
|
padding-bottom: 24rpx;
|
|
}
|
|
|
|
.stat-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 8rpx;
|
|
flex: 1;
|
|
}
|
|
|
|
.stat-item.large {
|
|
padding: 0 20rpx;
|
|
}
|
|
|
|
.stat-number {
|
|
font-size: 36rpx;
|
|
font-weight: bold;
|
|
color: #FFFFFF;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.stat-number.win {
|
|
color: #50C878;
|
|
}
|
|
|
|
.stat-number.lose {
|
|
color: #ff3b30;
|
|
}
|
|
|
|
.stat-item.large .stat-number {
|
|
font-size: 52rpx;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.stat-label {
|
|
font-size: 24rpx;
|
|
color: #B0B0B0;
|
|
}
|
|
|
|
.stats-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 20rpx;
|
|
padding-top: 24rpx;
|
|
}
|
|
|
|
/* 最佳记录 */
|
|
.best-records {
|
|
padding: 24rpx;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.records-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 16rpx;
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
.record-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12rpx;
|
|
padding: 20rpx;
|
|
background: #f8f9fa;
|
|
border-radius: 12rpx;
|
|
}
|
|
|
|
.record-icon {
|
|
font-size: 40rpx;
|
|
}
|
|
|
|
.record-info {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6rpx;
|
|
}
|
|
|
|
.record-label {
|
|
font-size: 24rpx;
|
|
color: #B0B0B0;
|
|
}
|
|
|
|
.record-value {
|
|
font-size: 32rpx;
|
|
font-weight: bold;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
/* 游戏类型统计 */
|
|
.game-type-stats {
|
|
padding: 24rpx;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.game-types-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16rpx;
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
.game-type-item {
|
|
padding: 20rpx;
|
|
background: #f8f9fa;
|
|
border-radius: 12rpx;
|
|
}
|
|
|
|
.type-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.type-name {
|
|
font-size: 30rpx;
|
|
font-weight: bold;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.type-games {
|
|
font-size: 24rpx;
|
|
color: #B0B0B0;
|
|
}
|
|
|
|
.type-stats {
|
|
display: flex;
|
|
gap: 32rpx;
|
|
}
|
|
|
|
.type-stat {
|
|
flex: 1;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 12rpx 16rpx;
|
|
background: #1A1A1A;
|
|
border-radius: 8rpx;
|
|
}
|
|
|
|
.type-stat .stat-label {
|
|
font-size: 24rpx;
|
|
color: #B0B0B0;
|
|
}
|
|
|
|
.type-stat .stat-value {
|
|
font-size: 28rpx;
|
|
font-weight: bold;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
/* 趋势图 */
|
|
.trend-chart {
|
|
padding: 24rpx;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.chart-summary {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
padding: 20rpx 0;
|
|
margin-bottom: 20rpx;
|
|
border-bottom: 1rpx solid #f0f0f0;
|
|
}
|
|
|
|
.summary-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 8rpx;
|
|
}
|
|
|
|
.summary-label {
|
|
font-size: 24rpx;
|
|
color: #B0B0B0;
|
|
}
|
|
|
|
.summary-value {
|
|
font-size: 32rpx;
|
|
font-weight: bold;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.summary-value.win {
|
|
color: #50C878;
|
|
}
|
|
|
|
.summary-value.lose {
|
|
color: #ff3b30;
|
|
}
|
|
|
|
.chart-container {
|
|
background: #f8f9fa;
|
|
border-radius: 12rpx;
|
|
padding: 20rpx 12rpx;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.chart-wrapper {
|
|
display: flex;
|
|
gap: 8rpx;
|
|
}
|
|
|
|
.chart-y-axis {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
height: 280rpx;
|
|
padding: 20rpx 0 50rpx;
|
|
min-width: 50rpx;
|
|
}
|
|
|
|
.y-axis-label {
|
|
font-size: 20rpx;
|
|
color: #B0B0B0;
|
|
text-align: right;
|
|
line-height: 1;
|
|
}
|
|
|
|
.chart-bars {
|
|
flex: 1;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-around;
|
|
height: 280rpx;
|
|
padding: 20rpx 8rpx 0;
|
|
}
|
|
|
|
.bar-item {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
max-width: 100rpx;
|
|
height: 100%;
|
|
}
|
|
|
|
.bar-column {
|
|
flex: 1;
|
|
width: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
margin-bottom: 12rpx;
|
|
}
|
|
|
|
.bar-upper {
|
|
flex: 1;
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: center;
|
|
}
|
|
|
|
.bar-baseline {
|
|
width: 100%;
|
|
height: 2rpx;
|
|
background: #ddd;
|
|
position: relative;
|
|
}
|
|
|
|
.bar-lower {
|
|
flex: 1;
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: center;
|
|
}
|
|
|
|
.bar {
|
|
width: 40rpx;
|
|
min-height: 8rpx;
|
|
}
|
|
|
|
.bar-win {
|
|
background: linear-gradient(180deg, #06d66f 0%, #50C878 100%);
|
|
box-shadow: 0 2rpx 8rpx rgba(7, 193, 96, 0.3);
|
|
border-radius: 6rpx 6rpx 0 0;
|
|
}
|
|
|
|
.bar-lose {
|
|
background: linear-gradient(0deg, #ff5449 0%, #ff3b30 100%);
|
|
box-shadow: 0 2rpx 8rpx rgba(255, 59, 48, 0.3);
|
|
border-radius: 0 0 6rpx 6rpx;
|
|
}
|
|
|
|
.bar-label {
|
|
font-size: 22rpx;
|
|
color: #E0E0E0;
|
|
white-space: nowrap;
|
|
text-align: center;
|
|
line-height: 1.2;
|
|
margin-top: 4rpx;
|
|
}
|
|
|
|
/* 操作按钮 */
|
|
.action-buttons {
|
|
margin: 40rpx 0rpx 100rpx 0rpx;
|
|
}
|
|
|
|
.action-btn {
|
|
padding: 28rpx;
|
|
text-align: center;
|
|
border-radius: 16rpx;
|
|
font-size: 32rpx;
|
|
font-weight: bold;
|
|
border: none;
|
|
}
|
|
|
|
.action-btn.primary {
|
|
background: linear-gradient(135deg, #50C878 0%, #06a854 100%);
|
|
color: white;
|
|
box-shadow: 0 8rpx 20rpx rgba(7, 193, 96, 0.3);
|
|
|
|
}
|
|
/* 为TabBar预留空间 */
|
|
.container {
|
|
padding-bottom: 120rpx;
|
|
}
|