| {{ t('analytics_col_project') }} | {{ t('analytics_col_sessions') }} | {{ t('analytics_col_handoff') }} | {{ t('analytics_col_dissat') }} |
|---|---|---|---|
| {{ proj.project_id }} | {{ proj.sessions }} ↑{{ proj.sessions_change_pct }}% ↓{{ Math.abs(proj.sessions_change_pct) }}% | {{ proj.handoff_rate }}% | {{ proj.dissatisfaction_rate }}% |
|
{{ proj.project_id }} {{ t('analytics_detail') }}
{{ t('loading') }}
{{ analytics.period === '1d' ? t('analytics_hourly_sessions') : t('analytics_daily_sessions') }}
{{ t('analytics_response_dist') }}
{{ t('analytics_session_summary') }}
{{ t('analytics_total') }}: {{ analytics.detail.session_summary.total }} |
AI: {{ analytics.detail.session_summary.ai_handled }}
({{ analytics.detail.session_summary.total > 0 ? Math.round(analytics.detail.session_summary.ai_handled / analytics.detail.session_summary.total * 100) : 0 }}%) |
{{ t('analytics_human') }}: {{ analytics.detail.session_summary.human_handled }} |
{{ t('analytics_dissat') }}: {{ analytics.detail.session_summary.dissatisfied }}
({{ analytics.detail.session_summary.dissatisfaction_rate }}%)
↑{{ analytics.detail.session_summary.dissat_change }}%
↓{{ Math.abs(analytics.detail.session_summary.dissat_change) }}%
|
|||
| {{ t('analytics_col_project') }} | {{ t('vip_diag_total') }} | {{ t('vip_diag_uid') }} | {{ t('vip_diag_known') }} | {{ t('vip_diag_high') }} | {{ t('vip_diag_low') }} | {{ t('vip_diag_missing') }} | {{ t('vip_diag_no_uid') }} |
|---|---|---|---|---|---|---|---|
| {{ row.project_id }} | {{ row.total_sessions }} | {{ row.uid_sessions }} | {{ row.vip_known_sessions }} | {{ row.high_vip_sessions }} ≥{{ row.vip_threshold }} | {{ row.low_vip_sessions }} | {{ row.vip_missing_sessions }} | {{ row.no_uid_sessions }} |
| {{ t('agent_perf_col_agent') }} | {{ t('agent_perf_col_sessions') }} | {{ t('agent_perf_col_dissat') }} | {{ t('agent_perf_col_unresolved') }} | {{ t('agent_perf_col_hours') }} |
|---|---|---|---|---|
| {{ ag.agent_username }} | {{ ag.session_count }} | {{ ag.dissatisfied }} | {{ ag.unresolved }} | {{ formatResponseTimeSummary(ag.response_time_dist) }} |
{{ ppJson(item.ocr_result_json).text || ppJson(item.ocr_result_json).error || '-' }}
| {{ t('col_name') }} | Chat ID | {{ t('col_role') }} | {{ t('col_language') }} | {{ t('col_status') }} | {{ t('col_projects') }} | {{ t('col_actions') }} |
|---|---|---|---|---|---|---|
| {{ user.name }} | {{ user.chat_id }} | {{ user.role }} | — | {{ user.online_status === 'online' ? t('status_online') : t('status_offline') }} — | {{ t('no_projects') }} | |
{{ t('edit_projects_for') }} {{ user.name }} |
||||||