11 KiB
11 KiB
前台原型重构计划(方案D · 蓝天校园)
创建日期:2026-09-28 原型文件:
C:\Users\Allen\WorkBuddy\2026-09-27-04-36-54\design\variant-d-natural-green.html(最终版,"方案D · 蓝天校园 — 教师专业发展(全页面)",7 页单文件演示) 设计说明:design/home-redesign-notes.md(现状分析 / 设计决策 / 布局规范 / 落地建议——本计划直接采纳) 前端项目:E:\YHXT\view\ProfessionView后端项目:E:\YHXT\java\Profession目标:前台 7 个页面按原型 DOM/样式重写,后端补齐原型所需接口与字段。
一、原型概览(7 页,与现有路由一一对应)
| # | 原型页 id | 页面 | 对应现有路由 |
|---|---|---|---|
| 1 | page-home | 发展首页(hero 统计刊头 + 栏目条 + 组树/排行/积分排行 + 文章块墙) | /home |
| 2 | page-list | 栏目列表·全校(hero + 组树 + 工具栏 + 表格含年级/学科列) | /module/list(无 userid) |
| 3 | page-space | 栏目列表·个人空间(个人卡+统计+等级进度+栏目菜单+本月概览+访客 + 面包屑 + 工具栏含班级 + 表格含年级/班级/操作图标) | /module/list?userid= |
| 4 | page-edit | 发布/编辑(左栏个人卡+菜单+访客;右栏表单卡:标题/年级学科/公开/动态字段分隔区/正文编辑器/附件/操作) | /record/new |
| 5 | page-detail | 记录详情(左栏同上;右栏:面包屑+detail-card[标题/元信息/正文/附件内联预览/详细信息/最近浏览足迹/评论盒]) | /record/detail |
| 6 | page-timeline | 专业发展足迹(左栏同上;右栏:crumbs「我的首页」+ 年份块时间轴:日期/【栏目】/标题/摘要) | /timeline |
| 7 | page-area | 区级视图(栏目条含「区级视图」项;全区发布排行[奖牌+比例条] + 学校教师发布统计表 + 分页) | /area |
设计主题(方案D · 蓝天校园,:root tokens)
--bg:#eef5fc(天空渐变底)、--card:#fff、主靛蓝 --navy:#1f6fd0(hover #1857b8)、浅蓝 --sky:#e3f0fd、文字 --ink:#1c1e26/--ink-2、弱化 --muted:#8fa9c4、边框 --line:#e7e9ee、暖橙点缀 --gold:#c98a2b;标题衬线字体 Georgia/Songti(刊头),正文系统无衬线;容器 1180px;顶栏为透明白字(压在天空渐变上)。
原型关键构件
- Hero 刊头:校园 SVG 场景 +
campus-illo-v6.jpg插画 + kicker/title/sub + 4 个统计胶囊(累计记录/活跃教师/发展栏目/本周新增,四色) - 栏目条:白底圆角卡内嵌条;项带序号(01/02/…);选中态品牌色胶囊;末尾「更多▾」
- 首页左列三面板:学科组(白底缩进树+绿色计数徽章「(3)126」)/ 发布排行(奖牌前3+比例条)/ 积分排行(新增)
- 文章块:块头 = 栏目字章 chip(思/文/课/书/研/评/计/荣,各自配色)+ 名称 + 篇数 + 更多›;行 = 两位序号 + 标题 + 作者(内联)+ 右浮日期
- 个人卡 space-head:圆形字章头像 + 姓名 + 角色/标签(原型演示数据)+ 积分;space-statrow(累计记录/获赞/被访问);等级进度条(Lv.4 682/800);栏目菜单(篇数徽章);本月概览(本月发布/新获评论/新增阅读/新访客 四色);最近访客(字章+「查看全部访客›」)
- 面包屑 .crumbs:房子 SVG 图标(→我的首页)+ › 分隔 + 栏目名 + › + 当前页
- 表格 .tbl:圆角卡内表格;操作列 = 查看/编辑/删除 SVG 线性图标(danger 红)
- 详情页新增:detail-meta(撰写/发表时间/阅读·评论)、附件内联预览(iframe 660px)、footprint 最近浏览(字章+共 N 人浏览)、评论盒(字章头像+名+时间+内容+输入行)
- 发布页新增:form-divider 分区(栏目动态字段/正文内容/附件)、附件 file-item 列表
二、现状 vs 原型差异(要点)
| 模块 | 现状 | 原型 | 动作 |
|---|---|---|---|
| 顶栏 | 白底 icon+应用名+头像 | 透明压天空渐变:校名(品牌蓝)+ 你好 XX + 心情/应用中心/退出 SVG | 重写 layout.vue 顶栏 |
| 首页刊头 | 图片轮播 180px | 校园插画 hero + 标语 + 4 统计胶囊 | App.vue 层重写(数据需新接口) |
| 栏目条 | 绿底 #39cb7c | 白底圆角卡内嵌、项带序号 | ModuleBar.vue 重写 |
| 首页左列 | 组树+排行 2 面板 | 组树/发布排行/积分排行 3 面板,树改白底缩进+徽章,排行加比例条 | Home.vue 重写(积分排行需新接口) |
| 文章块 | 名称+篇数+更多 | 字章 chip + 序号行 | Home.vue(字章/配色前端派生) |
| 列表(全校) | 无 hero、无年级/学科列与筛选 | hero + 组树侧栏 + 年级/学科筛选 + 表格年级/学科列 | ModuleList.vue 重写(后端加 grade 筛选) |
| 列表(个人) | 自制侧栏(名+积分+菜单+访客) | 个人卡+统计行+等级条+本月概览+访客字章+「查看全部」 | SpaceSide.vue 重写(后端加 SpaceOverview 聚合) |
| 面包屑 | BreadcrumbNav 文字条 | .crumbs:房子图标+›+层级(每页内嵌) | BreadcrumbNav 重写 + 各页接入 |
| 时间轴 | 年徽章+行(无摘要) | ydot+年份+篇数,行=日期/【栏目】/标题/摘要 | Timeline.vue 样式重写(后端补 remark) |
| 详情 | 卡片式 | detail-card + 附件内联预览 + footprint + 评论盒 | RecordDetail.vue 重写 |
| 发布 | 表单平铺 | form-card + form-divider 分区 + 附件列表 | RecordEdit.vue 重写 |
| 区级 | 警告条+两面板 | 栏目条含区级项 + 排行(比例条) + 统计表+分页 | AreaHome.vue 重写 |
| 主题 | 绿色 #39cb7c | 蓝天校园 tokens(--navy 等)+ 天空渐变底 + 衬线刊头 | 新增 profession-ui.css(原型 CSS 移植) |
三、后端任务(com.yunhai.profession)
任务 B1 新增聚合接口(ProfessionController / ProfessionService)
GET /{platform}/profession/HomeStats→{ recordTotal, teacherTotal, moduleTotal, weekNew }(record 总数 / 有记录的教师数 / 栏目数 / 本周新增记录数;都按 schId)GET /{platform}/profession/PointsRank?top=8→[{ teacherId, teacherName, points }](发布+评论积分合计排行,对齐首页「积分排行」面板)GET /{platform}/profession/SpaceOverview?userid=→ 个人空间聚合:{ teacherName, points, recordTotal, visitTotal, moduleCounts:[{id,name,count}], month:{ publish, comments, reads, visitors } }(本月概览按当月时间窗聚合;reads=该教师记录 read_count 增量,首版用总和近似)
任务 B2 既有接口微调
MyTimeline行增加remark(截 200 字,供时间轴摘要 t-excerpt)ModuleRecordList / ProfessionList增加grade筛选参数(全校列表年级下拉)ProfessionList(全校)行已含 discussCount/readCount/grade/subject ✓ 无需改
任务 B3 数据口径
- 附件内联预览:
/file/Preview已有(PDF 浏览器直显);docx 在线预览需外部转换服务(kkfileview 等)→ 本期 iframe 直连 Preview,docx 标记为下载,计划文档注明待办 - 空间角色/标签("语文教师·七年级(3)班"、"教研组长")、获赞、等级:平台无数据源 → 首版省略(space-head 仅头像/姓名/积分;等级条以积分为刻度显示"积分 682 分",去掉 Lv 假数据)——文档注明
四、前端任务(ProfessionView)
任务 F1 主题移植
- 新增
src/assets/styles/profession-ui.css:原样移植原型<style>全部 377 行(tokens/顶栏/hero/栏目条/panel/block-card/tbl/space-head/crumbs/detail/timeline/pagination/visitors),仅做两点适配:- 删除
html{min-width}与 body overflow 改由应用壳控制;2. 滚动容器适配.main-wrapper
- 删除
- 插画资源:
campus-illo-v6.jpg已复制到src/assets/image/ - 引入顺序:main.ts 中 profession-ui.css 置于最末(覆盖旧 profession-theme.css,后者保留向后兼容)
任务 F2 全局框架
layout.vue:顶栏改原型.topbar(brand-school 校名〔GetUserInfo.school.name〕+ welcome + 心情/应用中心/退出 SVG 按钮;透明压天空渐变)App.vue:.app-frame内改为 hero 刊头(SVG 场景 + 插画 + copy + 4 统计胶囊〔HomeStats 数据,全局只加载一次〕)+ModuleBar(重写:白底圆角内嵌条 + 序号项 + 更多▾)+.app-frame-bodyBreadcrumbNav.vue:重写为原型.crumbs(房子 SVG → 层级);从布局层移入各页 col-main 顶部(原型即页内元素)
任务 F3 页面重写(DOM/类名对齐原型)
Home.vue→ page-home:左列 3 面板(组树白底缩进/发布排行比例条/积分排行)+ block-wall(字章 chip + idx 行)ModuleList.vue→ page-list + page-space 双模式(保留 userid 判定):全校=hero 下组树+工具栏(年级/学科/搜索/发布)+表格(年级/学科列);个人=space-head/statrow/points-bar/menu+本月概览+访客 + crumbs+工具栏(年级/班级)+表格(年级/班级/操作图标)RecordEdit.vue→ page-edit:左栏(个人卡简版+菜单+访客)+ form-card(标题/年级学科/公开/动态字段 divider/正文编辑器/附件 file-item/取消+保存并发布)RecordDetail.vue→ page-detail:detail-card(标题/meta/正文/附件内联预览 iframe/详细信息/footprint/评论盒)Timeline.vue→ page-timeline:crumbs「我的首页」+ 年份块时间轴(ydot/日期/【栏目】/标题/摘要)AreaHome.vue→ page-area:栏目条高亮区级项 + 全区排行(比例条)+ 统计表 + 分页
任务 F4 字章/配色派生
- 栏目 chip:取栏目名首字,颜色按栏目索引从原型八色板派生(#1f6fd0/#7c5cbf/#2c7a7b/#1a72d8/#c98a2b/#c0504d/#3b82c4/#d69e2e 循环)——不改库表
五、实施顺序与验收
| 阶段 | 内容 | 验收 |
|---|---|---|
| 一 | 后端 B1/B2(3 新接口 + 2 微调) | mvn compile 通过,Postman 数据正确 |
| 二 | F1 主题 + F2 框架(顶栏/hero/栏目条/面包屑) | 全页呈蓝天校园主题,hero 统计为真实数据 |
| 三 | F3 首页/列表(双模式) | 与原型 DOM 对齐,数据真实,筛选/分页可用 |
| 四 | F3 详情/发布/时间轴/区级 | 同上;附件预览/评论/足迹可用 |
| 五 | build + 浏览器逐页走查 + 计划文档状态更新 | npm run build 通过;对照原型截图核对 |
六、省略与待确认
- space-role/space-tags/获赞/等级 Lv:无数据源,首版省略(保留扩展位)
- docx 附件在线预览:需外部转换服务,本期 iframe 直显 + 提供下载
- 所属区域省市级联:字段类型已支持 province_city,省市区数据源后续接入(首版按既有字段类型渲染)
- hero 统计口径:累计记录/活跃教师/栏目数/本周新增按学校维度
- 本期仅重写前台 8081;后台 8082 不动