# VVTodoLabel
**Repository Path**: weijun233/VVTodoLabel
## Basic Information
- **Project Name**: VVTodoLabel
- **Description**: 轻量级桌面任务清单应用 - 简洁高效的个人任务管理工具
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-05-02
- **Last Updated**: 2026-05-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# VVTodoList

**轻量级桌面任务清单应用**
[](https://gitee.com/weijun233/VVTodoLabel)
[](LICENSE)
[](https://gitee.com/weijun233/VVTodoLabel)
[](https://tauri.app/)
## ✨ 特性
- 🎯 **极简设计** - 专注于任务管理的核心功能
- 🚀 **高性能** - 基于 Tauri 构建,原生性能体验
- 🌙 **深色模式** - 支持浅色/深色主题切换
- 🎨 **主题定制** - 多种主题色彩选择
- 📌 **窗口置顶** - 始终保持在最前端,不错过任何任务
- 🔒 **窗口固定** - 防止意外拖拽,专注工作
- 📊 **任务统计** - 实时显示任务完成情况
- 💾 **数据导入导出** - 支持任务数据的备份和迁移
## 🛠️ 技术栈
- **前端**: Vue 3 + TypeScript + Vite
- **后端**: Rust + Tauri
- **样式**: CSS3 + CSS Variables
- **构建工具**: Tauri CLI
## 🚀 快速开始
### 系统要求
- ✅ Windows 10/11
- ✅ Linux (Ubuntu 24.04+)
- ❌ macOS 10.15+ (暂不支持)
### 环境准备
Ubuntu 24.04.3 LTS:
```bash
# 安装 Node.js (18+)(省略...)
# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 若 cargo 仍不可用,手动将以下内容添加到环境变量
source "$HOME/.cargo/env"
source ~/.bashrc
cargo --version
# 安装 Tauri CLI
cargo install tauri-cli
```
### 安装
#### 源码构建
```bash
# 克隆仓库
git clone https://gitee.com/weijun233/VVTodoLabel.git
cd VVTodoLabel
# 安装依赖
npm install
```
#### 交叉编译
方式一:使用 Docker 容器进行编译(不推荐,项目环境仍需重新安装)
```bash
sudo rm -rf src-tauri/target
sudo docker pull messense/cargo-xwin
sudo docker run --rm -it -v $(pwd):/io -w /io/src-tauri messense/cargo-xwin \
cargo xwin build --release --target x86_64-pc-windows-msvc
# 输出在:src-tauri/target/x86_64-pc-windows-msvc/release/vv-todolist.exe
# 修改源
sudo nano /etc/docker/daemon.json
sudo systemctl restart docker
```
常用源:
```text
https://hub.rat.dev
https://docker.xuanyuan.me
```
方式二:使用 cargo-xwin
使用 `cargo-xwin`,它能自动下载并处理Windows SDK,大大简化了交叉编译的设置。
> `cargo-xwin` 会自动处理复杂的工具链配置,一键完成编译,是最高效的本地方案。
```bash
# 更新 Rust 工具链
rustup update
# 为 Windows 目标添加交叉编译支持
rustup target add x86_64-pc-windows-msvc
# 检查项目依赖:查看项目下的 src-tauri/Cargo.toml,确保 tauri 依赖版本 >=1.3
grep 'tauri = ' src-tauri/Cargo.toml
# 安装 cargo-xwin 工具
cargo install cargo-xwin
# 安装 LLVM 工具链
# 安装完整的 LLVM 工具集(包含 llvm-rc)
sudo apt update
sudo apt install llvm
# 安装 Rust 的 LLVM 工具预览组件
rustup component add llvm-tools-preview
# 添加 llvm-rc 到 PATH
# 查找 llvm-rc 的路径
find /usr -name "llvm-rc" 2>/dev/null
# 找到的路径是 /usr/lib/llvm-18/bin/llvm-rc
# 将其添加到 PATH
echo 'export PATH="/usr/lib/llvm-18/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# 验证 llvm-rc 是否已就位
echo $PATH
which llvm-rc
llvm-rc --version
# 安装 Clang 工具链
sudo apt install clang
# 创建 /usr/local/bin 下的链接目录
sudo mkdir -p /usr/local/bin
# 创建符号链接,让系统执行 clang-cl 时,实际执行的是 clang
sudo update-alternatives --install /usr/local/bin/clang-cl clang-cl /usr/bin/clang 100
# 刷新当前会话的环境变量
hash -r
# 验证 clang-cl 命令是否可用及其版本信息
clang-cl --version
# 开始交叉编译 windows 版本
npm run tauri build -- --runner cargo-xwin --target x86_64-pc-windows-msvc
```
成功的话,会在 `src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/` 目录下找到生成的 `.exe` 可执行程序。
> Linux 本地环境打包后位于:`VVTodoLabel/src-tauri/target/release/vv-todolist` 下。
如果是开发环境,还需要安装以下依赖:
```bash
sudo apt update
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libcairo2-dev
# 验证
pkg-config --cflags --libs webkit2gtk-4.1
rm -rf dist
npm run build
npm run tauri:dev
```
#### 命令
```bash
# 启动 Tauri 开发模式
npm run tauri:dev
# 构建生产版本
npm run tauri:build
```
#### 版本升级
```bash
npm install @tauri-apps/api@latest @tauri-apps/cli@latest
cd src-tauri
cargo update
cd ..
```
#### 其它
- 数据库位置:`/home/vv/.config/com.vv.todolist/vv-todolist.db` 或 `/c/Users/weijun/AppData/Roaming/com.vv.todolist/vv-todolist.db`
- `ctrl + shift + i` 打开开发者工具
## 📖 功能列表
### 基本操作
- ✅ **添加任务**: 在输入框中输入任务内容,按回车或点击加号按钮
- ✅ **完成任务**: 点击任务前的复选框
- ✅ **删除任务**: 点击任务右侧的删除按钮
- ✅ **查看详情**: 点击任务详情查看完整内容
- ✅ **任务编辑**: 双击任务item进入编辑模式
- ✅ **搜索/筛选**: 在任务列表上方增加搜索框,实时根据关键词过滤任务列表(前端过滤)
- ✅ **任务优先级/标签**: 在每行任务左侧小圆点按钮,点击切换优先级,并在数据库中增加 priority 字段(0-2),列表可按优先级排序
### 高级功能
- ✅ **窗口置顶**: 在设置中开启"置于顶层"
- ✅ **窗口固定**: 在设置中开启"窗口固定",防止意外拖拽
- ✅ **主题切换**: 在设置中选择喜欢的主题色和外观模式
- ✅ **数据管理**: 使用导入/导出功能备份和迁移任务数据
- ✅ **统计数据与趋势图表**: 基于已有的 `createdAt` 和 `completedAt` 数据,在新窗口添加图表
### 待实现
- [ ] **截止日期与提醒**: 为任务设置截止日期,到期时系统通知或窗口闪烁
- [ ] **子任务/清单**: 为每个任务关联一个子任务列表(JSON 字段)。点击主任务展开子任务列表,支持勾选
## 📁 项目结构
```
VVTodoLabel/
├── src/ # 前端源码
│ ├── App.vue # 主应用组件
│ ├── main.ts # 应用入口
│ └── utils/ # 工具函数
├── src-tauri/ # Tauri 后端
│ ├── src/ # Rust 源码
│ ├── Cargo.toml # Rust 依赖
│ └── tauri.conf.json # Tauri 配置
├── public/ # 静态资源
├── package.json # Node.js 依赖
└── README.md # 项目说明
```
- [ ] 待办事项1
- [x] 已完成事项1