Files
wecom_it_smart_desk/frontend-admin/dist.bak/assets/TerminalSecurity-B9pkfBOI.js
T

2 lines
18 KiB
JavaScript
Raw Normal View History

import{d as ye,o as ke,b as r,c as m,e as t,f as s,w as i,t as n,h as f,T as he,U as be,W as Ce,j as q,ab as X,V as F,n as w,r as g,v as we,S as R,i as y,a2 as Ae,g as c,a3 as G}from"./index-CcYCuTIa.js";import{S as L}from"./StatCard-xjbOwrQZ.js";import{y as j,z as Q,A as De,B as Ne}from"./admin-i6XhhI1Z.js";import{_ as xe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./index-CPDTx6RU.js";const ze={class:"terminal-security-page"},Ie={key:0,class:"connection-warning"},Te={class:"stats-grid"},Ee={class:"table-wrapper"},Be={class:"table-header-row"},Ge={class:"tab-group"},Le={class:"search-bar"},Se={class:"terminal-name"},We={class:"os-text"},Pe={key:1,class:"text-muted"},He={class:"time-text"},Me={class:"terminal-name"},Ve={class:"os-text"},Fe={class:"os-text"},Re={class:"terminal-name"},Ue={key:0,class:"virus-result-tags"},Oe={key:1,class:"text-muted"},Ze={class:"pagination-wrapper"},$e={key:0,style:{"text-align":"center",padding:"40px"}},Ke={key:1,class:"detail-content"},qe={class:"detail-section"},Xe={class:"detail-grid"},je={class:"detail-item"},Qe={class:"detail-value"},Je={class:"detail-item"},Ye={class:"detail-value"},et={key:0,class:"detail-item"},tt={class:"detail-value mono"},at={class:"detail-item"},lt={class:"detail-value"},st={class:"detail-item"},it={class:"detail-item"},nt={class:"detail-value"},ot={class:"detail-item"},rt={class:"detail-value"},ut={key:1,class:"detail-item"},dt={class:"detail-value"},ct={key:0,class:"detail-section"},_t={class:"detail-grid"},vt={key:0,class:"detail-item"},mt={class:"detail-value"},pt={key:1,class:"detail-item"},ft={class:"detail-value"},gt={key:2,class:"detail-item"},yt={class:"detail-value"},kt={class:"detail-section"},ht={class:"security-status-grid"},bt={class:"security-value"},Ct={class:"security-value"},wt={class:"security-value"},At={class:"detail-section"},Dt={class:"action-buttons"},Nt=ye({__name:"TerminalSecurity",setup(xt){const J=[{key:"terminals",label:"全部终端"},{key:"leaks",label:"高危漏洞"},{key:"virus",label:"病毒事件"}],b=g("terminals"),E=g(!1),A=g(""),u=we({total_terminals:0,online_terminals:0,high_risk_terminals:0,virus_events_today:0,isolated_terminals:0}),C=g([]),z=g([]),I=g([]),T=g(1),B=g(20),D=g(0),h=g(""),S=g(!1),W=g(!1),o=g(null),P={background:"var(--bg-tertiary)",color:"var(--text-secondary)",fontSize:"12px"},H={color:"var(--text-primary)",fontSize:"13px"},Y=R(()=>{if(!h.value)return C.value;const l=h.value.toLowerCase();return C.value.filter(e=>e.computer_name.toLowerCase().includes(l)||e.local_ip.toLowerCase().includes(l))}),ee=R(()=>{if(!h.value)return z.value;const l=h.value.toLowerCase();return z.value.filter(e=>e.hostname.toLowerCase().includes(l)||e.ip_addr.toLowerCase().includes(l))}),te=R(()=>{if(!h.value)return I.value;const l=h.value.toLowerCase();return I.value.filter(e=>e.computer_name.toLowerCase().includes(l)||e.local_ip.toLowerCase().includes(l))});ke(()=>{N(),ae()});async function ae(){try{const e=(await j({page:1,per_page:1})).data.data;e.error||(u.high_risk_terminals=e.risk_client||0,e.all_client&&(u.total_terminals=e.all_client));const v=(await Q({page:1,per_page:200})).data.data;if(!v.error){const _=v.items||[];u.virus_events_today=_.reduce((x,d)=>{var p;return x+(((p=d.result)==null?void 0:p.fail)||0)},0)}}catch{}}async function N(){E.value=!0,A.value="";try{b.value==="terminals"?await le():b.value==="leaks"?await se():b.value==="virus"&&await ie()}finally{E.value=!1}}async function le(){try{const e=(await De({page:T.value,per_page:B.value})).data.data;if(e.error){A.value=e.error,U();return}C.value=e.items||[],D.value=e.total||0,u.total_terminals=e.total||C.value.length;const k=C.value.filter(_=>_.is_online).length,v=C.value.length||1;u.online_terminals=Math.round(k/v*u.total_terminals)}catch{A.value="无法连接火绒API,请检查集成配置",U()}}async function se(){try{const e=(await j({page:T.value,per_page:B.value})).data.data;if(e.error){A.value=e.error,O();return}z.value=e.items||[],D.value=e.risk_client||e.total||z.value.length,u.high_risk_terminals=e.risk_client||0,e.all_client&&(u.total_termi