Files
my_site/草图/pencil-new-前端页面需求文档.md
2026-03-14 11:03:07 +08:00

17 KiB
Raw Blame History

Personal Portal 前端页面需求文档

1. 文档说明

  • 设计来源:草图/pencil-new.pen
  • 目标:将设计稿整理为可执行的前端页面需求,供 UI 开发、接口联调、测试验收使用
  • 适用范围PC Web 端个人门户站点
  • 设计基准尺寸:1440 x 1024
  • 说明:文档中未在设计稿中直接标注但对实现必需的内容,已按常规门户产品逻辑做合理补充,并明确写为“建议”或“推断”

2. 产品定位

这是一个统一个人门户站点,用于集中承载以下能力:

  • 账号登录
  • 首页总览
  • 网盘文件管理
  • 教务数据查询
  • 游戏入口聚合

站点风格偏深色、毛玻璃、卡片式信息展示,强调“统一入口”和“个人数据聚合”。

3. 站点信息架构

建议前端按以下一级路由组织:

页面 建议路由 页面目标
登录页 /login 完成身份认证并进入门户
总览页 /overview 汇总展示用户、文件、课程、成绩等核心信息
网盘页 /files 浏览、筛选、查看和上传个人文件
教务页 /school 查询课表、成绩并展示学期数据
游戏页 /games 提供小游戏入口和分类切换

4. 全局设计与交互要求

4.1 全局视觉规范

  • 页面主背景为深蓝黑色系,建议主背景色接近 #07101D
  • 卡片、导航、输入框采用半透明深色背景叠加模糊效果,形成毛玻璃风格
  • 主强调色为亮蓝色,建议主色接近 #336EFF
  • 文字颜色分三级:
    • 一级文字:高亮白色,用于标题、主按钮文字、关键数据
    • 二级文字:浅蓝灰色,用于说明文案、次要导航
    • 三级文字:更浅的透明文字,用于分隔说明和弱提示
  • 整站圆角统一偏大,按钮、卡片、胶囊标签均使用较高圆角

4.2 全局布局要求

  • 所有页面采用顶部导航 + 主内容区结构
  • 顶部导航固定在页面顶部,默认包含站点品牌和一级导航入口
  • 主内容区使用卡片化分区布局,不同页面根据业务类型使用多列或多卡片排布
  • 所有卡片之间需要保留清晰的间距层级,避免信息拥挤

4.3 全局导航要求

  • 顶部左侧固定展示站点品牌:
    • 主标题:YOYUZH.XYZ
    • 副标题:Personal Portal
  • 顶部右侧固定展示一级导航:
    • 总览
    • 网盘
    • 教务
    • 游戏
  • 当前所在页面的导航项为激活态:
    • 高亮蓝色背景
    • 白色文字
    • 带轻微发光或阴影
  • 非当前页面为普通态:
    • 半透明深色背景
    • 浅色文字
  • 点击一级导航后执行页面切换,建议保留当前登录态

4.4 全局交互要求

  • 所有按钮、胶囊标签、切换项、列表行都应具备 hover、focus、active 状态
  • 键盘 Tab 顺序必须与视觉顺序一致
  • 图标型按钮若后续补充图标,必须提供 aria-label
  • 卡片内部若有按钮组,主操作需突出显示,次操作保持弱化视觉
  • 页面切换过程中应有最基本的加载保护,避免空白闪烁

4.5 全局状态要求

每个业务页面至少支持以下状态:

  • 加载中:显示骨架屏或占位态
  • 加载成功:展示设计稿对应内容
  • 空状态:当列表、课表、成绩无数据时显示空态说明
  • 错误状态:接口失败时显示错误提示与重试入口
  • 未登录状态:除登录页外,若无有效登录态应跳回登录页

4.6 响应式要求

设计稿是桌面端稿件,前端实现时建议补齐以下断点:

  • >= 1280px:按设计稿布局展示
  • 768px - 1279px:多列卡片可改为 2 列,右侧预览或抽屉可下移
  • < 768px:顶部导航压缩为可滚动标签或抽屉菜单;卡片全部改为单列堆叠

移动端适配要求:

  • 不允许出现横向滚动条
  • 卡片内文字不可溢出遮挡
  • 按钮点击热区不小于 44 x 44px
  • 文件表格在小屏下可切换为列表卡片模式

4.7 可访问性要求

  • 文本与背景对比度满足基本可读性
  • 表单字段必须带标签
  • 所有可点击控件需支持键盘操作
  • 当前导航项、当前分段切换项需要有明确的选中态
  • 动画需兼容 prefers-reduced-motion

