|
@@ -1,71 +1,145 @@
|
|
|
<div class="panel" id="my-panel">
|
|
|
- <h2><i class="fas fa-user"></i> 我的账户</h2>
|
|
|
- <p class="section-desc">管理你的设计、收藏和个人信息</p>
|
|
|
+ <h2><fa-icon [icon]="icons.user"></fa-icon> 我的账户</h2>
|
|
|
+ <p class="section-desc">管理你的设计、收藏、订单和个人信息</p>
|
|
|
+
|
|
|
+ <!-- 用户信息卡片 -->
|
|
|
+ <div class="user-profile-card">
|
|
|
+ <img [src]="user.avatar" alt="用户头像" class="user-avatar" (error)="handleImageError($event)">
|
|
|
+ <div class="user-info">
|
|
|
+ <div class="user-name">{{user.name}}</div>
|
|
|
+ <span class="user-level">{{user.level}}</span>
|
|
|
+ <p>欢迎回来!您已设计了{{user.stats.designs}}款羽绒服,收藏了{{user.stats.favorites}}款设计。</p>
|
|
|
|
|
|
- <div class="color-stat" style="max-width: 100%; text-align: left; display: flex; align-items: center; gap: 20px;">
|
|
|
- <div class="color-box" style="background: linear-gradient(135deg, var(--primary), var(--accent)); width: 80px; height: 80px;">
|
|
|
- <i class="fas fa-user" style="font-size: 2rem;"></i>
|
|
|
+ <div class="user-stats">
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="stat-value">{{user.stats.designs}}</div>
|
|
|
+ <div class="stat-label">我的设计</div>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <div class="stat-name">用户昵称</div>
|
|
|
- <div class="stat-count">会员等级: 黄金会员</div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="stat-value">{{user.stats.favorites}}</div>
|
|
|
+ <div class="stat-label">我的收藏</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <h3>我的设计 (2)</h3>
|
|
|
- <div class="design-gallery">
|
|
|
- <div class="design-item">
|
|
|
- <div class="design-image">
|
|
|
- <img src="https://p9-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/c00c46e3473f416da69ab26bc2baece0~tplv-tb4s082cfz-aigc_resize:720:720.webp?lk3s=43402efa&x-expires=1753488000&x-signature=83g7O%2BguEUuA3WIbuDJz9IB74aQ%3D&format=.webp" alt="我的设计1">
|
|
|
- </div>
|
|
|
- <div class="design-info">
|
|
|
- <div class="design-title">蓝色风暴</div>
|
|
|
- <div class="design-author">3天前</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="design-item">
|
|
|
- <div class="design-image">
|
|
|
- <img src="https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/4b32af173e334309a0cf167026a8d978~tplv-tb4s082cfz-aigc_resize:720:720.webp?lk3s=43402efa&x-expires=1753488000&x-signature=%2BOatqZslhlNi7BYEXjcTMWrzeFk%3D&format=.webp" alt="我的设计2">
|
|
|
- </div>
|
|
|
- <div class="design-info">
|
|
|
- <div class="design-title">红黑经典</div>
|
|
|
- <div class="design-author">1周前</div>
|
|
|
- </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="stat-value">{{user.stats.orders}}</div>
|
|
|
+ <div class="stat-label">我的订单</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <h3>我的收藏 (4)</h3>
|
|
|
- <div class="design-gallery">
|
|
|
- <div class="design-item">
|
|
|
- <div class="design-image">
|
|
|
- <img src="https://p9-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/418fca777325423bb4d3361d04266b4c~tplv-tb4s082cfz-aigc_resize:720:720.webp?lk3s=43402efa&x-expires=1753488000&x-signature=SHnd17s7c5WxEk6DSrScXnQSDKY%3D&format=.webp" alt="收藏设计1">
|
|
|
- </div>
|
|
|
- <div class="design-info">
|
|
|
- <div class="design-title">星空主题</div>
|
|
|
- <div class="design-author">by 设计师小王</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="design-item">
|
|
|
- <div class="design-image">
|
|
|
- <img src="https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/7d0396cbdd6d46ad834791df677ea31a~tplv-tb4s082cfz-aigc_resize:720:720.webp?lk3s=43402efa&x-expires=1753488000&x-signature=NIYh%2FXC0zsQL35qDJyPh4d8k4XA%3D&format=.webp" alt="收藏设计2">
|
|
|
- </div>
|
|
|
- <div class="design-info">
|
|
|
- <div class="design-title">火焰纹路</div>
|
|
|
- <div class="design-author">by 创意达人</div>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 快速操作区域 -->
|
|
|
+ <div class="quick-actions">
|
|
|
+ <div class="action-item" *ngFor="let action of quickActions">
|
|
|
+ <div class="action-icon" [style.background]="getActionGradient(action.color)">
|
|
|
+ <fa-icon [icon]="action.icon"></fa-icon>
|
|
|
+ </div>
|
|
|
+ <div class="action-title">{{action.title}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 我的订单部分 -->
|
|
|
+ <div class="section-title">
|
|
|
+ <h3><fa-icon [icon]="icons.shoppingBag"></fa-icon> 最近订单 ({{orders.length}})</h3>
|
|
|
+ <a class="view-all">查看全部 ></a>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="order-card" *ngFor="let order of orders">
|
|
|
+ <div class="order-header">
|
|
|
+ <div>
|
|
|
+ <span class="order-id">订单号: {{order.id}}</span>
|
|
|
+ <span class="order-date">{{order.date}}</span>
|
|
|
+ </div>
|
|
|
+ <span class="order-status" [ngClass]="getStatusClass(order.status)">
|
|
|
+ {{order.status === 'processing' ? '处理中' :
|
|
|
+ order.status === 'shipped' ? '已发货' : '已完成'}}
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div class="order-content">
|
|
|
+ <img [src]="order.image" alt="订单商品" class="order-image" (error)="handleImageError($event)">
|
|
|
+ <div class="order-details">
|
|
|
+ <div class="order-title">{{order.title}}</div>
|
|
|
+ <div class="order-description">{{order.description}}</div>
|
|
|
+ <div class="order-price">¥{{order.price.toFixed(2)}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="order-actions">
|
|
|
+ <button class="btn btn-outline btn-sm">
|
|
|
+ <fa-icon [icon]="icons.eye"></fa-icon> 查看详情
|
|
|
+ </button>
|
|
|
+ <button class="btn btn-primary btn-sm">
|
|
|
+ <fa-icon [icon]="order.status === 'delivered' ? icons.redo : icons.truck"></fa-icon>
|
|
|
+ {{order.status === 'delivered' ? '再次购买' : '物流跟踪'}}
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 我的设计部分 -->
|
|
|
+ <div class="section-title">
|
|
|
+ <h3><fa-icon [icon]="icons.palette"></fa-icon> 我的设计 ({{myDesigns.length}})</h3>
|
|
|
+ <a class="view-all">查看全部 ></a>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="design-gallery">
|
|
|
+ <div class="design-item" *ngFor="let design of myDesigns">
|
|
|
+ <div class="design-image">
|
|
|
+ <img [src]="design.image" alt="我的设计" (error)="handleImageError($event)">
|
|
|
+ </div>
|
|
|
+ <div class="design-info">
|
|
|
+ <div class="design-title">{{design.title}}</div>
|
|
|
+ <div class="design-meta">
|
|
|
+ <span>{{design.date}}</span>
|
|
|
+ <span><fa-icon [icon]="icons.heart" style="color: #e74c3c;"></fa-icon> {{design.likes}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="action-buttons" style="margin-top: 30px;">
|
|
|
- <button class="btn btn-secondary"(click)="openSettings()">
|
|
|
- <i class="fas fa-cog"></i> 设置
|
|
|
- </button>
|
|
|
- <button class="btn btn-primary"(click)="logout()">
|
|
|
- <i class="fas fa-sign-out-alt"></i> 退出登录
|
|
|
- </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 我的收藏部分 -->
|
|
|
+ <div class="section-title">
|
|
|
+ <h3><fa-icon [icon]="icons.heart"></fa-icon> 我的收藏 ({{favorites.length}})</h3>
|
|
|
+ <a class="view-all">查看全部 ></a>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="design-gallery">
|
|
|
+ <div class="design-item" *ngFor="let favorite of favorites">
|
|
|
+ <div class="design-image">
|
|
|
+ <img [src]="favorite.image" alt="收藏设计" (error)="handleImageError($event)">
|
|
|
+ </div>
|
|
|
+ <div class="design-info">
|
|
|
+ <div class="design-title">{{favorite.title}}</div>
|
|
|
+ <div class="design-meta">
|
|
|
+ <span>{{favorite.author}}</span>
|
|
|
+ <span><fa-icon [icon]="icons.download"></fa-icon> {{favorite.downloads}}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
-
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 空状态示例 (注释掉,实际使用时根据需要显示) -->
|
|
|
+
|
|
|
+ <div class="empty-state">
|
|
|
+ <fa-icon [icon]="icons.boxOpen" size="2x"></fa-icon>
|
|
|
+ <h4>暂无收藏的设计</h4>
|
|
|
+ <p>您还没有收藏任何设计,快去发现您喜欢的设计吧!</p>
|
|
|
+ <button class="btn btn-primary">
|
|
|
+ <fa-icon [icon]="icons.search"></fa-icon> 浏览设计
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <div class="action-buttons">
|
|
|
+ <button class="btn btn-outline" (click)="openSettings()">
|
|
|
+ <fa-icon [icon]="icons.cog"></fa-icon> 设置
|
|
|
+ </button>
|
|
|
+ <button class="btn btn-primary" (click)="logout()">
|
|
|
+ <fa-icon [icon]="icons.signOut"></fa-icon> 退出登录
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+</div>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|