598 lines
8.9 KiB
Plaintext
598 lines
8.9 KiB
Plaintext
/**
|
|
* 钢材价格查询页面样式
|
|
* 使用 TDesign 组件库 + 自定义样式
|
|
*/
|
|
|
|
page {
|
|
background-color: #f5f5f5;
|
|
height: 100%;
|
|
}
|
|
|
|
.container {
|
|
width: 100%;
|
|
min-height: 100vh;
|
|
padding-bottom: 120rpx;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* ========== 搜索表单区域 ========== */
|
|
.search-section {
|
|
padding: 40rpx 30rpx;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 36rpx;
|
|
font-weight: bold;
|
|
color: #1a1a1a;
|
|
margin-bottom: 32rpx;
|
|
padding-left: 16rpx;
|
|
border-left: 6rpx solid #0052D9;
|
|
}
|
|
|
|
.form-item {
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.btn-group {
|
|
display: flex;
|
|
gap: 20rpx;
|
|
margin-top: 40rpx;
|
|
}
|
|
|
|
/* ========== 加载状态 ========== */
|
|
t-loading {
|
|
margin: 40rpx 0;
|
|
}
|
|
|
|
/* ========== 查询结果区域 ========== */
|
|
.result-section {
|
|
padding: 0 30rpx;
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* 统计卡片 */
|
|
.stats-card {
|
|
padding: 24rpx;
|
|
margin-bottom: 24rpx;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.stats-title {
|
|
font-size: 28rpx;
|
|
font-weight: bold;
|
|
color: #1a1a1a;
|
|
margin-bottom: 20rpx;
|
|
padding-left: 8rpx;
|
|
}
|
|
|
|
.stats-grid {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 12rpx;
|
|
}
|
|
|
|
.stats-item {
|
|
flex: 0 0 calc(100% - 6rpx);
|
|
padding: 20rpx 16rpx;
|
|
text-align: center;
|
|
box-sizing: border-box;
|
|
min-height: 120rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.stats-label {
|
|
font-size: 24rpx;
|
|
color: #8c8c8c;
|
|
margin-bottom: 8rpx;
|
|
}
|
|
|
|
.stats-value {
|
|
font-size: 28rpx;
|
|
font-weight: bold;
|
|
color: #1a1a1a;
|
|
word-break: keep-all;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.stats-value.avg {
|
|
color: #0052D9;
|
|
}
|
|
|
|
.stats-value.min {
|
|
color: #52c41a;
|
|
}
|
|
|
|
.stats-value.max {
|
|
color: #ff4d4f;
|
|
}
|
|
|
|
.stats-trend {
|
|
margin-top: 16rpx;
|
|
padding-top: 16rpx;
|
|
border-top: 1rpx solid #f0f0f0;
|
|
font-size: 26rpx;
|
|
color: #595959;
|
|
text-align: center;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6rpx;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.trend-rate {
|
|
color: #8c8c8c;
|
|
font-size: 24rpx;
|
|
}
|
|
|
|
/* 价格列表 */
|
|
.price-list {
|
|
background: #fff;
|
|
border-radius: 16rpx;
|
|
padding: 24rpx;
|
|
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06);
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.list-header {
|
|
font-size: 26rpx;
|
|
color: #8c8c8c;
|
|
margin-bottom: 16rpx;
|
|
padding: 0 8rpx;
|
|
}
|
|
|
|
.price-card {
|
|
background: #fff;
|
|
border-radius: 12rpx;
|
|
padding: 24rpx;
|
|
margin-bottom: 16rpx;
|
|
border: 1rpx solid #f0f0f0;
|
|
transition: all 0.3s;
|
|
}
|
|
|
|
.price-card:active {
|
|
background: #fafafa;
|
|
transform: scale(0.98);
|
|
}
|
|
|
|
.price-main {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.price-info {
|
|
flex: 1;
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.price-region {
|
|
font-size: 30rpx;
|
|
font-weight: bold;
|
|
color: #1a1a1a;
|
|
margin-right: 8rpx;
|
|
}
|
|
|
|
.price-separator {
|
|
color: #d9d9d9;
|
|
margin: 0 8rpx;
|
|
}
|
|
|
|
.price-material {
|
|
font-size: 30rpx;
|
|
color: #1a1a1a;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.price-spec {
|
|
font-size: 26rpx;
|
|
color: #8c8c8c;
|
|
margin-left: 8rpx;
|
|
}
|
|
|
|
.price-value {
|
|
font-size: 36rpx;
|
|
font-weight: bold;
|
|
color: #ff4d4f;
|
|
}
|
|
|
|
.price-sub {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
font-size: 24rpx;
|
|
}
|
|
|
|
.price-date {
|
|
color: #595959;
|
|
}
|
|
|
|
/* ========== 加载更多状态 ========== */
|
|
.load-more {
|
|
padding: 32rpx 0;
|
|
text-align: center;
|
|
border-top: 1rpx solid #f0f0f0;
|
|
margin-top: 16rpx;
|
|
}
|
|
|
|
.loading-more {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 16rpx;
|
|
color: #8c8c8c;
|
|
font-size: 26rpx;
|
|
}
|
|
|
|
.no-more {
|
|
color: #bfbfbf;
|
|
font-size: 26rpx;
|
|
padding: 16rpx 0;
|
|
}
|
|
|
|
.scroll-hint {
|
|
color: #0052D9;
|
|
font-size: 26rpx;
|
|
padding: 16rpx 0;
|
|
animation: pulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0%, 100% {
|
|
opacity: 1;
|
|
}
|
|
50% {
|
|
opacity: 0.6;
|
|
}
|
|
}
|
|
|
|
/* ========== 欢迎区域 ========== */
|
|
.welcome-section {
|
|
padding: 60rpx 30rpx;
|
|
}
|
|
|
|
.welcome-card {
|
|
background: linear-gradient(135deg, #0052D9 0%, #003C9E 100%);
|
|
border-radius: 24rpx;
|
|
padding: 60rpx 40rpx;
|
|
text-align: center;
|
|
box-shadow: 0 8rpx 24rpx rgba(0, 82, 217, 0.25);
|
|
margin-bottom: 40rpx;
|
|
}
|
|
|
|
.welcome-icon {
|
|
font-size: 120rpx;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.welcome-title {
|
|
font-size: 40rpx;
|
|
font-weight: bold;
|
|
color: #fff;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.welcome-desc {
|
|
font-size: 28rpx;
|
|
color: rgba(255, 255, 255, 0.9);
|
|
}
|
|
|
|
.features {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
background: #fff;
|
|
border-radius: 16rpx;
|
|
padding: 40rpx;
|
|
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06);
|
|
}
|
|
|
|
.feature-item {
|
|
text-align: center;
|
|
}
|
|
|
|
.feature-icon {
|
|
font-size: 56rpx;
|
|
margin-bottom: 12rpx;
|
|
}
|
|
|
|
.feature-text {
|
|
font-size: 26rpx;
|
|
color: #595959;
|
|
}
|
|
|
|
/* ========== 价格详情弹窗 ========== */
|
|
.detail-modal {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: rgba(0, 0, 0, 0.5);
|
|
z-index: 9999;
|
|
display: flex;
|
|
align-items: flex-end;
|
|
animation: fadeIn 0.3s ease-in-out;
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.detail-content {
|
|
width: 100%;
|
|
max-height: 85vh;
|
|
background: #fff;
|
|
border-radius: 32rpx 32rpx 0 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
animation: slideUp 0.3s ease-out;
|
|
overflow: hidden;
|
|
}
|
|
|
|
@keyframes slideUp {
|
|
from {
|
|
transform: translateY(100%);
|
|
}
|
|
to {
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* 弹窗头部 */
|
|
.detail-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 32rpx;
|
|
border-bottom: 1rpx solid #f0f0f0;
|
|
background: #fff;
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 10;
|
|
}
|
|
|
|
.detail-title {
|
|
font-size: 36rpx;
|
|
font-weight: bold;
|
|
color: #1a1a1a;
|
|
}
|
|
|
|
.detail-close {
|
|
width: 56rpx;
|
|
height: 56rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 50%;
|
|
background: #f5f5f5;
|
|
transition: all 0.3s;
|
|
}
|
|
|
|
.detail-close:active {
|
|
background: #e6e6e6;
|
|
transform: scale(0.95);
|
|
}
|
|
|
|
.close-icon {
|
|
font-size: 48rpx;
|
|
color: #8c8c8c;
|
|
line-height: 1;
|
|
font-weight: 300;
|
|
}
|
|
|
|
/* 弹窗主体(可滚动) */
|
|
.detail-main {
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
padding: 32rpx;
|
|
background: linear-gradient(180deg, #f8f9fa 0%, #fff 100%);
|
|
}
|
|
|
|
/* 价格展示区域 */
|
|
.detail-price-section {
|
|
text-align: center;
|
|
padding: 48rpx 32rpx;
|
|
background: linear-gradient(135deg, #0052D9 0%, #003C9E 100%);
|
|
border-radius: 24rpx;
|
|
margin-bottom: 24rpx;
|
|
box-shadow: 0 8rpx 24rpx rgba(0, 82, 217, 0.2);
|
|
}
|
|
|
|
.price-label {
|
|
font-size: 28rpx;
|
|
color: rgba(255, 255, 255, 0.9);
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.price-value-large {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: center;
|
|
margin-bottom: 12rpx;
|
|
}
|
|
|
|
.price-symbol {
|
|
font-size: 48rpx;
|
|
color: #fff;
|
|
margin-right: 8rpx;
|
|
font-weight: 300;
|
|
}
|
|
|
|
.price-number {
|
|
font-size: 88rpx;
|
|
font-weight: bold;
|
|
color: #fff;
|
|
line-height: 1;
|
|
text-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.price-unit {
|
|
font-size: 26rpx;
|
|
color: rgba(255, 255, 255, 0.8);
|
|
}
|
|
|
|
/* 钢厂价信息 */
|
|
.detail-factory-price {
|
|
background: #fff;
|
|
border-radius: 16rpx;
|
|
padding: 24rpx;
|
|
border: 1rpx solid #e8e8e8;
|
|
}
|
|
|
|
.factory-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 12rpx 0;
|
|
}
|
|
|
|
.factory-row:not(:last-child) {
|
|
border-bottom: 1rpx solid #f0f0f0;
|
|
}
|
|
|
|
.factory-label {
|
|
font-size: 28rpx;
|
|
color: #595959;
|
|
}
|
|
|
|
.factory-value {
|
|
font-size: 32rpx;
|
|
font-weight: bold;
|
|
color: #1a1a1a;
|
|
}
|
|
|
|
/* 涨跌幅标签 */
|
|
.trend-tag {
|
|
padding: 8rpx 20rpx;
|
|
border-radius: 8rpx;
|
|
font-size: 26rpx;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.trend-up {
|
|
background: #fff1f0;
|
|
color: #ff4d4f;
|
|
}
|
|
|
|
.trend-down {
|
|
background: #f6ffed;
|
|
color: #52c41a;
|
|
}
|
|
|
|
.trend-flat {
|
|
background: #f5f5f5;
|
|
color: #8c8c8c;
|
|
}
|
|
|
|
/* 详细信息 */
|
|
.detail-info {
|
|
padding: 0 8rpx;
|
|
}
|
|
|
|
.info-section {
|
|
margin-bottom: 32rpx;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 28rpx;
|
|
font-weight: bold;
|
|
color: #1a1a1a;
|
|
margin-bottom: 20rpx;
|
|
padding-left: 16rpx;
|
|
border-left: 6rpx solid #0052D9;
|
|
}
|
|
|
|
/* 信息网格 */
|
|
.info-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 16rpx;
|
|
}
|
|
|
|
.info-item {
|
|
background: #fff;
|
|
padding: 20rpx;
|
|
border-radius: 12rpx;
|
|
border: 1rpx solid #f0f0f0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8rpx;
|
|
}
|
|
|
|
.info-label {
|
|
font-size: 24rpx;
|
|
color: #8c8c8c;
|
|
}
|
|
|
|
.info-value {
|
|
font-size: 28rpx;
|
|
color: #1a1a1a;
|
|
font-weight: 500;
|
|
word-break: break-all;
|
|
}
|
|
|
|
.info-value.highlight {
|
|
color: #0052D9;
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* 信息列表 */
|
|
.info-list {
|
|
background: #fff;
|
|
border-radius: 16rpx;
|
|
overflow: hidden;
|
|
border: 1rpx solid #f0f0f0;
|
|
}
|
|
|
|
.info-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 24rpx;
|
|
border-bottom: 1rpx solid #f0f0f0;
|
|
}
|
|
|
|
.info-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.row-label {
|
|
font-size: 28rpx;
|
|
color: #595959;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.row-value {
|
|
font-size: 28rpx;
|
|
color: #1a1a1a;
|
|
text-align: right;
|
|
flex: 1;
|
|
margin-left: 24rpx;
|
|
word-break: break-all;
|
|
}
|
|
|
|
.row-value.tag {
|
|
color: #0052D9;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* 底部按钮 */
|
|
.detail-footer {
|
|
padding: 24rpx 32rpx;
|
|
border-top: 1rpx solid #f0f0f0;
|
|
background: #fff;
|
|
}
|