Files
tms_tools/README.md
2026-02-25 22:58:50 +08:00

219 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TMS Tools - 工单管理工具
[![Tauri](https://img.shields.io/badge/Tauri-2.0-blue?logo=tauri)](https://tauri.app)
[![Vue 3](https://img.shields.io/badge/Vue-3.5-green?logo=vue.js)](https://vuejs.org)
[![Element Plus](https://img.shields.io/badge/Element%20Plus-2.10-blue)](https://element-plus.org)
TMS Tools 是一款基于 Tauri + Vue 3 开发的桌面应用程序,用于管理影院技术支持工单。支持工单的创建、反馈、关闭以及批量操作功能。
## 功能特性
### 核心功能
- **用户登录** - 对接 c.baobaot.com 平台认证
- **工单创建** - 根据影院编码自动创建技术支持工单
- **工单反馈** - 提交工单处理结果和解决方案
- **工单关闭** - 完成工单并关闭
- **批量操作** - 支持批量反馈和关闭今日/本月工单
### 数据管理
- 每个用户拥有独立的数据表
- 支持查看今日/本月工单列表
- 工单状态筛选(已反馈/未反馈、已关闭/未关闭)
- 实时同步远程平台数据
### 界面特性
- 响应式布局设计
- 左侧操作面板,右侧工单列表
- 实时日志输出
- 工单全选/多选操作
- Element Plus 组件库提供美观的 UI
## 技术栈
### 前端
- **Vue 3** - 渐进式 JavaScript 框架
- **Vue Router 4** - 路由管理
- **Element Plus** - UI 组件库
- **Vite** - 构建工具
### 后端
- **Tauri 2** - Rust 驱动的桌面应用框架
- **Rust** - 系统级编程语言
- **Tokio** - 异步运行时
- **tokio-postgres** - PostgreSQL 异步驱动
- **reqwest** - HTTP 客户端
- **scraper** - HTML 解析
### 外部服务
- **c.baobaot.com** - TMS 工单平台 API
- **PostgreSQL** - 数据持久化存储
## 项目结构
```
tms_tools/
├── src/ # 前端源码
│ ├── components/ # Vue 组件
│ │ └── Login.vue # 登录组件
│ ├── service/ # 业务页面
│ │ └── workorder.vue # 工单管理主页面
│ ├── router/ # 路由配置
│ │ └── index.js # 路由定义
│ ├── App.vue # 根组件
│ └── main.js # 入口文件
├── src-tauri/ # Tauri/Rust 后端
│ ├── src/
│ │ ├── lib.rs # 主库文件Tauri 命令)
│ │ └── main.rs # 程序入口
│ ├── tms_service/ # TMS 服务模块
│ │ └── src/lib.rs # 工单操作 API 封装
│ ├── html_scraper/ # HTML 解析工具
│ │ └── src/lib.rs # 网页内容解析
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 配置
├── package.json # Node.js 依赖
├── index.html # HTML 入口
└── README.md # 项目说明
```
## 安装与运行
### 环境要求
- [Node.js](https://nodejs.org/) (v18 或更高版本)
- [Rust](https://www.rust-lang.org/tools/install) (最新稳定版)
- [pnpm](https://pnpm.io/) (推荐) 或 npm
### 开发模式
```bash
# 安装前端依赖
pnpm install
# 运行开发服务器
pnpm tauri dev
```
### 构建生产版本
```bash
# 构建桌面应用
pnpm tauri build
```
构建完成后,安装包将位于 `src-tauri/target/release/bundle/` 目录。
## 使用说明
### 1. 登录
- 启动应用后进入登录页面
- 输入用户名和密码
- 首次登录会自动创建用户数据表
### 2. 工单操作
#### 创建工单
1. 输入影院编码 (n2nip)
2. 填写问题描述
3. 选择联系方式(微信/手机)并填写号码
4. 点击"创建工单"按钮
5. 系统自动创建工单并返回工单 ID
#### 反馈工单
1. 填写工单 ID 和处理结果
2. 点击"反馈工单"按钮
3. 或选择"反馈今日工单"批量处理
#### 关闭工单
1. 填写工单 ID
2. 点击"关闭工单"按钮
3. 或选择"关闭今日工单"批量处理
### 3. 工单列表
- 切换"今日工单"或"本月工单"查看不同范围
- 使用筛选器过滤已反馈/未反馈、已关闭/未关闭的工单
- 点击"全选"批量选择工单
- 选中后可批量反馈或关闭
## API 接口
### Tauri 命令
| 命令 | 描述 |
|------|------|
| `login` | 用户登录验证 |
| `get_cookie` | 获取当前登录 Cookie |
| `get_dashboard_username` | 获取仪表板用户名 |
| `get_workorders` | 获取工单列表 |
| `create_ticket_command` | 创建工单 |
| `insert_workorder` | 插入工单到数据库 |
| `feedback_workorder` | 反馈单个工单 |
| `feedback_today_workorders` | 批量反馈今日工单 |
| `feedback_selected_workorders` | 反馈选中的工单 |
| `close_workorder` | 关闭单个工单 |
| `close_today_workorders` | 批量关闭今日工单 |
| `close_selected_workorders` | 关闭选中的工单 |
## 配置说明
### 数据库配置
本应用使用 **PostgreSQL** 数据库进行数据持久化存储。数据库连接配置通过本地配置文件管理。
#### 配置文件位置
所有平台统一使用 `~/.config/` 目录:
- **macOS**: `~/.config/tms_tools/config.toml`
- **Windows**: `~/.config/tms_tools/config.toml`
- **Linux**: `~/.config/tms_tools/config.toml`
#### 配置文件格式
在启动应用前,需要手动创建配置文件:
```toml
database_url = "postgres://用户名:密码@主机地址:端口/数据库名"
```
**示例:**
```toml
database_url = "postgres://tmstools:521707@localhost:5432/tmstools"
```
#### 启动检查
应用启动时会自动检查配置文件:
- ✅ 配置文件存在且格式正确 → 正常启动
- ❌ 配置文件不存在 → 弹出错误提示,点击确定后退出
- ❌ 数据库连接失败 → 在登录时提示错误
## 开发计划
- [ ] 支持离线模式
- [ ] 添加工单导出功能Excel/PDF
- [ ] 实现工单搜索功能
- [ ] 添加数据统计报表
- [ ] 支持多语言切换
## 许可证
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
## 贡献指南
欢迎提交 Issue 和 Pull Request
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 联系方式
如有问题或建议,欢迎通过以下方式联系:
- 提交 [GitHub Issue](https://github.com/yourusername/tms_tools/issues)
- 发送邮件至: your.email@example.com
---
**注意**: 本工具仅供学习和内部使用,请遵守相关平台的使用条款。