# 界面结构 > 本项目是桌面 GUI,不使用 Web 路由。本文约定主窗口区域、页面职责和组件归属。 ## 主窗口布局 ```text ┌──────────────────────────────────────────────────────────┐ │ 顶部工具栏:导入 Excel | 开始 | 暂停 | 继续 | 取消 | 人工接管 | 支付模式 │ ├──────────────────────────────┬───────────────────────────┤ │ 任务表格 │ 当前设备 / 当前截图 │ │ - 勾选 │ - 设备状态 │ │ - 序号 │ - 当前步骤 │ │ - 商品链接 │ - 手机截图 │ │ - SKU 信息 │ │ │ - 数量 │ │ │ - 状态 │ │ │ - 订单号 │ │ │ - 失败原因 │ │ ├──────────────────────────────┴───────────────────────────┤ │ 日志区域 │ └──────────────────────────────────────────────────────────┘ ``` ## 页面 / 区域职责 ### 顶部工具栏 - 导入 Excel。 - 开始执行选中任务。 - 暂停当前批次。 - 继续人工处理后的任务。 - 取消后续任务。 - 进入人工接管状态。 - 配置支付模式:人工确认支付(默认)或受控自动支付。 按钮状态必须跟随任务执行状态变化,避免重复启动或误操作。 ### 任务表格 - 展示导入的 Excel 任务。 - 支持勾选/取消勾选。 - 按当前展示顺序执行选中任务。 - 实时更新状态、订单号、失败原因。 - 行状态要清晰区分:待执行、执行中、待人工、成功、失败、已取消。 ### 当前设备 / 当前截图 - 展示 Android 设备连接状态。 - 展示当前执行任务和步骤。 - 展示最近截图。 - 设备断开或截图失败时显示明确错误。 ### 日志区域 - 展示任务级日志。 - 每条日志包含时间、任务 ID、步骤、结果。 - 不展示支付密码、短信验证码、账号密码等敏感信息。 ### 人工接管交互 - 当系统进入 `待人工` 时,GUI 应明确展示原因。 - 用户可以在真机上手动处理。 - GUI 提供继续、标记成功、标记失败、取消批次等操作。 - 自动化不得在安全校验节点自行尝试绕过。 ### 支付模式配置 - 默认模式为人工确认支付。 - 受控自动支付必须由用户显式开启。 - 开启时必须填写单笔金额上限;建议填写批次金额上限。 - GUI 应显示当前模式,执行中不得悄悄切换。 ## 组件建议 | 组件 | 归属 | 说明 | | --- | --- | --- | | `MainWindow` | 全局 | 主窗口和整体布局。 | | `Toolbar` | 全局 | 导入、开始、暂停、继续、取消、人工接管、支付模式。 | | `TaskTable` | 主区域 | 渲染任务列表和状态。 | | `DevicePanel` | 侧栏 | 展示设备状态、当前步骤、截图。 | | `LogPanel` | 底部 | 展示运行日志。 | | `ManualActionDialog` | 弹窗 | 人工接管原因和后续动作。 | ## 导航规则 - 启动程序后直接进入主窗口,不做登录页。 - 未导入 Excel 时,开始按钮不可用。 - 未连接 Android 设备时,开始执行前给出明确提示。 - 执行中允许查看表格和日志,但不允许重新导入覆盖当前任务。 - 批次执行结束后,显示结果文件路径。