97.1759936015369.js 25 KB

1
  1. (self["webpackChunkcimo"]=self["webpackChunkcimo"]||[]).push([[97],{13986:function(e,l,a){"use strict";var t=a(74413),o=a(27454),s=a.n(o),u=a(76661),n=a(57695);const r=t.A.create({baseURL:u.c.baseURL,timeout:u.c.timeOut});r.interceptors.request.use(e=>{const l=sessionStorage.getItem("access_token");if(l&&(e.headers.Authorization="Bearer "+l),e.type)switch(e.type){case"FORM-DATA":e.transformRequest=[e=>"args="+JSON.stringify(e)];break;case"FORM":e.headers["Content-Type"]="application/x-www-form-urlencoded",e.data=s().stringify(e.data);break;default:break}return e},e=>Promise.reject(e)),r.interceptors.response.use(e=>("object"==typeof e.data&&Object.keys(e.data).includes("Success")&&!0!==e.data.Success&&n.oR.error(e.data.Message||`请求失败:${e.request.responseURL}`,{autoClose:3e3,position:"top-center"}),e.data),e=>{if("ECONNABORTED"===e.code||e.message&&-1!==e.message.indexOf("timeout")||"Network Error"===e.message)return n.oR.error("网络异常",{autoClose:3e3,position:"top-center"}),Promise.reject(e);if(e.response)switch(e.response.status){case 400:n.oR.error("请求错误:"+e.response.data.Message||0,{autoClose:3e3,position:"top-center"});break;case 403:n.oR.error("拒绝访问(403)",{autoClose:3e3,position:"top-center"});break;case 404:n.oR.error("资源不存在(404)",{autoClose:3e3,position:"top-center"});break;case 408:n.oR.error("请求超时(408)",{autoClose:3e3,position:"top-center"});break;case 500:n.oR.error("服务器错误(500)",{autoClose:3e3,position:"top-center"});break;case 501:n.oR.error("服务未实现(501)",{autoClose:3e3,position:"top-center"});break;case 502:n.oR.error("网络错误(502)",{autoClose:3e3,position:"top-center"});break;case 503:n.oR.error("服务不可用(503)",{autoClose:3e3,position:"top-center"});break;case 504:n.oR.error("网络超时(504)",{autoClose:3e3,position:"top-center"});break;case 505:n.oR.error("HTTP版本不受支持(505)",{autoClose:3e3,position:"top-center"});break;default:break}return Promise.reject(e)}),l.A=r},42634:function(){},54172:function(e,l,a){"use strict";a.r(l),a.d(l,{default:function(){return Ve}});var t=a(74220),o=a(39798),s=a(97700),u=a(46732),n=a(57695),r=a(13986),i=a(88828),d=a.n(i),c=(a(26960),a(243));const v={class:"firewall-page"},b={class:"row q-mb-md"},m={class:"col text-right"},p={class:"text-h6"},g={class:"row q-mb-md"},k={class:"col"},f={class:"col"},h={class:"col"},F={class:"col"},y={class:"row q-mb-md"},C={class:"col"},w={key:0,class:"col"},R={key:1,class:"col"},L={key:0,class:"text-negative text-caption"},A={key:2,class:"col"},V={key:3,class:"col"},_={key:4,class:"col"},I={class:"row q-gutter-md q-mb-md"},q={class:"col"},P={class:"col"},x={class:"row q-gutter-md q-mb-md"},U={class:"col"},M={class:"col"},T={class:"row q-gutter-md q-mb-md"},E={class:"col"},K={class:"q-mb-md"},S={class:"q-mb-md"},Q={class:"text-h6 q-mb-md"},D={key:0,class:"text-center q-pa-md text-grey-6"},B={key:1},W={class:"row q-gutter-md q-mb-md items-center"},N={class:"col-auto"},O={class:"col-auto"},X={class:"col-auto"},j={class:"col-4 text-right"},H=["href"],Y=["href"],z=["href"],J={class:"row items-center justify-between q-mb-md"},$={class:"col-auto"},G={class:"text-body2 text-grey-7"},Z={class:"col-auto justify-center q-mt-md"},ee={class:"col-auto"},le={class:"text-h6 q-mb-md"},ae=["href"],te={class:"text-h6"},oe={class:"headers-content"};var se=(0,t.pM)({__name:"firewall",setup(e){const l=(0,u.KR)({}),a=(0,u.KR)([]),i=(0,u.KR)([]),se=(0,u.KR)(0),ue=(0,u.KR)(!1),ne=(0,u.KR)(!1),re=(0,u.KR)(!1),ie=(0,u.KR)(!1),de=(0,u.KR)(1),ce=(0,u.KR)(10),ve=[{label:"10条/页",value:10},{label:"20条/页",value:20},{label:"50条/页",value:50},{label:"100条/页",value:100},{label:"200条/页",value:200}],be=(0,u.KR)(!1),me=(0,u.KR)(""),pe=(0,u.KR)(""),ge=(0,u.KR)(""),ke=(0,u.KR)(!1),fe=(0,u.KR)(!1),he=(0,u.KR)(""),Fe=(0,u.KR)(),ye=(0,u.KR)();let Ce=null,we=null;const Re=[{label:"无",value:""},{label:"JS挑战",value:"JSChallenge"},{label:"验证码挑战",value:"CaptchaChallenge"},{label:"CloudflareTurnstile",value:"CloudflareTurnstileChallenge"}],Le=[{label:"所有地区",value:"All"},{label:"在以下地区:",value:"Region"}],Ae=[{label:"以内",value:"1"},{label:"以外",value:"2"}],Ve=(0,u.KR)(!1),_e=(0,t.EW)({get:()=>"true"===l.value.FirewallEnabled,set:e=>{e?l.value.FirewallEnabled="true":Ve.value=!0}}),Ie=(0,t.EW)(()=>{const e=a.value.filter(e=>e.IP?.includes(Pe.value)||e.RequestUrl?.includes(Pe.value)||e.Referer?.includes(Pe.value)||e.UserAgent?.includes(Pe.value)||e.Remark?.includes(Pe.value));return ie.value?e.reduce((e,l)=>{const a=e.find(e=>e.IP===l.IP);return a||e.push(l),e},[]):e}),qe=(0,t.EW)(()=>Math.ceil(Ie.value.length/ce.value)),Pe=(0,u.KR)(""),xe=(0,t.EW)(()=>{const e=(de.value-1)*ce.value,l=e+ce.value;return Ie.value.slice(e,l)}),Ue=async()=>{try{const e=await r.A.get("/system/getsettings");if(e?.Success&&e.Data){const a={};e.Data.forEach(e=>{a[e.Name]=e.Value}),l.value=a,await(0,t.dY)(),Ce&&Ce.setValue(l.value.AccessDenyTips||""),we&&we.setValue(l.value.UserAgentBlockedMsg||"")}}catch(e){n.oR.error("获取系统设置失败",{autoClose:2e3,position:"top-center"}),console.error("Error loading settings:",e)}},Me=async()=>{ne.value=!0;try{const e=await r.A.get("/system/InterceptLog");e?.Success&&e.Data&&(a.value=e.Data.list||[],se.value=e.Data.interceptCount||0,i.value=e.Data.ranking||[])}catch(e){n.oR.error("加载拦截日志失败",{autoClose:2e3,position:"top-center"}),console.error("Error loading logs:",e)}finally{ne.value=!1}},Te=async()=>{re.value=!0;const e=await r.A.get("/system/clearInterceptLog");e?.Success?(n.oR.success("拦截日志已清空",{autoClose:2e3,position:"top-center"}),Me()):n.oR.error(e?.Message||"清空失败",{autoClose:2e3,position:"top-center"}),re.value=!1},Ee=e=>{de.value=e},Ke=e=>{ce.value=e,de.value=1},Se=()=>{de.value=1},Qe=async()=>{ue.value=!0;try{Ce&&(l.value.AccessDenyTips=Ce.getValue()),we&&(l.value.UserAgentBlockedMsg=we.getValue());const e=await r.A.post("/system/save",Object.keys(l.value).map(e=>({Name:e,Value:l.value[e]})));e?.Success?n.oR.success(e.Message||"保存成功",{autoClose:2e3,position:"top-center"}):n.oR.error(e?.Message||"保存失败",{autoClose:2e3,position:"top-center"})}catch(e){n.oR.error("保存失败",{autoClose:2e3,position:"top-center"}),console.error("Error saving settings:",e)}finally{ue.value=!1}},De=async()=>{try{const e=await r.A.get("/system/IpBlackList");e?.Success&&e.Data&&(me.value="IP黑名单",pe.value="编辑全局IP黑名单",ge.value=e.Data,be.value=!0)}catch(e){n.oR.error("获取IP黑名单失败",{autoClose:2e3,position:"top-center"}),console.error("Error loading IP blacklist:",e)}},Be=async()=>{try{const e=await r.A.get("/system/GetIPRangeBlackList");e?.Success&&(me.value="IP地址段黑名单",pe.value="编辑IP地址段黑名单",ge.value=e.Data,be.value=!0)}catch(e){n.oR.error("获取IP地址段黑名单失败",{autoClose:2e3,position:"top-center"}),console.error("Error loading IP range blacklist:",e)}},We=async()=>{try{const e=await r.A.get("/system/IpWhiteList");e?.Success&&(me.value="IP白名单",pe.value="编辑IP白名单",ge.value=e.Data,be.value=!0)}catch(e){n.oR.error("获取IP白名单失败",{autoClose:2e3,position:"top-center"}),console.error("Error loading IP whitelist:",e)}},Ne=async()=>{ke.value=!0;try{let e="";"IP黑名单"===me.value?e="/system/SetIpBlackList":"IP地址段黑名单"===me.value?e="/system/SetIPRangeBlackList":"IP白名单"===me.value&&(e="/system/SetIpWhiteList");const l=await r.A.post(e,{content:ge.value});l?.Success?(n.oR.success("保存成功",{autoClose:2e3,position:"top-center"}),Oe()):n.oR.error(l?.Message||"保存失败",{autoClose:2e3,position:"top-center"})}catch(e){n.oR.error("保存失败",{autoClose:2e3,position:"top-center"}),console.error("Error saving IP list:",e)}finally{ke.value=!1}},Oe=()=>{be.value=!1,me.value="",pe.value="",ge.value=""},Xe=async e=>{const l=await r.A.post("/system/AddToWhiteList",{ip:e});n.oR.success(l?.Message||"已加入白名单",{autoClose:2e3,position:"top-center"})},je=async e=>{const l=await r.A.post("/system/AddToBlackList",{ip:e});n.oR.success(l?.Message||"已加入黑名单",{autoClose:2e3,position:"top-center"})},He=e=>{try{he.value=JSON.stringify(JSON.parse(e),null,2)}catch{he.value=e}fe.value=!0},Ye=e=>d()(e).format("MM-DD HH:mm"),ze=e=>d()(e).format("YYYY-MM-DD HH:mm:ss"),Je=async()=>{await(0,t.dY)(),Fe.value&&(Ce=c.EN.create(Fe.value,{value:l.value.AccessDenyTips||"",language:"html",theme:"vs",minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:"on"})),ye.value&&(we=c.EN.create(ye.value,{value:l.value.UserAgentBlockedMsg||"",language:"html",theme:"vs",minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:"on"}))};return(0,t.sV)(async()=>{await Ue(),await Me(),setTimeout(Je,100)}),(0,t.hi)(()=>{Ce&&Ce.dispose(),we&&we.dispose()}),(e,u)=>{const n=(0,t.g2)("q-btn"),r=(0,t.g2)("q-btn-group"),d=(0,t.g2)("q-toggle"),c=(0,t.g2)("q-input"),Ce=(0,t.g2)("q-select"),we=(0,t.g2)("q-card-section"),Ue=(0,t.g2)("q-card"),Je=(0,t.g2)("q-icon"),$e=(0,t.g2)("q-chip"),Ge=(0,t.g2)("q-card-actions"),Ze=(0,t.g2)("q-popup-proxy"),el=(0,t.g2)("q-tooltip"),ll=(0,t.g2)("vxe-column"),al=(0,t.g2)("vxe-table"),tl=(0,t.g2)("q-pagination"),ol=(0,t.g2)("q-badge"),sl=(0,t.g2)("q-space"),ul=(0,t.g2)("q-dialog"),nl=(0,t.gN)("close-popup");return(0,t.uX)(),(0,t.CE)("div",v,[(0,t.Lk)("div",b,[u[27]||(u[27]=(0,t.Lk)("div",{class:"col"},[(0,t.Lk)("div",{class:"text-h6"},"防火墙策略配置")],-1)),(0,t.Lk)("div",m,[(0,t.bF)(r,null,{default:(0,t.k6)(()=>[(0,t.bF)(n,{color:"negative",icon:"block",label:"编辑全局IP黑名单",onClick:De}),(0,t.bF)(n,{color:"warning",icon:"warning",label:"编辑IP地址段黑名单",onClick:Be}),(0,t.bF)(n,{color:"positive",icon:"security",label:"编辑IP白名单",onClick:We}),(0,t.bF)(n,{color:"primary",icon:"save",label:"保存配置",onClick:Qe,loading:ue.value},null,8,["loading"])]),_:1})])]),(0,t.bF)(Ue,{flat:"",bordered:"",class:"q-mb-md"},{default:(0,t.k6)(()=>[(0,t.bF)(we,null,{default:(0,t.k6)(()=>[(0,t.Lk)("div",p,[(0,t.bF)(d,{modelValue:_e.value,"onUpdate:modelValue":u[0]||(u[0]=e=>_e.value=e),label:"防火墙状态",color:"primary"},null,8,["modelValue"])]),(0,t.Lk)("div",g,[(0,t.Lk)("div",k,[(0,t.bF)(c,{modelValue:l.value.LimitIPFrequency,"onUpdate:modelValue":u[1]||(u[1]=e=>l.value.LimitIPFrequency=e),modelModifiers:{number:!0},type:"number",dense:"",outlined:"",prefix:"单IP访问频次:每",suffix:"秒内"},null,8,["modelValue"])]),(0,t.Lk)("div",f,[(0,t.bF)(c,{modelValue:l.value.LimitIPRequestTimes,"onUpdate:modelValue":u[2]||(u[2]=e=>l.value.LimitIPRequestTimes=e),modelModifiers:{number:!0},type:"number",dense:"",outlined:"",prefix:"最大请求",suffix:"次"},null,8,["modelValue"])]),(0,t.Lk)("div",h,[(0,t.bF)(c,{modelValue:l.value.BanIPTimespan,"onUpdate:modelValue":u[3]||(u[3]=e=>l.value.BanIPTimespan=e),modelModifiers:{number:!0},type:"number",dense:"",outlined:"",prefix:"冻结该IP",suffix:"分钟"},null,8,["modelValue"])]),(0,t.Lk)("div",F,[(0,t.bF)(c,{modelValue:l.value.LimitIPInterceptTimes,"onUpdate:modelValue":u[4]||(u[4]=e=>l.value.LimitIPInterceptTimes=e),modelModifiers:{number:!0},type:"number",dense:"",outlined:"",prefix:"拦截次数达到",suffix:"次,上报防火墙永久冻结该IP"},null,8,["modelValue"])])]),(0,t.Lk)("div",y,[(0,t.Lk)("div",C,[(0,t.bF)(Ce,{modelValue:l.value.ChallengeMode,"onUpdate:modelValue":u[5]||(u[5]=e=>l.value.ChallengeMode=e),options:Re,label:"挑战模式",dense:"",outlined:"","emit-value":"","map-options":""},null,8,["modelValue"])]),"CloudflareTurnstileChallenge"===l.value.ChallengeMode?((0,t.uX)(),(0,t.CE)("div",w,[(0,t.bF)(c,{autogrow:"",modelValue:l.value.TurnstileClientKey,"onUpdate:modelValue":u[6]||(u[6]=e=>l.value.TurnstileClientKey=e),label:"Cloudflare客户端公钥",placeholder:"0x4AAAAAAAAu4dr4wC-ZVpPT",dense:"",outlined:""},null,8,["modelValue"])])):(0,t.Q3)("",!0),"CloudflareTurnstileChallenge"===l.value.ChallengeMode?((0,t.uX)(),(0,t.CE)("div",R,[(0,t.bF)(c,{autogrow:"",modelValue:l.value.TurnstileSecretKey,"onUpdate:modelValue":u[7]||(u[7]=e=>l.value.TurnstileSecretKey=e),label:"Cloudflare服务端密钥",placeholder:"0x4AAAAAAAAu4eDk4a2NvM91-OoOptBYl5Y",dense:"",outlined:""},null,8,["modelValue"]),l.value.TurnstileSecretKey&&l.value.TurnstileClientKey?(0,t.Q3)("",!0):((0,t.uX)(),(0,t.CE)("div",L,[...u[28]||(u[28]=[(0,t.eW)(" 温馨提示:请先到 ",-1),(0,t.Lk)("a",{href:"https://dash.cloudflare.com/",target:"_blank"},"Cloudflare Turnstile",-1),(0,t.eW)(" 生成站点密钥。 ",-1)])]))])):(0,t.Q3)("",!0),l.value.ChallengeMode?((0,t.uX)(),(0,t.CE)("div",A,[(0,t.bF)(Ce,{modelValue:l.value.ChallengeRule,"onUpdate:modelValue":u[8]||(u[8]=e=>l.value.ChallengeRule=e),options:Le,dense:"",outlined:"","emit-value":"","map-options":"",prefix:"启用规则:"},null,8,["modelValue"])])):(0,t.Q3)("",!0),"Region"===l.value.ChallengeRule&&l.value.ChallengeMode?((0,t.uX)(),(0,t.CE)("div",V,[(0,t.bF)(c,{modelValue:l.value.ChallengeRegions,"onUpdate:modelValue":u[9]||(u[9]=e=>l.value.ChallengeRegions=e),label:"地区限制",placeholder:"竖线分隔,支持国家、地区、城市、运营商、ASN",dense:"",outlined:""},null,8,["modelValue"])])):(0,t.Q3)("",!0),"Region"===l.value.ChallengeRule&&l.value.ChallengeMode?((0,t.uX)(),(0,t.CE)("div",_,[(0,t.bF)(Ce,{modelValue:l.value.ChallengeRegionLimitMode,"onUpdate:modelValue":u[10]||(u[10]=e=>l.value.ChallengeRegionLimitMode=e),options:Ae,label:"限制模式",dense:"",outlined:"","emit-value":"","map-options":""},null,8,["modelValue"])])):(0,t.Q3)("",!0)]),(0,t.Lk)("div",I,[(0,t.Lk)("div",q,[(0,t.bF)(c,{autogrow:"",modelValue:l.value.DenyArea,"onUpdate:modelValue":u[11]||(u[11]=e=>l.value.DenyArea=e),label:"受限制的地区或运营商",placeholder:"禁止访问的地区,逗号分隔,如:江苏,苏州,移动,AS2333,DMIT,支持地区、运营商、ASN、机房名称",dense:"",outlined:""},null,8,["modelValue"])]),(0,t.Lk)("div",P,[(0,t.bF)(c,{autogrow:"",modelValue:l.value.AllowedArea,"onUpdate:modelValue":u[12]||(u[12]=e=>l.value.AllowedArea=e),label:"不受限制的地区或运营商",placeholder:"不受访问限制的地区或网络,逗号分隔,支持地区、运营商、ASN、机房名称",dense:"",outlined:""},null,8,["modelValue"])])]),(0,t.Lk)("div",x,[(0,t.Lk)("div",U,[(0,t.bF)(c,{autogrow:"",modelValue:l.value.AttackRedirects,"onUpdate:modelValue":u[13]||(u[13]=e=>l.value.AttackRedirects=e),label:"攻击重定向",placeholder:"检测到CC攻击时,将请求重定向到指定URL,一行一个",dense:"",outlined:""},null,8,["modelValue"])]),(0,t.Lk)("div",M,[(0,t.bF)(c,{autogrow:"",modelValue:l.value.BlockHeaderValues,"onUpdate:modelValue":u[14]||(u[14]=e=>l.value.BlockHeaderValues=e),label:"屏蔽固定的请求头值",placeholder:"禁止的HeaderValues,竖线分隔",dense:"",outlined:""},null,8,["modelValue"])])]),(0,t.Lk)("div",T,[(0,t.Lk)("div",E,[(0,t.bF)(c,{autogrow:"",modelValue:l.value.UserAgentBlocked,"onUpdate:modelValue":u[15]||(u[15]=e=>l.value.UserAgentBlocked=e),label:"UA标识限制",placeholder:"禁止的UserAgent,逗号分隔(MicroMessenger,QQ)",dense:"",outlined:""},null,8,["modelValue"])])])]),_:1})]),_:1}),(0,t.bF)(Ue,{flat:"",bordered:"",class:"q-mb-md"},{default:(0,t.k6)(()=>[(0,t.bF)(we,null,{default:(0,t.k6)(()=>[u[31]||(u[31]=(0,t.Lk)("div",{class:"text-h6 q-mb-md"},"提示信息配置",-1)),(0,t.Lk)("div",K,[u[29]||(u[29]=(0,t.Lk)("div",{class:"text-subtitle1 q-mb-sm"},"受限制提示语:",-1)),(0,t.Lk)("div",{ref_key:"accessDenyTipsEditor",ref:Fe,class:"editor-container",style:{height:"200px"}},null,512)]),(0,t.Lk)("div",S,[u[30]||(u[30]=(0,t.Lk)("div",{class:"text-subtitle1 q-mb-sm"},"UA限制提示语:",-1)),(0,t.Lk)("div",{ref_key:"userAgentBlockedMsgEditor",ref:ye,class:"editor-container",style:{height:"400px"}},null,512)])]),_:1})]),_:1}),(0,t.bF)(Ue,{flat:"",bordered:"",class:"q-mb-md"},{default:(0,t.k6)(()=>[(0,t.bF)(we,null,{default:(0,t.k6)(()=>[(0,t.Lk)("div",Q,[(0,t.bF)(Je,{name:"security",class:"q-mr-sm"}),u[32]||(u[32]=(0,t.eW)(" 拦截日志 ",-1)),se.value>0?((0,t.uX)(),(0,t.Wv)($e,{key:0,color:"negative","text-color":"white",label:`累计拦截 ${se.value} 次`,class:"q-ml-sm"},null,8,["label"])):(0,t.Q3)("",!0)]),0===a.value.length?((0,t.uX)(),(0,t.CE)("div",D," 暂无拦截日志 ")):((0,t.uX)(),(0,t.CE)("div",B,[(0,t.Lk)("div",W,[(0,t.Lk)("div",N,[(0,t.bF)(n,{color:"negative",icon:"delete",label:"清空日志",loading:re.value},{default:(0,t.k6)(()=>[(0,t.bF)(Ze,{"transition-show":"scale","transition-hide":"scale"},{default:(0,t.k6)(()=>[(0,t.bF)(Ue,null,{default:(0,t.k6)(()=>[(0,t.bF)(we,{class:"row items-center"},{default:(0,t.k6)(()=>[(0,t.bF)(Je,{name:"warning",color:"red",size:"2rem",class:"q-mr-sm"}),u[33]||(u[33]=(0,t.Lk)("div",null,[(0,t.Lk)("div",{class:"text-h6"},"确认清空拦截日志吗?"),(0,t.Lk)("div",{class:"text-subtitle2"},"清空后将无法恢复!")],-1))]),_:1}),(0,t.bF)(Ge,{align:"right"},{default:(0,t.k6)(()=>[(0,t.bo)((0,t.bF)(n,{color:"negative",label:"确认",onClick:Te},null,512),[[nl]]),(0,t.bo)((0,t.bF)(n,{color:"primary",label:"取消"},null,512),[[nl]])]),_:1})]),_:1})]),_:1})]),_:1},8,["loading"])]),(0,t.Lk)("div",O,[(0,t.bF)(d,{modelValue:ie.value,"onUpdate:modelValue":[u[16]||(u[16]=e=>ie.value=e),Se],label:"按IP去重"},null,8,["modelValue"])]),(0,t.Lk)("div",X,[(0,t.bF)(n,{color:"primary",icon:"refresh",label:"刷新",onClick:Me,loading:ne.value},null,8,["loading"])]),(0,t.Lk)("div",j,[(0,t.bF)(c,{autofocus:"",modelValue:Pe.value,"onUpdate:modelValue":u[18]||(u[18]=e=>Pe.value=e),dense:"",outlined:"",placeholder:"搜索IP、请求URL、来源URL、UserAgent、备注",onKeyup:(0,o.jR)(Me,["enter"]),debounce:"100"},{prepend:(0,t.k6)(()=>[(0,t.bF)(Je,{name:"search",class:"cursor-pointer"})]),append:(0,t.k6)(()=>[Pe.value?((0,t.uX)(),(0,t.Wv)(Je,{key:0,name:"close",class:"cursor-pointer",onClick:u[17]||(u[17]=e=>Pe.value="")})):(0,t.Q3)("",!0)]),_:1},8,["modelValue"])])]),(0,t.bF)(al,{ref:"tableRef",data:xe.value,stripe:"",border:"",loading:ne.value},{default:(0,t.k6)(()=>[(0,t.bF)(ll,{field:"IP",title:"IP地址",width:"160",sortable:""},{default:(0,t.k6)(({row:e})=>[(0,t.Lk)("a",{href:`/tools/ip/${e.IP}`,target:"_blank",class:"text-primary text-weight-bold"},(0,s.v_)(e.IP),9,H),(0,t.bF)(n,{color:"positive",icon:"security",dense:"",flat:"",size:"sm"},{default:(0,t.k6)(()=>[(0,t.bF)(el,{class:"bg-indigo"},{default:(0,t.k6)(()=>[...u[34]||(u[34]=[(0,t.eW)("添加到白名单",-1)])]),_:1}),(0,t.bF)(Ze,{"transition-show":"scale","transition-hide":"scale"},{default:(0,t.k6)(()=>[(0,t.bF)(Ue,null,{default:(0,t.k6)(()=>[(0,t.bF)(we,{class:"row items-center"},{default:(0,t.k6)(()=>[(0,t.bF)(Je,{name:"warning",color:"red",size:"2rem",class:"q-mr-sm"}),u[35]||(u[35]=(0,t.Lk)("div",null,[(0,t.Lk)("div",{class:"text-h6"},"确认操作"),(0,t.Lk)("div",{class:"text-subtitle2"}," 此操作将标记该用户IP为白名单,是否继续? ")],-1))]),_:1}),(0,t.bF)(Ge,{align:"right"},{default:(0,t.k6)(()=>[(0,t.bo)((0,t.bF)(n,{flat:"",label:"确认",color:"negative",onClick:l=>Xe(e.IP)},null,8,["onClick"]),[[nl]]),(0,t.bo)((0,t.bF)(n,{flat:"",label:"取消",color:"primary"},null,512),[[nl]])]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),(0,t.bF)(ll,{field:"Address",title:"IP地理位置",width:"180"}),(0,t.bF)(ll,{field:"RequestUrl",title:"请求URL","min-width":"200"},{default:(0,t.k6)(({row:e})=>[(0,t.Lk)("a",{href:e.RequestUrl,target:"_blank",class:"text-primary"},(0,s.v_)(e.RequestUrl),9,Y)]),_:1}),(0,t.bF)(ll,{field:"Referer",title:"来源URL",width:"200"},{default:(0,t.k6)(({row:e})=>[(0,t.Lk)("a",{href:e.Referer,target:"_blank",class:"text-primary"},(0,s.v_)(e.Referer),9,z)]),_:1}),(0,t.bF)(ll,{field:"UserAgent",title:"UserAgent",width:"200"}),(0,t.bF)(ll,{field:"Time",title:"拦截时间",width:"120",sortable:""},{default:(0,t.k6)(({row:e})=>[(0,t.eW)((0,s.v_)(Ye(e.Time)),1)]),_:1}),(0,t.bF)(ll,{field:"Remark",title:"备注",width:"120"}),(0,t.bF)(ll,{width:"40",align:"center"},{default:(0,t.k6)(({row:e})=>[(0,t.bF)(n,{color:"info",icon:"visibility",dense:"",flat:"",size:"sm",onClick:l=>He(e.Headers)},{default:(0,t.k6)(()=>[(0,t.bF)(el,{class:"bg-green"},{default:(0,t.k6)(()=>[...u[36]||(u[36]=[(0,t.eW)("查看请求头",-1)])]),_:1})]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data","loading"]),(0,t.Lk)("div",J,[(0,t.Lk)("div",$,[(0,t.Lk)("span",G," 共 "+(0,s.v_)(Ie.value.length)+" 条记录,当前显示第 "+(0,s.v_)((de.value-1)*ce.value+1)+" - "+(0,s.v_)(Math.min(de.value*ce.value,Ie.value.length))+" 条 ",1)]),(0,t.Lk)("div",Z,[(0,t.bF)(tl,{modelValue:de.value,"onUpdate:modelValue":[u[19]||(u[19]=e=>de.value=e),Ee],max:qe.value,"max-pages":6,"direction-links":"","boundary-links":"",color:"primary"},null,8,["modelValue","max"])]),(0,t.Lk)("div",ee,[(0,t.bF)(Ce,{modelValue:ce.value,"onUpdate:modelValue":[u[20]||(u[20]=e=>ce.value=e),Ke],options:ve,dense:"",outlined:"",label:"每页显示","emit-value":"","map-options":""},null,8,["modelValue"])])])]))]),_:1})]),_:1}),i.value.length>0?((0,t.uX)(),(0,t.Wv)(Ue,{key:0,flat:"",bordered:""},{default:(0,t.k6)(()=>[(0,t.bF)(we,null,{default:(0,t.k6)(()=>[(0,t.Lk)("div",le,[(0,t.bF)(Je,{name:"leaderboard",class:"q-mr-sm"}),u[37]||(u[37]=(0,t.eW)(" 拦截次数排行榜 ",-1))]),(0,t.bF)(al,{data:i.value,stripe:"",border:""},{default:(0,t.k6)(()=>[(0,t.bF)(ll,{field:"index",title:"序号",width:"80",align:"center"},{default:(0,t.k6)(({$rowIndex:e})=>[(0,t.bF)(ol,{color:e+1<=3?"negative":"grey",label:e+1},null,8,["color","label"])]),_:1}),(0,t.bF)(ll,{field:"Key",title:"IP地址"},{default:(0,t.k6)(({row:e})=>[(0,t.Lk)("a",{href:`https://ipinfo.io/${e.Key}`,target:"_blank",class:"text-primary text-weight-bold"},(0,s.v_)(e.Key),9,ae),(0,t.bF)(n,{color:"negative",icon:"block",dense:"",flat:"",size:"sm",class:"q-ml-sm"},{default:(0,t.k6)(()=>[(0,t.bF)(el,{class:"bg-red"},{default:(0,t.k6)(()=>[...u[38]||(u[38]=[(0,t.eW)("添加到黑名单",-1)])]),_:1}),(0,t.bF)(Ze,{"transition-show":"scale","transition-hide":"scale"},{default:(0,t.k6)(()=>[(0,t.bF)(Ue,null,{default:(0,t.k6)(()=>[(0,t.bF)(we,{class:"row items-center"},{default:(0,t.k6)(()=>[(0,t.bF)(Je,{name:"warning",color:"red",size:"2rem",class:"q-mr-sm"}),u[39]||(u[39]=(0,t.Lk)("div",null,[(0,t.Lk)("div",{class:"text-h6"},"确认操作"),(0,t.Lk)("div",{class:"text-subtitle2"}," 此操作将标记该用户IP为黑名单,是否继续? ")],-1))]),_:1}),(0,t.bF)(Ge,{align:"right"},{default:(0,t.k6)(()=>[(0,t.bo)((0,t.bF)(n,{flat:"",label:"确认",color:"negative",onClick:l=>je(e.Key)},null,8,["onClick"]),[[nl]]),(0,t.bo)((0,t.bF)(n,{flat:"",label:"取消",color:"primary"},null,512),[[nl]])]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),(0,t.bF)(ll,{field:"Count",title:"拦截次数",sortable:"",align:"center"},{default:(0,t.k6)(({row:e})=>[(0,t.bF)($e,{color:"negative","text-color":"white",label:e.Count},null,8,["label"])]),_:1}),(0,t.bF)(ll,{field:"Address",title:"地理位置"}),(0,t.bF)(ll,{field:"Start",title:"拦截开始时间",width:"160",sortable:""},{default:(0,t.k6)(({row:e})=>[(0,t.eW)((0,s.v_)(ze(e.Start)),1)]),_:1}),(0,t.bF)(ll,{field:"End",title:"拦截截止时间",width:"160",sortable:""},{default:(0,t.k6)(({row:e})=>[(0,t.eW)((0,s.v_)(ze(e.End)),1)]),_:1}),(0,t.bF)(ll,{field:"Continue",title:"持续时长"})]),_:1},8,["data"])]),_:1})]),_:1})):(0,t.Q3)("",!0),(0,t.bF)(ul,{modelValue:be.value,"onUpdate:modelValue":u[22]||(u[22]=e=>be.value=e)},{default:(0,t.k6)(()=>[(0,t.bF)(Ue,{style:{width:"60vw"}},{default:(0,t.k6)(()=>[(0,t.bF)(we,{class:"row items-center q-pb-none"},{default:(0,t.k6)(()=>[(0,t.Lk)("div",te,(0,s.v_)(pe.value),1),(0,t.bF)(sl),(0,t.bF)(n,{icon:"close",flat:"",round:"",dense:"",onClick:Oe})]),_:1}),(0,t.bF)(we,{class:"q-pt-none"},{default:(0,t.k6)(()=>[(0,t.bF)(c,{autogrow:"",modelValue:ge.value,"onUpdate:modelValue":u[21]||(u[21]=e=>ge.value=e),placeholder:"请输入IP地址",hint:"IP地址段黑名单"===me.value?"每行一条地址段,起始地址和结束地址用空格分隔开,其余信息也用空格分隔开":"多个IP之间用英文逗号分隔"},null,8,["modelValue","hint"])]),_:1}),(0,t.bF)(Ge,{align:"right"},{default:(0,t.k6)(()=>[(0,t.bF)(n,{flat:"",label:"取消",onClick:Oe}),(0,t.bF)(n,{color:"primary",label:"保存",onClick:Ne,loading:ke.value},null,8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),(0,t.bF)(ul,{modelValue:fe.value,"onUpdate:modelValue":u[24]||(u[24]=e=>fe.value=e)},{default:(0,t.k6)(()=>[(0,t.bF)(Ue,{style:{"min-width":"600px"}},{default:(0,t.k6)(()=>[(0,t.bF)(we,null,{default:(0,t.k6)(()=>[...u[40]||(u[40]=[(0,t.Lk)("div",{class:"text-h6"},"请求头详情",-1)])]),_:1}),(0,t.bF)(we,null,{default:(0,t.k6)(()=>[(0,t.Lk)("pre",oe,(0,s.v_)(he.value),1)]),_:1}),(0,t.bF)(Ge,{align:"right"},{default:(0,t.k6)(()=>[(0,t.bF)(n,{color:"negative",label:"关闭",onClick:u[23]||(u[23]=e=>fe.value=!1)})]),_:1})]),_:1})]),_:1},8,["modelValue"]),(0,t.bF)(ul,{modelValue:Ve.value,"onUpdate:modelValue":u[26]||(u[26]=e=>Ve.value=e)},{default:(0,t.k6)(()=>[(0,t.bF)(Ue,null,{default:(0,t.k6)(()=>[(0,t.bF)(we,null,{default:(0,t.k6)(()=>[...u[41]||(u[41]=[(0,t.Lk)("div",{class:"text-h6"},"确认关闭WAF防火墙吗?",-1)])]),_:1}),(0,t.bF)(Ge,{align:"right"},{default:(0,t.k6)(()=>[(0,t.bo)((0,t.bF)(n,{color:"negative",label:"确认",onClick:u[25]||(u[25]=e=>l.value.FirewallEnabled="false")},null,512),[[nl]])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}}}),ue=a(1317),ne=a(10258),re=a(20407),ie=a(63663),de=a(17180),ce=a(91343),ve=a(38622),be=a(40975),me=a(64503),pe=a(97491),ge=a(34854),ke=a(71248),fe=a(76997),he=a(74183),Fe=a(62373),ye=a(51375),Ce=a(25915),we=a(60515),Re=a(22110),Le=a.n(Re);const Ae=(0,ue.A)(se,[["__scopeId","data-v-6f93b4a5"]]);var Ve=Ae;Le()(se,"components",{QBtnGroup:ne.A,QBtn:re.A,QCard:ie.A,QCardSection:de.A,QToggle:ce.A,QInput:ve.A,QSelect:be.A,QIcon:me.A,QChip:pe.A,QPopupProxy:ge.A,QCardActions:ke.A,QTooltip:fe.A,QPagination:he.A,QBadge:Fe.A,QDialog:ye.A,QSpace:Ce.A}),Le()(se,"directives",{ClosePopup:we.A})}}]);