5. 登录页需求

5.1 页面目标

为用户提供统一入口,完成账号认证并进入门户首页。

5.2 页面结构

页面分为左右两区:

  • 左侧品牌介绍区
  • 右侧登录表单区

5.3 左侧品牌介绍区

应包含以下元素:

  • 品牌标题:YOYUZH.XYZ
  • 品牌副标题:Personal Portal
  • 胶囊标签:Access Portal
  • 主标题:个人网站统一入口
  • 一段站点简介文案

实现要求:

  • 左侧内容垂直排列,整体偏页面左上区域
  • 背景需要有大面积柔和发光装饰,营造氛围感
  • 简介文案允许后续替换为真实站点介绍

5.4 右侧登录表单区

表单卡片应包含以下字段和元素:

  • 表单标题:登录
  • 用户名输入框
  • 密码输入框
  • 主按钮:进入系统

字段要求:

字段 类型 必填 说明
用户名 文本输入 支持账号、用户名或学号
密码 密码输入 采用掩码显示

交互要求:

  • 用户名、密码均为空时点击按钮,给出必填校验
  • 支持按 Enter 提交表单
  • 登录请求发起后按钮进入 loading 状态并禁用重复点击
  • 登录成功后跳转至 /overview
  • 登录失败时在表单区域显示错误提示

建议补充能力:

  • 记住登录状态
  • 登录态过期自动跳转登录页
  • 允许后续增加验证码或二次验证

5.5 登录页验收标准

  • 页面首屏能清晰表达“统一入口”的产品定位
  • 输入框、按钮在视觉上与整体毛玻璃风格统一
  • 表单校验、提交、错误反馈完整
  • 登录成功跳转逻辑正常

6. 总览页需求

6.1 页面目标

集中展示用户最常用的跨模块摘要信息,让用户在一个页面看到文件、课程、成绩、账号等核心状态。

6.2 页面结构

总览页包含以下模块:

  • 顶部导航栏
  • 欢迎 Hero 区
  • 4 张数据指标卡片
  • 最近文件卡片
  • 今日 / 本周课程卡片
  • 快捷操作卡片
  • 存储空间卡片
  • 账号信息卡片

6.3 Hero 欢迎区

需展示以下内容:

  • 欢迎语:如 欢迎回来tester5595
  • 当前时间与问候语:如 现在时间 20:17 · 晚上好
  • 简短页面说明

实现要求:

  • 欢迎语作为页面最强视觉标题
  • 当前时间应来自前端运行时或服务端返回,不应硬编码
  • 问候语应根据时间段变化,建议分为凌晨、早上、下午、晚上

6.4 指标卡片区

共 4 个指标模块:

模块 示例值 说明
网盘文件总数 128 展示文件总量及分类说明
最近 7 天上传 6 展示近 7 日上传数量和最近更新时间
本周课程 18 展示本周课程总量及今日课节数
已录入成绩 42 展示成绩总数及最近学期

实现要求:

  • 数字需突出显示
  • 标题、数字、补充描述分层明显
  • 支持接口数据为空时展示 0 和空说明

6.5 最近文件模块

需展示:

  • 模块标题:最近文件
  • 最近文件列表,建议至少显示 3 条
  • 每条信息至少包含:
    • 文件名
    • 文件大小
    • 最近更新时间

交互要求:

  • 点击文件项可跳转 /files,并定位到该文件
  • 文件名超长时需截断并保留 tooltip 或完整展示方案

6.6 课程模块

模块标题:今日 / 本周课程

模块内包含:

  • 分段切换:今日 / 本周
  • 课程列表,建议显示:
    • 时间段
    • 课程名称
    • 教室或地点

交互要求:

  • 默认选中 今日
  • 点击 本周 后刷新为本周课表摘要
  • 切换过程不可造成卡片高度明显抖动

6.7 快捷操作模块

需提供 4 个快捷入口:

  • 上传文件
  • 新建文件夹
  • 进入网盘
  • 查询成绩

交互要求:

  • 上传文件:打开上传弹窗或跳转文件页并打开上传面板
  • 新建文件夹:打开新建文件夹表单
  • 进入网盘:跳转 /files
  • 查询成绩:跳转 /school 并聚焦成绩查询区域

6.8 存储空间模块

需展示:

  • 模块标题:存储空间
  • 已使用容量 / 总容量,如 12.6 GB / 50 GB
  • 使用进度条
  • 百分比数值,如 25%

实现要求:

  • 进度条宽度与百分比联动
  • 数值格式统一保留 1 位小数或按产品约定显示

