Files

2 lines
4.3 KiB
JavaScript
Raw Permalink Normal View History

import{S as c}from"./StatCard-wqQzE21j.js";import{L as S}from"./admin-yH4tDL3a.js";import{d as h,o as D,b as p,c as M,e as s,f as t,w as r,V as x,n as I,r as f,v as k,i as v,a2 as q,g as y,t as i}from"./index-BCt9h3P8.js";import{_ as E}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./index-CTvVpU0T.js";const O={class:"monitor-page"},P={class:"stats-grid"},V={class:"table-wrapper"},z={class:"table-header-row"},B={class:"session-id"},N=h({__name:"Monitor",setup(T){const u=f(!1),n=k({in_progress:0,queued:0,resolved_today:0,alerts:0}),d=f([]);D(async()=>{u.value=!0;try{const e=(await S()).data.data;Object.assign(n,e.stats),d.value=e.items}catch{n.in_progress=5,n.queued=0,n.resolved_today=42,n.alerts=1,d.value=[{id:"#C042",employee_name:"李明 (EMP101)",status:"serving",assigned_agent_name:"宋献",urgency_score:8,created_at:new Date(Date.now()-5*6e4).toISOString(),last_message_summary:"电脑无法开机"},{id:"#C041",employee_name:"赵刚 (EMP205)",status:"serving",assigned_agent_name:"宋献",urgency_score:14,created_at:new Date(Date.now()-12*6e4).toISOString(),last_message_summary:"VPN连接失败"},{id:"#C040",employee_name:"孙芳 (EMP312)",status:"timeout",assigned_agent_name:"王丽",urgency_score:6,created_at:new Date(Date.now()-8*6e4).toISOString(),last_message_summary:"打印机脱机"},{id:"#C039",employee_name:"周磊 (EMP088)",status:"serving",assigned_agent_name:"宋献",urgency_score:4,created_at:new Date(Date.now()-3*6e4).toISOString(),last_message_summary:"邮箱登录失败"},{id:"#C038",employee_name:"吴婷 (EMP156)",status:"ai_chatting",assigned_agent_name:"AI 助手",urgency_score:2,created_at:new Date(Date.now()-1*6e4).toISOString(),last_message_summary:"密码重置请求"}]}finally{u.value=!1}});function w(l){try{const e=new Date(l.created_at).getTime(),o=Date.now()-e,m=Math.floor(o/6e4),g=Math.floor(o%6e4/1e3);return`${m}${g}`}catch{return"-"}}function b(l){switch(l){case"serving":return"success";case"timeout":return"warning";case"ai_chatting":return"primary";case"queued":return"info";default:return"info"}}function C(l){switch(l){case"serving":return"进行中";case"timeout":return"超时未响应";case"ai_chatting":return"AI 对话中";case"queued":return"等待中";default:return l}}return(l,e)=>{const _=v("el-tag"),o=v("el-table-column"),m=v("el-table"),g=q("loading");return p(),M("div",O,[e[2]||(e[2]=s("div",{class:"page-title"},"会话监控",-1)),e[3]||(e[3]=s("div",{class:"page-desc"}," 实时查看坐席工作状态、会话队列、异常告警。阶段二功能,当前为 Demo 预览。 ",-1)),s("div",P,[t(c,{label:"进行中会话",value:n.in_progress,valueColor:"var(--accent)",icon:"ChatLineSquare",iconColor:"var(--accent)"},null,8,["value"]),t(c,{label:"等待中",value:n.queued,valueColor:"var(--warning)",icon:"Clock",iconColor:"var(--warning)"},null,8,["value"]),t(c,{label:"今日已结单",value:n.resolved_today,valueColor:"var(--success)",icon:"CircleCheckFilled",iconColor:"var(--success)"},null,8,["value"]),t(c,{label:"异常告警",value:n.alerts,valueColor:"var(--danger)",icon:"WarningFilled",iconColor:"var(--danger)"},null,8,["value"])]),s("div",V,[s("div",z,[e[1]||(e[1]=s("div",{class:"table-title"},"实时会话",-1)),t(_,{type:"primary",size:"small"},{default:r(()=>[...e[0]||(e[0]=[y("Demo 预览",-1)])]),_:1})]),x((p(),I(m,{data:d.value,style:{width:"100%"},"header-cell-style":{background:"var(--bg-tertiary)",color:"var(--text-secondary)",fontSize:"12px"},"cell-style":{color:"var(--text-primary)",fontSize:"13px"},"row-class-name":"monitor-table-row","element-loading-text":"正在加载会话数据..."},{default:r(()=>[t(o,{label:"会话ID",width:"80"},{default:r(({row:a})=>[s("span",B,i(a.id),1)]),_:1}),t(o,{label:"员工","min-width":"160"},{default:r(({row:a})=>[s("span",null,i(a.employee_name),1)]),_:1}),t(o,{label:"坐席",width:"100"},{default:r(({row:a})=>[s("span",null,i(a.assigned_agent_name),1)]),_:1}),t(o,{label:"持续时长",width:"100"},{default:r(({row:a})=>[s("span",null,i(w(a)),1)]),_:1}),t(o,{label:"紧急度",width:"80",align:"center"},{defau