# 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` | 关闭选中的工单 | ## 配置说明 ### 数据库配置 数据库连接配置位于 `src-tauri/src/lib.rs`: ```rust let db_url = "postgres://tmstools:521707@honulla.com:5432/tmstools"; ``` ### 外部 API - 登录接口: `https://c.baobaot.com/user/ajax_login` - 工单平台: `https://c.baobaot.com/cinema/workorder` ## 开发计划 - [ ] 支持离线模式 - [ ] 添加工单导出功能(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 --- **注意**: 本工具仅供学习和内部使用,请遵守相关平台的使用条款。