219 lines
6.5 KiB
Markdown
219 lines
6.5 KiB
Markdown
# TMS Tools - 工单管理工具
|
||
|
||
[](https://tauri.app)
|
||
[](https://vuejs.org)
|
||
[](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
|
||
|
||
---
|
||
|
||
**注意**: 本工具仅供学习和内部使用,请遵守相关平台的使用条款。 |