/* pages/express-order/express-order.wxss - 增强版,包含标签展示 */ .page-container { min-height: 100vh; background: linear-gradient(135deg, #0a0a0f 0%, #1a1a2e 50%, #16213e 100%); padding: 30rpx; box-sizing: border-box; padding-bottom: 40rpx; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif; } .balance-card { background: linear-gradient(135deg, rgba(20,20,30,0.9), rgba(30,30,50,0.9)); border-radius: 24rpx; padding: 36rpx; margin-bottom: 40rpx; color: #fff; box-shadow: 0 15rpx 35rpx rgba(0,0,0,0.4), 0 0 40rpx rgba(0,150,255,0.15); text-align: center; border: 1.5rpx solid rgba(0,180,255,0.2); backdrop-filter: blur(10rpx); position: relative; overflow: hidden; } .balance-card::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient(45deg, transparent 30%, rgba(0,180,255,0.1) 50%, transparent 70%); animation: cardShine 6s infinite linear; z-index: 1; } @keyframes cardShine { 0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); } 100% { transform: translateX(100%) translateY(100%) rotate(45deg); } } .balance-label { font-size: 28rpx; color: rgba(255,255,255,0.8); margin-bottom: 18rpx; font-weight: 500; position: relative; z-index: 2; } .balance-amount { display: flex; align-items: baseline; justify-content: center; margin-bottom: 15rpx; position: relative; z-index: 2; } .amount-value { font-size: 64rpx; font-weight: bold; color: #00B4FF; text-shadow: 0 0 20rpx rgba(0,180,255,0.7), 0 0 40rpx rgba(0,180,255,0.4); animation: amountGlow 3s infinite alternate; } @keyframes amountGlow { 0% { color: #00B4FF; text-shadow: 0 0 15rpx rgba(0,180,255,0.6); } 100% { color: #00E0FF; text-shadow: 0 0 25rpx rgba(0,180,255,0.8), 0 0 50rpx rgba(0,180,255,0.5); } } .amount-unit { font-size: 36rpx; color: #00B4FF; margin-left: 12rpx; font-weight: 500; z-index: 2; } .balance-tip { font-size: 24rpx; color: rgba(255,255,255,0.6); z-index: 2; } .section { margin-bottom: 35rpx; } .section-title { font-size: 32rpx; font-weight: 700; color: #FFFFFF; margin-bottom: 25rpx; padding-left: 12rpx; border-left: 6rpx solid #9C27B0; text-shadow: 0 2rpx 4rpx rgba(0,0,0,0.3); } .type-scroll { white-space: nowrap; display: flex; height: 90rpx; } .type-item { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; height: 85rpx; padding: 0 40rpx; margin-right: 20rpx; background: rgba(255,255,255,0.08); border-radius: 45rpx; border: 2rpx solid rgba(255,255,255,0.15); font-size: 28rpx; color: rgba(255,255,255,0.8); transition: all 0.3s cubic-bezier(0.175,0.885,0.32,1.275); backdrop-filter: blur(10rpx); } .type-active { background: linear-gradient(135deg, #9C27B0 0%, #673AB7 100%); border-color: #9C27B0; color: white; transform: scale(1.05); box-shadow: 0 10rpx 25rpx rgba(156,39,176,0.4), 0 0 30rpx rgba(156,39,176,0.3); } .type-text { max-width: 220rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; } /* 搜索区域 */ .search-section { margin-bottom: 35rpx; } .search-box { display: flex; align-items: center; background: rgba(255,255,255,0.1); border-radius: 50rpx; padding: 20rpx 30rpx; border: 2rpx solid rgba(255,255,255,0.2); backdrop-filter: blur(10rpx); transition: all 0.3s ease; } .search-box:focus-within { border-color: #9C27B0; background: rgba(255,255,255,0.15); box-shadow: 0 0 25rpx rgba(156,39,176,0.3); } .search-icon { font-size: 32rpx; color: rgba(255,255,255,0.7); margin-right: 20rpx; flex-shrink: 0; } .search-input { flex: 1; font-size: 28rpx; color: #FFFFFF; background: transparent; border: none; outline: none; min-height: 40rpx; } .search-input::placeholder { color: rgba(255,255,255,0.4); } .search-btn { background: linear-gradient(135deg, #9C27B0 0%, #673AB7 100%); border-radius: 40rpx; padding: 15rpx 30rpx; margin-left: 20rpx; flex-shrink: 0; box-shadow: 0 8rpx 20rpx rgba(156,39,176,0.3); } .search-btn:active { transform: scale(0.95); } .search-btn-text { font-size: 26rpx; color: white; font-weight: 600; } .filter-row { display: flex; align-items: center; margin-top: 20rpx; gap: 15rpx; } .filter-item { display: flex; align-items: center; background: rgba(255,255,255,0.08); border-radius: 30rpx; padding: 10rpx 20rpx; border: 1rpx solid rgba(255,255,255,0.15); } .filter-label { font-size: 24rpx; color: rgba(255,255,255,0.7); margin-right: 10rpx; } .filter-input { width: 120rpx; height: 50rpx; background: transparent; color: #fff; font-size: 26rpx; } .picker-view { padding: 10rpx 0; color: rgba(255,255,255,0.9); font-size: 26rpx; max-width: 160rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .clear-search { margin-left: auto; padding: 10rpx 20rpx; background: rgba(255,255,255,0.1); border-radius: 20rpx; color: rgba(255,255,255,0.7); font-size: 24rpx; } /* 模板区域 */ .template-section { height: calc(100vh - 600rpx); position: relative; } .template-scroll { height: 100%; } .template-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25rpx; padding-bottom: 30rpx; } .template-card { background: linear-gradient(145deg, rgba(30,30,45,0.9), rgba(40,40,60,0.9)); border-radius: 20rpx; padding: 25rpx; border: 1.5rpx solid rgba(255,255,255,0.1); box-shadow: 0 10rpx 30rpx rgba(0,0,0,0.3), 0 0 25rpx rgba(0,180,255,0.1); transition: all 0.3s ease; backdrop-filter: blur(10rpx); display: flex; flex-direction: column; min-height: 280rpx; position: relative; overflow: hidden; } .template-card::before { content: ''; position: absolute; top:0; left:0; right:0; height:4rpx; background: linear-gradient(90deg, #9C27B0, #00B4FF, #9C27B0); opacity:0.6; } .template-intro { flex:1; margin-bottom:10rpx; min-height:70rpx; overflow:hidden; } .intro-text { font-size:24rpx; line-height:1.4; color:rgba(255,255,255,0.9); display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; font-weight:500; } .template-label { margin-bottom: 10rpx; } .template-price-row { display:flex; align-items:center; margin-bottom:20rpx; padding:10rpx 0; border-bottom:1rpx solid rgba(255,255,255,0.1); } .template-price-label { font-size:22rpx; color:rgba(255,255,255,0.7); margin-right:10rpx; } .template-price-value { font-size:26rpx; font-weight:bold; color:#FFD700; text-shadow:0 0 10rpx rgba(255,215,0,0.3); flex:1; } .template-actions-grid { display:flex; flex-direction:column; gap:12rpx; margin-top:10rpx; } .action-grid-btn { height:65rpx; border-radius:32rpx; font-size:24rpx; font-weight:600; transition:all 0.3s ease; border:none; padding:0 20rpx; box-shadow:0 4rpx 12rpx rgba(0,0,0,0.2), inset 0 1rpx 0 rgba(255,255,255,0.1); display:flex !important; align-items:center !important; justify-content:center !important; text-align:center !important; } .generate-grid-btn { background:linear-gradient(135deg, #00B4FF, #0091EA); color:white; } .generate-grid-btn.generated { background:linear-gradient(135deg, #4CAF50, #2E7D32); } .copy-grid-btn { background:linear-gradient(135deg, #9C27B0, #673AB7); color:white; } .copy-grid-btn.copied { background:linear-gradient(135deg, #FF9800, #F57C00); } .add-card { background: linear-gradient(145deg, rgba(40,40,60,0.7), rgba(60,60,80,0.7)); border:2rpx dashed rgba(255,255,255,0.3); display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:280rpx; } .add-icon { font-size:60rpx; color:rgba(255,255,255,0.6); margin-bottom:20rpx; } .add-text { font-size:30rpx; color:rgba(255,255,255,0.8); font-weight:600; margin-bottom:8rpx; } .add-subtext { font-size:24rpx; color:rgba(255,255,255,0.5); } /* 弹窗通用 */ .modal-overlay { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.75); display:flex; align-items:center; justify-content:center; z-index:9999; padding:30rpx; backdrop-filter:blur(10rpx); animation:fadeIn 0.3s ease; } @keyframes fadeIn { from{opacity:0;} to{opacity:1;} } .modal-content { background:linear-gradient(145deg, rgba(30,30,45,0.95), rgba(40,40,60,0.95)); border-radius:30rpx; width:100%; max-width:700rpx; max-height:85vh; overflow-y:auto; border:1.5rpx solid rgba(255,255,255,0.15); box-shadow:0 25rpx 80rpx rgba(0,0,0,0.6), 0 0 60rpx rgba(0,180,255,0.2); animation:slideUp 0.4s cubic-bezier(0.175,0.885,0.32,1.275); position:relative; } @keyframes slideUp { from{transform:translateY(100rpx) scale(0.9); opacity:0;} to{transform:translateY(0) scale(1); opacity:1;} } .modal-close { position:absolute; top:25rpx; right:25rpx; width:60rpx; height:60rpx; border-radius:50%; background:rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; font-size:40rpx; color:rgba(255,255,255,0.7); z-index:10; } .modal-header { padding:40rpx 40rpx 20rpx; text-align:center; } .modal-title { font-size:36rpx; font-weight:bold; color:#FFFFFF; } .detail-info { padding:30rpx 40rpx; } .detail-item { margin-bottom:30rpx; } .detail-label { font-size:26rpx; color:rgba(255,255,255,0.7); margin-bottom:10rpx; font-weight:500; } .detail-value { font-size:28rpx; color:#FFFFFF; word-break:break-word; } .intro-value { background:rgba(255,255,255,0.05); border-radius:15rpx; padding:20rpx; border:1rpx solid rgba(255,255,255,0.1); max-height:200rpx; overflow-y:auto; } .detail-meta-row { display:flex; align-items:center; justify-content:space-between; padding:25rpx 0; margin:20rpx 0; border-top:1rpx solid rgba(255,255,255,0.1); border-bottom:1rpx solid rgba(255,255,255,0.1); } .meta-item { display:flex; flex-direction:column; align-items:center; flex:1; } .meta-label { font-size:22rpx; color:rgba(255,255,255,0.6); margin-bottom:8rpx; } .meta-value { font-size:26rpx; font-weight:600; } .price-meta { color:#FFD700; text-shadow:0 0 10rpx rgba(255,215,0,0.3); } .count-meta { color:#00B4FF; } .id-meta { color:#4CAF50; font-family:'Courier New',monospace; font-size:24rpx; } .meta-divider { color:rgba(255,255,255,0.2); font-size:24rpx; margin:0 15rpx; } .link-filter-bar { display:flex; align-items:center; margin-top:30rpx; margin-bottom:20rpx; } .filter-switch { padding:10rpx 25rpx; margin-left:10rpx; border-radius:20rpx; background:rgba(255,255,255,0.1); font-size:24rpx; color:rgba(255,255,255,0.7); transition:all 0.3s; } .filter-switch.active { background:linear-gradient(135deg, #00B4FF, #0091EA); color:white; } .link-list { background:rgba(0,0,0,0.2); border-radius:15rpx; padding:15rpx; } .link-item { display:flex; align-items:center; justify-content:space-between; padding:15rpx 0; border-bottom:1rpx solid rgba(255,255,255,0.1); } .link-url { flex:1; font-size:22rpx; color:rgba(255,255,255,0.8); word-break:break-all; margin-right:15rpx; } .link-status { font-size:20rpx; color:rgba(255,255,255,0.5); margin-right:15rpx; } .copy-link-btn { padding:8rpx 20rpx; background:#00B4FF; color:white; border-radius:15rpx; font-size:22rpx; } .load-more-links { text-align:center; padding:20rpx 0; } .load-more-btn { display:inline-block; padding:15rpx 40rpx; background:linear-gradient(135deg, #9C27B0, #673AB7); border-radius:30rpx; color:white; font-size:26rpx; } .link-loading, .link-empty { text-align:center; padding:30rpx; color:rgba(255,255,255,0.5); font-size:24rpx; } /* 弹窗按钮 */ .modal-actions-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18rpx; padding:30rpx 40rpx 40rpx; border-top:1rpx solid rgba(255,255,255,0.1); } .modal-grid-btn { height:85rpx; border-radius:42rpx; font-size:28rpx; font-weight:600; transition:all 0.3s; border:none; padding:0 20rpx; box-shadow:0 8rpx 25rpx rgba(0,0,0,0.3), inset 0 1rpx 0 rgba(255,255,255,0.2); display:flex !important; align-items:center !important; justify-content:center !important; } .generate-modal-grid-btn { background:linear-gradient(145deg, #00B4FF, #0091EA); color:white; } .copy-modal-grid-btn { background:linear-gradient(145deg, #9C27B0, #673AB7); color:white; } .copy-modal-grid-btn.copied { background:linear-gradient(145deg, #FF9800, #F57C00); } .edit-modal-grid-btn { background:linear-gradient(145deg, #4CAF50, #2E7D32); color:white; } .delete-modal-grid-btn { background:linear-gradient(145deg, #FF4444, #CC0000); color:white; } /* 编辑区 */ .edit-section { padding:30rpx 40rpx 20rpx; border-top:1rpx solid rgba(255,255,255,0.1); margin-top:20rpx; } .edit-item { margin-bottom:30rpx; } .edit-label { font-size:26rpx; color:rgba(255,255,255,0.8); margin-bottom:15rpx; font-weight:600; } .edit-input { width:100%; background:rgba(255,255,255,0.08); border:1.5rpx solid rgba(255,255,255,0.2); border-radius:15rpx; padding:25rpx; font-size:28rpx; color:#FFFFFF; } .intro-edit { min-height:150rpx; } .price-edit { text-align:center; font-size:32rpx; font-weight:600; height:90rpx; line-height:90rpx; } .picker-view { padding:25rpx; background:rgba(255,255,255,0.08); border-radius:15rpx; border:1.5rpx solid rgba(255,255,255,0.2); color:#fff; } .commission-item { display:flex; align-items:center; gap:20rpx; } .commission-input { flex:1; background:rgba(255,255,255,0.08); border-radius:15rpx; padding:20rpx; color:#fff; } /* 添加表单 */ .add-form { padding:30rpx 40rpx 20rpx; } .form-item { margin-bottom:35rpx; } .form-label { font-size:28rpx; color:rgba(255,255,255,0.8); margin-bottom:18rpx; font-weight:600; } .intro-input, .price-input { width:100%; background:rgba(255,255,255,0.08); border:1.5rpx solid rgba(255,255,255,0.2); border-radius:15rpx; padding:25rpx; font-size:28rpx; color:#FFFFFF; } .intro-input { min-height:180rpx; } .price-input { height:90rpx; line-height:90rpx; text-align:center; font-weight:600; } .add-actions-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:25rpx; padding:30rpx 40rpx 40rpx; border-top:1rpx solid rgba(255,255,255,0.1); } .cancel-grid-btn { background:rgba(255,255,255,0.1); color:rgba(255,255,255,0.8); border:1.5rpx solid rgba(255,255,255,0.2); } .confirm-add-grid-btn { background:linear-gradient(145deg, #9C27B0, #673AB7); color:white; } /* 确认弹窗 */ .confirm-content { background:linear-gradient(145deg, rgba(40,40,60,0.95), rgba(50,50,70,0.95)); border-radius:25rpx; padding:50rpx 40rpx 40rpx; width:85%; max-width:550rpx; border:1.5rpx solid rgba(255,255,255,0.15); box-shadow:0 30rpx 90rpx rgba(0,0,0,0.7); text-align:center; animation:scaleIn 0.3s ease; } @keyframes scaleIn { from{transform:scale(0.8); opacity:0;} to{transform:scale(1); opacity:1;} } .confirm-title { font-size:34rpx; font-weight:bold; color:#FFFFFF; margin-bottom:25rpx; } .confirm-text { font-size:28rpx; color:rgba(255,255,255,0.8); margin-bottom:40rpx; } .confirm-actions-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:25rpx; } .confirm-grid-btn { height:85rpx; border-radius:42rpx; font-size:28rpx; font-weight:600; display:flex; align-items:center; justify-content:center; } .cancel-confirm-grid-btn { background:rgba(255,255,255,0.1); color:rgba(255,255,255,0.8); border:1.5rpx solid rgba(255,255,255,0.2); } .delete-confirm-grid-btn { background:linear-gradient(145deg, #FF4444, #CC0000); color:white; } .confirm-new-link-grid-btn { background:linear-gradient(145deg, #00B4FF, #0091EA); color:white; } .loading-mask { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(18,18,24,0.95); display:flex; align-items:center; justify-content:center; z-index:10000; } .loading-content { background:rgba(40,40,60,0.95); padding:60rpx 80rpx; border-radius:30rpx; display:flex; flex-direction:column; align-items:center; box-shadow:0 25rpx 70rpx rgba(0,0,0,0.6); } .loading-spinner { width:90rpx; height:90rpx; border:8rpx solid rgba(0,180,255,0.2); border-top:8rpx solid #00B4FF; border-radius:50%; animation:spin 1.2s linear infinite; margin-bottom:35rpx; } .loading-text { font-size:30rpx; color:#00B4FF; font-weight:600; } @keyframes spin { 0%{transform:rotate(0deg);} 100%{transform:rotate(360deg);} }