Skip to content

feat: 设置页统计仪表盘、折叠态信息条与主题实时同步 - #68

Merged
Aswellle merged 1 commit into
mainfrom
feat/stats-dashboard-and-popup-polish
Oct 21, 2026
Merged

Aswellle merged 1 commit into
mainfrom
feat/stats-dashboard-and-popup-polish

Conversation

@Aswellle

Copy link
Copy Markdown
Owner

概要

本轮围绕设置面板的可视化与浮窗折叠态做体验补齐,并修掉了主题跨窗口不同步与开发服务器启动失败两个问题。

统计仪表盘

  • 设置页引入 recharts:近 7 天趋势面积图 + 翻译源分布横向条形图
  • 悬浮数据点显示日期、星期、翻译次数、源字符量与本周占比
  • 指标卡扩展为五列:累计翻译、累计字符、近 7 天、近 30 天、近 24h
  • 后端 get_stats 新增 last_24h 与 daily_7d,日界按本地时区计算(新增 time crate 的 local-offset 特性)

设置面板布局与交互

  • 顶部压缩为单行表头,不再让产品名与一级标题占据过多纵向空间
  • 默认窗口放大到 640×560,首屏可完整呈现仪表盘
  • 新增未保存变更标记、Ctrl+S 保存、Tab 切换淡入

主题实时同步

  • 主题选择改为选中即持久化并广播,不再等待保存按钮
  • useTheme 与浮窗各加 2 秒轮询兜底,覆盖 WebView2 上 prefers-color-scheme 变更事件不可靠的情况
  • 修复历史记录面板不跟随主题的问题

浮窗折叠态

  • 重构为一体化信息条:状态点 + 译文摘要 + 语言方向填满 44px 高度,替代原先被裁切的展开态
  • 红绿灯字形互换按语义键重挂载,播放淡入动画
  • 内容区随宽度档位重挂载淡入,掩住窗口改宽时的文本重排跳变
  • 同步提升译文与固定文案的字号、字重与对比度

开发环境

  • Vite 固定绑定 127.0.0.1:Node ≥17 将 localhost 解析到 ::1,Vite 只绑 IPv6 而 tauri CLI 探测 IPv4,导致 npm run tauri dev 180s 超时失败

验证

  • npx tsc --noEmit 通过
  • npx vitest run 4 个文件 / 25 个用例通过
  • cargo fmt --check 通过
  • cargo clippy -- -D warnings 通过(CI 同款参数)
  • cargo test --lib 231 个用例通过
  • Windows 实机验证折叠态:浅色/深色主题、成功/错误/加载三种状态、展开↔折叠双向过渡

已知限制

macOS 的 NSVisualEffectView 材质渲染无法在 Windows 上验证,需在 Mac 上人工确认;CI 的 macOS runner 仅验证编译通过。

设置面板引入 recharts 可视化统计:近 7 天趋势面积图与翻译源分布条形
图,悬浮显示日期、次数、字符量与周占比。后端 get_stats 相应扩展
last_24h 与 daily_7d,日界按本地时区计算(新增 time crate 的
local-offset 特性,已在依赖树中)。

设置页顶部改为单行紧凑表头,指标卡改为五列网格,默认窗口放大到
640×560,首屏即可完整呈现仪表盘。新增脏状态标记、Ctrl+S 保存与
Tab 切换淡入。

主题切换改为选中即持久化并广播,不再等待保存按钮;useTheme 与浮窗
各加 2 秒轮询兜底,覆盖 WebView2 上 prefers-color-scheme 变更事件
不可靠的情况。

浮窗折叠态重构为一体化信息条:状态点、译文摘要、语言方向填满
44px 高度,替代原先被裁切的展开态。红绿灯字形互换按语义键重挂载
以播放淡入动画,内容区随宽度档位重挂载淡入,掩住窗口改宽时的文本
重排跳变。同步提升译文与固定文案的字号、字重与对比度。

开发服务器固定绑定 IPv4:Node ≥17 将 localhost 解析到 ::1,Vite
只绑 IPv6 而 tauri CLI 探测 127.0.0.1,导致启动超时失败。
@Aswellle
Aswellle merged commit 7d10376 into main Oct 21, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant