www_site/docs/phase-1-report.md

12 KiB
Raw Blame History

Phase 1 设计系统与官网骨架报告

日期2026-09-08 范围P1-01 至 P1-06 状态官网骨架完成真实认证、TTS、CMS 和管理业务未实现。

1. 交付摘要

  • 建立 Next.js App Router + TypeScript + Tailwind CSS 4 本地应用。
  • 建立 KAOTINGS 深色设计系统:#0D0F12 背景、橙 #FF6A00、蓝 #1677FF、青 #00D1E6、近白文字及灰阶变量。
  • 使用正式 Logo 的网页公开副本 public/brand/logo_bt.pngAI/PDF 原档仍不直接公开。
  • 完成响应式导航、移动导航、页脚、跳过导航链接、键盘焦点样式和减少动效处理。
  • 首页以蓝牙、音频、嵌入式和硬件产品为主体AI Lab/TTS 保持轻量入口。
  • 完成产品列表、产品详情模板、关于、联系、TTS、登录、注册、账户和管理页面布局。
  • 所有缺少真实资料的产品内容集中在 lib/content.ts,并使用“开发占位”标识;没有虚构规格、联系方式、资质或操作成功。

2. P1 工作包

编号 状态 实现位置 验证
P1-01 已完成 app/globals.csscomponents/ui.tsx 设计令牌、按钮、输入、焦点、间距和响应式规则已集中定义
P1-02 已完成 components/site-header.tsxcomponents/site-footer.tsxapp/layout.tsx 桌面导航、移动菜单、账户入口、页脚和跳过导航已实现
P1-03 已完成 app/page.tsx Hero、硬件产品、技术能力、AI Lab、联系入口已实现
P1-04 已完成 app/products/app/about/app/contact/lib/content.ts 列表和详情模板由集中式占位数据驱动
P1-05 已完成(布局) app/tts/app/login/app/register/app/account/app/admin/ 加载/空/待接入/禁用/错误语义已展示;真实业务未接入
P1-06 功能实现与构建检查完成;真实视觉验收待完成 app/layout.tsxapp/not-found.tsx、全局样式 typecheck、build、路由冒烟和响应式源码检查通过真实浏览器桌面/移动验收未完成

3. 页面清单

路由 当前能力
/ 品牌首页产品为主AI Lab 为入口
/products 开发占位产品列表和分类视觉
/products/product-placeholder-a 产品详情模板
/products/product-placeholder-b 产品详情模板
/about 公司定位和原则,未虚构公司履历
/contact 联系信息边界和待确认状态
/tts TTS 工作台布局,控件禁用,不调用服务
/login/register 认证表单布局,提交禁用
/account 账户、权益、额度和历史空状态
/admin/admin/users/admin/tts 管理后台布局和禁用状态
404 友好 Not Found 页面

4. 占位数据规则

所有开发占位内容集中在 lib/content.ts。当前只使用:

  • 产品资料待补充 A/B 作为模板标识,不作为正式产品名称。
  • 无线音频蓝牙配件 作为待确认分类示意,不包含规格和性能承诺。
  • CSS 抽象产品视觉只用于检查版式,不冒充真实产品图片。
  • 联系页、页脚和关于页明确说明正式联系方式和公司资料待确认。

后续替换时只需先替换内容适配器Phase 4 接入 CMS 时不应重写页面模板。

5. 本地验证

已执行:

  • npm install:安装 46 个依赖包,审计结果为 0 vulnerabilities。
  • npm run typecheck:通过。
  • npm run build:通过,全部静态页面生成成功。
  • 本地 next start 动态端口启动:成功,无启动错误。
  • HTTP 冒烟首页、产品列表、两个产品详情、关于、联系、TTS、登录、注册、账户、管理首页、用户管理、TTS 管理和 Logo 静态资源均返回 200
  • 响应式源码检查:容器、断点、移动导航、移动端排列、键盘焦点和 prefers-reduced-motion 已覆盖。此项是源码检查,不等同于实际设备视觉验收。

