* { margin: 0; padding: 0; } a { text-decoration: none; } body { margin: 0; padding: 0; height: 100vh; font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; background-color: #f5f7fc; overflow: hidden; color: #333; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .header { height: 10vh; background: linear-gradient(135deg, #5b7bfa 0%, #6883f4 50%, #5570e8 100%); color: #ffffff; display: flex; padding: 0 30px; margin-bottom: 1.5vh; box-shadow: 0 2px 8px rgba(91, 123, 250, 0.15); } .home-logo { /* width: 18%; */ } .home-left { font-size: 18px; line-height: 10vh; width: 20%; font-weight: 500; } .home-left a { color: #fff; } .home-center { text-align: center; font-size: 24px; width: 80%; line-height: 10vh; font-weight: 600; letter-spacing: 0.5px; } .home-icon { display: flex; width: 50%; } .home-icon-list { margin-right: 30px; background-color: #fff; width: 80px; text-align: center; border-radius: 8px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; } .home-icon-list:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); transform: translateY(-2px); } .home-icon-list a { color: #5b7bfa; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 80px; font-weight: 500; font-size: 13px; transition: color 0.3s ease; } .home-icon-list a:hover { color: #4a68f0; } .home-icon-list img { height: 28px; margin-bottom: 8px; } .home-right { display: flex; align-items: center; } .home-right-top { display: flex; justify-content: flex-end; } .home-right-top div { margin-left: 20px; } .home-right-right { margin-left: 30px; } .home-right-right img { height: 30px; } .content { display: flex; height: calc(100vh - 13vh); } .left { width: 30%; background-color: #ffffff; border-radius: 8px; margin-left: 15px; position: relative; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); display: flex; flex-direction: column; height: calc(100vh - 13vh); } .right { flex: 1; background-color: #ffffff; margin: 0 15px; border-radius: 8px; position: relative; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); } .member-content { width: 100%; background-color: #ffffff; border-radius: 8px; margin: 0 15px; position: relative; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); } /*用户*/ .user-info-container { display: flex; align-items: center; background: linear-gradient(135deg, #fbfcff 0%, #f5f8ff 100%); box-shadow: 0 1px 3px rgba(91, 123, 250, 0.1); padding: 20px; border-radius: 8px 8px 0 0; color: #666; min-height: 140px; flex-shrink: 0; } .user-logo img { width: 76px; height: 76px; margin-right: 15px; border-radius: 50%; object-fit: cover; } .user-details { display: flex; flex-direction: column; width: 62%; } .user-name { font-size: 18px; margin-bottom: 8px; color: #1a1a1a; font-weight: 600; } .vip-tag { background-color: #e6b800; color: white; padding: 2px 8px; border-radius: 4px; margin-left: 5px; font-size: 12px; font-weight: 600; } .user-details-bottom { display: flex; gap: 15px; font-size: 13px; } .user-phone, .user-balance, .user-points, .user-discount { color: #999; } .member-buttons { display: flex; flex-direction: column; gap: 12px; margin-left: 16px; flex-shrink: 0; } .member-buttons .logout-btn { margin-left: 0; width: 110px; height: 38px; padding: 0 16px; white-space: nowrap; display: flex; align-items: center; justify-content: center; font-size: 14px; } .logout-btn { background: linear-gradient(135deg, #5b7bfa 0%, #6883f4 100%); color: white; border: none; padding: 8px 20px; border-radius: 6px; font-size: 14px; cursor: pointer; width: 90px; margin-left: 10px; font-weight: 500; transition: all 0.3s ease; box-shadow: 0 2px 6px rgba(91, 123, 250, 0.2); } .logout-btn:hover { background: linear-gradient(135deg, #4a68f0 0%, #5570e8 100%); box-shadow: 0 4px 12px rgba(91, 123, 250, 0.3); transform: translateY(-1px); } /*左侧商品*/ .product-container-list { border-bottom: 1px solid #f0f0f0; padding: 18px 20px; transition: background-color 0.2s ease; } .product-container-list:hover { background-color: #fafbff; } .pcl-active { background-color: #f2f5fe; border-left: 3px solid #5b7bfa; } .product-container { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0; } .product-left { display: flex; align-items: center; } .promotion-icon { width: 22px; height: 22px; margin-right: 8px; } .product-name { font-size: 16px; color: #333; font-weight: 500; } .product-right { display: flex; align-items: center; gap: 8px; } .minus-icon, .plus-icon { font-size: 20px; cursor: pointer; color: white; background: linear-gradient(135deg, #5b7bfa 0%, #6883f4 100%); border-radius: 50%; width: 28px; height: 28px; line-height: 28px; text-align: center; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; } .minus-icon:hover, .plus-icon:hover { transform: scale(1.1); box-shadow: 0 2px 8px rgba(91, 123, 250, 0.3); } .delete-icon { width: 22px; height: 22px; margin-left: 8px; cursor: pointer; transition: transform 0.2s ease; } .delete-icon:hover { transform: scale(1.1); } .quantity { font-size: 16px; margin: 0 8px; color: #333; font-weight: 500; min-width: 25px; text-align: center; } .price-container { width: 100%; display: flex; justify-content: space-between; margin-top: 8px; } .discount-tag { background-color: #f5625a; color: white; padding: 2px 8px; border-radius: 3px; margin-right: 6px; font-size: 12px; font-weight: 600; } .discount-price { color: #e60012; margin-right: 8px; font-weight: 600; font-size: 15px; } .original-price { text-decoration: line-through; color: #999; font-size: 13px; } .discount-info { color: #e60012; } .discount-info-down { width: 12px; height: 12px; } .final-price { color: #1a1a1a; font-size: 16px; margin-left: 15px; font-weight: 600; } /*合计*/ .amount-price-container { display: flex; justify-content: space-between; align-items: center; position: absolute; bottom: 0; box-shadow: 0 -8px 16px rgba(0, 0, 0, 0.08); height: 90px; width: 100%; z-index: 999; background: #ffffff; border-top: 1px solid #f0f0f0; } .left-info { text-align: left; align-items: center; display: flex; margin-left: 20px; gap: 15px; } .left-info-count { font-size: 16px; margin-right: 0; color: #666; font-weight: 500; } .right-info { text-align: right; width: 30%; margin-right: 20px; font-weight: 600; font-size: 18px; color: #1a1a1a; } .gray-text { color: #999; font-weight: 400; } .red-text { color: #e60012; font-weight: 600; } .red-text img { width: 12px; height: 12px; } .red-big { font-size: 24px; } /*右侧*/ .nav-bar { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; border-bottom: 1px solid #f0f0f0; } .nav-item { text-decoration: none; color: #666; font-size: 15px; font-weight: 500; transition: color 0.2s ease; } .nav-active { color: #5b7bfa; font-weight: 600; } .nav-item:hover { color: #5b7bfa; } .nav-arrow img { width: 18px; height: 18px; } .search-bar { display: flex; align-items: center; margin: 0 20px; gap: 8px; } .search-bar input { flex: 1; padding: 10px 12px; border: 1px solid #e0e0e0; border-radius: 6px 0 0 6px; border-right: 0; font-size: 14px; transition: border-color 0.2s ease; } .search-bar input:focus { outline: none; border-color: #5b7bfa; } .clear-button { text-decoration: none; color: #5b7bfa; padding: 10px 16px; border: 1px solid #e0e0e0; border-left: 0; border-radius: 0 6px 6px 0; background-color: white; font-size: 14px; font-weight: 500; transition: all 0.2s ease; } .clear-button:hover { background-color: #f5f7fc; } .query-button, .refresh-button { padding: 10px 24px; border: none; border-radius: 6px; margin-left: 12px; color: white; background: linear-gradient(135deg, #5b7bfa 0%, #6883f4 100%); cursor: pointer; font-size: 14px; font-weight: 500; transition: all 0.3s ease; box-shadow: 0 2px 6px rgba(91, 123, 250, 0.2); } .query-button:hover, .refresh-button:hover { background: linear-gradient(135deg, #4a68f0 0%, #5570e8 100%); box-shadow: 0 4px 12px rgba(91, 123, 250, 0.3); transform: translateY(-1px); } .clear-button:hover { background-color: #f8f9fa; } .right-list-box { display: flex; flex-wrap: wrap; margin: 20px; gap: 16px; } .right-product-container { display: flex; width: 300px; border: 1px solid #e5e5e5; border-radius: 8px; overflow: hidden; transition: all 0.3s ease; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); } .right-product-container:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); transform: translateY(-4px); border-color: #5b7bfa; } .right-product-img img { width: 100px; height: 160px; border-radius: 8px 0 0 8px; display: block; object-fit: cover; } .right-product-info { padding: 12px 15px; flex: 1; } .right-title-info { margin-top: 8px; display: flex; } .right-promotion-tag { width: 24px; height: 24px; } .right-product-name { font-size: 16px; margin-bottom: 10px; width: 180px; font-weight: 500; color: #333; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .right-price-info { /* margin-top: 30px; */ /* margin-top: 60px; */ } .right-original-price { color: #999; margin-bottom: 5px; font-size: 13px; } .right-discount-tag { background-color: #ff4500; color: white; padding: 2px 8px; border-radius: 3px; font-size: 11px; font-weight: 600; } .right-discounted-price { color: #ff4500; font-weight: 600; font-size: 16px; } .right-bottom { display: flex; justify-content: space-between; align-items: center; background-color: #fff; height: 90px; box-shadow: 0 -8px 16px rgba(0, 0, 0, 0.08); position: absolute; bottom: 0; width: 100%; border-top: 1px solid #f0f0f0; } .right-bottom-btn-box { display: flex; align-items: center; margin-left: 20px; gap: 10px; } .right-bottom-btn { padding: 9px 18px; background-color: #f2f5fe; border: 1px solid #d0d9ff; cursor: pointer; border-radius: 6px; color: #5b7bfa; font-weight: 500; font-size: 14px; transition: all 0.2s ease; } .right-bottom-btn:hover { background-color: #e8ecff; border-color: #5b7bfa; } .more-btn { display: flex; align-items: center; cursor: pointer; background-color: #f2f5fe; border: 1px solid #d0d9ff; padding: 8px 18px; border-radius: 6px; color: #5b7bfa; font-weight: 500; font-size: 14px; transition: all 0.2s ease; } .more-btn:hover { background-color: #e8ecff; border-color: #5b7bfa; } .more-btn span { margin-right: 6px; } .arrow-down { width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid #5b7bfa; } .btn-js { padding: 12px 60px; background: linear-gradient(135deg, #de532c 0%, #d43d1a 100%); border: none; color: white; cursor: pointer; border-radius: 6px; margin-right: 20px; font-size: 16px; font-weight: 600; transition: all 0.3s ease; box-shadow: 0 2px 6px rgba(222, 83, 44, 0.2); } .btn-js:hover { background: linear-gradient(135deg, #d43d1a 0%, #c5300d 100%); box-shadow: 0 4px 12px rgba(222, 83, 44, 0.3); transform: translateY(-1px); } /*会员详情*/ .member-container { width: 100%; display: flex; padding-top: 20px; } .member-left { width: 8%; text-align: center; } .member-left img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; } .member-left-plus { background: linear-gradient(135deg, #5b7bfa 0%, #6883f4 100%); border-radius: 50%; color: #FFF; display: inline-block; padding: 8px 16px; font-weight: 600; font-size: 12px; margin-top: 8px; } .member-right { width: 92%; } .member-basic-info { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .member-basic-info-left span { margin-right: 30px; color: #333; font-weight: 500; } .member-edit-button { color: #5b7bfa; text-decoration: none; margin-right: 40px; display: flex; align-items: center; font-weight: 500; font-size: 14px; transition: color 0.2s ease; } .member-edit-button:hover { color: #4a68f0; } .member-edit-button img { width: 18px; height: 18px; margin-right: 6px; } /* 会员详细信息样式 */ .member-detail-info { display: flex; flex-wrap: wrap; width: 100%; gap: 12px; padding: 0 20px; } .member-info-item { text-align: center; flex: 1; min-width: 100px; border: 1px solid #f0f0f0; border-radius: 6px; background-color: #fafbff; padding: 12px; transition: all 0.2s ease; } .member-info-item:hover { border-color: #d0d9ff; background-color: #f2f5fe; } .member-info-item-left { display: flex; align-items: center; justify-content: center; margin-top: 8px; } .member-icon-money, .member-icon-point, .member-icon-backup, .member-icon-coupon, .member-icon-gift, .member-icon-times, .member-icon-shopping { width: 24px; height: 24px; margin-right: 6px; } .member-info-value { display: block; font-size: 18px; font-weight: 600; color: #1a1a1a; } .member-info-label { font-size: 13px; color: #999; margin-top: 6px; } .member-red { color: #fe5967; } .member-brown { color: #c39154; } .member-blue { color: #1a6bf0; } .member-yellow { color: #e58d43; } .member-green { color: #46b161; } .member-blue-light { color: #5b7bfa; } .member-tab { display: flex; align-items: center; font-size: 16px; border-bottom: 1px solid #f0f0f0; margin: 20px; width: 97.8%; gap: 20px; } .member-tab-list { margin-right: 0; padding-bottom: 16px; color: #666; font-weight: 500; cursor: pointer; transition: all 0.2s ease; position: relative; } .member-tab-list:hover { color: #5b7bfa; } .tab-ative { color: #5b7bfa; font-weight: 600; } .tab-ative::after { content: ''; position: absolute; bottom: -16px; left: 0; right: 0; height: 2px; background-color: #5b7bfa; } /*会员表格*/ .member-table { border-collapse: collapse; width: 97.8%; margin: 0 auto; } .member-table td { border: 1px solid #f0f0f0; padding: 12px 15px; text-align: left; color: #333; font-size: 14px; } .member-table-blue { background-color: #f2f5fe; width: 6%; } .member-table-text { width: 96.8%; display: flex; } .member-text-edit { display: flex; align-items: center; color: #5b7bfa; margin-left: 20px; font-weight: 500; font-size: 14px; cursor: pointer; transition: color 0.2s ease; } .member-text-edit:hover { color: #4a68f0; } .member-text-edit img { width: 16px; height: 16px; margin-right: 6px; } .member-text-red { color: #de532c; margin-left: 30px; } .right-bottom-btn-blue { background: linear-gradient(135deg, #5b7bfa 0%, #6883f4 100%); padding: 12px 60px; border: none; color: white; cursor: pointer; border-radius: 6px; margin-right: 20px; font-size: 16px; font-weight: 600; transition: all 0.3s ease; box-shadow: 0 2px 6px rgba(91, 123, 250, 0.2); } .right-bottom-btn-blue:hover { background: linear-gradient(135deg, #4a68f0 0%, #5570e8 100%); box-shadow: 0 4px 12px rgba(91, 123, 250, 0.3); transform: translateY(-1px); } /*结算*/ .settlement-right-box { display: flex; justify-content: space-between; } .settlement-right-left { width: 45%; padding: 20px; /* ✅ 使用 flex 布局确保按钮区域始终可见 */ display: flex; flex-direction: column; height: 100%; overflow: hidden; } .settlement-right-right { width: 55%; padding: 20px 0; } .settlement-right-top { background: linear-gradient(135deg, #f2f5fe 0%, #e8ecff 100%); border-radius: 6px; padding: 18px; font-size: 15px; display: flex; align-items: center; margin-bottom: 20px; border: 1px solid #d0d9ff; } .settlement-right-top span { font-size: 24px; font-weight: 700; color: #f0615b; margin-left: 8px; } .calculator { width: 100%; } .calculator-row { display: flex; justify-content: space-between; padding: 0 20px 14px 0; gap: 8px; } .calculator-button { display: flex; justify-content: center; align-items: center; height: 125px; background-color: #f2f5fe; border: 1px solid #d0d9ff; font-size: 24px; cursor: pointer; width: 23.2%; border-radius: 6px; font-weight: 600; color: #5b7bfa; transition: all 0.2s ease; } .calculator-button:hover { background-color: #e8ecff; border-color: #5b7bfa; } .calculator-button img { width: 48px; height: 48px; } .settlement-item { width: 31.2%; margin-right: 2.4%; border-radius: 6px; background-color: #fafbff; border: 1px solid #f0f0f0; } .settlement-item:nth-child(3n) { margin-right: 0; } .settlement-item-four { width: 22.4%; margin-right: 1.9%; height: 110px; border-radius: 6px; margin-bottom: 14px; background-color: #fafbff; border: 1px solid #f0f0f0; } .settlement-item-four .member-info-item-left { margin-top: 30px; } .settlement-label { font-size: 16px; font-weight: 500; color: #333; } .calculator-green { border: 1px solid #43b560; background-color: #fff; color: #43b560; } .calculator-green:hover { background-color: #f5fff5; } .calculator-yellow { border: 1px solid #ffa652; background-color: #fff; color: #ffa652; } .calculator-yellow:hover { background-color: #fffaf5; } .calculator-red { border: 1px solid #f55b5d; background-color: #fff; color: #f55b5d; } .calculator-red:hover { background-color: #fff5f5; } .calculator-green-bg { background-color: #43b560; color: #fff; } .calculator-blue-bg { background-color: #5b7bfa; color: #fff; } .order-details { border-radius: 6px; background-color: #f9faff; position: relative; padding: 20px; /* ✅ 移除固定高度,使用 flex 布局自适应 */ /* height: 34.8vh; */ margin-bottom: 15px; border: 1px solid #f0f0f0; } .order-details-top { background: linear-gradient(135deg, #5b7bfa 0%, #6883f4 100%); border-radius: 100px; width: 100%; height: 14px; position: relative; bottom: -7px; z-index: 0; margin-top: 10px; } .order-details h2 { padding-bottom: 12px; margin-bottom: 15px; color: #1a1a1a; font-weight: 600; font-size: 16px; } .order-item { display: flex; justify-content: space-between; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px dashed #e8ecff; } .order-item:last-child { border-bottom: 0; } .order-label { font-size: 14px; color: #666; font-weight: 500; } .order-value { font-size: 14px; color: #333; font-weight: 500; } .settlement-item .member-icon-money, .settlement-item .member-icon-point, .settlement-item .member-icon-backup, .settlement-item .member-icon-coupon, .settlement-item .member-icon-gift, .settlement-item .member-icon-times, .settlement-item .member-icon-shopping, .settlement-item-four .member-icon-money, .settlement-item-four .member-icon-point, .settlement-item-four .member-icon-backup, .settlement-item-four .member-icon-coupon, .settlement-item-four .member-icon-gift, .settlement-item-four .member-icon-times, .settlement-item-four .member-icon-shopping { width: 32px; height: 32px; margin-right: 0; } /* ✅ 库存不足样式 */ .right-product-container.out-of-stock { opacity: 0.5; cursor: not-allowed; filter: grayscale(100%); } .right-product-container.out-of-stock:hover { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); transform: none; border-color: #e5e5e5; } .right-product-container.out-of-stock::after { content: '无库存'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(0, 0, 0, 0.7); color: white; padding: 8px 16px; border-radius: 4px; font-size: 12px; font-weight: bold; z-index: 10; white-space: nowrap; }