{{ restoreFailure || "正在载入复盘工作台" }}
+ +diff --git a/next/docs/evidence/stage-4/README.md b/next/docs/evidence/stage-4/README.md new file mode 100644 index 0000000..863e772 --- /dev/null +++ b/next/docs/evidence/stage-4/README.md @@ -0,0 +1,78 @@ +# 阶段4验收记录 + +## 范围 + +本阶段只验收全局前端基础和阶段3已有业务的前端交互:认证、16项工作区注册表、PC/移动Shell、主题、日期、统一API、统一弹窗与Toast、账户菜单、会员状态、系统凭据、模型池和会员管理。 + +行情摘要真实数据、全局搜索结果、后台刷新任务和16个工作区的业务内容分别属于阶段5及后续阶段。本阶段只提供稳定入口和明确空态,不将这些页面报告为已迁移。 + +## 设计规范第12节自检 + +### 表格 + +- 会员管理表按内容类型分配列宽;每日上限为右对齐等宽数字。 +- 单位写在“每日上限(次)”表头,空到期时间保持为空。 +- 每日上限表头可排序,并显示当前升降方向。 +- 本阶段没有行情图表;图例规则留到实际图表切片验收,未用占位图假装完成。 + +### 间距 + +- Playwright实测PC内容区上内边距14px、左右内边距16px。 +- 侧栏200px、顶栏46px、摘要条收起36px、状态栏30px均来自唯一令牌。 +- 16个工作区共用同一Shell和动态路由,不存在页面专属骨架副本。 + +### 字体 + +- 页面标题17px/800、卡片标题14px/700、正文13px、辅助文字11至12px。 +- 数字使用`tabular-nums`;未使用随视口连续缩放字号或负字距。 + +### 布局 + +- Shell与页面内容分离;4K内容限制最大可读宽度,没有将卡片和字体放大两倍。 +- 1023px及以下进入独立移动Shell,底部保留“行情、选股、问师、问天、复盘”五个入口。 +- 1920×1080、3840×2160和390×844实测无页面横向溢出。 + +### 细节 + +- 顶栏日期固定为`YYYY-MM-DD`,不使用会按Windows区域设置显示斜杠的原生日期外观。 +- 市场数据未接入时保留空值和原因,不展示模拟数字或满屏`--`。 +- 状态栏固定于视口底部;短页面不会把风险提示上移。 +- 日间/夜间在Vue挂载前选择主题,弹窗、表单、表格和空态均使用语义令牌。 +- 弹窗位于视口中心,支持Escape、遮罩关闭、焦点循环和焦点回收;成功反馈只使用自适应Toast。 + +## 权限与交互 + +- 真实注册/登录通过;首个账号显示管理员,普通用户不显示后台刷新和系统管理。 +- 管理员兼会员时前端可同时显示两个标识;管理员未开会员时仍显示真实“普通用户”会员状态。 +- 账户菜单严格包含个人资料、会员状态、修改密码、切换账号、退出五项。 +- 浏览器实际保存并重读个人出生资料;会员状态显示开通状态、到期、剩余时长、今日用量、今日剩余和暂不可用加油包。 +- 普通用户访问智能选股、问师和问天时保留相同页面结构,顶部提示会员限制,内容不可操作。 +- 非管理员直接访问`/system`会被前端送回情绪周期,所有管理API仍由后端独立拒绝。 + +## 减法证据 + +- 16项工作区只在`workspaceRegistry.ts`登记一次,路由和两种导航共同读取。 +- 浏览器请求只经`shared/api/client.ts`,CSRF由该出口统一附加。 +- 全站只存在一个主题Store、一个当前会话Store、一个弹窗Host和一个Toast Host。 +- CSS按令牌、基础、组件、Shell、账户、系统和移动端职责拆分;最长CSS为332行,未复制原型整份样式或增加覆盖补丁层。 +- 组件CSS未出现令牌文件之外的色值;`1023px`仅作为CSS媒体查询不可变量化的语法边界。 + +## 自动验证 + +- Ruff:通过。 +- pytest:40项通过。 +- Vue类型检查:通过。 +- Vitest:2个文件、5项通过。 +- Vite生产构建:通过。 +- Playwright:2项通过,覆盖管理员与普通用户、账户真实写入、三类系统管理、Ctrl+K、主题持久化、弹窗居中、桌面/4K/移动视口、HTTP失败和控制台错误审计。 + +## 截图 + +- [日间Shell 1920×1080](shell-light-1920x1080.jpg) +- [夜间Shell 1920×1080](shell-dark-1920x1080.jpg) +- [夜间系统管理 3840×2160](system-dark-3840x2160.jpg) +- [夜间移动Shell 390×844](shell-dark-390x844.jpg) + +## 后续入口 + +阶段5建立唯一数据网关、交易日期真相、行情快照、搜索和图表基础后,替换当前市场摘要与工作区空态。移动端逐页业务信息重组仍在阶段13完成,不把本阶段的移动Shell当作全部移动页面验收。 diff --git a/next/docs/evidence/stage-4/shell-dark-1920x1080.jpg b/next/docs/evidence/stage-4/shell-dark-1920x1080.jpg new file mode 100644 index 0000000..967c40b Binary files /dev/null and b/next/docs/evidence/stage-4/shell-dark-1920x1080.jpg differ diff --git a/next/docs/evidence/stage-4/shell-dark-390x844.jpg b/next/docs/evidence/stage-4/shell-dark-390x844.jpg new file mode 100644 index 0000000..1748058 Binary files /dev/null and b/next/docs/evidence/stage-4/shell-dark-390x844.jpg differ diff --git a/next/docs/evidence/stage-4/shell-light-1920x1080.jpg b/next/docs/evidence/stage-4/shell-light-1920x1080.jpg new file mode 100644 index 0000000..1761c1b Binary files /dev/null and b/next/docs/evidence/stage-4/shell-light-1920x1080.jpg differ diff --git a/next/docs/evidence/stage-4/system-dark-3840x2160.jpg b/next/docs/evidence/stage-4/system-dark-3840x2160.jpg new file mode 100644 index 0000000..fd06459 Binary files /dev/null and b/next/docs/evidence/stage-4/system-dark-3840x2160.jpg differ diff --git a/next/frontend/index.html b/next/frontend/index.html index a2641b8..c0ef21b 100644 --- a/next/frontend/index.html +++ b/next/frontend/index.html @@ -4,6 +4,17 @@ + +
{{ restoreFailure || "正在载入复盘工作台" }}
+ +正在读取行情配置
+{{ errorMessage }}
+历史数据回补将在行情数据迁移完成后开放。
+ +| 账号 | 身份 | 会员状态 | 到期时间 | |
|---|---|---|---|---|
| {{ account.username }} | {{ account.is_admin ? "管理员" : "用户" }} | {{ account.membership.active ? "有效" : account.membership.status === "disabled" ? "停用" : "未开通" }} | {{ account.membership.is_permanent ? "永久" : account.membership.expires_at?.slice(0, 10) || "" }} | {{ account.membership.daily_limit }} | +
{{ errorMessage }}
+ + + +请选择账号
+尚未添加模型
+进入你的复盘工作台
数据仅供复盘研究,不构成投资建议
股市有风险,投资需谨慎
新系统基础服务已连接({{ health.environment }})
-{{ failure }}
-正在连接基础服务
-平台行情、模型池与会员配置
{{ workspace.description }} · 数据日期 {{ market.selectedDate }}
+{{ errorMessage }}
+正在读取会员状态
+{{ membership.description }}
+每日用量不足时可补充调用额度。
{{ privacyNotice }}
+正在读取个人资料
+ + diff --git a/next/frontend/src/shared/account/SearchPanel.vue b/next/frontend/src/shared/account/SearchPanel.vue new file mode 100644 index 0000000..4628670 --- /dev/null +++ b/next/frontend/src/shared/account/SearchPanel.vue @@ -0,0 +1,19 @@ + + + +{{ query ? "当前没有匹配结果" : "输入代码或名称开始搜索" }}
+ Ctrl+K +{{ description }}
+