File: /www/server/panel/BTPanel/static/js/index397.js
import{c as re,a0 as le,w as ce,b as de,d8 as pe,c7 as ue,d3 as me,K as _e,f as fe,cZ as ge}from"./utils-lib.js?v=1777008528";import{c as be,r as p,H as I,o as he,I as ve,J as h,p as s,j as i,k as c,q as t,e as d,C as w,s as _,v as f,x as S,L as C,K as T,F as L,B as D,y as N,M as xe,Q as ye,z as ke,aX as we,G as Se,bz as Ce,bA as Te}from"./base-lib.js?v=1777008528";import{e as Le,k as V}from"./index3.js?v=1777008528";import{getRiskCount as De}from"./site.js?v=1777008528";import{h as Ee}from"./useController19.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";import"./useStore2.js?v=1777008528";import"./useController13.js?v=1777008528";import"./useMethod12.js?v=1777008528";import"./index192.js?v=1777008528";const Me={id:"safeDetectList",class:"p-[2rem]"},Oe={class:"progress-header"},je={class:"progress-header-cot"},Fe={class:"flex items-center"},Be={key:0,class:"scan-icon relative h-[8rem] w-[8rem] flex"},He={key:1},ze={class:"progress-header-cot h-[8rem]"},Ie=["innerHTML"],Ne={class:"scanning-progress-cont"},Ve={class:"progress-header-cot"},Pe={class:"progress-cont-list"},Re={key:0},Ae={class:"inline-grid grid-cols-4 w-full mt-20px"},Ge=["onClick"],Je={class:"progress_type"},Ke={class:"flex-1"},We={key:0},$e={key:1},qe={key:2,class:"text-danger mr-[4px]"},Qe={key:3,class:"text-primary"},Ue={class:"progress_fold text-small flex items-center"},Xe={class:"mr-4px"},Ze={class:"progress_item_body"},Ye={class:"flex items-center justify-between w-full"},es={class:"flex items-center ml-12px"},ss=["innerHTML"],ts={class:"flex flex-col py-[1rem] px-[1.6rem] text-small progress_item_info"},as={class:"flex items-center"},ns=["innerHTML"],os={class:"flex"},is=["innerHTML"],rs={class:"p-[2rem]"},ls=be({__name:"index",setup(cs){const P=fe(),{payment:v}=re(),R=p(),A=p(!1),E=p([{name:"webscan",title:"网站配置安全性"},{name:"filescan",title:"文件泄露"},{name:"backup",title:"备份文件"},{name:"index",title:"首页内容风险"},{name:"webhorse",title:"挂马排查"},{name:"deadchain",title:"坏链扫描"},{name:"database",title:"数据库安全"},{name:"ftps",title:"网站FTP风险"},{name:"backend",title:"网站后台安全"}]),u=p(""),e=I({title:"定期扫描网站,提升网站安全性",msg:"当前安全风险未知,请立即扫描",isFirst:!0,error:0,scanStatus:!1,isEnd:!1,siteList:[],time:0,scanTypeStatus:{vulscan:!0,webscan:!0,filescan:!0,backup:!0,index:!0,webhorse:!0,deadchain:!0,database:!0,ftps:!0,backend:!0},btnObj:{text:"立即扫描",type:"primary"},progress:0,progressColor:"var(--el-color-primary)",progressConfig:{},statusTotal:{},active:{vulscan:!1,webscan:!1,filescan:!1,backup:!1,index:!1,webhorse:!1,deadchain:!1,database:!1,ftps:!1,backend:!1}}),x=I({0:{text:"警告",bg:"rgba(252, 109, 38, 0.1)",color:"#fc6d26"},1:{text:"低危",bg:"rgba(232, 213, 68, 0.1)",color:"#D4BB00"},2:{text:"中危",bg:"rgba(240, 173, 78, 0.14)",color:"#f0ad4e"},3:{text:"高危",bg:"rgba(239, 8, 8, 0.1)",color:"#EF0808"}});let l=null;const G=p(),g=p(!1),J=p(!1),y=p([]),K=p([Le({key:"name",type:"page"}),{label:"网站名",prop:"name"}]),M=()=>{l=le({route:"/ws_project",onMessage:q})},W=a=>{J.value=!0,e.siteList=a},$=()=>{if(e.siteList.length==0)return P.error("请选择扫描站点"),!1;g.value=!1,O()},q=(a,r)=>{const n=JSON.parse(r.data);if(n.hasOwnProperty("site_list")){y.value=n.site_list,e.siteList=n.site_list;return}if(n.hasOwnProperty("end")){if(e.progress=n.bar,e.msg=n.info,n.dangerous&&(e.progressConfig[n.type]||(e.progressConfig[n.type]=[]),e.progressConfig[n.type].push(n),e.statusTotal[n.type]?e.statusTotal[n.type]++:e.statusTotal[n.type]=1,e.error++),n.end){e.isEnd=!0,e.scanStatus=!1,l==null||l.close(),Ee(),b("end");return}n.type!=u.value&&(u.value&&!e.statusTotal[u.value]&&(e.scanTypeStatus[u.value]=!1),u.value=n.type)}},Q=a=>{e.active[a]||(e.active[a]=!1),e.active[a]=!e.active[a]},O=async()=>{if(e.time=0,e.error=0,setInterval(()=>{e.time++},1e3),v.value.authType!=="ltd")return V({sourceId:20});e.siteList=y.value,e.isFirst?(j(),e.scanStatus=!0,e.isFirst=!1,b("scan")):e.scanStatus?(await ce({title:"取消扫描",content:"确定取消扫描吗?"}),l==null||l.close(),e.isFirst=!0,b("scan"),F()):(F(),j(),e.scanStatus=!0,b("scan"))},j=async()=>{await M(),await(l==null?void 0:l.send({mod_name:"webscanning",def_name:"ScanAllSite",site_list:e.siteList.map(a=>a.name),ws_callback:"123"}))},b=a=>{switch(a){case"scan":e.title="正在扫描",e.isEnd=!1,e.btnObj.text="取消扫描",e.btnObj.type="warning";break;case"end":B(),e.btnObj.text="重新扫描",e.btnObj.type="primary";break}},U=a=>{v.value.authType=="free"&&V({sourceId:65})},F=()=>{u.value="",e.scanStatus=!1,e.isEnd=!1,e.error=0,e.time=0,e.progress=0,e.progressConfig={vulscan:[],webscan:[],filescan:[],backup:[],index:[],webhorse:[],deadchain:[],database:[],ftps:[],backend:[]},e.statusTotal={},e.active={vulscan:!1,webscan:!1,filescan:!1,backup:!1,index:!1,webhorse:!1,deadchain:!1,database:!1,ftps:!1,backend:!1},e.scanTypeStatus={vulscan:!0,webscan:!0,filescan:!0,backup:!0,index:!0,webhorse:!0,deadchain:!0,database:!0,ftps:!0,backend:!0},e.btnObj.text="立即扫描",e.btnObj.type="primary",e.title="定期扫描网站,提升网站安全性",e.msg="当前安全风险未知,请立即扫描"},X=()=>{l==null||l.send({mod_name:"webscanning",def_name:"GetAllSite",ws_callback:""})},B=async()=>{try{const{data:a}=await De();a.risk_count.high+a.risk_count.middle>0?(e.error=a.risk_count.high+a.risk_count.middle,e.title="".concat(a.web_count,"个网站检测出,高危").concat(a.risk_count.high>0?'<span class="text-danger">'.concat(a.risk_count.high,"</span>"):0,"个/中危").concat(a.risk_count.middle,"个!"),e.msg="上次扫描时间:".concat(a.scan_time)):(e.title="已完成对".concat(a.web_count,"个网站的全面检测,暂未发现风险。"),e.msg="最后扫描时间:".concat(a.scan_time)),a.risk_count.high>0&&(e.isEnd=!0)}catch(a){}};return B(),he(()=>{M(),X()}),(a,r)=>{const n=de,Z=ke,Y=we,H=Se,z=pe,ee=ue,se=Ce,te=Te,ae=me,ne=_e,oe=ve("bt-loading");return h((i(),c("div",Me,[t("div",Oe,[t("div",je,[t("div",Fe,[s(e).scanStatus?(i(),c("div",Be,[r[1]||(r[1]=t("div",{class:"animate-spin absolute top-0 border-primary border-b-2 rounded-full h-full w-full"},null,-1)),d(n,{icon:"scanning-danger",size:60,color:"#F39C12",class:"m-auto"})])):(i(),c("div",He,[s(e).warn||s(e).error?(i(),w(n,{key:0,icon:"scanning-danger",size:70,color:"#ef0808"})):(i(),w(n,{key:1,icon:"scanning-"+(s(e).isEnd?"success":"danger"),size:72,color:s(e).isEnd?"var(--el-color-primary)":"#F39C12"},null,8,["icon","color"]))]))])]),t("div",ze,[t("div",{class:"scanning-progress-title",innerHTML:s(e).title},null,8,Ie),t("div",Ne,_(s(e).msg.length>35?s(e).msg.substring(0,35)+"...":s(e).msg),1)]),t("div",Ve,[d(Z,{class:C({"warning-hover":s(e).scanStatus}),plain:!!s(e).scanStatus,type:s(e).btnObj.type,onClick:O},{default:f(()=>[S(_(s(e).btnObj.text),1)]),_:1},8,["class","plain","type"])])]),h(d(Y,{class:"!w-full",color:s(e).progressColor,"show-text":!1,"stroke-width":2,percentage:s(e).progress},null,8,["color","percentage"]),[[T,s(e).scanStatus]]),h(d(H,{class:"!mt-0 !mb-20px !bg-base"},null,512),[[T,!s(e).scanStatus]]),t("div",Pe,[!s(e).scanStatus&&!s(e).isEnd?(i(),c("div",Re,[r[2]||(r[2]=t("div",{class:"font-bold text-medium text-secondary my-[4rem]"},"支持网站以下安全扫描项:",-1)),t("div",Ae,[(i(!0),c(L,null,D(s(E),(o,k)=>(i(),c("div",{key:k,class:"flex flex-col inline-block items-center mb-20px"},[d(z,{class:"w-[4rem] inline-block mb-8px opacity-90",src:"/scan/scanning-"+o.name+"-ico.svg"},null,8,["src"]),S(" "+_(o.title),1)]))),128))])])):N("",!0),s(e).scanStatus||s(e).isEnd?(i(!0),c(L,{key:1},D(s(E),(o,k)=>(i(),c("div",{key:k,class:C([o.name+"_item "+(s(e).active[o.name]?"active":""),"progress_item"])},[t("div",{class:"progress_item_header",onClick:m=>Q(o.name)},[t("div",Je,[d(z,{class:"mr-12px w-[2rem]",src:"/scan/scanning-"+o.name+"-ico.svg"},null,8,["src"]),t("span",null,_(o.title),1)]),t("div",Ke,[s(e).scanStatus&&s(u)==o.name?(i(),c("span",We," 正在扫描... ")):s(e).scanStatus&&s(u)!=o.name&&!s(e).statusTotal[o.name]&&s(e).scanTypeStatus[o.name]?(i(),c("span",$e," 等待扫描 ")):s(e).statusTotal[o.name]?(i(),c("span",qe," 发现"+_(s(e).statusTotal[o.name])+"项危险 ",1)):(i(),c("span",Qe,"无风险项"))]),t("div",Ue,[t("span",Xe,_(s(e).active[o.name]?"收起":"展开"),1),t("i",{class:C(s(e).active[o.name]?"svgtofont-el-arrow-up":"svgtofont-el-arrow-down")},null,2)])],8,Ge),h(t("div",Ze,[d(te,{accordion:""},{default:f(()=>[(i(!0),c(L,null,D(s(e).progressConfig[o.name],(m,ie)=>(i(),w(se,{key:ie,disabled:s(v).authType=="free"},{title:f(()=>[t("div",Ye,[t("div",es,[t("span",{class:"text-small h-[2.2rem] flex items-center px-[8px] rounded-small mr-[1rem]",style:xe({color:s(x)[m.dangerous||0].color,backgroundColor:s(x)[m.dangerous||0].bg})},_(s(x)[m.dangerous||0].text),5),t("span",{innerHTML:m.info,class:"w-[46rem] truncate"},null,8,ss)]),d(ee,{class:"mb-2px mr-4px",onClick:U},{default:f(()=>[...r[3]||(r[3]=[S(" 详情 ",-1)])]),_:1})])]),default:f(()=>[t("div",ts,[t("div",as,[r[4]||(r[4]=t("span",{class:"w-[6rem] flex-shrink-0 inline-block"}," 详情: ",-1)),t("span",{class:"leading-[1.6rem]",innerHTML:m.detail},null,8,ns)]),d(H,{class:"!my-8px"}),t("div",os,[r[5]||(r[5]=t("span",{class:"w-[6rem] flex-shrink-0 inline-block"}," 修复方案: ",-1)),t("span",{innerHTML:m.repair},null,8,is)])])]),_:2},1032,["disabled"]))),128))]),_:2},1024)],512),[[T,s(e).active[o.name]]])],2))),128)):N("",!0)]),d(ne,{title:"选择扫描网站",modelValue:s(g),"onUpdate:modelValue":r[0]||(r[0]=o=>ye(g)?g.value=o:null),ref_key:"scanSiteListDialog",ref:G,area:45,onConfirm:$,showFooter:""},{default:f(()=>[t("div",rs,[d(ae,{ref_key:"scanSiteTableRef",ref:R,data:s(y),column:s(K),"max-height":296,onSelectionChange:W,description:"网站列表为空"},null,8,["data","column"])])]),_:1},8,["modelValue"])])),[[oe,s(A)]])}}}),ks=ge(ls,[["__scopeId","data-v-bea56db3"]]);export{ks as default};