File: /www/server/panel/BTPanel/static/js/images-safe-scan-dialog.js
import{_ as e}from"./index113.js?v=1777008528";import{c as s,h as t,o as a,aB as i,k as n,l as r,p as c,I as l,q as m,J as o,v as d,e as p,x as b,y as g,aY as f,F as _,z as u,b7 as y,A as k,aO as v}from"./base-lib.js?v=1777008528";import{u as x,a7 as L,M as w,d as j,e as O}from"./utils-lib.js?v=1777008528";import"./validator.js?v=1777008528";import"./index104.js?v=1777008528";import"./column.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";const h={class:"p-2rem"},S={class:"scanHead flex justify-between mb-2rem"},T={class:"scanHead__left flex"},H={class:"w-[8rem] h-[8rem]"},F={class:"pt-[2rem] pl-2rem w-[40rem]"},J=["innerHTML"],M={class:"text-[#666] mt-1rem"},B={class:"scanHead__right pt-[2.6rem]"},C={class:"scanBody h-[50rem] overflow-auto"},N=["onClick"],I={class:"text-[1.4rem] font-bold leading-[3.5rem]"},E={key:0,class:"flex"},W={key:0,class:"text-danger"},P={key:1},q={key:2,class:"text-primary"},z={class:"scanBody__content mb-[2rem] mx-[2rem]"},A={class:"scanBody__content__title border-b border-[#ececec] pb-[.4rem] mb-[.4rem]"},Y={class:"scanBody__content__desc flex border-b border-[#ececec] pb-[.4rem] mb-[.4rem]"},D=["innerHTML"],G={class:"scanBody__content__repair flex"},K=["innerHTML"],Q=O(s({__name:"images-safe-scan-dialog",setup(s){const{payment:O}=x(),Q={title:"容器安全一键检测-功能介绍",ps:"检测敏感信息、后门、漏洞、可疑操作等常见风险。",source:151,desc:["异常历史命令","敏感信息泄露","后门排查","容器逃逸"],tabImgs:[{title:"容器检测",imgSrc:"https://www.bt.cn/Public/new/plugin/introduce/docker/dockerContainerScan.png"}]},R=[{color:"#ff0000",percentage:20},{color:"#ff0000",percentage:40},{color:"#fc6d26",percentage:60},{color:"#fc6d26",percentage:80},{color:"#20a53a",percentage:100}],U=t({title:"立即进行镜像检测,确保您的项目安全。",isFirst:!0,isScan:!1,isEnd:!1,iconType:"normal",detect:0,imageList:[],msg:"",btnObj:{text:"一键检测",type:"primary",disabled:!1},score:100,scanTime:0});let V=[],X=0,Z=null;const $=e=>e+"分";let ee=null;const se=()=>{null==ee||ee.close(),ee=L({route:"/ws_model",onMessage:te})},te=(e,s)=>{var t;const a=JSON.parse(s.data);if(a.hasOwnProperty("image_list"))return U.imageList=a.image_list.map((e=>(e.active=!1,e))),void(V=JSON.parse(JSON.stringify(a.image_list)));if(a.hasOwnProperty("end")){U.msg=a.msg,U.score=U.score-a.score;const e=U.imageList[X-1];1!=a.status&&(U.detect++,null==e.riskList&&(e.riskList=[]),null==(t=e.riskList)||t.push(a)),a.end&&X>0&&(void 0===e.riskList&&(e.noWarring=!0),ie())}},ae=()=>{if(X=0,U.scanTime=0,U.detect=0,U.score=100,Z=setInterval((()=>{U.scanTime++}),1e3),U.isFirst){if(0==U.imageList.length)return w.error("请先添加镜像");U.isScan||se(),ie(),U.isScan=!0,U.isFirst=!1,ne("scan")}else U.isScan?(null==ee||ee.close(),re()):(U.imageList=JSON.parse(JSON.stringify(V)),ie(),U.isScan=!0,ne("scan"))},ie=()=>{X<U.imageList.length?(null==ee||ee.send({model_index:"btdocker",mod_name:"security",def_name:"image_safe_scan",image_id:U.imageList[X].id,ws_callback:"123"}),X++):(U.isScan=!1,U.isEnd=!0,U.imageList=U.imageList.sort(((e,s)=>e.noWarring?1:s.noWarring?-1:0)),clearInterval(Z),ne("end"))},ne=e=>{switch(e){case"scan":U.title="正在检测镜像,请稍候...",U.isEnd=!1,U.btnObj.text="取消检测",U.btnObj.type="default";break;case"restart":U.title="立即进行镜像检测,确保您的项目安全。",U.btnObj.text="重新检测",U.btnObj.type="primary";break;case"end":let e="";e=0==U.detect?"未发现安全漏洞":'一共发现<span class="text-[#fc6d26]">'.concat(U.detect,"</span>项风险"),U.title="检测完成,"+e,U.msg="检测完成,共耗时"+U.scanTime+"秒",U.btnObj.text="重新检测",U.btnObj.type="primary"}},re=()=>{U.title="立即进行镜像检测,确保您的项目安全。",U.msg="",U.isFirst=!0,U.isScan=!1,U.isEnd=!1,U.iconType="normal",U.detect=0,U.imageList=JSON.parse(JSON.stringify(V)),U.btnObj.text="一键检测",U.btnObj.type="primary",U.btnObj.disabled=!1,U.score=100};return a((()=>{se(),null==ee||ee.send({model_index:"btdocker",mod_name:"security",def_name:"get_image_list",ws_callback:"123"})})),i((()=>{clearInterval(Z)})),(s,t)=>{const a=j,i=y,x=k,L=v,w=e;return n(),r("section",h,["ltd"===c(O).authType?(n(),r(l,{key:0},[m("div",S,[m("div",T,[m("div",H,[c(U).isFirst&&!c(U).isScan?(n(),o(a,{key:0,class:"w-full",src:"/firewall/icon-safe-detect.svg"})):(n(),o(i,{key:1,type:"circle",percentage:c(U).score,format:$,color:R,width:80},null,8,["percentage"]))]),m("div",F,[m("div",{class:"text-[1.8rem] font-bold",innerHTML:c(U).title},null,8,J),m("div",M,d(c(U).msg.length>35?c(U).msg.substring(0,35)+"...":c(U).msg),1)])]),m("div",B,[p(x,{type:c(U).btnObj.type,disabled:c(U).btnObj.disabled,onClick:ae},{default:b((()=>[g(d(c(U).btnObj.text),1)])),_:1},8,["type","disabled"])])]),m("div",C,[(n(!0),r(l,null,f(c(U).imageList,((e,s)=>(n(),r("div",{key:s,class:_(["bg-[#FCFCFC] mb-1rem",e.active?"active":""])},[m("div",{class:"scanBody__title flex justify-between cursor-pointer rounded-[0.4rem] px-[2rem] h-[3.5rem] leading-[3.5rem] text-[1.3rem]",onClick:e=>{return t=s,void(U.imageList[t].active=!U.imageList[t].active);var t}},[p(L,{class:"item",effect:"dark",content:e.name,placement:"top-start"},{default:b((()=>[m("span",I,d(e.name.length>50?e.name.substring(0,50)+"...":e.name),1)])),_:2},1032,["content"]),c(U).isEnd||c(U).isScan?(n(),r("div",E,[e.riskList&&e.riskList.length>0?(n(),r("span",W,"发现"+d(e.riskList.length)+"项风险",1)):e.noWarring||e.riskList?(n(),r("span",q,"无风险项")):(n(),r("span",P,"检测中")),p(a,{src:"/firewall/arrow-down.svg",class:"w-[1.6rem] ml-2rem"})])):u("",!0)],8,N),m("div",z,[(n(!0),r(l,null,f(e.riskList,((e,s)=>(n(),r("div",{key:s,class:"bg-[#ff00000a] text-[#666] py-1rem px-[1.5rem] mb-[0.8rem] rounded-[0.4rem]"},[m("div",A,d(e.msg),1),m("div",Y,[t[0]||(t[0]=m("span",{class:"w-[6rem] flex-shrink-0 inline-block"},"详情:",-1)),m("span",{innerHTML:e.detail},null,8,D)]),m("div",G,[t[1]||(t[1]=m("span",{class:"w-[6rem] flex-shrink-0 inline-block"},"修复方案:",-1)),m("span",{innerHTML:e.repair},null,8,K)])])))),128))])],2)))),128))])],64)):(n(),o(w,{key:1,data:Q}))])}}}),[["__scopeId","data-v-dbc8284b"]]);export{Q as default};