| 1 |
- import{f as l,A as Y,_ as Z,r as C,c as T,o as ee,a as te,b as _,d as p,e as b,g as a,h as ae,i as r,j as V,R as le,k as d,t as o,l as E,m as w,F as ne,p as oe,n as se}from"./index-29b7bbe1.js";var ue={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0060.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z"}}]},name:"inbox",theme:"outlined"};const ce=ue;function z(f){for(var s=1;s<arguments.length;s++){var c=arguments[s]!=null?Object(arguments[s]):{},u=Object.keys(c);typeof Object.getOwnPropertySymbols=="function"&&(u=u.concat(Object.getOwnPropertySymbols(c).filter(function(i){return Object.getOwnPropertyDescriptor(c,i).enumerable}))),u.forEach(function(i){re(f,i,c[i])})}return f}function re(f,s,c){return s in f?Object.defineProperty(f,s,{value:c,enumerable:!0,configurable:!0,writable:!0}):f[s]=c,f}var A=function(s,c){var u=z({},s,c.attrs);return l(Y,z({},u,{icon:ce}),null)};A.displayName="InboxOutlined";A.inheritAttrs=!1;const ie=A;const de={class:"jumper-status"},_e={class:"control-bar"},pe={class:"control-item"},ve={class:"control-item"},fe={class:"control-item"},me={class:"control-hint"},Ne={key:0,class:"control-item stats"},Ce={class:"port-grid"},be=["onClick"],Le={class:"port-id"},Oe={class:"port-status-tag"},ge={key:0,class:"port-uid"},Ee={key:1,class:"port-uid muted"},Ie={key:2,class:"port-uid expected"},he={key:3,class:"port-alarm"},ye={__name:"JumperStatus",setup(f){const s=C(!1),c=C(!0),u=C(null),i=C(null),L=C({}),y=C(!1),v=C(null),I=C(null),j=T(()=>{var t;if(!((t=i.value)!=null&&t.ports))return[];const e=i.value.ports;return Object.entries(e).map(([m,N])=>({port_id:Number(m),status:N.status||"UNKNOWN",jumper_uid:N.jumper_uid||null,expected_uid:N.expected_uid||null,alarm_count:N.alarm_count||0})).sort((m,N)=>m.port_id-N.port_id)}),$=T(()=>Object.keys(L.value).map(e=>{var t;return{value:e,label:`${e} (地址 ${((t=L.value[e])==null?void 0:t.address)??"?"})`}})),h=T(()=>{const e={connected:0,disconnected:0,illegalConnect:0,illegalDisconnect:0,unknown:0};for(const t of j.value)t.status==="CONNECTED"?e.connected++:t.status==="DISCONNECTED"?e.disconnected++:t.status==="ILLEGAL_CONNECT"||t.status==="ILLEGAL"?e.illegalConnect++:t.status==="ILLEGAL_DISCONNECT"?e.illegalDisconnect++:e.unknown++;return e});function P(e){return{CONNECTED:"已连接",DISCONNECTED:"空闲",ILLEGAL_CONNECT:"非法插入",ILLEGAL:"非法插入",ILLEGAL_DISCONNECT:"非法拔出",UNKNOWN:"未知"}[e]||e}function B(e){return{CONNECTED:"green",DISCONNECTED:"default",ILLEGAL_CONNECT:"red",ILLEGAL:"red",ILLEGAL_DISCONNECT:"blue",UNKNOWN:"default"}[e]||"default"}function H(e){return{"port-connected":e==="CONNECTED","port-disconnected":e==="DISCONNECTED","port-illegal":e==="ILLEGAL_CONNECT"||e==="ILLEGAL","port-illegal-disc":e==="ILLEGAL_DISCONNECT","port-unknown":e==="UNKNOWN"||!e}}async function D(){var e;s.value=!0;try{const t=await ae.panel.getStatus();if((e=t.data)!=null&&e.success){if(L.value=t.data.panels||{},!u.value||!L.value[u.value]){const m=Object.keys(L.value)[0];m&&(u.value=m)}i.value=L.value[u.value]||null}}catch(t){console.error("加载面板状态失败:",t)}finally{s.value=!1}}async function R(){await D()}function W(e){u.value=e,i.value=L.value[e]||null}function J(e){v.value=e,y.value=!0}function F(e){e?G():x()}function G(){x(),I.value=setInterval(D,3e3)}function x(){I.value&&(clearInterval(I.value),I.value=null)}return ee(async()=>{await D(),c.value&&G()}),te(x),(e,t)=>{var U;const m=_("a-select"),N=_("a-button"),K=_("a-switch"),O=_("a-tag"),k=_("a-card"),S=_("a-col"),M=_("a-empty"),q=_("a-row"),g=_("a-descriptions-item"),Q=_("a-descriptions"),X=_("a-modal");return p(),b("div",de,[l(q,{gutter:[16,16]},{default:a(()=>[l(S,{span:24},{default:a(()=>[l(k,{bordered:!1},{default:a(()=>[r("div",_e,[r("div",pe,[t[3]||(t[3]=r("span",{class:"control-label"},"选择面板:",-1)),l(m,{value:u.value,"onUpdate:value":t[0]||(t[0]=n=>u.value=n),style:{width:"240px"},placeholder:"请选择面板",options:$.value,onChange:W},null,8,["value","options"])]),r("div",ve,[l(N,{type:"primary",onClick:R,loading:s.value,disabled:!u.value},{icon:a(()=>[l(V(le))]),default:a(()=>[t[4]||(t[4]=d(" 刷新 ",-1))]),_:1},8,["loading","disabled"])]),r("div",fe,[t[5]||(t[5]=r("span",{class:"control-label"},"自动刷新:",-1)),l(K,{checked:c.value,"onUpdate:checked":t[1]||(t[1]=n=>c.value=n),onChange:F},null,8,["checked"]),r("span",me,o(c.value?"3s":"关闭"),1)]),i.value?(p(),b("div",Ne,[l(O,{color:"green"},{default:a(()=>[d("已连 "+o(h.value.connected),1)]),_:1}),l(O,{color:"orange"},{default:a(()=>[d("空闲 "+o(h.value.disconnected),1)]),_:1}),l(O,{color:"red"},{default:a(()=>[d("非法插 "+o(h.value.illegalConnect),1)]),_:1}),l(O,{color:"blue"},{default:a(()=>[d("非法拔 "+o(h.value.illegalDisconnect),1)]),_:1})])):E("",!0)])]),_:1})]),_:1}),i.value?(p(),w(S,{key:0,span:24},{default:a(()=>[l(k,{bordered:!1},{title:a(()=>[r("span",null,"面板 "+o(u.value)+"(地址 "+o(i.value.address)+")24 路跳线状态",1)]),default:a(()=>[r("div",Ce,[(p(!0),b(ne,null,oe(j.value,n=>(p(),b("div",{key:n.port_id,class:se(["port-cell",H(n.status)]),onClick:De=>J(n)},[r("div",Le,"P"+o(n.port_id),1),r("div",Oe,o(P(n.status)),1),n.jumper_uid?(p(),b("div",ge,[t[6]||(t[6]=r("span",{class:"uid-label"},"实际:",-1)),d(" "+o(n.jumper_uid),1)])):(p(),b("div",Ee,"无卡")),n.expected_uid?(p(),b("div",Ie,[t[7]||(t[7]=r("span",{class:"uid-label"},"期望:",-1)),d(" "+o(n.expected_uid),1)])):E("",!0),n.alarm_count>0?(p(),b("div",he," 告警 "+o(n.alarm_count),1)):E("",!0)],10,be))),128))])]),_:1})]),_:1})):s.value?E("",!0):(p(),w(S,{key:1,span:24},{default:a(()=>[l(k,{bordered:!1},{default:a(()=>[l(M,{description:"请选择面板查看 24 路跳线状态"},{image:a(()=>[l(V(ie),{style:{"font-size":"48px",color:"#999"}})]),_:1})]),_:1})]),_:1}))]),_:1}),l(X,{open:y.value,"onUpdate:open":t[2]||(t[2]=n=>y.value=n),title:`端口详情 P${(U=v.value)==null?void 0:U.port_id}`,footer:null,width:"480px"},{default:a(()=>[v.value?(p(),w(Q,{key:0,column:1,bordered:"",size:"small"},{default:a(()=>[l(g,{label:"端口号"},{default:a(()=>[d(o(v.value.port_id),1)]),_:1}),l(g,{label:"状态"},{default:a(()=>[l(O,{color:B(v.value.status)},{default:a(()=>[d(o(P(v.value.status)),1)]),_:1},8,["color"])]),_:1}),l(g,{label:"实际跳线 UID"},{default:a(()=>[d(o(v.value.jumper_uid||"未读到"),1)]),_:1}),l(g,{label:"期望跳线 UID"},{default:a(()=>[d(o(v.value.expected_uid||"(未设置)"),1)]),_:1}),l(g,{label:"累计告警次数"},{default:a(()=>[l(O,{color:v.value.alarm_count>0?"red":"default"},{default:a(()=>[d(o(v.value.alarm_count||0),1)]),_:1},8,["color"])]),_:1})]),_:1})):E("",!0)]),_:1},8,["open","title"])])}}},ke=Z(ye,[["__scopeId","data-v-b63167d1"]]);export{ke as default};
|