import{C as e,D as t,G as n,H as r,K as i,Q as a,U as o,V as s,W as c,X as l,it as u,k as d,ot as f,q as p,s as m,st as h,tt as g,u as _,ut as v,z as y}from"./vue-router-DiegbtGD.js";import{t as b}from"./AppLayout-r9BI5ihT.js";import{t as x}from"./helpers-B5dMFDUW.js";var S=p({__name:`Connections`,setup(p){let S=f(!1),C=f(!1),w=f([]),T=f([]),E=f({clientid:``,event:``}),D=f({current:1,pageSize:20,total:0}),O=f(!1),k=f(null),A=[{title:`客户端ID`,dataIndex:`id`,key:`id`,width:200,ellipsis:!0},{title:`用户名`,dataIndex:`username`,key:`username`,width:120},{title:`IP地址`,dataIndex:`ip`,key:`ip`,width:140},{title:`连接时间`,key:`connectedAt`,width:160},{title:`操作`,key:`actions`,width:80}],j=[{title:`客户端ID`,dataIndex:`clientid`,key:`clientid`,width:180,ellipsis:!0},{title:`用户名`,dataIndex:`username`,key:`username`,width:120},{title:`事件`,key:`event`,width:80},{title:`客户端地址`,dataIndex:`peername`,key:`peername`,width:150},{title:`时间`,key:`timestamp`,width:160},{title:`节点`,dataIndex:`node`,key:`node`,width:180,ellipsis:!0},{title:`操作`,key:`actions`,width:80}],M=async()=>{C.value=!0;try{let e=await m.getConnectedClients();e.success&&(T.value=e.data||[])}catch{d.error(`加载在线客户端失败`)}finally{C.value=!1}},N=async e=>{try{(await m.disconnectClient(e)).success&&(d.success(`客户端已断开`),M())}catch{d.error(`断开客户端失败`)}},P=async(e=1)=>{S.value=!0;try{let t={page:e,limit:D.value.pageSize};E.value.clientid&&(t.clientid=E.value.clientid),E.value.event&&(t.event=E.value.event);let n=await _.getConnections(t);n.success?(w.value=n.data||[],D.value.total=n.pagination?.total||0):d.error(n.message||`加载连接列表失败`)}catch(e){console.error(`加载连接列表失败:`,e);let t=e?.message||e?.error||`加载连接列表失败,请稍后重试`;d.error(t),w.value=[],D.value.total=0}finally{S.value=!1}},F=e=>{D.value.current=e,P(e)},I=e=>{k.value=e,O.value=!0};return l(()=>{M(),P()}),(l,d)=>{let f=g(`a-button`),p=g(`a-space`),m=g(`a-popconfirm`),_=g(`a-table`),L=g(`a-card`),R=g(`a-input-search`),z=g(`a-select-option`),B=g(`a-select`),V=g(`a-tag`),H=g(`a-descriptions-item`),U=g(`a-descriptions`),W=g(`a-modal`);return a(),r(b,null,{default:u(()=>[s(`div`,null,[i(L,{title:`在线客户端`,style:{"margin-bottom":`16px`}},{extra:u(()=>[i(p,null,{default:u(()=>[i(f,{onClick:M},{default:u(()=>[i(h(e)),d[3]||=n(`刷新`,-1)]),_:1})]),_:1})]),default:u(()=>[i(_,{dataSource:T.value,columns:A,loading:C.value,pagination:!1,"row-key":`id`,size:`small`},{bodyCell:u(({column:e,record:t})=>[e.key===`connectedAt`?(a(),c(y,{key:0},[n(v(h(x)(t.connectedAt)),1)],64)):o(``,!0),e.key===`actions`?(a(),r(m,{key:1,title:`确定断开此客户端?`,onConfirm:e=>N(t.id)},{default:u(()=>[i(f,{type:`link`,danger:``,size:`small`},{default:u(()=>[...d[4]||=[n(`断开`,-1)]]),_:1})]),_:1},8,[`onConfirm`])):o(``,!0)]),_:1},8,[`dataSource`,`loading`])]),_:1}),i(L,{title:`连接记录`},{extra:u(()=>[i(p,null,{default:u(()=>[i(R,{value:E.value.clientid,"onUpdate:value":d[0]||=e=>E.value.clientid=e,placeholder:`搜索客户端ID`,style:{width:`200px`},onSearch:P},null,8,[`value`]),i(B,{value:E.value.event,"onUpdate:value":d[1]||=e=>E.value.event=e,style:{width:`140px`},placeholder:`事件类型`,"allow-clear":``,onChange:P},{default:u(()=>[i(z,{value:`client.connected`},{default:u(()=>[...d[5]||=[n(`连接`,-1)]]),_:1}),i(z,{value:`client.disconnected`},{default:u(()=>[...d[6]||=[n(`断开`,-1)]]),_:1})]),_:1},8,[`value`]),i(f,{onClick:P},{default:u(()=>[i(h(e)),d[7]||=n(`刷新`,-1)]),_:1})]),_:1})]),default:u(()=>[i(_,{dataSource:w.value,columns:j,loading:S.value,pagination:{current:D.value.current,pageSize:D.value.pageSize,total:D.value.total,showSizeChanger:!0,onChange:F},"row-key":`id`,scroll:{x:1200}},{bodyCell:u(({column:e,record:s})=>[e.key===`event`?(a(),r(V,{key:0,color:s.event===`client.connected`?`green`:`red`},{default:u(()=>[n(v(s.event===`client.connected`?`连接`:`断开`),1)]),_:2},1032,[`color`])):o(``,!0),e.key===`timestamp`?(a(),c(y,{key:1},[n(v(h(x)(s.timestamp)),1)],64)):o(``,!0),e.key===`actions`?(a(),r(f,{key:2,type:`link`,size:`small`,onClick:e=>I(s)},{default:u(()=>[i(h(t)),d[8]||=n(`详情`,-1)]),_:1},8,[`onClick`])):o(``,!0)]),_:1},8,[`dataSource`,`loading`,`pagination`])]),_:1}),i(W,{open:O.value,"onUpdate:open":d[2]||=e=>O.value=e,title:`连接详情`,footer:null,width:`600px`},{default:u(()=>[k.value?(a(),r(U,{key:0,bordered:``,column:1,size:`small`},{default:u(()=>[i(H,{label:`客户端ID`},{default:u(()=>[n(v(k.value.clientid),1)]),_:1}),i(H,{label:`用户名`},{default:u(()=>[n(v(k.value.username||`-`),1)]),_:1}),i(H,{label:`事件`},{default:u(()=>[n(v(k.value.event),1)]),_:1}),i(H,{label:`客户端地址`},{default:u(()=>[n(v(k.value.peername),1)]),_:1}),i(H,{label:`服务端地址`},{default:u(()=>[n(v(k.value.sockname),1)]),_:1}),i(H,{label:`协议`},{default:u(()=>[n(v(k.value.proto_name)+` v`+v(k.value.proto_ver),1)]),_:1}),i(H,{label:`心跳间隔`},{default:u(()=>[n(v(k.value.keepalive)+`秒`,1)]),_:1}),i(H,{label:`节点`},{default:u(()=>[n(v(k.value.node),1)]),_:1}),i(H,{label:`断开原因`},{default:u(()=>[n(v(k.value.reason||`-`),1)]),_:1})]),_:1})):o(``,!0)]),_:1},8,[`open`])])]),_:1})}}});export{S as default};