当前执行环境对固定本地端口 300031003210 返回 Windows EACCES;动态端口可启动,因此没有修改系统端口策略。当前环境没有可用的 Chrome、Edge、Firefox 或既有 Playwright尚未完成真实桌面/移动浏览器视觉验收,也未生成截图。该项明确交由测试站浏览器或用户电脑/手机验收,不将源码检查写成设备验收通过。

6. 最小测试部署方案

6.1 本阶段部署范围

只部署官网骨架不部署数据库、Redis、TTS、Worker、CMS 或认证服务。页面中的真实业务入口保持禁用或预览说明。

6.2 服务器所需软件

  • Ubuntu 24.04 已有,建议安装 Node.js 20.9+,当前项目本地使用 Node.js 24.11.1 验证。
  • npm 随 Node.js 提供。
  • 不需要 PostgreSQL、Redis、对象存储、TTS 或 CMS。
  • 可先不安装 Nginx/Caddy直接由 next start 提供局域网 HTTP 验证。

6.3 部署目录和命令建议

在权限未落实前不执行。为避免第一阶段申请 root 部署目录,可优先评估用户目录:

/home/flym/kaotings-www

建议流程:

npm ci
npm run build
npm run start -- -H 0.0.0.0 -p 3000

访问地址:http://192.168.199.22:3000/

6.4 权限和端口

  • 文件复制到 /home/flym/kaotings-www 可由 flym 用户完成,前提是目录由该用户拥有。
  • 安装 Node.js、配置系统级进程、开放防火墙端口或绑定受控服务可能需要 sudo/管理员权限。
  • 当前 flym 属于 sudo 组,但非交互 sudo 仍需要额外认证;本次未安装或修改服务器服务。
  • 最小访问端口SSH 22 用于运维,应用 TCP 3000 仅允许局域网测试来源。
  • 本阶段不开放 80/443不配置正式域名或 HTTPS认证和生产发布前仍必须完成可信 HTTPS。

6.5 测试部署退出条件

  • 局域网浏览器能打开首页、产品模板、关于、联系和所有预览入口。
  • 仅显示开发占位内容,不显示虚构联系方式、产品规格或成功状态。
  • 服务器重启或进程重启后的启动方式已记录;正式部署前再替换为受控进程管理和反向代理。

7. 部署前核实状态

本方案已复核:本轮只部署 Next.js 官网骨架,所需新增软件为 Node.js 20.9+ 与 npm不安装 PostgreSQL、Redis、TTS、Worker、CMS 或对象存储。服务器变更前需要确认 Node.js 安装权限、/home/flym/kaotings-www 写权限、TCP/3000 局域网访问权限,以及后续进程保持方式。当前尚未执行服务器安装或部署。

8. 测试站部署前实测

本次通过已确认的 SSH 主机执行只读核实:

  • /home/flym 可写,适合作为用户级部署目录;/home/flym/kaotings-www 尚未创建。
  • 未安装 Node.js 和 npm无法执行 npm cinpm run buildnext start
  • flymsudo 组,但 sudo -n -l 返回需要密码,当前没有可供自动部署使用的非交互 sudo 权限。
  • 从开发机访问 TCP/3000 失败,当前没有应用监听或放行该端口。
  • 本次未安装软件、创建服务、开放端口或启动测试站。

因此当前部署阻断项是:管理员需要安装 Node.js 20.9+ 和 npm或提供用户目录可用的 Node.js同时需要允许 192.168.199.0/24(或实际测试网段)访问 TCP/3000。若要求系统级服务或防火墙变更还需要 sudo/管理员权限。权限落实后再执行最小部署,并提供 http://192.168.199.22:3000/ 实际访问结果和真实浏览器视觉验收记录。

9. 最小测试部署结果

