212 lines
9.2 KiB
Plaintext
212 lines
9.2 KiB
Plaintext
<!--pages/profile/index.wxml-->
|
||
<view class="page">
|
||
|
||
<!-- 顶部栏 -->
|
||
<view class="topbar">
|
||
<text class="topbar-title">我的</text>
|
||
<view class="topbar-actions">
|
||
<!-- <view class="settings-btn" bindtap="goToSettings">
|
||
<text class="settings-icon">⚙️</text>
|
||
</view> -->
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 未登录 -->
|
||
<view class="user-card" wx:if="{{!hasLogin}}" bindtap="doLogin">
|
||
<view class="avatar-ring">
|
||
<view class="avatar-letter-wrap" style="background:{{avatarBgColor}}">
|
||
<text class="avatar-letter">{{avatarLetter}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="user-meta">
|
||
<text class="user-name" wx:if="{{loginLoading}}">登录中...</text>
|
||
<text class="user-name" wx:elif="{{loginFailed}}">登录失败,点击重试</text>
|
||
<text class="user-name" wx:else>点击登录</text>
|
||
<text class="user-sub">登录后查看你的测试结果</text>
|
||
</view>
|
||
<text class="chevron">›</text>
|
||
</view>
|
||
|
||
<!-- 已登录:用户卡片(点击进入个人资料) -->
|
||
<view class="user-card" wx:if="{{hasLogin}}" bindtap="goToUserProfile">
|
||
<!-- 头像区 -->
|
||
<view class="avatar-wrap">
|
||
<view class="avatar-ring">
|
||
<image wx:if="{{userInfo && (userInfo.avatarUrl || userInfo.avatar)}}"
|
||
class="avatar-img"
|
||
src="{{userInfo.avatarUrl || userInfo.avatar}}"
|
||
mode="aspectFill"/>
|
||
<view wx:else class="avatar-letter-wrap" style="background:{{avatarBgColor}}">
|
||
<text class="avatar-letter">{{avatarLetter}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="online-dot"></view>
|
||
</view>
|
||
|
||
<!-- 昵称 + 标签 -->
|
||
<view class="user-meta">
|
||
<text class="nickname-text">{{nicknameDisplay || '点击设置昵称'}}</text>
|
||
<!-- 类型标签 -->
|
||
<scroll-view scroll-x class="tags-scroll">
|
||
<view class="tags-row">
|
||
<view class="tag tag-purple" wx:if="{{mbtiType && permMbti}}">
|
||
<text class="tag-text">{{mbtiType}}</text>
|
||
</view>
|
||
<view class="tag tag-blue" wx:if="{{discType && permDisc}}">
|
||
<text class="tag-text">{{discType}}型</text>
|
||
</view>
|
||
<view class="tag tag-orange" wx:if="{{pdpType && permPdp}}">
|
||
<text class="tag-text">{{pdpType}}</text>
|
||
</view>
|
||
<view class="tag tag-gray" wx:if="{{showEmptyPersonalityTags}}">
|
||
<text class="tag-text">暂无测试记录</text>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
</view>
|
||
|
||
<text class="chevron">›</text>
|
||
</view>
|
||
|
||
<!-- 深度解析:四字标题下整合「最新测试 + 查看全部/历史」与深度服务入口(单面板) -->
|
||
<view class="section px-section" wx:if="{{hasLogin}}">
|
||
<text class="section-title depth-parse-title">深度解析</text>
|
||
<view class="depth-unified-card">
|
||
<view class="depth-unified-header">
|
||
<text class="depth-unified-subtitle">最新测试</text>
|
||
<view class="depth-header-link" bindtap="goToHistory">
|
||
<text class="depth-header-link-text">查看全部<text wx:if="{{testCount > 0}}"> · {{testCount}}条</text></text>
|
||
<text class="depth-header-chevron">›</text>
|
||
</view>
|
||
</view>
|
||
<scroll-view wx:if="{{showLatestTestCards}}" scroll-x class="cards-scroll cards-scroll--in-card" enhanced show-scrollbar="{{false}}">
|
||
<view class="cards-row cards-row--in-card">
|
||
<view class="result-card card-purple" bindtap="viewMBTI" wx:if="{{permMbti && mbtiType}}">
|
||
<view class="card-deco"></view>
|
||
<view class="card-icon-wrap card-icon-purple">
|
||
<text class="card-icon">🧠</text>
|
||
</view>
|
||
<text class="card-label">MBTI性格</text>
|
||
<text class="card-value">{{mbtiType}}</text>
|
||
<text class="card-time">{{mbtiTime}}</text>
|
||
</view>
|
||
<view class="result-card card-orange" bindtap="viewPDP" wx:if="{{permPdp && pdpType}}">
|
||
<view class="card-deco"></view>
|
||
<view class="card-icon-wrap card-icon-orange">
|
||
<text class="card-icon">🦁</text>
|
||
</view>
|
||
<text class="card-label">PDP行为</text>
|
||
<text class="card-value">{{pdpType}}</text>
|
||
<text class="card-time">{{pdpTime}}</text>
|
||
</view>
|
||
<view class="result-card card-blue" bindtap="viewDISC" wx:if="{{permDisc && discType}}">
|
||
<view class="card-deco"></view>
|
||
<view class="card-icon-wrap card-icon-blue">
|
||
<text class="card-icon">📊</text>
|
||
</view>
|
||
<text class="card-label">DISC测评</text>
|
||
<text class="card-value">{{discType + '型'}}</text>
|
||
<text class="card-time">{{discTime}}</text>
|
||
</view>
|
||
<view class="result-card card-teal" bindtap="viewGallup" wx:if="{{!reviewMode && permFace && (gallupPreview || aiType)}}">
|
||
<view class="card-deco"></view>
|
||
<view class="card-icon-wrap card-icon-teal">
|
||
<text class="card-icon">⭐</text>
|
||
</view>
|
||
<text class="card-label">盖洛普优势</text>
|
||
<text class="card-value card-value--small">{{gallupPreview || '见面相报告'}}</text>
|
||
<text class="card-time">{{aiTime}}</text>
|
||
</view>
|
||
<view class="result-card card-rose" bindtap="viewAI" wx:if="{{!reviewMode && permFace && aiType}}">
|
||
<view class="card-deco"></view>
|
||
<view class="card-icon-wrap card-icon-rose">
|
||
<text class="card-icon">👁️</text>
|
||
</view>
|
||
<text class="card-label">面相分析</text>
|
||
<text class="card-value">{{aiType}}</text>
|
||
<text class="card-time">{{aiTime}}</text>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
<view wx:if="{{showLatestTestCards}}" class="depth-empty-hint depth-empty-hint--compact">
|
||
<text>点击卡片查看详情;右上方可查看全部测试记录。</text>
|
||
</view>
|
||
<view class="depth-inner-divider"></view>
|
||
<view class="menu-item menu-item--flat" bindtap="goToTestSelect">
|
||
<view class="menu-icon-wrap menu-icon-amber">
|
||
<text class="menu-icon">🧠</text>
|
||
</view>
|
||
<view class="menu-content">
|
||
<text class="menu-title">详细性格测试</text>
|
||
<text class="menu-sub">MBTI、PDP、DISC 三套问卷,任选一项开始</text>
|
||
</view>
|
||
<text class="menu-chevron">›</text>
|
||
</view>
|
||
<view class="menu-divider menu-divider--in-card"></view>
|
||
<view class="menu-item menu-item--flat" bindtap="goToDeepService">
|
||
<view class="menu-icon-wrap menu-icon-purple">
|
||
<text class="menu-icon">✨</text>
|
||
</view>
|
||
<view class="menu-content">
|
||
<text class="menu-title">深度解读与方案</text>
|
||
<text class="menu-sub">个人报告与团队/企业服务,进入后按需选择</text>
|
||
</view>
|
||
<text class="menu-chevron">›</text>
|
||
</view>
|
||
<view class="menu-divider menu-divider--in-card"></view>
|
||
<view class="menu-item menu-item--flat" bindtap="goToOrders">
|
||
<view class="menu-icon-wrap menu-icon-emerald">
|
||
<text class="menu-icon">🧾</text>
|
||
</view>
|
||
<view class="menu-content">
|
||
<text class="menu-title">我的订单</text>
|
||
<text class="menu-sub">支付记录与订单状态</text>
|
||
</view>
|
||
<text class="menu-chevron">›</text>
|
||
</view>
|
||
<view class="menu-divider menu-divider--in-card" wx:if="{{hasEnterprise}}"></view>
|
||
<view class="menu-item menu-item--flat" wx:if="{{hasEnterprise}}" bindtap="goToMyResume">
|
||
<view class="menu-icon-wrap menu-icon-indigo">
|
||
<text class="menu-icon">📋</text>
|
||
</view>
|
||
<view class="menu-content">
|
||
<text class="menu-title">我的简历</text>
|
||
<text class="menu-sub">查看与设置默认简历</text>
|
||
</view>
|
||
<text class="menu-chevron">›</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 推广中心(与管理端开关、标题配置一致;卡片样式与其他区块统一) -->
|
||
<view class="section px-section" wx:if="{{hasLogin && promoDistributionEnabled && !reviewMode && permDistribution}}">
|
||
<view class="promo-card" bindtap="goToPromo">
|
||
<view class="promo-header">
|
||
<view class="promo-title-wrap">
|
||
<text class="promo-icon">📈</text>
|
||
<text class="promo-title">{{promoCenterTitle}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="promo-stats">
|
||
<view class="promo-stat-item">
|
||
<text class="promo-stat-label">邀请好友</text>
|
||
<text class="promo-stat-value">{{promoTotalInvite}}</text>
|
||
</view>
|
||
<view class="promo-stat-divider"></view>
|
||
<view class="promo-stat-item">
|
||
<text class="promo-stat-label">累计收益</text>
|
||
<text class="promo-stat-value">¥{{promoTotalEarned}}</text>
|
||
</view>
|
||
<view class="promo-stat-divider"></view>
|
||
<view class="promo-stat-item">
|
||
<text class="promo-stat-label">可提现</text>
|
||
<text class="promo-stat-value promo-highlight">¥{{promoWithdrawable}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="bottom-safe"></view>
|
||
<custom-tab-bar />
|
||
</view>
|