/* ========== 订单页面 - 大厂专业设计风格 ========== */ * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #f5f6fa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', 'Microsoft YaHei', sans-serif; min-height: 100vh; -webkit-font-smoothing: antialiased; } /* ========== 头部区域 - 统一主题色 ========== */ .header-section { background: linear-gradient(135deg, #018fa5 0%, #0a7a8c 50%, #0b6b7c 100%); padding: 16px 0 0; color: #fff; border-radius: 0 0 20px 20px; position: relative; overflow: hidden; } .header-section::before { content: ''; position: absolute; top: -35px; right: -25px; width: 130px; height: 130px; background: rgba(138,202,188,0.14); border-radius: 50%; } .header-section::after { content: ''; position: absolute; bottom: -22px; left: 28px; width: 85px; height: 85px; background: rgba(138,202,188,0.09); border-radius: 50%; } .header-top { display: flex; align-items: center; justify-content: space-between; padding: 18px 18px 14px; position: relative; z-index: 1; } .page-title { font-size: 19px; font-weight: 700; letter-spacing: 0.5px; } .header-actions { display: flex; gap: 10px; } .icon-btn { width: 36px; height: 36px; border-radius: 12px; background: rgba(255,255,255,0.15); display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; backdrop-filter: blur(4px); } .icon-btn:active { transform: scale(0.92); background: rgba(255,255,255,0.28); } /* Tab栏 */ .header-section .van-tabs { background: transparent !important; position: relative; z-index: 1; } .header-section .van-tabs__nav { background: transparent !important; } .header-section .van-tab { color: rgba(255,255,255,0.7); font-size: 13.5px; font-weight: 500; padding: 8px 10px !important; } .header-section .van-tab--active { color: #fff !important; font-weight: 700; } .header-section .van-tabs__line { background: #fff !important; width: 22px !important; height: 3px !important; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); } /* ========== 订单列表容器 ========== */ .order-list-wrapper { padding: 14px 12px 80px; } /* ========== 订单卡片 - 核心设计 ========== */ .order-card { background: #fff; border-radius: 16px; margin-bottom: 13px; overflow: hidden; box-shadow: 0 1px 4px rgba(1,143,165,0.04), 0 3px 12px rgba(1,143,165,0.06); transition: all 0.25s cubic-bezier(.25,.46,.45,.94); border: 1px solid rgba(1,143,165,0.05); } .order-card:active { transform: scale(0.985); box-shadow: 0 2px 8px rgba(1,143,165,0.08), 0 6px 20px rgba(1,143,165,0.1); } /* ---- 卡片顶部:状态 + 订单号 + 时间 ---- */ .oc-top { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 10px; } .oc-top-left { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; } /* 状态圆点 */ .oc-status-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; animation: pulse-dot 2s infinite; } @keyframes pulse-dot { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } } .dot-pending { background: #e08c28; } .dot-ongoing { background: #018fa5; } .dot-completed { background: #2ba245; } .dot-cancelled { background: #ccc; } .dot-cancelled { animation: none; } /* 状态文字 */ .oc-status-text { font-size: 12.5px; font-weight: 600; letter-spacing: 0.3px; flex-shrink: 0; } .text-pending { color: #e08c28; } .text-ongoing { color: #018fa5; } .text-completed { color: #2ba245; } .text-cancelled { color: #bbb; } /* 订单号 */ .oc-no { font-size: 11.5px; color: #bbb; letter-spacing: 0.3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 时间 */ .oc-time { font-size: 11px; color: #333; flex-shrink: 0; margin-left: 10px; } /* ---- 核心信息区(图标+详情)---- */ .oc-main { display: flex; gap: 14px; padding: 2px 16px 12px; } /* 左侧服务图标 */ .oc-service-icon { width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .icon-pending { background: linear-gradient(145deg, #fef6ec, #fcebd6); color: #e08c28; } .icon-ongoing { background: linear-gradient(145deg, #e6f5f8, #d0ebe8); color: #018fa5; } .icon-completed { background: linear-gradient(145deg, #eaf7ee, #ddf0e4); color: #2ba245; } .icon-cancelled { background: linear-gradient(145deg, #f5f5f5, #ececec); color: #bbb; } /* 右侧详情 */ .oc-detail { flex: 1; min-width: 0; } /* 服务类型行 */ .oc-title-row { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; } .oc-service-type { font-size: 16px; font-weight: 700; color: #1a1a2e; letter-spacing: 0.3px; } /* 元信息行 */ .oc-meta-row { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; } .oc-meta-item { display: flex; align-items: center; gap: 5px; font-size: 12.5px; color: #888; } .oc-meta-item .van-icon { color: #999; line-height: 1; } .oc-location { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 护工信息条 */ .oc-nurse-bar { display: flex; align-items: center; gap: 5px; margin-top: 9px; padding: 8px 10px; background: #fafbfd; border-radius: 10px; border: 1px solid #f0f1f3; } .nurse-avatar-sm { width: 24px; height: 24px; border-radius: 7px; background: linear-gradient(135deg, #e6f5f8, #d0ebe8); display: flex; align-items: center; justify-content: center; color: #018fa5; flex-shrink: 0; } .nurse-name-sm { font-size: 14px; font-weight: 600; color: #333; } .nurse-rating-sm { font-size: 11.5px; font-weight: 600; color: #e08c28; } .nurse-exp-sm { font-size: 11.5px; color: #999; } .nurse-phone-sm { font-size: 14px; color: #018fa5; font-weight: 500; cursor: pointer; display: inline-flex; align-items: center; padding: 2px 6px; border-radius: 4px; transition: background 0.2s; } .nurse-phone-sm:active { background: rgba(1,143,165,0.08); } /* ---- 备注预览 ---- */ .oc-remark { display: flex; align-items: flex-start; gap: 6px; margin: 0 16px; padding: 10px 12px; background: #fffbf5; /* border-radius: 10px; */ border-left: 3px solid #f0ce68; } .oc-remark .van-icon { color: #d4a832; margin-top: 1px; flex-shrink: 0; } .oc-remark span { font-size: 12.5px; color: #997a22; line-height: 1.5; word-break: break-all; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } /* ---- 底部操作栏 ---- */ .oc-bottom { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border-top: 1px solid #f5f6f8; background: #fcfcfd; } /* 价格区块 */ .oc-price-block { display: flex; align-items: baseline; gap: 6px; } .oc-price-label { font-size: 12px; color: #999; } .oc-price-value { display: flex; align-items: baseline; } .oc-yen { font-size: 14px; font-weight: 700; color: #dc3545; } .oc-amount { font-size: 22px; font-weight: 800; color: #dc3545; letter-spacing: -0.5px; } /* 操作按钮组 */ .oc-actions { display: flex; align-items: center; gap: 8px; } .oc-actions .van-button { height: 30px; padding: 0 16px; font-size: 12.5px; font-weight: 500; letter-spacing: 0.3px; } /* 空状态 */ .empty-btn { margin-top: 14px; } /* 底部导航 */ :deep(.van-tabbar) { box-shadow: 0 -2px 14px rgba(0,0,0,0.05); } :deep(.van-tabbar-item--active) { color: #018fa5 !important; } /* 搜索弹窗 */ :deep(.van-search__content) { background: #fff !important; border-radius: 10px !important; } :deep(.van-field__control) { font-size: 13px; } /* ========== 入场动画 ========== */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } } .order-card:nth-child(1) { animation: fadeInUp 0.35s ease-out 0.02s both; } .order-card:nth-child(2) { animation: fadeInUp 0.35s ease-out 0.07s both; } .order-card:nth-child(3) { animation: fadeInUp 0.35s ease-out 0.12s both; } .order-card:nth-child(4) { animation: fadeInUp 0.35s ease-out 0.17s both; } .order-card:nth-child(n+5) { animation: fadeInUp 0.35s ease-out 0.22s both; } /* ========== 响应式适配 ========== */ @media (max-width: 360px) { .oc-service-icon { width: 46px; height: 46px; border-radius: 12px; } .oc-service-type { font-size: 15px; } .oc-meta-item { font-size: 12px; } .oc-amount { font-size: 19px; } .oc-actions .van-button { height: 28px; padding: 0 13px; font-size: 12px; } }