Files
YG_FT/docs/superpowers/plans/2026-07-10-page-surface-classification.md
caoxiaozhu acdad260d7 docs: 添加设计文档与视觉走查记录
视觉走查记录、设计方案规格(specs)、实施计划(plans)及配套截图资产,覆盖路由过渡、页面表层级、数据处理向导、训练日志重设计等改进项。
2026-07-10 16:47:29 +08:00

95 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Page Surface Classification Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** 列表页直接使用自身白色卡片,表单和详情页继续使用主布局提供的白色圆角画布。
**Architecture:** 使用 Vue Router `meta.pageSurface` 做显式页面表面分类。主布局默认渲染白色画布,仅在 `pageSurface === 'self'` 时切换为透明、无内边距的承载容器。
**Tech Stack:** Vue 3、Vue Router 4、TypeScript、SCSS、Node.js 回归脚本
## Global Constraints
- 只给六个自带白色列表卡片的路由声明 `pageSurface: 'self'`
- 其他路由默认继续使用白色页面画布。
- 不新增依赖,不修改业务逻辑。
- 先写失败测试,再实现最小修复。
---
### Task 1: 路由级页面表面分类
**Files:**
- Modify: `frontend/scripts/regression-page-surface.mjs`
- Modify: `frontend/src/router/index.ts`
- Modify: `frontend/src/layouts/MainLayout.vue`
- Test: `frontend/scripts/regression-page-surface.mjs`
**Interfaces:**
- Consumes: Vue Router 当前路由对象的 `route.meta.pageSurface`
- Produces: `pageSurface: 'self'` 路由元数据和 `.page-canvas.is-self-surface` 布局状态。
- [ ] **Step 1: 写入失败回归测试**
`regression-page-surface.mjs` 中读取 `src/router/index.ts`,断言六个列表路由包含
`pageSurface: 'self'`;断言 `MainLayout` 使用 `useRoute()` 和动态类;断言状态样式为:
```scss
.page-canvas.is-self-surface {
padding: 0;
border-radius: 0;
background-color: transparent;
box-shadow: none;
}
```
- [ ] **Step 2: 运行测试并确认 RED**
Run: `npm run test:page-surface`
Expected: FAIL提示列表路由缺少 `pageSurface: 'self'` 或主布局缺少自表面状态。
- [ ] **Step 3: 写入最小实现**
在六个列表路由中加入:
```ts
meta: { title: '页面标题', pageSurface: 'self' },
```
`MainLayout.vue` 中使用:
```ts
const route = useRoute()
```
```vue
<div
class="page-canvas"
:class="{ 'is-self-surface': route.meta.pageSurface === 'self' }"
>
```
并加入透明承载容器样式。
- [ ] **Step 4: 运行专项测试并确认 GREEN**
Run: `npm run test:page-surface`
Expected: PASS输出“全局页面背景与内容表面回归检查通过”。
- [ ] **Step 5: 运行相关回归与生产构建**
Run: `npm run test:training-log-layout`
Expected: PASS。
Run: `npx vite build`
Expected: build exit code 0允许保留项目既有字体解析和 chunk size 警告。
- [ ] **Step 6: 浏览器视觉验证**
打开 `/fine-tune`,确认灰色背景上仅有列表自身白色卡片;打开
`/training-log/1`,确认白色圆角页面画布仍存在。两个页面均不得水平溢出,控制台不得新增错误。