diff --git a/next/docs/evidence/stage-13/acceptance.md b/next/docs/evidence/stage-13/acceptance.md new file mode 100644 index 0000000..a65bc41 --- /dev/null +++ b/next/docs/evidence/stage-13/acceptance.md @@ -0,0 +1,47 @@ +# 阶段13验收记录 + +## 完成范围 + +- 移动Shell:保留行情、选股、问师、问天和复盘五个一级入口;行情下增加12个市场页面选择器。 +- 日期:桌面和移动端共用唯一交易日期组件,手机可前后切换或直接输入日期。 +- 表格:430px及以下的通用宽表重组为字段名明确的纵向记录,平板和横屏保留局部横向滚动。 +- 复盘:移动端补齐提醒中心和复盘助手入口,不因顶栏精简丢失功能。 +- 可访问性:跳到主内容、弹窗焦点陷阱与回收、排序状态、44px触控目标及减少动态效果偏好。 + +## 关键行为 + +- 股池、天梯、板块、竞价、题材、热榜和龙虎榜均通过移动行情选择器到达;底部“行情”在所有市场子页保持正确高亮。 +- PC与移动端继续消费相同路由、权限、日期、账号和业务结果,没有第二套移动API或业务状态。 +- 320px宽表至少直接显示字段名与字段值,长文本换行;页面本身不横滚。 +- 手机横屏将股池筛选、搜索和导出收为同一行,避免短视口只剩极少数据区。 +- Escape关闭弹窗后焦点回到触发按钮;跳到主内容链接可由键盘首先到达。 + +## 自动与视觉验收 + +- Ruff:通过。 +- Pytest:92项通过。 +- Vue TypeScript:通过。 +- Vitest:3个文件、7项通过。 +- Vite生产构建:通过。 +- Playwright:阶段4至13共17项通过;阶段13专属3项通过。 +- 视口:320、375、390、430、768、844×390横屏、1024、1280、1440、1536、1920×1080和3840×2160均无页面横向溢出。 +- 16个工作区逐页在320px验证可达、日期控制可用和主内容可见。 +- 浏览器视觉检查:320px纵向记录、844×390夜间横屏工具栏和固定底部导航无文字遮挡。 +- 密钥扫描和Git差异检查:通过。 + +## 视觉证据 + +- `pool-light-320x568.jpg` +- `pool-dark-landscape-844x390.jpg` + +## 减法审计 + +- 没有为16个页面复制移动版;移动信息架构集中在一个选择器、一个底部导航和一个`mobile.css`。 +- 桌面顶栏的日期校验被抽到27行的共享组件,移动端直接复用,没有第二套日期逻辑。 +- 通用`DataTable`只增加字段标签与排序语义,同一DOM由CSS在窄屏重组,不维护两份数据渲染。 +- `mobile.css`为537行,低于600行门禁;Shell新增组件分别31行和27行。 + +## 残余边界 + +- 系统管理和高密度自定义因子在手机上保持简化单列,PC仍是完整维护端。 +- NAS生产容器保持不变,最终切换仍需人工确认。 diff --git a/next/docs/evidence/stage-13/pool-dark-landscape-844x390.jpg b/next/docs/evidence/stage-13/pool-dark-landscape-844x390.jpg new file mode 100644 index 0000000..8ab60f7 Binary files /dev/null and b/next/docs/evidence/stage-13/pool-dark-landscape-844x390.jpg differ diff --git a/next/docs/evidence/stage-13/pool-light-320x568.jpg b/next/docs/evidence/stage-13/pool-light-320x568.jpg new file mode 100644 index 0000000..76f74da Binary files /dev/null and b/next/docs/evidence/stage-13/pool-light-320x568.jpg differ diff --git a/next/frontend/src/app/shell/AppShell.vue b/next/frontend/src/app/shell/AppShell.vue index 5bcf26e..11721f4 100644 --- a/next/frontend/src/app/shell/AppShell.vue +++ b/next/frontend/src/app/shell/AppShell.vue @@ -8,6 +8,7 @@ import { useMarketStore } from "../../shared/stores/market"; import DesktopSidebar from "./DesktopSidebar.vue"; import MarketStrip from "./MarketStrip.vue"; import MobileNav from "./MobileNav.vue"; +import MobileWorkspaceSwitch from "./MobileWorkspaceSwitch.vue"; import StatusBar from "./StatusBar.vue"; import TopBar from "./TopBar.vue"; @@ -33,11 +34,13 @@ onBeforeUnmount(() => window.removeEventListener("keydown", globalShortcut));