feat : update readme
This commit is contained in:
106
README.md
106
README.md
@@ -1,7 +1,105 @@
|
|||||||
# Tauri + Vanilla
|
# 考勤统计助手 (Attendance Counter)
|
||||||
|
|
||||||
This template should help get you started developing with Tauri in vanilla HTML, CSS and Javascript.
|
这是一个基于 **Rust** + **Tauri** 开发的桌面应用程序,用于自动化处理学生考勤数据并生成月度费用报表。
|
||||||
|
|
||||||
## Recommended IDE Setup
|
## 核心功能
|
||||||
|
|
||||||
- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
|
1. **Excel 数据读取**:
|
||||||
|
* 支持导入 `.xlsx` 和 `.xls` 格式的考勤表。
|
||||||
|
* 自动识别表头中的日期列(支持 Excel 序列号日期格式)。
|
||||||
|
* 解析学生基本信息(入学年份、年级、班级、姓名)。
|
||||||
|
|
||||||
|
2. **智能数据处理**:
|
||||||
|
* **考勤统计**:自动统计每个学生每月的出勤次数(输入表中标记为 `1` 即为出勤)。
|
||||||
|
* **费用计算**:
|
||||||
|
* **思维班**(班级名称包含"思维"):单价 **30元/次**。
|
||||||
|
* **其他班级**:单价 **24元/次**。
|
||||||
|
* **月度汇总**:自动按月份聚合数据,生成每月的次数和费用小计。
|
||||||
|
|
||||||
|
3. **报表生成**:
|
||||||
|
* 生成格式化的 Excel (`.xlsx`) 报表。
|
||||||
|
* **样式还原**:完美复刻目标模板的视觉风格(宋体、蓝色表头、边框、居中对齐)。
|
||||||
|
* **自动公式**:生成的表格包含 Excel 公式(`=PRODUCT(...)` 和 `=SUM(...)`),方便后续手动修改数据时自动更新合计。
|
||||||
|
* **智能保存**:
|
||||||
|
* 默认保存在应用同级目录。
|
||||||
|
* 若从桌面快捷方式启动,则自动保存到桌面。
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
本项目采用现代化的 **Tauri 2.0** 框架构建,结合了 Rust 的高性能和 Web 前端的灵活性。
|
||||||
|
|
||||||
|
* **核心框架**: [Tauri 2.x](https://tauri.app/) (构建跨平台桌面应用)
|
||||||
|
* **后端 (Rust)**:
|
||||||
|
* `calamine`: 高效读取 Excel 文件。
|
||||||
|
* `rust_xlsxwriter`: 生成带有复杂样式和公式的 Excel 文件。
|
||||||
|
* `serde`: 数据序列化与反序列化。
|
||||||
|
* `chrono`: 日期和时间处理。
|
||||||
|
* `dirs`: 跨平台路径处理(识别桌面路径)。
|
||||||
|
* **前端**:
|
||||||
|
* HTML5 / CSS3
|
||||||
|
* Vanilla JavaScript (原生 JS,无繁重框架依赖)
|
||||||
|
|
||||||
|
## 开发环境准备
|
||||||
|
|
||||||
|
在开始之前,请确保您的开发环境已安装以下工具:
|
||||||
|
|
||||||
|
1. **Rust**: [安装 Rust](https://www.rust-lang.org/tools/install)
|
||||||
|
2. **Node.js**: [安装 Node.js](https://nodejs.org/) (建议 LTS 版本)
|
||||||
|
3. **系统依赖**:
|
||||||
|
* **macOS**: 需要安装 Xcode Command Line Tools (`xcode-select --install`)。
|
||||||
|
* **Windows**: 需要安装 [Microsoft Visual Studio C++ 生成工具](https://visualstudio.microsoft.com/visual-cpp-build-tools/)。
|
||||||
|
|
||||||
|
## 跨平台支持
|
||||||
|
|
||||||
|
本项目代码完全**跨平台**,可以在 **Windows**、**macOS** 和 **Linux** 上编译运行。
|
||||||
|
|
||||||
|
* **Windows 用户注意**:
|
||||||
|
* Tauri 依赖 Webview2(Windows 10/11 通常已内置)。
|
||||||
|
* 建议直接在 Windows 系统上拉取代码并运行 `npm run tauri build` 进行打包,生成的 `.exe` 文件即可直接使用。
|
||||||
|
* 输出文件逻辑与 macOS 一致:如果 `.exe` 放在桌面上运行,生成的 Excel 也会在桌面;否则在同级目录。
|
||||||
|
|
||||||
|
## 安装与运行
|
||||||
|
|
||||||
|
1. **克隆项目/进入目录**
|
||||||
|
```bash
|
||||||
|
cd count_attendance
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **安装前端依赖**
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **启动开发模式**
|
||||||
|
此命令会同时启动前端服务和 Rust 后端,并打开应用窗口。
|
||||||
|
```bash
|
||||||
|
npm run tauri dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## 打包与发布
|
||||||
|
|
||||||
|
要生成可分发的应用程序(如 macOS 的 `.app` 或 `.dmg`),请运行:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run tauri build
|
||||||
|
```
|
||||||
|
|
||||||
|
打包完成后,安装包通常位于:
|
||||||
|
`src-tauri/target/release/bundle/macos/` (macOS)
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
count_attendance/
|
||||||
|
├── src/ # 前端源代码 (HTML, CSS, JS)
|
||||||
|
├── src-tauri/ # Rust 后端源代码
|
||||||
|
│ ├── src/
|
||||||
|
│ │ ├── lib.rs # Tauri 命令与模块入口
|
||||||
|
│ │ ├── excel_reader.rs # Excel 读取逻辑
|
||||||
|
│ │ ├── data_processor.rs# 数据处理与计算逻辑
|
||||||
|
│ │ └── excel_writer.rs # Excel 生成与样式逻辑
|
||||||
|
│ ├── Cargo.toml # Rust 依赖配置
|
||||||
|
│ └── tauri.conf.json # Tauri 项目配置
|
||||||
|
├── package.json # 前端依赖配置
|
||||||
|
└── README.md # 项目说明文档
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user