|
|
.market-page { min-height: 100vh; background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%); } /* 头部容器优化 */ .header-container { position: relative; overflow: hidden; border-radius: 0 0 40rpx 40rpx; box-shadow: 0 4rpx 20rpx rgba(26, 124, 58, 0.15); } .header-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .bg-gradient { position: absolute; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(26, 124, 58, 0.95) 0%, rgba(46, 204, 113, 0.9) 50%, rgba(46, 204, 113, 0.85) 100%); } .bg-pattern { position: absolute; width: 100%; height: 100%; background-image: radial-gradient(circle at 20% 80%, rgba(255, 255, 255, 0.1) 2rpx, transparent 2rpx), radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.1) 2rpx, transparent 2rpx); background-size: 60rpx 60rpx; } .header-content { position: relative; z-index: 2; padding: 40rpx 32rpx 0; } .header-main { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 30rpx; } .title-area { flex: 1; } .app-name { font-size: 44rpx; font-weight: 700; color: white; letter-spacing: 1rpx; margin-bottom: 8rpx; text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1); } .app-desc { font-size: 24rpx; color: rgba(255, 255, 255, 0.9); } .header-actions { display: flex; align-items: center; gap: 20rpx; } .time-display { display: flex; align-items: center; background: rgba(255, 255, 255, 0.15); padding: 8rpx 16rpx; border-radius: 20rpx; font-size: 22rpx; color: white; } .time-display .iconfont { font-size: 24rpx; margin-right: 8rpx; }
.iconfont.rotating { animation: rotate 1s linear infinite; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* 数据统计摘要优化 */ .data-summary { display: flex; background: rgba(255, 255, 255, 0.15); backdrop-filter: blur(10rpx); border-radius: 20rpx; padding: 24rpx; margin-bottom: 30rpx; border: 1rpx solid rgba(255, 255, 255, 0.2); } .summary-item { flex: 1; display: flex; flex-direction: column; align-items: center; } .summary-value { font-size: 36rpx; font-weight: 700; color: white; margin-bottom: 8rpx; } .summary-label { font-size: 22rpx; color: rgba(255, 255, 255, 0.9); } .summary-divider { width: 1rpx; background: rgba(255, 255, 255, 0.3); margin: 0 20rpx; } /* 内容容器优化 */ .content-container { height: calc(100vh - 280rpx); padding: 0 32rpx; box-sizing: border-box; } /* 区块标题优化 */ .section-title { display: flex; align-items: center; margin: 40rpx 0 20rpx; padding-bottom: 16rpx; border-bottom: 2rpx solid #e2e8f0; position: relative; opacity: 0; transform: translateX(-20rpx); animation: slideIn 0.6s ease forwards; } .fade-in-item { opacity: 0; transform: translateX(-20rpx); animation: slideIn 0.6s ease forwards; } @keyframes slideIn { to { opacity: 1; transform: translateX(0); } }
.section-text { font-size: 32rpx; font-weight: 600; color: #1e293b; margin-right: 16rpx; } .section-desc { font-size: 24rpx; color: #64748b; flex: 1; } .section-indicator { width: 6rpx; height: 32rpx; background: #1a7c3a; border-radius: 3rpx; margin-left: 20rpx; } .data-count { background: #e2e8f0; color: #64748b; font-size: 22rpx; padding: 4rpx 12rpx; border-radius: 12rpx; margin-left: 12rpx; } .unread-badge { background: #ef4444; color: white; font-size: 20rpx; padding: 4rpx 12rpx; border-radius: 12rpx; margin-left: 12rpx; font-weight: 500; } /* 卡片通用样式优化 */ .market-card { background: white; border-radius: 24rpx; overflow: hidden; margin-bottom: 32rpx; box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.06); position: relative; border: 1rpx solid #e2e8f0; opacity: 0; transform: translateY(40rpx); } .market-card:active { transform: translateY(2rpx); box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.08); } .card-header { padding: 32rpx 32rpx 20rpx; border-bottom: 1rpx solid #f1f5f9; display: flex; justify-content: space-between; align-items: flex-start; } .card-title-area { flex: 1; } .card-main-title { display: flex; align-items: center; margin-bottom: 12rpx; } .card-icon { width: 56rpx; height: 56rpx; border-radius: 14rpx; margin-right: 16rpx; display: flex; align-items: center; justify-content: center; overflow: hidden; } .card-sales .card-icon { background: linear-gradient(135deg, #ff6b6b, #ff8e8e); } .card-feed .card-icon { background: linear-gradient(135deg, #4d96ff, #6bc5ff); } .card-trend .card-icon { background: linear-gradient(135deg, #ffd166, #ffde8a); } .icon-img { width: 40rpx; height: 40rpx; } .card-title-text { font-size: 32rpx; font-weight: 600; color: #1e293b; } .card-subtitle { font-size: 24rpx; color: #64748b; line-height: 1.4; } .card-status { display: flex; align-items: center; gap: 8rpx; } .status-dot { width: 12rpx; height: 12rpx; border-radius: 50%; } .status-dot.active { background: #10b981; animation: pulse 2s infinite; } .status-dot.inactive { background: #94a3b8; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .status-text { font-size: 22rpx; color: #64748b; } /* 数据滚动容器 */ .data-scroll-container { padding: 0 32rpx; box-sizing: border-box; } /* 销售市场列表样式 */ .price-list { padding: 20rpx 0; } .price-item { padding: 28rpx 0; border-bottom: 1rpx solid #f1f5f9; display: flex; flex-direction: column; gap: 12rpx; } .price-item:last-child { border-bottom: none; } .price-info { display: flex; justify-content: space-between; align-items: flex-start; } .product-name { font-size: 28rpx; font-weight: 500; color: #1e293b; } .product-region { font-size: 22rpx; color: #64748b; background: #f8fafc; padding: 4rpx 12rpx; border-radius: 12rpx; } .price-value { display: flex; align-items: baseline; justify-content: space-between; } .price-number { font-size: 36rpx; font-weight: 600; } .price-unit { font-size: 22rpx; color: #64748b; margin-left: 8rpx; } .trend-indicator { display: flex; align-items: center; gap: 8rpx; } .trend-icon { font-size: 28rpx; } .trend-change { font-size: 22rpx; font-weight: 500; } .price-value.up { color: #ef4444; } .price-value.down { color: #10b981; } .price-value.stable { color: #6b7280; } .price-time { display: flex; align-items: center; gap: 8rpx; font-size: 22rpx; color: #94a3b8; } .iconfont.icon-clock-small { font-size: 20rpx; } /* 饲料市场列表样式 */ .supplier-list { padding: 20rpx 0; } .supplier-item { padding: 28rpx 0; border-bottom: 1rpx solid #f1f5f9; display: flex; flex-direction: column; gap: 12rpx; } .supplier-item:last-child { border-bottom: none; } .supplier-info { display: flex; justify-content: space-between; align-items: flex-start; } .supplier-name { font-size: 28rpx; font-weight: 500; color: #1e293b; } .supplier-company { font-size: 22rpx; color: #64748b; background: #f8fafc; padding: 4rpx 12rpx; border-radius: 12rpx; max-width: 200rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .price-display { display: flex; align-items: center; justify-content: space-between; } .price-tag { padding: 8rpx 20rpx; border-radius: 20rpx; font-weight: 600; display: flex; align-items: baseline; min-width: 150rpx; } .price-tag.up { background: #fef2f2; color: #ef4444; } .price-tag.down { background: #f0fdf4; color: #10b981; } .price-tag.stable { background: #f8fafc; color: #6b7280; } .price-label { font-size: 32rpx; } .price-per { font-size: 22rpx; margin-left: 4rpx; } .trend-chart-small { width: 80rpx; height: 40rpx; display: flex; align-items: flex-end; gap: 4rpx; } .chart-bar { flex: 1; border-radius: 4rpx 4rpx 0 0; min-height: 8rpx; } .chart-bar.up { background: #ef4444; } .chart-bar.down { background: #10b981; } .chart-bar.stable { background: #94a3b8; } .supplier-time { display: flex; align-items: center; gap: 8rpx; font-size: 22rpx; color: #94a3b8; }
/* 市场趋势通知公告样式*/.notice-scroll-wrapper { position: relative; overflow: hidden; padding: 0 32rpx; } .notice-scroll-content { position: relative; } /* 无缝滚动列表样式 */ .notice-list { padding: 20rpx 0; } .notice-item { display: flex; padding: 28rpx 0; border-bottom: 1rpx solid #f1f5f9; gap: 20rpx; } .notice-item:last-child { border-bottom: none; } .notice-left { display: flex; flex-direction: column; align-items: center; gap: 8rpx; } .notice-type { padding: 4rpx 12rpx; border-radius: 12rpx; font-size: 20rpx; font-weight: 500; min-width: 60rpx; text-align: center; } .notice-type.report { background: rgba(59, 130, 246, 0.1); color: #3b82f6; } .notice-type.prediction { background: rgba(139, 92, 246, 0.1); color: #8b5cf6; } .notice-marker { width: 8rpx; height: 8rpx; border-radius: 50%; background: #94a3b8; } .notice-marker.new { background: #3b82f6; animation: blink 2s infinite; } @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .notice-content { flex: 1; display: flex; flex-direction: column; gap: 12rpx; } .notice-title-area { display: flex; align-items: center; gap: 12rpx; flex-wrap: wrap; } .notice-title { font-size: 28rpx; font-weight: 500; color: #1e293b; flex: 1; min-width: 200rpx; } .notice-tag { padding: 4rpx 10rpx; border-radius: 8rpx; font-size: 20rpx; font-weight: 500; } .notice-tag.hot { background: #fef2f2; color: #ef4444; } .notice-tag.new { background: #eff6ff; color: #3b82f6; } .notice-summary { font-size: 24rpx; color: #64748b; line-height: 1.4; } .notice-footer { display: flex; align-items: center; gap: 20rpx; font-size: 22rpx; color: #94a3b8; } /* 卡片底部优化 */ .card-footer { padding: 24rpx 32rpx; background: #f8fafc; border-top: 1rpx solid #f1f5f9; display: flex; justify-content: space-between; align-items: center; } .update-info { display: flex; align-items: center; gap: 8rpx; } .iconfont.icon-clock { font-size: 20rpx; color: #94a3b8; } .update-text { font-size: 22rpx; color: #64748b; } .scroll-tip { display: flex; align-items: center; gap: 8rpx; font-size: 22rpx; color: #94a3b8; } .scroll-tip .iconfont { font-size: 20rpx; } .statistics-info { flex: 1; } .stat-text { font-size: 22rpx; color: #64748b; } .auto-scroll-tip { display: flex; align-items: center; gap: 8rpx; font-size: 22rpx; color: #94a3b8; } .auto-scroll-tip .iconfont { font-size: 20rpx; animation: rotate 2s linear infinite; } /* 更新页脚优化 */ .update-footer { padding: 32rpx 0 100rpx; text-align: center; opacity: 0; transform: translateY(20rpx); animation: slideIn 0.6s ease 0.3s forwards; } .update-line { display: flex; align-items: center; justify-content: center; gap: 8rpx; margin-bottom: 12rpx; } .iconfont.icon-sync { font-size: 20rpx; color: #94a3b8; } .update-tip { font-size: 22rpx; color: #64748b; } /* 卡片特定样式 */ .card-sales { border-top: 4rpx solid #ff6b6b; } .card-feed { border-top: 4rpx solid #4d96ff; } .card-trend { border-top: 4rpx solid #ffd166; }
|