Files
zkxw/mobile-h5/styles/components/detail.scss
T
2026-08-12 15:48:15 +08:00

250 lines
4.4 KiB
SCSS

@import '../mixins.scss';
.detail-page {
min-height: 100vh;
background: var(--bg-page, #ffffff);
padding-bottom: 176rpx;
}
.detail-hero {
position: relative;
overflow: hidden;
padding: 88rpx 28rpx 56rpx;
border-radius: 0 0 56rpx 56rpx;
color: #fff;
}
.detail-hero.status-warning {
background: linear-gradient(160deg, #fffbeb 0%, #fde68a 55%, #fbbf24 100%);
color: #92400e;
}
.detail-hero.status-primary {
@include hero-green;
border-radius: 0 0 56rpx 56rpx;
}
.detail-hero.status-danger {
background: linear-gradient(160deg, #fef2f2 0%, #fecaca 55%, #f87171 100%);
color: #991b1b;
}
.detail-hero.status-success {
background: linear-gradient(160deg, #ecfdf5 0%, #a7f3d0 55%, #6ee7b7 100%);
color: #065f46;
}
.detail-hero-body {
position: relative;
z-index: 1;
margin-top: 12rpx;
}
.detail-hero .type-line {
display: flex;
align-items: center;
gap: 16rpx;
margin-bottom: 20rpx;
}
.detail-hero .type-chip,
.detail-hero .status-chip {
font-size: 22rpx;
font-weight: 650;
padding: 6rpx 18rpx;
border-radius: 999rpx;
}
.detail-hero .type-chip {
background: rgba(255, 255, 255, 0.35);
color: inherit;
}
.detail-hero.status-primary .type-chip,
.detail-hero.status-success .type-chip,
.detail-hero.status-warning .type-chip,
.detail-hero.status-danger .type-chip {
background: rgba(15, 41, 30, 0.08);
}
.detail-hero .status-chip {
background: #fff;
color: #0f291e;
}
.detail-hero .hero-title {
font-size: 40rpx;
font-weight: 750;
line-height: 1.35;
}
.detail-hero .code {
margin-top: 16rpx;
font-size: 24rpx;
opacity: 0.92;
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.detail-metric-dock {
margin: -36rpx 24rpx 0;
position: relative;
z-index: 3;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16rpx;
padding: 24rpx;
border-radius: 36rpx;
background: rgba(255, 255, 255, 0.94);
border: 1rpx solid rgba(220, 235, 228, 0.95);
box-shadow: 0 24rpx 60rpx rgba(15, 55, 40, 0.1);
}
.detail-metric {
text-align: center;
padding: 8rpx 4rpx;
}
.detail-metric .lab {
display: block;
font-size: 20rpx;
color: #8aa198;
margin-bottom: 8rpx;
}
.detail-metric .val {
display: block;
font-size: 28rpx;
font-weight: 750;
color: #173128;
line-height: 1.25;
word-break: break-all;
}
.detail-metric .val.money {
color: #9a7424;
font-variant-numeric: tabular-nums;
}
.detail-body {
padding: 32rpx 24rpx 0;
}
.detail-section {
@include surface-card;
border-radius: 36rpx;
padding: 28rpx 28rpx 24rpx;
margin-bottom: 24rpx;
}
.detail-section .sec-hd {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 24rpx;
}
.detail-section .sec-hd .sec-title {
font-size: 28rpx;
font-weight: 700;
color: #173128;
display: flex;
align-items: center;
gap: 16rpx;
}
.detail-section .sec-hd .sec-title::before {
content: '';
width: 8rpx;
height: 28rpx;
border-radius: 999rpx;
background: linear-gradient(180deg, #4ade80, #22c55e);
}
.detail-section .sec-hd .sec-more {
font-size: 24rpx;
color: var(--brand-green, #22c55e);
}
.kv-list {
display: flex;
flex-direction: column;
gap: 20rpx;
}
.kv-row {
display: flex;
align-items: flex-start;
gap: 24rpx;
font-size: 26rpx;
line-height: 1.45;
}
.kv-row .k {
width: 144rpx;
flex-shrink: 0;
color: #8aa198;
}
.kv-row .v {
flex: 1;
color: #173128;
font-weight: 550;
word-break: break-all;
}
.detail-note {
margin-top: 24rpx;
padding: 20rpx 24rpx;
border-radius: 24rpx;
background: linear-gradient(135deg, #fff8ec, #fffdf8);
border: 1rpx solid #f0e0b8;
color: #8a6520;
font-size: 24rpx;
line-height: 1.5;
}
.pay-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20rpx;
padding: 20rpx 24rpx;
border-radius: 24rpx;
background: #f7faf9;
margin-bottom: 16rpx;
}
.pay-row .name {
font-size: 26rpx;
font-weight: 650;
color: #173128;
}
.pay-row .sub {
margin-top: 4rpx;
font-size: 22rpx;
color: #8aa198;
}
.pay-row .amt {
font-size: 28rpx;
font-weight: 750;
color: #9a7424;
font-variant-numeric: tabular-nums;
text-align: right;
}
.detail-footer {
position: fixed;
left: 0;
right: 0;
bottom: 0;
display: flex;
gap: 20rpx;
padding: 24rpx 28rpx calc(24rpx + env(safe-area-inset-bottom));
background: rgba(255, 255, 255, 0.96);
border-top: 1rpx solid var(--border, #d8f3e5);
z-index: 20;
}
.detail-footer .btn-flex {
flex: 1;
}