原生体验、完全本地优先的 Windows 多功能工具箱。 基于 Tauri 2 + Vue 3 + TypeScript + WinUIonWeb 组件库。
所有数据处理(编码解码、哈希、加解密、脱敏、转换)均在本地完成,不上传、不联网,核心功能离线可用。
- 原生 WinUI 观感:通过 WinUIonWeb 组件库复刻 Windows 11 设计语言(圆角、亚克力、动效)。
- 自定义标题栏:无边框窗口 + 自绘最小化 / 最大化 / 关闭按钮,支持拖拽与双击最大化。
- 主页:WinUI 风格落地页,含工具搜索、最近使用、我的收藏、模块分类卡片。
- 全局搜索:任意界面按 Ctrl+K 唤起,键盘上下键 + 回车跳转。
- 工具输入记忆:切换工具/页面输入不丢失,重启应用后仍保留。
- 强调色跟随系统:自动读取 Windows 系统强调色应用到界面。
- 系统托盘:常驻托盘图标(左键显示、右键菜单),支持「最小化到托盘」与「开机自启」。
- 文件保存目录:可指定默认保存目录,转换/下载结果直接存入并可一键「打开目录」。
- 主题切换:浅色 / 深色 / 跟随系统,设置持久化。
- 可折叠侧边栏:按「开发者工具 / 办公与文档 / 多媒体 / 系统与效率」四模块分组导航,可「始终展开」。
- 单元测试:核心纯逻辑(diff / CSV / 子网计算)由 Vitest 覆盖。
- 轻量高效:Tauri 2 + 系统 WebView2,安装包小、启动快、内存占用低。
- 离线可用:核心工具 100% 本地运行,无任何网络依赖。
| 模块 | 工具 | 状态 |
|---|---|---|
| 开发者工具 | 时间戳转换、编码/解码、JSON 格式化、哈希/加解密(含文件哈希)、二维码(生成+解析)、UUID/随机密码、JWT 调试、正则测试(含替换)、Cron 表达式、IP/网络工具 | ✅ 已完成 |
| 办公与文档 | 文本处理、敏感信息脱敏、文本比对 Diff、Markdown 编辑器(实时预览+导出 HTML/Word/PDF)、Markdown 转 Word/PDF、表格数据转换(CSV/JSON/Markdown)、PDF 工具集(合并/拆分/旋转/加密/解密) | ✅ 已完成 |
| 多媒体 | 图片格式转换(8 种格式 / Rust 后端)、图片压缩(含 PNG 无损优化)、图像变换(裁剪/旋转/翻转/缩放)、图像调整(亮度/对比度/饱和度/色相/伽马/色温)、EXIF 工具(查看/剥离)、音视频转换(FFmpeg)、图标生成、GIF 动图(FFmpeg)、音频格式转换(FFmpeg) | ✅ 已完成 |
| 多媒体 | OCR 文字识别、截图与录屏 | 🚧 规划中(第三阶段) |
| 系统与效率 | 番茄钟 / 白噪音、剪贴板历史、端口占用查询、环境变量管理、硬件监控、系统托盘 + 开机自启 + 最小化到托盘 | ✅ 已完成 |
| 系统与效率 | 系统清理、快捷键启动、局域网快传 | 🚧 规划中(第四阶段) |
FFmpeg(不内置):音视频工具需要本地 FFmpeg。可在「设置 → FFmpeg」自动扫描 PATH、手动选择本地 ffmpeg.exe;未检测到时提示下载地址。
已实现的增强能力:主页(搜索/最近/收藏/模块卡片)、全局 Ctrl+K 搜索、工具收藏 ⭐、工具输入记忆、窗口尺寸与位置记忆、强调色跟随系统、侧边栏「始终展开」开关。
「规划中」的工具已在侧边栏占位,选择后展示规划功能说明,逐步填充。
| 层 | 技术 |
|---|---|
| 桌面壳 | Tauri 2(Rust) |
| 前端 | Vue 3 · TypeScript · Vite · Pinia · Vue Router |
| UI | WinUIonWeb(源码方式引入,见 src/winui/) |
| 持久化 | tauri-plugin-store(主题、侧边栏、历史) |
| 工具库 | crypto-js(哈希/加解密)、qrcode + jsqr(二维码)、cron-parser、marked + docx(Markdown/文档)、pdf-lib(PDF)、marked(Markdown 渲染) |
.
├── src/ # 前端
│ ├── winui/ # WinUIonWeb 组件库(vendored,含 i18n / theme.css / 字体)
│ ├── components/ # 应用通用组件(窗口控制、主题按钮、复制按钮…)
│ ├── tools/ # 各工具实现 + registry(工具注册表)
│ │ ├── registry.ts # 模块与工具定义(id / 标题 / 图标 / 状态 / 懒加载组件)
│ │ ├── timestamp/ # 已实现的 11 个工具,每个一个目录
│ │ └── …
│ ├── stores/ # Pinia(settings:主题 + 侧边栏)
│ ├── views/ # ToolView / SettingsView
│ ├── router/ # vue-router(hash 模式)
│ └── utils/ # 剪贴板、diff、窗口控制
├── src-tauri/ # Tauri 2 Rust 壳
│ ├── src/{main,lib}.rs
│ ├── tauri.conf.json # productName=WinUI Toolbox, identifier=cn.winui.toolbox
│ └── capabilities/ # 窗口拖拽/最小化/最大化/关闭 权限
└── .github/workflows/ # GitHub Actions 构建
新增一个工具:在 src/tools/<id>/index.vue 写页面,然后在 src/tools/registry.ts 的对应模块下加一行 ready(...) 即可自动出现在侧边栏与路由中。
npm install
npm run tauri dev # 启动开发窗口(需本机具备 Tauri 编译环境)前端独立预览:
npm run dev # http://localhost:1420构建(前端类型检查 + 打包):
npm run build
npx tauri build --bundles nsis,msi单元测试(diff / CSV / 子网计算等纯逻辑):
npm test由于本机没有完整的 Windows 编译环境(缺少 MSVC 链接器),请将本仓库推送到 GitHub,
由 .github/workflows/build.yml 在 windows-latest 上完成构建:
- 每次 push 到
main/ 提交 PR → 构建并上传 NSIS 安装包(.exe)与 MSI(.msi) 为 Actions 工件; - 打标签
v*→ 自动发布到 GitHub Release,附带安装包与更新说明。
流程要点(参考同使用 Tauri 2 的 LumiLuna 项目):
actions/setup-node(Node 20)→ dtolnay/rust-toolchain@stable → swatinem/rust-cache@v2 → npm ci → tauri build。
Cargo.lock 与 package-lock.json 均已提交,保证 CI 构建可复现。
首次构建约需 15–20 分钟(下载并编译 Rust 依赖),之后的构建由缓存加速。
WinUIonWeb模板/为参考用的 WinUIonWeb 源码模板;组件已复制进src/winui/,该目录仅作参考,可安全删除。- 应用图标目前沿用了模板默认图标,可用
npx tauri icon <你的1024px图片>一键替换。 - 本项目的 Windows 原生交互(拖拽、窗口按钮、双击最大化)通过
data-tauri-drag-region与@tauri-apps/api/window实现,见src/App.vue与src/components/WindowControls.vue。
本项目遵循 计划书 中的设计;WinUIonWeb 组件库部分遵循其各自 LICENSE。