/** * 钢材价格查询页面样式 * 使用 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; }