# 紫云呼叫终端(call-client)产品介绍 ## 1. 产品定位 **紫云呼叫终端**(工程名 `call-client`)是面向政务大厅、办税服务厅等场景的**窗口叫号与办理桌面客户端**。工作人员通过本终端完成选窗登录、呼叫下一位、开始/完成办理、暂停服务、票号转移与评价等操作,并与紫云排队叫号后台服务实时联动。 产品基于 **Tauri 2 + Vue 3 + TypeScript** 构建,采用轻量原生壳 + Web 前端的混合架构,在 Linux(含麒麟 V10 等国产化桌面)上提供 `.deb` 安装包,支持 **amd64 / arm64** 双架构发布与内网 APT 在线升级。 --- ## 2. 典型应用场景 | 场景 | 说明 | |------|------| | 窗口叫号 | 办事员一键呼叫下一位等候群众,支持重呼、弃号 | | 业务办理 | 呼叫成功后开始办理,完成后进入评价流程 | | 服务暂停 | 临时暂停窗口服务并记录暂停原因 | | 票号调度 | 将当前票号转移至其他窗口或业务队列 | | 票池选号 | 从票号列表中检索并指定呼叫特定票号 | | 纳税人辅助 | 打开办税员信息页,配合实名与业务办理 | | 大屏联动 | 可选开启主屏同步,将窗口画面推送至外显设备 | | 异常恢复 | 应用异常退出后重新登录,可提示是否继续办理中断前的票号 | --- ## 3. 核心功能 ### 3.1 登录与窗口选择 - **账号登录**:对接排队系统 `/auth/login`,获取 `queueToken` 等会话凭据。 - **服务窗口选择**:登录后从 `/windows/list` 拉取可办窗口列表,选择本机对应窗口。 - **呼号端初始化**:选窗后调用 `/call-terminal/caller-init`,加载自动叫号/自动开始、转移开关、纳税人信息 URL 等窗口级策略。 - **服务地址配置**:首次使用可配置后台服务器地址(`config.json`),支持路由守卫自动跳转配置页。 ### 3.2 主叫号操作(主窗口) 主窗口为**置顶窄条工具栏**形态,常驻桌面,便于办事员快速操作: | 操作 | 说明 | |------|------| | 呼叫 / 重呼 | 呼叫下一位或对已叫票号重呼 | | 开始 | 群众到站后开始办理 | | 完成 | 办理结束并进入评价阶段 | | 弃号 | 放弃当前票号 | | 暂停 / 恢复 | 窗口服务暂停与恢复 | | 转移 | 打开票号转移子窗口,将票转至其他窗口或业务(二选一) | | 评价 | 触发评价接口,并轮询是否已完成评价 | **智能辅助:** - **自动叫号**:待机状态下按配置秒数倒计时,结束后自动发起呼叫。 - **自动开始**:呼叫成功后倒计时,结束后自动开始办理。 - **等候人数**:轮询 `/call-terminal/queue-count`,在主界面日志区展示当前窗口等候人数。 - **手动打断**:用户手动点击「呼叫」「开始」时,自动停止对应倒计时,避免与人工操作冲突。 ### 3.3 多窗口协同 | 窗口 | 用途 | |------|------| | 登录窗 | 账号登录、选窗、检查更新 | | 主窗口 | 叫号与办理主流程 | | 票号列表 | 票池查询、筛选、从列表发起呼叫/评价 | | 票号转移 | 选择目标窗口或目标业务并提交转移 | | 办税员信息 | 展示纳税人相关业务页面(URL 由后台 init 下发) | 各子窗口通过 Tauri 事件总线(`emit` / `listen`)与主窗口通信;会话状态写入磁盘 `runtime_session.json`,多窗口共享。 ### 3.4 异常中断恢复 呼叫或开始办理成功后,系统将**票号、票号显示名、流程状态**(呼叫中 / 办理中 / 已暂停)持久化到本地配置。若应用异常退出,用户重新登录并进入主界面后: - 弹出**原生确认框**,询问是否继续办理中断前的票号; - 选择「是」则恢复对应界面状态与票号上下文; - 选择「否」则清除缓存,进入正常待机流程。 ### 3.5 系统托盘与单实例 - 启动时**单实例锁**,防止重复打开多个客户端。 - **系统托盘**:快速显示/最小化主窗口、打开票号列表、退出应用。 - 主窗口支持无边框、置顶、最小化等桌面交互。 ### 3.6 升级与运维 - 登录页支持**检查 APT 更新**(内网紫云软件源),可引导配置源、执行 `apt` 升级。 - 本地 **app.log** 日志轮转,错误弹窗可一键打开日志文件。 - 配置与会话路径遵循 XDG 规范(见仓库根目录 `README.md`)。 --- ## 4. 与后台服务的关系 客户端通过 HTTP 与紫云排队叫号服务通信,主要接口域包括: - 认证:`/auth/login`、`/auth/logout` - 窗口:`/windows/list` - 呼号端:`/call-terminal/*`(呼叫、开始、完成、暂停、恢复、弃号、评价、票池、排队统计、转移、业务列表等) 广播侧(`broadcast-client`)可通过 Socket 接收叫号推送,与呼叫终端形成**「窗口操作 + 大厅展示」**的完整闭环(见《broadcast-client 产品介绍》)。 --- ## 5. 部署与运行环境 | 项目 | 说明 | |------|------| | 操作系统 | Linux 桌面(推荐麒麟 V10 等;亦支持 Windows 开发与调试) | | 安装方式 | `.deb` 包或内网 APT 仓库 | | 架构 | amd64、arm64 | | 网络 | 需能访问排队叫号后台 HTTP 服务 | | 配置目录 | `~/.config/com.ziyun.callclient/`(`config.json`、`app.log` 等) | | 会话目录 | `~/.local/share/com.ziyun.callclient/runtime_session.json` | | 当前版本 | 0.1.6(以 `tauri.conf.json` 为准) | --- ## 6. 技术特点(简述) - **Tauri 2 原生壳**:体积小、启动快,Rust 侧负责窗口、会话、日志、升级、屏幕同步等能力。 - **Vue 3 + Element Plus**:业务界面组件化,类型安全(TypeScript)。 - **宿主适配层(`src/host`)**:统一封装配置、会话、对话框、窗口、事件,便于维护与测试。 - **从 Electron 平滑迁移**:保留原业务语义,面向 Linux 打包与国产化环境优化。 --- ## 7. 产品价值总结 紫云呼叫终端将窗口办事员的**高频叫号操作**收敛在一块常驻工具条中,减少切换成本;通过自动叫号/开始、票池选号、转移与异常恢复,提升高峰时段吞吐与业务连续性;通过与广播同步屏、综合屏联动,实现**窗口内操作、大厅外可见**的一体化办税服务体验。