6.9 账号信息模块

需展示:

  • 模块标题:账号信息
  • 用户名
  • 邮箱

建议补充:

  • 后续预留头像、绑定状态、退出登录入口

6.10 总览页验收标准

  • 各卡片数据层级清晰,首屏即可理解
  • 快捷操作能通往对应模块
  • 时间、课表、文件、容量信息均支持动态数据渲染
  • 页面在 1280px 以上布局稳定,在平板和移动端能正常堆叠

7. 网盘页需求

7.1 页面目标

提供个人网盘文件浏览、路径导航、详情预览和基础操作入口。

7.2 页面结构

网盘页采用三栏布局:

  • 左侧目录导航栏
  • 中间文件内容区
  • 右侧详细信息预览栏

7.3 左侧目录导航栏

建议包括两组内容:

  • 快速访问
    • 桌面
    • 下载
    • 文档
    • 图片
  • 网盘目录
    • 我的文件
    • 课程资料
    • 项目归档
    • 收藏夹

交互要求:

  • 点击目录项刷新中间内容区
  • 当前目录项应有激活态
  • 若目录层级增加,建议支持树形展开

7.4 中间文件内容区

应包含以下元素:

  • 路径面包屑栏
  • 视图切换控件:列表 / 分栏 / 预览
  • 文件列表表头
  • 文件列表内容
  • 底部操作按钮:新建上传

面包屑要求:

  • 当前示例路径为:网盘 > 我的文件 > 课程资料 > 软件工程
  • 每一级路径应可点击返回

文件列表字段要求:

列名 说明
名称 文件或文件夹名称
修改日期 最近更新时间
类型 文件类型或目录类型
大小 文件大小;文件夹可显示

列表交互要求:

  • 支持单行选中
  • 支持文件夹进入下一级目录
  • 支持当前选中项同步到右侧详情栏
  • 当前选中行需有明显高亮
  • 文件名过长时截断处理

建议补充能力:

  • 双击打开文件
  • 右键菜单
  • 多选
  • 排序
  • 搜索

7.5 右侧详细信息预览栏

需展示当前选中文件的详细信息:

  • 当前选择的文件名
  • 文件路径
  • 文件大小
  • 上传时间

建议扩展字段:

  • 文件类型图标
  • 最近编辑人
  • 下载次数
  • 预览缩略图

7.6 网盘页操作要求

主操作:

  • 上传
  • 新建

交互说明:

  • 上传:支持本地文件选择,建议支持拖拽上传
  • 新建:默认创建文件夹,也可为后续扩展新建文档保留能力
  • 操作成功后,文件列表与统计信息应刷新

7.7 网盘页状态要求

  • 空目录:显示空状态文案和“上传文件”入口
  • 加载中:文件表格骨架屏
  • 上传中:显示上传进度
  • 上传失败:显示失败原因并支持重试

7.8 网盘页验收标准

  • 三栏布局信息职责明确
  • 面包屑、目录树、列表选中、右侧详情联动正常
  • 上传与新建入口位置明显,交互闭环完整
  • 小屏情况下可退化为“目录 / 列表 / 详情”分步展示

8. 教务页需求

8.1 页面目标

提供统一教务查询入口,用于查看课表、成绩及历史学期数据摘要。

8.2 页面结构

页面包含以下主要区域:

  • 教务查询卡片
  • 数据摘要卡片
  • 课表抽屉卡片
  • 成绩热力图区域

8.3 教务查询卡片

应包含以下字段:

字段 示例 说明
学号 2023123456 查询账号
密码 •••••••• 教务系统密码
学期 2025 秋 当前选择学期

按钮包括:

  • 查询课表
  • 查询成绩

交互要求:

  • 学号、密码、学期为必填项
  • 点击 查询课表 后刷新课表抽屉和摘要区对应信息
  • 点击 查询成绩 后刷新成绩区域和摘要区对应信息
  • 建议保留上次成功查询的账号与学期缓存

8.4 数据摘要卡片

需展示缓存或最近一次查询结果摘要:

  • 当前缓存账号
  • 已保存课表学期
  • 已保存成绩学期列表

实现要求:

  • 未查询时显示空态说明
  • 查询成功后即时更新

8.5 课表抽屉卡片

模块标题:课表抽屉

展示形式:

  • 按星期分组展示课程
  • 每条课程至少包含:
    • 上课时间
    • 课程名称
    • 教室

