| 1 |
- import{_ as F,r as f,c as T,o as j,m as q,a as J,b as h,d as g,e as I,f as u,w as c,g as l,h as m,t as i,F as W,i as $,j as K,n as Q}from"./index-af4a73a6.js";const X={class:"real-time-status"},Y={class:"rack-system-info"},Z={class:"system-summary"},tt={class:"update-time"},et={class:"racks-container"},st={class:"rack-card"},at={class:"rack-card-header"},ot={class:"rack-visualization"},nt={class:"rack-body-row"},lt={class:"rack-header"},rt={class:"ports-row"},ct=["onClick","title"],ut={class:"port-number"},it={__name:"RealTimeStatus",setup(dt){const _=f([]),N=f(""),p=f(!1),O=f(0),A=f(0),v=f(null),L=f(null),e={ERROR:"error",WAITING:"waiting",NORMAL:"normal",IDLE:"idle"},w=T(()=>_.value.reduce((s,t)=>s+t.ports.length,0)),S=T(()=>{const s=_.value.some(n=>n.ports.some(a=>a.status===e.ERROR)),t=_.value.some(n=>n.ports.some(a=>a.status===e.WAITING));return s?"red":t?"orange":"green"}),y=T(()=>{const s=_.value.some(a=>a.ports.some(o=>o.status===e.ERROR)),t=_.value.some(a=>a.ports.some(o=>o.status===e.WAITING)),n=_.value.every(a=>a.ports.every(o=>o.status===e.NORMAL));return s?"有错误":t?"部分等待":n?"全部正常":"部分空闲"}),C=s=>{const t=s.ports.some(o=>o.status===e.ERROR),n=s.ports.some(o=>o.status===e.WAITING),a=s.ports.every(o=>o.status===e.NORMAL);return t?"red":n?"orange":a?"green":"default"},k=s=>{const t=s.ports.filter(o=>o.status===e.ERROR).length,n=s.ports.filter(o=>o.status===e.WAITING).length,a=s.ports.filter(o=>o.status===e.NORMAL).length;return t>0?`${t}个错误`:n>0?`${n}个等待`:`${a}个正常`},D=s=>{if(!s)return"default";switch(s.status){case e.ERROR:return"red";case e.WAITING:return"orange";case e.NORMAL:return"green";case e.IDLE:return"default";default:return"default"}},E=s=>{if(!s)return"未知";switch(s.status){case e.ERROR:return"连接错误";case e.WAITING:return"等待连接";case e.NORMAL:return"连接正常";case e.IDLE:return"空闲";default:return"未知"}},G=()=>{const s=[];for(let t=1;t<=3;t++){const n=[];for(let a=1;a<=24;a++){const o=[e.ERROR,e.WAITING,e.NORMAL,e.IDLE],d=b(o,[.1,.2,.5,.2]);n.push({id:a,status:d,device:d===e.NORMAL?`设备-${t}-${Math.floor(Math.random()*1e3)}`:"",ip:d===e.NORMAL?`192.168.${t}.${Math.floor(Math.random()*254)+1}`:"",connectTime:d===e.NORMAL?new Date(Date.now()-Math.random()*864e5).toLocaleString():"",dataRate:d===e.NORMAL?Math.floor(Math.random()*1e3):0})}s.push({id:t,ports:n})}_.value=s,N.value=new Date().toLocaleString()},b=(s,t)=>{const n=t.reduce((o,M)=>o+M,0);let a=Math.random()*n;for(let o=0;o<t.length;o++)if(a-=t[o],a<=0)return s[o];return s[s.length-1]},P=(s,t)=>{O.value=s,A.value=t;const n=_.value.find(a=>a.id===s);v.value=n==null?void 0:n.ports.find(a=>a.id===t),p.value=!0},x=()=>{p.value=!1},B=()=>{p.value=!1},H=()=>{_.value.forEach(s=>{s.ports.forEach(t=>{if(Math.random()>.85){const n=[e.ERROR,e.WAITING,e.NORMAL,e.IDLE],a=[.1,.2,.5,.2];t.status=b(n,a),t.status===e.NORMAL?(t.device=`设备-${s.id}-${Math.floor(Math.random()*1e3)}`,t.ip=`192.168.${s.id}.${Math.floor(Math.random()*254)+1}`,t.connectTime=new Date().toLocaleString(),t.dataRate=Math.floor(Math.random()*1e3)):t.status!==e.WAITING&&(t.device="",t.ip="",t.connectTime="",t.dataRate=0)}t.status===e.NORMAL&&Math.random()>.5&&(t.dataRate=Math.floor(Math.random()*1e3))})}),N.value=new Date().toLocaleString()},U=()=>{L.value=setInterval(()=>{H()},1e4)};return j(()=>{G(),U(),q.success("实时状态页面已加载")}),J(()=>{L.value&&clearInterval(L.value)}),(s,t)=>{const n=h("a-tag"),a=h("a-col"),o=h("a-row"),M=h("a-card"),d=h("a-descriptions-item"),V=h("a-descriptions"),z=h("a-modal");return g(),I("div",X,[u(M,{title:"485连接多个配线架状态监控"},{default:c(()=>[l("div",Y,[l("div",Z,[u(n,{color:"blue"},{default:c(()=>[m("总配线架数: "+i(_.value.length),1)]),_:1}),u(n,{color:"blue"},{default:c(()=>[m("总端口数: "+i(w.value),1)]),_:1}),u(n,{color:S.value},{default:c(()=>[m("系统状态: "+i(y.value),1)]),_:1},8,["color"]),l("span",tt,"更新时间: "+i(N.value),1),t[1]||(t[1]=l("div",{class:"status-legend"},[l("div",{class:"legend-item"},[l("div",{class:"legend-color error"}),l("span",null,"连接错误")]),l("div",{class:"legend-item"},[l("div",{class:"legend-color waiting"}),l("span",null,"等待连接")]),l("div",{class:"legend-item"},[l("div",{class:"legend-color normal"}),l("span",null,"连接正常")]),l("div",{class:"legend-item"},[l("div",{class:"legend-color idle"}),l("span",null,"空闲")])],-1))])]),l("div",et,[u(o,{gutter:[24,24]},{default:c(()=>[(g(!0),I(W,null,$(_.value,r=>(g(),K(a,{key:r.id,xs:24,sm:24,md:12,lg:8},{default:c(()=>[l("div",st,[l("div",at,[l("h3",null,"配线架 "+i(r.id),1),u(n,{color:C(r)},{default:c(()=>[m(i(k(r)),1)]),_:2},1032,["color"])]),l("div",ot,[l("div",nt,[l("div",lt,i(r.id),1),l("div",rt,[(g(!0),I(W,null,$(r.ports,R=>(g(),I("div",{key:R.id,class:Q(["port",`port-status-${R.status}`]),onClick:_t=>P(r.id,R.id),title:`端口 ${R.id}: ${E(R)}`},[t[2]||(t[2]=l("div",{class:"port-icon"},[l("div",{class:"port-pins"})],-1)),l("span",ut,i(R.id),1)],10,ct))),128))])])])])]),_:2},1024))),128))]),_:1})])]),_:1}),u(z,{open:p.value,"onUpdate:open":t[0]||(t[0]=r=>p.value=r),title:`配线架 ${O.value} - 端口 ${A.value} 详情`,onOk:x,onCancel:B},{default:c(()=>[u(V,{column:"1",bordered:""},{default:c(()=>[u(d,{label:"配线架号"},{default:c(()=>[m(i(O.value),1)]),_:1}),u(d,{label:"端口号"},{default:c(()=>[m(i(A.value),1)]),_:1}),u(d,{label:"连接状态"},{default:c(()=>[u(n,{color:D(v.value)},{default:c(()=>[m(i(E(v.value)),1)]),_:1},8,["color"])]),_:1}),u(d,{label:"连接设备"},{default:c(()=>{var r;return[m(i(((r=v.value)==null?void 0:r.device)||"无"),1)]}),_:1}),u(d,{label:"IP地址"},{default:c(()=>{var r;return[m(i(((r=v.value)==null?void 0:r.ip)||"无"),1)]}),_:1}),u(d,{label:"连接时间"},{default:c(()=>{var r;return[m(i(((r=v.value)==null?void 0:r.connectTime)||"无"),1)]}),_:1}),u(d,{label:"数据速率"},{default:c(()=>{var r;return[m(i(((r=v.value)==null?void 0:r.dataRate)||"0")+" Mbps",1)]}),_:1})]),_:1})]),_:1},8,["open","title"])])}}},vt=F(it,[["__scopeId","data-v-f95c00b7"]]);export{vt as default};
|