{{ t('auth.loginSubtitle') }}
{{ t('auth.noAccount') }}
{{ t('auth.registerSubtitle') }}
{{ t('auth.hasAccount') }}
{{ t('dashboard.dateZipHint') }}
{{ t('dashboard.exportRetention') }}
{{ taskFilter ? t('dashboard.noTasksFilter') : t('dashboard.noTasksHint') }}
{{ t('upload.intro') }}
{{ t('upload.folderHintVideo') }}
{{ t('upload.folderHintTactile') }}
| {{ t('taskDetail.taskId') }} | {{ selectedTask.id }} |
|---|---|
| {{ t('taskDetail.taskNo') }} | {{ selectedTask.task_number }} |
| {{ t('taskDetail.fileSize') }} | {{ formatSize(selectedTask.file_size) }} |
| {{ t('taskDetail.sliceCount') }} | {{ selectedTask.slice_count || '-' }} |
| {{ t('taskDetail.createdAt') }} | {{ formatTime(selectedTask.created_at) }} |
| {{ t('taskDetail.updatedAt') }} | {{ formatTime(selectedTask.updated_at) }} |
| {{ t('taskDetail.completedAt') }} | {{ formatTime(selectedTask.completed_at) }} |
| {{ t('taskDetail.errorMsg') }} | {{ selectedTask.error_message }} |
| {{ t('taskDetail.failedStage') }} | {{ stageLabel(selectedTask.failed_stage) }} |
{{ prettyJson(selectedTask.qwen_result_json) }}
| 管道 | 运行中 | 成功 | 失败 | 重试中 | 等待中 |
|---|---|---|---|---|---|
| {{ stageLabel(s.stage) }} | {{ s.running }} | {{ s.success }} | {{ s.failed }} | {{ s.retrying }} | {{ s.pending }} |
暂无失败任务
| 用户名 | 邮箱 | 角色 | 状态 | 公司标签 | 剩余额度(GB) | 进行中 | 已完成 | 失败 | 总计 | 注册时间 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ u.username }} | {{ u.email }} | {{ u.is_admin ? '管理员' : '普通' }} | {{ u.is_active ? '正常' : '禁用' }} | {{ u.company_tag || '-' }} |
|
{{ u.active_task_count }} | {{ u.completed_task_count }} | {{ u.failed_task_count }} | {{ u.task_count }} | {{ formatTime(u.created_at) }} |
|
| 实例 ID | {{ nodeOverview.services.api_instance?.instance_id }} |
| 部署角色 | {{ nodeOverview.services.api_instance?.deploy_role || 'api' }} |
| 监听地址 | {{ nodeOverview.services.api_instance?.listen_addr }} |
| 整体状态 | {{ nodeOverview.services.overall === 'ok' ? '正常' : '降级' }} |
| 数据库 | {{ nodeOverview.services.api_instance?.database }} |
| Redis | {{ nodeOverview.services.api_instance?.redis }} |
| Temporal | {{ nodeOverview.services.api_instance?.temporal }} {{ nodeOverview.services.api_instance?.temporal_address }} |
节点地址保存在数据库(RDS),在此增删改查;健康检查通过各实例 /health 探测。
| 名称 | 地址 | 启用 | 健康 | 版本 | 延迟(ms) | DB / Temporal | 操作 |
|---|---|---|---|---|---|---|---|
| {{ row.probe.healthy ? '正常' : '异常' }} — | {{ row.probe?.version || '—' }} | {{ row.probe?.latency_ms ?? '—' }} | {{ row.probe.detail.database }} / {{ row.probe.detail.temporal }} {{ row.probe?.error || '—' }} | ||||
| 暂无 API 节点,请添加 | |||||||
| 队列 | 轮询器 | 在线轮询 | 积压 | 可达 |
|---|---|---|---|---|
| {{ q.name }} | {{ q.pollers || 0 }} | {{ q.online_pollers || 0 }} | {{ q.backlog || 0 }} | {{ q.reachable !== false ? '是' : '否' }} |
| 节点ID | 运行任务数 | 过期Lease | 最近心跳 | 状态分布 |
|---|---|---|---|---|
| {{ n.node_id }} | {{ n.running_tasks }} | {{ n.stale_leases || 0 }} | {{ formatTime(n.latest_heartbeat_at) }} | {{ status }}: {{ count }} |
V2 使用 Temporal 调度;需运行 go run ./cmd/worker 且 API 能连上 Temporal。
| Worker 标识 | 在线 | 最近轮询 | Task Queue |
|---|---|---|---|
| {{ w.worker_name }} | {{ w.online ? '在线' : '离线' }} | {{ formatTime(w.last_access_at) }} | {{ (w.queue_names || []).join(', ') || '-' }} |
| 名称 | 地址 | 健康 | 队列 | 处理中 | 待处理 |
|---|---|---|---|---|---|
| {{ s.name || '-' }} | {{ s.url }} | {{ s.healthy ? '正常' : '异常' }} | {{ s.queue_size || 0 }} | {{ s.processing_tasks || 0 }} | {{ s.pending_tasks || 0 }} |
{{ prettyJson(srv.raw_status) }}
未配置推理服务器