{{ getPageTitle() }}
{{ lang === 'en' ? '中文' : 'English' }}
{{ currentUser?.username }} ({{ currentUser?.role }})
🔴
执行锁定
锁定时间: {{ formatDateTime(executionLockInfo.locked_at) }}
原因: {{ executionLockInfo.lock_reason }}
如有问题可在此留言,我们会跟进。
| {{ t('customer') }}{{ sortIndicator('customer') }} | SHIP{{ sortIndicator('ship') }} | {{ t('container_no') }}{{ sortIndicator('container_no') }} | 车架号 (Chassis){{ sortIndicator('chassis') }} | PU-Terminal{{ sortIndicator('terminal') }} | RT Terminal{{ sortIndicator('rt_terminal') }} | ETA{{ sortIndicator('eta') }} | PU-LFD{{ sortIndicator('pu_lfd') }} | {{ t('rt_lfd') }}{{ sortIndicator('rt_lfd') }} | BOL{{ sortIndicator('bol') }} | {{ t('size') }}{{ sortIndicator('size') }} | {{ t('delivery_to') }}{{ sortIndicator('delivery_to') }} | {{ t('wh_appt') }}{{ sortIndicator('warehouse_appt') }} | {{ t('driver') }}{{ sortIndicator('driver') }} | {{ t('note') }} | {{ t('status') }}{{ sortIndicator('status') }} | Delete |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ t('no_shipments_found') }} | ||||||||||||||||
|
|
|
⚠️
{{ shipment.container_no || '-' }}
✎
|
|
|
|
|
|
|
|
|
|
|
|
|
{{ getStatusLabel(shipment.status) }}
{{ shipment.hold_status }}
|
Change Password
{{ t('overview_title') }}
最后刷新: {{ overviewLastRefreshedAt || '—' }}
加载中...
加载失败
{{ overviewError }}
暂无模块
当前环境未配置可展示的模块卡片。
执行锁定
系统正常
{{ m.module_name }}
{{ getOverviewStatusLabel(m) }}
最后运行:{{ m.last_run || '—' }}
结果:{{ m.last_outcome || '—' }}
错误:{{ m.last_error_zh || '—' }}
最近运行: {{ m.last_run }}
{{ m.last_error_zh }}
API 密钥:{{ m.api_key_state }}
拉取已执行,当前无新邮件需入库。若邮箱里有新信仍显示此项:① Gmail API 时需把预报发件人邮箱或邮箱域填在客户的「Notification Emails」中(可填具体邮箱如 [email protected],或仅域如 *@mebsupplychain.com),否则该发件人的邮件会被跳过;② Gmail/IMAP 配置的是否为该收件邮箱;③ 可设 GMAIL_QUERY=newer_than:7d 包含已读邮件。
已入库 {{ emailPullerProgress.stored }} 封
最近柜号:{{ emailPullerProgress.recent_containers.join('、') }}
点「日志」可看实时明细
| {{ t('short_name') }} | {{ t('company_name') }} | {{ t('address') }} | {{ t('actions') }} |
|---|---|---|---|
| {{ t('no_customers_found') }} | |||
| {{ customer.short_name }} | {{ customer.company_full_name || '-' }} | {{ customer.address || '-' }} |
|
{{ t('employee_management') }}
| {{ t('username') }} | {{ t('role') }} | {{ t('actions') }} |
|---|---|---|
| {{ employee.username }} | {{ employee.role }} |
{{ t('driver_management') || '司机管理' }}
| {{ t('driver_name') || '姓名' }} | {{ t('driver_phone') || '手机号' }} | {{ t('driver_username') || '登录名' }} | {{ t('actions') }} |
|---|---|---|---|
| {{ d.name }} | {{ d.phone_number || '—' }} | {{ d.username || '—' }} | |
| {{ t('no_drivers') || '暂无司机,请点击上方「添加司机」' }} | |||
邮件规则
点击刷新触发一次邮件抓取。
爬虫:{{ emailRulesCrawlerEnabled ? '已开启' : '已关闭' }}
运行记录
加载运行记录...
| Run ID | Module | Outcome | Started | Finished | Actions |
|---|---|---|---|---|---|
| {{ run.run_id }} | {{ run.module || '-' }} | {{ run.outcome || run.status }} | {{ formatDateTime(run.started_at) }} | {{ run.finished_at ? formatDateTime(run.finished_at) : '-' }} |
API Key 管理
{{ apiKeyTestResult }}
AI 运维 - 协作规范
{{ t('system_facts_title') }}
{{ t('version') }}: {{ systemFacts.version }}
{{ t('updated') }}: {{ systemFacts.last_updated }}
{{ t('loading') }}
{{ systemFactsError }}
{{ systemFacts.content || t('no_content') }}
{{ t('redlines_title') }}
{{ t('loading') }}
{{ redlinesError }}
{{ redlinesContent || t('no_content') }}
QA Gate 状态
{{ t('loading') }}
状态:
✓ PASS
✗ FAIL
UNKNOWN
最后执行: {{ gateStatus.last_run_time }}
主系统 Commit: {{ gateStatus.commit_hash }}
{{ gateStatus.message }}
⚠️ 阻断提示: 当前 Gate 状态为 {{ gateStatus.status }},高风险操作(改配置/上线)被禁用。请先运行
/opt/newbility/scripts/qa_gate.sh 并通过后再继续。
运行诊断
仅执行只读/诊断类脚本(安全模式)
{{ diagnosticResult }}
执行中...
Role Selector
{{ roleDescriptions[selectedRole] }}
Prompt Composer
⚠️ 当前 Gate 未通过,禁止执行变更。生成的 Prompt 已自动添加阻断提示。
{{ t('module_config_center_title') }}
{{ t('overview_loading') }}
{{ modulesError }}
{{ module.module_name }}
自动扫描
执行时刻
状态: {{ module.secret_set ? '已设置' : '未设置' }}
{{ t('dispatch_nav') }}
{{ dispatchChainError }}
Driver progress (按套)
暂无司机或未配置 assigned_tasks;请用 PUT /api/admin/drivers/:id/assigned_tasks 配置
{{ d.name }}
{{ i === 0 ? '1st' : i === 1 ? '2nd' : (i+1) + 'th' }} Set {{ set.done ? '✅' : '⏳' }}
Ready to Return
{{ t('loading') }}
{{ s.container_no }}
{{ s.location || '—' }}
无待还空
Ready to Pickup
{{ t('loading') }}
{{ s.container_no }}
{{ s.location || s.terminal || '—' }}
无待提重
Workbench {{ workbenchCollapsed ? '(点击展开)' : '(点击收起)' }}
{{ dispatchDataUpdatedHint }}
已选任务 (按套)
Set {{ setIdx + 1 }}
{{ dispatchOrdinal(setIdx*2+taskIdx+1) }}
点击左侧卡片加入 · 拖拽可排序 · 删除可选单条或解散该套
{{ t('dispatch_plans_list') }}
| Driver | Scheduled Date | Status |
|---|---|---|
| {{ p.driver_name }} | {{ p.scheduled_date }} | {{ p.status }} |
暂无派车记录
司机任务卡片 · 点击载回 WorkBench
{{ driverName }}
{{ (i+1) }}. {{ p.container_no || p.shipment_id }} · {{ p.status }}
暂无司机任务
GAS 情报总署
检测中...
Webhook:
/api/v1/webhook/mail-ingest
Wayfair 预约
0
单今日更新
DO 文件捕获
0
份自动归档
新柜录入
0
个新柜号
扩展位
Waiting for module...
{{ t('global_mail_config') }}
Password is masked for security. Enter a new value only if you want to change it.
{{ t('module_switches_title') }}
{{ t('module_switches_loading') }}
{{ flag.label }}
{{ flag.desc }}
{{ featureFlags[flag.key] ? t('module_enabled') : t('module_disabled') }}
运行 {{ selectedRun?.run_id || '' }}
Overview
Outcome
{{ selectedRun.outcome || selectedRun.status }}
Module
{{ selectedRun.module || '-' }}
Trigger
{{ selectedRun.trigger_source }}
Started
{{ formatDateTime(selectedRun.started_at) }}
Finished
{{ selectedRun.finished_at ? formatDateTime(selectedRun.finished_at) : '-' }}
Summary
{{ selectedRun.result_summary || '-' }}
Error
{{ selectedRun.error_reason || '-' }}
{{ selectedRun.log_excerpt }}
覆盖字段
提取结果
加载提取结果...
| 字段 | 候选值 | 置信度 | 状态 | 依据 | 操作 |
|---|---|---|---|---|---|
| {{ item.field_key }} | {{ item.candidate_value }} | {{ item.confidence }} | {{ item.status }} | {{ item.evidence_snippet }} |
~
{{ t('bill_mailing_switch') }}:{{ billMailingEnabled ? t('module_enabled') : t('module_disabled') }}
{{ t('fee_rules_title') }}
| {{ t('bill_id') }} | {{ t('customer') }} | {{ t('shipment_id') }} | {{ t('container_no') }} | {{ t('amount') }} | {{ t('currency') }} | {{ t('status') }} | {{ t('due_date') }} | {{ t('actions') }} | |
|---|---|---|---|---|---|---|---|---|---|
| {{ t('no_bills_found') }} | |||||||||
| {{ bill.id ? bill.id.substring(0, 8) + '...' : '-' }} | {{ getCustomerShortNameById(bill.user_id) || '-' }} | {{ bill.shipment_id ? bill.shipment_id.substring(0, 8) + '...' : '-' }} | {{ getContainerNoByShipmentId(bill.shipment_id) || '-' }} | ${{ bill.amount != null ? Number(bill.amount).toFixed(2) : '0.00' }} | {{ bill.currency || 'USD' }} | {{ t(billStatusLabelKey(bill.status)) || bill.status || '-' }} | {{ formatDate(bill.due_date) }} |
|
|