kydc/me/me.wxml

109 lines
5.0 KiB
Plaintext
Raw Normal View History

2026-05-03 23:02:26 +08:00
<view class="page">
2026-04-19 11:56:49 +08:00
<scroll-view scroll-y class="content">
2026-04-23 11:34:54 +08:00
<canvas canvas-id="avatar-canvas" class="avatar-canvas"></canvas>
2026-04-19 11:56:49 +08:00
<view wx:if="{{loading}}" class="empty-state">
2026-05-03 23:02:26 +08:00
<text class="empty-title">加载中...</text>
<text class="empty-subtitle">正在获取个人信息</text>
2026-04-18 17:16:49 +08:00
</view>
2026-05-12 20:27:47 +08:00
<view wx:elif="{{!openid}}" class="empty-state">
<text class="empty-title">还未登录</text>
<text class="empty-subtitle">请点击下方按钮手动登录后继续使用</text>
<button class="secondary-btn error-btn" bindtap="manualLogin">手动登录</button>
</view>
2026-04-19 11:56:49 +08:00
<view wx:elif="{{error}}" class="error-banner">
<text class="error-text">{{error}}</text>
2026-05-03 23:02:26 +08:00
<button class="secondary-btn error-btn" bindtap="loadProfile">重试</button>
2026-04-19 11:56:49 +08:00
</view>
<view wx:else class="hero-section">
2026-05-12 20:27:47 +08:00
<button class="hero-avatar-wrap avatar-choose-btn" hover-class="none" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar">
2026-04-18 17:16:49 +08:00
<view class="hero-avatar-border">
2026-05-07 10:19:07 +08:00
<image class="hero-avatar" src="{{avatarUrl || defaultAvatarUrl}}" mode="aspectFill" binderror="onAvatarError" />
2026-04-23 11:34:54 +08:00
<view class="avatar-mask">
2026-05-12 20:27:47 +08:00
<text class="avatar-mask-text">选择头像</text>
2026-04-23 11:34:54 +08:00
</view>
2026-04-18 17:16:49 +08:00
</view>
2026-05-12 20:27:47 +08:00
</button>
2026-04-18 17:16:49 +08:00
<view class="hero-info">
2026-04-23 11:34:54 +08:00
<text class="hero-name" bindtap="openNicknameModal">{{name}}</text>
2026-04-18 17:16:49 +08:00
<view class="hero-badge">
<view class="pulse-dot"></view>
2026-05-03 23:02:26 +08:00
<text class="badge-text">坚持了 {{days}} 天</text>
2026-04-18 17:16:49 +08:00
</view>
</view>
</view>
2026-04-19 11:56:49 +08:00
<view wx:if="{{openid && badges === 0}}" class="empty-state small">
2026-05-03 23:02:26 +08:00
<text class="empty-title">还没有解锁成就</text>
<text class="empty-subtitle">继续复习和打卡,成就会逐渐点亮</text>
2026-04-19 11:56:49 +08:00
</view>
2026-04-23 11:34:54 +08:00
<view wx:if="{{openid}}" class="grid-2">
2026-05-03 23:02:26 +08:00
<view class="glass-card accent-tertiary" bindtap="goTo" data-url="/package-stats/pages/achievements/achievements">
2026-04-18 17:16:49 +08:00
<view class="card-glow"></view>
<view class="card-icon icon-tertiary">🏅</view>
<text class="card-title">成就墙</text>
2026-05-03 23:02:26 +08:00
<text class="card-subtitle">已解锁 {{badges}} 枚勋章</text>
2026-04-18 17:16:49 +08:00
</view>
2026-05-03 23:02:26 +08:00
<view class="glass-card accent-secondary" bindtap="goTo" data-url="/package-stats/pages/checkin-detail/checkin-detail">
2026-04-18 17:16:49 +08:00
<view class="card-glow"></view>
<view class="card-icon icon-secondary">📅</view>
<text class="card-title">打卡详情</text>
2026-04-19 11:56:49 +08:00
<text class="card-subtitle">查看坚持记录</text>
2026-04-18 17:16:49 +08:00
</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">
2026-05-03 23:02:26 +08:00
<view class="small-action" bindtap="goTo" data-url="/package-vocab/pages/vocab-manage/vocab-manage">
2026-04-18 17:16:49 +08:00
<view class="small-icon primary">📚</view>
<text class="small-text">词库管理</text>
</view>
2026-05-03 23:02:26 +08:00
<view class="small-action" bindtap="goTo" data-url="/package-vocab/pages/entry-edit/entry-edit">
2026-04-18 17:16:49 +08:00
<view class="small-icon secondary"></view>
<text class="small-text">手动新增</text>
</view>
2026-05-03 23:02:26 +08:00
<view class="small-action" bindtap="goTo" data-url="/package-vocab/pages/batch-upload/batch-upload">
2026-04-18 17:16:49 +08:00
<view class="small-icon tertiary">☁</view>
<text class="small-text">批量上传</text>
</view>
2026-05-03 23:02:26 +08:00
<view class="small-action" bindtap="goTo" data-url="/package-stats/pages/progress-list/progress-list">
2026-04-18 17:16:49 +08:00
<view class="small-icon primary-fixed">≡</view>
<text class="small-text">进度列表</text>
</view>
</view>
2026-05-03 23:02:26 +08:00
<view class="settings-card" bindtap="goTo" data-url="/package-stats/pages/settings/settings">
2026-04-18 17:16:49 +08:00
<view class="settings-icon">⚙</view>
2026-05-03 23:02:26 +08:00
<text class="settings-text">设置中心</text>
2026-04-18 17:16:49 +08:00
<view class="chevron"></view>
</view>
</scroll-view>
2026-04-19 16:39:02 +08:00
2026-04-23 11:34:54 +08:00
<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>
2026-05-12 20:27:47 +08:00
<input class="modal-input" type="nickname" value="{{nicknameDraft}}" placeholder="请输入昵称" maxlength="100" focus="true" bindinput="onNicknameInput" />
2026-04-23 11:34:54 +08:00
<view class="modal-actions">
<button class="modal-btn ghost" bindtap="closeNicknameModal">取消</button>
<button class="modal-btn primary" bindtap="saveNickname">保存</button>
</view>
</view>
</view>
2026-04-19 16:39:02 +08:00
<view class="bottom-nav">
<view class="nav-item" bindtap="goHome"><text class="nav-icon">⌂</text><text class="nav-label">首页</text></view>
2026-05-03 23:02:26 +08:00
<view class="nav-item" bindtap="goToReview"><text class="nav-icon">↻</text><text class="nav-label">复习</text></view>
2026-04-19 16:39:02 +08:00
<view class="nav-item active"><text class="nav-icon">☺</text><text class="nav-label">我的</text></view>
</view>
2026-05-03 23:02:26 +08:00
</view>