Files
xianyan/docs/preview/account-settings-preview.html
Developer 00ff5f152a feat: 添加清除结果功能到检查提供者
refactor: 更新URL哈希处理逻辑

feat: 添加聊天消息存储支持

docs: 更新API控制器基类文档

chore: 删除无用脚本文件

fix: 修复分类模型返回类型问题

feat: 添加回执登录功能

build: 更新依赖项配置

style: 统一HTML模板中的哈希ID引用格式

ci: 添加部署和检查脚本
2026-04-30 10:19:56 +08:00

529 lines
16 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>方案4 — 账户设置 & 我的 页面预览</title>
<style>
:root {
--primary: #6C63FF;
--primary-light: #8B83FF;
--accent: #4ECDC4;
--bg-dark: #0A0A1A;
--bg-surface: rgba(28, 28, 40, 0.92);
--bg-card: rgba(255,255,255,0.06);
--bg-card-hover: rgba(255,255,255,0.10);
--text-primary: #F0F0F8;
--text-secondary: rgba(240,240,248,0.55);
--text-hint: rgba(240,240,248,0.3);
--border: rgba(255,255,255,0.08);
--radius-sm: 8px;
--radius-md: 14px;
--radius-lg: 20px;
--radius-xl: 28px;
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 24px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', sans-serif;
background: var(--bg-dark);
color: var(--text-primary);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: flex-start;
padding: 40px 20px;
gap: 40px;
flex-wrap: wrap;
}
.page-title {
width: 100%;
text-align: center;
font-size: 28px;
font-weight: 700;
margin-bottom: 10px;
background: linear-gradient(135deg, var(--primary), var(--accent));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.page-subtitle {
width: 100%;
text-align: center;
font-size: 14px;
color: var(--text-secondary);
margin-bottom: 20px;
}
.phone-frame {
width: 390px;
min-height: 844px;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
position: relative;
overflow: hidden;
border-radius: 44px;
border: 3px solid rgba(255,255,255,0.1);
box-shadow: 0 40px 80px rgba(0,0,0,0.5);
}
.phone-label {
text-align: center;
font-size: 13px;
color: var(--accent);
margin-bottom: 12px;
font-weight: 600;
}
.status-bar {
height: 54px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 28px;
font-size: 14px;
font-weight: 600;
}
.content {
padding: 0 var(--space-md);
padding-bottom: 100px;
overflow-y: auto;
max-height: 760px;
}
.nav-bar {
display: flex;
align-items: center;
justify-content: center;
padding: 8px var(--space-md);
position: relative;
margin-bottom: var(--space-sm);
}
.nav-back {
position: absolute;
left: var(--space-md);
font-size: 20px;
color: var(--primary);
cursor: pointer;
}
.nav-title {
font-size: 17px;
font-weight: 600;
}
.section-title {
font-size: 24px;
font-weight: 700;
padding: var(--space-sm) 0;
margin-bottom: var(--space-sm);
}
.glass-card {
background: var(--bg-card);
backdrop-filter: blur(40px);
-webkit-backdrop-filter: blur(40px);
border-radius: var(--radius-lg);
border: 1px solid var(--border);
margin-bottom: var(--space-md);
overflow: hidden;
}
.setting-row {
display: flex;
align-items: center;
padding: 14px var(--space-md);
cursor: pointer;
transition: background 0.2s;
}
.setting-row:hover {
background: var(--bg-card-hover);
}
.setting-emoji {
font-size: 20px;
width: 32px;
text-align: center;
margin-right: var(--space-sm);
}
.setting-label {
flex: 1;
font-size: 16px;
font-weight: 500;
}
.setting-value {
font-size: 14px;
color: var(--text-hint);
margin-right: 4px;
}
.setting-chevron {
color: var(--text-hint);
font-size: 14px;
}
.divider {
height: 0.5px;
background: var(--border);
margin-left: 52px;
}
.profile-header {
display: flex;
align-items: center;
padding: var(--space-md);
}
.avatar {
width: 56px;
height: 56px;
border-radius: 50%;
background: linear-gradient(135deg, var(--primary), var(--accent));
display: flex;
align-items: center;
justify-content: center;
font-size: 28px;
margin-right: var(--space-md);
flex-shrink: 0;
}
.profile-info {
flex: 1;
}
.profile-name {
font-size: 18px;
font-weight: 700;
margin-bottom: 2px;
}
.profile-desc {
font-size: 14px;
color: var(--text-secondary);
}
.profile-badge {
font-size: 11px;
background: rgba(108,99,255,0.15);
color: var(--primary-light);
padding: 2px 10px;
border-radius: 20px;
font-weight: 600;
}
.stats-bar {
display: flex;
justify-content: space-around;
padding: var(--space-md);
}
.stat-item {
text-align: center;
}
.stat-value {
font-size: 18px;
font-weight: 700;
}
.stat-label {
font-size: 12px;
color: var(--text-secondary);
}
.logout-btn {
width: 100%;
padding: 14px;
background: rgba(255,59,48,0.1);
border: none;
border-radius: var(--radius-lg);
color: #FF3B30;
font-size: 16px;
font-weight: 600;
cursor: pointer;
margin-top: var(--space-md);
}
.moved-item {
background: rgba(78, 205, 196, 0.08);
border-left: 3px solid var(--accent);
}
.move-badge {
font-size: 10px;
background: var(--accent);
color: #000;
padding: 1px 6px;
border-radius: 4px;
margin-left: 8px;
font-weight: 700;
}
.arrow-indicator {
display: flex;
align-items: center;
justify-content: center;
font-size: 40px;
color: var(--accent);
padding: 20px 0;
align-self: center;
}
.highlight-section {
border: 2px solid var(--accent);
border-radius: var(--radius-lg);
position: relative;
}
.highlight-label {
position: absolute;
top: -12px;
left: 16px;
background: var(--accent);
color: #000;
font-size: 11px;
font-weight: 700;
padding: 2px 10px;
border-radius: 10px;
}
.avatar-section {
display: flex;
align-items: center;
padding: var(--space-md);
}
.avatar-large {
width: 64px;
height: 64px;
border-radius: 50%;
background: linear-gradient(135deg, var(--primary), var(--accent));
display: flex;
align-items: center;
justify-content: center;
font-size: 32px;
margin-right: var(--space-md);
flex-shrink: 0;
}
.info-row {
display: flex;
align-items: center;
padding: 12px var(--space-md);
}
.info-label {
font-size: 15px;
color: var(--text-secondary);
min-width: 70px;
}
.info-value {
flex: 1;
text-align: right;
font-size: 15px;
margin-right: 4px;
}
.action-row {
display: flex;
align-items: center;
padding: 14px var(--space-md);
cursor: pointer;
transition: background 0.2s;
}
.action-row:hover {
background: var(--bg-card-hover);
}
.new-tag {
font-size: 10px;
background: #FF9500;
color: #fff;
padding: 1px 6px;
border-radius: 4px;
margin-left: 8px;
font-weight: 700;
}
</style>
</head>
<body>
<div class="page-title">方案4 — 账户设置 & 我的 页面调整</div>
<div class="page-subtitle">将"修改密码"、"绑定手机"、"绑定邮箱"从「我的」页面移动到「账户设置」页面</div>
<!-- 我的 页面 (修改后) -->
<div>
<div class="phone-label">📱 「我的」页面 — 修改后</div>
<div class="phone-frame">
<div class="status-bar">
<span>9:41</span>
<span>📶 🔋</span>
</div>
<div class="content">
<div class="section-title">👤 我的</div>
<div class="glass-card">
<div class="profile-header">
<div class="avatar">😊</div>
<div class="profile-info">
<div class="profile-name">闲言用户</div>
<div class="profile-desc">发现好句,创作卡片</div>
</div>
<span class="profile-badge">免费版</span>
</div>
</div>
<div class="glass-card">
<div class="stats-bar">
<div class="stat-item"><div class="stat-value">💰 128</div><div class="stat-label">积分</div></div>
<div class="stat-item"><div class="stat-value">📅 5</div><div class="stat-label">签到</div></div>
<div class="stat-item"><div class="stat-value">📖 32</div><div class="stat-label">阅读</div></div>
</div>
</div>
<div class="glass-card">
<div class="setting-row"><span class="setting-emoji">💕</span><span class="setting-label">我的收藏</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">📖</span><span class="setting-label">阅读历史</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">🌙</span><span class="setting-label">深色模式</span><span class="setting-value">跟随系统</span></div>
</div>
<div class="glass-card">
<div class="setting-row"><span class="setting-emoji">📅</span><span class="setting-label">每日签到</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">📝</span><span class="setting-label">我的笔记</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">📊</span><span class="setting-label">数据统计</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">🔍</span><span class="setting-label">内容纠错</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">📚</span><span class="setting-label">学习中心</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">🏆</span><span class="setting-label">成就中心</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">📝</span><span class="setting-label">学习打卡</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">💰</span><span class="setting-label">金币记录</span><span class="setting-chevron"></span></div>
</div>
<div class="glass-card highlight-section">
<div class="highlight-label">✅ 修改后:仅保留入口</div>
<div class="setting-row"><span class="setting-emoji">👤</span><span class="setting-label">账户设置</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">💾</span><span class="setting-label">数据管理</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">📡</span><span class="setting-label">离线模式</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">🗄️</span><span class="setting-label">缓存管理</span><span class="setting-chevron"></span></div>
</div>
<div class="glass-card">
<div class="setting-row"><span class="setting-emoji">🌐</span><span class="setting-label">语言</span><span class="setting-value">简体中文</span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">🎨</span><span class="setting-label">主题个性化</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">⚙️</span><span class="setting-label">通用设置</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">👑</span><span class="setting-label">会员中心</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">📖</span><span class="setting-label">句子来源</span><span class="setting-chevron"></span></div>
</div>
<div class="glass-card">
<div class="setting-row"><span class="setting-emoji"></span><span class="setting-label">关于闲言</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji"></span><span class="setting-label">给个好评</span><span class="setting-chevron"></span></div>
<div class="divider"></div>
<div class="setting-row"><span class="setting-emoji">🐛</span><span class="setting-label">调试模式</span></div>
</div>
</div>
</div>
</div>
<div class="arrow-indicator">➡️</div>
<!-- 账户设置 页面 (修改后) -->
<div>
<div class="phone-label">📱 「账户设置」页面 — 修改后</div>
<div class="phone-frame">
<div class="status-bar">
<span>9:41</span>
<span>📶 🔋</span>
</div>
<div class="nav-bar">
<span class="nav-back"></span>
<span class="nav-title">👤 账户设置</span>
</div>
<div class="content">
<div class="glass-card">
<div class="avatar-section">
<div class="avatar-large">😊</div>
<div class="profile-info">
<div class="profile-name">闲言用户</div>
<div class="profile-desc">点击编辑个人资料</div>
</div>
<span class="setting-chevron"></span>
</div>
</div>
<div class="glass-card">
<div class="info-row"><span class="info-label">昵称</span><span class="info-value">闲言用户</span><span class="setting-chevron"></span></div>
<div class="divider" style="margin-left:16px"></div>
<div class="info-row"><span class="info-label">邮箱</span><span class="info-value" style="color:var(--text-hint)">未绑定</span><span class="setting-chevron"></span></div>
<div class="divider" style="margin-left:16px"></div>
<div class="info-row"><span class="info-label">手机</span><span class="info-value" style="color:var(--text-hint)">未绑定</span><span class="setting-chevron"></span></div>
<div class="divider" style="margin-left:16px"></div>
<div class="info-row"><span class="info-label">个性签名</span><span class="info-value" style="color:var(--text-hint)">未填写</span><span class="setting-chevron"></span></div>
</div>
<div class="glass-card highlight-section">
<div class="highlight-label">✅ 新增:从「我的」移入</div>
<div class="action-row moved-item">
<span class="setting-emoji">🔒</span>
<span class="setting-label">修改密码</span>
<span class="new-tag">已移入</span>
<span class="setting-chevron"></span>
</div>
<div class="divider"></div>
<div class="action-row moved-item">
<span class="setting-emoji">📱</span>
<span class="setting-label">绑定手机</span>
<span class="setting-value">未绑定</span>
<span class="new-tag">已移入</span>
</div>
<div class="divider"></div>
<div class="action-row moved-item">
<span class="setting-emoji">📧</span>
<span class="setting-label">绑定邮箱</span>
<span class="setting-value">未绑定</span>
<span class="new-tag">已移入</span>
</div>
<div class="divider"></div>
<div class="action-row">
<span class="setting-emoji">💾</span>
<span class="setting-label">数据管理</span>
<span class="setting-chevron"></span>
</div>
</div>
<button class="logout-btn">🚪 退出登录</button>
</div>
</div>
</div>
</body>
</html>