559 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			HTML
		
	
	
	
		
		
			
		
	
	
			559 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			HTML
		
	
	
	
|  | <!DOCTYPE html> | |||
|  | <html lang="zh-CN"> | |||
|  | <head> | |||
|  |     <meta charset="UTF-8"> | |||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||
|  |     <title>会员详情</title> | |||
|  |     <style> | |||
|  |         * { | |||
|  |             margin: 0; | |||
|  |             padding: 0; | |||
|  |             box-sizing: border-box; | |||
|  |         } | |||
|  | 
 | |||
|  |         body { | |||
|  |             font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; | |||
|  |             background-color: #f5f5f5; | |||
|  |             color: #333; | |||
|  |             line-height: 1.4; | |||
|  |         } | |||
|  | 
 | |||
|  |         .container { | |||
|  |             max-width: 100%; | |||
|  |             margin: 0 auto; | |||
|  |             background: white; | |||
|  |             min-height: 100vh; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Header Section */ | |||
|  |         .header { | |||
|  |             padding: 20px 16px; | |||
|  |             background: white; | |||
|  |             border-bottom: 1px solid #e5e5e5; | |||
|  |         } | |||
|  | 
 | |||
|  |         .member-info { | |||
|  |             display: grid; | |||
|  |             grid-template-columns: 1fr 1fr; | |||
|  |             gap: 12px 20px; | |||
|  |             margin-bottom: 20px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .info-item { | |||
|  |             display: flex; | |||
|  |             align-items: center; | |||
|  |             font-size: 14px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .info-label { | |||
|  |             color: #666; | |||
|  |             margin-right: 8px; | |||
|  |             min-width: 60px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .info-value { | |||
|  |             color: #333; | |||
|  |             font-weight: 500; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Stats Cards */ | |||
|  |         .stats-container { | |||
|  |             display: flex; | |||
|  |             justify-content: space-around; | |||
|  |             margin-top: 20px; | |||
|  |             padding: 16px; | |||
|  |             background: #f8f9fa; | |||
|  |             border-radius: 8px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .stat-item { | |||
|  |             text-align: center; | |||
|  |             flex: 1; | |||
|  |         } | |||
|  | 
 | |||
|  |         .stat-number { | |||
|  |             font-size: 24px; | |||
|  |             font-weight: bold; | |||
|  |             color: #333; | |||
|  |             margin-bottom: 4px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .stat-label { | |||
|  |             font-size: 12px; | |||
|  |             color: #666; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Tab Navigation */ | |||
|  |         .tab-nav { | |||
|  |             display: flex; | |||
|  |             background: white; | |||
|  |             border-bottom: 1px solid #e5e5e5; | |||
|  |             overflow-x: auto; | |||
|  |         } | |||
|  | 
 | |||
|  |         .tab-item { | |||
|  |             flex: 1; | |||
|  |             padding: 16px 12px; | |||
|  |             text-align: center; | |||
|  |             font-size: 14px; | |||
|  |             color: #666; | |||
|  |             border-bottom: 2px solid transparent; | |||
|  |             cursor: pointer; | |||
|  |             transition: all 0.3s; | |||
|  |             white-space: nowrap; | |||
|  |             min-width: 120px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .tab-item.active { | |||
|  |             color: #1890ff; | |||
|  |             border-bottom-color: #1890ff; | |||
|  |             font-weight: 500; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Content Area */ | |||
|  |         .content { | |||
|  |             padding: 0 16px 20px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .tab-content { | |||
|  |             display: none; | |||
|  |         } | |||
|  | 
 | |||
|  |         .tab-content.active { | |||
|  |             display: block; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Table Styles */ | |||
|  |         .table-container { | |||
|  |             background: white; | |||
|  |             border-radius: 8px; | |||
|  |             overflow: hidden; | |||
|  |             margin-top: 16px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .table-header { | |||
|  |             display: grid; | |||
|  |             background: #f8f9fa; | |||
|  |             padding: 12px 8px; | |||
|  |             font-size: 12px; | |||
|  |             color: #666; | |||
|  |             font-weight: 500; | |||
|  |             border-bottom: 1px solid #e5e5e5; | |||
|  |         } | |||
|  | 
 | |||
|  |         .table-row { | |||
|  |             display: grid; | |||
|  |             padding: 12px 8px; | |||
|  |             border-bottom: 1px solid #f0f0f0; | |||
|  |             font-size: 13px; | |||
|  |             align-items: center; | |||
|  |         } | |||
|  | 
 | |||
|  |         .table-row:last-child { | |||
|  |             border-bottom: none; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Coupon Table */ | |||
|  |         .coupon-header { | |||
|  |             grid-template-columns: 1fr 60px 60px 80px 60px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .coupon-row { | |||
|  |             grid-template-columns: 1fr 60px 60px 80px 60px; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Growth Table */ | |||
|  |         .growth-header { | |||
|  |             grid-template-columns: 1fr 80px 1fr 60px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .growth-row { | |||
|  |             grid-template-columns: 1fr 80px 1fr 60px; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Points Table */ | |||
|  |         .points-header { | |||
|  |             grid-template-columns: 1fr 60px 80px 1fr 60px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .points-row { | |||
|  |             grid-template-columns: 1fr 60px 80px 1fr 60px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .status-available { | |||
|  |             color: #52c41a; | |||
|  |             font-size: 12px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .status-expired { | |||
|  |             color: #ff4d4f; | |||
|  |             font-size: 12px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .status-used { | |||
|  |             color: #999; | |||
|  |             font-size: 12px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .points-positive { | |||
|  |             color: #52c41a; | |||
|  |         } | |||
|  | 
 | |||
|  |         .points-negative { | |||
|  |             color: #ff4d4f; | |||
|  |         } | |||
|  | 
 | |||
|  |         .detail-link { | |||
|  |             color: #1890ff; | |||
|  |             text-decoration: none; | |||
|  |             font-size: 12px; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Pagination */ | |||
|  |         .pagination { | |||
|  |             display: flex; | |||
|  |             justify-content: center; | |||
|  |             align-items: center; | |||
|  |             padding: 20px; | |||
|  |             gap: 12px; | |||
|  |         } | |||
|  | 
 | |||
|  |         .pagination button { | |||
|  |             padding: 8px 12px; | |||
|  |             border: 1px solid #d9d9d9; | |||
|  |             background: white; | |||
|  |             color: #666; | |||
|  |             border-radius: 4px; | |||
|  |             font-size: 12px; | |||
|  |             cursor: pointer; | |||
|  |         } | |||
|  | 
 | |||
|  |         .pagination button:disabled { | |||
|  |             opacity: 0.5; | |||
|  |             cursor: not-allowed; | |||
|  |         } | |||
|  | 
 | |||
|  |         .pagination .current-page { | |||
|  |             color: #333; | |||
|  |             font-weight: 500; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Mobile Optimizations */ | |||
|  |         @media (max-width: 480px) { | |||
|  |             .member-info { | |||
|  |                 grid-template-columns: 1fr; | |||
|  |                 gap: 8px; | |||
|  |             } | |||
|  | 
 | |||
|  |             .stats-container { | |||
|  |                 padding: 12px; | |||
|  |             } | |||
|  | 
 | |||
|  |             .stat-number { | |||
|  |                 font-size: 20px; | |||
|  |             } | |||
|  | 
 | |||
|  |             .table-container { | |||
|  |                 font-size: 12px; | |||
|  |             } | |||
|  | 
 | |||
|  |             .table-header, | |||
|  |             .table-row { | |||
|  |                 padding: 8px 4px; | |||
|  |             } | |||
|  | 
 | |||
|  |             /* Stack table cells vertically on very small screens */ | |||
|  |             .coupon-header, | |||
|  |             .coupon-row { | |||
|  |                 grid-template-columns: 1fr; | |||
|  |                 gap: 4px; | |||
|  |             } | |||
|  | 
 | |||
|  |             .growth-header, | |||
|  |             .growth-row { | |||
|  |                 grid-template-columns: 1fr; | |||
|  |                 gap: 4px; | |||
|  |             } | |||
|  | 
 | |||
|  |             .points-header, | |||
|  |             .points-row { | |||
|  |                 grid-template-columns: 1fr; | |||
|  |                 gap: 4px; | |||
|  |             } | |||
|  | 
 | |||
|  |             .table-row { | |||
|  |                 padding: 12px 8px; | |||
|  |                 border-left: 3px solid #1890ff; | |||
|  |                 margin-bottom: 8px; | |||
|  |                 border-radius: 0 4px 4px 0; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Loading State */ | |||
|  |         .loading { | |||
|  |             text-align: center; | |||
|  |             padding: 40px; | |||
|  |             color: #999; | |||
|  |         } | |||
|  | 
 | |||
|  |         /* Empty State */ | |||
|  |         .empty-state { | |||
|  |             text-align: center; | |||
|  |             padding: 40px; | |||
|  |             color: #999; | |||
|  |         } | |||
|  |     </style> | |||
|  | </head> | |||
|  | <body> | |||
|  |     <div class="container"> | |||
|  |         <!-- Header Section --> | |||
|  |         <div class="header"> | |||
|  |             <div class="member-info"> | |||
|  |                 <div class="info-item"> | |||
|  |                     <span class="info-label">会员姓名:</span> | |||
|  |                     <span class="info-value">张三</span> | |||
|  |                 </div> | |||
|  |                 <div class="info-item"> | |||
|  |                     <span class="info-label">系统编号:</span> | |||
|  |                     <span class="info-value">3</span> | |||
|  |                 </div> | |||
|  |                 <div class="info-item"> | |||
|  |                     <span class="info-label">手机号:</span> | |||
|  |                     <span class="info-value">138****1234</span> | |||
|  |                 </div> | |||
|  |                 <div class="info-item"> | |||
|  |                     <span class="info-label">生日:</span> | |||
|  |                     <span class="info-value">1990-05-15</span> | |||
|  |                 </div> | |||
|  |             </div> | |||
|  | 
 | |||
|  |             <div class="stats-container"> | |||
|  |                 <div class="stat-item"> | |||
|  |                     <div class="stat-number">1250</div> | |||
|  |                     <div class="stat-label">会员成长值</div> | |||
|  |                 </div> | |||
|  |                 <div class="stat-item"> | |||
|  |                     <div class="stat-number">890</div> | |||
|  |                     <div class="stat-label">会员积分</div> | |||
|  |                 </div> | |||
|  |                 <div class="stat-item"> | |||
|  |                     <div class="stat-number">5</div> | |||
|  |                     <div class="stat-label">会员优惠券</div> | |||
|  |                 </div> | |||
|  |             </div> | |||
|  |         </div> | |||
|  | 
 | |||
|  |         <!-- Tab Navigation --> | |||
|  |         <div class="tab-nav"> | |||
|  |             <div class="tab-item" onclick="switchTab('growth')">会员成长值明细</div> | |||
|  |             <div class="tab-item" onclick="switchTab('points')">会员积分明细</div> | |||
|  |             <div class="tab-item active" onclick="switchTab('coupons')">会员优惠券</div> | |||
|  |         </div> | |||
|  | 
 | |||
|  |         <!-- Content Area --> | |||
|  |         <div class="content"> | |||
|  |             <!-- Coupons Tab --> | |||
|  |             <div id="coupons" class="tab-content active"> | |||
|  |                 <div class="table-container"> | |||
|  |                     <div class="table-header coupon-header"> | |||
|  |                         <div>优惠券名称</div> | |||
|  |                         <div>类型</div> | |||
|  |                         <div>面额</div> | |||
|  |                         <div>使用条件</div> | |||
|  |                         <div>状态</div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row coupon-row"> | |||
|  |                         <div> | |||
|  |                             <div style="font-weight: 500;">新用户专享券</div> | |||
|  |                             <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2024-01-01 10:00:00</div> | |||
|  |                             <div style="font-size: 11px; color: #999;">有效期: 2024-02-01</div> | |||
|  |                         </div> | |||
|  |                         <div>满减券</div> | |||
|  |                         <div>¥20</div> | |||
|  |                         <div>满100元可用</div> | |||
|  |                         <div class="status-available">可使用</div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row coupon-row"> | |||
|  |                         <div> | |||
|  |                             <div style="font-weight: 500;">生日特惠券</div> | |||
|  |                             <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2024-01-05 12:30:15</div> | |||
|  |                             <div style="font-size: 11px; color: #999;">有效期: 2024-02-05</div> | |||
|  |                         </div> | |||
|  |                         <div>折扣券</div> | |||
|  |                         <div>9折</div> | |||
|  |                         <div>全品类可用</div> | |||
|  |                         <div class="status-available">可使用</div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row coupon-row"> | |||
|  |                         <div> | |||
|  |                             <div style="font-weight: 500;">积分兑换券</div> | |||
|  |                             <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2024-01-10 16:20:30</div> | |||
|  |                             <div style="font-size: 11px; color: #999;">有效期: 2024-03-10</div> | |||
|  |                         </div> | |||
|  |                         <div>满减券</div> | |||
|  |                         <div>¥50</div> | |||
|  |                         <div>满300元可用</div> | |||
|  |                         <div class="status-available">可使用</div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row coupon-row"> | |||
|  |                         <div> | |||
|  |                             <div style="font-weight: 500;">限时抢购券</div> | |||
|  |                             <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2023-12-20 14:15:20</div> | |||
|  |                             <div style="font-size: 11px; color: #999;">有效期: 2024-01-20</div> | |||
|  |                         </div> | |||
|  |                         <div>满减券</div> | |||
|  |                         <div>¥10</div> | |||
|  |                         <div>满50元可用</div> | |||
|  |                         <div class="status-expired">已过期</div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row coupon-row"> | |||
|  |                         <div> | |||
|  |                             <div style="font-weight: 500;">会员专属券</div> | |||
|  |                             <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2023-12-15 09:45:10</div> | |||
|  |                             <div style="font-size: 11px; color: #999;">有效期: 2024-01-15</div> | |||
|  |                         </div> | |||
|  |                         <div>满减券</div> | |||
|  |                         <div>¥30</div> | |||
|  |                         <div>满200元可用</div> | |||
|  |                         <div class="status-used">已使用</div> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  |             </div> | |||
|  | 
 | |||
|  |             <!-- Growth Tab --> | |||
|  |             <div id="growth" class="tab-content"> | |||
|  |                 <div class="table-container"> | |||
|  |                     <div class="table-header growth-header"> | |||
|  |                         <div>变化时间</div> | |||
|  |                         <div>成长值变动</div> | |||
|  |                         <div>关联订单</div> | |||
|  |                         <div>详情</div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row growth-row"> | |||
|  |                         <div>2024-01-15 14:30:25</div> | |||
|  |                         <div class="points-positive">+50</div> | |||
|  |                         <div>ORDER202401501</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row growth-row"> | |||
|  |                         <div>2024-01-10 09:15:10</div> | |||
|  |                         <div class="points-positive">+100</div> | |||
|  |                         <div>ORDER202401002</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row growth-row"> | |||
|  |                         <div>2024-01-05 16:45:33</div> | |||
|  |                         <div class="points-positive">+30</div> | |||
|  |                         <div>ORDER202401503</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row growth-row"> | |||
|  |                         <div>2024-01-02 11:20:15</div> | |||
|  |                         <div class="points-positive">+20</div> | |||
|  |                         <div>ORDER202401204</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row growth-row"> | |||
|  |                         <div>2023-12-28 13:55:40</div> | |||
|  |                         <div class="points-positive">+75</div> | |||
|  |                         <div>ORDER202312805</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  |             </div> | |||
|  | 
 | |||
|  |             <!-- Points Tab --> | |||
|  |             <div id="points" class="tab-content"> | |||
|  |                 <div class="table-container"> | |||
|  |                     <div class="table-header points-header"> | |||
|  |                         <div>变化时间</div> | |||
|  |                         <div>积分变动</div> | |||
|  |                         <div>变动类型</div> | |||
|  |                         <div>关联订单</div> | |||
|  |                         <div>详情</div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row points-row"> | |||
|  |                         <div>2024-01-15 14:30:25</div> | |||
|  |                         <div class="points-positive">+100</div> | |||
|  |                         <div>购物获得</div> | |||
|  |                         <div>ORDER202401501</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row points-row"> | |||
|  |                         <div>2024-01-12 10:20:15</div> | |||
|  |                         <div class="points-negative">-50</div> | |||
|  |                         <div>积分抵扣</div> | |||
|  |                         <div>ORDER202401202</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row points-row"> | |||
|  |                         <div>2024-01-10 09:15:10</div> | |||
|  |                         <div class="points-positive">+200</div> | |||
|  |                         <div>购物获得</div> | |||
|  |                         <div>ORDER202401002</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row points-row"> | |||
|  |                         <div>2024-01-08 15:45:30</div> | |||
|  |                         <div class="points-positive">+10</div> | |||
|  |                         <div>签到奖励</div> | |||
|  |                         <div>-</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                     <div class="table-row points-row"> | |||
|  |                         <div>2024-01-05 16:45:33</div> | |||
|  |                         <div class="points-positive">+60</div> | |||
|  |                         <div>购物获得</div> | |||
|  |                         <div>ORDER202401503</div> | |||
|  |                         <div><a href="#" class="detail-link">查看详情</a></div> | |||
|  |                     </div> | |||
|  |                 </div> | |||
|  |             </div> | |||
|  | 
 | |||
|  |             <!-- Pagination --> | |||
|  |             <div class="pagination"> | |||
|  |                 <button disabled>上一页</button> | |||
|  |                 <span class="current-page">第1页,共1页</span> | |||
|  |                 <button disabled>下一页</button> | |||
|  |             </div> | |||
|  |         </div> | |||
|  |     </div> | |||
|  | 
 | |||
|  |     <script> | |||
|  |         function switchTab(tabName) { | |||
|  |             // Remove active class from all tabs and content | |||
|  |             document.querySelectorAll('.tab-item').forEach(tab => { | |||
|  |                 tab.classList.remove('active'); | |||
|  |             }); | |||
|  |             document.querySelectorAll('.tab-content').forEach(content => { | |||
|  |                 content.classList.remove('active'); | |||
|  |             }); | |||
|  | 
 | |||
|  |             // Add active class to clicked tab and corresponding content | |||
|  |             event.target.classList.add('active'); | |||
|  |             document.getElementById(tabName).classList.add('active'); | |||
|  |         } | |||
|  | 
 | |||
|  |         // Add touch feedback for better mobile experience | |||
|  |         document.querySelectorAll('.tab-item, .detail-link').forEach(element => { | |||
|  |             element.addEventListener('touchstart', function() { | |||
|  |                 this.style.opacity = '0.7'; | |||
|  |             }); | |||
|  |              | |||
|  |             element.addEventListener('touchend', function() { | |||
|  |                 this.style.opacity = '1'; | |||
|  |             }); | |||
|  |         }); | |||
|  | 
 | |||
|  |         // Prevent zoom on double tap for better mobile experience | |||
|  |         let lastTouchEnd = 0; | |||
|  |         document.addEventListener('touchend', function (event) { | |||
|  |             const now = (new Date()).getTime(); | |||
|  |             if (now - lastTouchEnd <= 300) { | |||
|  |                 event.preventDefault(); | |||
|  |             } | |||
|  |             lastTouchEnd = now; | |||
|  |         }, false); | |||
|  |     </script> | |||
|  | </body> | |||
|  | </html> |