Files
training/website
Pine 211442e76d feat(web): 网站按 portrait.so 重构设计系统 + 首页完全重建(浅色为主/双模式)
设计系统(明暗双模 token):
- tokens.css 重写:portrait 语义色(浅灰#f7f7f7/藏青#08304c/霓虹彩虹渐变)+ [data-theme=dark] 覆盖
- 自托管 5 套字体(Switzer/BasierCircle/OpenRunde/JetBrainsMono/Junicode),public/fonts/ 来自镜像
- global.css 主题参数化:玻璃胶囊导航/彩虹CTA/软阴影卡片/fluid标题/主题背景(替换WebGL粒子)
- organisms:Header 加明暗切换按钮(+theme.js),ParticleField 改纯CSS背景,SiteFooter 改多栏
- App.jsx 首载 initTheme(pine_theme/prefers-color-scheme)

首页完全重建(portrait 叙事结构,保留全部内容/功能,红线不展示付费价格):
- Hero(流体标题+终点彩虹渐变词+数据带) / 便捷入口四卡 / 前旧后新对比 / 三档免费产品
- 「手艺变产品」高亮带(新增) / 三步上手(新增) / 近期场次倒计时 / 测评+调研带 / FAQ手风琴(新增) / 报名CTA / 多栏页脚(新增)

其余页面(Content/Events/OPCTest/Login/forms/pine) 待单独批次同款重构
2026-08-27 17:23:44 +08:00
..

OPC 培训站(website

📍 现位于 code/training/website/(业务 Web 前端,原 code/opc-training/website/)。课程内容见 materials/培训计划/;关联小程序 code/training/miniprogram/后端已并入 code/server-core/app/training//api/* 由 server-core dispatcher.py 对外提供)。

课程体系 0.1 的对外展示与内部运营站。React + Vite SPA,暗色粒子品牌语言。

运行方式

npm install
npm run dev        # 开发(含 /api 模拟认证)
npm run build      # 构建 dist
npm run preview    # 预览构建产物(含 /api 模拟认证)
node server/start.mjs   # 独立服务:托管 dist + /api(默认 8091,生产/演示用)

路由与权限

路由 内容 权限
#/ 首页营销落地页 公开
#/opc-test OPC 创业基因测评 公开
#/pine#/pine/* 内部工具(课程体系/结构/课程表/卡片/工具) 需登录

内部工具登录:访问 #/pine/* 时路由守卫触发登录门。账号 pine / 密码 123456模拟,见下)。

内部工具不进公开导航,仅通过 URL 直达;公开导航只含「首页 / OPC测评」。

模拟认证与迁移

  • 模拟接口:server/mock-api.mjsPOST /api/auth/loginPOST /api/auth/logoutGET /api/auth/verify),账号密码暂时写死 pine/123456
  • 已挂载到 Vite dev / preview / 独立服务三处。
  • 迁移为真实 API:只需改 src/services/auth.js 顶部的 API_BASE 指向真实后端,并替换 server/ 下的 mock 实现即可;SPA 其余代码无需改动。

目录速览

server/           模拟认证 API + 独立启动服务
src/pages/        页面(Home/OPCTest 公开;System/Structures/Schedule/Cards/Tools 内部)
src/data/         内容数据(home/system/structures/schedule/cards/timetable/opcTest/site
src/components/   原子/分子/组织/模板组件
src/services/     auth 认证服务