kydc/me/me.wxml

121 lines
6.0 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<view class="page">
<scroll-view scroll-y class="content">
<canvas canvas-id="avatar-canvas" class="avatar-canvas"></canvas>
<view wx:if="{{loading}}" class="empty-state">
<text class="empty-title">加载中...</text>
<text class="empty-subtitle">正在获取个人信息</text>
</view>
<view wx:elif="{{!username}}" class="empty-state">
<text class="empty-title">账号登录</text>
<text class="empty-subtitle">使用账号密码登录,或先注册一个新账号</text>
<view class="auth-switch">
<view class="auth-chip {{authMode === 'login' ? 'active' : ''}}" data-mode="login" bindtap="onAuthModeChange">登录</view>
<view class="auth-chip {{authMode === 'register' ? 'active' : ''}}" data-mode="register" bindtap="onAuthModeChange">注册</view>
</view>
<view class="auth-card">
<input class="auth-input" placeholder="请输入账号" value="{{authForm.username}}" data-field="username" bindinput="onAuthInput" />
<input class="auth-input" password="true" placeholder="请输入密码" value="{{authForm.password}}" data-field="password" bindinput="onAuthInput" />
<input wx:if="{{authMode === 'register'}}" class="auth-input" placeholder="请输入昵称" value="{{authForm.nickname}}" data-field="nickname" bindinput="onAuthInput" />
<button class="auth-submit" bindtap="submitAuth">{{authMode === 'register' ? '注册并登录' : '登录'}}</button>
</view>
</view>
<view wx:elif="{{error}}" class="error-banner">
<text class="error-text">{{error}}</text>
<button class="secondary-btn error-btn" bindtap="loadProfile">重试</button>
</view>
<view wx:else class="hero-section">
<button class="hero-avatar-wrap avatar-choose-btn" hover-class="none" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar">
<view class="hero-avatar-border">
<image class="hero-avatar" src="{{avatarUrl || defaultAvatarUrl}}" mode="aspectFill" binderror="onAvatarError" />
<view class="avatar-mask">
<text class="avatar-mask-text">选择头像</text>
</view>
</view>
</button>
<view class="hero-info">
<text class="hero-name" bindtap="openNicknameModal">{{name}}</text>
<view class="hero-badge">
<view class="pulse-dot"></view>
<text class="badge-text">坚持了 {{days}} 天</text>
</view>
</view>
</view>
<view wx:if="{{username && badges === 0}}" class="empty-state small">
<text class="empty-title">还没有解锁成就</text>
<text class="empty-subtitle">继续复习和打卡,成就会逐渐点亮</text>
</view>
<view wx:if="{{username}}" class="grid-2">
<view class="glass-card accent-tertiary" bindtap="goTo" data-url="/package-stats/pages/achievements/achievements">
<view class="card-glow"></view>
<view class="card-icon icon-tertiary">🏅</view>
<text class="card-title">成就墙</text>
<text class="card-subtitle">已解锁 {{badges}} 枚勋章</text>
</view>
<view class="glass-card accent-secondary" bindtap="goTo" data-url="/package-stats/pages/checkin-detail/checkin-detail">
<view class="card-glow"></view>
<view class="card-icon icon-secondary">📅</view>
<text class="card-title">打卡详情</text>
<text class="card-subtitle">查看坚持记录</text>
</view>
</view>
<view class="divider-row">
<view class="divider"></view>
<text class="section-kicker">数据管理</text>
<view class="divider"></view>
</view>
<view class="grid-2 management-grid">
<view class="small-action" bindtap="goTo" data-url="/package-vocab/pages/vocab-manage/vocab-manage">
<view class="small-icon primary">📚</view>
<text class="small-text">词库管理</text>
</view>
<view class="small-action" bindtap="goTo" data-url="/package-vocab/pages/entry-edit/entry-edit">
<view class="small-icon secondary"></view>
<text class="small-text">手动新增</text>
</view>
<view class="small-action" bindtap="goTo" data-url="/package-vocab/pages/batch-upload/batch-upload">
<view class="small-icon tertiary">☁</view>
<text class="small-text">批量上传</text>
</view>
<view class="small-action" bindtap="goTo" data-url="/package-stats/pages/progress-list/progress-list">
<view class="small-icon primary-fixed">≡</view>
<text class="small-text">进度列表</text>
</view>
</view>
<view class="settings-card" bindtap="goTo" data-url="/package-stats/pages/settings/settings">
<view class="settings-icon">⚙</view>
<text class="settings-text">设置中心</text>
<view class="chevron"></view>
</view>
<button wx:if="{{username}}" class="logout-btn" bindtap="logout">退出登录</button>
</scroll-view>
<view wx:if="{{showNicknameModal}}" class="modal-mask" bindtap="closeNicknameModal">
<view class="modal-card" catchtap="noop">
<view class="modal-header">
<text class="modal-title">修改昵称</text>
<text class="modal-close" bindtap="closeNicknameModal">×</text>
</view>
<input class="modal-input" type="nickname" value="{{nicknameDraft}}" placeholder="请输入昵称" maxlength="100" focus="true" bindinput="onNicknameInput" />
<view class="modal-actions">
<button class="modal-btn ghost" bindtap="closeNicknameModal">取消</button>
<button class="modal-btn primary" bindtap="saveNickname">保存</button>
</view>
</view>
</view>
<view class="bottom-nav">
<view class="nav-item" bindtap="goHome"><text class="nav-icon">⌂</text><text class="nav-label">首页</text></view>
<view class="nav-item" bindtap="goToReview"><text class="nav-icon">↻</text><text class="nav-label">复习</text></view>
<view class="nav-item active"><text class="nav-icon">☺</text><text class="nav-label">我的</text></view>
</view>
</view>