服务器变更权限已落实,本次已完成官网骨架部署:

  • 安装 Node.js v24.11.1 和 npm 11.6.2未安装数据库、Redis、TTS、Worker、CMS 或对象存储。
  • Node.js 官方压缩包已在服务器端完成 SHA-256 校验后安装到 /opt,命令链接位于 /usr/local/bin
  • 应用目录:/home/flym/kaotings-www
  • 执行 npm cinpm run build,构建通过,全部静态路由生成成功。
  • flym 用户启动 next start,监听 0.0.0.0:3000;本次未创建 systemd 服务,重启后不会自动拉起。
  • 开发机访问 TCP/3000 成功。
  • 首页、产品列表、两个产品详情、关于、联系、TTS、登录、注册、账户、管理首页、用户管理、TTS 管理和 Logo 静态资源均从测试机返回 HTTP 200
  • 当前访问地址:http://192.168.199.22:3000/

10. 真实浏览器视觉验收

本执行环境没有可用的 Chrome、Edge、Firefox、Playwright 或截图工具,因此本轮没有生成桌面/移动截图,也不将 HTTP 200 或源码响应式检查写成视觉验收通过。

请在桌面浏览器和手机浏览器访问上方地址,重点检查:

  • 深色背景、橙蓝青配色、正式 KAOTINGS Logo 和导航布局。
  • 桌面导航与移动端折叠菜单、首页产品主体和 AI Lab 轻量入口。
  • 产品列表、两个产品详情模板和开发占位标识。
  • /tts/login/register/account/admin 的空状态、禁用状态和预览提示。
  • 移动端是否有横向溢出、文字截断、焦点不可见或触控区域过小。

上述人工检查完成前Phase 1 的真实视觉验收保持“待完成”。

11. 本轮首页视觉修正

依据 docs/design/references/kaotings-homepage-approved-reference.png 和用户提供的测试截图完成以下调整:

  • 内容容器最大宽度从 1180px 调整为 1320px,宽屏保留左右边界,减少主体过窄问题。
  • 导航 Logo 使用正式组合 Logo桌面高度调整为约 44px,页脚约 56px,始终保持原始比例。
  • 导航、账户入口和移动按钮改为显式 768px CSS 断点,桌面完整导航显示时移动菜单按钮隐藏。
  • 标题和区块标题启用 text-wrap: balance,降低中文孤字断行概率;产品和 AI Lab 标题的栏宽同步放宽。
  • 首页 Hero、产品、技术和 AI Lab 区块的纵向间距收紧,按钮横向留白略增,改善“大空白、小内容”比例。
  • 产品抽象视觉仍明确标注“开发占位”,不作为真实产品素材验收。

本轮实际检查记录:

  • 本地:npm run typecheck 通过,npm run build 通过。
  • 测试站:重新构建并监听 0.0.0.0:3000http://192.168.199.22:3000/ 返回 200
  • 实际浏览器 viewport未核实。
  • 浏览器缩放比例:未核实。
  • 桌面/移动真实截图:未生成,待用户在实际浏览器验收。
  • 源码断点目标:<768px 移动导航,>=768px 桌面导航;这不是实际设备验收结果。

12. 部署一致性复核

用户反馈截图仍为旧视觉后,重新核对发现前一次增量传输使用了扁平目标路径:文件被写入部署根目录,而不是 app/components/ 子目录;实际构建因此继续使用旧源码。已删除误传根目录文件,并按正确子目录重新同步。

  • 监听进程PID 6505,命令为 next start -H 0.0.0.0 -p 3000
  • 工作目录:/home/flym/kaotings-www
  • 当前构建提交号:0e46643
  • 页面页脚已显示 build 0e46643,用于浏览器端版本核对。
  • 实际响应引用 CSS/_next/static/chunks/2911lr-pv0kp2.css
  • 该 CSS 资源已核实包含 1320pxdesktop-navmobile-nav-triggermin-width:768px 规则。
  • app/globals.cssapp/page.tsxcomponents/brand-mark.tsxcomponents/site-header.tsxcomponents/ui.tsx 的服务器哈希已与本地视觉修正提交内容一致。
  • 当前访问地址:http://192.168.199.22:3000/

浏览器仍需强制刷新后重新截图,确认截图页脚出现 build 0e46643。真实 viewport、缩放比例、桌面/移动布局仍未由本执行环境直接测量,继续标记为待验收。