# MySQL 查询练习网站|页面设计说明(Desktop-first) ## 1. Global Styles(全局规范) - 设计基调:学习型工具,信息密度中高,强调“编辑器可读性”和“结果对比清晰”。 - Design tokens(建议) - Background: #0B1220(深色)/ #FFFFFF(浅色,可选主题开关,默认深色) - Primary: #3B82F6;Success: #22C55E;Warning: #F59E0B;Danger: #EF4444 - Text: 主文 #E5E7EB;次文 #9CA3AF;反白 #111827 - Font:系统字体 + 等宽(编辑器/SQL 区:ui-monospace) - 圆角:8px;卡片阴影:轻量;分割线:1px #1F2937 - 交互状态 - Button:默认/hover 提亮 6–10%;disabled 降低不透明度并禁用点击 - Link:hover 下划线;当前路由高亮 - 响应式(桌面优先) - ≥1200px:练习页三栏; - 768–1199px:左右栏折叠为抽屉; - <768px:编辑器与结果上下堆叠(仍可用)。 ## 2. Page: 登录/注册页 ### Layout - 居中单卡片(max-width 420px),背景使用柔和渐变或插画空白区。 ### Meta Information - title:登录|MySQL 查询练习 - description:登录后开始 MySQL 分级练习。 ### Page Structure 1. 顶部:Logo + 产品一句话 2. 表单区:邮箱、密码、主按钮(登录/注册切换 Tab) 3. 辅助区:错误提示(表单下方),次按钮(忘记密码/返回首页) ### Sections & Components - AuthTabs:登录/注册切换(同一页完成) - FormField:输入框带校验(必填、邮箱格式) - FeedbackBanner:展示认证失败原因(如密码错误) ## 3. Page: 首页(题目与引导) ### Layout - 顶部导航 + 内容双列:左侧筛选,右侧题目列表(CSS Grid:280px + 1fr)。 ### Meta Information - title:题目练习|MySQL 查询练习 - description:按新手/一般/进阶选择题目进行练习。 ### Page Structure 1. TopNav(全局):Logo、导航(题目/数据库管理)、用户菜单(退出/重新引导) 2. LeftPanel:分级切换、新手引导入口、状态筛选、搜索框 3. MainList:题目卡片列表(默认按模块过滤) + 分页/加载更多(任选其一) 4. ContinueCard:继续上次练习(若存在) ### 强关联展示 - TopNav 右侧展示“当前数据库”胶囊(名称 + 来源),帮助新手始终知道自己在对哪个库练习。 - 题目列表仅展示你选择模块对应的题库。 ### Sections & Components - LevelSegment:三段式切换(新手/一般/进阶) - SearchInput:关键词筛选(标题/题干关键字) - StatusFilter:未做/已做 - ExerciseCard:标题、难度徽标、完成状态、进入按钮 - OnboardingTrigger:按钮“新手引导”,点击后弹出引导 ### 新手引导(Overlay/Modal,不单独页面) - Step 1:提示去“数据库管理”选择模拟库 - Step 2:回到首页,选择一题进入练习 - Step 3:练习页说明“编辑-运行-看结果-判题” - 支持:跳过/上一步/下一步/完成;完成后记录状态,避免重复打扰 ## 4. Page: 练习页(SQL 编辑与判题) ### Layout - 桌面三栏布局(CSS Grid:320px | 1fr | 420px) - 左:题目与表结构入口 - 中:编辑器与运行 - 右:结果/判题/提示 ### Meta Information - title:做题|{题目标题}|MySQL 查询练习 - description:在线编写并运行 MySQL 查询,实时查看结果与判题。 ### Page Structure 1. TopNav:返回题目列表、当前题目标题、当前激活数据库标识 2. Left(QuestionPanel) - 题目描述(支持代码块/要点) - 目标输出说明(字段/排序/过滤) - 表结构入口(按钮打开 Drawer/Modal 展示表与字段,只读) 3. Center(EditorPanel) - Monaco Editor(SQL 高亮) - 操作区:运行、重置、保存草稿(可自动保存,仅展示状态) - 运行状态:loading、耗时、错误(语法/权限/超时) 4. Right(ResultPanel) - 查询结果表格(表头固定、横向滚动) - 判题结论:通过/未通过 - 最小提示:例如缺字段、行数不一致、排序不一致(不泄露完整答案) ### Interaction & States - Run:触发执行后禁用按钮直到返回;错误时高亮并展示可读信息 - Pass:展示绿色状态并可“下一题” - Fail:展示差异点与建议方向(简短) ### 防误操作(库不匹配) - 若当前激活数据库与题目要求的数据库不一致: - 结果区展示醒目提示 - 提供“一键切换到推荐模拟库” ## 5. Page: 数据库管理页 ### Layout - 上下结构:顶部说明 + 两个卡片区(模拟库、导入库),右侧可显示“当前激活库”概览。 ### Meta Information - title:数据库管理|MySQL 查询练习 - description:选择模拟数据库或导入你的自定义数据库用于练习。 ### Page Structure 1. Header:说明“练习将基于当前激活数据库运行” 2. MockDBSection:模拟库列表卡片(名称、简介、表数量、激活按钮) 3. ImportSection:上传初始化 SQL 文件(建表+数据) 4. ActiveDBSummary:当前激活库信息(名称、来源、导入时间、查看表结构) ### Sections & Components - MockDBCard:点击设为激活,成功后 toast 提示 - UploadInitSql:拖拽上传 + 进度条 + 成功/失败提示(失败给出原因摘要) - TablePreviewDrawer:只读展示表/字段列表(避免在此页执行 SQL,保持职责清晰)