HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/js/page6.js
import{cW as ot,d2 as rt,dd as nt,d0 as it,dc as lt,ds as ct,dl as dt,cX as ut,cV as ft,_ as C,an as O,f as H,b as pt}from"./utils-lib.js?v=1777008528";import{c as k,r as x,a7 as vt,w as A,v as B,a8 as q,x as m,y,n as mt,A as s,bl as M,L as G,g as E,e as _,F as W,aT as F,B as w,z as g,C as D,aV as ht,O as T,P as j,Y as gt,Z as xt,bE as bt,bF as _t,R as P,o as yt,D as U,U as wt,ad as kt,ab as Ct,H as St,a5 as Dt,M as zt}from"./base-lib.js?v=1777008528";import{a as $t}from"./map.js?v=1777008528";import{Q as Rt,R as Lt,S as Y,T as At,U as Et,V as Tt}from"./index432.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";const X={中国:[116.4551,40.2539],中国香港:[114.727669,22.335],中国台湾:[120.0254,23.5986],日本:[138.252924,36.204824],韩国:[127.766922,35.907757],印度:[78.96288,20.593684],印度尼西亚:[106.515414,-6.10304],泰国:[100.992541,15.870032],越南:[108.277199,14.058324],马来西亚:[101.975766,4.210484],菲律宾:[121.774017,12.879721],新加坡:[103.413384,1.910925],缅甸:[95.956,21.913],柬埔寨:[104.990963,12.565679],老挝:[102.4955,19.8563],孟加拉国:[90.356331,23.684994],尼泊尔:[84.124,28.3949],巴基斯坦:[69.34511599999999,30.375321],阿富汗:[67.709953,33.93911],伊朗:[53.688046,32.427908],伊拉克:[43.679291,33.223191],以色列:[34.851612,31.046051],沙特阿拉伯:[45.079162,23.885942],阿联酋:[53.847818,23.424076],土耳其:[35.243322,38.963745],哈萨克斯坦:[66.923684,48.019573],乌兹别克斯坦:[63.5852,41.3775],吉尔吉斯斯坦:[74.7661,41.2044],塔吉克斯坦:[71.2761,38.861],土库曼斯坦:[59.5563,38.9697],蒙古:[103.8467,46.8625],朝鲜:[127.5101,40.3399],斯里兰卡:[80.7718,7.8731],马尔代夫:[73.2207,3.2028],不丹:[90.4336,27.5142],文莱:[114.7277,4.5353],东帝汶:[125.7275,-8.8742],约旦:[36.2384,30.5852],黎巴嫩:[35.8623,33.8547],叙利亚:[38.9968,34.8021],也门:[48.5164,15.5527],阿曼:[55.9233,21.5126],卡塔尔:[51.1839,25.3548],巴林:[50.5577,26.0667],科威特:[47.4818,29.3117],英国:[-2.5830348,54.4598409],法国:[2.8719426,46.8222422],德国:[10.451526,51.165691],意大利:[12.56738,41.87194],西班牙:[-2.9366964,40.3438963],葡萄牙:[-8.7440694,39.9251454],荷兰:[5.0752777,52.358465],比利时:[4.469936,50.503887],瑞士:[8.227511999999999,46.818188],奥地利:[14.550072,47.516231],瑞典:[18.643501,60.12816100000001],挪威:[8.468945999999999,60.47202399999999],丹麦:[10.2768332,56.1773879],芬兰:[25.748151,61.92410999999999],波兰:[19.145136,51.919438],捷克:[15.472962,49.81749199999999],匈牙利:[19.503304,47.162494],罗马尼亚:[24.96676,45.943161],保加利亚:[25.48583,42.733883],希腊:[21.824312,39.074208],塞尔维亚:[20.9023,44.0165],克罗地亚:[15.2,45.1],斯洛文尼亚:[14.9955,46.1512],斯洛伐克:[19.699,48.669],波黑:[17.6791,43.9159],阿尔巴尼亚:[20.168331,41.153332],北马其顿:[21.7453,41.6086],黑山:[19.3744,42.7087],立陶宛:[23.881275,55.169438],拉脱维亚:[24.6032,56.8796],爱沙尼亚:[25.0136,58.5953],白俄罗斯:[27.953389,53.709807],乌克兰:[31.16558,48.379433],摩尔多瓦:[28.3699,47.4116],俄罗斯:[105.318756,61.52401],爱尔兰:[-8.24389,53.41291],冰岛:[-19.0208,64.9631],卢森堡:[6.1296,49.8153],马耳他:[14.3754,35.9375],塞浦路斯:[33.4299,35.1264],安道尔:[1.5218,42.5063],列支敦士登:[9.5535,47.166],摩纳哥:[7.4246,43.7384],圣马力诺:[12.4578,43.9424],梵蒂冈:[12.4534,41.9029],美国:[-95.712891,37.09024],加拿大:[-106.346771,56.130366],墨西哥:[-102.552784,23.634501],古巴:[-77.781167,21.521757],牙买加:[-77.2975,18.1096],海地:[-72.2852,18.9712],多米尼加:[-70.1627,18.7357],波多黎各:[-66.5901,18.2208],巴哈马:[-77.3963,25.0343],危地马拉:[-90.5069,15.7835],伯利兹:[-88.4976,17.1899],洪都拉斯:[-86.2419,15.2],萨尔瓦多:[-88.8965,13.7942],尼加拉瓜:[-85.2072,12.8654],哥斯达黎加:[-83.7534,9.7489],巴拿马:[-80.7821,8.538],巴西:[-51.92528,-14.235004],阿根廷:[-63.61667199999999,-38.416097],智利:[-71.542969,-35.675147],秘鲁:[-75.015152,-9.189967],哥伦比亚:[-74.297333,4.570868],委内瑞拉:[-66.5897,6.4238],厄瓜多尔:[-78.1834,-1.8312],玻利维亚:[-63.5887,-16.2902],巴拉圭:[-58.4438,-23.4425],乌拉圭:[-55.7658,-32.5228],圭亚那:[-58.9302,4.8604],苏里南:[-56.0278,3.9193],埃及:[30.802498,26.820553],南非:[22.937506,-30.559482],尼日利亚:[8.675277,9.081999],肯尼亚:[37.906193,-.023559],埃塞俄比亚:[40.489673,9.145000000000001],坦桑尼亚:[34.8888,-6.369],乌干达:[32.2903,1.3733],阿尔及利亚:[1.659626,28.033886],摩洛哥:[-7.0926,31.7917],利比亚:[17.2283,26.3351],突尼斯:[9.5375,33.8869],苏丹:[30.2176,12.8628],加纳:[-1.0232,7.9465],喀麦隆:[12.3547,7.3697],科特迪瓦:[-5.5471,7.54],尼日尔:[8.0817,17.6078],布基纳法索:[-1.5616,12.2383],马里:[-3.9962,17.5707],塞内加尔:[-14.4524,14.4974],几内亚:[-9.6966,9.9456],贝宁:[2.3158,9.3077],多哥:[.8248,8.6195],塞拉利昂:[-11.7799,8.4606],利比里亚:[-9.4295,6.4281],毛里塔尼亚:[-10.9408,21.0079],冈比亚:[-15.3101,13.4432],几内亚比绍:[-15.1804,11.8037],佛得角:[-23.6052,15.1201],乍得:[18.7322,15.4542],中非共和国:[20.9394,6.6111],赤道几内亚:[10.2679,1.6508],圣多美和普林西比:[6.6131,.1864],加蓬:[11.6094,-.8037],"刚果(布)":[15.2663,-.228],"刚果(金)":[21.7587,-4.0383],安哥拉:[17.8739,-11.2027],赞比亚:[27.8493,-13.1339],津巴布韦:[29.1549,-19.0154],马拉维:[34.3015,-13.2543],莫桑比克:[35.5296,-18.6657],马达加斯加:[46.8691,-18.7669],毛里求斯:[57.5522,-20.3484],科摩罗:[43.8722,-11.6455],塞舌尔:[55.492,-4.6796],纳米比亚:[18.4904,-22.9576],博茨瓦纳:[24.6849,-22.3285],莱索托:[28.2336,-29.61],斯威士兰:[31.4659,-26.5225],澳大利亚:[133.775136,-25.274398],新西兰:[174.885971,-40.900557],斐济:[178.065,-17.7134],巴布亚新几内亚:[143.9557,-6.3149],所罗门群岛:[160.1562,-9.6457],瓦努阿图:[166.9592,-15.3767],萨摩亚:[-172.1046,-13.759],汤加:[-175.1982,-21.179],基里巴斯:[-157.363,1.8369],瑙鲁:[166.9315,-.5228],图瓦卢:[178.6792,-7.1095],帕劳:[134.5825,7.515],密克罗尼西亚:[150.5508,7.4256],马绍尔群岛:[171.184,7.1315]};function Bt(e){return X[e]||null}const qt=k({__name:"attack-map",props:{mapData:{},serverLocation:{}},setup(e,{expose:i}){$t(),ot([rt,nt,it,lt,ct,dt,ut]);const t=e,n=x();let a=null,o=null;const l=vt();function d(){n.value&&mt(()=>{a=ft(n.value,l.value?"dark":"light");const v=t.mapData.map(u=>({name:u.country,itemStyle:{color:"transparent",areaColor:"transparent",borderColor:"#3BE43D",borderWidth:1},emphasis:{itemStyle:{color:"rgba(59, 228, 61, 0.2)",areaColor:"rgba(59, 228, 61, 0.2)",borderColor:"#3BE43D",borderWidth:2},label:{show:!0,color:"#ffffff",fontSize:12}}})),h={tooltip:{show:!1},backgroundColor:"transparent",geo:{map:"world",zoom:.95,center:[0,24],label:{emphasis:{show:!1}},roam:!1,itemStyle:{color:"transparent",areaColor:"transparent",borderColor:"#939393",borderWidth:.5},emphasis:{itemStyle:{color:"transparent",areaColor:"transparent",borderColor:"#afafaf",borderWidth:1.5,shadowColor:"rgba(255, 255, 255, 0.8)",shadowBlur:20,shadowOffsetX:0,shadowOffsetY:0}},regions:v},series:[{name:"lines",type:"lines",coordinateSystem:"geo",effect:{show:!0,symbol:"arrow",symbolSize:8,period:4,trailLength:.2,color:"#f05014"},lineStyle:{width:1,opacity:1,curveness:.3,color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(240, 80, 20, 1)"},{offset:1,color:"rgba(240, 80, 20, 0)"}],global:!1}},data:[]},{name:"attacker",type:"effectScatter",coordinateSystem:"geo",zlevel:1,label:{show:!0,position:"top",distance:10,formatter:function(u){const f=u.data.row;return"{bTitle|国家:"+f.country+"}\n{b|次数:"+f.attack_count+"}\n{b|IP总数:"+f.ip_count+"}"},backgroundColor:"#333",borderColor:"#777",borderWidth:1,borderRadius:4,padding:[4,0],rich:{b:{color:"#fff",fontSize:12,lineHeight:24,padding:[10,10]},bTitle:{color:"#fff",fontSize:14,lineHeight:24,padding:[10,10]}}},symbol:"circle",symbolSize:8,showEffectOn:"render",rippleEffect:{brushType:"stroke",scale:6,period:2},itemStyle:{color:"#f05014"},data:[]},{name:"target2",type:"effectScatter",coordinateSystem:"geo",zlevel:2,label:{show:!0,position:"top",distance:10,formatter:function(u){const f=u.data.row;return"{bTitle|国家:"+f.country+"}\n{b|次数:"+f.attack_count+"}\n{b|IP总数:"+f.ip_count+"}"},backgroundColor:"#333",borderColor:"#777",borderWidth:1,borderRadius:4,padding:[4,0],rich:{b:{color:"#fff",fontSize:12,lineHeight:24,padding:[10,10]},bTitle:{color:"#fff",fontSize:14,lineHeight:24,padding:[10,10]}}},symbol:"circle",symbolSize:12,showEffectOn:"render",rippleEffect:{brushType:"stroke",scale:4,period:2},itemStyle:{color:"#f05014"},data:[]}]};a.setOption(h),setTimeout(()=>{r()},100)})}function r(){var L;if(!a||!t.serverLocation||!t.serverLocation.latitude||!t.serverLocation.longitude)return;const v=[],h=[],u=[Number(t.serverLocation.longitude),Number(t.serverLocation.latitude)];let f=((L=t.serverLocation)==null?void 0:L.country)||"";if(!f){for(const[S,$]of Object.entries(X))if(Math.abs($[0]-u[0])<5&&Math.abs($[1]-u[1])<5){f=S;break}}const b=t.mapData.find(S=>S.country===f)||{country:f||"未知",attack_count:0,ip_count:0};t.mapData.forEach(S=>{if(!f||S.country!==f){const $=Bt(S.country);$&&(v.push({coords:[$,u],lineStyle:{width:1,opacity:1,curveness:.3,color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(240, 80, 20, 1)"},{offset:1,color:"rgba(240, 80, 20, 0)"}],global:!1}}}),h.push({name:S.country,value:$,row:S}))}}),a.setOption({series:[{name:"lines",data:v},{name:"attacker",data:h},{name:"target2",data:[{name:"",value:u,row:b}]}]})}A(()=>t.mapData,()=>{if(a){const v=t.mapData.map(h=>({name:h.country,itemStyle:{color:"transparent",areaColor:"transparent",borderColor:"#3BE43D",borderWidth:1},emphasis:{itemStyle:{color:"rgba(59, 228, 61, 0.2)",areaColor:"rgba(59, 228, 61, 0.2)",borderColor:"#3BE43D",borderWidth:2},label:{show:!0,color:"#ffffff",fontSize:12}}}));a.setOption({geo:{regions:v}}),r()}},{deep:!0}),A(()=>t.serverLocation,r,{deep:!0});function c(){a==null||a.resize()}function p(){a==null||a.resize()}return i({resize:p}),B(()=>{d(),window.addEventListener("resize",c),typeof ResizeObserver<"u"&&n.value&&(o=new ResizeObserver(()=>{c()}),o.observe(n.value))}),q(()=>{o&&(o.disconnect(),o=null),window.removeEventListener("resize",c),a==null||a.dispose(),a=null}),(v,h)=>(m(),y("div",{ref_key:"mapContainer",ref:n,class:"attack-map w-full h-full"},null,512))}}),It=C(qt,[["__scopeId","data-v-275ba462"]]),Mt={class:"glow-effects absolute inset-0 z-1 pointer-events-none overflow-hidden"},Vt=k({__name:"glow-effects",setup(e){return(i,t)=>(m(),y("div",Mt,[...t[0]||(t[0]=[s("div",{class:"glow glow-map-left"},null,-1),s("div",{class:"glow glow-map-right"},null,-1),s("div",{class:"glow glow-map-bottom"},null,-1)])]))}}),Ot=C(Vt,[["__scopeId","data-v-f77d9e61"]]),Wt=""+new URL("../images/btwaf/nav-01.svg",import.meta.url).href,Ft=""+new URL("../images/btwaf/nav-02.svg",import.meta.url).href,jt=k({__name:"card-decoration",props:{mirrored:{type:Boolean}},setup(e){return(i,t)=>(m(),y("div",{class:G(["card-decoration absolute inset-0 pointer-events-none overflow-hidden",{"is-mirrored":e.mirrored}])},[...t[0]||(t[0]=[M('<div class="decoration-corner" data-v-8ba91f8e><img src="'+Wt+'" class="corner-svg" alt="corner" data-v-8ba91f8e></div><div class="complex-lines" data-v-8ba91f8e><div class="diagonal-line" data-v-8ba91f8e></div><div class="top-horizontal-line" data-v-8ba91f8e></div></div><div class="decoration-opposite" data-v-8ba91f8e><img src="'+Ft+'" class="top-line-svg" alt="top-line" data-v-8ba91f8e></div>',3)])],2))}}),Q=C(jt,[["__scopeId","data-v-8ba91f8e"]]),Pt={class:"stat-cards flex gap-4"},Ht={class:"stat-cards-left flex-1 flex gap-4 relative"},Ut={class:"cards-container flex-1 flex gap-4 tilted-panel mt-12 ml-40 mr-8 pl-8"},Qt={class:"text-[15px] font-bold text-[#fff] mb-3"},Nt={class:"stat-value-wrapper"},Gt={class:"text-[22px] text-[#3BE43D] font-bold stat-value"},Yt={class:"stat-cards-center flex flex-col items-center pt-10 px-8 relative"},Xt={class:"relative z-10 text-center"},Zt={class:"text-small text-[#fff]"},Jt={class:"stat-cards-right flex items-center justify-end gap-4 px-4 relative"},Kt={class:"pr-30 flex items-center gap-4"},te={class:"countdown-ring",viewBox:"0 0 36 36"},ee=["stroke-dashoffset"],ae={class:"countdown-text"},se=k({__name:"stat-cards",props:{stats:{},serverInfo:{}},emits:["setting","fullscreen","refresh"],setup(e,{emit:i}){const t=e,n=i,a=x(3),o=2*Math.PI*16;let l=null;const d=E(()=>{var b;return o*((b={3:0,2:.3333333333333333,1:.6666666666666666,0:1}[a.value])!=null?b:0)});function r(){l=setInterval(()=>{a.value--,a.value<0&&(a.value=3,n("refresh"))},1e3)}function c(){l&&(clearInterval(l),l=null)}function p(){}B(()=>{r()}),q(()=>{c()});const v=E(()=>[{label:"今日请求数",value:t.stats.todayRequests},{label:"恶意请求数",value:t.stats.maliciousRequests},{label:"总拦截",value:t.stats.totalIntercepts},{label:"今日拦截",value:t.stats.todayIntercepts}]);function h(){n("setting")}function u(){n("fullscreen")}return(f,b)=>{const L=ht;return m(),y("div",Pt,[s("div",Ht,[_(Q,{mirrored:!1,class:"absolute top-0 left-0"}),s("div",Ut,[b[0]||(b[0]=s("div",{class:"corner-decoration"},[s("div",{class:"corner-line"}),s("div",{class:"corner-triangle"})],-1)),(m(!0),y(W,null,F(g(v),(S,$)=>(m(),y("div",{key:$,class:"stat-card flex-1 flex flex-col justify-center pt-4 px-6"},[s("span",Qt,w(S.label),1),s("div",Nt,[s("span",Gt,w(S.value),1)])]))),128))])]),s("div",Yt,[b[1]||(b[1]=s("div",{class:"title-bg absolute inset-0 flex items-center justify-center"},null,-1)),s("div",Xt,[s("div",Zt,w(e.stats.title||"宝塔WAF大屏"),1)])]),s("div",Jt,[_(Q,{mirrored:!0}),s("div",Kt,[_(L,{content:"倒计时"},{default:D(()=>[s("div",{class:"countdown-wrapper",onClick:p},[(m(),y("svg",te,[b[2]||(b[2]=s("circle",{class:"countdown-ring-bg",cx:"18",cy:"18",r:"16",fill:"none",stroke:"rgba(59, 228, 61, 0.2)","stroke-width":"2"},null,-1)),s("circle",{class:"countdown-ring-progress",cx:"18",cy:"18",r:"16",fill:"none",stroke:"#3BE43D","stroke-width":"2","stroke-linecap":"round","stroke-dasharray":o,"stroke-dashoffset":g(d),transform:"rotate(0 18 18)"},null,8,ee)])),s("span",ae,w(g(a)),1)])]),_:1}),_(L,{content:"全屏"},{default:D(()=>[s("div",{class:"icon-btn",onClick:u},[...b[3]||(b[3]=[s("svg",{class:"action-icon",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[s("path",{d:"M4 9V6C4 5.46957 4.21071 4.96086 4.58579 4.58579C4.96086 4.21071 5.46957 4 6 4H9M15 4H18C18.5304 4 19.0391 4.21071 19.4142 4.58579C19.7893 4.96086 20 5.46957 20 6V9M20 15V18C20 18.5304 19.7893 19.0391 19.4142 19.4142C19.0391 19.7893 18.5304 20 18 20H15M9 20H6C5.46957 20 4.96086 19.7893 4.58579 19.4142C4.21071 19.0391 4 18.5304 4 18V15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])])]),_:1}),_(L,{content:"设置"},{default:D(()=>[s("div",{class:"icon-btn",onClick:h},[...b[4]||(b[4]=[s("i",{class:"svgtofont-el-setting action-icon-font"},null,-1)])])]),_:1})])])])}}}),oe=C(se,[["__scopeId","data-v-68d684d9"]]),V=""+new URL("../images/btwaf/cr-02.svg",import.meta.url).href,re={class:"chart-body flex-1 px-8 relative z-10"},ne=k({__name:"trend-chart",props:{data:{}},setup(e,{expose:i}){const t=e,n=x(),a=O({options:{tooltip:{trigger:"axis",backgroundColor:"transparent",borderWidth:0,padding:0,formatter:d=>{const r=d[0];return'\n          <div style="\n            background: linear-gradient(168deg, rgba(227, 249, 255, 0.1) 0%, rgba(227, 249, 255, 0.1) 20%, transparent 90%);\n            padding: 8px 12px;\n            border-radius: 4px;\n            color: #fff;\n            font-size: 12px;\n            line-height: 1.6;\n          ">\n            <div>攻击时间:'.concat(r.name,"</div>\n            <div>攻击次数:").concat(r.value,"</div>\n          </div>\n        ")}},grid:{left:40,right:20,top:20,bottom:30},xAxis:{type:"category",data:[],boundaryGap:!1,axisLine:{lineStyle:{color:"#3BE43D",width:2}},axisTick:{show:!1},axisLabel:{color:"#fff",fontSize:10,margin:10}},yAxis:{type:"value",min:0,minInterval:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{color:"#fff",fontSize:10,margin:14}},series:[{type:"line",data:[],smooth:.5,lineStyle:{color:"#3BE43D",width:3},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(59, 228, 61, 0.15)"},{offset:.5,color:"rgba(59, 228, 61, 0.05)"},{offset:1,color:"rgba(59, 228, 61, 0)"}]}},symbol:"circle",symbolSize:8,itemStyle:{color:"#fff",borderColor:"#3BE43D",borderWidth:2,shadowColor:"rgba(59, 228, 61, 0.8)",shadowBlur:10},emphasis:{itemStyle:{shadowColor:"rgba(59, 228, 61, 1)",shadowBlur:15}}}]}});async function o(){for(let d=0;d<10;d++){const r=await a.getEChart();if(r){r.resize();break}await new Promise(c=>setTimeout(c,50))}}i({resize:o});let l=null;return B(()=>{typeof ResizeObserver<"u"&&n.value&&(l=new ResizeObserver(()=>{o()}),l.observe(n.value))}),q(()=>{l&&(l.disconnect(),l=null)}),A(()=>t.data,d=>{d.dates.length>0&&a.setOption({xAxis:{data:d.dates},series:[{data:d.values}]})},{deep:!0}),(d,r)=>(m(),y("div",{ref_key:"chartContainerRef",ref:n,class:"chart-card trend-chart flex flex-1 flex-col relative"},[r[1]||(r[1]=M('<div class="chart-bg absolute inset-0" data-v-fb528073></div><div class="corner-decoration" data-v-fb528073><div class="corner-line" data-v-fb528073></div><div class="corner-triangle" data-v-fb528073></div></div><div class="chart-header flex flex-col justify-center px-8 flex-shrink-0 h-16 relative z-10" data-v-fb528073><div class="flex items-center" data-v-fb528073><span class="text-[15px] font-bold text-white tracking-wide" data-v-fb528073>7天拦截趋势图</span></div></div>',3)),s("div",re,[r[0]||(r[0]=s("div",{class:"title-decoration mb-4"},[s("img",{src:V,class:"decoration-svg",alt:"decoration"})],-1)),(m(),T(j(g(a).BtECharts),{style:{height:"100%"}}))])],512))}}),ie=C(ne,[["__scopeId","data-v-fb528073"]]),le=""+new URL("../images/btwaf/cr-03.svg",import.meta.url).href,ce={class:"chart-body flex-1 px-8 pb-3 relative z-10"},de={class:"text-[12px] text-white"},ue=k({__name:"qps-chart",props:{data:{}},setup(e,{expose:i}){const t=e,n=E(()=>{const{values:r}=t.data;return r.length>0?r[r.length-1]:0}),a=x(),o=O({options:{tooltip:{trigger:"axis",backgroundColor:"transparent",borderWidth:0,padding:0,formatter:r=>{const c=r[0],p=new Date,v=p.getFullYear(),h=(p.getMonth()+1).toString().padStart(2,"0"),u=p.getDate().toString().padStart(2,"0"),f="".concat(v,"-").concat(h,"-").concat(u," ").concat(c.name);return'\n          <div style="\n            background: linear-gradient(168deg, rgba(227, 249, 255, 0.1) 0%, rgba(227, 249, 255, 0.1) 20%, transparent 90%);\n            padding: 8px 12px;\n            border-radius: 4px;\n            color: #fff;\n            font-size: 12px;\n            line-height: 1.6;\n            text-align: left;\n          ">\n            <div>时间:'.concat(f,"</div>\n            <div>QPS: ").concat(c.value,"</div>\n          </div>\n        ")}},grid:{left:30,right:10,top:20,bottom:30},xAxis:{type:"category",data:[],axisLine:{lineStyle:{color:"#3BE43D",width:1}},axisLabel:{color:"rgba(255,255,255,0.8)",fontSize:10}},yAxis:{type:"value",min:0,max:4,interval:1,axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:"rgba(255, 255, 255, 0.2)",type:"dashed",width:1}},axisLabel:{color:"rgba(255,255,255,0.8)",fontSize:10,formatter:r=>r}},series:[{type:"line",data:[],smooth:!1,lineStyle:{color:"#3BE43D",width:2},areaStyle:{color:"transparent"},symbol:"circle",symbolSize:6,itemStyle:{color:"#3BE43D",borderColor:"#fff",borderWidth:1}}]}});async function l(){for(let r=0;r<10;r++){const c=await o.getEChart();if(c){c.resize();break}await new Promise(p=>setTimeout(p,50))}}i({resize:l});let d=null;return B(()=>{typeof ResizeObserver<"u"&&a.value&&(d=new ResizeObserver(()=>{l()}),d.observe(a.value))}),q(()=>{d&&(d.disconnect(),d=null)}),A(()=>t.data,r=>{if(r.times.length>0){const c=Math.max(...r.values),p={min:0,interval:1};c<=4?p.max=4:p.max=void 0,o.setOption({xAxis:{data:r.times},yAxis:p,series:[{data:r.values}]})}},{deep:!0}),(r,c)=>(m(),y("div",{ref_key:"chartContainerRef",ref:a,class:"chart-card qps-chart flex-1 flex flex-col relative"},[c[1]||(c[1]=M('<div class="chart-bg absolute inset-0" data-v-c42a7f0a></div><div class="top-right-decoration" data-v-c42a7f0a><img src="'+le+'" class="cr-03-svg" alt="decoration" data-v-c42a7f0a></div><div class="corner-decoration" data-v-c42a7f0a><div class="corner-line" data-v-c42a7f0a></div><div class="corner-triangle" data-v-c42a7f0a></div></div><div class="chart-header flex flex-col h-16 justify-center flex-shrink-0 px-8 pb-1 relative z-10" data-v-c42a7f0a><span class="text-[15px] font-bold text-white tracking-wide" data-v-c42a7f0a>实时QPS</span></div>',4)),s("div",ce,[c[0]||(c[0]=s("div",{class:"title-decoration mb-4"},[s("img",{src:V,class:"decoration-svg",alt:"decoration"})],-1)),s("span",de,w(g(n))+"/s",1),(m(),T(j(g(o).BtECharts),{style:{height:"90%"}}))])],512))}}),fe=C(ue,[["__scopeId","data-v-c42a7f0a"]]),pe={class:"chart-body flex-1 px-8 pb-3 relative z-10"},ve={key:1,class:"flex items-center justify-center",style:{height:"90%"}},me=k({__name:"type-chart",props:{data:{}},setup(e,{expose:i}){const t=e,n=x(),a=E(()=>t.data.types.length>0),o=["#64FF18","#35C1FF"],l=["rgba(100, 255, 24, 0.1)","rgba(53, 193, 255, 0.1)"],d=O({options:{backgroundColor:"transparent",grid:{left:-100,top:50,bottom:10,right:10,containLabel:!0},tooltip:{trigger:"item",formatter:"{b} : {c} ({d}%)"},legend:{show:!1},polar:{radius:"65%"},angleAxis:{max:100,startAngle:90,axisLine:{show:!1},axisLabel:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},radiusAxis:{min:0,max:100,interval:25,axisLine:{show:!1,lineStyle:{color:"#0B3E5E",width:1,type:"solid"}},axisLabel:{formatter:"{value} %",show:!1,padding:[0,0,20,0],color:"#0B3E5E",fontSize:16},splitLine:{lineStyle:{color:"#0A4B74",width:2,type:"dashed"}}},calculable:!0,series:[{stack:"a",type:"pie",radius:"64%",roseType:"radius",zlevel:10,startAngle:100,label:{normal:{formatter:p=>"{b|".concat(p.name,"}\n{c|").concat(p.value,"/次,").concat(p.percent,"%}"),rich:{b:{color:"#3bd2fe",fontSize:14,lineHeight:20},c:{color:"#d0fffc",fontSize:14,height:20}}}},labelLine:{normal:{show:!0,length:5,length2:20,lineStyle:{color:"#0096b1"}},emphasis:{show:!1}},data:[],itemStyle:{borderWidth:2}}]}});async function r(){if(a.value)for(let p=0;p<10;p++){const v=await d.getEChart();if(v){v.resize();break}await new Promise(h=>setTimeout(h,50))}}i({resize:r});let c=null;return B(()=>{typeof ResizeObserver<"u"&&n.value&&(c=new ResizeObserver(()=>{r()}),c.observe(n.value))}),q(()=>{c&&(c.disconnect(),c=null)}),A(()=>t.data,async p=>{if(p.types.length>0){const v=p.types.map((h,u)=>({name:h.name,value:h.value,itemStyle:{borderColor:o[u%2],borderWidth:2,shadowBlur:20,shadowColor:o[u%2],color:l[u%2]}}));for(let h=0;h<20;h++){if(await d.getEChart()){d.setOption({series:[{data:v}]});break}await new Promise(f=>setTimeout(f,50))}}},{deep:!0}),(p,v)=>(m(),y("div",{ref_key:"chartContainerRef",ref:n,class:"chart-card type-chart flex-1 flex flex-col relative"},[v[2]||(v[2]=M('<div class="chart-bg absolute inset-0" data-v-798ccaee></div><div class="corner-decoration" data-v-798ccaee><div class="corner-line" data-v-798ccaee></div><div class="corner-triangle" data-v-798ccaee></div></div><div class="chart-header flex flex-col h-20 flex-shrink-0 justify-center px-8 relative z-10" data-v-798ccaee><span class="text-[15px] font-bold text-white tracking-wide" data-v-798ccaee>拦截类型(今日)</span></div>',3)),s("div",pe,[v[1]||(v[1]=s("div",{class:"title-decoration mb-4"},[s("img",{src:V,class:"decoration-svg",alt:"decoration"})],-1)),a.value?(m(),T(j(g(d).BtECharts),{key:0,style:{height:"90%"}})):(m(),y("div",ve,[...v[0]||(v[0]=[s("div",{class:"text-center"},[s("div",{class:"text-secondary text-small mb-2"},"今日暂无拦截数据")],-1)])]))])],512))}}),he=C(me,[["__scopeId","data-v-798ccaee"]]),ge=k({__name:"left-charts",props:{trendData:{},qpsData:{},interceptTypeData:{}},setup(e,{expose:i}){const t=x(),n=x(),a=x(),o=x();async function l(){var d,r,c;await((d=n.value)==null?void 0:d.resize()),await((r=a.value)==null?void 0:r.resize()),await((c=o.value)==null?void 0:c.resize())}return i({resize:l}),(d,r)=>(m(),y("div",{ref_key:"leftChartsRef",ref:t,class:"left-charts w-[18%] flex flex-col gap-8"},[_(ie,{ref_key:"trendChartRef",ref:n,data:e.trendData},null,8,["data"]),_(fe,{ref_key:"qpsChartRef",ref:a,data:e.qpsData},null,8,["data"]),_(he,{ref_key:"typeChartRef",ref:o,data:e.interceptTypeData},null,8,["data"])],512))}}),xe=C(ge,[["__scopeId","data-v-7fae31dc"]]);async function Z(){try{const e=await Tt();return(e==null?void 0:e.data)||{}}catch(e){return{}}}async function be(){try{const[e,i]=await Promise.all([Z(),Rt()]),n=((i==null?void 0:i.data)||{}).map||{};return{stats:{todayRequests:e.total||0,maliciousRequests:e.malicious_total||0,totalIntercepts:n.count||0,todayIntercepts:n["24_day_count"]||0,title:e.waf_large_screen_text||"WAF大屏"},initialQps:e.qps||0}}catch(e){return{stats:{todayRequests:0,maliciousRequests:0,totalIntercepts:0,todayIntercepts:0,title:"WAF大屏"},initialQps:0}}}async function _e(){const e=await Z();return{stats:{todayRequests:e.total||0,maliciousRequests:e.malicious_total||0,title:e.waf_large_screen_text||"WAF大屏"},qps:e.qps||0}}async function ye(){try{const e=await Lt(),t=((e==null?void 0:e.data)||{}).gongji||[],n=[],a=[];return[...t].reverse().forEach(l=>{if(Array.isArray(l)&&l.length>=2){const d=l[0],r=d.match(/\d{4}-(\d{2}-\d{2})/);n.push(r?r[1]:d),a.push(l[1])}}),{dates:n,values:a}}catch(e){return{dates:[],values:[]}}}async function we(e){var i,t;try{const n=await Y(),o=(((t=(i=n==null?void 0:n.data)==null?void 0:i.msg)==null?void 0:t.data)||[]).find(d=>d.ip===e);if(!o)return null;const l=o.ip_subdivisions?"".concat(o.ip_country,"-").concat(o.ip_subdivisions):o.ip_country;return{ip:o.ip,location:l,attackType:o.filter_rule,domain:o.server_name,attackTime:o.time_localtime}}catch(n){return null}}async function ke(){var e,i;try{const t=await Y();return(((i=(e=t==null?void 0:t.data)==null?void 0:e.msg)==null?void 0:i.data)||[]).map(a=>({ip:a.ip,location:a.ip_subdivisions?"".concat(a.ip_country,"-").concat(a.ip_subdivisions):a.ip_country,attackType:a.filter_rule,domain:a.server_name,attackTime:a.time_localtime}))}catch(t){return[]}}async function Ce(){try{const e=await At(),i=(e==null?void 0:e.data)||{},t=i.map||{},n=i.list||[],a=i.attack_details||[],o=n.reduce((r,c)=>r+c.value,0),l={types:n.map(r=>({name:r.name,value:r.value,percent:o>0?"".concat(Math.round(r.value/o*100),"%"):"0%"}))},d=a.map((r,c)=>({index:c+1,ip:r.ip,location:r.address,count:r.count}));return t.server?{mapData:{server:{ip_address:t.server.ip_address||"",latitude:t.server.latitude||"",longitude:t.server.longitude||"",country:t.server.country||""},list:t.list||[]},interceptTypes:l,realtimeList:d}:{mapData:N(),interceptTypes:l,realtimeList:d}}catch(e){return{mapData:N(),interceptTypes:{types:[]},realtimeList:[]}}}function N(){return{server:{ip_address:"",latitude:"",longitude:"",country:""},list:[]}}async function Se(e){var i;try{const t=await Et({text:e});return{status:(i=t==null?void 0:t.status)!=null?i:!1,msg:(t==null?void 0:t.msg)||"保存失败",title:e}}catch(t){return{status:!1,msg:"保存失败"}}}const z=x({todayRequests:0,maliciousRequests:0,totalIntercepts:0,todayIntercepts:0}),J=x({dates:[],values:[]}),R=x({times:[],values:[]}),K=x({types:[]}),tt=x([]),et=x(null),at=x([]),I=x({server:{ip_address:"",latitude:"",longitude:"",country:""},list:[]});function st(){const e=new Date;return"".concat(e.getHours().toString().padStart(2,"0"),":").concat(e.getMinutes().toString().padStart(2,"0"),":").concat(e.getSeconds().toString().padStart(2,"0"))}async function De(){var t,n,a;const{stats:e,qps:i}=await _e();z.value.todayRequests=(t=e.todayRequests)!=null?t:z.value.todayRequests,z.value.maliciousRequests=(n=e.maliciousRequests)!=null?n:z.value.maliciousRequests,z.value.title=(a=e.title)!=null?a:z.value.title,R.value.times.push(st()),R.value.values.push(i),R.value.times.length>10&&(R.value.times.shift(),R.value.values.shift())}async function ze(e){const i=await we(e);et.value=i}async function $e(){const[{stats:e,initialQps:i},t,{mapData:n,interceptTypes:a,realtimeList:o},l]=await Promise.all([be(),ye(),Ce(),ke()]);z.value=e,R.value={times:[st()],values:[i]},J.value=t,I.value=n,K.value=a,tt.value=o,at.value=l,et.value=l[0]||null}const Re={class:"panel-card flex-1 flex flex-col relative overflow-hidden"},Le={class:"panel-body flex-1 py-4 px-4 relative z-10 overflow-y-auto"},Ae=["onClick"],Ee={class:"index-badge h-12 w-12 flex items-center justify-center text-[12px] text-[#3BE43D] border border-[#3BE43D]"},Te={class:"flex-1 leading-5 min-w-0"},Be={class:"text-[12px] mb-3 font-medium text-white truncate"},qe={class:"text-[12px] text-[#3BE43D]"},Ie={class:"text-[12px] text-white"},Me=k({__name:"realtime-protection",props:gt({realtimeList:{}},{currentAttackDetail:{},currentAttackDetailModifiers:{}}),emits:["update:currentAttackDetail"],setup(e){const i=xt(e,"currentAttackDetail");function t(n){ze(n.ip)}return(n,a)=>(m(),y("div",Re,[a[0]||(a[0]=M('<div class="panel-bg absolute inset-0" data-v-8939a03d></div><div class="corner-decoration" data-v-8939a03d><div class="corner-line" data-v-8939a03d></div><div class="corner-triangle" data-v-8939a03d></div></div><div class="panel-header flex items-center px-8 relative z-10" data-v-8939a03d><div class="header-bg font-bold text-white tracking-wide relative z-10" data-v-8939a03d><span class="header-text text-[15px]" data-v-8939a03d>实时WEB防护</span></div></div><div class="title-decoration ml-8 mt-2 relative z-10" data-v-8939a03d><img src="'+V+'" class="decoration-svg" alt="decoration" data-v-8939a03d></div>',4)),s("div",Le,[(m(!0),y(W,null,F(e.realtimeList,o=>{var l;return m(),y("div",{key:o.index,class:G(["realtime-item flex items-center gap-3 py-2 px-3 mb-2 cursor-pointer transition-colors",{"bg-[rgba(59,228,61,0.1)]":((l=i.value)==null?void 0:l.ip)===o.ip}]),onClick:d=>t(o)},[s("span",Ee,w(String(o.index).padStart(2,"0")),1),s("div",Te,[s("div",Be,w(o.ip),1),s("div",qe,w(o.location),1)]),s("span",Ie,w(o.count),1)],10,Ae)}),128))])]))}}),Ve=C(Me,[["__scopeId","data-v-8939a03d"]]),Oe=""+new URL("../images/btwaf/cr-t.svg",import.meta.url).href,We={class:"panel-card flex flex-col relative overflow-hidden"},Fe={class:"panel-body flex-1 relative z-10 overflow-hidden"},je={class:"attack-detail px-8 flex flex-col w-full"},Pe={class:"detail-row flex items-center gap-2 mb-3"},He={class:"text-[15px] font-semibold attack-ip-text"},Ue={class:"text-[12px] location-text ml-auto"},Qe={class:"detail-info space-y-2"},Ne={class:"info-item flex items-center gap-2"},Ge={class:"text-[12px] text-[#A5A5A5]"},Ye={class:"info-item flex items-center gap-2"},Xe={class:"text-[12px] text-[#A5A5A5]"},Ze={class:"info-item flex items-center gap-2"},Je={class:"text-[12px] text-[#A5A5A5]"},Ke={key:1,class:"flex items-center justify-center h-full text-secondary"},ta=k({__name:"attack-ip-detail",props:{attackDetailList:{}},setup(e){return(i,t)=>{const n=bt,a=_t;return m(),y("div",We,[t[5]||(t[5]=s("div",{class:"header-bg h-4"},[s("img",{src:Oe,class:"header-bg-img h-full",alt:"header-bg"})],-1)),t[6]||(t[6]=s("div",{class:"panel-bg absolute inset-0"},null,-1)),s("div",Fe,[e.attackDetailList&&e.attackDetailList.length>0?(m(),T(a,{key:0,class:"attack-carousel",height:"100%",direction:"horizontal",interval:3e3,"indicator-position":"bottom"},{default:D(()=>[(m(!0),y(W,null,F(e.attackDetailList,(o,l)=>(m(),T(n,{key:l},{default:D(()=>[s("div",je,[s("div",Pe,[t[0]||(t[0]=s("div",{class:"triangle-icon"},null,-1)),t[1]||(t[1]=s("span",{class:"text-[15px] font-medium text-white mr-3"},"攻击IP",-1)),s("span",He,w(o.ip),1),s("span",Ue,w(o.location),1)]),s("div",Qe,[s("div",Ne,[t[2]||(t[2]=s("span",{class:"text-[12px] text-[#A5A5A5] text-align-right w-26"},"攻击类型:",-1)),s("span",Ge,w(o.attackType),1)]),s("div",Ye,[t[3]||(t[3]=s("span",{class:"text-[12px] text-[#A5A5A5] text-align-right w-26"},"域名:",-1)),s("span",Xe,w(o.domain),1)]),s("div",Ze,[t[4]||(t[4]=s("span",{class:"text-[12px] text-[#A5A5A5] text-align-right w-26"},"时间:",-1)),s("span",Je,w(o.attackTime),1)])])])]),_:2},1024))),128))]),_:1})):(m(),y("div",Ke," 暂无攻击详情 "))])])}}}),ea=C(ta,[["__scopeId","data-v-419b1e02"]]),aa={class:"right-panel w-[18%] flex flex-col gap-8"},sa=k({__name:"index",props:{realtimeList:{},attackDetailList:{}},emits:["select"],setup(e,{emit:i}){const t=i,n=x(null);function a(o){t("select",o)}return(o,l)=>(m(),y("div",aa,[_(Ve,{"realtime-list":e.realtimeList,"current-attack-detail":g(n),"onUpdate:currentAttackDetail":l[0]||(l[0]=d=>P(n)?n.value=d:null),onSelect:a},null,8,["realtime-list","current-attack-detail"]),_(ea,{"attack-detail-list":e.attackDetailList},null,8,["attack-detail-list"])]))}}),oa=C(sa,[["__scopeId","data-v-65426396"]]),ra={class:"p-[2rem]"},na={class:"dialog-footer"},ia=k({__name:"screen-setting",props:{modelValue:{type:Boolean},title:{}},emits:["update:modelValue","save-success"],setup(e,{emit:i}){const t=e,n=i,a=E({get:()=>t.modelValue,set:r=>n("update:modelValue",r)}),o=yt({title:t.title||"宝塔WAF大屏"});A(()=>t.title,r=>{r&&(o.title=r)});function l(){a.value=!1}async function d(){const r=await Se(o.title);r.status?(H().success(r.msg),n("save-success",o.title),a.value=!1):H().error(r.msg)}return(r,c)=>{const p=wt,v=kt,h=Ct,u=St,f=Dt;return m(),T(f,{modelValue:g(a),"onUpdate:modelValue":c[1]||(c[1]=b=>P(a)?a.value=b:null),title:"设置监控标题",width:"450px","close-on-click-modal":!1,"align-center":"",class:"!p-0"},{footer:D(()=>[s("div",na,[_(u,{onClick:l},{default:D(()=>[...c[2]||(c[2]=[U("取消",-1)])]),_:1}),_(u,{type:"primary",onClick:d},{default:D(()=>[...c[3]||(c[3]=[U("确认",-1)])]),_:1})])]),default:D(()=>[s("div",ra,[_(h,{model:g(o)},{default:D(()=>[_(v,{label:"监控标题"},{default:D(()=>[_(p,{modelValue:g(o).title,"onUpdate:modelValue":c[0]||(c[0]=b=>g(o).title=b),placeholder:"请输入监控标题",maxlength:"50",clearable:"",class:"!w-[calc(100%-40px)]"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue"])}}}),la={class:"relative z-10 w-full h-full flex flex-col p-4 gap-8 pointer-events-none"},ca={class:"flex-1 flex gap-4 min-h-0 justify-between px-4"},da=k({__name:"page",setup(e){const{mainHeight:i}=pt(),t=x(null),n=x(),a=x(),o=x(!1),l=E(()=>{var u,f;return{longitude:((u=I.value.server)==null?void 0:u.longitude)||"116.36003",latitude:((f=I.value.server)==null?void 0:f.latitude)||"39.9305"}});function d(){o.value=!0}function r(u){z.value.title=u}function c(){setTimeout(()=>{var u,f;(u=n.value)==null||u.resize(),(f=a.value)==null||f.resize()},100)}function p(){const u=t.value;u&&(document.fullscreenElement?document.exitFullscreen():u.requestFullscreen().catch(f=>{}))}function v(){De()}function h(){c()}return B(()=>{$e(),document.addEventListener("fullscreenchange",h)}),q(()=>{document.removeEventListener("fullscreenchange",h)}),(u,f)=>(m(),y("div",{ref_key:"pageRef",ref:t,class:"protection-screen-page w-full relative overflow-hidden",style:zt({height:"".concat(g(i)-140,"px")})},[_(Ot,{class:"absolute inset-0 z-1"}),_(It,{ref_key:"attackMapRef",ref:n,class:"absolute inset-0 z-0","map-data":g(I).list,"server-location":g(I).server},null,8,["map-data","server-location"]),s("div",la,[_(oe,{class:"pointer-events-auto",stats:g(z),"server-info":g(l),onSetting:d,onFullscreen:p,onRefresh:v},null,8,["stats","server-info"]),s("div",ca,[_(xe,{ref_key:"leftChartsRef",ref:a,class:"pointer-events-auto","trend-data":g(J),"qps-data":g(R),"intercept-type-data":g(K)},null,8,["trend-data","qps-data","intercept-type-data"]),_(oa,{class:"pointer-events-auto","realtime-list":g(tt),"attack-detail-list":g(at)},null,8,["realtime-list","attack-detail-list"])])]),_(ia,{modelValue:g(o),"onUpdate:modelValue":f[0]||(f[0]=b=>P(o)?o.value=b:null),title:g(z).title,onSaveSuccess:r},null,8,["modelValue","title"])],4))}}),ha=C(da,[["__scopeId","data-v-26224882"]]);export{ha as default};