Files
Simon bea288e414 feat: 2026-07-11 全量更新 - 代办集成+会议室预定+知识迭代修复+UI统一+Bug修复
== 已部署上线 (9项) ==
- 代办事项真实数据源集成 (企微审批API 8bug修复链)
- H5/坐席端 Logo样式统一+绿色背景
- 视频引导页修复 (localStorage key v2)
- 坐席端 v9 Vue版本修复 (ElMessage._context)
- 截图按钮 v10 修复 (getDisplayMedia user gesture)
- 扫码样式恢复+H5扫码登录跳转修复
- H5截图快捷键提示

== 代码完成待部署 (3项) ==
- 知识迭代3Bug修复 (#8 POST端点/#7 MERGE幂等/#6 过期检查)
- 会议室预定-小鱼易联终端 (40文件, 40/40测试通过)
- IT资产升级审批推送 (asset_service.py)

== 需求文档 (2项) ==
- 坐席端AI辅助消息框-PRD (4项新功能确认)
- 坐席端布局优化建议 v2.0 (7天计划)

== 新增文档 ==
- 日报-2026-07-11.md
- 知识迭代Bug修复报告-20260711.md
- 会议室预定-部署指南.md
- CHANGELOG.md 更新

== 测试 ==
- test_todo_integration.py: 40/40
- test_meetingroom.py: 40/40
- test_bugfix_ki_suggestions.py: 21/21
2026-07-11 23:13:10 +08:00

2 lines
5.1 KiB
JavaScript

import{d as k,o as D,b as v,c as y,e as a,f as t,w as r,U as S,V as I,y as z,r as g,j as p,n as d,t as l,u as A}from"./index-BYp6OBwf.js";import{S as m}from"./StatCard-D9ZLdGBA.js";import{a as R}from"./admin-QG1MRyaa.js";import{_ as P}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./index-CMW9Tl_L.js";const V={class:"dashboard-page"},F={class:"stats-grid"},M={class:"two-column"},N={class:"table-wrapper"},B={class:"table-header-row"},L={class:"table-wrapper"},j={class:"health-list"},G={class:"health-name"},O=k({__name:"Dashboard",setup(Q){const h=A(),n=z({online_agents:0,today_conversations:0,avg_response_time:"—",ai_hit_rate:"—",pending_reviews:0,system_alerts:[],integrations_health:[]}),b=g(!1),_=g([]),c=g([]);D(async()=>{b.value=!0;try{const s=await R();Object.assign(n,s),f(s.system_alerts||[]),T(s.integrations_health||[])}catch(s){console.error("加载仪表盘数据失败:",s),n.online_agents=2,n.today_conversations=47,n.avg_response_time="1.8s",n.ai_hit_rate="68%",n.pending_reviews=3,_.value=[{type:"快速回复",tagType:"primary",content:"VPN连接失败排查话术",submitter:"张伟",time:"10分钟前",actionText:"审核",route:"/quick-replies"},{type:"知识推荐",tagType:"warning",content:"打印机脱机问题(同类18次)",submitter:"系统",time:"1小时前",actionText:"处理",route:"/dashboard"},{type:"异常告警",tagType:"danger",content:"坐席王丽会话超时未响应",submitter:"系统",time:"2小时前",actionText:"查看",route:"/monitor"}],c.value=[{name:"Dify AI 引擎",statusType:"success",statusText:"正常"},{name:"RAGFlow 知识库",statusType:"success",statusText:"正常"},{name:"Redis 缓存",statusType:"success",statusText:"正常"},{name:"PostgreSQL",statusType:"success",statusText:"正常"},{name:"WebSocket 服务",statusType:"warning",statusText:"2连接抖动"}]}finally{b.value=!1}});function f(s){_.value=s.map(e=>({type:e.type,tagType:e.severity==="danger"?"danger":e.severity==="warning"?"warning":"primary",content:e.content,submitter:e.submitter||"系统",time:e.time,actionText:e.severity==="danger"?"查看":"处理",route:"/dashboard"}))}function T(s){const e={connected:"success",partial:"warning",disconnected:"info",pending:"info"},u={connected:"正常",partial:"部分异常",disconnected:"未连接",pending:"待确认"};c.value=s.map(o=>({name:o.system,statusType:e[o.status]||"info",statusText:u[o.status]||o.status})),c.value.length===0&&(c.value=[{name:"Dify AI 引擎",statusType:"success",statusText:"正常"},{name:"RAGFlow 知识库",statusType:"success",statusText:"正常"},{name:"Redis 缓存",statusType:"success",statusText:"正常"},{name:"PostgreSQL",statusType:"success",statusText:"正常"},{name:"WebSocket 服务",statusType:"warning",statusText:"2连接抖动"}])}function w(s){h.push(s.route)}return(s,e)=>{const u=p("el-tag"),o=p("el-table-column"),x=p("el-button"),C=p("el-table");return v(),y("div",V,[e[2]||(e[2]=a("div",{class:"page-title"},"运营总览",-1)),e[3]||(e[3]=a("div",{class:"page-desc"},"实时监控服务台运行状态,关键指标一目了然",-1)),a("div",F,[t(m,{label:"在线坐席",value:n.online_agents,valueColor:"var(--success)",icon:"UserFilled",iconColor:"var(--success)",trend:"运行正常",trendDirection:"up"},null,8,["value"]),t(m,{label:"今日会话",value:n.today_conversations,valueColor:"var(--accent)",icon:"ChatDotRound",iconColor:"var(--accent)",subtitle:"较昨日 +12%",trendDirection:"up"},null,8,["value"]),t(m,{label:"平均响应时间",valueColor:"var(--warning)",icon:"Timer",iconColor:"var(--warning)",trend:"较昨日改善",trendDirection:"down"},{value:r(()=>[d(l(n.avg_response_time||"—"),1)]),_:1}),t(m,{label:"AI 命中率",value:n.ai_hit_rate||"—",valueColor:"#8b5cf6",icon:"MagicStick",iconColor:"#8b5cf6",trend:"本周 +5%",trendDirection:"up"},null,8,["value"])]),a("div",M,[a("div",N,[a("div",B,[e[0]||(e[0]=a("div",{class:"table-title"},"待处理事项",-1)),t(u,{type:"warning",size:"small"},{default:r(()=>[d(l(n.pending_reviews||0)+" 项待审 ",1)]),_:1})]),t(C,{data:_.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":"dashboard-table-row"},{default:r(()=>[t(o,{label:"类型",width:"100"},{default:r(({row:i})=>[t(u,{type:i.tagType,size:"small",effect:"plain"},{default:r(()=>[d(l(i.type),1)]),_:2},1032,["type"])]),_:1}),t(o,{label:"内容",prop:"content","min-width":"200"}),t(o,{label:"提交人",prop:"submitter",width:"80"}),t(o,{label:"时间",prop:"time",width:"100"}),t(o,{label:"操作",width:"80"},{default:r(({row:i})=>[t(x,{size:"small",text:"",type:"primary",onClick:U=>w(i)},{default:r(()=>[d(l(i.actionText),1)]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])]),a("div",L,[e[1]||(e[1]=a("div",{class:"table-header-row"},[a("div",{class:"table-title"},"系统健康")],-1)),a("div",j,[(v(!0),y(S,null,I(c.value,i=>(v(),y("div",{key:i.name,class:"health-item"},[a("span",G,l(i.name),1),t(u,{type:i.statusType,size:"small",effect:"dark"},{default:r(()=>[d(l(i.statusText),1)]),_:2},1032,["type"])]))),128))])])])])}}}),J=P(O,[["__scopeId","data-v-5d2e4267"]]);export{J as default};