交互要求:

  • 右侧有明显的抽屉把手视觉提示
  • 建议支持展开 / 收起或横向滑出效果
  • 抽屉在平板和移动端可切为底部弹层

8.6 成绩视图切换

查询卡片内存在分段切换:

  • 课表
  • 成绩

要求:

  • 默认激活 课表
  • 切换到 成绩 时,页面焦点应转向成绩区域
  • 当前激活项需具备明显视觉反馈

8.7 成绩热力图区域

模块标题:成绩热力图

需展示多个学期的成绩分布示意,设计稿中包含:

  • 2024 秋
  • 2025 春
  • 2025 秋

实现要求:

  • 每个学期形成独立列
  • 每列包含多个课程成绩条
  • 颜色深浅或透明度表示成绩高低
  • 条形右侧或内部显示分数

建议补充能力:

  • 悬浮提示课程名、学分、绩点
  • 学期筛选
  • 按成绩排序

8.8 教务页状态要求

  • 未查询:显示引导说明
  • 查询中:按钮 loading结果区骨架屏
  • 查询成功:更新课表、摘要、成绩
  • 查询失败:展示错误原因和重试入口

8.9 教务页验收标准

  • 查询表单、结果摘要、课表和成绩之间联动清晰
  • 抽屉与热力图区域在不同状态下布局稳定
  • 历史学期成绩能正确映射为视觉强弱差异

9. 游戏页需求

9.1 页面目标

作为轻量娱乐入口页,承载站内小游戏展示和启动入口。

9.2 页面结构

页面包含:

  • 顶部导航
  • 页面说明 Hero 区
  • 分类切换
  • 游戏卡片列表

9.3 Hero 区

需展示:

  • 模块标题:游戏入口
  • 一段说明文案,表达“保留轻量试玩与静态资源检查入口,维持与整站一致的毛玻璃语言”

9.4 分类切换

设计稿中包含:

  • 精选
  • 全部

交互要求:

  • 默认选中 精选
  • 点击后刷新卡片列表
  • 若当前仅有少量游戏,全部 可与 精选 数据一致

9.5 游戏卡片

设计稿中至少包含两个游戏入口:

名称 描述 按钮文案
CAT 简单的小猫升级游戏 Launch
RACE 赛车休闲小游戏 Launch

交互要求:

  • 点击 Launch 后进入游戏详情页、游戏运行页或新窗口
  • 游戏卡片需支持封面图扩展位
  • 后续支持增加更多游戏时,卡片布局可扩展

9.6 游戏页验收标准

  • 卡片入口清晰,用户能快速理解每个游戏内容
  • 分类切换有效
  • 启动按钮行为明确,不产生死链

10. 数据与接口需求建议

10.1 登录相关

  • 登录接口:提交用户名和密码,返回用户信息与 token
  • 获取当前登录用户接口:用于页面初始化恢复登录态

10.2 总览相关

  • 获取总览统计接口
  • 获取最近文件接口
  • 获取今日 / 本周课表摘要接口
  • 获取账号信息接口
  • 获取存储容量接口

10.3 网盘相关

  • 获取目录树接口
  • 获取当前路径文件列表接口
  • 获取文件详情接口
  • 上传文件接口
  • 新建文件夹接口

10.4 教务相关

  • 查询课表接口
  • 查询成绩接口
  • 获取历史查询缓存接口

10.5 游戏相关

  • 获取游戏列表接口
  • 获取游戏分类接口

11. 前端实现建议

  • 建议将顶部导航抽为全局公共组件
  • 建议将卡片、按钮、分段切换、信息列表抽为复用组件
  • 建议为每个页面单独维护数据请求与状态管理
  • 建议所有动态时间、容量、数量、成绩统一做格式化封装
  • 建议页面首屏背景光斑与毛玻璃效果使用纯 CSS 或轻量方案实现,避免过重图像资源

12. 测试验收清单

  • 登录页表单校验、错误提示、提交跳转正常
  • 顶部导航在 5 个页面间切换正常,当前态正确
  • 总览页卡片数据渲染与快捷跳转正常
  • 网盘页目录、路径、列表、详情联动正常
  • 教务页查询、切换、热力图展示正常
  • 游戏页分类切换和启动行为正常
  • 页面在桌面、平板、移动端无明显布局错乱
  • 页面无横向滚动,文本无明显遮挡
  • 键盘可访问性与 focus 状态正常

13. 交付物建议

前端开发阶段建议同步产出以下内容:

  • 页面路由结构
  • 公共布局组件
  • 各页面接口类型定义
  • 空状态、错误状态、加载状态组件
  • 基础 UI 规范说明文档