码上问学问代码之理,学编程之道

原型图 · 五个页面的线框稿

需求文档画成图,图变成接口清单——每张原型下方都标了这一页要调哪些接口。 学生照着做:先实现布局,再一个个接数据;配色与组件规范见页尾。

怎么用原型:线框 = 结构(放什么、放哪里),不带视觉细节。先 1:1 复刻结构,跑通数据后再自由发挥视觉——顺序反了就会做三天封面页。

① 首页 — 三区块一屏讲完项目能干什么

古典文学网首页赏文学登录 / 注册搜索作品名称或摘要…诗以言志 · 从《诗经》到唐诗banner.image 轮播 · 点击跳详情◂▸诗经唐诗宋词元曲散文小说编辑推荐作品标题…作者 · 朝代 · 分类3120 浏览作品标题…作者 · 朝代 · 分类3120 浏览作品标题…作者 · 朝代 · 分类3120 浏览作品标题…作者 · 朝代 · 分类3120 浏览作品标题…作者 · 朝代 · 分类3120 浏览作品标题…作者 · 朝代 · 分类3120 浏览
调用:GET /api/banner/list、GET /api/category/list、GET /api/article/recommend?limit=6 —— 三请求无依赖,用 Promise.all 并发(flow.html 第 8 步)。

② 赏文学 · 作品列表 — 筛选 / 搜索 / 排序 / 分页四件套

古典文学网首页赏文学全部分类 ▾全部朝代 ▾排序 ▾🔍 关键字…共 14 篇 · 每页 10 篇作品标题一行放不下就省略号……摘要两行截断 · · · · · · · · · · ·唐诗328 浏览 · 42 赞作品标题一行放不下就省略号……摘要两行截断 · · · · · · · · · · ·唐诗328 浏览 · 42 赞作品标题一行放不下就省略号……摘要两行截断 · · · · · · · · · · ·唐诗328 浏览 · 42 赞作品标题一行放不下就省略号……摘要两行截断 · · · · · · · · · · ·唐诗328 浏览 · 42 赞‹12›
调用:GET /api/article/list。筛选 / 关键字 / 排序 / 页码全是 query 参数;筛选一变自动回第 1 页(watch 分页参数);分页器用 v-model:current-page 组件双绑。

③ 作品详情 — 内容 + 互动(书评 / 点赞 / 收藏)都在这一页

← 返回列表作品详情静夜思李白 · 唐 · 唐诗 | 3280 次浏览♡ 赞 214★ 已收藏【赏析】……(正文 content 原样换行展示)书评(2)山水间评论内容一行……回复 · ♡ 12└ 演示同学评论内容一行……回复 · ♡ 12写下你的书评…(未登录提示先登录)发表
调用:GET /api/article/detail/<id>(带 token 会回填 is_liked / is_favorite)、GET /api/comment/list、POST /api/comment/add ★、POST /api/article/like ★、POST /api/favorite/toggle ★。每次打开详情,后端自动浏览量 +1。

④ 登录 / 注册 — 同一个卡片两个 Tab

古典文学网登录注册用户名demo密码••••••忘了勾选会有红色校验提示 ↘登 录登录成功 → 存 token → 跳回原页面演示账号:admin / 123456
调用:POST /api/user/register、POST /api/user/login。两个 Tab 切同一张卡片;校验交给 el-form :rules;成功后 token 进 Pinia + localStorage,并按 ?redirect= 跳回被拦截前的页面。

⑤ 个人中心 — 资料 + 统计 + 我的收藏

古典文学网个人中心👤演示同学demo编辑资料2书评2收藏昵称简介我的收藏收藏的作品标题……苏轼 · 宋 · 宋词取消收藏收藏的作品标题……苏轼 · 宋 · 宋词取消收藏头像上传:el-upload → POST /api/user/avatar(form-data)
调用:GET /api/user/profile ★(含书评 / 收藏统计)、PUT /api/user/profile ★、GET /api/favorite/list ★、POST /api/user/avatar ★。未登录访问会被路由守卫拦到登录页。

设计规范

本项目真实使用的视觉约定
设计规范 · 原型照着这个做就不会丑
项规范为什么
主色#B04A2C 陶土红(品牌)+ 大面积米白纸感底色古典气质;彩色只给交互态,不淹没内容
字体界面 PingFang SC / Microsoft YaHei;标题可上衬线(宋体)文学站的内容是主角,字体别抢戏
正文≥ 15px,行高 1.7~1.8;次要信息用灰但对比度 ≥ 4.5:1诗词正文是长文,阅读舒适第一
卡片发丝线边框 + 大留白;投影只给悬停(浮起 3px)静态克制、交互有反馈
间距组内紧(8~12px)、组间松(32px+)两级节奏间距是免费的分组手段
状态加载 v-loading / 空态 el-empty / 失败 ElMessage——三态一个不许少用户不知道「在加载」就会以为坏了