feat: 优化UI

This commit is contained in:
Blizzard
2026-03-05 17:04:40 +08:00
parent 0a61c4ddec
commit 7f51b2a0a8
28 changed files with 1773 additions and 964 deletions
+46 -58
View File
@@ -1,85 +1,73 @@
<!-- 个人中心 —— 用户信息 + 订阅管理 + 菜单 -->
<!-- 个人中心 - 全新极简温暖主题 -->
<view class="profile-page">
<!-- 橙色头部背景 -->
<view class="header-bg">
<view class="user-info">
<!-- 头像 -->
<view class="avatar-wrap">
<!-- 沉浸式头部区域 -->
<view class="header-section">
<!-- 装饰背景 -->
<view class="header-bg-shape"></view>
<!-- 用户信息块 -->
<view class="user-info-box">
<view class="avatar-container">
<image wx:if="{{userInfo && userInfo.avatarId}}" src="{{userInfo.avatar.url || ''}}" class="avatar-img" mode="aspectFill" />
<text wx:else class="avatar-emoji">😊</text>
</view>
<text class="user-name">
{{userInfo.nickName || userInfo.name || '微信用户'}}
<text wx:if="{{isVip}}" class="vip-crown">👑</text>
</text>
<text class="user-desc">
{{isVip ? '全频道会员' : '免费用户 · 开通会员畅听全频道'}}
</text>
</view>
</view>
<!-- 订阅管理卡片(上移覆盖) -->
<view class="sub-card-wrap">
<view class="card sub-card">
<!-- 空状态 -->
<view wx:if="{{subscribedData.length === 0}}" class="sub-empty">
<text class="sub-empty-text">暂未订阅任何频道</text>
<button class="btn-ghost" bindtap="goDiscover">去广场添加</button>
</view>
<!-- 订阅列表 -->
<view wx:else>
<view
wx:for="{{subscribedData}}"
wx:key="id"
class="sub-item"
>
<view class="sub-item-left">
<view class="sub-icon" style="background: {{item.bgColor || '#F0F0F0'}};">
<image wx:if="{{item._coverUrl}}" src="{{item._coverUrl}}" class="sub-cover-img" mode="aspectFill" />
<text wx:else class="sub-emoji">{{item.icon || '📻'}}</text>
</view>
<view class="sub-info">
<text class="sub-name">{{item.name}}</text>
<text class="sub-tag {{item.isFree === 1 ? 'free' : ''}}">
{{item.isFree === 1 ? '免费' : '已订阅'}}
</text>
</view>
</view>
<view class="sub-del tap-active" bindtap="onUnsubscribe" data-id="{{item.id}}" data-name="{{item.name}}">
<text class="del-icon">🗑</text>
<view class="user-details">
<view class="name-line">
<text class="user-name">{{userInfo.nickName || userInfo.name || '你好,收听者'}}</text>
<view wx:if="{{isVip}}" class="vip-badge">
<text class="vip-badge-icon">👑</text>
<text class="vip-badge-text">VIP会员</text>
</view>
</view>
<text class="user-id">今日也要元气满满哦</text>
</view>
</view>
</view>
<!-- 菜单列表 -->
<view class="menu-card-wrap">
<view class="card menu-card">
<!-- 内容区 -->
<view class="content-section">
<!-- VIP 专属引导卡片 (若未开通) -->
<view wx:if="{{!isVip}}" class="vip-promo-card tap-active" bindtap="onMenuTap" data-id="vip">
<view class="promo-left">
<text class="promo-icon">✨</text>
<view class="promo-text">
<text class="promo-title">开通全频道会员</text>
<text class="promo-desc">畅听无阻 · 专属标识 · 尊贵体验</text>
</view>
</view>
<view class="promo-right">
<text class="promo-btn">立即开通</text>
</view>
</view>
<!-- 菜单列表卡片 -->
<view class="menu-list-card">
<view
wx:for="{{menuItems}}"
wx:key="id"
class="menu-item tap-active"
class="menu-row tap-active"
bindtap="onMenuTap"
data-id="{{item.id}}"
>
<view class="menu-item-left">
<view class="menu-icon-wrap {{item.highlight ? 'highlight' : ''}}">
<view class="menu-left">
<view class="menu-icon-box {{item.id === 'vip' ? 'is-vip-icon' : ''}}">
<text class="menu-emoji">{{item.icon}}</text>
</view>
<text class="menu-label">{{item.label}}</text>
<text class="menu-title">{{item.label}}</text>
</view>
<view class="menu-item-right">
<text class="menu-desc {{item.highlight ? 'highlight' : ''}}">{{item.desc}}</text>
<view class="menu-right">
<text class="menu-status {{item.highlight ? 'highlight-text' : ''}}">{{item.desc}}</text>
<text class="menu-arrow"></text>
</view>
</view>
</view>
</view>
<view style="height: 200rpx;"></view>
<!-- 底部留白以防遮挡播放器 -->
<view class="bottom-spacer"></view>
<global-player />
</view>