diff --git a/docker/backend/download/iast-agent.jar b/docker/backend/download/iast-agent.jar index 21a17b3..701492a 100644 Binary files a/docker/backend/download/iast-agent.jar and b/docker/backend/download/iast-agent.jar differ diff --git a/docker/backend/download/iast-engine.jar b/docker/backend/download/iast-engine.jar index 47338ef..843d2f8 100644 Binary files a/docker/backend/download/iast-engine.jar and b/docker/backend/download/iast-engine.jar differ diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 132c8ec..f5b28e6 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -7,6 +7,9 @@ services: command: redis-server --requirepass zP6gXX3y restart: always mysql: +# image: mysql:8.0-oracle # mac arm芯片 +# platform: linux/arm64 # mac arm芯片 +# command: --default-authentication-plugin=mysql_native_password # 解决mac arm芯片连接mysql问题 image: mysql:5.7.34 environment: - MYSQL_ROOT_PASSWORD=zP6gXX3y diff --git a/docker/frontend/web/dist/index.html b/docker/frontend/web/dist/index.html index 4a4dfc4..bd2f545 100644 --- a/docker/frontend/web/dist/index.html +++ b/docker/frontend/web/dist/index.html @@ -6,7 +6,7 @@ simpleIAST - + diff --git a/docker/frontend/web/dist/static/403-63ee4d41.js b/docker/frontend/web/dist/static/403-00ceb941.js similarity index 99% rename from docker/frontend/web/dist/static/403-63ee4d41.js rename to docker/frontend/web/dist/static/403-00ceb941.js index 95c8322..f0b4c50 100644 --- a/docker/frontend/web/dist/static/403-63ee4d41.js +++ b/docker/frontend/web/dist/static/403-00ceb941.js @@ -1 +1 @@ -import{E as r}from"./ErrorPageLayout-4f46354f.js";import{q as t,t as l,aw as s,p as i,M as h,O as n,U as c,u as p}from"./vue-956193f0.js";import"./index-35ab6744.js";import"./element-0afb0e99.js";import"./vxe-78a23074.js";const d={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500"},k=s('',50),a=[k];function v(e,o){return t(),l("svg",d,a)}const f={render:v},m=i({__name:"403",setup(e){return(o,u)=>(t(),h(r,null,{default:n(()=>[c(p(f))]),_:1}))}});export{m as default}; +import{E as r}from"./ErrorPageLayout-bf01d6c3.js";import{q as t,t as l,aw as s,p as i,M as h,O as n,U as c,u as p}from"./vue-956193f0.js";import"./index-5b4830db.js";import"./element-0afb0e99.js";import"./vxe-78a23074.js";const d={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500"},k=s('',50),a=[k];function v(e,o){return t(),l("svg",d,a)}const f={render:v},m=i({__name:"403",setup(e){return(o,u)=>(t(),h(r,null,{default:n(()=>[c(p(f))]),_:1}))}});export{m as default}; diff --git a/docker/frontend/web/dist/static/404-0d9d20fc.js b/docker/frontend/web/dist/static/404-43bf45f9.js similarity index 99% rename from docker/frontend/web/dist/static/404-0d9d20fc.js rename to docker/frontend/web/dist/static/404-43bf45f9.js index f034c92..3848d35 100644 --- a/docker/frontend/web/dist/static/404-0d9d20fc.js +++ b/docker/frontend/web/dist/static/404-43bf45f9.js @@ -1 +1 @@ -import{E as c}from"./ErrorPageLayout-4f46354f.js";import{q as a,t as h,aw as e,p as s,M as p,O as M,U as f,u as Z}from"./vue-956193f0.js";import"./index-35ab6744.js";import"./element-0afb0e99.js";import"./vxe-78a23074.js";const i={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500"},y=e('',141),d=[y];function r(l,t){return a(),h("svg",i,d)}const v={render:r},_=s({__name:"404",setup(l){return(t,o)=>(a(),p(c,null,{default:M(()=>[f(Z(v))]),_:1}))}});export{_ as default}; +import{E as c}from"./ErrorPageLayout-bf01d6c3.js";import{q as a,t as h,aw as e,p as s,M as p,O as M,U as f,u as Z}from"./vue-956193f0.js";import"./index-5b4830db.js";import"./element-0afb0e99.js";import"./vxe-78a23074.js";const i={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500"},y=e('',141),d=[y];function r(l,t){return a(),h("svg",i,d)}const v={render:r},_=s({__name:"404",setup(l){return(t,o)=>(a(),p(c,null,{default:M(()=>[f(Z(v))]),_:1}))}});export{_ as default}; diff --git a/docker/frontend/web/dist/static/ErrorPageLayout-4f46354f.js b/docker/frontend/web/dist/static/ErrorPageLayout-bf01d6c3.js similarity index 86% rename from docker/frontend/web/dist/static/ErrorPageLayout-4f46354f.js rename to docker/frontend/web/dist/static/ErrorPageLayout-bf01d6c3.js index 2a178f0..9d912d4 100644 --- a/docker/frontend/web/dist/static/ErrorPageLayout-4f46354f.js +++ b/docker/frontend/web/dist/static/ErrorPageLayout-bf01d6c3.js @@ -1 +1 @@ -import{_}from"./index-35ab6744.js";import{ai as e,q as n,t as c,v as d,H as l,U as t,O as o,S as i}from"./vue-956193f0.js";const p={},u={class:"error-page"},f={class:"error-page-svg"};function m(r,v){const a=e("el-button"),s=e("router-link");return n(),c("div",u,[d("div",f,[l(r.$slots,"default",{},void 0,!0)]),t(s,{to:"/"},{default:o(()=>[t(a,{type:"primary"},{default:o(()=>[i("回到首页")]),_:1})]),_:1})])}const x=_(p,[["render",m],["__scopeId","data-v-5f207ac3"]]);export{x as E}; +import{_}from"./index-5b4830db.js";import{ai as e,q as n,t as c,v as d,H as l,U as t,O as o,S as i}from"./vue-956193f0.js";const p={},u={class:"error-page"},f={class:"error-page-svg"};function m(r,v){const a=e("el-button"),s=e("router-link");return n(),c("div",u,[d("div",f,[l(r.$slots,"default",{},void 0,!0)]),t(s,{to:"/"},{default:o(()=>[t(a,{type:"primary"},{default:o(()=>[i("回到首页")]),_:1})]),_:1})])}const x=_(p,[["render",m],["__scopeId","data-v-5f207ac3"]]);export{x as E}; diff --git a/docker/frontend/web/dist/static/blacklist-860366c8.js b/docker/frontend/web/dist/static/blacklist-bd0943f1.js similarity index 97% rename from docker/frontend/web/dist/static/blacklist-860366c8.js rename to docker/frontend/web/dist/static/blacklist-bd0943f1.js index a0162fb..1cbf3f4 100644 --- a/docker/frontend/web/dist/static/blacklist-860366c8.js +++ b/docker/frontend/web/dist/static/blacklist-bd0943f1.js @@ -1 +1 @@ -import{x as W,r as Z,y as G,z as J,A as K,E as C,B as Q}from"./element-0afb0e99.js";import{y as X,z as Y,A as $,B as ee}from"./index-46bdc1ae.js";import{p as ae,r as s,Z as D,ai as i,q as te,t as le,U as e,O as a,v as o,S as p,u as v,aH as oe,aI as ne}from"./vue-956193f0.js";import{_ as se}from"./index-35ab6744.js";import"./vxe-78a23074.js";const ie=h=>(oe("data-v-179706ba"),h=h(),ne(),h),ce={class:"setting-container"},ue=ie(()=>o("div",{class:"tip custom-block"},[o("p",{class:"custom-block-title"},"说明"),o("p",null,"设置agent绑定的主机名黑名单,黑名单主机名将禁止向服务端注册,也不会进行漏洞探测操作。"),o("p",null,"黑名单主机名支持模糊匹配")],-1)),re={class:"dialog-footer"},de={class:"toolbar-wrapper"},pe={class:"table-wrapper"},me={class:"demo-pagination-block"},_e="100px",fe=ae({__name:"blacklist",setup(h){const x=s(),b=s(!1),L=s(!1),m=s(),z=s(10),S=s(1),w=s(0),y=s(0),r={pageSize:20,pageNum:1},B=D({name:""});function U(){_.value=!1,X(B).then(()=>{C.success("添加黑名单成功")}).catch(()=>{C.warning("添加黑名单失败")}).finally(()=>{d()})}const _=s(!1);function I(){_.value=!0}function T(){_.value=!1}const E=l=>{x.value=l},f=D({name:""});s("1");const d=()=>{b.value=!0,Y(r).then(l=>{const{pageSize:t,pageNum:n,total:g,pages:k,list:c}=l.data;m.value=c,z.value=t,w.value=k,S.value=n,y.value=g}).catch(()=>{m.value=[]}).finally(()=>{b.value=!1})};function R(){let l=[];for(const t of x.value)l.push(t.name);Q.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{C({type:"success",message:"删除成功"}),b.value=!0,$(l.join(",")).then(()=>{d()}).finally(()=>{b.value=!1})}).catch(()=>{C({type:"info",message:"删除失败"})})}d();const q=l=>{r.pageSize=l,d()},F=l=>{r.pageNum=l,d()};function j(){let l=f.name;if(l==null||l==""){d();return}ee(l).then(t=>{let n=t.data;m.value=n.list,z.value=n.pageSize,w.value=n.pages,S.value=n.pageNum,y.value=n.total}).catch(()=>{m.value=[],z.value=0,w.value=0,S.value=0,y.value=0})}const A=()=>{f.name=""};return(l,t)=>{const n=i("el-input"),g=i("el-form-item"),k=i("el-form"),c=i("el-button"),M=i("el-dialog"),N=i("el-card"),H=i("el-tooltip"),V=i("el-table-column"),O=i("el-table"),P=i("el-pagination");return te(),le("div",ce,[ue,e(M,{modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=u=>_.value=u),title:"添加黑名单"},{footer:a(()=>[o("div",re,[e(c,{onClick:T},{default:a(()=>[p("取消")]),_:1}),e(c,{type:"primary",onClick:U},{default:a(()=>[p(" 确认 ")]),_:1})])]),default:a(()=>[e(k,null,{default:a(()=>[e(g,{label:"主机名称","label-width":_e},{default:a(()=>[e(n,{autocomplete:"off",modelValue:B.name,"onUpdate:modelValue":t[0]||(t[0]=u=>B.name=u)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e(N,{shadow:"never",class:"search-wrapper"},{default:a(()=>[o("div",null,[e(k,{ref:"searchFormRef",inline:!0,model:f},{default:a(()=>[e(g,{prop:"hostName",label:"主机名称"},{default:a(()=>[e(n,{placeholder:"请输入",modelValue:f.name,"onUpdate:modelValue":t[2]||(t[2]=u=>f.name=u)},null,8,["modelValue"])]),_:1}),e(g,null,{default:a(()=>[e(c,{type:"primary",icon:v(W),onClick:j},{default:a(()=>[p("查询")]),_:1},8,["icon"]),e(c,{icon:v(Z),onClick:A},{default:a(()=>[p("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])])]),_:1}),e(N,{shadow:"never"},{default:a(()=>[o("div",de,[o("div",null,[e(c,{type:"primary",icon:v(G),onClick:I},{default:a(()=>[p("新增黑名单")]),_:1},8,["icon"]),e(c,{type:"danger",icon:v(J),onClick:R},{default:a(()=>[p("批量删除")]),_:1},8,["icon"])]),o("div",null,[e(H,{content:"刷新当前页"},{default:a(()=>[e(c,{type:"primary",icon:v(K),circle:"",onClick:d},null,8,["icon"])]),_:1})])]),o("div",pe,[e(O,{ref:"multipleTableRef",data:m.value,style:{width:"100%"},onSelectionChange:E},{default:a(()=>[e(V,{type:"selection",width:"55"}),e(V,{prop:"id",label:"id",align:"left"}),e(V,{prop:"name",label:"主机名称",align:"left",sortable:""})]),_:1},8,["data"])]),o("div",me,[e(P,{"current-page":r.pageNum,"onUpdate:currentPage":t[3]||(t[3]=u=>r.pageNum=u),"page-size":r.pageSize,"onUpdate:pageSize":t[4]||(t[4]=u=>r.pageSize=u),"page-sizes":[10,20,50,100],small:!1,disabled:L.value,background:!0,layout:"total, sizes, prev, pager, next, jumper",total:y.value,onSizeChange:q,onCurrentChange:F},null,8,["current-page","page-size","disabled","total"])])]),_:1})])}}});const ke=se(fe,[["__scopeId","data-v-179706ba"]]);export{ke as default}; +import{x as W,r as Z,y as G,z as J,A as K,E as C,B as Q}from"./element-0afb0e99.js";import{y as X,z as Y,A as $,B as ee}from"./index-8fe9da41.js";import{p as ae,r as s,Z as D,ai as i,q as te,t as le,U as e,O as a,v as o,S as p,u as v,aH as oe,aI as ne}from"./vue-956193f0.js";import{_ as se}from"./index-5b4830db.js";import"./vxe-78a23074.js";const ie=h=>(oe("data-v-179706ba"),h=h(),ne(),h),ce={class:"setting-container"},ue=ie(()=>o("div",{class:"tip custom-block"},[o("p",{class:"custom-block-title"},"说明"),o("p",null,"设置agent绑定的主机名黑名单,黑名单主机名将禁止向服务端注册,也不会进行漏洞探测操作。"),o("p",null,"黑名单主机名支持模糊匹配")],-1)),re={class:"dialog-footer"},de={class:"toolbar-wrapper"},pe={class:"table-wrapper"},me={class:"demo-pagination-block"},_e="100px",fe=ae({__name:"blacklist",setup(h){const x=s(),b=s(!1),L=s(!1),m=s(),z=s(10),S=s(1),w=s(0),y=s(0),r={pageSize:20,pageNum:1},B=D({name:""});function U(){_.value=!1,X(B).then(()=>{C.success("添加黑名单成功")}).catch(()=>{C.warning("添加黑名单失败")}).finally(()=>{d()})}const _=s(!1);function I(){_.value=!0}function T(){_.value=!1}const E=l=>{x.value=l},f=D({name:""});s("1");const d=()=>{b.value=!0,Y(r).then(l=>{const{pageSize:t,pageNum:n,total:g,pages:k,list:c}=l.data;m.value=c,z.value=t,w.value=k,S.value=n,y.value=g}).catch(()=>{m.value=[]}).finally(()=>{b.value=!1})};function R(){let l=[];for(const t of x.value)l.push(t.name);Q.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{C({type:"success",message:"删除成功"}),b.value=!0,$(l.join(",")).then(()=>{d()}).finally(()=>{b.value=!1})}).catch(()=>{C({type:"info",message:"删除失败"})})}d();const q=l=>{r.pageSize=l,d()},F=l=>{r.pageNum=l,d()};function j(){let l=f.name;if(l==null||l==""){d();return}ee(l).then(t=>{let n=t.data;m.value=n.list,z.value=n.pageSize,w.value=n.pages,S.value=n.pageNum,y.value=n.total}).catch(()=>{m.value=[],z.value=0,w.value=0,S.value=0,y.value=0})}const A=()=>{f.name=""};return(l,t)=>{const n=i("el-input"),g=i("el-form-item"),k=i("el-form"),c=i("el-button"),M=i("el-dialog"),N=i("el-card"),H=i("el-tooltip"),V=i("el-table-column"),O=i("el-table"),P=i("el-pagination");return te(),le("div",ce,[ue,e(M,{modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=u=>_.value=u),title:"添加黑名单"},{footer:a(()=>[o("div",re,[e(c,{onClick:T},{default:a(()=>[p("取消")]),_:1}),e(c,{type:"primary",onClick:U},{default:a(()=>[p(" 确认 ")]),_:1})])]),default:a(()=>[e(k,null,{default:a(()=>[e(g,{label:"主机名称","label-width":_e},{default:a(()=>[e(n,{autocomplete:"off",modelValue:B.name,"onUpdate:modelValue":t[0]||(t[0]=u=>B.name=u)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),e(N,{shadow:"never",class:"search-wrapper"},{default:a(()=>[o("div",null,[e(k,{ref:"searchFormRef",inline:!0,model:f},{default:a(()=>[e(g,{prop:"hostName",label:"主机名称"},{default:a(()=>[e(n,{placeholder:"请输入",modelValue:f.name,"onUpdate:modelValue":t[2]||(t[2]=u=>f.name=u)},null,8,["modelValue"])]),_:1}),e(g,null,{default:a(()=>[e(c,{type:"primary",icon:v(W),onClick:j},{default:a(()=>[p("查询")]),_:1},8,["icon"]),e(c,{icon:v(Z),onClick:A},{default:a(()=>[p("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])])]),_:1}),e(N,{shadow:"never"},{default:a(()=>[o("div",de,[o("div",null,[e(c,{type:"primary",icon:v(G),onClick:I},{default:a(()=>[p("新增黑名单")]),_:1},8,["icon"]),e(c,{type:"danger",icon:v(J),onClick:R},{default:a(()=>[p("批量删除")]),_:1},8,["icon"])]),o("div",null,[e(H,{content:"刷新当前页"},{default:a(()=>[e(c,{type:"primary",icon:v(K),circle:"",onClick:d},null,8,["icon"])]),_:1})])]),o("div",pe,[e(O,{ref:"multipleTableRef",data:m.value,style:{width:"100%"},onSelectionChange:E},{default:a(()=>[e(V,{type:"selection",width:"55"}),e(V,{prop:"id",label:"id",align:"left"}),e(V,{prop:"name",label:"主机名称",align:"left",sortable:""})]),_:1},8,["data"])]),o("div",me,[e(P,{"current-page":r.pageNum,"onUpdate:currentPage":t[3]||(t[3]=u=>r.pageNum=u),"page-size":r.pageSize,"onUpdate:pageSize":t[4]||(t[4]=u=>r.pageSize=u),"page-sizes":[10,20,50,100],small:!1,disabled:L.value,background:!0,layout:"total, sizes, prev, pager, next, jumper",total:y.value,onSizeChange:q,onCurrentChange:F},null,8,["current-page","page-size","disabled","total"])])]),_:1})])}}});const ke=se(fe,[["__scopeId","data-v-179706ba"]]);export{ke as default}; diff --git a/docker/frontend/web/dist/static/detail-d25b80ed.js b/docker/frontend/web/dist/static/detail-d25b80ed.js deleted file mode 100644 index f1809d4..0000000 --- a/docker/frontend/web/dist/static/detail-d25b80ed.js +++ /dev/null @@ -1,5 +0,0 @@ -import{p as oe,r as V,aE as ue,ai as d,q as a,t as _,U as t,O as e,I as re,u as U,T as c,R as m,S as p,M as y,F as $,a8 as E,v}from"./vue-956193f0.js";import{b as ce,a as ie,c as de}from"./level-61112490.js";import{H as _e,p as pe,W as ve,a as fe,b as me}from"./level.css_vue_type_style_index_0_src_true_lang-509bbc79.js";import{q as he,s as be,t as ye}from"./index-46bdc1ae.js";import{C as ge,E as R,D as ke}from"./element-0afb0e99.js";import{e as we,f as xe}from"./index-35ab6744.js";import"./vxe-78a23074.js";const Te="/static/sanitizer_icon-58a9c1c4.svg";function W(g){const i=Object.entries(g).sort(([n],[b])=>n==="host"||n==="referer"?-1:b==="host"||b==="referer"?1:n.localeCompare(b));let w="";return i.forEach(([n,b])=>{n=n.replace(/(?:^|-)([a-z])/g,T=>T.toUpperCase()),w=w+n+": "+b+`\r -`}),w}function Ve(g,i,w,n,b){let T=W(w);i=i.toUpperCase();let C=`${i} ${g} ${b}\r -`;return C+=T,n!=null&&(C+=`\r -${atob(n)}`),C}function Ce(g,i,w){let n=W(w);return`${g} ${i}\r -${n}`}function Re(g){return g.className+"."+g.method+g.desc}const Se={key:0},Le={key:1},qe={key:2},De={key:0},Ue=v("strong",null,"所属应用:",-1),He={key:0},Ie=v("strong",null,"首次发现时间:",-1),Ne={key:0},$e=v("strong",null,"最新发现时间:",-1),Ee={class:"custom-label"},Oe={key:0},Pe={class:"custom-parent-label"},ze=v("hr",null,null,-1),je={class:"parent-node-sign"},Ae={class:"left-content"},Be={class:"right-content"},Fe={key:0,src:Te,alt:""},Me={key:1},We={key:2},Qe={class:"sanitizer-text-container"},Je={key:3},Ke={style:{display:"inline-block","font-weight":"bold",width:"80px","text-align":"right"}},Ze={style:{display:"inline-block","background-color":"#dedfe080",width:"100%","padding-left":"10px","border-radius":"5px"}},Ge={class:"http-container"},Xe={class:"http-left-pane"},Ye=v("h3",null,"HTTP请求",-1),et={class:"http-right-pane"},tt=v("h3",null,"HTTP响应",-1),ct=oe({__name:"detail",setup(g){const i=V(),w=ue(),n=V(),b=V(),T=V(),C=V("first"),s=V(),H=V(),Q=()=>new Promise((l,r)=>{be(w.currentRoute.value.params.id).then(o=>{s.value=o.data,l(o.data)}).catch(o=>{r(o)})});function J(){navigator.clipboard.writeText(b.value).then(()=>{R.success("文本已成功复制到剪贴板")}).catch(l=>{R.error("复制到剪贴板失败: "+l.message)})}function K(){navigator.clipboard.writeText(T.value).then(()=>{R.success("文本已成功复制到剪贴板")}).catch(l=>{R.error("复制到剪贴板失败: "+l.message)})}function Z(){return s.value}function G(){ye().then(l=>{H.value=l.data})}async function X(){try{await Q(),Y(),G()}catch(l){console.error("获取数据失败:",l)}}function Y(){const l=Z(),r=JSON.parse(l.findingData);let o=[];const u=r.vulnerableType;if(u==_e)i.value=2,o=pe(r);else if(u==ve)i.value=3,o=fe(r),O(l);else{i.value=1;const k=r.flowData;o=me(k),O(l)}n.value=o}function O(l){b.value=Ve(l.uri,l.requestMethod,l.requestHeader,l.requestBody,l.protocol),T.value=Ce(l.protocol,l.statusCode,l.responseHeader)}function ee(l){let r=s.value.id;he(r,l).then(()=>{let o=H.value.find(u=>u.statusId===l);R.success("漏洞状态已切换成"+o.statusName)}).catch(o=>{ke(o)})}function te(){const l=`/api/v1/report/exportOne?reportId=${s.value.id}`,r=we();xe({method:"get",baseURL:l,data:{},headers:{Authorization:r?`Bearer ${r}`:void 0},responseType:"blob"}).then(o=>{const u=o.data;if(!u)return;const k=window.URL.createObjectURL(new Blob([u])),x=document.createElement("a");x.style.display="none",x.href=k,x.setAttribute("download","report-"+de()+".json"),document.body.appendChild(x),x.click(),window.URL.revokeObjectURL(x.href),document.body.removeChild(x)}).catch(o=>{R.error("导出失败,原因:"+o)})}return X(),(l,r)=>{const o=d("el-card"),u=d("el-text"),k=d("el-col"),x=d("el-option"),ae=d("el-select"),I=d("el-button"),N=d("el-tooltip"),L=d("el-row"),P=d("el-collapse-item"),z=d("el-collapse"),le=d("el-tree"),ne=d("el-header"),S=d("el-table-column"),j=d("el-table"),A=d("el-main"),B=d("el-container"),F=d("el-tab-pane"),M=d("el-input"),se=d("el-tabs");return a(),_("div",null,[t(o,{shadow:"hover",class:"report-card"},{default:e(()=>[s.value?(a(),_("h3",Se,[s.value?(a(),_("span",{key:0,class:re(U(ce)(s.value.level)),style:{"margin-right":"10px"}},c(U(ie)(s.value.level)),3)):m("",!0),i.value==1||i.value==3?(a(),_("span",Le,c(s.value.url),1)):i.value==2?(a(),_("span",qe,c(n.value[0].sourceFile),1)):m("",!0),p(" 发现 "+c(s.value.vulnerableTypeZH),1)])):m("",!0)]),_:1}),t(o,{class:"report-card",shadow:"hover"},{default:e(()=>[t(L,{gutter:10},{default:e(()=>[t(k,{span:6},{default:e(()=>[s.value?(a(),_("div",De,[Ue,s.value.agent?(a(),y(u,{key:0},{default:e(()=>[p(c(s.value.agent.hostname),1)]),_:1})):(a(),y(u,{key:1},{default:e(()=>[p("未知")]),_:1}))])):m("",!0)]),_:1}),t(k,{span:6},{default:e(()=>[s.value?(a(),_("div",He,[Ie,s.value.firstTimestamp?(a(),y(u,{key:0},{default:e(()=>[p(c(s.value.firstTimestamp),1)]),_:1})):m("",!0)])):m("",!0)]),_:1}),t(k,{span:6},{default:e(()=>[s.value?(a(),_("div",Ne,[$e,s.value.lastTimestamp?(a(),y(u,{key:0},{default:e(()=>[p(c(s.value.lastTimestamp),1)]),_:1})):m("",!0)])):m("",!0)]),_:1}),t(k,{span:6},{default:e(()=>[t(L,{gutter:10},{default:e(()=>[t(k,{span:8},{default:e(()=>[s.value?(a(),y(ae,{key:0,modelValue:s.value.status.statusId,"onUpdate:modelValue":r[0]||(r[0]=f=>s.value.status.statusId=f),onChange:ee},{default:e(()=>[(a(!0),_($,null,E(H.value,f=>(a(),y(x,{label:f.statusName,value:f.statusId,key:f.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])):m("",!0)]),_:1}),t(k,{span:6},{default:e(()=>[t(N,{content:"导出漏洞"},{default:e(()=>[t(I,{type:"primary",icon:U(ge),circle:"",onClick:te},null,8,["icon"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),t(o,{class:"report-details",shadow:"hover"},{default:e(()=>[t(se,{modelValue:C.value,"onUpdate:modelValue":r[3]||(r[3]=f=>C.value=f)},{default:e(()=>[t(F,{label:"漏洞细节",name:"first"},{default:e(()=>[i.value==1?(a(),y(le,{key:0,indent:16,data:n.value,"node-key":"id"},{default:e(({node:f,data:h})=>[v("div",Ee,[f.level==1?(a(),_("div",Oe,[v("div",Pe,c(h.label),1),ze,v("div",je,[v("div",Ae,c(h.sign),1),v("div",Be,[t(L,{class:"w-600px mb-2"},{default:e(()=>[t(N,{content:h.taint,placement:"top-end"},{default:e(()=>[t(u,{style:{color:"red"},truncated:""},{default:e(()=>[p(c(h.taint),1)]),_:2},1024)]),_:2},1032,["content"]),h.isSanitizer?(a(),_("img",Fe)):m("",!0)]),_:2},1024)])])])):h.name=="stack"?(a(),_("div",Me,[t(z,null,{default:e(()=>[t(P,{title:"调用栈"},{default:e(()=>[h.value?(a(!0),_($,{key:0},E(h.value,(q,D)=>(a(),_("div",{key:D},[t(u,{truncated:"",style:{"line-height":"30px","padding-left":"10px","background-color":"rgba(222, 223, 224, 0.5)"}},{default:e(()=>[p(c(q),1)]),_:2},1024)]))),128)):m("",!0)]),_:2},1024)]),_:2},1024)])):h.name=="sanitizer"?(a(),_("div",We,[t(z,null,{default:e(()=>[t(P,{title:"过滤函数"},{default:e(()=>[h.value?(a(!0),_($,{key:0},E(h.value,(q,D)=>(a(),_("div",{key:D},[v("div",Qe,[v("span",null,c(D+1)+".",1),t(u,{class:"left-text"},{default:e(()=>[p(c(U(Re)(q)),1)]),_:2},1024),t(u,{class:"right-red-text"},{default:e(()=>[p(c(q.toValue),1)]),_:2},1024)])]))),128)):m("",!0)]),_:2},1024)]),_:2},1024)])):(a(),_("div",Je,[v("div",Ke,c(h.label),1),v("div",Ze,[t(L,{class:"w-1200px mb-2"},{default:e(()=>[t(N,{content:h.value,placement:"top-end"},{default:e(()=>[t(u,{truncated:""},{default:e(()=>[p(c(h.value),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)])]))])]),_:1},8,["data"])):i.value==2?(a(),y(B,{key:1},{default:e(()=>[n.value?(a(),y(ne,{key:0},{default:e(()=>[p(" 硬编码漏洞存在于 "),t(u,{tag:"b"},{default:e(()=>[p(c(n.value[0].sourceFile),1)]),_:1}),p(" 文件中, 类路径: "),t(u,{tag:"b"},{default:e(()=>[p(c(n.value[0].className),1)]),_:1})]),_:1})):m("",!0),t(A,null,{default:e(()=>[n.value?(a(),y(j,{key:0,data:n.value,style:{width:"100%"}},{default:e(()=>[t(S,{prop:"parameterName",label:"参数名"}),t(S,{label:"参数值"},{default:e(f=>[t(u,null,{default:e(()=>[p(c(f.row.parameterValue),1)]),_:2},1024)]),_:1})]),_:1},8,["data"])):m("",!0)]),_:1})]),_:1})):i.value==3?(a(),y(B,{key:2},{default:e(()=>[t(A,null,{default:e(()=>[n.value?(a(),y(j,{key:0,data:n.value,style:{width:"100%"}},{default:e(()=>[t(S,{prop:"url",label:"数据库连接地址"}),t(S,{prop:"user",label:"用户名"}),t(S,{prop:"password",label:"密码"},{default:e(f=>[t(u,null,{default:e(()=>[p(c(f.row.password),1)]),_:2},1024)]),_:1})]),_:1},8,["data"])):m("",!0)]),_:1})]),_:1})):m("",!0)]),_:1}),i.value==1||i.value==3?(a(),y(F,{key:0,label:"HTTP请求信息",name:"second"},{default:e(()=>[v("div",Ge,[v("div",Xe,[Ye,t(M,{type:"textarea",modelValue:b.value,"onUpdate:modelValue":r[1]||(r[1]=f=>b.value=f)},null,8,["modelValue"]),t(I,{class:"http-copy-button",onClick:J},{default:e(()=>[p("复制")]),_:1})]),v("div",et,[tt,t(M,{type:"textarea",modelValue:T.value,"onUpdate:modelValue":r[2]||(r[2]=f=>T.value=f)},null,8,["modelValue"]),t(I,{class:"http-copy-button",onClick:K},{default:e(()=>[p("复制")]),_:1})])])]),_:1})):m("",!0)]),_:1},8,["modelValue"])]),_:1})])}}});export{ct as default}; diff --git a/docker/frontend/web/dist/static/detail-e7922ea0.js b/docker/frontend/web/dist/static/detail-e7922ea0.js new file mode 100644 index 0000000..be22e5c --- /dev/null +++ b/docker/frontend/web/dist/static/detail-e7922ea0.js @@ -0,0 +1,5 @@ +import{p as oe,r as V,aE as ue,ai as d,q as a,t as p,U as t,O as e,I as re,u as U,T as i,R as m,S as v,M as y,F as $,a8 as E,v as _}from"./vue-956193f0.js";import{b as ie,a as ce,c as de}from"./level-61112490.js";import{H as _e,p as pe,W as ve,a as fe,b as me}from"./level.css_vue_type_style_index_0_src_true_lang-5c282ff5.js";import{q as he,s as be,t as ye}from"./index-8fe9da41.js";import{C as ge,E as S,D as ke}from"./element-0afb0e99.js";import{e as we,f as xe}from"./index-5b4830db.js";import"./vxe-78a23074.js";const Te="/static/sanitizer_icon-58a9c1c4.svg";function W(g){const c=Object.entries(g).sort(([n],[b])=>n==="host"||n==="referer"?-1:b==="host"||b==="referer"?1:n.localeCompare(b));let w="";return c.forEach(([n,b])=>{n=n.replace(/(?:^|-)([a-z])/g,T=>T.toUpperCase()),w=w+n+": "+b+`\r +`}),w}function Ce(g,c,w,n,b){let T=W(w);c=c.toUpperCase();let R=`${c} ${g} ${b}\r +`;return R+=T,n!=null&&(R+=`\r +${atob(n)}`),R}function Ve(g,c,w){let n=W(w);return`${g} ${c}\r +${n}`}function Re(g){return g.className+"."+g.method+g.desc}const Se={key:0},Le={key:1},qe={key:2},De={key:0},Ue=_("strong",null,"所属应用:",-1),He={key:0},Ie=_("strong",null,"首次发现时间:",-1),Ne={key:0},$e=_("strong",null,"最新发现时间:",-1),Ee={class:"custom-label"},Oe={key:0},Pe={class:"custom-parent-label"},ze=_("hr",null,null,-1),je={class:"parent-node-sign"},Ae={class:"left-content"},Be={class:"right-content"},Fe={key:0,src:Te,alt:""},Me={key:1},We={key:2},Qe={class:"sanitizer-text-container"},Je={key:3},Ke={style:{display:"inline-block","font-weight":"bold",width:"80px","text-align":"right"}},Ze={style:{display:"inline-block","background-color":"#dedfe080",width:"100%","padding-left":"10px","border-radius":"5px"}},Ge={class:"http-container"},Xe={class:"http-left-pane"},Ye=_("h3",null,"HTTP请求",-1),et={class:"http-right-pane"},tt=_("h3",null,"HTTP响应",-1),it=oe({__name:"detail",setup(g){const c=V(),w=ue(),n=V(),b=V(),T=V(),R=V("first"),s=V(),H=V(),Q=()=>new Promise((l,r)=>{be(w.currentRoute.value.params.id).then(o=>{s.value=o.data,l(o.data)}).catch(o=>{r(o)})});function J(){navigator.clipboard.writeText(b.value).then(()=>{S.success("文本已成功复制到剪贴板")}).catch(l=>{S.error("复制到剪贴板失败: "+l.message)})}function K(){navigator.clipboard.writeText(T.value).then(()=>{S.success("文本已成功复制到剪贴板")}).catch(l=>{S.error("复制到剪贴板失败: "+l.message)})}function Z(){return s.value}function G(){ye().then(l=>{H.value=l.data})}async function X(){try{await Q(),Y(),G()}catch(l){console.error("获取数据失败:",l)}}function Y(){const l=Z(),r=JSON.parse(l.findingData);let o=[];const u=r.vulnerableType;if(u==_e)c.value=2,o=pe(r);else if(u==ve)c.value=3,o=fe(r),O(l);else{c.value=1;const k=r.flowData;o=me(k),O(l)}n.value=o}function O(l){b.value=Ce(l.uri,l.requestMethod,l.requestHeader,l.requestBody,l.protocol),T.value=Ve(l.protocol,l.statusCode,l.responseHeader)}function ee(l){let r=s.value.id;he(r,l).then(()=>{let o=H.value.find(u=>u.statusId===l);S.success("漏洞状态已切换成"+o.statusName)}).catch(o=>{ke(o)})}function te(){const l=`/api/v1/report/exportOne?reportId=${s.value.id}`,r=we();xe({method:"get",baseURL:l,data:{},headers:{Authorization:r?`Bearer ${r}`:void 0},responseType:"blob"}).then(o=>{const u=o.data;if(!u)return;const k=window.URL.createObjectURL(new Blob([u])),x=document.createElement("a");x.style.display="none",x.href=k,x.setAttribute("download","report-"+de()+".json"),document.body.appendChild(x),x.click(),window.URL.revokeObjectURL(x.href),document.body.removeChild(x)}).catch(o=>{S.error("导出失败,原因:"+o)})}return X(),(l,r)=>{const o=d("el-card"),u=d("el-text"),k=d("el-col"),x=d("el-option"),ae=d("el-select"),I=d("el-button"),N=d("el-tooltip"),q=d("el-row"),P=d("el-collapse-item"),z=d("el-collapse"),le=d("el-tree"),ne=d("el-header"),L=d("el-table-column"),j=d("el-table"),A=d("el-main"),B=d("el-container"),F=d("el-tab-pane"),M=d("el-input"),se=d("el-tabs");return a(),p("div",null,[t(o,{shadow:"hover",class:"report-card"},{default:e(()=>[s.value?(a(),p("h3",Se,[s.value?(a(),p("span",{key:0,class:re(U(ie)(s.value.level)),style:{"margin-right":"10px"}},i(U(ce)(s.value.level)),3)):m("",!0),c.value==1||c.value==3?(a(),p("span",Le,i(s.value.url),1)):c.value==2?(a(),p("span",qe,i(n.value[0].sourceFile),1)):m("",!0),v(" 发现 "+i(s.value.vulnerableTypeZH),1)])):m("",!0)]),_:1}),t(o,{class:"report-card",shadow:"hover"},{default:e(()=>[t(q,{gutter:10},{default:e(()=>[t(k,{span:6},{default:e(()=>[s.value?(a(),p("div",De,[Ue,s.value.agent?(a(),y(u,{key:0},{default:e(()=>[v(i(s.value.agent.hostname),1)]),_:1})):(a(),y(u,{key:1},{default:e(()=>[v("未知")]),_:1}))])):m("",!0)]),_:1}),t(k,{span:6},{default:e(()=>[s.value?(a(),p("div",He,[Ie,s.value.firstTimestamp?(a(),y(u,{key:0},{default:e(()=>[v(i(s.value.firstTimestamp),1)]),_:1})):m("",!0)])):m("",!0)]),_:1}),t(k,{span:6},{default:e(()=>[s.value?(a(),p("div",Ne,[$e,s.value.lastTimestamp?(a(),y(u,{key:0},{default:e(()=>[v(i(s.value.lastTimestamp),1)]),_:1})):m("",!0)])):m("",!0)]),_:1}),t(k,{span:6},{default:e(()=>[t(q,{gutter:10},{default:e(()=>[t(k,{span:8},{default:e(()=>[s.value?(a(),y(ae,{key:0,modelValue:s.value.status.statusId,"onUpdate:modelValue":r[0]||(r[0]=f=>s.value.status.statusId=f),onChange:ee},{default:e(()=>[(a(!0),p($,null,E(H.value,f=>(a(),y(x,{label:f.statusName,value:f.statusId,key:f.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])):m("",!0)]),_:1}),t(k,{span:6},{default:e(()=>[t(N,{content:"导出漏洞"},{default:e(()=>[t(I,{type:"primary",icon:U(ge),circle:"",onClick:te},null,8,["icon"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),t(o,{class:"report-details",shadow:"hover"},{default:e(()=>[t(se,{modelValue:R.value,"onUpdate:modelValue":r[3]||(r[3]=f=>R.value=f)},{default:e(()=>[t(F,{label:"漏洞细节",name:"first"},{default:e(()=>[c.value==1?(a(),y(le,{key:0,indent:16,data:n.value,"node-key":"id"},{default:e(({node:f,data:h})=>[_("div",Ee,[f.level==1?(a(),p("div",Oe,[_("div",Pe,i(h.label),1),ze,_("div",je,[_("div",Ae,i(h.sign),1),_("div",Be,[t(q,{class:"w-600px mb-2"},{default:e(()=>[t(N,{content:h.children.find(C=>C.name==="taint").value,placement:"top-end"},{default:e(()=>[t(u,{style:{color:"red"},truncated:""},{default:e(()=>[v(i(h.children.find(C=>C.name==="taint").value),1)]),_:2},1024)]),_:2},1032,["content"]),h.isSanitizer?(a(),p("img",Fe)):m("",!0)]),_:2},1024)])])])):h.name=="stack"?(a(),p("div",Me,[t(z,null,{default:e(()=>[t(P,{title:"调用栈"},{default:e(()=>[h.value?(a(!0),p($,{key:0},E(h.value,(C,D)=>(a(),p("div",{key:D},[t(u,{truncated:"",style:{"line-height":"30px","padding-left":"10px","background-color":"rgba(222, 223, 224, 0.5)"}},{default:e(()=>[v(i(C),1)]),_:2},1024)]))),128)):m("",!0)]),_:2},1024)]),_:2},1024)])):h.name=="sanitizer"?(a(),p("div",We,[t(z,null,{default:e(()=>[t(P,{title:"过滤函数"},{default:e(()=>[h.value?(a(!0),p($,{key:0},E(h.value,(C,D)=>(a(),p("div",{key:D},[_("div",Qe,[_("span",null,i(D+1)+".",1),t(u,{class:"left-text"},{default:e(()=>[v(i(U(Re)(C)),1)]),_:2},1024),t(u,{class:"right-red-text"},{default:e(()=>[v(i(C.to),1)]),_:2},1024)])]))),128)):m("",!0)]),_:2},1024)]),_:2},1024)])):(a(),p("div",Je,[_("div",null,[_("div",Ke,i(h.label)+"   ",1),_("div",Ze,[t(q,{class:"w-1200px mb-2"},{default:e(()=>[t(N,{content:h.value,placement:"top-end"},{default:e(()=>[t(u,{truncated:""},{default:e(()=>[v(i(h.value),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)])])]))])]),_:1},8,["data"])):c.value==2?(a(),y(B,{key:1},{default:e(()=>[n.value?(a(),y(ne,{key:0},{default:e(()=>[v(" 硬编码漏洞存在于 "),t(u,{tag:"b"},{default:e(()=>[v(i(n.value[0].sourceFile),1)]),_:1}),v(" 文件中, 类路径: "),t(u,{tag:"b"},{default:e(()=>[v(i(n.value[0].className),1)]),_:1})]),_:1})):m("",!0),t(A,null,{default:e(()=>[n.value?(a(),y(j,{key:0,data:n.value,style:{width:"100%"}},{default:e(()=>[t(L,{prop:"parameterName",label:"参数名"}),t(L,{label:"参数值"},{default:e(f=>[t(u,null,{default:e(()=>[v(i(f.row.parameterValue),1)]),_:2},1024)]),_:1})]),_:1},8,["data"])):m("",!0)]),_:1})]),_:1})):c.value==3?(a(),y(B,{key:2},{default:e(()=>[t(A,null,{default:e(()=>[n.value?(a(),y(j,{key:0,data:n.value,style:{width:"100%"}},{default:e(()=>[t(L,{prop:"url",label:"数据库连接地址"}),t(L,{prop:"user",label:"用户名"}),t(L,{prop:"password",label:"密码"},{default:e(f=>[t(u,null,{default:e(()=>[v(i(f.row.password),1)]),_:2},1024)]),_:1})]),_:1},8,["data"])):m("",!0)]),_:1})]),_:1})):m("",!0)]),_:1}),c.value==1||c.value==3?(a(),y(F,{key:0,label:"HTTP请求信息",name:"second"},{default:e(()=>[_("div",Ge,[_("div",Xe,[Ye,t(M,{type:"textarea",modelValue:b.value,"onUpdate:modelValue":r[1]||(r[1]=f=>b.value=f)},null,8,["modelValue"]),t(I,{class:"http-copy-button",onClick:J},{default:e(()=>[v("复制")]),_:1})]),_("div",et,[tt,t(M,{type:"textarea",modelValue:T.value,"onUpdate:modelValue":r[2]||(r[2]=f=>T.value=f)},null,8,["modelValue"]),t(I,{class:"http-copy-button",onClick:K},{default:e(()=>[v("复制")]),_:1})])])]),_:1})):m("",!0)]),_:1},8,["modelValue"])]),_:1})])}}});export{it as default}; diff --git a/docker/frontend/web/dist/static/index-62547993.js b/docker/frontend/web/dist/static/index-053e8886.js similarity index 98% rename from docker/frontend/web/dist/static/index-62547993.js rename to docker/frontend/web/dist/static/index-053e8886.js index e30c178..9a50ba9 100644 --- a/docker/frontend/web/dist/static/index-62547993.js +++ b/docker/frontend/web/dist/static/index-053e8886.js @@ -1 +1 @@ -import{x as se,r as ue,y as ie,z as de,F as pe,A as ce,E as p,B as P}from"./element-0afb0e99.js";import{E as me,F as fe,G as _e,H as j,m as ge}from"./index-46bdc1ae.js";import{p as ve,r as i,Z as N,ai as s,aq as he,q as v,t as be,P as M,M as y,O as a,U as e,u as w,S as r,v as V,T as ye}from"./vue-956193f0.js";import{_ as we}from"./index-35ab6744.js";import"./vxe-78a23074.js";const Ce={class:"app-container"},Ve={class:"toolbar-wrapper"},ke={class:"table-wrapper"},xe={class:"pager-wrapper"},Ue=ve({name:"ElementPlus",__name:"index",setup(ze){const k=i(),C=i(),S=i(10),B=i(1),D=i(0),x=i(0),f={pageSize:20,pageNum:1},h=i(!1),$=o=>{f.pageSize=o,c()},b=i(!1),A=i(null),n=N({id:"",username:"",password:"",email:"",phone:"",state:"1"}),I=N({username:[{required:!0,trigger:"blur",message:"请输入用户名"}],password:[{required:!0,trigger:"blur",message:"请输入密码"}]}),c=()=>{h.value=!0,me(f).then(o=>{const{pageSize:t,pageNum:g,total:d,pages:u,list:U}=o.data;C.value=U,S.value=t,D.value=u,B.value=g,x.value=d}).catch(()=>{C.value=[]}).finally(()=>{h.value=!1})};c();const L=()=>{n.username="",n.password="",n.email="",n.phone=""},_=N({username:""}),G=()=>{_.username=""},T=i();function H(o){T.value=o}const O=o=>{f.pageNum=o,c()};function Z(){J().finally(()=>{b.value=!1,c()})}function J(){return k.value=="新增用户"?Q():K()}function K(){return fe(n).then(()=>{p.info("更新用户成功")}).catch(()=>{p.warning("更新用户失败")})}function Q(){return _e(n).then(()=>{p.info("添加用户成功")}).catch(()=>{p.warning("添加用户失败")})}function W(o){b.value=!0,k.value="修改用户",n.username=o.username,n.password=o.password,n.email=o.email,n.phone=o.phone,n.state=o.state,n.id=o.id}function X(){b.value=!0,k.value="新增用户"}function Y(){let o=[];for(const t of T.value)o.push(t.id);P.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{p({type:"success",message:"删除成功"}),h.value=!0,j(o.join(",")).then(()=>{c()}).finally(()=>{h.value=!1})}).catch(()=>{p({type:"info",message:"删除取消"})})}function ee(o){if(o==null){p.warning("用户id为空");return}P.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{p({type:"success",message:"删除成功"}),j(o).then(()=>{c()})}).catch(()=>{p({type:"info",message:"删除取消"})})}function ae(){if(_.username==null||_.username==""){c();return}ge(_.username).then(o=>{C.value=[o.data],S.value=1,D.value=1,B.value=1,x.value=1}).catch(()=>{C.value=[],S.value=0,D.value=0,B.value=0,x.value=0})}return(o,t)=>{const g=s("el-input"),d=s("el-form-item"),u=s("el-button"),U=s("el-form"),E=s("el-card"),q=s("el-tooltip"),m=s("el-table-column"),z=s("el-tag"),le=s("el-table"),te=s("el-pagination"),R=s("el-radio"),ne=s("el-radio-group"),oe=s("el-dialog"),F=he("loading");return v(),be("div",Ce,[M((v(),y(E,{shadow:"never",class:"search-wrapper"},{default:a(()=>[e(U,{ref:"searchFormRef",inline:!0,model:_},{default:a(()=>[e(d,{prop:"username",label:"用户名"},{default:a(()=>[e(g,{modelValue:_.username,"onUpdate:modelValue":t[0]||(t[0]=l=>_.username=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,null,{default:a(()=>[e(u,{type:"primary",icon:w(se),onClick:ae},{default:a(()=>[r("查询")]),_:1},8,["icon"]),e(u,{icon:w(ue),onClick:G},{default:a(()=>[r("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])]),_:1})),[[F,h.value]]),M((v(),y(E,{shadow:"never"},{default:a(()=>[V("div",Ve,[V("div",null,[e(u,{type:"primary",icon:w(ie),onClick:X},{default:a(()=>[r("新增用户")]),_:1},8,["icon"]),e(u,{type:"danger",icon:w(de),onClick:Y},{default:a(()=>[r("批量删除")]),_:1},8,["icon"])]),V("div",null,[e(q,{content:"下载"},{default:a(()=>[e(u,{type:"primary",icon:w(pe),circle:""},null,8,["icon"])]),_:1}),e(q,{content:"刷新当前页"},{default:a(()=>[e(u,{type:"primary",icon:w(ce),circle:"",onClick:c},null,8,["icon"])]),_:1})])]),V("div",ke,[e(le,{data:C.value,onSelectionChange:H},{default:a(()=>[e(m,{type:"selection",width:"50",align:"center"}),e(m,{prop:"username",label:"用户名",align:"center",sortable:""}),e(m,{prop:"roles",label:"角色",align:"center",sortable:""},{default:a(l=>[l.row.roles==="admin"?(v(),y(z,{key:0,effect:"plain"},{default:a(()=>[r("admin")]),_:1})):(v(),y(z,{key:1,type:"warning",effect:"plain"},{default:a(()=>[r(ye(l.row.roles),1)]),_:2},1024))]),_:1}),e(m,{prop:"phone",label:"手机号",align:"center",sortable:""}),e(m,{prop:"email",label:"邮箱",align:"center"}),e(m,{prop:"state",label:"状态",align:"center",sortable:""},{default:a(l=>[l.row.state?(v(),y(z,{key:0,type:"success",effect:"plain"},{default:a(()=>[r("启用")]),_:1})):(v(),y(z,{key:1,type:"danger",effect:"plain"},{default:a(()=>[r("禁用")]),_:1}))]),_:1}),e(m,{prop:"created",label:"创建时间",align:"center",sortable:""}),e(m,{fixed:"right",label:"操作",width:"150",align:"center"},{default:a(l=>[e(u,{type:"primary",text:"",bg:"",size:"small",onClick:re=>W(l.row)},{default:a(()=>[r("修改")]),_:2},1032,["onClick"]),e(u,{type:"danger",text:"",bg:"",size:"small",onClick:re=>ee(l.row.id)},{default:a(()=>[r("删除")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])]),V("div",xe,[e(te,{background:"","current-page":f.pageNum,"onUpdate:currentPage":t[1]||(t[1]=l=>f.pageNum=l),"page-size":f.pageSize,"onUpdate:pageSize":t[2]||(t[2]=l=>f.pageSize=l),"page-sizes":[10,20,50,100],small:!1,layout:"total, sizes, prev, pager, next, jumper",total:x.value,onSizeChange:$,onCurrentChange:O},null,8,["current-page","page-size","total"])])]),_:1})),[[F,h.value]]),e(oe,{modelValue:b.value,"onUpdate:modelValue":t[9]||(t[9]=l=>b.value=l),title:k.value,onClose:L,width:"30%"},{footer:a(()=>[e(u,{onClick:t[8]||(t[8]=l=>b.value=!1)},{default:a(()=>[r("取消")]),_:1}),e(u,{type:"primary",onClick:Z},{default:a(()=>[r("确认")]),_:1})]),default:a(()=>[e(U,{ref_key:"formRef",ref:A,model:n,rules:I,"label-width":"100px","label-position":"left"},{default:a(()=>[e(d,{prop:"username",label:"用户名"},{default:a(()=>[e(g,{modelValue:n.username,"onUpdate:modelValue":t[3]||(t[3]=l=>n.username=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,{prop:"password",label:"密码"},{default:a(()=>[e(g,{type:"password",modelValue:n.password,"onUpdate:modelValue":t[4]||(t[4]=l=>n.password=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,{prop:"email",label:"邮箱"},{default:a(()=>[e(g,{modelValue:n.email,"onUpdate:modelValue":t[5]||(t[5]=l=>n.email=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,{prop:"phone",label:"手机号"},{default:a(()=>[e(g,{type:"number",modelValue:n.phone,"onUpdate:modelValue":t[6]||(t[6]=l=>n.phone=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,{prop:"state",label:"状态"},{default:a(()=>[e(ne,{modelValue:n.state,"onUpdate:modelValue":t[7]||(t[7]=l=>n.state=l)},{default:a(()=>[e(R,{label:"1"},{default:a(()=>[r("启用")]),_:1}),e(R,{label:"-1"},{default:a(()=>[r("禁用")]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}});const Ee=we(Ue,[["__scopeId","data-v-51fc464b"]]);export{Ee as default}; +import{x as se,r as ue,y as ie,z as de,F as pe,A as ce,E as p,B as P}from"./element-0afb0e99.js";import{E as me,F as fe,G as _e,H as j,m as ge}from"./index-8fe9da41.js";import{p as ve,r as i,Z as N,ai as s,aq as he,q as v,t as be,P as M,M as y,O as a,U as e,u as w,S as r,v as V,T as ye}from"./vue-956193f0.js";import{_ as we}from"./index-5b4830db.js";import"./vxe-78a23074.js";const Ce={class:"app-container"},Ve={class:"toolbar-wrapper"},ke={class:"table-wrapper"},xe={class:"pager-wrapper"},Ue=ve({name:"ElementPlus",__name:"index",setup(ze){const k=i(),C=i(),S=i(10),B=i(1),D=i(0),x=i(0),f={pageSize:20,pageNum:1},h=i(!1),$=o=>{f.pageSize=o,c()},b=i(!1),A=i(null),n=N({id:"",username:"",password:"",email:"",phone:"",state:"1"}),I=N({username:[{required:!0,trigger:"blur",message:"请输入用户名"}],password:[{required:!0,trigger:"blur",message:"请输入密码"}]}),c=()=>{h.value=!0,me(f).then(o=>{const{pageSize:t,pageNum:g,total:d,pages:u,list:U}=o.data;C.value=U,S.value=t,D.value=u,B.value=g,x.value=d}).catch(()=>{C.value=[]}).finally(()=>{h.value=!1})};c();const L=()=>{n.username="",n.password="",n.email="",n.phone=""},_=N({username:""}),G=()=>{_.username=""},T=i();function H(o){T.value=o}const O=o=>{f.pageNum=o,c()};function Z(){J().finally(()=>{b.value=!1,c()})}function J(){return k.value=="新增用户"?Q():K()}function K(){return fe(n).then(()=>{p.info("更新用户成功")}).catch(()=>{p.warning("更新用户失败")})}function Q(){return _e(n).then(()=>{p.info("添加用户成功")}).catch(()=>{p.warning("添加用户失败")})}function W(o){b.value=!0,k.value="修改用户",n.username=o.username,n.password=o.password,n.email=o.email,n.phone=o.phone,n.state=o.state,n.id=o.id}function X(){b.value=!0,k.value="新增用户"}function Y(){let o=[];for(const t of T.value)o.push(t.id);P.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{p({type:"success",message:"删除成功"}),h.value=!0,j(o.join(",")).then(()=>{c()}).finally(()=>{h.value=!1})}).catch(()=>{p({type:"info",message:"删除取消"})})}function ee(o){if(o==null){p.warning("用户id为空");return}P.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{p({type:"success",message:"删除成功"}),j(o).then(()=>{c()})}).catch(()=>{p({type:"info",message:"删除取消"})})}function ae(){if(_.username==null||_.username==""){c();return}ge(_.username).then(o=>{C.value=[o.data],S.value=1,D.value=1,B.value=1,x.value=1}).catch(()=>{C.value=[],S.value=0,D.value=0,B.value=0,x.value=0})}return(o,t)=>{const g=s("el-input"),d=s("el-form-item"),u=s("el-button"),U=s("el-form"),E=s("el-card"),q=s("el-tooltip"),m=s("el-table-column"),z=s("el-tag"),le=s("el-table"),te=s("el-pagination"),R=s("el-radio"),ne=s("el-radio-group"),oe=s("el-dialog"),F=he("loading");return v(),be("div",Ce,[M((v(),y(E,{shadow:"never",class:"search-wrapper"},{default:a(()=>[e(U,{ref:"searchFormRef",inline:!0,model:_},{default:a(()=>[e(d,{prop:"username",label:"用户名"},{default:a(()=>[e(g,{modelValue:_.username,"onUpdate:modelValue":t[0]||(t[0]=l=>_.username=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,null,{default:a(()=>[e(u,{type:"primary",icon:w(se),onClick:ae},{default:a(()=>[r("查询")]),_:1},8,["icon"]),e(u,{icon:w(ue),onClick:G},{default:a(()=>[r("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])]),_:1})),[[F,h.value]]),M((v(),y(E,{shadow:"never"},{default:a(()=>[V("div",Ve,[V("div",null,[e(u,{type:"primary",icon:w(ie),onClick:X},{default:a(()=>[r("新增用户")]),_:1},8,["icon"]),e(u,{type:"danger",icon:w(de),onClick:Y},{default:a(()=>[r("批量删除")]),_:1},8,["icon"])]),V("div",null,[e(q,{content:"下载"},{default:a(()=>[e(u,{type:"primary",icon:w(pe),circle:""},null,8,["icon"])]),_:1}),e(q,{content:"刷新当前页"},{default:a(()=>[e(u,{type:"primary",icon:w(ce),circle:"",onClick:c},null,8,["icon"])]),_:1})])]),V("div",ke,[e(le,{data:C.value,onSelectionChange:H},{default:a(()=>[e(m,{type:"selection",width:"50",align:"center"}),e(m,{prop:"username",label:"用户名",align:"center",sortable:""}),e(m,{prop:"roles",label:"角色",align:"center",sortable:""},{default:a(l=>[l.row.roles==="admin"?(v(),y(z,{key:0,effect:"plain"},{default:a(()=>[r("admin")]),_:1})):(v(),y(z,{key:1,type:"warning",effect:"plain"},{default:a(()=>[r(ye(l.row.roles),1)]),_:2},1024))]),_:1}),e(m,{prop:"phone",label:"手机号",align:"center",sortable:""}),e(m,{prop:"email",label:"邮箱",align:"center"}),e(m,{prop:"state",label:"状态",align:"center",sortable:""},{default:a(l=>[l.row.state?(v(),y(z,{key:0,type:"success",effect:"plain"},{default:a(()=>[r("启用")]),_:1})):(v(),y(z,{key:1,type:"danger",effect:"plain"},{default:a(()=>[r("禁用")]),_:1}))]),_:1}),e(m,{prop:"created",label:"创建时间",align:"center",sortable:""}),e(m,{fixed:"right",label:"操作",width:"150",align:"center"},{default:a(l=>[e(u,{type:"primary",text:"",bg:"",size:"small",onClick:re=>W(l.row)},{default:a(()=>[r("修改")]),_:2},1032,["onClick"]),e(u,{type:"danger",text:"",bg:"",size:"small",onClick:re=>ee(l.row.id)},{default:a(()=>[r("删除")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])]),V("div",xe,[e(te,{background:"","current-page":f.pageNum,"onUpdate:currentPage":t[1]||(t[1]=l=>f.pageNum=l),"page-size":f.pageSize,"onUpdate:pageSize":t[2]||(t[2]=l=>f.pageSize=l),"page-sizes":[10,20,50,100],small:!1,layout:"total, sizes, prev, pager, next, jumper",total:x.value,onSizeChange:$,onCurrentChange:O},null,8,["current-page","page-size","total"])])]),_:1})),[[F,h.value]]),e(oe,{modelValue:b.value,"onUpdate:modelValue":t[9]||(t[9]=l=>b.value=l),title:k.value,onClose:L,width:"30%"},{footer:a(()=>[e(u,{onClick:t[8]||(t[8]=l=>b.value=!1)},{default:a(()=>[r("取消")]),_:1}),e(u,{type:"primary",onClick:Z},{default:a(()=>[r("确认")]),_:1})]),default:a(()=>[e(U,{ref_key:"formRef",ref:A,model:n,rules:I,"label-width":"100px","label-position":"left"},{default:a(()=>[e(d,{prop:"username",label:"用户名"},{default:a(()=>[e(g,{modelValue:n.username,"onUpdate:modelValue":t[3]||(t[3]=l=>n.username=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,{prop:"password",label:"密码"},{default:a(()=>[e(g,{type:"password",modelValue:n.password,"onUpdate:modelValue":t[4]||(t[4]=l=>n.password=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,{prop:"email",label:"邮箱"},{default:a(()=>[e(g,{modelValue:n.email,"onUpdate:modelValue":t[5]||(t[5]=l=>n.email=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,{prop:"phone",label:"手机号"},{default:a(()=>[e(g,{type:"number",modelValue:n.phone,"onUpdate:modelValue":t[6]||(t[6]=l=>n.phone=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(d,{prop:"state",label:"状态"},{default:a(()=>[e(ne,{modelValue:n.state,"onUpdate:modelValue":t[7]||(t[7]=l=>n.state=l)},{default:a(()=>[e(R,{label:"1"},{default:a(()=>[r("启用")]),_:1}),e(R,{label:"-1"},{default:a(()=>[r("禁用")]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}});const Ee=we(Ue,[["__scopeId","data-v-51fc464b"]]);export{Ee as default}; diff --git a/docker/frontend/web/dist/static/index-a2f9a4fa.js b/docker/frontend/web/dist/static/index-1e1bf702.js similarity index 97% rename from docker/frontend/web/dist/static/index-a2f9a4fa.js rename to docker/frontend/web/dist/static/index-1e1bf702.js index deece68..e4d7069 100644 --- a/docker/frontend/web/dist/static/index-a2f9a4fa.js +++ b/docker/frontend/web/dist/static/index-1e1bf702.js @@ -1 +1 @@ -import{i as J,H as z,_ as M}from"./index-35ab6744.js";import{d as F,e as G,f as H,h as U,i as $,j as E}from"./index-46bdc1ae.js";import{g as Y,a as K}from"./level-61112490.js";import{g as Q}from"./state-c5255287.js";import{r as p,p as W,ai as _,q as B,t as P,v as i,U as e,O as t,S as x,T as w,u as y,F as X,a8 as Z,aH as ee,aI as te}from"./vue-956193f0.js";import"./element-0afb0e99.js";import"./vxe-78a23074.js";const ae=p(),V=p(),oe=p(),j=p(),ne=p(),k=p(),se=()=>new Promise((r,c)=>{F().then(a=>{const n=a.data,o=[],f=JSON.stringify(n);let d=0;const s=JSON.parse(f);for(const l in s)if(Object.prototype.hasOwnProperty.call(s,l)){const u=s[l];d+=Number(u),o.push({name:Y(Number(l)),value:u})}V.value=d,ae.value=o}).catch(a=>{c(a)})}),le=()=>new Promise((r,c)=>{G().then(a=>{const n=a.data,o=[],f=JSON.stringify(n);let d=0;const s=JSON.parse(f);for(const l in s)if(Object.prototype.hasOwnProperty.call(s,l)){const u=s[l];d+=Number(u),o.push({name:K(Number(l)),value:u})}k.value=d,ne.value=o}).catch(a=>{c(a)})}),re=()=>new Promise((r,c)=>{H().then(a=>{const n=a.data,o=[],f=JSON.stringify(n);let d=0;const s=JSON.parse(f);for(const l in s)if(Object.prototype.hasOwnProperty.call(s,l)){const u=s[l];d+=Number(u),o.push({name:Q(Number(l)),value:u})}j.value=d,oe.value=o}).catch(a=>{c(a)})}),ce=(r,c)=>({backgroundColor:"var(--el-color-primary)",grid:{left:"5%",right:"10%",top:"20%",bottom:"15%",containLabel:!0},tooltip:{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(50, 216, 205, 1)"}}},xAxis:[{type:"category",boundaryGap:1,axisLine:{show:!1},axisLabel:{color:"#A1A7B3"},splitLine:{show:!1},axisTick:{show:!1},data:r}],yAxis:[{type:"value",name:"",padding:5,splitLine:{show:!0,lineStyle:{color:"#A1A7B3",type:"dashed"}},axisLine:{show:!1},axisLabel:{show:!0,margin:10,textStyle:{color:"#A1A7B3"}},axisTick:{show:!1},minInterval:1}],series:[{name:"今日",type:"line",smooth:!0,stack:"总量",symbolSize:5,showSymbol:!1,itemStyle:{normal:{color:"#23D0C4",lineStyle:{color:"#23D0C4",width:2}}},areaStyle:{normal:{color:new J.graphic.LinearGradient(0,0,0,1,[{offset:0,color:"rgba(50, 216, 205, 1)"},{offset:1,color:"rgba(255, 255, 255, 0.2)"}],!1)}},data:c}]});function T(){const r=[],c=new Date;for(let a=0;a<7;a++){const n=new Date(c);n.setDate(c.getDate()-a);const o=`${n.getMonth()+1}月${n.getDate()}日`;r.push(o)}return r.reverse()}const C=r=>(ee("data-v-000249ae"),r=r(),te(),r),ie={class:"header-div"},de={class:"card-content"},ue={class:"bottom-text"},_e={class:"card-content"},pe=C(()=>i("span",{class:"top-text"},"Agent总数",-1)),he={class:"bottom-text"},fe={class:"card-content"},me=C(()=>i("span",{class:"top-text"},"漏洞总数",-1)),ve={class:"bottom-text"},ge={class:"common-layout"},ye={class:"flex-container"},be={class:"flex-container"},xe=W({__name:"index",setup(r){const c=[{value:"seven",label:"最近7天"},{value:"year",label:"最近一年"}],a=p([]),n=p(T()),o=p([]);(()=>{U().then(h=>{o.value=h.data}).catch(()=>{o.value=[]})})();const d=()=>{$().then(h=>{a.value=h.data}).catch(()=>{a.value=[]})},s=()=>{E().then(h=>{a.value=h.data}).catch(()=>{a.value=[]})};d();function l(h){h==="seven"?(n.value=T(),d()):h==="year"&&(n.value=["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","12月"],s())}const u=p("seven");return le(),re(),se(),(h,S)=>{const b=_("el-text"),m=_("el-card"),v=_("el-col"),D=_("el-row"),R=_("el-option"),q=_("el-select"),O=_("el-header"),N=_("el-main"),A=_("el-container"),L=_("el-table-column"),I=_("el-table");return B(),P("div",null,[i("div",ie,[e(D,{gutter:15},{default:t(()=>[e(v,{span:8},{default:t(()=>[e(m,null,{default:t(()=>[i("div",de,[e(b,{class:"top-text"},{default:t(()=>[x("应用总数")]),_:1}),i("span",ue,w(y(V)),1)])]),_:1})]),_:1}),e(v,{span:8},{default:t(()=>[e(m,null,{default:t(()=>[i("div",_e,[pe,i("span",he,w(y(j)),1)])]),_:1})]),_:1}),e(v,{span:8},{default:t(()=>[e(m,null,{default:t(()=>[i("div",fe,[me,i("span",ve,w(y(k)),1)])]),_:1})]),_:1})]),_:1})]),i("div",ge,[e(D,{gutter:20},{default:t(()=>[e(v,{span:12},{default:t(()=>[e(m,null,{default:t(()=>[e(A,null,{default:t(()=>[e(O,null,{default:t(()=>[i("div",ye,[e(b,{tag:"b",size:"large"},{default:t(()=>[x("新增漏洞趋势")]),_:1}),e(q,{modelValue:u.value,"onUpdate:modelValue":S[0]||(S[0]=g=>u.value=g),style:{width:"240px"},onChange:l},{default:t(()=>[(B(),P(X,null,Z(c,g=>e(R,{key:g.value,label:g.label,value:g.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])])]),_:1}),e(N,{class:"chart-trend"},{default:t(()=>[e(y(z),{class:"chart",option:y(ce)(n.value,a.value),autoresize:""},null,8,["option"])]),_:1})]),_:1})]),_:1})]),_:1}),e(v,{span:12},{default:t(()=>[e(m,null,{default:t(()=>[e(A,null,{default:t(()=>[e(O,null,{default:t(()=>[i("div",be,[e(b,{tag:"b",size:"large"},{default:t(()=>[x("漏洞类型TOP5")]),_:1})])]),_:1}),e(N,{class:"chart-trend"},{default:t(()=>[e(I,{data:o.value,border:"",align:"center",style:{width:"100%"}},{default:t(()=>[e(L,{prop:"vulnerable_type_zh",label:"漏洞名称",width:"180",align:"center"}),e(L,{prop:"count",label:"数量",align:"center"})]),_:1},8,["data"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})])])}}});const Be=M(xe,[["__scopeId","data-v-000249ae"]]);export{Be as default}; +import{i as J,H as z,_ as M}from"./index-5b4830db.js";import{d as F,e as G,f as H,h as U,i as $,j as E}from"./index-8fe9da41.js";import{g as Y,a as K}from"./level-61112490.js";import{g as Q}from"./state-c5255287.js";import{r as p,p as W,ai as _,q as B,t as P,v as i,U as e,O as t,S as x,T as w,u as y,F as X,a8 as Z,aH as ee,aI as te}from"./vue-956193f0.js";import"./element-0afb0e99.js";import"./vxe-78a23074.js";const ae=p(),V=p(),oe=p(),j=p(),ne=p(),k=p(),se=()=>new Promise((r,c)=>{F().then(a=>{const n=a.data,o=[],f=JSON.stringify(n);let d=0;const s=JSON.parse(f);for(const l in s)if(Object.prototype.hasOwnProperty.call(s,l)){const u=s[l];d+=Number(u),o.push({name:Y(Number(l)),value:u})}V.value=d,ae.value=o}).catch(a=>{c(a)})}),le=()=>new Promise((r,c)=>{G().then(a=>{const n=a.data,o=[],f=JSON.stringify(n);let d=0;const s=JSON.parse(f);for(const l in s)if(Object.prototype.hasOwnProperty.call(s,l)){const u=s[l];d+=Number(u),o.push({name:K(Number(l)),value:u})}k.value=d,ne.value=o}).catch(a=>{c(a)})}),re=()=>new Promise((r,c)=>{H().then(a=>{const n=a.data,o=[],f=JSON.stringify(n);let d=0;const s=JSON.parse(f);for(const l in s)if(Object.prototype.hasOwnProperty.call(s,l)){const u=s[l];d+=Number(u),o.push({name:Q(Number(l)),value:u})}j.value=d,oe.value=o}).catch(a=>{c(a)})}),ce=(r,c)=>({backgroundColor:"var(--el-color-primary)",grid:{left:"5%",right:"10%",top:"20%",bottom:"15%",containLabel:!0},tooltip:{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(50, 216, 205, 1)"}}},xAxis:[{type:"category",boundaryGap:1,axisLine:{show:!1},axisLabel:{color:"#A1A7B3"},splitLine:{show:!1},axisTick:{show:!1},data:r}],yAxis:[{type:"value",name:"",padding:5,splitLine:{show:!0,lineStyle:{color:"#A1A7B3",type:"dashed"}},axisLine:{show:!1},axisLabel:{show:!0,margin:10,textStyle:{color:"#A1A7B3"}},axisTick:{show:!1},minInterval:1}],series:[{name:"今日",type:"line",smooth:!0,stack:"总量",symbolSize:5,showSymbol:!1,itemStyle:{normal:{color:"#23D0C4",lineStyle:{color:"#23D0C4",width:2}}},areaStyle:{normal:{color:new J.graphic.LinearGradient(0,0,0,1,[{offset:0,color:"rgba(50, 216, 205, 1)"},{offset:1,color:"rgba(255, 255, 255, 0.2)"}],!1)}},data:c}]});function T(){const r=[],c=new Date;for(let a=0;a<7;a++){const n=new Date(c);n.setDate(c.getDate()-a);const o=`${n.getMonth()+1}月${n.getDate()}日`;r.push(o)}return r.reverse()}const C=r=>(ee("data-v-000249ae"),r=r(),te(),r),ie={class:"header-div"},de={class:"card-content"},ue={class:"bottom-text"},_e={class:"card-content"},pe=C(()=>i("span",{class:"top-text"},"Agent总数",-1)),he={class:"bottom-text"},fe={class:"card-content"},me=C(()=>i("span",{class:"top-text"},"漏洞总数",-1)),ve={class:"bottom-text"},ge={class:"common-layout"},ye={class:"flex-container"},be={class:"flex-container"},xe=W({__name:"index",setup(r){const c=[{value:"seven",label:"最近7天"},{value:"year",label:"最近一年"}],a=p([]),n=p(T()),o=p([]);(()=>{U().then(h=>{o.value=h.data}).catch(()=>{o.value=[]})})();const d=()=>{$().then(h=>{a.value=h.data}).catch(()=>{a.value=[]})},s=()=>{E().then(h=>{a.value=h.data}).catch(()=>{a.value=[]})};d();function l(h){h==="seven"?(n.value=T(),d()):h==="year"&&(n.value=["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","12月"],s())}const u=p("seven");return le(),re(),se(),(h,S)=>{const b=_("el-text"),m=_("el-card"),v=_("el-col"),D=_("el-row"),R=_("el-option"),q=_("el-select"),O=_("el-header"),N=_("el-main"),A=_("el-container"),L=_("el-table-column"),I=_("el-table");return B(),P("div",null,[i("div",ie,[e(D,{gutter:15},{default:t(()=>[e(v,{span:8},{default:t(()=>[e(m,null,{default:t(()=>[i("div",de,[e(b,{class:"top-text"},{default:t(()=>[x("应用总数")]),_:1}),i("span",ue,w(y(V)),1)])]),_:1})]),_:1}),e(v,{span:8},{default:t(()=>[e(m,null,{default:t(()=>[i("div",_e,[pe,i("span",he,w(y(j)),1)])]),_:1})]),_:1}),e(v,{span:8},{default:t(()=>[e(m,null,{default:t(()=>[i("div",fe,[me,i("span",ve,w(y(k)),1)])]),_:1})]),_:1})]),_:1})]),i("div",ge,[e(D,{gutter:20},{default:t(()=>[e(v,{span:12},{default:t(()=>[e(m,null,{default:t(()=>[e(A,null,{default:t(()=>[e(O,null,{default:t(()=>[i("div",ye,[e(b,{tag:"b",size:"large"},{default:t(()=>[x("新增漏洞趋势")]),_:1}),e(q,{modelValue:u.value,"onUpdate:modelValue":S[0]||(S[0]=g=>u.value=g),style:{width:"240px"},onChange:l},{default:t(()=>[(B(),P(X,null,Z(c,g=>e(R,{key:g.value,label:g.label,value:g.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])])]),_:1}),e(N,{class:"chart-trend"},{default:t(()=>[e(y(z),{class:"chart",option:y(ce)(n.value,a.value),autoresize:""},null,8,["option"])]),_:1})]),_:1})]),_:1})]),_:1}),e(v,{span:12},{default:t(()=>[e(m,null,{default:t(()=>[e(A,null,{default:t(()=>[e(O,null,{default:t(()=>[i("div",be,[e(b,{tag:"b",size:"large"},{default:t(()=>[x("漏洞类型TOP5")]),_:1})])]),_:1}),e(N,{class:"chart-trend"},{default:t(()=>[e(I,{data:o.value,border:"",align:"center",style:{width:"100%"}},{default:t(()=>[e(L,{prop:"vulnerable_type_zh",label:"漏洞名称",width:"180",align:"center"}),e(L,{prop:"count",label:"数量",align:"center"})]),_:1},8,["data"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})])])}}});const Be=M(xe,[["__scopeId","data-v-000249ae"]]);export{Be as default}; diff --git a/docker/frontend/web/dist/static/index-a61a615e.js b/docker/frontend/web/dist/static/index-2bbd35f6.js similarity index 99% rename from docker/frontend/web/dist/static/index-a61a615e.js rename to docker/frontend/web/dist/static/index-2bbd35f6.js index 072e920..5a84911 100644 --- a/docker/frontend/web/dist/static/index-a61a615e.js +++ b/docker/frontend/web/dist/static/index-2bbd35f6.js @@ -1,4 +1,4 @@ -import{aB as on,Z as an,r as j,b as Dt,E as Ot,d as vt,A as ht,p as Q,ai as S,q as p,t as H,v as R,U as u,O as v,W as rn,M as D,aC as sn,u as $,Q as Ze,aD as ot,aE as He,F as ge,a8 as Ie,T as ie,a2 as Je,H as Ye,f as B,aa as ln,R as G,S as re,I as he,aF as we,aG as Pt,aq as cn,P as je,w as et,c as Nt,J as Ht,aH as mt,aI as gt,s as un,a9 as Ke,n as dn,aJ as fn,V as at}from"./vue-956193f0.js";import{g as _n,s as Rt,u as rt,a as Ut,_ as ne,b as Se,r as pn,c as yt,d as bt,e as zt,f as vn}from"./index-35ab6744.js";import{e as qe,f as hn,h as mn,g as gn,c as yn,j as bn,E as tt,k as wn,l as Bt,p as xn,u as Sn,r as Cn,n as En,o as Tn,q as An,s as $n}from"./element-0afb0e99.js";import"./vxe-78a23074.js";import{r as Ln,a as Rn,b as In,g as kn,c as Fn}from"./index-46bdc1ae.js";import{_ as Mn}from"./index.vue_vue_type_script_setup_true_lang-497f09e5.js";var me=(s=>(s[s.Mobile=0]="Mobile",s[s.Desktop=1]="Desktop",s))(me||{});const Vn="opened",Wt="closed";function Dn(s){s?Rt(Vn):Rt(Wt)}const ke=on("app",()=>{const s=an({opened:_n()!==Wt,withoutAnimation:!1}),r=j(me.Desktop);return Dt(()=>s.opened,e=>Dn(e)),{device:r,sidebar:s,toggleSidebar:e=>{s.opened=!s.opened,s.withoutAnimation=e},closeSidebar:e=>{s.opened=!1,s.withoutAnimation=e},toggleDevice:e=>{r.value=e}}}),On=992,Pn=()=>{const s=ke(),{listenerRouteChange:r}=rt(),n=()=>document.body.getBoundingClientRect().width-1{if(!document.hidden){const t=n();s.toggleDevice(t?me.Mobile:me.Desktop),t&&s.closeSidebar(!0)}};r(()=>{s.device===me.Mobile&&s.sidebar.opened&&s.closeSidebar(!1)}),Ot(()=>{window.addEventListener("resize",o)}),vt(()=>{n()&&(s.toggleDevice(me.Mobile),s.closeSidebar(!0))}),ht(()=>{window.removeEventListener("resize",o)})},Nn={color:"#c0c4cc",opacity:.5,size:16,family:"serif",angle:-20,width:300,height:100},Hn=j(document.body);function Un(s=Hn){let r,n,o=null;const t={mutationObserver:void 0,resizeObserver:void 0},e=(h,C={})=>{if(!s.value){console.warn("请在 DOM 挂载完成后再调用 setWatermark 方法设置水印");return}r=h,n={...Nn,...C},a(),i(s.value)},a=()=>{if(o){l();return}const h=document.createElement("div");h.style.pointerEvents="none",h.style.top="0",h.style.left="0",h.style.position="absolute",h.style.zIndex="99999",o=h;const{clientWidth:C,clientHeight:A}=s.value;l({width:C,height:A}),s.value.style.position="relative",s.value.appendChild(h)},l=(h={})=>{o&&(r&&(o.style.background=`url(${d()}) left top repeat`),h.width&&(o.style.width=`${h.width}px`),h.height&&(o.style.height=`${h.height}px`))},d=()=>{const{color:h,opacity:C,size:A,family:L,angle:F,width:O,height:q}=n,W=document.createElement("canvas");W.width=O,W.height=q;const E=W.getContext("2d");return E&&(E.fillStyle=h,E.globalAlpha=C,E.font=`${A}px ${L}`,E.rotate(Math.PI/180*F),E.fillText(r,0,q/2)),W.toDataURL()},f=()=>{!s.value||!o||(s.value.removeChild(o),o=null,x(s.value))},_=qe(()=>{f(),a(),i(s.value)},100),i=h=>{t.mutationObserver||t.resizeObserver||(g(h),m(h))},x=h=>{var C,A;(C=t.mutationObserver)==null||C.disconnect(),t.mutationObserver=void 0,(A=t.resizeObserver)==null||A.unobserve(h),t.resizeObserver=void 0},g=h=>{const C={attributes:!0,childList:!0,subtree:!0},A=qe(L=>{const F=qe(O=>{switch(O.type){case"attributes":O.target===o&&_();break;case"childList":O.removedNodes.forEach(q=>{q===o&&h.appendChild(o)});break}},100);L.forEach(O=>{F(O)})},100);t.mutationObserver=new MutationObserver(A),t.mutationObserver.observe(h,C)},m=h=>{const C=qe(()=>{const{clientWidth:A,clientHeight:L}=h;l({width:A,height:L})},500);t.resizeObserver=new ResizeObserver(C),t.resizeObserver.observe(h)};return ht(()=>{f()}),{setWatermark:e,clearWatermark:f}}const zn={class:"app-main"},Bn={class:"app-scrollbar"},Wn=Q({__name:"AppMain",setup(s){const r=Ut();return(n,o)=>{const t=S("router-view"),e=S("el-backtop");return p(),H("section",zn,[R("div",Bn,[u(t,null,{default:v(({Component:a,route:l})=>[u(rn,{name:"el-fade-in",mode:"out-in"},{default:v(()=>[(p(),D(sn,{include:$(r).cachedViews},[(p(),D(Ze(a),{key:l.path}))],1032,["include"]))]),_:2},1024)]),_:1})]),u(e),u(e,{target:".app-scrollbar"})])}}});const wt=ne(Wn,[["__scopeId","data-v-404efda6"]]),qn=Q({__name:"index",props:{isActive:{type:Boolean,default:!1}},emits:["toggleClick"],setup(s,{emit:r}){const n=s,o=()=>{r("toggleClick")};return(t,e)=>{const a=S("el-icon");return p(),H("div",{onClick:o},[u(a,{size:20,class:"icon"},{default:v(()=>[n.isActive?(p(),D($(hn),{key:0})):(p(),D($(mn),{key:1}))]),_:1})])}}});const jn=ne(qn,[["__scopeId","data-v-133039c0"]]);function Xn(s){for(var r=[],n=0;n=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||a===95){t+=s[e++];continue}break}if(!t)throw new TypeError("Missing parameter name at ".concat(n));r.push({type:"NAME",index:n,value:t}),n=e;continue}if(o==="("){var l=1,d="",e=n+1;if(s[e]==="?")throw new TypeError('Pattern cannot start with "?" at '.concat(e));for(;e{t.value=r.matched.filter(d=>{var f,_;return((f=d.meta)==null?void 0:f.title)&&((_=d.meta)==null?void 0:_.breadcrumb)!==!1})},a=d=>Kn(d)(r.params),l=d=>{const{redirect:f,path:_}=d;if(f){n.push(f);return}n.push(a(_))};return o(d=>{d.path.startsWith("/redirect/")||e()},!0),(d,f)=>{const _=S("el-breadcrumb-item"),i=S("el-breadcrumb");return p(),D(i,{class:"app-breadcrumb"},{default:v(()=>[(p(!0),H(ge,null,Ie(t.value,(x,g)=>(p(),D(_,{key:x.path},{default:v(()=>[x.redirect==="noRedirect"||g===t.value.length-1?(p(),H("span",Yn,ie(x.meta.title),1)):(p(),H("a",{key:1,onClick:Je(m=>l(x),["prevent"])},ie(x.meta.title),9,eo))]),_:2},1024))),128))]),_:1})}}});const no=ne(to,[["__scopeId","data-v-63d11c68"]]),nt=s=>/^(https?:|mailto:|tel:)/.test(s),oo=["href"],ao=Q({__name:"SidebarItemLink",props:{to:{}},setup(s){const r=s;return(n,o)=>{const t=S("router-link");return $(nt)(r.to)?(p(),H("a",{key:0,href:r.to,target:"_blank",rel:"noopener"},[Ye(n.$slots,"default")],8,oo)):(p(),D(t,{key:1,to:r.to},{default:v(()=>[Ye(n.$slots,"default")]),_:3},8,["to"]))}}});function xe(s){if(typeof s!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(s))}function It(s,r){for(var n="",o=0,t=-1,e=0,a,l=0;l<=s.length;++l){if(l2){var d=n.lastIndexOf("/");if(d!==n.length-1){d===-1?(n="",o=0):(n=n.slice(0,d),o=n.length-1-n.lastIndexOf("/")),t=l,e=0;continue}}else if(n.length===2||n.length===1){n="",o=0,t=l,e=0;continue}}r&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+s.slice(t+1,l):n=s.slice(t+1,l),o=l-t-1;t=l,e=0}else a===46&&e!==-1?++e:e=-1}return n}function ro(s,r){var n=r.dir||r.root,o=r.base||(r.name||"")+(r.ext||"");return n?n===r.root?n+o:n+s+o:o}var Ne={resolve:function(){for(var r="",n=!1,o,t=arguments.length-1;t>=-1&&!n;t--){var e;t>=0?e=arguments[t]:(o===void 0&&(o=process.cwd()),e=o),xe(e),e.length!==0&&(r=e+"/"+r,n=e.charCodeAt(0)===47)}return r=It(r,!n),n?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(r){if(xe(r),r.length===0)return".";var n=r.charCodeAt(0)===47,o=r.charCodeAt(r.length-1)===47;return r=It(r,!n),r.length===0&&!n&&(r="."),r.length>0&&o&&(r+="/"),n?"/"+r:r},isAbsolute:function(r){return xe(r),r.length>0&&r.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var r,n=0;n0&&(r===void 0?r=o:r+="/"+o)}return r===void 0?".":Ne.normalize(r)},relative:function(r,n){if(xe(r),xe(n),r===n||(r=Ne.resolve(r),n=Ne.resolve(n),r===n))return"";for(var o=1;of){if(n.charCodeAt(a+i)===47)return n.slice(a+i+1);if(i===0)return n.slice(a+i)}else e>f&&(r.charCodeAt(o+i)===47?_=i:i===0&&(_=0));break}var x=r.charCodeAt(o+i),g=n.charCodeAt(a+i);if(x!==g)break;x===47&&(_=i)}var m="";for(i=o+_+1;i<=t;++i)(i===t||r.charCodeAt(i)===47)&&(m.length===0?m+="..":m+="/..");return m.length>0?m+n.slice(a+_):(a+=_,n.charCodeAt(a)===47&&++a,n.slice(a))},_makeLong:function(r){return r},dirname:function(r){if(xe(r),r.length===0)return".";for(var n=r.charCodeAt(0),o=n===47,t=-1,e=!0,a=r.length-1;a>=1;--a)if(n=r.charCodeAt(a),n===47){if(!e){t=a;break}}else e=!1;return t===-1?o?"/":".":o&&t===1?"//":r.slice(0,t)},basename:function(r,n){if(n!==void 0&&typeof n!="string")throw new TypeError('"ext" argument must be a string');xe(r);var o=0,t=-1,e=!0,a;if(n!==void 0&&n.length>0&&n.length<=r.length){if(n.length===r.length&&n===r)return"";var l=n.length-1,d=-1;for(a=r.length-1;a>=0;--a){var f=r.charCodeAt(a);if(f===47){if(!e){o=a+1;break}}else d===-1&&(e=!1,d=a+1),l>=0&&(f===n.charCodeAt(l)?--l===-1&&(t=a):(l=-1,t=d))}return o===t?t=d:t===-1&&(t=r.length),r.slice(o,t)}else{for(a=r.length-1;a>=0;--a)if(r.charCodeAt(a)===47){if(!e){o=a+1;break}}else t===-1&&(e=!1,t=a+1);return t===-1?"":r.slice(o,t)}},extname:function(r){xe(r);for(var n=-1,o=0,t=-1,e=!0,a=0,l=r.length-1;l>=0;--l){var d=r.charCodeAt(l);if(d===47){if(!e){o=l+1;break}continue}t===-1&&(e=!1,t=l+1),d===46?n===-1?n=l:a!==1&&(a=1):n!==-1&&(a=-1)}return n===-1||t===-1||a===0||a===1&&n===t-1&&n===o+1?"":r.slice(n,t)},format:function(r){if(r===null||typeof r!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof r);return ro("/",r)},parse:function(r){xe(r);var n={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return n;var o=r.charCodeAt(0),t=o===47,e;t?(n.root="/",e=1):e=0;for(var a=-1,l=0,d=-1,f=!0,_=r.length-1,i=0;_>=e;--_){if(o=r.charCodeAt(_),o===47){if(!f){l=_+1;break}continue}d===-1&&(f=!1,d=_+1),o===46?a===-1?a=_:i!==1&&(i=1):a!==-1&&(i=-1)}return a===-1||d===-1||i===0||i===1&&a===d-1&&a===l+1?d!==-1&&(l===0&&t?n.base=n.name=r.slice(1,d):n.base=n.name=r.slice(l,d)):(l===0&&t?(n.name=r.slice(1,a),n.base=r.slice(1,d)):(n.name=r.slice(l,a),n.base=r.slice(l,d)),n.ext=r.slice(a,d)),l>0?n.dir=r.slice(0,l-1):t&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};Ne.posix=Ne;var so=Ne;const qt=gn(so),lo={key:2},io=Q({__name:"SidebarItem",props:{item:{},isCollapse:{type:Boolean,default:!1},isTop:{type:Boolean,default:!1},isFirstLevel:{type:Boolean,default:!0},basePath:{default:""}},setup(s){const r=s,n=B(()=>{var l;return(l=r.item.meta)==null?void 0:l.alwaysShow}),o=B(()=>{var l;return((l=r.item.children)==null?void 0:l.filter(d=>{var f;return!((f=d.meta)!=null&&f.hidden)}))??[]}),t=B(()=>o.value.length),e=B(()=>{const l=t.value;switch(!0){case l>1:return null;case l===1:return o.value[0];default:return{...r.item,path:""}}}),a=l=>{switch(!0){case nt(l):return l;case nt(r.basePath):return r.basePath;default:return qt.resolve(r.basePath,l)}};return(l,d)=>{var g;const f=S("SvgIcon"),_=S("el-menu-item"),i=S("sidebar-item",!0),x=S("el-sub-menu");return(g=r.item.meta)!=null&&g.hidden?G("",!0):(p(),H("div",{key:0,class:he({"simple-mode":r.isCollapse&&!l.isTop,"first-level":r.isFirstLevel})},[!n.value&&e.value&&!e.value.children?(p(),H(ge,{key:0},[e.value.meta?(p(),D(ao,{key:0,to:a(e.value.path)},{default:v(()=>[u(_,{index:a(e.value.path)},ln({default:v(()=>[e.value.meta.svgIcon?(p(),D(f,{key:0,name:e.value.meta.svgIcon},null,8,["name"])):e.value.meta.elIcon?(p(),D(Ze(e.value.meta.elIcon),{key:1,class:"el-icon"})):G("",!0)]),_:2},[e.value.meta.title?{name:"title",fn:v(()=>[re(ie(e.value.meta.title),1)]),key:"0"}:void 0]),1032,["index"])]),_:1},8,["to"])):G("",!0)],64)):(p(),D(x,{key:1,index:a(r.item.path),teleported:""},{title:v(()=>{var m,h,C;return[(m=r.item.meta)!=null&&m.svgIcon?(p(),D(f,{key:0,name:r.item.meta.svgIcon},null,8,["name"])):(h=r.item.meta)!=null&&h.elIcon?(p(),D(Ze(r.item.meta.elIcon),{key:1,class:"el-icon"})):G("",!0),(C=r.item.meta)!=null&&C.title?(p(),H("span",lo,ie(r.item.meta.title),1)):G("",!0)]}),default:v(()=>[r.item.children?(p(!0),H(ge,{key:0},Ie(r.item.children,m=>(p(),D(i,{key:m.path,item:m,"is-collapse":r.isCollapse,"is-first-level":!1,"base-path":a(m.path)},null,8,["item","is-collapse","base-path"]))),128)):G("",!0)]),_:1},8,["index"]))],2))}}});const co=ne(io,[["__scopeId","data-v-aae703b2"]]),uo="/static/logo-c5be2df6.png",fo={class:"layout-logo-container"},_o=["src"],po=Q({__name:"index",props:{collapse:{type:Boolean,default:!0}},setup(s){const r=Se();return we(r),(n,o)=>(p(),H("div",fo,[R("img",{src:$(uo),class:"layout-logo"},null,8,_o)]))}});const xt=ne(po,[["__scopeId","data-v-2d8fe1ac"]]),Qe=s=>{let r="";try{r=getComputedStyle(document.documentElement).getPropertyValue(s)}catch(n){console.error(n)}return r},kt=(s,r)=>{try{document.documentElement.style.setProperty(s,r)}catch(n){console.error(n)}},vo=()=>{pn(),location.reload()},ho=Q({__name:"index",setup(s){Pt(k=>({d3cbd5ae:E.value,"27a97643":q.value,"53ce3b2b":W.value,"28df2b3e":O.value}));const r=Qe("--v3-sidebar-menu-bg-color"),n=Qe("--v3-sidebar-menu-text-color"),o=Qe("--v3-sidebar-menu-active-text-color"),t=ot(),e=ke(),a=yt(),l=Se(),{sidebar:d,device:f}=we(e),{layoutMode:_,showLogo:i}=we(l),x=B(()=>{const{meta:{activeMenu:k},path:b}=t;return k||b}),g=B(()=>!d.value.opened),m=B(()=>_.value==="left"),h=B(()=>_.value==="top"),C=B(()=>f.value===me.Mobile),A=B(()=>m.value&&i.value),L=B(()=>m.value?r:void 0),F=B(()=>m.value?n:void 0),O=B(()=>m.value?o:void 0),q=B(()=>_.value!=="top"?"var(--v3-sidebar-menu-item-height)":"var(--v3-navigationbar-height)"),W=B(()=>_.value!=="top"?"var(--v3-sidebar-menu-hover-bg-color)":"transparent"),E=B(()=>_.value!=="top"?"2px":"0px");return(k,b)=>{const M=S("el-menu"),Z=S("el-scrollbar");return p(),H("div",{class:he({"has-logo":A.value})},[A.value?(p(),D(xt,{key:0,collapse:g.value},null,8,["collapse"])):G("",!0),u(Z,{"wrap-class":"scrollbar-wrapper"},{default:v(()=>[u(M,{"default-active":x.value,collapse:g.value&&!h.value,"background-color":L.value,"text-color":F.value,"active-text-color":O.value,"unique-opened":!0,"collapse-transition":!1,mode:h.value&&!C.value?"horizontal":"vertical"},{default:v(()=>[(p(!0),H(ge,null,Ie($(a).routes,V=>(p(),D(co,{key:V.path,item:V,"base-path":V.path,"is-collapse":g.value,"is-top":h.value},null,8,["item","base-path","is-collapse","is-top"]))),128))]),_:1},8,["default-active","collapse","background-color","text-color","active-text-color","mode"])]),_:1})],2)}}});const St=ne(ho,[["__scopeId","data-v-328a1a26"]]),mo={class:"card-header"},go={class:"card-time"},yo={class:"card-body"},bo=Q({__name:"NotifyList",props:{list:{}},setup(s){const r=s,n=He();function o(t,e){n.push(`/vuln/detail/${t}`),Ln(e).then().catch(()=>{})}return(t,e)=>{const a=S("el-empty"),l=S("el-button"),d=S("el-text"),f=S("el-card");return r.list.length===0?(p(),D(a,{key:0})):(p(!0),H(ge,{key:1},Ie(r.list,(_,i)=>(p(),D(f,{key:i,shadow:"never",class:"card-container"},{header:v(()=>[R("div",mo,[R("div",null,[u(l,{class:"card-title",link:"",type:"primary",onClick:x=>o(_.report.id,_.id)},{default:v(()=>[re(ie(_.title),1)]),_:2},1032,["onClick"]),R("div",go,ie(_.datetime),1)])])]),default:v(()=>[R("div",yo,[u(d,{innerHTML:_.description??"No Data"},null,8,["innerHTML"])])]),_:2},1024))),128))}}});const wo=ne(bo,[["__scopeId","data-v-3fcadf85"]]);var pt={exports:{}};(function(s,r){(function(n){var o=n.setTimeout,t=n.clearTimeout,e=n.XMLHttpRequest,a=n.XDomainRequest,l=n.ActiveXObject,d=n.EventSource,f=n.document,_=n.Promise,i=n.fetch,x=n.Response,g=n.TextDecoder,m=n.TextEncoder,h=n.AbortController;if(typeof window<"u"&&typeof f<"u"&&!("readyState"in f)&&f.body==null&&(f.readyState="loading",window.addEventListener("load",function(c){f.readyState="complete"},!1)),e==null&&l!=null&&(e=function(){return new l("Microsoft.XMLHTTP")}),Object.create==null&&(Object.create=function(c){function w(){}return w.prototype=c,new w}),Date.now||(Date.now=function(){return new Date().getTime()}),h==null){var C=i;i=function(c,w){var T=w.signal;return C(c,{headers:w.headers,credentials:w.credentials,cache:w.cache}).then(function(y){var P=y.body.getReader();return T._reader=P,T._aborted&&T._reader.cancel(),{status:y.status,statusText:y.statusText,headers:y.headers,body:{getReader:function(){return P}}}})},h=function(){this.signal={_reader:null,_aborted:!1},this.abort=function(){this.signal._reader!=null&&this.signal._reader.cancel(),this.signal._aborted=!0}}}function A(){this.bitsNeeded=0,this.codePoint=0}A.prototype.decode=function(c){function w(X,J,N){if(N===1)return X>=128>>J&&X<=2048>>J&&X<=57344>>J&&X<=65536>>J&&X<>6>15?3:J>31?2:1;if(X===6*2)return J>15?3:2;if(X===6*3)return 3;throw new Error}for(var y=65533,P="",I=this.bitsNeeded,U=this.codePoint,ee=0;ee191||!w(U<<6|z&63,I-6,T(I,U)))&&(I=0,U=y,P+=String.fromCharCode(U)),I===0?(z>=0&&z<=127?(I=0,U=z):z>=192&&z<=223?(I=6*1,U=z&31):z>=224&&z<=239?(I=6*2,U=z&15):z>=240&&z<=247?(I=6*3,U=z&7):(I=0,U=y),I!==0&&!w(U,I,T(I,U))&&(I=0,U=y)):(I-=6,U=U<<6|z&63),I===0&&(U<=65535?P+=String.fromCharCode(U):(P+=String.fromCharCode(55296+(U-65535-1>>10)),P+=String.fromCharCode(56320+(U-65535-1&1023))))}return this.bitsNeeded=I,this.codePoint=U,P};var L=function(){try{return new g().decode(new m().encode("test"),{stream:!0})==="test"}catch(c){console.debug("TextDecoder does not support streaming option. Using polyfill instead: "+c)}return!1};(g==null||m==null||!L())&&(g=A);var F=function(){};function O(c){this.withCredentials=!1,this.readyState=0,this.status=0,this.statusText="",this.responseText="",this.onprogress=F,this.onload=F,this.onerror=F,this.onreadystatechange=F,this._contentType="",this._xhr=c,this._sendTimeout=0,this._abort=F}O.prototype.open=function(c,w){this._abort(!0);var T=this,y=this._xhr,P=1,I=0;this._abort=function(N){T._sendTimeout!==0&&(t(T._sendTimeout),T._sendTimeout=0),(P===1||P===2||P===3)&&(P=4,y.onload=F,y.onerror=F,y.onabort=F,y.onprogress=F,y.onreadystatechange=F,y.abort(),I!==0&&(t(I),I=0),N||(T.readyState=4,T.onabort(null),T.onreadystatechange())),P=0};var U=function(){if(P===1){var N=0,te="",Ce=void 0;if("contentType"in y)N=200,te="OK",Ce=y.contentType;else try{N=y.status,te=y.statusText,Ce=y.getResponseHeader("Content-Type")}catch{N=0,te="",Ce=void 0}N!==0&&(P=2,T.readyState=2,T.status=N,T.statusText=te,T._contentType=Ce,T.onreadystatechange())}},ee=function(){if(U(),P===2||P===3){P=3;var N="";try{N=y.responseText}catch{}T.readyState=3,T.responseText=N,T.onprogress()}},z=function(N,te){if((te==null||te.preventDefault==null)&&(te={preventDefault:F}),ee(),P===1||P===2||P===3){if(P=4,I!==0&&(t(I),I=0),T.readyState=4,N==="load")T.onload(te);else if(N==="error")T.onerror(te);else if(N==="abort")T.onabort(te);else throw new TypeError;T.onreadystatechange()}},X=function(N){y!=null&&(y.readyState===4?(!("onload"in y)||!("onerror"in y)||!("onabort"in y))&&z(y.responseText===""?"error":"load",N):y.readyState===3?"onprogress"in y||ee():y.readyState===2&&U())},J=function(){I=o(function(){J()},500),y.readyState===3&&ee()};"onload"in y&&(y.onload=function(N){z("load",N)}),"onerror"in y&&(y.onerror=function(N){z("error",N)}),"onabort"in y&&(y.onabort=function(N){z("abort",N)}),"onprogress"in y&&(y.onprogress=ee),"onreadystatechange"in y&&(y.onreadystatechange=function(N){X(N)}),("contentType"in y||!("ontimeout"in e.prototype))&&(w+=(w.indexOf("?")===-1?"?":"&")+"padding=true"),y.open(c,w,!0),"readyState"in y&&(I=o(function(){J()},0))},O.prototype.abort=function(){this._abort(!1)},O.prototype.getResponseHeader=function(c){return this._contentType},O.prototype.setRequestHeader=function(c,w){var T=this._xhr;"setRequestHeader"in T&&T.setRequestHeader(c,w)},O.prototype.getAllResponseHeaders=function(){return this._xhr.getAllResponseHeaders!=null&&this._xhr.getAllResponseHeaders()||""},O.prototype.send=function(){if((!("ontimeout"in e.prototype)||!("sendAsBinary"in e.prototype)&&!("mozAnon"in e.prototype))&&f!=null&&f.readyState!=null&&f.readyState!=="complete"){var c=this;c._sendTimeout=o(function(){c._sendTimeout=0,c.send()},4);return}var w=this._xhr;"withCredentials"in w&&(w.withCredentials=this.withCredentials);try{w.send(void 0)}catch(T){throw T}};function q(c){return c.replace(/[A-Z]/g,function(w){return String.fromCharCode(w.charCodeAt(0)+32)})}function W(c){for(var w=Object.create(null),T=c.split(`\r +import{aB as on,Z as an,r as j,b as Dt,E as Ot,d as vt,A as ht,p as Q,ai as S,q as p,t as H,v as R,U as u,O as v,W as rn,M as D,aC as sn,u as $,Q as Ze,aD as ot,aE as He,F as ge,a8 as Ie,T as ie,a2 as Je,H as Ye,f as B,aa as ln,R as G,S as re,I as he,aF as we,aG as Pt,aq as cn,P as je,w as et,c as Nt,J as Ht,aH as mt,aI as gt,s as un,a9 as Ke,n as dn,aJ as fn,V as at}from"./vue-956193f0.js";import{g as _n,s as Rt,u as rt,a as Ut,_ as ne,b as Se,r as pn,c as yt,d as bt,e as zt,f as vn}from"./index-5b4830db.js";import{e as qe,f as hn,h as mn,g as gn,c as yn,j as bn,E as tt,k as wn,l as Bt,p as xn,u as Sn,r as Cn,n as En,o as Tn,q as An,s as $n}from"./element-0afb0e99.js";import"./vxe-78a23074.js";import{r as Ln,a as Rn,b as In,g as kn,c as Fn}from"./index-8fe9da41.js";import{_ as Mn}from"./index.vue_vue_type_script_setup_true_lang-9363a53d.js";var me=(s=>(s[s.Mobile=0]="Mobile",s[s.Desktop=1]="Desktop",s))(me||{});const Vn="opened",Wt="closed";function Dn(s){s?Rt(Vn):Rt(Wt)}const ke=on("app",()=>{const s=an({opened:_n()!==Wt,withoutAnimation:!1}),r=j(me.Desktop);return Dt(()=>s.opened,e=>Dn(e)),{device:r,sidebar:s,toggleSidebar:e=>{s.opened=!s.opened,s.withoutAnimation=e},closeSidebar:e=>{s.opened=!1,s.withoutAnimation=e},toggleDevice:e=>{r.value=e}}}),On=992,Pn=()=>{const s=ke(),{listenerRouteChange:r}=rt(),n=()=>document.body.getBoundingClientRect().width-1{if(!document.hidden){const t=n();s.toggleDevice(t?me.Mobile:me.Desktop),t&&s.closeSidebar(!0)}};r(()=>{s.device===me.Mobile&&s.sidebar.opened&&s.closeSidebar(!1)}),Ot(()=>{window.addEventListener("resize",o)}),vt(()=>{n()&&(s.toggleDevice(me.Mobile),s.closeSidebar(!0))}),ht(()=>{window.removeEventListener("resize",o)})},Nn={color:"#c0c4cc",opacity:.5,size:16,family:"serif",angle:-20,width:300,height:100},Hn=j(document.body);function Un(s=Hn){let r,n,o=null;const t={mutationObserver:void 0,resizeObserver:void 0},e=(h,C={})=>{if(!s.value){console.warn("请在 DOM 挂载完成后再调用 setWatermark 方法设置水印");return}r=h,n={...Nn,...C},a(),i(s.value)},a=()=>{if(o){l();return}const h=document.createElement("div");h.style.pointerEvents="none",h.style.top="0",h.style.left="0",h.style.position="absolute",h.style.zIndex="99999",o=h;const{clientWidth:C,clientHeight:A}=s.value;l({width:C,height:A}),s.value.style.position="relative",s.value.appendChild(h)},l=(h={})=>{o&&(r&&(o.style.background=`url(${d()}) left top repeat`),h.width&&(o.style.width=`${h.width}px`),h.height&&(o.style.height=`${h.height}px`))},d=()=>{const{color:h,opacity:C,size:A,family:L,angle:F,width:O,height:q}=n,W=document.createElement("canvas");W.width=O,W.height=q;const E=W.getContext("2d");return E&&(E.fillStyle=h,E.globalAlpha=C,E.font=`${A}px ${L}`,E.rotate(Math.PI/180*F),E.fillText(r,0,q/2)),W.toDataURL()},f=()=>{!s.value||!o||(s.value.removeChild(o),o=null,x(s.value))},_=qe(()=>{f(),a(),i(s.value)},100),i=h=>{t.mutationObserver||t.resizeObserver||(g(h),m(h))},x=h=>{var C,A;(C=t.mutationObserver)==null||C.disconnect(),t.mutationObserver=void 0,(A=t.resizeObserver)==null||A.unobserve(h),t.resizeObserver=void 0},g=h=>{const C={attributes:!0,childList:!0,subtree:!0},A=qe(L=>{const F=qe(O=>{switch(O.type){case"attributes":O.target===o&&_();break;case"childList":O.removedNodes.forEach(q=>{q===o&&h.appendChild(o)});break}},100);L.forEach(O=>{F(O)})},100);t.mutationObserver=new MutationObserver(A),t.mutationObserver.observe(h,C)},m=h=>{const C=qe(()=>{const{clientWidth:A,clientHeight:L}=h;l({width:A,height:L})},500);t.resizeObserver=new ResizeObserver(C),t.resizeObserver.observe(h)};return ht(()=>{f()}),{setWatermark:e,clearWatermark:f}}const zn={class:"app-main"},Bn={class:"app-scrollbar"},Wn=Q({__name:"AppMain",setup(s){const r=Ut();return(n,o)=>{const t=S("router-view"),e=S("el-backtop");return p(),H("section",zn,[R("div",Bn,[u(t,null,{default:v(({Component:a,route:l})=>[u(rn,{name:"el-fade-in",mode:"out-in"},{default:v(()=>[(p(),D(sn,{include:$(r).cachedViews},[(p(),D(Ze(a),{key:l.path}))],1032,["include"]))]),_:2},1024)]),_:1})]),u(e),u(e,{target:".app-scrollbar"})])}}});const wt=ne(Wn,[["__scopeId","data-v-404efda6"]]),qn=Q({__name:"index",props:{isActive:{type:Boolean,default:!1}},emits:["toggleClick"],setup(s,{emit:r}){const n=s,o=()=>{r("toggleClick")};return(t,e)=>{const a=S("el-icon");return p(),H("div",{onClick:o},[u(a,{size:20,class:"icon"},{default:v(()=>[n.isActive?(p(),D($(hn),{key:0})):(p(),D($(mn),{key:1}))]),_:1})])}}});const jn=ne(qn,[["__scopeId","data-v-133039c0"]]);function Xn(s){for(var r=[],n=0;n=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||a===95){t+=s[e++];continue}break}if(!t)throw new TypeError("Missing parameter name at ".concat(n));r.push({type:"NAME",index:n,value:t}),n=e;continue}if(o==="("){var l=1,d="",e=n+1;if(s[e]==="?")throw new TypeError('Pattern cannot start with "?" at '.concat(e));for(;e{t.value=r.matched.filter(d=>{var f,_;return((f=d.meta)==null?void 0:f.title)&&((_=d.meta)==null?void 0:_.breadcrumb)!==!1})},a=d=>Kn(d)(r.params),l=d=>{const{redirect:f,path:_}=d;if(f){n.push(f);return}n.push(a(_))};return o(d=>{d.path.startsWith("/redirect/")||e()},!0),(d,f)=>{const _=S("el-breadcrumb-item"),i=S("el-breadcrumb");return p(),D(i,{class:"app-breadcrumb"},{default:v(()=>[(p(!0),H(ge,null,Ie(t.value,(x,g)=>(p(),D(_,{key:x.path},{default:v(()=>[x.redirect==="noRedirect"||g===t.value.length-1?(p(),H("span",Yn,ie(x.meta.title),1)):(p(),H("a",{key:1,onClick:Je(m=>l(x),["prevent"])},ie(x.meta.title),9,eo))]),_:2},1024))),128))]),_:1})}}});const no=ne(to,[["__scopeId","data-v-63d11c68"]]),nt=s=>/^(https?:|mailto:|tel:)/.test(s),oo=["href"],ao=Q({__name:"SidebarItemLink",props:{to:{}},setup(s){const r=s;return(n,o)=>{const t=S("router-link");return $(nt)(r.to)?(p(),H("a",{key:0,href:r.to,target:"_blank",rel:"noopener"},[Ye(n.$slots,"default")],8,oo)):(p(),D(t,{key:1,to:r.to},{default:v(()=>[Ye(n.$slots,"default")]),_:3},8,["to"]))}}});function xe(s){if(typeof s!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(s))}function It(s,r){for(var n="",o=0,t=-1,e=0,a,l=0;l<=s.length;++l){if(l2){var d=n.lastIndexOf("/");if(d!==n.length-1){d===-1?(n="",o=0):(n=n.slice(0,d),o=n.length-1-n.lastIndexOf("/")),t=l,e=0;continue}}else if(n.length===2||n.length===1){n="",o=0,t=l,e=0;continue}}r&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+s.slice(t+1,l):n=s.slice(t+1,l),o=l-t-1;t=l,e=0}else a===46&&e!==-1?++e:e=-1}return n}function ro(s,r){var n=r.dir||r.root,o=r.base||(r.name||"")+(r.ext||"");return n?n===r.root?n+o:n+s+o:o}var Ne={resolve:function(){for(var r="",n=!1,o,t=arguments.length-1;t>=-1&&!n;t--){var e;t>=0?e=arguments[t]:(o===void 0&&(o=process.cwd()),e=o),xe(e),e.length!==0&&(r=e+"/"+r,n=e.charCodeAt(0)===47)}return r=It(r,!n),n?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(r){if(xe(r),r.length===0)return".";var n=r.charCodeAt(0)===47,o=r.charCodeAt(r.length-1)===47;return r=It(r,!n),r.length===0&&!n&&(r="."),r.length>0&&o&&(r+="/"),n?"/"+r:r},isAbsolute:function(r){return xe(r),r.length>0&&r.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var r,n=0;n0&&(r===void 0?r=o:r+="/"+o)}return r===void 0?".":Ne.normalize(r)},relative:function(r,n){if(xe(r),xe(n),r===n||(r=Ne.resolve(r),n=Ne.resolve(n),r===n))return"";for(var o=1;of){if(n.charCodeAt(a+i)===47)return n.slice(a+i+1);if(i===0)return n.slice(a+i)}else e>f&&(r.charCodeAt(o+i)===47?_=i:i===0&&(_=0));break}var x=r.charCodeAt(o+i),g=n.charCodeAt(a+i);if(x!==g)break;x===47&&(_=i)}var m="";for(i=o+_+1;i<=t;++i)(i===t||r.charCodeAt(i)===47)&&(m.length===0?m+="..":m+="/..");return m.length>0?m+n.slice(a+_):(a+=_,n.charCodeAt(a)===47&&++a,n.slice(a))},_makeLong:function(r){return r},dirname:function(r){if(xe(r),r.length===0)return".";for(var n=r.charCodeAt(0),o=n===47,t=-1,e=!0,a=r.length-1;a>=1;--a)if(n=r.charCodeAt(a),n===47){if(!e){t=a;break}}else e=!1;return t===-1?o?"/":".":o&&t===1?"//":r.slice(0,t)},basename:function(r,n){if(n!==void 0&&typeof n!="string")throw new TypeError('"ext" argument must be a string');xe(r);var o=0,t=-1,e=!0,a;if(n!==void 0&&n.length>0&&n.length<=r.length){if(n.length===r.length&&n===r)return"";var l=n.length-1,d=-1;for(a=r.length-1;a>=0;--a){var f=r.charCodeAt(a);if(f===47){if(!e){o=a+1;break}}else d===-1&&(e=!1,d=a+1),l>=0&&(f===n.charCodeAt(l)?--l===-1&&(t=a):(l=-1,t=d))}return o===t?t=d:t===-1&&(t=r.length),r.slice(o,t)}else{for(a=r.length-1;a>=0;--a)if(r.charCodeAt(a)===47){if(!e){o=a+1;break}}else t===-1&&(e=!1,t=a+1);return t===-1?"":r.slice(o,t)}},extname:function(r){xe(r);for(var n=-1,o=0,t=-1,e=!0,a=0,l=r.length-1;l>=0;--l){var d=r.charCodeAt(l);if(d===47){if(!e){o=l+1;break}continue}t===-1&&(e=!1,t=l+1),d===46?n===-1?n=l:a!==1&&(a=1):n!==-1&&(a=-1)}return n===-1||t===-1||a===0||a===1&&n===t-1&&n===o+1?"":r.slice(n,t)},format:function(r){if(r===null||typeof r!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof r);return ro("/",r)},parse:function(r){xe(r);var n={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return n;var o=r.charCodeAt(0),t=o===47,e;t?(n.root="/",e=1):e=0;for(var a=-1,l=0,d=-1,f=!0,_=r.length-1,i=0;_>=e;--_){if(o=r.charCodeAt(_),o===47){if(!f){l=_+1;break}continue}d===-1&&(f=!1,d=_+1),o===46?a===-1?a=_:i!==1&&(i=1):a!==-1&&(i=-1)}return a===-1||d===-1||i===0||i===1&&a===d-1&&a===l+1?d!==-1&&(l===0&&t?n.base=n.name=r.slice(1,d):n.base=n.name=r.slice(l,d)):(l===0&&t?(n.name=r.slice(1,a),n.base=r.slice(1,d)):(n.name=r.slice(l,a),n.base=r.slice(l,d)),n.ext=r.slice(a,d)),l>0?n.dir=r.slice(0,l-1):t&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};Ne.posix=Ne;var so=Ne;const qt=gn(so),lo={key:2},io=Q({__name:"SidebarItem",props:{item:{},isCollapse:{type:Boolean,default:!1},isTop:{type:Boolean,default:!1},isFirstLevel:{type:Boolean,default:!0},basePath:{default:""}},setup(s){const r=s,n=B(()=>{var l;return(l=r.item.meta)==null?void 0:l.alwaysShow}),o=B(()=>{var l;return((l=r.item.children)==null?void 0:l.filter(d=>{var f;return!((f=d.meta)!=null&&f.hidden)}))??[]}),t=B(()=>o.value.length),e=B(()=>{const l=t.value;switch(!0){case l>1:return null;case l===1:return o.value[0];default:return{...r.item,path:""}}}),a=l=>{switch(!0){case nt(l):return l;case nt(r.basePath):return r.basePath;default:return qt.resolve(r.basePath,l)}};return(l,d)=>{var g;const f=S("SvgIcon"),_=S("el-menu-item"),i=S("sidebar-item",!0),x=S("el-sub-menu");return(g=r.item.meta)!=null&&g.hidden?G("",!0):(p(),H("div",{key:0,class:he({"simple-mode":r.isCollapse&&!l.isTop,"first-level":r.isFirstLevel})},[!n.value&&e.value&&!e.value.children?(p(),H(ge,{key:0},[e.value.meta?(p(),D(ao,{key:0,to:a(e.value.path)},{default:v(()=>[u(_,{index:a(e.value.path)},ln({default:v(()=>[e.value.meta.svgIcon?(p(),D(f,{key:0,name:e.value.meta.svgIcon},null,8,["name"])):e.value.meta.elIcon?(p(),D(Ze(e.value.meta.elIcon),{key:1,class:"el-icon"})):G("",!0)]),_:2},[e.value.meta.title?{name:"title",fn:v(()=>[re(ie(e.value.meta.title),1)]),key:"0"}:void 0]),1032,["index"])]),_:1},8,["to"])):G("",!0)],64)):(p(),D(x,{key:1,index:a(r.item.path),teleported:""},{title:v(()=>{var m,h,C;return[(m=r.item.meta)!=null&&m.svgIcon?(p(),D(f,{key:0,name:r.item.meta.svgIcon},null,8,["name"])):(h=r.item.meta)!=null&&h.elIcon?(p(),D(Ze(r.item.meta.elIcon),{key:1,class:"el-icon"})):G("",!0),(C=r.item.meta)!=null&&C.title?(p(),H("span",lo,ie(r.item.meta.title),1)):G("",!0)]}),default:v(()=>[r.item.children?(p(!0),H(ge,{key:0},Ie(r.item.children,m=>(p(),D(i,{key:m.path,item:m,"is-collapse":r.isCollapse,"is-first-level":!1,"base-path":a(m.path)},null,8,["item","is-collapse","base-path"]))),128)):G("",!0)]),_:1},8,["index"]))],2))}}});const co=ne(io,[["__scopeId","data-v-aae703b2"]]),uo="/static/logo-c5be2df6.png",fo={class:"layout-logo-container"},_o=["src"],po=Q({__name:"index",props:{collapse:{type:Boolean,default:!0}},setup(s){const r=Se();return we(r),(n,o)=>(p(),H("div",fo,[R("img",{src:$(uo),class:"layout-logo"},null,8,_o)]))}});const xt=ne(po,[["__scopeId","data-v-2d8fe1ac"]]),Qe=s=>{let r="";try{r=getComputedStyle(document.documentElement).getPropertyValue(s)}catch(n){console.error(n)}return r},kt=(s,r)=>{try{document.documentElement.style.setProperty(s,r)}catch(n){console.error(n)}},vo=()=>{pn(),location.reload()},ho=Q({__name:"index",setup(s){Pt(k=>({d3cbd5ae:E.value,"27a97643":q.value,"53ce3b2b":W.value,"28df2b3e":O.value}));const r=Qe("--v3-sidebar-menu-bg-color"),n=Qe("--v3-sidebar-menu-text-color"),o=Qe("--v3-sidebar-menu-active-text-color"),t=ot(),e=ke(),a=yt(),l=Se(),{sidebar:d,device:f}=we(e),{layoutMode:_,showLogo:i}=we(l),x=B(()=>{const{meta:{activeMenu:k},path:b}=t;return k||b}),g=B(()=>!d.value.opened),m=B(()=>_.value==="left"),h=B(()=>_.value==="top"),C=B(()=>f.value===me.Mobile),A=B(()=>m.value&&i.value),L=B(()=>m.value?r:void 0),F=B(()=>m.value?n:void 0),O=B(()=>m.value?o:void 0),q=B(()=>_.value!=="top"?"var(--v3-sidebar-menu-item-height)":"var(--v3-navigationbar-height)"),W=B(()=>_.value!=="top"?"var(--v3-sidebar-menu-hover-bg-color)":"transparent"),E=B(()=>_.value!=="top"?"2px":"0px");return(k,b)=>{const M=S("el-menu"),Z=S("el-scrollbar");return p(),H("div",{class:he({"has-logo":A.value})},[A.value?(p(),D(xt,{key:0,collapse:g.value},null,8,["collapse"])):G("",!0),u(Z,{"wrap-class":"scrollbar-wrapper"},{default:v(()=>[u(M,{"default-active":x.value,collapse:g.value&&!h.value,"background-color":L.value,"text-color":F.value,"active-text-color":O.value,"unique-opened":!0,"collapse-transition":!1,mode:h.value&&!C.value?"horizontal":"vertical"},{default:v(()=>[(p(!0),H(ge,null,Ie($(a).routes,V=>(p(),D(co,{key:V.path,item:V,"base-path":V.path,"is-collapse":g.value,"is-top":h.value},null,8,["item","base-path","is-collapse","is-top"]))),128))]),_:1},8,["default-active","collapse","background-color","text-color","active-text-color","mode"])]),_:1})],2)}}});const St=ne(ho,[["__scopeId","data-v-328a1a26"]]),mo={class:"card-header"},go={class:"card-time"},yo={class:"card-body"},bo=Q({__name:"NotifyList",props:{list:{}},setup(s){const r=s,n=He();function o(t,e){n.push(`/vuln/detail/${t}`),Ln(e).then().catch(()=>{})}return(t,e)=>{const a=S("el-empty"),l=S("el-button"),d=S("el-text"),f=S("el-card");return r.list.length===0?(p(),D(a,{key:0})):(p(!0),H(ge,{key:1},Ie(r.list,(_,i)=>(p(),D(f,{key:i,shadow:"never",class:"card-container"},{header:v(()=>[R("div",mo,[R("div",null,[u(l,{class:"card-title",link:"",type:"primary",onClick:x=>o(_.report.id,_.id)},{default:v(()=>[re(ie(_.title),1)]),_:2},1032,["onClick"]),R("div",go,ie(_.datetime),1)])])]),default:v(()=>[R("div",yo,[u(d,{innerHTML:_.description??"No Data"},null,8,["innerHTML"])])]),_:2},1024))),128))}}});const wo=ne(bo,[["__scopeId","data-v-3fcadf85"]]);var pt={exports:{}};(function(s,r){(function(n){var o=n.setTimeout,t=n.clearTimeout,e=n.XMLHttpRequest,a=n.XDomainRequest,l=n.ActiveXObject,d=n.EventSource,f=n.document,_=n.Promise,i=n.fetch,x=n.Response,g=n.TextDecoder,m=n.TextEncoder,h=n.AbortController;if(typeof window<"u"&&typeof f<"u"&&!("readyState"in f)&&f.body==null&&(f.readyState="loading",window.addEventListener("load",function(c){f.readyState="complete"},!1)),e==null&&l!=null&&(e=function(){return new l("Microsoft.XMLHTTP")}),Object.create==null&&(Object.create=function(c){function w(){}return w.prototype=c,new w}),Date.now||(Date.now=function(){return new Date().getTime()}),h==null){var C=i;i=function(c,w){var T=w.signal;return C(c,{headers:w.headers,credentials:w.credentials,cache:w.cache}).then(function(y){var P=y.body.getReader();return T._reader=P,T._aborted&&T._reader.cancel(),{status:y.status,statusText:y.statusText,headers:y.headers,body:{getReader:function(){return P}}}})},h=function(){this.signal={_reader:null,_aborted:!1},this.abort=function(){this.signal._reader!=null&&this.signal._reader.cancel(),this.signal._aborted=!0}}}function A(){this.bitsNeeded=0,this.codePoint=0}A.prototype.decode=function(c){function w(X,J,N){if(N===1)return X>=128>>J&&X<=2048>>J&&X<=57344>>J&&X<=65536>>J&&X<>6>15?3:J>31?2:1;if(X===6*2)return J>15?3:2;if(X===6*3)return 3;throw new Error}for(var y=65533,P="",I=this.bitsNeeded,U=this.codePoint,ee=0;ee191||!w(U<<6|z&63,I-6,T(I,U)))&&(I=0,U=y,P+=String.fromCharCode(U)),I===0?(z>=0&&z<=127?(I=0,U=z):z>=192&&z<=223?(I=6*1,U=z&31):z>=224&&z<=239?(I=6*2,U=z&15):z>=240&&z<=247?(I=6*3,U=z&7):(I=0,U=y),I!==0&&!w(U,I,T(I,U))&&(I=0,U=y)):(I-=6,U=U<<6|z&63),I===0&&(U<=65535?P+=String.fromCharCode(U):(P+=String.fromCharCode(55296+(U-65535-1>>10)),P+=String.fromCharCode(56320+(U-65535-1&1023))))}return this.bitsNeeded=I,this.codePoint=U,P};var L=function(){try{return new g().decode(new m().encode("test"),{stream:!0})==="test"}catch(c){console.debug("TextDecoder does not support streaming option. Using polyfill instead: "+c)}return!1};(g==null||m==null||!L())&&(g=A);var F=function(){};function O(c){this.withCredentials=!1,this.readyState=0,this.status=0,this.statusText="",this.responseText="",this.onprogress=F,this.onload=F,this.onerror=F,this.onreadystatechange=F,this._contentType="",this._xhr=c,this._sendTimeout=0,this._abort=F}O.prototype.open=function(c,w){this._abort(!0);var T=this,y=this._xhr,P=1,I=0;this._abort=function(N){T._sendTimeout!==0&&(t(T._sendTimeout),T._sendTimeout=0),(P===1||P===2||P===3)&&(P=4,y.onload=F,y.onerror=F,y.onabort=F,y.onprogress=F,y.onreadystatechange=F,y.abort(),I!==0&&(t(I),I=0),N||(T.readyState=4,T.onabort(null),T.onreadystatechange())),P=0};var U=function(){if(P===1){var N=0,te="",Ce=void 0;if("contentType"in y)N=200,te="OK",Ce=y.contentType;else try{N=y.status,te=y.statusText,Ce=y.getResponseHeader("Content-Type")}catch{N=0,te="",Ce=void 0}N!==0&&(P=2,T.readyState=2,T.status=N,T.statusText=te,T._contentType=Ce,T.onreadystatechange())}},ee=function(){if(U(),P===2||P===3){P=3;var N="";try{N=y.responseText}catch{}T.readyState=3,T.responseText=N,T.onprogress()}},z=function(N,te){if((te==null||te.preventDefault==null)&&(te={preventDefault:F}),ee(),P===1||P===2||P===3){if(P=4,I!==0&&(t(I),I=0),T.readyState=4,N==="load")T.onload(te);else if(N==="error")T.onerror(te);else if(N==="abort")T.onabort(te);else throw new TypeError;T.onreadystatechange()}},X=function(N){y!=null&&(y.readyState===4?(!("onload"in y)||!("onerror"in y)||!("onabort"in y))&&z(y.responseText===""?"error":"load",N):y.readyState===3?"onprogress"in y||ee():y.readyState===2&&U())},J=function(){I=o(function(){J()},500),y.readyState===3&&ee()};"onload"in y&&(y.onload=function(N){z("load",N)}),"onerror"in y&&(y.onerror=function(N){z("error",N)}),"onabort"in y&&(y.onabort=function(N){z("abort",N)}),"onprogress"in y&&(y.onprogress=ee),"onreadystatechange"in y&&(y.onreadystatechange=function(N){X(N)}),("contentType"in y||!("ontimeout"in e.prototype))&&(w+=(w.indexOf("?")===-1?"?":"&")+"padding=true"),y.open(c,w,!0),"readyState"in y&&(I=o(function(){J()},0))},O.prototype.abort=function(){this._abort(!1)},O.prototype.getResponseHeader=function(c){return this._contentType},O.prototype.setRequestHeader=function(c,w){var T=this._xhr;"setRequestHeader"in T&&T.setRequestHeader(c,w)},O.prototype.getAllResponseHeaders=function(){return this._xhr.getAllResponseHeaders!=null&&this._xhr.getAllResponseHeaders()||""},O.prototype.send=function(){if((!("ontimeout"in e.prototype)||!("sendAsBinary"in e.prototype)&&!("mozAnon"in e.prototype))&&f!=null&&f.readyState!=null&&f.readyState!=="complete"){var c=this;c._sendTimeout=o(function(){c._sendTimeout=0,c.send()},4);return}var w=this._xhr;"withCredentials"in w&&(w.withCredentials=this.withCredentials);try{w.send(void 0)}catch(T){throw T}};function q(c){return c.replace(/[A-Z]/g,function(w){return String.fromCharCode(w.charCodeAt(0)+32)})}function W(c){for(var w=Object.create(null),T=c.split(`\r `),y=0;y{F.value=!0},xe={class:"app-container"},Se={class:"dialog-footer"},De={class:"toolbar-wrapper"},Ne={class:"table-wrapper"},Re={class:"demo-pagination-block"},B="60px",Ue=ue({__name:"index",setup(je){const V=i(!1),O=i(!1),h=i(),x=i(10),S=i(1),D=i(0),z=i(0),r={pageSize:20,pageNum:1},y=T({name:""}),m=()=>{V.value=!0,he(r).then(l=>{const{pageSize:e,pageNum:_,total:f,pages:R,list:U}=l.data;h.value=U,x.value=e,D.value=R,S.value=_,z.value=f}).catch(()=>{h.value=[]}).finally(()=>{V.value=!1})};m();const N=i(),W=l=>{N.value=l};function Z(){N.value==null&&k.warning("请选择删除项目");let l=[];for(const e of N.value)l.push(e.id);ye(l.join(",")).then(()=>{k.info("删除"+l.length+"个项目成功")}).catch(()=>{k.warning("删除"+l.length+"个项目失败")}).finally(()=>{m()})}const C=i(!1),n=T({name:"",tag:"",level:1});function G(){C.value=!1,Ce(n).catch(()=>{k.warning("添加项目失败")}).finally(()=>{m(),k.success("添加项目成功")})}function H(){C.value=!0}re([()=>r.pageNum,()=>r.pageSize],m,{immediate:!0});const J=l=>{r.pageSize=l,m()};function Q(l){let e=[];n.tag!=""&&(e=n.tag.split(",")),e=e.filter(_=>_!==l),n.tag=e.join(",")}function I(){let l;b.value&&(n.tag==""?l=[]:l=n.tag.split(","),l.push(b.value),n.tag=l.join(",")),F.value=!1,b.value=""}const X=l=>{r.pageNum=l,m()},Y=l=>{};function ee(l){if(l==null||l==""){m();return}we(l).then(e=>{h.value=[e.data],x.value=1,D.value=1,S.value=1,z.value=1}).catch(()=>{h.value=[],x.value=0,D.value=0,S.value=0,z.value=0})}const le=()=>{y.name=""};function ae(l,e){return l.id!=1}return(l,e)=>{const _=s("el-input"),f=s("el-form-item"),R=s("el-option"),U=s("el-select"),te=s("el-tag"),d=s("el-button"),q=s("el-form"),oe=s("el-dialog"),L=s("el-card"),ne=s("el-tooltip"),w=s("el-table-column"),se=s("el-table"),ie=s("el-pagination"),P=de("loading");return c(),j("div",xe,[a(oe,{modelValue:C.value,"onUpdate:modelValue":e[4]||(e[4]=t=>C.value=t),title:"添加项目"},{footer:o(()=>[g("span",Se,[a(d,{onClick:e[3]||(e[3]=t=>C.value=!1)},{default:o(()=>[p("取消")]),_:1}),a(d,{type:"primary",onClick:G},{default:o(()=>[p(" 确认 ")]),_:1})])]),default:o(()=>[a(q,{model:n},{default:o(()=>[a(f,{label:"项目名","label-width":B},{default:o(()=>[a(_,{modelValue:n.name,"onUpdate:modelValue":e[0]||(e[0]=t=>n.name=t),autocomplete:"off"},null,8,["modelValue"])]),_:1}),a(f,{label:"重要性","label-width":B},{default:o(()=>[a(U,{modelValue:n.level,"onUpdate:modelValue":e[1]||(e[1]=t=>n.level=t)},{default:o(()=>[(c(!0),j(A,null,E(u(ke),t=>(c(),v(R,{label:u(M)(t.value),value:t.value,key:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(f,{label:"标签","label-width":B},{default:o(()=>[n.tag?(c(!0),j(A,{key:0},E(n.tag.split(","),t=>(c(),v(te,{key:t,class:"mx-1",closable:"","disable-transitions":!1,onClose:Be=>Q(t)},{default:o(()=>[p($(t),1)]),_:2},1032,["onClose"]))),128)):ce("",!0),u(F)?(c(),v(_,{key:1,ref:"InputRef",modelValue:u(b),"onUpdate:modelValue":e[2]||(e[2]=t=>pe(b)?b.value=t:null),class:"ml-1 w-20",size:"small",onKeyup:me(I,["enter"]),onBlur:I},null,8,["modelValue","onKeyup"])):(c(),v(d,{key:2,class:"button-new-tag ml-1",size:"small",onClick:u(ze)},{default:o(()=>[p(" + 标签 ")]),_:1},8,["onClick"]))]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),a(L,{shadow:"never",class:"search-wrapper"},{default:o(()=>[a(q,{ref:"searchFormRef",inline:!0,model:y},{default:o(()=>[a(f,{prop:"username",label:"项目名"},{default:o(()=>[a(_,{modelValue:y.name,"onUpdate:modelValue":e[5]||(e[5]=t=>y.name=t),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),a(f,null,{default:o(()=>[a(d,{type:"primary",icon:u(_e),onClick:e[6]||(e[6]=t=>ee(y.name))},{default:o(()=>[p("查询")]),_:1},8,["icon"]),a(d,{icon:u(fe),onClick:le},{default:o(()=>[p("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])]),_:1}),K((c(),v(L,null,{default:o(()=>[g("div",De,[g("div",null,[a(d,{type:"primary",icon:u(ge),onClick:H},{default:o(()=>[p("新增项目")]),_:1},8,["icon"]),a(d,{type:"danger",icon:u(ve),onClick:Z},{default:o(()=>[p("批量删除")]),_:1},8,["icon"])]),g("div",null,[a(ne,{content:"刷新当前页"},{default:o(()=>[a(d,{type:"primary",icon:u(be),circle:"",onClick:m},null,8,["icon"])]),_:1})])]),g("div",Ne,[K((c(),v(se,{ref:"multipleTableRef",data:h.value,border:"",style:{width:"100%"},onSelectionChange:W,onRowClick:Y},{default:o(()=>[a(w,{selectable:ae,type:"selection",width:"55"}),a(w,{label:"ID",prop:"id",width:60}),a(w,{prop:"name",label:"项目名",sortable:""}),a(w,{prop:"level",label:"重要性",align:"center",sortable:""},{default:o(t=>[g("span",null,$(u(M)(t.row.level)),1)]),_:1}),a(w,{label:"选项",prop:""},{default:o(t=>[a(d,{type:"info",round:"",size:"small"},{default:o(()=>[p("详情")]),_:1})]),_:1})]),_:1},8,["data"])),[[P,V.value]])]),g("div",Re,[a(ie,{"current-page":r.pageNum,"onUpdate:currentPage":e[7]||(e[7]=t=>r.pageNum=t),"page-size":r.pageSize,"onUpdate:pageSize":e[8]||(e[8]=t=>r.pageSize=t),"page-sizes":[10,20,50,100],small:!1,disabled:O.value,background:!0,layout:"total, sizes, prev, pager, next, jumper",total:z.value,onSizeChange:J,onCurrentChange:X},null,8,["current-page","page-size","disabled","total"])])]),_:1})),[[P,V.value]])])}}});const Ee=Ve(Ue,[["__scopeId","data-v-428fce05"]]);export{Ee as default}; +import{r as i,p as ue,Z as T,b as re,ai as s,aq as de,q as c,t as j,U as a,O as o,v as g,S as p,F as A,a8 as E,u,R as ce,M as v,D as pe,a9 as me,P as K,T as $}from"./vue-956193f0.js";import{x as _e,r as fe,y as ge,z as ve,A as be,E as k}from"./element-0afb0e99.js";import{g as he,k as ye,l as Ce,m as we}from"./index-8fe9da41.js";import{l as ke,g as M}from"./level-61112490.js";/* empty css */import{_ as Ve}from"./index-5b4830db.js";import"./vxe-78a23074.js";const b=i(""),F=i(!1);i();const ze=()=>{F.value=!0},xe={class:"app-container"},Se={class:"dialog-footer"},De={class:"toolbar-wrapper"},Ne={class:"table-wrapper"},Re={class:"demo-pagination-block"},B="60px",Ue=ue({__name:"index",setup(je){const V=i(!1),O=i(!1),h=i(),x=i(10),S=i(1),D=i(0),z=i(0),r={pageSize:20,pageNum:1},y=T({name:""}),m=()=>{V.value=!0,he(r).then(l=>{const{pageSize:e,pageNum:_,total:f,pages:R,list:U}=l.data;h.value=U,x.value=e,D.value=R,S.value=_,z.value=f}).catch(()=>{h.value=[]}).finally(()=>{V.value=!1})};m();const N=i(),W=l=>{N.value=l};function Z(){N.value==null&&k.warning("请选择删除项目");let l=[];for(const e of N.value)l.push(e.id);ye(l.join(",")).then(()=>{k.info("删除"+l.length+"个项目成功")}).catch(()=>{k.warning("删除"+l.length+"个项目失败")}).finally(()=>{m()})}const C=i(!1),n=T({name:"",tag:"",level:1});function G(){C.value=!1,Ce(n).catch(()=>{k.warning("添加项目失败")}).finally(()=>{m(),k.success("添加项目成功")})}function H(){C.value=!0}re([()=>r.pageNum,()=>r.pageSize],m,{immediate:!0});const J=l=>{r.pageSize=l,m()};function Q(l){let e=[];n.tag!=""&&(e=n.tag.split(",")),e=e.filter(_=>_!==l),n.tag=e.join(",")}function I(){let l;b.value&&(n.tag==""?l=[]:l=n.tag.split(","),l.push(b.value),n.tag=l.join(",")),F.value=!1,b.value=""}const X=l=>{r.pageNum=l,m()},Y=l=>{};function ee(l){if(l==null||l==""){m();return}we(l).then(e=>{h.value=[e.data],x.value=1,D.value=1,S.value=1,z.value=1}).catch(()=>{h.value=[],x.value=0,D.value=0,S.value=0,z.value=0})}const le=()=>{y.name=""};function ae(l,e){return l.id!=1}return(l,e)=>{const _=s("el-input"),f=s("el-form-item"),R=s("el-option"),U=s("el-select"),te=s("el-tag"),d=s("el-button"),q=s("el-form"),oe=s("el-dialog"),L=s("el-card"),ne=s("el-tooltip"),w=s("el-table-column"),se=s("el-table"),ie=s("el-pagination"),P=de("loading");return c(),j("div",xe,[a(oe,{modelValue:C.value,"onUpdate:modelValue":e[4]||(e[4]=t=>C.value=t),title:"添加项目"},{footer:o(()=>[g("span",Se,[a(d,{onClick:e[3]||(e[3]=t=>C.value=!1)},{default:o(()=>[p("取消")]),_:1}),a(d,{type:"primary",onClick:G},{default:o(()=>[p(" 确认 ")]),_:1})])]),default:o(()=>[a(q,{model:n},{default:o(()=>[a(f,{label:"项目名","label-width":B},{default:o(()=>[a(_,{modelValue:n.name,"onUpdate:modelValue":e[0]||(e[0]=t=>n.name=t),autocomplete:"off"},null,8,["modelValue"])]),_:1}),a(f,{label:"重要性","label-width":B},{default:o(()=>[a(U,{modelValue:n.level,"onUpdate:modelValue":e[1]||(e[1]=t=>n.level=t)},{default:o(()=>[(c(!0),j(A,null,E(u(ke),t=>(c(),v(R,{label:u(M)(t.value),value:t.value,key:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(f,{label:"标签","label-width":B},{default:o(()=>[n.tag?(c(!0),j(A,{key:0},E(n.tag.split(","),t=>(c(),v(te,{key:t,class:"mx-1",closable:"","disable-transitions":!1,onClose:Be=>Q(t)},{default:o(()=>[p($(t),1)]),_:2},1032,["onClose"]))),128)):ce("",!0),u(F)?(c(),v(_,{key:1,ref:"InputRef",modelValue:u(b),"onUpdate:modelValue":e[2]||(e[2]=t=>pe(b)?b.value=t:null),class:"ml-1 w-20",size:"small",onKeyup:me(I,["enter"]),onBlur:I},null,8,["modelValue","onKeyup"])):(c(),v(d,{key:2,class:"button-new-tag ml-1",size:"small",onClick:u(ze)},{default:o(()=>[p(" + 标签 ")]),_:1},8,["onClick"]))]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),a(L,{shadow:"never",class:"search-wrapper"},{default:o(()=>[a(q,{ref:"searchFormRef",inline:!0,model:y},{default:o(()=>[a(f,{prop:"username",label:"项目名"},{default:o(()=>[a(_,{modelValue:y.name,"onUpdate:modelValue":e[5]||(e[5]=t=>y.name=t),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),a(f,null,{default:o(()=>[a(d,{type:"primary",icon:u(_e),onClick:e[6]||(e[6]=t=>ee(y.name))},{default:o(()=>[p("查询")]),_:1},8,["icon"]),a(d,{icon:u(fe),onClick:le},{default:o(()=>[p("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])]),_:1}),K((c(),v(L,null,{default:o(()=>[g("div",De,[g("div",null,[a(d,{type:"primary",icon:u(ge),onClick:H},{default:o(()=>[p("新增项目")]),_:1},8,["icon"]),a(d,{type:"danger",icon:u(ve),onClick:Z},{default:o(()=>[p("批量删除")]),_:1},8,["icon"])]),g("div",null,[a(ne,{content:"刷新当前页"},{default:o(()=>[a(d,{type:"primary",icon:u(be),circle:"",onClick:m},null,8,["icon"])]),_:1})])]),g("div",Ne,[K((c(),v(se,{ref:"multipleTableRef",data:h.value,border:"",style:{width:"100%"},onSelectionChange:W,onRowClick:Y},{default:o(()=>[a(w,{selectable:ae,type:"selection",width:"55"}),a(w,{label:"ID",prop:"id",width:60}),a(w,{prop:"name",label:"项目名",sortable:""}),a(w,{prop:"level",label:"重要性",align:"center",sortable:""},{default:o(t=>[g("span",null,$(u(M)(t.row.level)),1)]),_:1}),a(w,{label:"选项",prop:""},{default:o(t=>[a(d,{type:"info",round:"",size:"small"},{default:o(()=>[p("详情")]),_:1})]),_:1})]),_:1},8,["data"])),[[P,V.value]])]),g("div",Re,[a(ie,{"current-page":r.pageNum,"onUpdate:currentPage":e[7]||(e[7]=t=>r.pageNum=t),"page-size":r.pageSize,"onUpdate:pageSize":e[8]||(e[8]=t=>r.pageSize=t),"page-sizes":[10,20,50,100],small:!1,disabled:O.value,background:!0,layout:"total, sizes, prev, pager, next, jumper",total:z.value,onSizeChange:J,onCurrentChange:X},null,8,["current-page","page-size","disabled","total"])])]),_:1})),[[P,V.value]])])}}});const Ee=Ve(Ue,[["__scopeId","data-v-428fce05"]]);export{Ee as default}; diff --git a/docker/frontend/web/dist/static/index-35ab6744.js b/docker/frontend/web/dist/static/index-5b4830db.js similarity index 99% rename from docker/frontend/web/dist/static/index-35ab6744.js rename to docker/frontend/web/dist/static/index-5b4830db.js index c20136a..aa610d5 100644 --- a/docker/frontend/web/dist/static/index-35ab6744.js +++ b/docker/frontend/web/dist/static/index-5b4830db.js @@ -1,4 +1,4 @@ -var Nw=Object.defineProperty;var Fw=(r,t,e)=>t in r?Nw(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var dn=(r,t,e)=>(Fw(r,typeof t!="symbol"?t+"":t,e),e);import{r as cr,w as ul,p as Xh,ai as qp,M as Vw,O as Bw,u as Wy,q as Yy,U as Gw,ay as Hw,az as Uw,aA as Ww,aB as Zl,b as ki,A as qy,f as Vn,t as Yw,v as qw,s as Uo,B as Wo,_ as Xw,c as Zw,d as jw,ah as Xp,n as Kw,D as Jw,at as Qw}from"./vue-956193f0.js";import{b as $w,E as Xy,m as t4,c as e4,g as r4,i as n4,d as i4}from"./element-0afb0e99.js";import{V as Zh,a as a4}from"./vxe-78a23074.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function e(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=e(i);fetch(i.href,a)}})();const pi="codeSecurity";class Lt{}dn(Lt,"TOKEN",`${pi}-token-key`),dn(Lt,"CONFIG_LAYOUT",`${pi}-config-layout-key`),dn(Lt,"SIDEBAR_STATUS",`${pi}-sidebar-status-key`),dn(Lt,"ACTIVE_THEME_NAME",`${pi}-active-theme-name-key`),dn(Lt,"VISITED_VIEWS",`${pi}-visited-views-key`),dn(Lt,"CACHED_VIEWS",`${pi}-cached-views-key`);const o4=()=>{const r=localStorage.getItem(Lt.CONFIG_LAYOUT);return r?JSON.parse(r):null},s4=r=>{localStorage.setItem(Lt.CONFIG_LAYOUT,JSON.stringify(r))},Vk=()=>{localStorage.removeItem(Lt.CONFIG_LAYOUT)},Bk=()=>localStorage.getItem(Lt.SIDEBAR_STATUS),Gk=r=>{localStorage.setItem(Lt.SIDEBAR_STATUS,r)},l4=()=>localStorage.getItem(Lt.ACTIVE_THEME_NAME),u4=r=>{localStorage.setItem(Lt.ACTIVE_THEME_NAME,r)},f4=()=>{const r=localStorage.getItem(Lt.VISITED_VIEWS);return JSON.parse(r??"[]")},c4=r=>{r.forEach(t=>{delete t.matched,delete t.redirectedFrom}),localStorage.setItem(Lt.VISITED_VIEWS,JSON.stringify(r))},h4=()=>{const r=localStorage.getItem(Lt.CACHED_VIEWS);return JSON.parse(r??"[]")},v4=r=>{localStorage.setItem(Lt.CACHED_VIEWS,JSON.stringify(r))},Zy="normal",p4=[{title:"默认",name:Zy},{title:"黑暗",name:"dark"},{title:"深蓝",name:"dark-blue"}],jh=cr(l4()||Zy),d4=r=>{jh.value=r},g4=r=>{document.documentElement.className=r},m4=()=>{ul(()=>{const r=jh.value;g4(r),u4(r)})};function y4(){return{themeList:p4,activeThemeName:jh,initTheme:m4,setTheme:d4}}var _4={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},dropdown:{toggleDropdown:"切换下拉选项"},mention:{loading:"加载中"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tour:{next:"下一步",previous:"上一步",finish:"结束导览"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"}}};const S4=Xh({__name:"App",setup(r){const{initTheme:t}=y4();return t(),(e,n)=>{const i=qp("router-view"),a=qp("el-config-provider");return Yy(),Vw(a,{locale:Wy(_4)},{default:Bw(()=>[Gw(i)]),_:1},8,["locale"])}}}),jl=Hw(),b4="modulepreload",w4=function(r){return"/"+r},Zp={},ie=function(t,e,n){if(!e||e.length===0)return t();const i=document.getElementsByTagName("link");return Promise.all(e.map(a=>{if(a=w4(a),a in Zp)return;Zp[a]=!0;const o=a.endsWith(".css"),s=o?'[rel="stylesheet"]':"";if(!!n)for(let f=i.length-1;f>=0;f--){const c=i[f];if(c.href===a&&(!o||c.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${s}`))return;const u=document.createElement("link");if(u.rel=o?"stylesheet":b4,o||(u.as="script",u.crossOrigin=""),u.href=a,document.head.appendChild(u),o)return new Promise((f,c)=>{u.addEventListener("load",f),u.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>t()).catch(a=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=a,window.dispatchEvent(o),!o.defaultPrevented)throw a})},x4=Uw("/"),jy={async:!0,defaultRoles:["DEFAULT_ROLE"],thirdLevelRouteCache:!1},gn=()=>ie(()=>import("./index-a61a615e.js"),["static/index-a61a615e.js","static/vue-956193f0.js","static/element-0afb0e99.js","static/vxe-78a23074.js","static/index-46bdc1ae.js","static/index.vue_vue_type_script_setup_true_lang-497f09e5.js","static/index-d63ed0e1.css"]),Ky=[{path:"/redirect",component:gn,meta:{hidden:!0},children:[{path:"/redirect/:path(.*)",component:()=>ie(()=>import("./index-051f208a.js"),["static/index-051f208a.js","static/vue-956193f0.js"])}]},{path:"/403",component:()=>ie(()=>import("./403-63ee4d41.js"),["static/403-63ee4d41.js","static/ErrorPageLayout-4f46354f.js","static/vue-956193f0.js","static/ErrorPageLayout-eddfc7ec.css","static/element-0afb0e99.js","static/vxe-78a23074.js"]),meta:{hidden:!0}},{path:"/404",component:()=>ie(()=>import("./404-0d9d20fc.js"),["static/404-0d9d20fc.js","static/ErrorPageLayout-4f46354f.js","static/vue-956193f0.js","static/ErrorPageLayout-eddfc7ec.css","static/element-0afb0e99.js","static/vxe-78a23074.js"]),meta:{hidden:!0},alias:"/:pathMatch(.*)*"},{path:"/login",component:()=>ie(()=>import("./index-75229342.js"),["static/index-75229342.js","static/vue-956193f0.js","static/element-0afb0e99.js","static/index.vue_vue_type_script_setup_true_lang-497f09e5.js","static/vxe-78a23074.js","static/index-3392d5e8.css"]),meta:{hidden:!0}},{path:"/",component:gn,redirect:"/dashboard",children:[{path:"dashboard",component:()=>ie(()=>import("./index-a2f9a4fa.js"),["static/index-a2f9a4fa.js","static/index-46bdc1ae.js","static/level-61112490.js","static/state-c5255287.js","static/vue-956193f0.js","static/element-0afb0e99.js","static/vxe-78a23074.js","static/index-9a1c310e.css"]),name:"Dashboard",meta:{title:"首页",svgIcon:"dashboard",affix:!0}}]},{path:"/project",component:gn,children:[{path:"project",component:()=>ie(()=>import("./index-2d0274bf.js"),["static/index-2d0274bf.js","static/vue-956193f0.js","static/element-0afb0e99.js","static/index-46bdc1ae.js","static/level-61112490.js","static/vxe-78a23074.js","static/index-99e22404.css","static/state-37853789.css"]),name:"list",meta:{title:"项目",svgIcon:"project",affix:!0}}]},{path:"/app",component:gn,redirect:"/app",children:[{path:"list",component:()=>ie(()=>import("./index-58473495.js"),["static/index-58473495.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-46bdc1ae.js","static/state-c5255287.js","static/vxe-78a23074.js","static/index-a954f1da.css","static/state-37853789.css"]),meta:{title:"应用",svgIcon:"app",affix:!0},name:"应用"}]},{path:"/vuln",component:gn,children:[{path:"detail/:id",component:()=>ie(()=>import("./detail-d25b80ed.js"),["static/detail-d25b80ed.js","static/vue-956193f0.js","static/level-61112490.js","static/level.css_vue_type_style_index_0_src_true_lang-509bbc79.js","static/level-8c16502c.css","static/index-46bdc1ae.js","static/element-0afb0e99.js","static/vxe-78a23074.js","static/detail-a155a1af.css"]),meta:{title:"漏洞详情",hidden:!0}},{path:"list",component:()=>ie(()=>import("./index-a31f151a.js"),["static/index-a31f151a.js","static/index-46bdc1ae.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/level-61112490.js","static/level.css_vue_type_style_index_0_src_true_lang-509bbc79.js","static/level-8c16502c.css","static/vxe-78a23074.js","static/index-fd6b5954.css"]),name:"vuln list",meta:{title:"漏洞",svgIcon:"bug",affix:!0}}]},{path:"/setting",component:gn,name:"设置",redirect:"/setting",meta:{title:"设置",svgIcon:"setting",alwaysShow:!0},children:[{path:"blacklist",component:()=>ie(()=>import("./blacklist-860366c8.js"),["static/blacklist-860366c8.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-46bdc1ae.js","static/vxe-78a23074.js","static/blacklist-1b271205.css"]),name:"主机黑名单",meta:{title:"主机黑名单",svgIcon:"blacklist",keepAlive:!1}},{path:"log",component:()=>ie(()=>import("./operationLog-d361cf84.js"),["static/operationLog-d361cf84.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-46bdc1ae.js","static/vxe-78a23074.js","static/operationLog-32deb1c0.css"]),name:"操作日志",meta:{title:"操作日志",svgIcon:"log",keepAlive:!1}},{path:"noticeHistory",component:()=>ie(()=>import("./noticeHistory-4f56bad4.js"),["static/noticeHistory-4f56bad4.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-46bdc1ae.js","static/vxe-78a23074.js","static/noticeHistory-2f48e080.css"]),name:"通知历史",meta:{title:"通知历史",svgIcon:"notice_history",keepAlive:!1}}]},{path:"/users",component:gn,redirect:"/users/manager",name:"users",children:[{path:"manager",component:()=>ie(()=>import("./index-62547993.js"),["static/index-62547993.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-46bdc1ae.js","static/vxe-78a23074.js","static/index-88c68c14.css"]),name:"用户管理",meta:{title:"用户管理",svgIcon:"user",affix:!0}}]}],T4=[],hr=Ww({history:x4,routes:Ky});function jp(){try{hr.getRoutes().forEach(r=>{var n;const{name:t,meta:e}=r;t&&((n=e.roles)!=null&&n.length)&&hr.hasRoute(t)&&hr.removeRoute(t)})}catch{window.location.reload()}}const C4=(r,t)=>{var n;const e=(n=t.meta)==null?void 0:n.roles;return e?r.some(i=>e.includes(i)):!0},Jy=(r,t)=>{const e=[];return r.forEach(n=>{const i={...n};C4(t,i)&&(i.children&&(i.children=Jy(i.children,t)),e.push(i))}),e},Qy=Zl("permission",()=>{const r=cr([]),t=cr([]);return{routes:r,dynamicRoutes:t,setRoutes:n=>{const i=Jy(T4,n);r.value=Ky.concat(i),t.value=i}}});function M4(){return Qy(jl)}const D4={layoutMode:"left",showSettings:!0,showTagsView:!0,fixedHeader:!0,showLogo:!0,showNotify:!0,showThemeSwitch:!0,showScreenfull:!0,showSearchMenu:!0,cacheTagsView:!1,showWatermark:!0,showGreyMode:!1,showColorWeakness:!1},A4={...D4,...o4()},$y=Zl("settings",()=>{const r={};for(const[e,n]of Object.entries(A4)){const i=cr(n);r[e]=i,ki(i,()=>{const a=t();s4(a)})}const t=()=>{const e={};for(const[n,i]of Object.entries(r))e[n]=i.value;return e};return r}),t1=Zl("tags-view",()=>{const{cacheTagsView:r}=$y(),t=cr(r?f4():[]),e=cr(r?h4():[]);return ul(()=>{c4(t.value),v4(e.value)}),{visitedViews:t,cachedViews:e,addVisitedView:c=>{const v=t.value.findIndex(h=>h.path===c.path);v!==-1?t.value[v].fullPath!==c.fullPath&&(t.value[v]={...c}):t.value.push({...c})},addCachedView:c=>{var v;typeof c.name=="string"&&(e.value.includes(c.name)||(v=c.meta)!=null&&v.keepAlive&&e.value.push(c.name))},delVisitedView:c=>{const v=t.value.findIndex(h=>h.path===c.path);v!==-1&&t.value.splice(v,1)},delCachedView:c=>{if(typeof c.name!="string")return;const v=e.value.indexOf(c.name);v!==-1&&e.value.splice(v,1)},delOthersVisitedViews:c=>{t.value=t.value.filter(v=>{var h;return((h=v.meta)==null?void 0:h.affix)||v.path===c.path})},delOthersCachedViews:c=>{if(typeof c.name!="string")return;const v=e.value.indexOf(c.name);v!==-1?e.value=e.value.slice(v,v+1):e.value=[]},delAllVisitedViews:()=>{t.value=t.value.filter(c=>{var v;return(v=c.meta)==null?void 0:v.affix})},delAllCachedViews:()=>{e.value=[]}}});function L4(){return t1(jl)}function Yo(r){for(var t=1;t"u")){o=Yo({},t,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),i=encodeURIComponent(i).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var s="";for(var l in o)o[l]&&(s+="; "+l,o[l]!==!0&&(s+="="+o[l].split(";")[0]));return document.cookie=i+"="+r.write(a,i)+s}}function n(i){if(!(typeof document>"u"||arguments.length&&!i)){for(var a=document.cookie?document.cookie.split("; "):[],o={},s=0;sKh.get(Lt.TOKEN),Fu=r=>{Kh.set(Lt.TOKEN,r)},Kp=()=>{Kh.remove(Lt.TOKEN)};function e1(r,t){return function(){return r.apply(t,arguments)}}const{toString:E4}=Object.prototype,{getPrototypeOf:Qh}=Object,Kl=(r=>t=>{const e=E4.call(t);return r[e]||(r[e]=e.slice(8,-1).toLowerCase())})(Object.create(null)),_r=r=>(r=r.toLowerCase(),t=>Kl(t)===r),Jl=r=>t=>typeof t===r,{isArray:Qi}=Array,ro=Jl("undefined");function P4(r){return r!==null&&!ro(r)&&r.constructor!==null&&!ro(r.constructor)&&Ee(r.constructor.isBuffer)&&r.constructor.isBuffer(r)}const r1=_r("ArrayBuffer");function I4(r){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(r):t=r&&r.buffer&&r1(r.buffer),t}const k4=Jl("string"),Ee=Jl("function"),n1=Jl("number"),Ql=r=>r!==null&&typeof r=="object",O4=r=>r===!0||r===!1,Gs=r=>{if(Kl(r)!=="object")return!1;const t=Qh(r);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in r)&&!(Symbol.iterator in r)},z4=_r("Date"),N4=_r("File"),F4=_r("Blob"),V4=_r("FileList"),B4=r=>Ql(r)&&Ee(r.pipe),G4=r=>{let t;return r&&(typeof FormData=="function"&&r instanceof FormData||Ee(r.append)&&((t=Kl(r))==="formdata"||t==="object"&&Ee(r.toString)&&r.toString()==="[object FormData]"))},H4=_r("URLSearchParams"),U4=r=>r.trim?r.trim():r.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Do(r,t,{allOwnKeys:e=!1}={}){if(r===null||typeof r>"u")return;let n,i;if(typeof r!="object"&&(r=[r]),Qi(r))for(n=0,i=r.length;n0;)if(i=e[n],t===i.toLowerCase())return i;return null}const a1=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),o1=r=>!ro(r)&&r!==a1;function Cc(){const{caseless:r}=o1(this)&&this||{},t={},e=(n,i)=>{const a=r&&i1(t,i)||i;Gs(t[a])&&Gs(n)?t[a]=Cc(t[a],n):Gs(n)?t[a]=Cc({},n):Qi(n)?t[a]=n.slice():t[a]=n};for(let n=0,i=arguments.length;n(Do(t,(i,a)=>{e&&Ee(i)?r[a]=e1(i,e):r[a]=i},{allOwnKeys:n}),r),Y4=r=>(r.charCodeAt(0)===65279&&(r=r.slice(1)),r),q4=(r,t,e,n)=>{r.prototype=Object.create(t.prototype,n),r.prototype.constructor=r,Object.defineProperty(r,"super",{value:t.prototype}),e&&Object.assign(r.prototype,e)},X4=(r,t,e,n)=>{let i,a,o;const s={};if(t=t||{},r==null)return t;do{for(i=Object.getOwnPropertyNames(r),a=i.length;a-- >0;)o=i[a],(!n||n(o,r,t))&&!s[o]&&(t[o]=r[o],s[o]=!0);r=e!==!1&&Qh(r)}while(r&&(!e||e(r,t))&&r!==Object.prototype);return t},Z4=(r,t,e)=>{r=String(r),(e===void 0||e>r.length)&&(e=r.length),e-=t.length;const n=r.indexOf(t,e);return n!==-1&&n===e},j4=r=>{if(!r)return null;if(Qi(r))return r;let t=r.length;if(!n1(t))return null;const e=new Array(t);for(;t-- >0;)e[t]=r[t];return e},K4=(r=>t=>r&&t instanceof r)(typeof Uint8Array<"u"&&Qh(Uint8Array)),J4=(r,t)=>{const n=(r&&r[Symbol.iterator]).call(r);let i;for(;(i=n.next())&&!i.done;){const a=i.value;t.call(r,a[0],a[1])}},Q4=(r,t)=>{let e;const n=[];for(;(e=r.exec(t))!==null;)n.push(e);return n},$4=_r("HTMLFormElement"),t3=r=>r.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,n,i){return n.toUpperCase()+i}),Jp=(({hasOwnProperty:r})=>(t,e)=>r.call(t,e))(Object.prototype),e3=_r("RegExp"),s1=(r,t)=>{const e=Object.getOwnPropertyDescriptors(r),n={};Do(e,(i,a)=>{let o;(o=t(i,a,r))!==!1&&(n[a]=o||i)}),Object.defineProperties(r,n)},r3=r=>{s1(r,(t,e)=>{if(Ee(r)&&["arguments","caller","callee"].indexOf(e)!==-1)return!1;const n=r[e];if(Ee(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+e+"'")})}})},n3=(r,t)=>{const e={},n=i=>{i.forEach(a=>{e[a]=!0})};return Qi(r)?n(r):n(String(r).split(t)),e},i3=()=>{},a3=(r,t)=>(r=+r,Number.isFinite(r)?r:t),Vu="abcdefghijklmnopqrstuvwxyz",Qp="0123456789",l1={DIGIT:Qp,ALPHA:Vu,ALPHA_DIGIT:Vu+Vu.toUpperCase()+Qp},o3=(r=16,t=l1.ALPHA_DIGIT)=>{let e="";const{length:n}=t;for(;r--;)e+=t[Math.random()*n|0];return e};function s3(r){return!!(r&&Ee(r.append)&&r[Symbol.toStringTag]==="FormData"&&r[Symbol.iterator])}const l3=r=>{const t=new Array(10),e=(n,i)=>{if(Ql(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[i]=n;const a=Qi(n)?[]:{};return Do(n,(o,s)=>{const l=e(o,i+1);!ro(l)&&(a[s]=l)}),t[i]=void 0,a}}return n};return e(r,0)},u3=_r("AsyncFunction"),f3=r=>r&&(Ql(r)||Ee(r))&&Ee(r.then)&&Ee(r.catch),k={isArray:Qi,isArrayBuffer:r1,isBuffer:P4,isFormData:G4,isArrayBufferView:I4,isString:k4,isNumber:n1,isBoolean:O4,isObject:Ql,isPlainObject:Gs,isUndefined:ro,isDate:z4,isFile:N4,isBlob:F4,isRegExp:e3,isFunction:Ee,isStream:B4,isURLSearchParams:H4,isTypedArray:K4,isFileList:V4,forEach:Do,merge:Cc,extend:W4,trim:U4,stripBOM:Y4,inherits:q4,toFlatObject:X4,kindOf:Kl,kindOfTest:_r,endsWith:Z4,toArray:j4,forEachEntry:J4,matchAll:Q4,isHTMLForm:$4,hasOwnProperty:Jp,hasOwnProp:Jp,reduceDescriptors:s1,freezeMethods:r3,toObjectSet:n3,toCamelCase:t3,noop:i3,toFiniteNumber:a3,findKey:i1,global:a1,isContextDefined:o1,ALPHABET:l1,generateString:o3,isSpecCompliantForm:s3,toJSONObject:l3,isAsyncFn:u3,isThenable:f3};function ct(r,t,e,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=r,this.name="AxiosError",t&&(this.code=t),e&&(this.config=e),n&&(this.request=n),i&&(this.response=i)}k.inherits(ct,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:k.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const u1=ct.prototype,f1={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(r=>{f1[r]={value:r}});Object.defineProperties(ct,f1);Object.defineProperty(u1,"isAxiosError",{value:!0});ct.from=(r,t,e,n,i,a)=>{const o=Object.create(u1);return k.toFlatObject(r,o,function(l){return l!==Error.prototype},s=>s!=="isAxiosError"),ct.call(o,r.message,t,e,n,i),o.cause=r,o.name=r.name,a&&Object.assign(o,a),o};const c3=null;function Mc(r){return k.isPlainObject(r)||k.isArray(r)}function c1(r){return k.endsWith(r,"[]")?r.slice(0,-2):r}function $p(r,t,e){return r?r.concat(t).map(function(i,a){return i=c1(i),!e&&a?"["+i+"]":i}).join(e?".":""):t}function h3(r){return k.isArray(r)&&!r.some(Mc)}const v3=k.toFlatObject(k,{},null,function(t){return/^is[A-Z]/.test(t)});function $l(r,t,e){if(!k.isObject(r))throw new TypeError("target must be an object");t=t||new FormData,e=k.toFlatObject(e,{metaTokens:!0,dots:!1,indexes:!1},!1,function(d,g){return!k.isUndefined(g[d])});const n=e.metaTokens,i=e.visitor||f,a=e.dots,o=e.indexes,l=(e.Blob||typeof Blob<"u"&&Blob)&&k.isSpecCompliantForm(t);if(!k.isFunction(i))throw new TypeError("visitor must be a function");function u(p){if(p===null)return"";if(k.isDate(p))return p.toISOString();if(!l&&k.isBlob(p))throw new ct("Blob is not supported. Use a Buffer instead.");return k.isArrayBuffer(p)||k.isTypedArray(p)?l&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function f(p,d,g){let m=p;if(p&&!g&&typeof p=="object"){if(k.endsWith(d,"{}"))d=n?d:d.slice(0,-2),p=JSON.stringify(p);else if(k.isArray(p)&&h3(p)||(k.isFileList(p)||k.endsWith(d,"[]"))&&(m=k.toArray(p)))return d=c1(d),m.forEach(function(_,S){!(k.isUndefined(_)||_===null)&&t.append(o===!0?$p([d],S,a):o===null?d:d+"[]",u(_))}),!1}return Mc(p)?!0:(t.append($p(g,d,a),u(p)),!1)}const c=[],v=Object.assign(v3,{defaultVisitor:f,convertValue:u,isVisitable:Mc});function h(p,d){if(!k.isUndefined(p)){if(c.indexOf(p)!==-1)throw Error("Circular reference detected in "+d.join("."));c.push(p),k.forEach(p,function(m,y){(!(k.isUndefined(m)||m===null)&&i.call(t,m,k.isString(y)?y.trim():y,d,v))===!0&&h(m,d?d.concat(y):[y])}),c.pop()}}if(!k.isObject(r))throw new TypeError("data must be an object");return h(r),t}function td(r){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(r).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function $h(r,t){this._pairs=[],r&&$l(r,this,t)}const h1=$h.prototype;h1.append=function(t,e){this._pairs.push([t,e])};h1.toString=function(t){const e=t?function(n){return t.call(this,n,td)}:td;return this._pairs.map(function(i){return e(i[0])+"="+e(i[1])},"").join("&")};function p3(r){return encodeURIComponent(r).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function v1(r,t,e){if(!t)return r;const n=e&&e.encode||p3,i=e&&e.serialize;let a;if(i?a=i(t,e):a=k.isURLSearchParams(t)?t.toString():new $h(t,e).toString(n),a){const o=r.indexOf("#");o!==-1&&(r=r.slice(0,o)),r+=(r.indexOf("?")===-1?"?":"&")+a}return r}class d3{constructor(){this.handlers=[]}use(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){k.forEach(this.handlers,function(n){n!==null&&t(n)})}}const ed=d3,p1={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},g3=typeof URLSearchParams<"u"?URLSearchParams:$h,m3=typeof FormData<"u"?FormData:null,y3=typeof Blob<"u"?Blob:null,_3=(()=>{let r;return typeof navigator<"u"&&((r=navigator.product)==="ReactNative"||r==="NativeScript"||r==="NS")?!1:typeof window<"u"&&typeof document<"u"})(),S3=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),Ye={isBrowser:!0,classes:{URLSearchParams:g3,FormData:m3,Blob:y3},isStandardBrowserEnv:_3,isStandardBrowserWebWorkerEnv:S3,protocols:["http","https","file","blob","url","data"]};function b3(r,t){return $l(r,new Ye.classes.URLSearchParams,Object.assign({visitor:function(e,n,i,a){return Ye.isNode&&k.isBuffer(e)?(this.append(n,e.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function w3(r){return k.matchAll(/\w+|\[(\w*)]/g,r).map(t=>t[0]==="[]"?"":t[1]||t[0])}function x3(r){const t={},e=Object.keys(r);let n;const i=e.length;let a;for(n=0;n=e.length;return o=!o&&k.isArray(i)?i.length:o,l?(k.hasOwnProp(i,o)?i[o]=[i[o],n]:i[o]=n,!s):((!i[o]||!k.isObject(i[o]))&&(i[o]=[]),t(e,n,i[o],a)&&k.isArray(i[o])&&(i[o]=x3(i[o])),!s)}if(k.isFormData(r)&&k.isFunction(r.entries)){const e={};return k.forEachEntry(r,(n,i)=>{t(w3(n),i,e,0)}),e}return null}function T3(r,t,e){if(k.isString(r))try{return(t||JSON.parse)(r),k.trim(r)}catch(n){if(n.name!=="SyntaxError")throw n}return(e||JSON.stringify)(r)}const tv={transitional:p1,adapter:Ye.isNode?"http":"xhr",transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,a=k.isObject(t);if(a&&k.isHTMLForm(t)&&(t=new FormData(t)),k.isFormData(t))return i&&i?JSON.stringify(d1(t)):t;if(k.isArrayBuffer(t)||k.isBuffer(t)||k.isStream(t)||k.isFile(t)||k.isBlob(t))return t;if(k.isArrayBufferView(t))return t.buffer;if(k.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(a){if(n.indexOf("application/x-www-form-urlencoded")>-1)return b3(t,this.formSerializer).toString();if((s=k.isFileList(t))||n.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return $l(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return a||i?(e.setContentType("application/json",!1),T3(t)):t}],transformResponse:[function(t){const e=this.transitional||tv.transitional,n=e&&e.forcedJSONParsing,i=this.responseType==="json";if(t&&k.isString(t)&&(n&&!this.responseType||i)){const o=!(e&&e.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(s){if(o)throw s.name==="SyntaxError"?ct.from(s,ct.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ye.classes.FormData,Blob:Ye.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};k.forEach(["delete","get","head","post","put","patch"],r=>{tv.headers[r]={}});const ev=tv,C3=k.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),M3=r=>{const t={};let e,n,i;return r&&r.split(` +var Nw=Object.defineProperty;var Fw=(r,t,e)=>t in r?Nw(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var dn=(r,t,e)=>(Fw(r,typeof t!="symbol"?t+"":t,e),e);import{r as cr,w as ul,p as Xh,ai as qp,M as Vw,O as Bw,u as Wy,q as Yy,U as Gw,ay as Hw,az as Uw,aA as Ww,aB as Zl,b as ki,A as qy,f as Vn,t as Yw,v as qw,s as Uo,B as Wo,_ as Xw,c as Zw,d as jw,ah as Xp,n as Kw,D as Jw,at as Qw}from"./vue-956193f0.js";import{b as $w,E as Xy,m as t4,c as e4,g as r4,i as n4,d as i4}from"./element-0afb0e99.js";import{V as Zh,a as a4}from"./vxe-78a23074.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function e(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=e(i);fetch(i.href,a)}})();const pi="codeSecurity";class Lt{}dn(Lt,"TOKEN",`${pi}-token-key`),dn(Lt,"CONFIG_LAYOUT",`${pi}-config-layout-key`),dn(Lt,"SIDEBAR_STATUS",`${pi}-sidebar-status-key`),dn(Lt,"ACTIVE_THEME_NAME",`${pi}-active-theme-name-key`),dn(Lt,"VISITED_VIEWS",`${pi}-visited-views-key`),dn(Lt,"CACHED_VIEWS",`${pi}-cached-views-key`);const o4=()=>{const r=localStorage.getItem(Lt.CONFIG_LAYOUT);return r?JSON.parse(r):null},s4=r=>{localStorage.setItem(Lt.CONFIG_LAYOUT,JSON.stringify(r))},Vk=()=>{localStorage.removeItem(Lt.CONFIG_LAYOUT)},Bk=()=>localStorage.getItem(Lt.SIDEBAR_STATUS),Gk=r=>{localStorage.setItem(Lt.SIDEBAR_STATUS,r)},l4=()=>localStorage.getItem(Lt.ACTIVE_THEME_NAME),u4=r=>{localStorage.setItem(Lt.ACTIVE_THEME_NAME,r)},f4=()=>{const r=localStorage.getItem(Lt.VISITED_VIEWS);return JSON.parse(r??"[]")},c4=r=>{r.forEach(t=>{delete t.matched,delete t.redirectedFrom}),localStorage.setItem(Lt.VISITED_VIEWS,JSON.stringify(r))},h4=()=>{const r=localStorage.getItem(Lt.CACHED_VIEWS);return JSON.parse(r??"[]")},v4=r=>{localStorage.setItem(Lt.CACHED_VIEWS,JSON.stringify(r))},Zy="normal",p4=[{title:"默认",name:Zy},{title:"黑暗",name:"dark"},{title:"深蓝",name:"dark-blue"}],jh=cr(l4()||Zy),d4=r=>{jh.value=r},g4=r=>{document.documentElement.className=r},m4=()=>{ul(()=>{const r=jh.value;g4(r),u4(r)})};function y4(){return{themeList:p4,activeThemeName:jh,initTheme:m4,setTheme:d4}}var _4={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},dropdown:{toggleDropdown:"切换下拉选项"},mention:{loading:"加载中"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tour:{next:"下一步",previous:"上一步",finish:"结束导览"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"}}};const S4=Xh({__name:"App",setup(r){const{initTheme:t}=y4();return t(),(e,n)=>{const i=qp("router-view"),a=qp("el-config-provider");return Yy(),Vw(a,{locale:Wy(_4)},{default:Bw(()=>[Gw(i)]),_:1},8,["locale"])}}}),jl=Hw(),b4="modulepreload",w4=function(r){return"/"+r},Zp={},ie=function(t,e,n){if(!e||e.length===0)return t();const i=document.getElementsByTagName("link");return Promise.all(e.map(a=>{if(a=w4(a),a in Zp)return;Zp[a]=!0;const o=a.endsWith(".css"),s=o?'[rel="stylesheet"]':"";if(!!n)for(let f=i.length-1;f>=0;f--){const c=i[f];if(c.href===a&&(!o||c.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${s}`))return;const u=document.createElement("link");if(u.rel=o?"stylesheet":b4,o||(u.as="script",u.crossOrigin=""),u.href=a,document.head.appendChild(u),o)return new Promise((f,c)=>{u.addEventListener("load",f),u.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>t()).catch(a=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=a,window.dispatchEvent(o),!o.defaultPrevented)throw a})},x4=Uw("/"),jy={async:!0,defaultRoles:["DEFAULT_ROLE"],thirdLevelRouteCache:!1},gn=()=>ie(()=>import("./index-2bbd35f6.js"),["static/index-2bbd35f6.js","static/vue-956193f0.js","static/element-0afb0e99.js","static/vxe-78a23074.js","static/index-8fe9da41.js","static/index.vue_vue_type_script_setup_true_lang-9363a53d.js","static/index-d63ed0e1.css"]),Ky=[{path:"/redirect",component:gn,meta:{hidden:!0},children:[{path:"/redirect/:path(.*)",component:()=>ie(()=>import("./index-051f208a.js"),["static/index-051f208a.js","static/vue-956193f0.js"])}]},{path:"/403",component:()=>ie(()=>import("./403-00ceb941.js"),["static/403-00ceb941.js","static/ErrorPageLayout-bf01d6c3.js","static/vue-956193f0.js","static/ErrorPageLayout-eddfc7ec.css","static/element-0afb0e99.js","static/vxe-78a23074.js"]),meta:{hidden:!0}},{path:"/404",component:()=>ie(()=>import("./404-43bf45f9.js"),["static/404-43bf45f9.js","static/ErrorPageLayout-bf01d6c3.js","static/vue-956193f0.js","static/ErrorPageLayout-eddfc7ec.css","static/element-0afb0e99.js","static/vxe-78a23074.js"]),meta:{hidden:!0},alias:"/:pathMatch(.*)*"},{path:"/login",component:()=>ie(()=>import("./index-b19b4669.js"),["static/index-b19b4669.js","static/vue-956193f0.js","static/element-0afb0e99.js","static/index.vue_vue_type_script_setup_true_lang-9363a53d.js","static/vxe-78a23074.js","static/index-3392d5e8.css"]),meta:{hidden:!0}},{path:"/",component:gn,redirect:"/dashboard",children:[{path:"dashboard",component:()=>ie(()=>import("./index-1e1bf702.js"),["static/index-1e1bf702.js","static/index-8fe9da41.js","static/level-61112490.js","static/state-c5255287.js","static/vue-956193f0.js","static/element-0afb0e99.js","static/vxe-78a23074.js","static/index-9a1c310e.css"]),name:"Dashboard",meta:{title:"首页",svgIcon:"dashboard",affix:!0}}]},{path:"/project",component:gn,children:[{path:"project",component:()=>ie(()=>import("./index-42fc4c27.js"),["static/index-42fc4c27.js","static/vue-956193f0.js","static/element-0afb0e99.js","static/index-8fe9da41.js","static/level-61112490.js","static/vxe-78a23074.js","static/index-99e22404.css","static/state-37853789.css"]),name:"list",meta:{title:"项目",svgIcon:"project",affix:!0}}]},{path:"/app",component:gn,redirect:"/app",children:[{path:"list",component:()=>ie(()=>import("./index-b1507e39.js"),["static/index-b1507e39.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-8fe9da41.js","static/state-c5255287.js","static/vxe-78a23074.js","static/index-a954f1da.css","static/state-37853789.css"]),meta:{title:"应用",svgIcon:"app",affix:!0},name:"应用"}]},{path:"/vuln",component:gn,children:[{path:"detail/:id",component:()=>ie(()=>import("./detail-e7922ea0.js"),["static/detail-e7922ea0.js","static/vue-956193f0.js","static/level-61112490.js","static/level.css_vue_type_style_index_0_src_true_lang-5c282ff5.js","static/level-8c16502c.css","static/index-8fe9da41.js","static/element-0afb0e99.js","static/vxe-78a23074.js","static/detail-a155a1af.css"]),meta:{title:"漏洞详情",hidden:!0}},{path:"list",component:()=>ie(()=>import("./index-d504c852.js"),["static/index-d504c852.js","static/index-8fe9da41.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/level-61112490.js","static/level.css_vue_type_style_index_0_src_true_lang-5c282ff5.js","static/level-8c16502c.css","static/vxe-78a23074.js","static/index-fd6b5954.css"]),name:"vuln list",meta:{title:"漏洞",svgIcon:"bug",affix:!0}}]},{path:"/setting",component:gn,name:"设置",redirect:"/setting",meta:{title:"设置",svgIcon:"setting",alwaysShow:!0},children:[{path:"blacklist",component:()=>ie(()=>import("./blacklist-bd0943f1.js"),["static/blacklist-bd0943f1.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-8fe9da41.js","static/vxe-78a23074.js","static/blacklist-1b271205.css"]),name:"主机黑名单",meta:{title:"主机黑名单",svgIcon:"blacklist",keepAlive:!1}},{path:"log",component:()=>ie(()=>import("./operationLog-fdbfb6f8.js"),["static/operationLog-fdbfb6f8.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-8fe9da41.js","static/vxe-78a23074.js","static/operationLog-32deb1c0.css"]),name:"操作日志",meta:{title:"操作日志",svgIcon:"log",keepAlive:!1}},{path:"noticeHistory",component:()=>ie(()=>import("./noticeHistory-14b776ce.js"),["static/noticeHistory-14b776ce.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-8fe9da41.js","static/vxe-78a23074.js","static/noticeHistory-2f48e080.css"]),name:"通知历史",meta:{title:"通知历史",svgIcon:"notice_history",keepAlive:!1}}]},{path:"/users",component:gn,redirect:"/users/manager",name:"users",children:[{path:"manager",component:()=>ie(()=>import("./index-053e8886.js"),["static/index-053e8886.js","static/element-0afb0e99.js","static/vue-956193f0.js","static/index-8fe9da41.js","static/vxe-78a23074.js","static/index-88c68c14.css"]),name:"用户管理",meta:{title:"用户管理",svgIcon:"user",affix:!0}}]}],T4=[],hr=Ww({history:x4,routes:Ky});function jp(){try{hr.getRoutes().forEach(r=>{var n;const{name:t,meta:e}=r;t&&((n=e.roles)!=null&&n.length)&&hr.hasRoute(t)&&hr.removeRoute(t)})}catch{window.location.reload()}}const C4=(r,t)=>{var n;const e=(n=t.meta)==null?void 0:n.roles;return e?r.some(i=>e.includes(i)):!0},Jy=(r,t)=>{const e=[];return r.forEach(n=>{const i={...n};C4(t,i)&&(i.children&&(i.children=Jy(i.children,t)),e.push(i))}),e},Qy=Zl("permission",()=>{const r=cr([]),t=cr([]);return{routes:r,dynamicRoutes:t,setRoutes:n=>{const i=Jy(T4,n);r.value=Ky.concat(i),t.value=i}}});function M4(){return Qy(jl)}const D4={layoutMode:"left",showSettings:!0,showTagsView:!0,fixedHeader:!0,showLogo:!0,showNotify:!0,showThemeSwitch:!0,showScreenfull:!0,showSearchMenu:!0,cacheTagsView:!1,showWatermark:!0,showGreyMode:!1,showColorWeakness:!1},A4={...D4,...o4()},$y=Zl("settings",()=>{const r={};for(const[e,n]of Object.entries(A4)){const i=cr(n);r[e]=i,ki(i,()=>{const a=t();s4(a)})}const t=()=>{const e={};for(const[n,i]of Object.entries(r))e[n]=i.value;return e};return r}),t1=Zl("tags-view",()=>{const{cacheTagsView:r}=$y(),t=cr(r?f4():[]),e=cr(r?h4():[]);return ul(()=>{c4(t.value),v4(e.value)}),{visitedViews:t,cachedViews:e,addVisitedView:c=>{const v=t.value.findIndex(h=>h.path===c.path);v!==-1?t.value[v].fullPath!==c.fullPath&&(t.value[v]={...c}):t.value.push({...c})},addCachedView:c=>{var v;typeof c.name=="string"&&(e.value.includes(c.name)||(v=c.meta)!=null&&v.keepAlive&&e.value.push(c.name))},delVisitedView:c=>{const v=t.value.findIndex(h=>h.path===c.path);v!==-1&&t.value.splice(v,1)},delCachedView:c=>{if(typeof c.name!="string")return;const v=e.value.indexOf(c.name);v!==-1&&e.value.splice(v,1)},delOthersVisitedViews:c=>{t.value=t.value.filter(v=>{var h;return((h=v.meta)==null?void 0:h.affix)||v.path===c.path})},delOthersCachedViews:c=>{if(typeof c.name!="string")return;const v=e.value.indexOf(c.name);v!==-1?e.value=e.value.slice(v,v+1):e.value=[]},delAllVisitedViews:()=>{t.value=t.value.filter(c=>{var v;return(v=c.meta)==null?void 0:v.affix})},delAllCachedViews:()=>{e.value=[]}}});function L4(){return t1(jl)}function Yo(r){for(var t=1;t"u")){o=Yo({},t,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),i=encodeURIComponent(i).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var s="";for(var l in o)o[l]&&(s+="; "+l,o[l]!==!0&&(s+="="+o[l].split(";")[0]));return document.cookie=i+"="+r.write(a,i)+s}}function n(i){if(!(typeof document>"u"||arguments.length&&!i)){for(var a=document.cookie?document.cookie.split("; "):[],o={},s=0;sKh.get(Lt.TOKEN),Fu=r=>{Kh.set(Lt.TOKEN,r)},Kp=()=>{Kh.remove(Lt.TOKEN)};function e1(r,t){return function(){return r.apply(t,arguments)}}const{toString:E4}=Object.prototype,{getPrototypeOf:Qh}=Object,Kl=(r=>t=>{const e=E4.call(t);return r[e]||(r[e]=e.slice(8,-1).toLowerCase())})(Object.create(null)),_r=r=>(r=r.toLowerCase(),t=>Kl(t)===r),Jl=r=>t=>typeof t===r,{isArray:Qi}=Array,ro=Jl("undefined");function P4(r){return r!==null&&!ro(r)&&r.constructor!==null&&!ro(r.constructor)&&Ee(r.constructor.isBuffer)&&r.constructor.isBuffer(r)}const r1=_r("ArrayBuffer");function I4(r){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(r):t=r&&r.buffer&&r1(r.buffer),t}const k4=Jl("string"),Ee=Jl("function"),n1=Jl("number"),Ql=r=>r!==null&&typeof r=="object",O4=r=>r===!0||r===!1,Gs=r=>{if(Kl(r)!=="object")return!1;const t=Qh(r);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in r)&&!(Symbol.iterator in r)},z4=_r("Date"),N4=_r("File"),F4=_r("Blob"),V4=_r("FileList"),B4=r=>Ql(r)&&Ee(r.pipe),G4=r=>{let t;return r&&(typeof FormData=="function"&&r instanceof FormData||Ee(r.append)&&((t=Kl(r))==="formdata"||t==="object"&&Ee(r.toString)&&r.toString()==="[object FormData]"))},H4=_r("URLSearchParams"),U4=r=>r.trim?r.trim():r.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Do(r,t,{allOwnKeys:e=!1}={}){if(r===null||typeof r>"u")return;let n,i;if(typeof r!="object"&&(r=[r]),Qi(r))for(n=0,i=r.length;n0;)if(i=e[n],t===i.toLowerCase())return i;return null}const a1=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),o1=r=>!ro(r)&&r!==a1;function Cc(){const{caseless:r}=o1(this)&&this||{},t={},e=(n,i)=>{const a=r&&i1(t,i)||i;Gs(t[a])&&Gs(n)?t[a]=Cc(t[a],n):Gs(n)?t[a]=Cc({},n):Qi(n)?t[a]=n.slice():t[a]=n};for(let n=0,i=arguments.length;n(Do(t,(i,a)=>{e&&Ee(i)?r[a]=e1(i,e):r[a]=i},{allOwnKeys:n}),r),Y4=r=>(r.charCodeAt(0)===65279&&(r=r.slice(1)),r),q4=(r,t,e,n)=>{r.prototype=Object.create(t.prototype,n),r.prototype.constructor=r,Object.defineProperty(r,"super",{value:t.prototype}),e&&Object.assign(r.prototype,e)},X4=(r,t,e,n)=>{let i,a,o;const s={};if(t=t||{},r==null)return t;do{for(i=Object.getOwnPropertyNames(r),a=i.length;a-- >0;)o=i[a],(!n||n(o,r,t))&&!s[o]&&(t[o]=r[o],s[o]=!0);r=e!==!1&&Qh(r)}while(r&&(!e||e(r,t))&&r!==Object.prototype);return t},Z4=(r,t,e)=>{r=String(r),(e===void 0||e>r.length)&&(e=r.length),e-=t.length;const n=r.indexOf(t,e);return n!==-1&&n===e},j4=r=>{if(!r)return null;if(Qi(r))return r;let t=r.length;if(!n1(t))return null;const e=new Array(t);for(;t-- >0;)e[t]=r[t];return e},K4=(r=>t=>r&&t instanceof r)(typeof Uint8Array<"u"&&Qh(Uint8Array)),J4=(r,t)=>{const n=(r&&r[Symbol.iterator]).call(r);let i;for(;(i=n.next())&&!i.done;){const a=i.value;t.call(r,a[0],a[1])}},Q4=(r,t)=>{let e;const n=[];for(;(e=r.exec(t))!==null;)n.push(e);return n},$4=_r("HTMLFormElement"),t3=r=>r.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,n,i){return n.toUpperCase()+i}),Jp=(({hasOwnProperty:r})=>(t,e)=>r.call(t,e))(Object.prototype),e3=_r("RegExp"),s1=(r,t)=>{const e=Object.getOwnPropertyDescriptors(r),n={};Do(e,(i,a)=>{let o;(o=t(i,a,r))!==!1&&(n[a]=o||i)}),Object.defineProperties(r,n)},r3=r=>{s1(r,(t,e)=>{if(Ee(r)&&["arguments","caller","callee"].indexOf(e)!==-1)return!1;const n=r[e];if(Ee(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+e+"'")})}})},n3=(r,t)=>{const e={},n=i=>{i.forEach(a=>{e[a]=!0})};return Qi(r)?n(r):n(String(r).split(t)),e},i3=()=>{},a3=(r,t)=>(r=+r,Number.isFinite(r)?r:t),Vu="abcdefghijklmnopqrstuvwxyz",Qp="0123456789",l1={DIGIT:Qp,ALPHA:Vu,ALPHA_DIGIT:Vu+Vu.toUpperCase()+Qp},o3=(r=16,t=l1.ALPHA_DIGIT)=>{let e="";const{length:n}=t;for(;r--;)e+=t[Math.random()*n|0];return e};function s3(r){return!!(r&&Ee(r.append)&&r[Symbol.toStringTag]==="FormData"&&r[Symbol.iterator])}const l3=r=>{const t=new Array(10),e=(n,i)=>{if(Ql(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[i]=n;const a=Qi(n)?[]:{};return Do(n,(o,s)=>{const l=e(o,i+1);!ro(l)&&(a[s]=l)}),t[i]=void 0,a}}return n};return e(r,0)},u3=_r("AsyncFunction"),f3=r=>r&&(Ql(r)||Ee(r))&&Ee(r.then)&&Ee(r.catch),k={isArray:Qi,isArrayBuffer:r1,isBuffer:P4,isFormData:G4,isArrayBufferView:I4,isString:k4,isNumber:n1,isBoolean:O4,isObject:Ql,isPlainObject:Gs,isUndefined:ro,isDate:z4,isFile:N4,isBlob:F4,isRegExp:e3,isFunction:Ee,isStream:B4,isURLSearchParams:H4,isTypedArray:K4,isFileList:V4,forEach:Do,merge:Cc,extend:W4,trim:U4,stripBOM:Y4,inherits:q4,toFlatObject:X4,kindOf:Kl,kindOfTest:_r,endsWith:Z4,toArray:j4,forEachEntry:J4,matchAll:Q4,isHTMLForm:$4,hasOwnProperty:Jp,hasOwnProp:Jp,reduceDescriptors:s1,freezeMethods:r3,toObjectSet:n3,toCamelCase:t3,noop:i3,toFiniteNumber:a3,findKey:i1,global:a1,isContextDefined:o1,ALPHABET:l1,generateString:o3,isSpecCompliantForm:s3,toJSONObject:l3,isAsyncFn:u3,isThenable:f3};function ct(r,t,e,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=r,this.name="AxiosError",t&&(this.code=t),e&&(this.config=e),n&&(this.request=n),i&&(this.response=i)}k.inherits(ct,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:k.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const u1=ct.prototype,f1={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(r=>{f1[r]={value:r}});Object.defineProperties(ct,f1);Object.defineProperty(u1,"isAxiosError",{value:!0});ct.from=(r,t,e,n,i,a)=>{const o=Object.create(u1);return k.toFlatObject(r,o,function(l){return l!==Error.prototype},s=>s!=="isAxiosError"),ct.call(o,r.message,t,e,n,i),o.cause=r,o.name=r.name,a&&Object.assign(o,a),o};const c3=null;function Mc(r){return k.isPlainObject(r)||k.isArray(r)}function c1(r){return k.endsWith(r,"[]")?r.slice(0,-2):r}function $p(r,t,e){return r?r.concat(t).map(function(i,a){return i=c1(i),!e&&a?"["+i+"]":i}).join(e?".":""):t}function h3(r){return k.isArray(r)&&!r.some(Mc)}const v3=k.toFlatObject(k,{},null,function(t){return/^is[A-Z]/.test(t)});function $l(r,t,e){if(!k.isObject(r))throw new TypeError("target must be an object");t=t||new FormData,e=k.toFlatObject(e,{metaTokens:!0,dots:!1,indexes:!1},!1,function(d,g){return!k.isUndefined(g[d])});const n=e.metaTokens,i=e.visitor||f,a=e.dots,o=e.indexes,l=(e.Blob||typeof Blob<"u"&&Blob)&&k.isSpecCompliantForm(t);if(!k.isFunction(i))throw new TypeError("visitor must be a function");function u(p){if(p===null)return"";if(k.isDate(p))return p.toISOString();if(!l&&k.isBlob(p))throw new ct("Blob is not supported. Use a Buffer instead.");return k.isArrayBuffer(p)||k.isTypedArray(p)?l&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function f(p,d,g){let m=p;if(p&&!g&&typeof p=="object"){if(k.endsWith(d,"{}"))d=n?d:d.slice(0,-2),p=JSON.stringify(p);else if(k.isArray(p)&&h3(p)||(k.isFileList(p)||k.endsWith(d,"[]"))&&(m=k.toArray(p)))return d=c1(d),m.forEach(function(_,S){!(k.isUndefined(_)||_===null)&&t.append(o===!0?$p([d],S,a):o===null?d:d+"[]",u(_))}),!1}return Mc(p)?!0:(t.append($p(g,d,a),u(p)),!1)}const c=[],v=Object.assign(v3,{defaultVisitor:f,convertValue:u,isVisitable:Mc});function h(p,d){if(!k.isUndefined(p)){if(c.indexOf(p)!==-1)throw Error("Circular reference detected in "+d.join("."));c.push(p),k.forEach(p,function(m,y){(!(k.isUndefined(m)||m===null)&&i.call(t,m,k.isString(y)?y.trim():y,d,v))===!0&&h(m,d?d.concat(y):[y])}),c.pop()}}if(!k.isObject(r))throw new TypeError("data must be an object");return h(r),t}function td(r){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(r).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function $h(r,t){this._pairs=[],r&&$l(r,this,t)}const h1=$h.prototype;h1.append=function(t,e){this._pairs.push([t,e])};h1.toString=function(t){const e=t?function(n){return t.call(this,n,td)}:td;return this._pairs.map(function(i){return e(i[0])+"="+e(i[1])},"").join("&")};function p3(r){return encodeURIComponent(r).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function v1(r,t,e){if(!t)return r;const n=e&&e.encode||p3,i=e&&e.serialize;let a;if(i?a=i(t,e):a=k.isURLSearchParams(t)?t.toString():new $h(t,e).toString(n),a){const o=r.indexOf("#");o!==-1&&(r=r.slice(0,o)),r+=(r.indexOf("?")===-1?"?":"&")+a}return r}class d3{constructor(){this.handlers=[]}use(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){k.forEach(this.handlers,function(n){n!==null&&t(n)})}}const ed=d3,p1={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},g3=typeof URLSearchParams<"u"?URLSearchParams:$h,m3=typeof FormData<"u"?FormData:null,y3=typeof Blob<"u"?Blob:null,_3=(()=>{let r;return typeof navigator<"u"&&((r=navigator.product)==="ReactNative"||r==="NativeScript"||r==="NS")?!1:typeof window<"u"&&typeof document<"u"})(),S3=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),Ye={isBrowser:!0,classes:{URLSearchParams:g3,FormData:m3,Blob:y3},isStandardBrowserEnv:_3,isStandardBrowserWebWorkerEnv:S3,protocols:["http","https","file","blob","url","data"]};function b3(r,t){return $l(r,new Ye.classes.URLSearchParams,Object.assign({visitor:function(e,n,i,a){return Ye.isNode&&k.isBuffer(e)?(this.append(n,e.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function w3(r){return k.matchAll(/\w+|\[(\w*)]/g,r).map(t=>t[0]==="[]"?"":t[1]||t[0])}function x3(r){const t={},e=Object.keys(r);let n;const i=e.length;let a;for(n=0;n=e.length;return o=!o&&k.isArray(i)?i.length:o,l?(k.hasOwnProp(i,o)?i[o]=[i[o],n]:i[o]=n,!s):((!i[o]||!k.isObject(i[o]))&&(i[o]=[]),t(e,n,i[o],a)&&k.isArray(i[o])&&(i[o]=x3(i[o])),!s)}if(k.isFormData(r)&&k.isFunction(r.entries)){const e={};return k.forEachEntry(r,(n,i)=>{t(w3(n),i,e,0)}),e}return null}function T3(r,t,e){if(k.isString(r))try{return(t||JSON.parse)(r),k.trim(r)}catch(n){if(n.name!=="SyntaxError")throw n}return(e||JSON.stringify)(r)}const tv={transitional:p1,adapter:Ye.isNode?"http":"xhr",transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,a=k.isObject(t);if(a&&k.isHTMLForm(t)&&(t=new FormData(t)),k.isFormData(t))return i&&i?JSON.stringify(d1(t)):t;if(k.isArrayBuffer(t)||k.isBuffer(t)||k.isStream(t)||k.isFile(t)||k.isBlob(t))return t;if(k.isArrayBufferView(t))return t.buffer;if(k.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(a){if(n.indexOf("application/x-www-form-urlencoded")>-1)return b3(t,this.formSerializer).toString();if((s=k.isFileList(t))||n.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return $l(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return a||i?(e.setContentType("application/json",!1),T3(t)):t}],transformResponse:[function(t){const e=this.transitional||tv.transitional,n=e&&e.forcedJSONParsing,i=this.responseType==="json";if(t&&k.isString(t)&&(n&&!this.responseType||i)){const o=!(e&&e.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(s){if(o)throw s.name==="SyntaxError"?ct.from(s,ct.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ye.classes.FormData,Blob:Ye.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};k.forEach(["delete","get","head","post","put","patch"],r=>{tv.headers[r]={}});const ev=tv,C3=k.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),M3=r=>{const t={};let e,n,i;return r&&r.split(` `).forEach(function(o){i=o.indexOf(":"),e=o.substring(0,i).trim().toLowerCase(),n=o.substring(i+1).trim(),!(!e||t[e]&&C3[e])&&(e==="set-cookie"?t[e]?t[e].push(n):t[e]=[n]:t[e]=t[e]?t[e]+", "+n:n)}),t},rd=Symbol("internals");function ca(r){return r&&String(r).trim().toLowerCase()}function Hs(r){return r===!1||r==null?r:k.isArray(r)?r.map(Hs):String(r)}function D3(r){const t=Object.create(null),e=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=e.exec(r);)t[n[1]]=n[2];return t}const A3=r=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(r.trim());function Bu(r,t,e,n,i){if(k.isFunction(n))return n.call(this,t,e);if(i&&(t=e),!!k.isString(t)){if(k.isString(n))return t.indexOf(n)!==-1;if(k.isRegExp(n))return n.test(t)}}function L3(r){return r.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,e,n)=>e.toUpperCase()+n)}function R3(r,t){const e=k.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(r,n+e,{value:function(i,a,o){return this[n].call(this,t,i,a,o)},configurable:!0})})}class tu{constructor(t){t&&this.set(t)}set(t,e,n){const i=this;function a(s,l,u){const f=ca(l);if(!f)throw new Error("header name must be a non-empty string");const c=k.findKey(i,f);(!c||i[c]===void 0||u===!0||u===void 0&&i[c]!==!1)&&(i[c||l]=Hs(s))}const o=(s,l)=>k.forEach(s,(u,f)=>a(u,f,l));return k.isPlainObject(t)||t instanceof this.constructor?o(t,e):k.isString(t)&&(t=t.trim())&&!A3(t)?o(M3(t),e):t!=null&&a(e,t,n),this}get(t,e){if(t=ca(t),t){const n=k.findKey(this,t);if(n){const i=this[n];if(!e)return i;if(e===!0)return D3(i);if(k.isFunction(e))return e.call(this,i,n);if(k.isRegExp(e))return e.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=ca(t),t){const n=k.findKey(this,t);return!!(n&&this[n]!==void 0&&(!e||Bu(this,this[n],n,e)))}return!1}delete(t,e){const n=this;let i=!1;function a(o){if(o=ca(o),o){const s=k.findKey(n,o);s&&(!e||Bu(n,n[s],s,e))&&(delete n[s],i=!0)}}return k.isArray(t)?t.forEach(a):a(t),i}clear(t){const e=Object.keys(this);let n=e.length,i=!1;for(;n--;){const a=e[n];(!t||Bu(this,this[a],a,t,!0))&&(delete this[a],i=!0)}return i}normalize(t){const e=this,n={};return k.forEach(this,(i,a)=>{const o=k.findKey(n,a);if(o){e[o]=Hs(i),delete e[a];return}const s=t?L3(a):String(a).trim();s!==a&&delete e[a],e[s]=Hs(i),n[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return k.forEach(this,(n,i)=>{n!=null&&n!==!1&&(e[i]=t&&k.isArray(n)?n.join(", "):n)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join(` `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach(i=>n.set(i)),n}static accessor(t){const n=(this[rd]=this[rd]={accessors:{}}).accessors,i=this.prototype;function a(o){const s=ca(o);n[s]||(R3(i,o),n[s]=!0)}return k.isArray(t)?t.forEach(a):a(t),this}}tu.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);k.reduceDescriptors(tu.prototype,({value:r},t)=>{let e=t[0].toUpperCase()+t.slice(1);return{get:()=>r,set(n){this[e]=n}}});k.freezeMethods(tu);const Rr=tu;function Gu(r,t){const e=this||ev,n=t||e,i=Rr.from(n.headers);let a=n.data;return k.forEach(r,function(s){a=s.call(e,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function g1(r){return!!(r&&r.__CANCEL__)}function Ao(r,t,e){ct.call(this,r??"canceled",ct.ERR_CANCELED,t,e),this.name="CanceledError"}k.inherits(Ao,ct,{__CANCEL__:!0});function E3(r,t,e){const n=e.config.validateStatus;!e.status||!n||n(e.status)?r(e):t(new ct("Request failed with status code "+e.status,[ct.ERR_BAD_REQUEST,ct.ERR_BAD_RESPONSE][Math.floor(e.status/100)-4],e.config,e.request,e))}const P3=Ye.isStandardBrowserEnv?function(){return{write:function(e,n,i,a,o,s){const l=[];l.push(e+"="+encodeURIComponent(n)),k.isNumber(i)&&l.push("expires="+new Date(i).toGMTString()),k.isString(a)&&l.push("path="+a),k.isString(o)&&l.push("domain="+o),s===!0&&l.push("secure"),document.cookie=l.join("; ")},read:function(e){const n=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function I3(r){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(r)}function k3(r,t){return t?r.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):r}function m1(r,t){return r&&!I3(t)?k3(r,t):t}const O3=Ye.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let n;function i(a){let o=a;return t&&(e.setAttribute("href",o),o=e.href),e.setAttribute("href",o),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:e.pathname.charAt(0)==="/"?e.pathname:"/"+e.pathname}}return n=i(window.location.href),function(o){const s=k.isString(o)?i(o):o;return s.protocol===n.protocol&&s.host===n.host}}():function(){return function(){return!0}}();function z3(r){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(r);return t&&t[1]||""}function N3(r,t){r=r||10;const e=new Array(r),n=new Array(r);let i=0,a=0,o;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),f=n[a];o||(o=u),e[i]=l,n[i]=u;let c=a,v=0;for(;c!==i;)v+=e[c++],c=c%r;if(i=(i+1)%r,i===a&&(a=(a+1)%r),u-o{const a=i.loaded,o=i.lengthComputable?i.total:void 0,s=a-e,l=n(s),u=a<=o;e=a;const f={loaded:a,total:o,progress:o?a/o:void 0,bytes:s,rate:l||void 0,estimated:l&&o&&u?(o-a)/l:void 0,event:i};f[t?"download":"upload"]=!0,r(f)}}const F3=typeof XMLHttpRequest<"u",V3=F3&&function(r){return new Promise(function(e,n){let i=r.data;const a=Rr.from(r.headers).normalize(),o=r.responseType;let s;function l(){r.cancelToken&&r.cancelToken.unsubscribe(s),r.signal&&r.signal.removeEventListener("abort",s)}k.isFormData(i)&&(Ye.isStandardBrowserEnv||Ye.isStandardBrowserWebWorkerEnv?a.setContentType(!1):a.setContentType("multipart/form-data;",!1));let u=new XMLHttpRequest;if(r.auth){const h=r.auth.username||"",p=r.auth.password?unescape(encodeURIComponent(r.auth.password)):"";a.set("Authorization","Basic "+btoa(h+":"+p))}const f=m1(r.baseURL,r.url);u.open(r.method.toUpperCase(),v1(f,r.params,r.paramsSerializer),!0),u.timeout=r.timeout;function c(){if(!u)return;const h=Rr.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders()),d={data:!o||o==="text"||o==="json"?u.responseText:u.response,status:u.status,statusText:u.statusText,headers:h,config:r,request:u};E3(function(m){e(m),l()},function(m){n(m),l()},d),u=null}if("onloadend"in u?u.onloadend=c:u.onreadystatechange=function(){!u||u.readyState!==4||u.status===0&&!(u.responseURL&&u.responseURL.indexOf("file:")===0)||setTimeout(c)},u.onabort=function(){u&&(n(new ct("Request aborted",ct.ECONNABORTED,r,u)),u=null)},u.onerror=function(){n(new ct("Network Error",ct.ERR_NETWORK,r,u)),u=null},u.ontimeout=function(){let p=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const d=r.transitional||p1;r.timeoutErrorMessage&&(p=r.timeoutErrorMessage),n(new ct(p,d.clarifyTimeoutError?ct.ETIMEDOUT:ct.ECONNABORTED,r,u)),u=null},Ye.isStandardBrowserEnv){const h=(r.withCredentials||O3(f))&&r.xsrfCookieName&&P3.read(r.xsrfCookieName);h&&a.set(r.xsrfHeaderName,h)}i===void 0&&a.setContentType(null),"setRequestHeader"in u&&k.forEach(a.toJSON(),function(p,d){u.setRequestHeader(d,p)}),k.isUndefined(r.withCredentials)||(u.withCredentials=!!r.withCredentials),o&&o!=="json"&&(u.responseType=r.responseType),typeof r.onDownloadProgress=="function"&&u.addEventListener("progress",nd(r.onDownloadProgress,!0)),typeof r.onUploadProgress=="function"&&u.upload&&u.upload.addEventListener("progress",nd(r.onUploadProgress)),(r.cancelToken||r.signal)&&(s=h=>{u&&(n(!h||h.type?new Ao(null,r,u):h),u.abort(),u=null)},r.cancelToken&&r.cancelToken.subscribe(s),r.signal&&(r.signal.aborted?s():r.signal.addEventListener("abort",s)));const v=z3(f);if(v&&Ye.protocols.indexOf(v)===-1){n(new ct("Unsupported protocol "+v+":",ct.ERR_BAD_REQUEST,r));return}u.send(i||null)})},Us={http:c3,xhr:V3};k.forEach(Us,(r,t)=>{if(r){try{Object.defineProperty(r,"name",{value:t})}catch{}Object.defineProperty(r,"adapterName",{value:t})}});const y1={getAdapter:r=>{r=k.isArray(r)?r:[r];const{length:t}=r;let e,n;for(let i=0;ir instanceof Rr?r.toJSON():r;function Xi(r,t){t=t||{};const e={};function n(u,f,c){return k.isPlainObject(u)&&k.isPlainObject(f)?k.merge.call({caseless:c},u,f):k.isPlainObject(f)?k.merge({},f):k.isArray(f)?f.slice():f}function i(u,f,c){if(k.isUndefined(f)){if(!k.isUndefined(u))return n(void 0,u,c)}else return n(u,f,c)}function a(u,f){if(!k.isUndefined(f))return n(void 0,f)}function o(u,f){if(k.isUndefined(f)){if(!k.isUndefined(u))return n(void 0,u)}else return n(void 0,f)}function s(u,f,c){if(c in t)return n(u,f);if(c in r)return n(void 0,u)}const l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(u,f)=>i(ad(u),ad(f),!0)};return k.forEach(Object.keys(Object.assign({},r,t)),function(f){const c=l[f]||i,v=c(r[f],t[f],f);k.isUndefined(v)&&c!==s||(e[f]=v)}),e}const _1="1.5.0",rv={};["object","boolean","number","function","string","symbol"].forEach((r,t)=>{rv[r]=function(n){return typeof n===r||"a"+(t<1?"n ":" ")+r}});const od={};rv.transitional=function(t,e,n){function i(a,o){return"[Axios v"+_1+"] Transitional option '"+a+"'"+o+(n?". "+n:"")}return(a,o,s)=>{if(t===!1)throw new ct(i(o," has been removed"+(e?" in "+e:"")),ct.ERR_DEPRECATED);return e&&!od[o]&&(od[o]=!0,console.warn(i(o," has been deprecated since v"+e+" and will be removed in the near future"))),t?t(a,o,s):!0}};function B3(r,t,e){if(typeof r!="object")throw new ct("options must be an object",ct.ERR_BAD_OPTION_VALUE);const n=Object.keys(r);let i=n.length;for(;i-- >0;){const a=n[i],o=t[a];if(o){const s=r[a],l=s===void 0||o(s,a,r);if(l!==!0)throw new ct("option "+a+" must be "+l,ct.ERR_BAD_OPTION_VALUE);continue}if(e!==!0)throw new ct("Unknown option "+a,ct.ERR_BAD_OPTION)}}const Dc={assertOptions:B3,validators:rv},Gr=Dc.validators;class fl{constructor(t){this.defaults=t,this.interceptors={request:new ed,response:new ed}}request(t,e){typeof t=="string"?(e=e||{},e.url=t):e=t||{},e=Xi(this.defaults,e);const{transitional:n,paramsSerializer:i,headers:a}=e;n!==void 0&&Dc.assertOptions(n,{silentJSONParsing:Gr.transitional(Gr.boolean),forcedJSONParsing:Gr.transitional(Gr.boolean),clarifyTimeoutError:Gr.transitional(Gr.boolean)},!1),i!=null&&(k.isFunction(i)?e.paramsSerializer={serialize:i}:Dc.assertOptions(i,{encode:Gr.function,serialize:Gr.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let o=a&&k.merge(a.common,a[e.method]);a&&k.forEach(["delete","get","head","post","put","patch","common"],p=>{delete a[p]}),e.headers=Rr.concat(o,a);const s=[];let l=!0;this.interceptors.request.forEach(function(d){typeof d.runWhen=="function"&&d.runWhen(e)===!1||(l=l&&d.synchronous,s.unshift(d.fulfilled,d.rejected))});const u=[];this.interceptors.response.forEach(function(d){u.push(d.fulfilled,d.rejected)});let f,c=0,v;if(!l){const p=[id.bind(this),void 0];for(p.unshift.apply(p,s),p.push.apply(p,u),v=p.length,f=Promise.resolve(e);c{if(!n._listeners)return;let a=n._listeners.length;for(;a-- >0;)n._listeners[a](i);n._listeners=null}),this.promise.then=i=>{let a;const o=new Promise(s=>{n.subscribe(s),a=s}).then(i);return o.cancel=function(){n.unsubscribe(a)},o},t(function(a,o,s){n.reason||(n.reason=new Ao(a,o,s),e(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);e!==-1&&this._listeners.splice(e,1)}static source(){let t;return{token:new nv(function(i){t=i}),cancel:t}}}const G3=nv;function H3(r){return function(e){return r.apply(null,e)}}function U3(r){return k.isObject(r)&&r.isAxiosError===!0}const Ac={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ac).forEach(([r,t])=>{Ac[t]=r});const W3=Ac;function S1(r){const t=new Ws(r),e=e1(Ws.prototype.request,t);return k.extend(e,Ws.prototype,t,{allOwnKeys:!0}),k.extend(e,t,null,{allOwnKeys:!0}),e.create=function(i){return S1(Xi(r,i))},e}const Pt=S1(ev);Pt.Axios=Ws;Pt.CanceledError=Ao;Pt.CancelToken=G3;Pt.isCancel=g1;Pt.VERSION=_1;Pt.toFormData=$l;Pt.AxiosError=ct;Pt.Cancel=Pt.CanceledError;Pt.all=function(t){return Promise.all(t)};Pt.spread=H3;Pt.isAxiosError=U3;Pt.mergeConfig=Xi;Pt.AxiosHeaders=Rr;Pt.formToJSON=r=>d1(k.isHTMLForm(r)?new FormData(r):r);Pt.getAdapter=y1.getAdapter;Pt.HttpStatusCode=W3;Pt.default=Pt;const Y3=Pt;function q3(){iv().logout(),location.reload()}function X3(){const r=Y3.create();return r.interceptors.request.use(t=>t,t=>Promise.reject(t)),r.interceptors.response.use(t=>{var a;const e=t.data,n=(a=t.request)==null?void 0:a.responseType;return n==="blob"||n==="arraybuffer"?e:e.flag===!1?Promise.reject(new Error("请求接口失败")):e},t=>{switch($w(t,"response.status")){case 400:t.message="请求错误";break;case 401:t.message="未授权,请重新登录",q3();break;case 403:t.message="拒绝访问";break;case 404:t.message="请求地址出错";break;case 408:t.message="请求超时";break;case 500:t.message="服务器内部错误";break;case 501:t.message="服务未实现";break;case 502:t.message="网关错误";break;case 503:t.message="服务不可用";break;case 504:t.message="网关超时";break;case 505:t.message="HTTP 版本不受支持";break}return Xy.error({message:t.message,duration:3e3}),Promise.reject(t)}),r}function Z3(r){return function(t){const e=Jh(),n={headers:{Authorization:e?`Bearer ${e}`:void 0,"Content-Type":"application/json"},timeout:5e3,baseURL:"/api/v1/",data:{}},i=t4(n,t);return r(i)}}const j3=X3(),b1=Z3(j3);function K3(r){return b1({url:"user/login",method:"post",data:r})}function J3(){return b1({url:"user/info",method:"get"})}const Q3=Zl("user",()=>{const r=cr(Jh()||""),t=cr([]),e=cr(""),n=Qy(),i=t1(),a=$y(),o=p=>{t.value=p},s=async({username:p,password:d,code:g})=>{const{data:m}=await K3({username:p,password:d,code:g});Fu(m.token),r.value=m.token},l=async p=>{Fu(p),r.value=p},u=async()=>{var d;const{data:p}=await J3();e.value=p.username,t.value=((d=p.roles)==null?void 0:d.length)>0?p.roles:jy.defaultRoles},f=async p=>{const d="token-"+p;r.value=d,Fu(d),await u(),n.setRoutes(t.value),jp(),n.dynamicRoutes.forEach(g=>{hr.addRoute(g)}),h()},c=()=>{Kp(),r.value="",t.value=[],jp(),h()},v=()=>{Kp(),r.value="",t.value=[]},h=()=>{a.cacheTagsView||(i.delAllVisitedViews(),i.delAllCachedViews())};return{token:r,roles:t,username:e,setRoles:o,login:s,getInfo:u,changeRoles:f,logout:c,resetToken:v,oauthLogin:l}});function iv(){return Q3(jl)}function $3(r){return{all:r=r||new Map,on:function(t,e){var n=r.get(t);n?n.push(e):r.set(t,[e])},off:function(t,e){var n=r.get(t);n&&(e?n.splice(n.indexOf(e)>>>0,1):r.set(t,[]))},emit:function(t,e){var n=r.get(t);n&&n.slice().map(function(i){i(e)}),(n=r.get("*"))&&n.slice().map(function(i){i(t,e)})}}}const Lc=$3(),Rc=Symbol("ROUTE_CHANGE");let Ec;const tx=r=>{Lc.emit(Rc,r),Ec=r};function Hk(){const r=[],t=(n,i=!1)=>{r.push(n),Lc.on(Rc,n),i&&Ec&&n(Ec)},e=n=>{Lc.off(Rc,n)};return qy(()=>{for(let n=0;n{w1.value=r?`${sd} | ${r}`:sd};ki(w1,(r,t)=>{document&&r!==t&&(document.title=r)});function rx(){return{setTitle:ex}}const nx=()=>{const r=L4();r.cachedViews=[...r.cachedViews]},ix=["/login","/callback"],ax=["OAuthCallback"],ox=r=>ix.indexOf(r.path)!==-1||ax.indexOf(r.name)!==-1;var x1={exports:{}};(function(r,t){(function(e,n){r.exports=n()})(e4,function(){var e={};e.version="0.2.0";var n=e.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};e.configure=function(p){var d,g;for(d in p)g=p[d],g!==void 0&&p.hasOwnProperty(d)&&(n[d]=g);return this},e.status=null,e.set=function(p){var d=e.isStarted();p=i(p,n.minimum,1),e.status=p===1?null:p;var g=e.render(!d),m=g.querySelector(n.barSelector),y=n.speed,_=n.easing;return g.offsetWidth,s(function(S){n.positionUsing===""&&(n.positionUsing=e.getPositioningCSS()),l(m,o(p,y,_)),p===1?(l(g,{transition:"none",opacity:1}),g.offsetWidth,setTimeout(function(){l(g,{transition:"all "+y+"ms linear",opacity:0}),setTimeout(function(){e.remove(),S()},y)},y)):setTimeout(S,y)}),this},e.isStarted=function(){return typeof e.status=="number"},e.start=function(){e.status||e.set(0);var p=function(){setTimeout(function(){e.status&&(e.trickle(),p())},n.trickleSpeed)};return n.trickle&&p(),this},e.done=function(p){return!p&&!e.status?this:e.inc(.3+.5*Math.random()).set(1)},e.inc=function(p){var d=e.status;return d?(typeof p!="number"&&(p=(1-d)*i(Math.random()*d,.1,.95)),d=i(d+p,0,.994),e.set(d)):e.start()},e.trickle=function(){return e.inc(Math.random()*n.trickleRate)},function(){var p=0,d=0;e.promise=function(g){return!g||g.state()==="resolved"?this:(d===0&&e.start(),p++,d++,g.always(function(){d--,d===0?(p=0,e.done()):e.set((p-d)/p)}),this)}}(),e.render=function(p){if(e.isRendered())return document.getElementById("nprogress");f(document.documentElement,"nprogress-busy");var d=document.createElement("div");d.id="nprogress",d.innerHTML=n.template;var g=d.querySelector(n.barSelector),m=p?"-100":a(e.status||0),y=document.querySelector(n.parent),_;return l(g,{transition:"all 0 linear",transform:"translate3d("+m+"%,0,0)"}),n.showSpinner||(_=d.querySelector(n.spinnerSelector),_&&h(_)),y!=document.body&&f(y,"nprogress-custom-parent"),y.appendChild(d),d},e.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(n.parent),"nprogress-custom-parent");var p=document.getElementById("nprogress");p&&h(p)},e.isRendered=function(){return!!document.getElementById("nprogress")},e.getPositioningCSS=function(){var p=document.body.style,d="WebkitTransform"in p?"Webkit":"MozTransform"in p?"Moz":"msTransform"in p?"ms":"OTransform"in p?"O":"";return d+"Perspective"in p?"translate3d":d+"Transform"in p?"translate":"margin"};function i(p,d,g){return pg?g:p}function a(p){return(-1+p)*100}function o(p,d,g){var m;return n.positionUsing==="translate3d"?m={transform:"translate3d("+a(p)+"%,0,0)"}:n.positionUsing==="translate"?m={transform:"translate("+a(p)+"%,0)"}:m={"margin-left":a(p)+"%"},m.transition="all "+d+"ms "+g,m}var s=function(){var p=[];function d(){var g=p.shift();g&&g(d)}return function(g){p.push(g),p.length==1&&d()}}(),l=function(){var p=["Webkit","O","Moz","ms"],d={};function g(S){return S.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(w,b){return b.toUpperCase()})}function m(S){var w=document.body.style;if(S in w)return S;for(var b=p.length,x=S.charAt(0).toUpperCase()+S.slice(1),T;b--;)if(T=p[b]+x,T in w)return T;return S}function y(S){return S=g(S),d[S]||(d[S]=m(S))}function _(S,w,b){w=y(w),S.style[w]=b}return function(S,w){var b=arguments,x,T;if(b.length==2)for(x in w)T=w[x],T!==void 0&&w.hasOwnProperty(x)&&_(S,x,T);else _(S,b[1],b[2])}}();function u(p,d){var g=typeof p=="string"?p:v(p);return g.indexOf(" "+d+" ")>=0}function f(p,d){var g=v(p),m=g+d;u(g,d)||(p.className=m.substring(1))}function c(p,d){var g=v(p),m;u(p,d)&&(m=g.replace(" "+d+" "," "),p.className=m.substring(1,m.length-1))}function v(p){return(" "+(p.className||"")+" ").replace(/\s+/gi," ")}function h(p){p&&p.parentNode&&p.parentNode.removeChild(p)}return e})})(x1);var sx=x1.exports;const Oi=r4(sx);const{setTitle:lx}=rx();Oi.configure({showSpinner:!1});hr.beforeEach(async(r,t,e)=>{nx(),Oi.start();const n=iv(),i=M4();if(Jh())if(r.path==="/login")e({path:"/"}),Oi.done();else if(n.roles.length===0)try{if(jy.async){await n.getInfo();const a=n.roles;i.setRoutes(a)}i.dynamicRoutes.forEach(a=>{hr.addRoute(a)}),e({...r,replace:!0})}catch(a){n.resetToken(),Xy.error(a.message||"路由守卫过程发生错误"),e("/login"),Oi.done()}else e();else ox(r)?e():(e("/login"),Oi.done())});hr.afterEach(r=>{tx(r)});hr.afterEach(r=>{lx(r.meta.title),Oi.done()});const ux={class:"svg-icon","aria-hidden":"true"},fx=["href"],cx=Xh({__name:"index",props:{prefix:{default:"icon"},name:{}},setup(r){const t=r,e=Vn(()=>`#${t.prefix}-${t.name}`);return(n,i)=>(Yy(),Yw("svg",ux,[qw("use",{href:e.value},null,8,fx)]))}});const hx=(r,t)=>{const e=r.__vccOpts||r;for(const[n,i]of t)e[n]=i;return e},vx=hx(cx,[["__scopeId","data-v-edefc19a"]]);if(typeof window<"u"){let r=function(){var t=document.body,e=document.getElementById("__svg__icons__dom__");e||(e=document.createElementNS("http://www.w3.org/2000/svg","svg"),e.style.position="absolute",e.style.width="0",e.style.height="0",e.id="__svg__icons__dom__",e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.setAttribute("xmlns:link","http://www.w3.org/1999/xlink")),e.innerHTML='',t.insertBefore(e,t.lastChild)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",r):r()}function px(r){r.component("SvgIcon",vx)}function dx(r){r.use(n4)}function gx(r){for(const[t,e]of Object.entries(i4))r.component(t,e)}Zh.use(a4);Zh.setup({size:"medium",zIndex:9999,version:0,loadingText:null,table:{showHeader:!0,showOverflow:"tooltip",showHeaderOverflow:"tooltip",autoResize:!0,border:"inner",emptyText:"暂无数据",rowConfig:{isHover:!0,isCurrent:!0},columnConfig:{resizable:!1},align:"center",headerAlign:"center",rowId:"_VXE_ID"},pager:{perfect:!1,pageSize:10,pagerCount:7,pageSizes:[10,20,50],layouts:["Total","PrevJump","PrevPage","Number","NextPage","NextJump","Sizes","FullJump"]},modal:{minWidth:500,minHeight:400,lockView:!0,mask:!0,dblclickZoom:!1,showTitleOverflow:!0,transfer:!0,draggable:!1}});function mx(r){r.use(Zh)}function yx(r){dx(r),gx(r),mx(r)}const _x={mounted(r,t){var i;const{value:e}=t,{roles:n}=iv();if(Array.isArray(e)&&e.length>0)n.some(o=>e.includes(o))||((i=r.parentNode)==null||i.removeChild(r));else throw new Error(`need roles! Like v-permission="['admin','editor']"`)}};function Sx(r){r.directive("permission",_x)}var Pc=function(r,t){return Pc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])},Pc(r,t)};function F(r,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Pc(r,t);function e(){this.constructor=r}r.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}var bx=function(){function r(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return r}(),xx=function(){function r(){this.browser=new bx,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<"u"}return r}(),Bn=new xx;typeof wx=="object"&&typeof wx.getSystemInfoSync=="function"?(Bn.wxa=!0,Bn.touchEventsSupported=!0):typeof document>"u"&&typeof self<"u"?Bn.worker=!0:typeof navigator>"u"||navigator.userAgent.indexOf("Node.js")===0?(Bn.node=!0,Bn.svgSupported=!0):Tx(navigator.userAgent,Bn);function Tx(r,t){var e=t.browser,n=r.match(/Firefox\/([\d.]+)/),i=r.match(/MSIE\s([\d.]+)/)||r.match(/Trident\/.+?rv:(([\d.]+))/),a=r.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(r);n&&(e.firefox=!0,e.version=n[1]),i&&(e.ie=!0,e.version=i[1]),a&&(e.edge=!0,e.version=a[1],e.newEdge=+a[1].split(".")[0]>18),o&&(e.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!e.ie&&!e.edge,t.pointerEventsSupported="onpointerdown"in window&&(e.edge||e.ie&&+e.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(e.ie&&"transition"in s||e.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||e.ie&&+e.version>=9}const nt=Bn;var av=12,Cx="sans-serif",ii=av+"px "+Cx,Mx=20,Dx=100,Ax="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function Lx(r){var t={};if(typeof JSON>"u")return t;for(var e=0;e=0)s=o*e.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",i[u]+":0",n[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),r.appendChild(o),e.push(o)}return e}function n5(r,t,e){for(var n=e?"invTrans":"trans",i=t[n],a=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=r[u].getBoundingClientRect(),c=2*u,v=f.left,h=f.top;o.push(v,h),l=l&&a&&v===a[c]&&h===a[c+1],s.push(r[u].offsetLeft,r[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=e?ud(s,o):ud(o,s))}function V1(r){return r.nodeName.toUpperCase()==="CANVAS"}var i5=/([&<>"'])/g,a5={"&":"&","<":"<",">":">",'"':""","'":"'"};function ae(r){return r==null?"":(r+"").replace(i5,function(t,e){return a5[e]})}var o5=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Wu=[],s5=nt.browser.firefox&&+nt.browser.version.split(".")[0]<39;function Nc(r,t,e,n){return e=e||{},n?cd(r,t,e):s5&&t.layerX!=null&&t.layerX!==t.offsetX?(e.zrX=t.layerX,e.zrY=t.layerY):t.offsetX!=null?(e.zrX=t.offsetX,e.zrY=t.offsetY):cd(r,t,e),e}function cd(r,t,e){if(nt.domSupported&&r.getBoundingClientRect){var n=t.clientX,i=t.clientY;if(V1(r)){var a=r.getBoundingClientRect();e.zrX=n-a.left,e.zrY=i-a.top;return}else if(zc(Wu,r,n,i)){e.zrX=Wu[0],e.zrY=Wu[1];return}}e.zrX=e.zrY=0}function pv(r){return r||window.event}function we(r,t,e){if(t=pv(t),t.zrX!=null)return t;var n=t.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&Nc(r,o,t,e)}else{Nc(r,t,t,e);var a=l5(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&o5.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function l5(r){var t=r.wheelDelta;if(t)return t;var e=r.deltaX,n=r.deltaY;if(e==null||n==null)return t;var i=Math.abs(n!==0?n:e),a=n>0?-1:n<0?1:e>0?-1:1;return 3*i*a}function u5(r,t,e,n){r.addEventListener(t,e,n)}function f5(r,t,e,n){r.removeEventListener(t,e,n)}var ai=function(r){r.preventDefault(),r.stopPropagation(),r.cancelBubble=!0};function hd(r){return r.which===2||r.which===3}var c5=function(){function r(){this._track=[]}return r.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},r.prototype.clear=function(){return this._track.length=0,this},r.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var a={points:[],touches:[],target:e,event:t},o=0,s=i.length;o1&&n&&n.length>1){var a=vd(n)/vd(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=h5(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:r[0].target,event:t}}}}};function vr(){return[1,0,0,1,0,0]}function Eo(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r}function iu(r,t){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r[4]=t[4],r[5]=t[5],r}function pr(r,t,e){var n=t[0]*e[0]+t[2]*e[1],i=t[1]*e[0]+t[3]*e[1],a=t[0]*e[2]+t[2]*e[3],o=t[1]*e[2]+t[3]*e[3],s=t[0]*e[4]+t[2]*e[5]+t[4],l=t[1]*e[4]+t[3]*e[5]+t[5];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=s,r[5]=l,r}function ao(r,t,e){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r[4]=t[4]+e[0],r[5]=t[5]+e[1],r}function Po(r,t,e,n){n===void 0&&(n=[0,0]);var i=t[0],a=t[2],o=t[4],s=t[1],l=t[3],u=t[5],f=Math.sin(e),c=Math.cos(e);return r[0]=i*c+s*f,r[1]=-i*f+s*c,r[2]=a*c+l*f,r[3]=-a*f+c*l,r[4]=c*(o-n[0])+f*(u-n[1])+n[0],r[5]=c*(u-n[1])-f*(o-n[0])+n[1],r}function dv(r,t,e){var n=e[0],i=e[1];return r[0]=t[0]*n,r[1]=t[1]*i,r[2]=t[2]*n,r[3]=t[3]*i,r[4]=t[4]*n,r[5]=t[5]*i,r}function ta(r,t){var e=t[0],n=t[2],i=t[4],a=t[1],o=t[3],s=t[5],l=e*o-a*n;return l?(l=1/l,r[0]=o*l,r[1]=-a*l,r[2]=-n*l,r[3]=e*l,r[4]=(n*s-o*i)*l,r[5]=(a*i-e*s)*l,r):null}function B1(r){var t=vr();return iu(t,r),t}const v5=Object.freeze(Object.defineProperty({__proto__:null,clone:B1,copy:iu,create:vr,identity:Eo,invert:ta,mul:pr,rotate:Po,scale:dv,translate:ao},Symbol.toStringTag,{value:"Module"}));var p5=function(){function r(t,e){this.x=t||0,this.y=e||0}return r.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},r.prototype.clone=function(){return new r(this.x,this.y)},r.prototype.set=function(t,e){return this.x=t,this.y=e,this},r.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},r.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},r.prototype.scale=function(t){this.x*=t,this.y*=t},r.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},r.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},r.prototype.dot=function(t){return this.x*t.x+this.y*t.y},r.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},r.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},r.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},r.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},r.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},r.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},r.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},r.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},r.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},r.set=function(t,e,n){t.x=e,t.y=n},r.copy=function(t,e){t.x=e.x,t.y=e.y},r.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},r.lenSquare=function(t){return t.x*t.x+t.y*t.y},r.dot=function(t,e){return t.x*e.x+t.y*e.y},r.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},r.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},r.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},r.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},r.lerp=function(t,e,n,i){var a=1-i;t.x=a*e.x+i*n.x,t.y=a*e.y+i*n.y},r}();const $=p5;var Xo=Math.min,Zo=Math.max,mn=new $,yn=new $,_n=new $,Sn=new $,ha=new $,va=new $,d5=function(){function r(t,e,n,i){n<0&&(t=t+n,n=-n),i<0&&(e=e+i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return r.prototype.union=function(t){var e=Xo(t.x,this.x),n=Xo(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Zo(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Zo(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},r.prototype.applyTransform=function(t){r.applyTransform(this,this,t)},r.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,a=vr();return ao(a,a,[-e.x,-e.y]),dv(a,a,[n,i]),ao(a,a,[t.x,t.y]),a},r.prototype.intersect=function(t,e){if(!t)return!1;t instanceof r||(t=r.create(t));var n=this,i=n.x,a=n.x+n.width,o=n.y,s=n.y+n.height,l=t.x,u=t.x+t.width,f=t.y,c=t.y+t.height,v=!(ap&&(p=_,dp&&(p=S,m=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},r.prototype.clone=function(){return new r(this.x,this.y,this.width,this.height)},r.prototype.copy=function(t){r.copy(this,t)},r.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},r.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},r.prototype.isZero=function(){return this.width===0||this.height===0},r.create=function(t){return new r(t.x,t.y,t.width,t.height)},r.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},r.applyTransform=function(t,e,n){if(!n){t!==e&&r.copy(t,e);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var i=n[0],a=n[3],o=n[4],s=n[5];t.x=e.x*i+o,t.y=e.y*a+s,t.width=e.width*i,t.height=e.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}mn.x=_n.x=e.x,mn.y=Sn.y=e.y,yn.x=Sn.x=e.x+e.width,yn.y=_n.y=e.y+e.height,mn.transform(n),Sn.transform(n),yn.transform(n),_n.transform(n),t.x=Xo(mn.x,yn.x,_n.x,Sn.x),t.y=Xo(mn.y,yn.y,_n.y,Sn.y);var l=Zo(mn.x,yn.x,_n.x,Sn.x),u=Zo(mn.y,yn.y,_n.y,Sn.y);t.width=l-t.x,t.height=u-t.y},r}();const it=d5;var G1="silent";function g5(r,t,e){return{type:r,event:e,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:e.zrX,offsetY:e.zrY,gestureEvent:e.gestureEvent,pinchX:e.pinchX,pinchY:e.pinchY,pinchScale:e.pinchScale,wheelDelta:e.zrDelta,zrByTouch:e.zrByTouch,which:e.which,stop:m5}}function m5(){ai(this.event)}var y5=function(r){F(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.handler=null,e}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(Je),pa=function(){function r(t,e){this.x=t,this.y=e}return r}(),_5=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],qu=new it(0,0,0,0),H1=function(r){F(t,r);function t(e,n,i,a,o){var s=r.call(this)||this;return s._hovered=new pa(0,0),s.storage=e,s.painter=n,s.painterRoot=a,s._pointerSize=o,i=i||new y5,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new Qx(s),s}return t.prototype.setHandlerProxy=function(e){this.proxy&&this.proxy.dispose(),e&&(C(_5,function(n){e.on&&e.on(n,this[n],this)},this),e.handler=this),this.proxy=e},t.prototype.mousemove=function(e){var n=e.zrX,i=e.zrY,a=U1(this,n,i),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=a?new pa(n,i):this.findHover(n,i),u=l.target,f=this.proxy;f.setCursor&&f.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",e),this.dispatchToElement(l,"mousemove",e),u&&u!==s&&this.dispatchToElement(l,"mouseover",e)},t.prototype.mouseout=function(e){var n=e.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",e),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:e})},t.prototype.resize=function(){this._hovered=new pa(0,0)},t.prototype.dispatch=function(e,n){var i=this[e];i&&i.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(e){var n=this.proxy;n.setCursor&&n.setCursor(e)},t.prototype.dispatchToElement=function(e,n,i){e=e||{};var a=e.target;if(!(a&&a.silent)){for(var o="on"+n,s=g5(n,e,i);a&&(a[o]&&(s.cancelBubble=!!a[o].call(a,s)),a.trigger(n,s),a=a.__hostTarget?a.__hostTarget:a.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(n,s)}))}},t.prototype.findHover=function(e,n,i){var a=this.storage.getDisplayList(),o=new pa(e,n);if(pd(a,o,e,n,i),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,f=new it(e-u,n-u,l,l),c=a.length-1;c>=0;c--){var v=a[c];v!==i&&!v.ignore&&!v.ignoreCoarsePointer&&(!v.parent||!v.parent.ignoreCoarsePointer)&&(qu.copy(v.getBoundingRect()),v.transform&&qu.applyTransform(v.transform),qu.intersect(f)&&s.push(v))}if(s.length)for(var h=4,p=Math.PI/12,d=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(a,r,t)}});function S5(r,t,e){if(r[r.rectHover?"rectContain":"contain"](t,e)){for(var n=r,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(t,e))return!1}n.silent&&(i=!0);var s=n.__hostTarget;n=s||n.parent}return i?G1:!0}return!1}function pd(r,t,e,n,i){for(var a=r.length-1;a>=0;a--){var o=r[a],s=void 0;if(o!==i&&!o.ignore&&(s=S5(o,e,n))&&(!t.topTarget&&(t.topTarget=o),s!==G1)){t.target=o;break}}}function U1(r,t,e){var n=r.painter;return t<0||t>n.getWidth()||e<0||e>n.getHeight()}const b5=H1;var W1=32,da=7;function w5(r){for(var t=0;r>=W1;)t|=r&1,r>>=1;return r+t}function dd(r,t,e,n){var i=t+1;if(i===e)return 1;if(n(r[i++],r[t])<0){for(;i=0;)i++;return i-t}function x5(r,t,e){for(e--;t>>1,i(a,r[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:r[o+3]=r[o+2];case 2:r[o+2]=r[o+1];case 1:r[o+1]=r[o];break;default:for(;u>0;)r[o+u]=r[o+u-1],u--}r[o]=a}}function Xu(r,t,e,n,i,a){var o=0,s=0,l=1;if(a(r,t[e+i])>0){for(s=n-i;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}for(o++;o>>1);a(r,t[e+f])>0?o=f+1:l=f}return l}function Zu(r,t,e,n,i,a){var o=0,s=0,l=1;if(a(r,t[e+i])<0){for(s=i+1;ls&&(l=s);var u=o;o=i-l,l=i-u}else{for(s=n-i;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=i,l+=i}for(o++;o>>1);a(r,t[e+f])<0?l=f:o=f+1}return l}function T5(r,t){var e=da,n,i,a=0,o=[];n=[],i=[];function s(h,p){n[a]=h,i[a]=p,a+=1}function l(){for(;a>1;){var h=a-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;f(h)}}function u(){for(;a>1;){var h=a-2;h>0&&i[h-1]=da||x>=da);if(T)break;w<0&&(w=0),w+=2}if(e=w,e<1&&(e=1),p===1){for(m=0;m=0;m--)r[b+m]=r[w+m];r[S]=o[_];return}for(var x=e;;){var T=0,D=0,L=!1;do if(t(o[_],r[y])<0){if(r[S--]=r[y--],T++,D=0,--p===0){L=!0;break}}else if(r[S--]=o[_--],D++,T=0,--g===1){L=!0;break}while((T|D)=0;m--)r[b+m]=r[w+m];if(p===0){L=!0;break}}if(r[S--]=o[_--],--g===1){L=!0;break}if(D=g-Xu(r[y],o,0,g,g-1,t),D!==0){for(S-=D,_-=D,g-=D,b=S+1,w=_+1,m=0;m=da||D>=da);if(L)break;x<0&&(x=0),x+=2}if(e=x,e<1&&(e=1),g===1){for(S-=p,y-=p,b=S+1,w=y+1,m=p-1;m>=0;m--)r[b+m]=r[w+m];r[S]=o[_]}else{if(g===0)throw new Error;for(w=S-(g-1),m=0;ms&&(l=s),gd(r,e,e+l,e+a,t),a=l}o.pushRun(e,a),o.mergeRuns(),i-=a,e+=a}while(i!==0);o.forceMergeRuns()}}var pe=1,za=2,Pi=4,md=!1;function ju(){md||(md=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function yd(r,t){return r.zlevel===t.zlevel?r.z===t.z?r.z2-t.z2:r.z-t.z:r.zlevel-t.zlevel}var C5=function(){function r(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=yd}return r.prototype.traverse=function(t,e){for(var n=0;n0&&(f.__clipPaths=[]),isNaN(f.z)&&(ju(),f.z=0),isNaN(f.z2)&&(ju(),f.z2=0),isNaN(f.zlevel)&&(ju(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,e,n);var v=t.getTextGuideLine();v&&this._updateAndAddDisplayable(v,e,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,e,n)}},r.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},r.prototype.delRoot=function(t){if(t instanceof Array){for(var e=0,n=t.length;e=0&&this._roots.splice(i,1)},r.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},r.prototype.getRoots=function(){return this._roots},r.prototype.dispose=function(){this._displayList=null,this._roots=null},r}();const M5=C5;var Y1;Y1=nt.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(r){return setTimeout(r,16)};const Fc=Y1;var Zs={linear:function(r){return r},quadraticIn:function(r){return r*r},quadraticOut:function(r){return r*(2-r)},quadraticInOut:function(r){return(r*=2)<1?.5*r*r:-.5*(--r*(r-2)-1)},cubicIn:function(r){return r*r*r},cubicOut:function(r){return--r*r*r+1},cubicInOut:function(r){return(r*=2)<1?.5*r*r*r:.5*((r-=2)*r*r+2)},quarticIn:function(r){return r*r*r*r},quarticOut:function(r){return 1- --r*r*r*r},quarticInOut:function(r){return(r*=2)<1?.5*r*r*r*r:-.5*((r-=2)*r*r*r-2)},quinticIn:function(r){return r*r*r*r*r},quinticOut:function(r){return--r*r*r*r*r+1},quinticInOut:function(r){return(r*=2)<1?.5*r*r*r*r*r:.5*((r-=2)*r*r*r*r+2)},sinusoidalIn:function(r){return 1-Math.cos(r*Math.PI/2)},sinusoidalOut:function(r){return Math.sin(r*Math.PI/2)},sinusoidalInOut:function(r){return .5*(1-Math.cos(Math.PI*r))},exponentialIn:function(r){return r===0?0:Math.pow(1024,r-1)},exponentialOut:function(r){return r===1?1:1-Math.pow(2,-10*r)},exponentialInOut:function(r){return r===0?0:r===1?1:(r*=2)<1?.5*Math.pow(1024,r-1):.5*(-Math.pow(2,-10*(r-1))+2)},circularIn:function(r){return 1-Math.sqrt(1-r*r)},circularOut:function(r){return Math.sqrt(1- --r*r)},circularInOut:function(r){return(r*=2)<1?-.5*(Math.sqrt(1-r*r)-1):.5*(Math.sqrt(1-(r-=2)*r)+1)},elasticIn:function(r){var t,e=.1,n=.4;return r===0?0:r===1?1:(!e||e<1?(e=1,t=n/4):t=n*Math.asin(1/e)/(2*Math.PI),-(e*Math.pow(2,10*(r-=1))*Math.sin((r-t)*(2*Math.PI)/n)))},elasticOut:function(r){var t,e=.1,n=.4;return r===0?0:r===1?1:(!e||e<1?(e=1,t=n/4):t=n*Math.asin(1/e)/(2*Math.PI),e*Math.pow(2,-10*r)*Math.sin((r-t)*(2*Math.PI)/n)+1)},elasticInOut:function(r){var t,e=.1,n=.4;return r===0?0:r===1?1:(!e||e<1?(e=1,t=n/4):t=n*Math.asin(1/e)/(2*Math.PI),(r*=2)<1?-.5*(e*Math.pow(2,10*(r-=1))*Math.sin((r-t)*(2*Math.PI)/n)):e*Math.pow(2,-10*(r-=1))*Math.sin((r-t)*(2*Math.PI)/n)*.5+1)},backIn:function(r){var t=1.70158;return r*r*((t+1)*r-t)},backOut:function(r){var t=1.70158;return--r*r*((t+1)*r+t)+1},backInOut:function(r){var t=2.5949095;return(r*=2)<1?.5*(r*r*((t+1)*r-t)):.5*((r-=2)*r*((t+1)*r+t)+2)},bounceIn:function(r){return 1-Zs.bounceOut(1-r)},bounceOut:function(r){return r<1/2.75?7.5625*r*r:r<2/2.75?7.5625*(r-=1.5/2.75)*r+.75:r<2.5/2.75?7.5625*(r-=2.25/2.75)*r+.9375:7.5625*(r-=2.625/2.75)*r+.984375},bounceInOut:function(r){return r<.5?Zs.bounceIn(r*2)*.5:Zs.bounceOut(r*2-1)*.5+.5}};const q1=Zs;var jo=Math.pow,an=Math.sqrt,pl=1e-8,X1=1e-4,_d=an(3),Ko=1/3,lr=li(),Ce=li(),Vi=li();function Qr(r){return r>-pl&&rpl||r<-pl}function It(r,t,e,n,i){var a=1-i;return a*a*(a*r+3*i*t)+i*i*(i*n+3*a*e)}function Sd(r,t,e,n,i){var a=1-i;return 3*(((t-r)*a+2*(e-t)*i)*a+(n-e)*i*i)}function dl(r,t,e,n,i,a){var o=n+3*(t-e)-r,s=3*(e-t*2+r),l=3*(t-r),u=r-i,f=s*s-3*o*l,c=s*l-9*o*u,v=l*l-3*s*u,h=0;if(Qr(f)&&Qr(c))if(Qr(s))a[0]=0;else{var p=-l/s;p>=0&&p<=1&&(a[h++]=p)}else{var d=c*c-4*f*v;if(Qr(d)){var g=c/f,p=-s/o+g,m=-g/2;p>=0&&p<=1&&(a[h++]=p),m>=0&&m<=1&&(a[h++]=m)}else if(d>0){var y=an(d),_=f*s+1.5*o*(-c+y),S=f*s+1.5*o*(-c-y);_<0?_=-jo(-_,Ko):_=jo(_,Ko),S<0?S=-jo(-S,Ko):S=jo(S,Ko);var p=(-s-(_+S))/(3*o);p>=0&&p<=1&&(a[h++]=p)}else{var w=(2*f*s-3*o*c)/(2*an(f*f*f)),b=Math.acos(w)/3,x=an(f),T=Math.cos(b),p=(-s-2*x*T)/(3*o),m=(-s+x*(T+_d*Math.sin(b)))/(3*o),D=(-s+x*(T-_d*Math.sin(b)))/(3*o);p>=0&&p<=1&&(a[h++]=p),m>=0&&m<=1&&(a[h++]=m),D>=0&&D<=1&&(a[h++]=D)}}return h}function j1(r,t,e,n,i){var a=6*e-12*t+6*r,o=9*t+3*n-3*r-9*e,s=3*t-3*r,l=0;if(Qr(o)){if(Z1(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var f=a*a-4*o*s;if(Qr(f))i[0]=-a/(2*o);else if(f>0){var c=an(f),u=(-a+c)/(2*o),v=(-a-c)/(2*o);u>=0&&u<=1&&(i[l++]=u),v>=0&&v<=1&&(i[l++]=v)}}return l}function gl(r,t,e,n,i,a){var o=(t-r)*i+r,s=(e-t)*i+t,l=(n-e)*i+e,u=(s-o)*i+o,f=(l-s)*i+s,c=(f-u)*i+u;a[0]=r,a[1]=o,a[2]=u,a[3]=c,a[4]=c,a[5]=f,a[6]=l,a[7]=n}function D5(r,t,e,n,i,a,o,s,l,u,f){var c,v=.005,h=1/0,p,d,g,m;lr[0]=l,lr[1]=u;for(var y=0;y<1;y+=.05)Ce[0]=It(r,e,i,o,y),Ce[1]=It(t,n,a,s,y),g=Jn(lr,Ce),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var f=o*o-4*a*s;if(Qr(f)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(f>0){var c=an(f),u=(-o+c)/(2*a),v=(-o-c)/(2*a);u>=0&&u<=1&&(i[l++]=u),v>=0&&v<=1&&(i[l++]=v)}}return l}function K1(r,t,e){var n=r+e-2*t;return n===0?.5:(r-t)/n}function ml(r,t,e,n,i){var a=(t-r)*n+r,o=(e-t)*n+t,s=(o-a)*n+a;i[0]=r,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=e}function R5(r,t,e,n,i,a,o,s,l){var u,f=.005,c=1/0;lr[0]=o,lr[1]=s;for(var v=0;v<1;v+=.05){Ce[0]=Ut(r,e,i,v),Ce[1]=Ut(t,n,a,v);var h=Jn(lr,Ce);h=0&&h=1?1:dl(0,n,a,1,l,s)&&It(0,i,o,1,s[0])}}}var I5=function(){function r(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||Vt,this.ondestroy=t.ondestroy||Vt,this.onrestart=t.onrestart||Vt,t.easing&&this.setEasing(t.easing)}return r.prototype.step=function(t,e){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=e;return}var n=this._life,i=t-this._startTime-this._pausedTime,a=i/n;a<0&&(a=0),a=Math.min(a,1);var o=this.easingFunc,s=o?o(a):a;if(this.onframe(s),a===1)if(this.loop){var l=i%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},r.prototype.pause=function(){this._paused=!0},r.prototype.resume=function(){this._paused=!1},r.prototype.setEasing=function(t){this.easing=t,this.easingFunc=j(t)?t:q1[t]||J1(t)},r}();const k5=I5;var Q1=function(){function r(t){this.value=t}return r}(),O5=function(){function r(){this._len=0}return r.prototype.insert=function(t){var e=new Q1(t);return this.insertEntry(e),e},r.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},r.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},r.prototype.len=function(){return this._len},r.prototype.clear=function(){this.head=this.tail=null,this._len=0},r}(),z5=function(){function r(t){this._list=new O5,this._maxSize=10,this._map={},this._maxSize=t}return r.prototype.put=function(t,e){var n=this._list,i=this._map,a=null;if(i[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=e:s=new Q1(e),s.key=t,n.insertEntry(s),i[t]=s}return a},r.prototype.get=function(t){var e=this._map[t],n=this._list;if(e!=null)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},r.prototype.clear=function(){this._list.clear(),this._map={}},r.prototype.len=function(){return this._list.len()},r}();const Io=z5;var wd={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Xe(r){return r=Math.round(r),r<0?0:r>255?255:r}function N5(r){return r=Math.round(r),r<0?0:r>360?360:r}function oo(r){return r<0?0:r>1?1:r}function Ku(r){var t=r;return t.length&&t.charAt(t.length-1)==="%"?Xe(parseFloat(t)/100*255):Xe(parseInt(t,10))}function Qn(r){var t=r;return t.length&&t.charAt(t.length-1)==="%"?oo(parseFloat(t)/100):oo(parseFloat(t))}function Ju(r,t,e){return e<0?e+=1:e>1&&(e-=1),e*6<1?r+(t-r)*e*6:e*2<1?t:e*3<2?r+(t-r)*(2/3-e)*6:r}function $r(r,t,e){return r+(t-r)*e}function be(r,t,e,n,i){return r[0]=t,r[1]=e,r[2]=n,r[3]=i,r}function Vc(r,t){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r}var $1=new Io(20),Jo=null;function gi(r,t){Jo&&Vc(Jo,t),Jo=$1.put(r,Jo||t.slice())}function se(r,t){if(r){t=t||[];var e=$1.get(r);if(e)return Vc(t,e);r=r+"";var n=r.replace(/ /g,"").toLowerCase();if(n in wd)return Vc(t,wd[n]),gi(r,t),t;var i=n.length;if(n.charAt(0)==="#"){if(i===4||i===5){var a=parseInt(n.slice(1,4),16);if(!(a>=0&&a<=4095)){be(t,0,0,0,1);return}return be(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(n.slice(4),16)/15:1),gi(r,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){be(t,0,0,0,1);return}return be(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),gi(r,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===i){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),f=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?be(t,+u[0],+u[1],+u[2],1):be(t,0,0,0,1);f=Qn(u.pop());case"rgb":if(u.length>=3)return be(t,Ku(u[0]),Ku(u[1]),Ku(u[2]),u.length===3?f:Qn(u[3])),gi(r,t),t;be(t,0,0,0,1);return;case"hsla":if(u.length!==4){be(t,0,0,0,1);return}return u[3]=Qn(u[3]),Bc(u,t),gi(r,t),t;case"hsl":if(u.length!==3){be(t,0,0,0,1);return}return Bc(u,t),gi(r,t),t;default:return}}be(t,0,0,0,1)}}function Bc(r,t){var e=(parseFloat(r[0])%360+360)%360/360,n=Qn(r[1]),i=Qn(r[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],be(t,Xe(Ju(o,a,e+1/3)*255),Xe(Ju(o,a,e)*255),Xe(Ju(o,a,e-1/3)*255),1),r.length===4&&(t[3]=r[3]),t}function F5(r){if(r){var t=r[0]/255,e=r[1]/255,n=r[2]/255,i=Math.min(t,e,n),a=Math.max(t,e,n),o=a-i,s=(a+i)/2,l,u;if(o===0)l=0,u=0;else{s<.5?u=o/(a+i):u=o/(2-a-i);var f=((a-t)/6+o/2)/o,c=((a-e)/6+o/2)/o,v=((a-n)/6+o/2)/o;t===a?l=v-c:e===a?l=1/3+f-v:n===a&&(l=2/3+c-f),l<0&&(l+=1),l>1&&(l-=1)}var h=[l*360,u,s];return r[3]!=null&&h.push(r[3]),h}}function Gc(r,t){var e=se(r);if(e){for(var n=0;n<3;n++)t<0?e[n]=e[n]*(1-t)|0:e[n]=(255-e[n])*t+e[n]|0,e[n]>255?e[n]=255:e[n]<0&&(e[n]=0);return Ze(e,e.length===4?"rgba":"rgb")}}function V5(r){var t=se(r);if(t)return((1<<24)+(t[0]<<16)+(t[1]<<8)+ +t[2]).toString(16).slice(1)}function Wa(r,t,e){if(!(!(t&&t.length)||!(r>=0&&r<=1))){e=e||[];var n=r*(t.length-1),i=Math.floor(n),a=Math.ceil(n),o=t[i],s=t[a],l=n-i;return e[0]=Xe($r(o[0],s[0],l)),e[1]=Xe($r(o[1],s[1],l)),e[2]=Xe($r(o[2],s[2],l)),e[3]=oo($r(o[3],s[3],l)),e}}var B5=Wa;function gv(r,t,e){if(!(!(t&&t.length)||!(r>=0&&r<=1))){var n=r*(t.length-1),i=Math.floor(n),a=Math.ceil(n),o=se(t[i]),s=se(t[a]),l=n-i,u=Ze([Xe($r(o[0],s[0],l)),Xe($r(o[1],s[1],l)),Xe($r(o[2],s[2],l)),oo($r(o[3],s[3],l))],"rgba");return e?{color:u,leftIndex:i,rightIndex:a,value:n}:u}}var G5=gv;function js(r,t,e,n){var i=se(r);if(r)return i=F5(i),t!=null&&(i[0]=N5(t)),e!=null&&(i[1]=Qn(e)),n!=null&&(i[2]=Qn(n)),Ze(Bc(i),"rgba")}function t2(r,t){var e=se(r);if(e&&t!=null)return e[3]=oo(t),Ze(e,"rgba")}function Ze(r,t){if(!(!r||!r.length)){var e=r[0]+","+r[1]+","+r[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(e+=","+r[3]),t+"("+e+")"}}function so(r,t){var e=se(r);return e?(.299*e[0]+.587*e[1]+.114*e[2])*e[3]/255+(1-e[3])*t:0}function H5(){return Ze([Math.round(Math.random()*255),Math.round(Math.random()*255),Math.round(Math.random()*255)],"rgb")}var xd=new Io(100);function Hc(r){if(W(r)){var t=xd.get(r);return t||(t=Gc(r,-.1),xd.put(r,t)),t}else if(Lo(r)){var e=N({},r);return e.colorStops=U(r.colorStops,function(n){return{offset:n.offset,color:Gc(n.color,-.1)}}),e}return r}const U5=Object.freeze(Object.defineProperty({__proto__:null,fastLerp:Wa,fastMapToColor:B5,lerp:gv,lift:Gc,liftColor:Hc,lum:so,mapToColor:G5,modifyAlpha:t2,modifyHSL:js,parse:se,random:H5,stringify:Ze,toHex:V5},Symbol.toStringTag,{value:"Module"}));function W5(r){return r.type==="linear"}function Y5(r){return r.type==="radial"}(function(){return nt.hasGlobalWindow&&j(window.btoa)?function(r){return window.btoa(unescape(encodeURIComponent(r)))}:typeof Buffer<"u"?function(r){return Buffer.from(r).toString("base64")}:function(r){return null}})();var Uc=Array.prototype.slice;function Tr(r,t,e){return(t-r)*e+r}function Qu(r,t,e,n){for(var i=t.length,a=0;an?t:r,a=Math.min(e,n),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so;if(s)n.length=o;else for(var l=a;l=1},r.prototype.getAdditiveTrack=function(){return this._additiveTrack},r.prototype.addKeyframe=function(t,e,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=Cd,l=e;if(qt(e)){var u=j5(e);s=u,(u===1&&!yt(e[0])||u===2&&!yt(e[0][0]))&&(o=!0)}else if(yt(e)&&!no(e))s=$o;else if(W(e))if(!isNaN(+e))s=$o;else{var f=se(e);f&&(l=f,s=Na)}else if(Lo(e)){var c=N({},l);c.colorStops=U(e.colorStops,function(h){return{offset:h.offset,color:se(h.color)}}),W5(e)?s=Wc:Y5(e)&&(s=Yc),l=c}a===0?this.valType=s:(s!==this.valType||s===Cd)&&(o=!0),this.discrete=this.discrete||o;var v={time:t,value:l,rawValue:e,percent:0};return n&&(v.easing=n,v.easingFunc=j(n)?n:q1[n]||J1(n)),i.push(v),v},r.prototype.prepare=function(t,e){var n=this.keyframes;this._needsSort&&n.sort(function(d,g){return d.time-g.time});for(var i=this.valType,a=n.length,o=n[a-1],s=this.discrete,l=ts(i),u=Md(i),f=0;f=0&&!(o[f].percent<=e);f--);f=v(f,s-2)}else{for(f=c;fe);f++);f=v(f-1,s-2)}p=o[f+1],h=o[f]}if(h&&p){this._lastFr=f,this._lastFrP=e;var g=p.percent-h.percent,m=g===0?1:v((e-h.percent)/g,1);p.easingFunc&&(m=p.easingFunc(m));var y=n?this._additiveValue:u?ga:t[l];if((ts(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:p.rawValue;else if(ts(a))a===Js?Qu(y,h[i],p[i],m):q5(y,h[i],p[i],m);else if(Md(a)){var _=h[i],S=p[i],w=a===Wc;t[l]={type:w?"linear":"radial",x:Tr(_.x,S.x,m),y:Tr(_.y,S.y,m),colorStops:U(_.colorStops,function(x,T){var D=S.colorStops[T];return{offset:Tr(x.offset,D.offset,m),color:Ks(Qu([],x.color,D.color,m))}}),global:S.global},w?(t[l].x2=Tr(_.x2,S.x2,m),t[l].y2=Tr(_.y2,S.y2,m)):t[l].r=Tr(_.r,S.r,m)}else if(u)Qu(y,h[i],p[i],m),n||(t[l]=Ks(y));else{var b=Tr(h[i],p[i],m);n?this._additiveValue=b:t[l]=b}n&&this._addToTarget(t)}}},r.prototype._addToTarget=function(t){var e=this.valType,n=this.propName,i=this._additiveValue;e===$o?t[n]=t[n]+i:e===Na?(se(t[n],ga),Qo(ga,ga,i,1),t[n]=Ks(ga)):e===Js?Qo(t[n],t[n],i,1):e===e2&&Td(t[n],t[n],i,1)},r}(),J5=function(){function r(t,e,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&i){ru("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return r.prototype.getMaxTime=function(){return this._maxTime},r.prototype.getDelay=function(){return this._delay},r.prototype.getLoop=function(){return this._loop},r.prototype.getTarget=function(){return this._target},r.prototype.changeTarget=function(t){this._target=t},r.prototype.when=function(t,e,n){return this.whenWithKeys(t,e,ht(e),n)},r.prototype.whenWithKeys=function(t,e,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Ya(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Ya(e[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},r.prototype.pause=function(){this._clip.pause(),this._paused=!0},r.prototype.resume=function(){this._clip.resume(),this._paused=!1},r.prototype.isPaused=function(){return!!this._paused},r.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},r.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var e=t.length,n=0;n0)){this._started=1;for(var e=this,n=[],i=this._maxTime||0,a=0;a1){var s=o.pop();a.addKeyframe(s.time,t[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},r}();const mv=J5;function zi(){return new Date().getTime()}var Q5=function(r){F(t,r);function t(e){var n=r.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n}return t.prototype.addClip=function(e){e.animation&&this.removeClip(e),this._head?(this._tail.next=e,e.prev=this._tail,e.next=null,this._tail=e):this._head=this._tail=e,e.animation=this},t.prototype.addAnimator=function(e){e.animation=this;var n=e.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(e){if(e.animation){var n=e.prev,i=e.next;n?n.next=i:this._head=i,i?i.prev=n:this._tail=n,e.next=e.prev=e.animation=null}},t.prototype.removeAnimator=function(e){var n=e.getClip();n&&this.removeClip(n),e.animation=null},t.prototype.update=function(e){for(var n=zi()-this._pausedTime,i=n-this._time,a=this._head;a;){var o=a.next,s=a.step(n,i);s&&(a.ondestroy(),this.removeClip(a)),a=o}this._time=n,e||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var e=this;this._running=!0;function n(){e._running&&(Fc(n),!e._paused&&e.update())}Fc(n)},t.prototype.start=function(){this._running||(this._time=zi(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=zi(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=zi()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var e=this._head;e;){var n=e.next;e.prev=e.next=e.animation=null,e=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(e,n){n=n||{},this.start();var i=new mv(e,n.loop);return this.addAnimator(i),i},t}(Je);const $5=Q5;var tT=300,$u=nt.domSupported,tf=function(){var r=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],e={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=U(r,function(i){var a=i.replace("mouse","pointer");return e.hasOwnProperty(a)?a:i});return{mouse:r,touch:t,pointer:n}}(),Dd={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},Ad=!1;function qc(r){var t=r.pointerType;return t==="pen"||t==="touch"}function eT(r){r.touching=!0,r.touchTimer!=null&&(clearTimeout(r.touchTimer),r.touchTimer=null),r.touchTimer=setTimeout(function(){r.touching=!1,r.touchTimer=null},700)}function ef(r){r&&(r.zrByTouch=!0)}function rT(r,t){return we(r.dom,new nT(r,t),!0)}function r2(r,t){for(var e=t,n=!1;e&&e.nodeType!==9&&!(n=e.domBelongToZr||e!==t&&e===r.painterRoot);)e=e.parentNode;return n}var nT=function(){function r(t,e){this.stopPropagation=Vt,this.stopImmediatePropagation=Vt,this.preventDefault=Vt,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY}return r}(),Ue={mousedown:function(r){r=we(this.dom,r),this.__mayPointerCapture=[r.zrX,r.zrY],this.trigger("mousedown",r)},mousemove:function(r){r=we(this.dom,r);var t=this.__mayPointerCapture;t&&(r.zrX!==t[0]||r.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",r)},mouseup:function(r){r=we(this.dom,r),this.__togglePointerCapture(!1),this.trigger("mouseup",r)},mouseout:function(r){r=we(this.dom,r);var t=r.toElement||r.relatedTarget;r2(this,t)||(this.__pointerCapturing&&(r.zrEventControl="no_globalout"),this.trigger("mouseout",r))},wheel:function(r){Ad=!0,r=we(this.dom,r),this.trigger("mousewheel",r)},mousewheel:function(r){Ad||(r=we(this.dom,r),this.trigger("mousewheel",r))},touchstart:function(r){r=we(this.dom,r),ef(r),this.__lastTouchMoment=new Date,this.handler.processGesture(r,"start"),Ue.mousemove.call(this,r),Ue.mousedown.call(this,r)},touchmove:function(r){r=we(this.dom,r),ef(r),this.handler.processGesture(r,"change"),Ue.mousemove.call(this,r)},touchend:function(r){r=we(this.dom,r),ef(r),this.handler.processGesture(r,"end"),Ue.mouseup.call(this,r),+new Date-+this.__lastTouchMomentEd||r<-Ed}var wn=[],mi=[],nf=vr(),af=Math.abs,uT=function(){function r(){}return r.prototype.getLocalTransform=function(t){return r.getLocalTransform(this,t)},r.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},r.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},r.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},r.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},r.prototype.needLocalTransform=function(){return bn(this.rotation)||bn(this.x)||bn(this.y)||bn(this.scaleX-1)||bn(this.scaleY-1)||bn(this.skewX)||bn(this.skewY)},r.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,e=this.needLocalTransform(),n=this.transform;if(!(e||t)){n&&(Rd(n),this.invTransform=null);return}n=n||vr(),e?this.getLocalTransform(n):Rd(n),t&&(e?pr(n,t,n):iu(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},r.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(e!=null&&e!==1){this.getGlobalScale(wn);var n=wn[0]<0?-1:1,i=wn[1]<0?-1:1,a=((wn[0]-n)*e+n)/wn[0]||0,o=((wn[1]-i)*e+i)/wn[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||vr(),ta(this.invTransform,t)},r.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},r.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),a=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(a),e=Math.sqrt(e),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=e,this.scaleY=n,this.originX=0,this.originY=0}},r.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(t.invTransform=t.invTransform||vr(),pr(mi,t.invTransform,e),e=mi);var n=this.originX,i=this.originY;(n||i)&&(nf[4]=n,nf[5]=i,pr(mi,e,nf),mi[4]-=n,mi[5]-=i,e=mi),this.setLocalTransform(e)}},r.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},r.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Ot(n,n,i),n},r.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Ot(n,n,i),n},r.prototype.getLineScale=function(){var t=this.transform;return t&&af(t[0]-1)>1e-10&&af(t[3]-1)>1e-10?Math.sqrt(af(t[0]*t[3]-t[2]*t[1])):1},r.prototype.copyTransform=function(t){fT(this,t)},r.getLocalTransform=function(t,e){e=e||[];var n=t.originX||0,i=t.originY||0,a=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,f=t.x,c=t.y,v=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var p=n+s,d=i+l;e[4]=-p*a-v*d*o,e[5]=-d*o-h*p*a}else e[4]=e[5]=0;return e[0]=a,e[3]=o,e[1]=h*a,e[2]=v*o,u&&Po(e,e,u),e[4]+=n+f,e[5]+=i+c,e},r.initDefaultProps=function(){var t=r.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),r}(),gr=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function fT(r,t){for(var e=0;e=0?parseFloat(r)/100*t:parseFloat(r):r}function _l(r,t,e){var n=t.position||"inside",i=t.distance!=null?t.distance:5,a=e.height,o=e.width,s=a/2,l=e.x,u=e.y,f="left",c="top";if(n instanceof Array)l+=mr(n[0],e.width),u+=mr(n[1],e.height),f=null,c=null;else switch(n){case"left":l-=i,u+=s,f="right",c="middle";break;case"right":l+=i+o,u+=s,c="middle";break;case"top":l+=o/2,u-=i,f="center",c="bottom";break;case"bottom":l+=o/2,u+=a+i,f="center";break;case"inside":l+=o/2,u+=s,f="center",c="middle";break;case"insideLeft":l+=i,u+=s,c="middle";break;case"insideRight":l+=o-i,u+=s,f="right",c="middle";break;case"insideTop":l+=o/2,u+=i,f="center";break;case"insideBottom":l+=o/2,u+=a-i,f="center",c="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=o-i,u+=i,f="right";break;case"insideBottomLeft":l+=i,u+=a-i,c="bottom";break;case"insideBottomRight":l+=o-i,u+=a-i,f="right",c="bottom";break}return r=r||{},r.x=l,r.y=u,r.align=f,r.verticalAlign=c,r}var of="__zr_normal__",sf=gr.concat(["ignore"]),cT=Pe(gr,function(r,t){return r[t]=!0,r},{ignore:!1}),yi={},hT=new it(0,0,0,0),Sv=function(){function r(t){this.id=lv(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return r.prototype._init=function(t){this.attr(t)},r.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},r.prototype.beforeUpdate=function(){},r.prototype.afterUpdate=function(){},r.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},r.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,a=e.innerTransformable,o=void 0,s=void 0,l=!1;a.parent=i?this:null;var u=!1;if(a.copyTransform(e),n.position!=null){var f=hT;n.layoutRect?f.copy(n.layoutRect):f.copy(this.getBoundingRect()),i||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(yi,n,f):_l(yi,n,f),a.x=yi.x,a.y=yi.y,o=yi.align,s=yi.verticalAlign;var c=n.origin;if(c&&n.rotation!=null){var v=void 0,h=void 0;c==="center"?(v=f.width*.5,h=f.height*.5):(v=mr(c[0],f.width),h=mr(c[1],f.height)),u=!0,a.originX=-a.x+v+(i?0:f.x),a.originY=-a.y+h+(i?0:f.y)}}n.rotation!=null&&(a.rotation=n.rotation);var p=n.offset;p&&(a.x+=p[0],a.y+=p[1],u||(a.originX=-p[0],a.originY=-p[1]));var d=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),m=void 0,y=void 0,_=void 0;d&&this.canBeInsideText()?(m=n.insideFill,y=n.insideStroke,(m==null||m==="auto")&&(m=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(m),_=!0)):(m=n.outsideFill,y=n.outsideStroke,(m==null||m==="auto")&&(m=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(m),_=!0)),m=m||"#000",(m!==g.fill||y!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=m,g.stroke=y,g.autoStroke=_,g.align=o,g.verticalAlign=s,e.setDefaultTextStyle(g)),e.__dirty|=pe,l&&e.dirtyStyle(!0)}},r.prototype.canBeInsideText=function(){return!0},r.prototype.getInsideTextFill=function(){return"#fff"},r.prototype.getInsideTextStroke=function(t){return"#000"},r.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Kc:jc},r.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n=typeof e=="string"&&se(e);n||(n=[255,255,255,1]);for(var i=n[3],a=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(a?0:255)*(1-i);return n[3]=1,Ze(n,"rgba")},r.prototype.traverse=function(t,e){},r.prototype.attrKV=function(t,e){t==="textConfig"?this.setTextConfig(e):t==="textContent"?this.setTextContent(e):t==="clipPath"?this.setClipPath(e):t==="extra"?(this.extra=this.extra||{},N(this.extra,e)):this[t]=e},r.prototype.hide=function(){this.ignore=!0,this.markRedraw()},r.prototype.show=function(){this.ignore=!1,this.markRedraw()},r.prototype.attr=function(t,e){if(typeof t=="string")this.attrKV(t,e);else if(q(t))for(var n=t,i=ht(n),a=0;a0},r.prototype.getState=function(t){return this.states[t]},r.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},r.prototype.clearStates=function(t){this.useState(of,!1,t)},r.prototype.useState=function(t,e,n,i){var a=t===of,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(st(s,t)>=0&&(e||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!a){ru("State "+t+" not exists.");return}a||this.saveCurrentToNormalState(u);var f=!!(u&&u.hoverLayer||i);f&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,e,!n&&!this.__inHover&&l&&l.duration>0,l);var c=this._textContent,v=this._textGuide;return c&&c.useState(t,e,n,f),v&&v.useState(t,e,n,f),a?(this.currentStates=[],this._normalState={}):e?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~pe),u}}},r.prototype.useStates=function(t,e,n){if(!t.length)this.clearStates();else{var i=[],a=this.currentStates,o=t.length,s=o===a.length;if(s){for(var l=0;l0,p);var d=this._textContent,g=this._textGuide;d&&d.useStates(t,e,v),g&&g.useStates(t,e,v),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!v&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~pe)}},r.prototype.isSilent=function(){for(var t=this.silent,e=this.parent;!t&&e;){if(e.silent){t=!0;break}e=e.parent}return t},r.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},r.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),a=st(i,t),o=st(i,e)>=0;a>=0?o?i.splice(a,1):i[a]=e:n&&!o&&i.push(e),this.useStates(i)},r.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},r.prototype._mergeStates=function(t){for(var e={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},r.prototype.updateDuringAnimation=function(t){this.markRedraw()},r.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,a=[],o=0;o0&&e.during&&a[0].during(function(p,d){e.during(d)});for(var v=0;v0||i.force&&!o.length){var T=void 0,D=void 0,L=void 0;if(s){D={},v&&(T={});for(var S=0;S<_;S++){var m=d[S];D[m]=e[m],v?T[m]=n[m]:e[m]=n[m]}}else if(v){L={};for(var S=0;S<_;S++){var m=d[S];L[m]=Ya(e[m]),pT(e,n,m)}}var w=new mv(e,!1,!1,c?Rt(p,function(A){return A.targetName===t}):null);w.targetName=t,i.scope&&(w.scope=i.scope),v&&T&&w.whenWithKeys(0,T,d),L&&w.whenWithKeys(0,L,d),w.whenWithKeys(u??500,s?D:n,d).delay(f||0),r.addAnimator(w,t),o.push(w)}}const a2=Sv;var o2=function(r){F(t,r);function t(e){var n=r.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(e),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(e){return this._children[e]},t.prototype.childOfName=function(e){for(var n=this._children,i=0;i=0&&(i.splice(a,0,e),this._doAdd(e))}return this},t.prototype.replace=function(e,n){var i=st(this._children,e);return i>=0&&this.replaceAt(n,i),this},t.prototype.replaceAt=function(e,n){var i=this._children,a=i[n];if(e&&e!==this&&e.parent!==this&&e!==a){i[n]=e,a.parent=null;var o=this.__zr;o&&a.removeSelfFromZr(o),this._doAdd(e)}return this},t.prototype._doAdd=function(e){e.parent&&e.parent.remove(e),e.parent=this;var n=this.__zr;n&&n!==e.__zr&&e.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(e){var n=this.__zr,i=this._children,a=st(i,e);return a<0?this:(i.splice(a,1),e.parent=null,n&&e.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var e=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},r.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},r.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},r.prototype.refreshHover=function(){this._needsRefreshHover=!0},r.prototype.refreshHoverImmediately=function(){this._disposed||(this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover())},r.prototype.resize=function(t){this._disposed||(t=t||{},this.painter.resize(t.width,t.height),this.handler.resize())},r.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},r.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},r.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},r.prototype.setCursorStyle=function(t){this._disposed||this.handler.setCursorStyle(t)},r.prototype.findHover=function(t,e){if(!this._disposed)return this.handler.findHover(t,e)},r.prototype.on=function(t,e,n){return this._disposed||this.handler.on(t,e,n),this},r.prototype.off=function(t,e){this._disposed||this.handler.off(t,e)},r.prototype.trigger=function(t,e){this._disposed||this.handler.trigger(t,e)},r.prototype.clear=function(){if(!this._disposed){for(var t=this.storage.getRoots(),e=0;e0){if(r<=i)return o;if(r>=a)return s}else{if(r>=i)return o;if(r<=a)return s}else{if(r===i)return o;if(r===a)return s}return(r-i)/l*u+o}function pt(r,t){switch(r){case"center":case"middle":r="50%";break;case"left":case"top":r="0%";break;case"right":case"bottom":r="100%";break}return W(r)?MT(r).match(/%$/)?parseFloat(r)/100*t:parseFloat(r):r==null?NaN:+r}function Dt(r,t,e){return t==null&&(t=10),t=Math.min(Math.max(0,t),u2),r=(+r).toFixed(t),e?r:+r}function bv(r){return r.sort(function(t,e){return t-e}),r}function qe(r){if(r=+r,isNaN(r))return 0;if(r>1e-14){for(var t=1,e=0;e<15;e++,t*=10)if(Math.round(r*t)/t===r)return e}return f2(r)}function f2(r){var t=r.toString().toLowerCase(),e=t.indexOf("e"),n=e>0?+t.slice(e+1):0,i=e>0?e:t.length,a=t.indexOf("."),o=a<0?0:i-1-a;return Math.max(0,o-n)}function c2(r,t){var e=Math.log,n=Math.LN10,i=Math.floor(e(r[1]-r[0])/n),a=Math.round(e(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-i+a,0),20);return isFinite(o)?o:20}function DT(r,t,e){if(!r[t])return 0;var n=h2(r,e);return n[t]||0}function h2(r,t){var e=Pe(r,function(h,p){return h+(isNaN(p)?0:p)},0);if(e===0)return[];for(var n=Math.pow(10,t),i=U(r,function(h){return(isNaN(h)?0:h)/e*n*100}),a=n*100,o=U(i,function(h){return Math.floor(h)}),s=Pe(o,function(h,p){return h+p},0),l=U(i,function(h,p){return h-o[p]});su&&(u=l[c],f=c);++o[f],l[f]=0,++s}return U(o,function(h){return h/n})}function AT(r,t){var e=Math.max(qe(r),qe(t)),n=r+t;return e>u2?n:Dt(n,e)}var LT=9007199254740991;function wv(r){var t=Math.PI*2;return(r%t+t)%t}function lo(r){return r>-kd&&r=10&&t++,t}function xv(r,t){var e=au(r),n=Math.pow(10,e),i=r/n,a;return t?i<1.5?a=1:i<2.5?a=2:i<4?a=3:i<7?a=5:a=10:i<1?a=1:i<2?a=2:i<3?a=3:i<5?a=5:a=10,r=a*n,e>=-20?+r.toFixed(e<0?-e:0):r}function ET(r,t){var e=(r.length-1)*t+1,n=Math.floor(e),i=+r[n-1],a=e-n;return a?i+a*(r[n]-i):i}function $c(r){r.sort(function(l,u){return s(l,u,0)?-1:1});for(var t=-1/0,e=1,n=0;n=0||a&&st(a,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[r[s][0]]=u)}}return o}}var r6=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],n6=ho(r6),i6=function(){function r(){}return r.prototype.getAreaStyle=function(t,e){return n6(this,t,e)},r}(),th=new Io(50);function a6(r){if(typeof r=="string"){var t=th.get(r);return t&&t.image}else return r}function w2(r,t,e,n,i){if(r)if(typeof r=="string"){if(t&&t.__zrImageSrc===r||!e)return t;var a=th.get(r),o={hostEl:e,cb:n,cbPayload:i};return a?(t=a.image,!su(t)&&a.pending.push(o)):(t=Ir.loadImage(r,Fd,Fd),t.__zrImageSrc=r,th.put(r,t.__cachedImgObj={image:t,pending:[o]})),t}else return r;else return t}function Fd(){var r=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t{d.value=!0,X(u).then(a=>{const{pageSize:t,pageNum:m,total:s,pages:v,list:S}=a.data;f.value=S,w.value=t,y.value=v,C.value=m,h.value=s}).catch(()=>{f.value=[]}).finally(()=>{d.value=!1})};_();const x=c();function R(a,t){Y(a,t).then(m=>{})}function T(){const a=[];for(const t of x.value)a.push(t.agentId);W.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{D({type:"success",message:"删除成功"}),d.value=!0,ee(a.join(",")).then(()=>{_()}).finally(()=>{d.value=!1})}).catch(()=>{D({type:"info",message:"删除取消"})})}const q=a=>{x.value=a},E=a=>{u.pageSize=a,_()},j=a=>{u.pageNum=a,_()},M=a=>{};function P(){const a=i.hostname,t=i.state;if(t=="-1"&&a==""){_();return}te(a,t).then(m=>{const s=m.data;f.value=s.list,w.value=s.pageSize,y.value=s.pages,C.value=s.pageNum,h.value=s.total}).catch(()=>{f.value=[],w.value=0,y.value=0,C.value=0,h.value=0})}const L=()=>{i.hostname="",i.state="-1"};return(a,t)=>{const m=n("el-input"),s=n("el-form-item"),v=n("el-option"),S=n("el-select"),b=n("el-button"),$=n("el-form"),V=n("el-card"),F=n("el-tooltip"),r=n("el-table-column"),H=n("el-switch"),J=n("el-table"),K=n("el-pagination"),N=se("loading");return z(),ie("div",pe,[U((z(),A(V,{class:"search-wrapper"},{default:o(()=>[p("div",null,[e($,{ref:"searchFormRef",inline:!0,model:i},{default:o(()=>[e(s,{prop:"hostname",label:"服务器名称"},{default:o(()=>[e(m,{modelValue:i.hostname,"onUpdate:modelValue":t[0]||(t[0]=l=>i.hostname=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(s,{prop:"state",label:"状态"},{default:o(()=>[e(S,{modelValue:i.state,"onUpdate:modelValue":t[1]||(t[1]=l=>i.state=l),style:{width:"84px"}},{default:o(()=>[e(v,{label:"所有",value:"-1"}),e(v,{label:"在线",value:"1"}),e(v,{label:"离线",value:"0"})]),_:1},8,["modelValue"])]),_:1}),e(s,null,{default:o(()=>[e(b,{type:"primary",icon:g(O),onClick:t[2]||(t[2]=l=>P())},{default:o(()=>[k("查询")]),_:1},8,["icon"]),e(b,{icon:g(Z),onClick:L},{default:o(()=>[k("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])])]),_:1})),[[N,d.value]]),U((z(),A(V,null,{default:o(()=>[p("div",de,[p("div",null,[e(b,{type:"danger",icon:g(G),onClick:T},{default:o(()=>[k("批量删除")]),_:1},8,["icon"])]),p("div",null,[e(F,{content:"刷新当前页"},{default:o(()=>[e(b,{type:"primary",icon:g(Q),circle:"",onClick:_},null,8,["icon"])]),_:1})])]),p("div",_e,[e(J,{ref:"multipleTableRef",data:f.value,border:"",style:{width:"100%"},"default-sort":{prop:"timestamp",order:"descending"},onSelectionChange:q,onRowClick:M},{default:o(()=>[e(r,{type:"selection",width:"55"}),e(r,{label:"ID",prop:"agentId",width:"320"}),e(r,{width:"240",prop:"hostname",label:"服务器名称",sortable:""}),e(r,{label:"应用路径",prop:"serverPath"}),e(r,{label:"Agent版本",prop:"version",width:"100"}),e(r,{label:"JDK",prop:"jdkVersion",width:"80"}),e(r,{prop:"state",width:"120",label:"运行状态",align:"center",sortable:""},{default:o(l=>[p("span",{class:re(g(ae)(l.row.state))},ce(g(le)(l.row.state)),3)]),_:1}),e(r,{prop:"state",width:"120",label:"检测状态",align:"center",sortable:""},{default:o(l=>[e(H,{modelValue:l.row.detectionStatus,"onUpdate:modelValue":B=>l.row.detectionStatus=B,"active-value":1,"inactive-value":0,"active-color":"#13ce66","inactive-color":"#ff4949",onClick:B=>R(l.row.agentId,l.row.detectionStatus)},null,8,["modelValue","onUpdate:modelValue","onClick"])]),_:1}),e(r,{prop:"timestamp",width:"200",label:"最近活跃时间",sortable:""})]),_:1},8,["data"])]),p("div",me,[e(K,{"current-page":u.pageNum,"onUpdate:currentPage":t[3]||(t[3]=l=>u.pageNum=l),"page-size":u.pageSize,"onUpdate:pageSize":t[4]||(t[4]=l=>u.pageSize=l),"page-sizes":[10,20,50,100],small:!1,disabled:I.value,background:!0,layout:"total, sizes, prev, pager, next, jumper",total:h.value,onSizeChange:E,onCurrentChange:j},null,8,["current-page","page-size","disabled","total"])])]),_:1})),[[N,d.value]])])}}});const ze=ue(ge,[["__scopeId","data-v-21b580fc"]]);export{ze as default}; +import{x as O,r as Z,z as G,A as Q,B as W,E as D}from"./element-0afb0e99.js";import{n as X,u as Y,o as ee,p as te}from"./index-8fe9da41.js";import{a as ae,g as le}from"./state-c5255287.js";import{p as oe,r as c,Z as ne,ai as n,aq as se,q as z,t as ie,P as U,M as A,O as o,v as p,U as e,u as g,S as k,I as re,T as ce}from"./vue-956193f0.js";/* empty css */import{_ as ue}from"./index-5b4830db.js";import"./vxe-78a23074.js";const pe={class:"app-container"},de={class:"toolbar-wrapper"},_e={class:"table-wrapper"},me={class:"demo-pagination-block"},ge=oe({__name:"index",setup(fe){const d=c(!1),I=c(!1),f=c(),w=c(10),C=c(1),y=c(0),h=c(0),u={pageSize:20,pageNum:1},i=ne({hostname:"",state:"-1"}),_=()=>{d.value=!0,X(u).then(a=>{const{pageSize:t,pageNum:m,total:s,pages:v,list:S}=a.data;f.value=S,w.value=t,y.value=v,C.value=m,h.value=s}).catch(()=>{f.value=[]}).finally(()=>{d.value=!1})};_();const x=c();function R(a,t){Y(a,t).then(m=>{})}function T(){const a=[];for(const t of x.value)a.push(t.agentId);W.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{D({type:"success",message:"删除成功"}),d.value=!0,ee(a.join(",")).then(()=>{_()}).finally(()=>{d.value=!1})}).catch(()=>{D({type:"info",message:"删除取消"})})}const q=a=>{x.value=a},E=a=>{u.pageSize=a,_()},j=a=>{u.pageNum=a,_()},M=a=>{};function P(){const a=i.hostname,t=i.state;if(t=="-1"&&a==""){_();return}te(a,t).then(m=>{const s=m.data;f.value=s.list,w.value=s.pageSize,y.value=s.pages,C.value=s.pageNum,h.value=s.total}).catch(()=>{f.value=[],w.value=0,y.value=0,C.value=0,h.value=0})}const L=()=>{i.hostname="",i.state="-1"};return(a,t)=>{const m=n("el-input"),s=n("el-form-item"),v=n("el-option"),S=n("el-select"),b=n("el-button"),$=n("el-form"),V=n("el-card"),F=n("el-tooltip"),r=n("el-table-column"),H=n("el-switch"),J=n("el-table"),K=n("el-pagination"),N=se("loading");return z(),ie("div",pe,[U((z(),A(V,{class:"search-wrapper"},{default:o(()=>[p("div",null,[e($,{ref:"searchFormRef",inline:!0,model:i},{default:o(()=>[e(s,{prop:"hostname",label:"服务器名称"},{default:o(()=>[e(m,{modelValue:i.hostname,"onUpdate:modelValue":t[0]||(t[0]=l=>i.hostname=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(s,{prop:"state",label:"状态"},{default:o(()=>[e(S,{modelValue:i.state,"onUpdate:modelValue":t[1]||(t[1]=l=>i.state=l),style:{width:"84px"}},{default:o(()=>[e(v,{label:"所有",value:"-1"}),e(v,{label:"在线",value:"1"}),e(v,{label:"离线",value:"0"})]),_:1},8,["modelValue"])]),_:1}),e(s,null,{default:o(()=>[e(b,{type:"primary",icon:g(O),onClick:t[2]||(t[2]=l=>P())},{default:o(()=>[k("查询")]),_:1},8,["icon"]),e(b,{icon:g(Z),onClick:L},{default:o(()=>[k("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])])]),_:1})),[[N,d.value]]),U((z(),A(V,null,{default:o(()=>[p("div",de,[p("div",null,[e(b,{type:"danger",icon:g(G),onClick:T},{default:o(()=>[k("批量删除")]),_:1},8,["icon"])]),p("div",null,[e(F,{content:"刷新当前页"},{default:o(()=>[e(b,{type:"primary",icon:g(Q),circle:"",onClick:_},null,8,["icon"])]),_:1})])]),p("div",_e,[e(J,{ref:"multipleTableRef",data:f.value,border:"",style:{width:"100%"},"default-sort":{prop:"timestamp",order:"descending"},onSelectionChange:q,onRowClick:M},{default:o(()=>[e(r,{type:"selection",width:"55"}),e(r,{label:"ID",prop:"agentId",width:"320"}),e(r,{width:"240",prop:"hostname",label:"服务器名称",sortable:""}),e(r,{label:"应用路径",prop:"serverPath"}),e(r,{label:"Agent版本",prop:"version",width:"100"}),e(r,{label:"JDK",prop:"jdkVersion",width:"80"}),e(r,{prop:"state",width:"120",label:"运行状态",align:"center",sortable:""},{default:o(l=>[p("span",{class:re(g(ae)(l.row.state))},ce(g(le)(l.row.state)),3)]),_:1}),e(r,{prop:"state",width:"120",label:"检测状态",align:"center",sortable:""},{default:o(l=>[e(H,{modelValue:l.row.detectionStatus,"onUpdate:modelValue":B=>l.row.detectionStatus=B,"active-value":1,"inactive-value":0,"active-color":"#13ce66","inactive-color":"#ff4949",onClick:B=>R(l.row.agentId,l.row.detectionStatus)},null,8,["modelValue","onUpdate:modelValue","onClick"])]),_:1}),e(r,{prop:"timestamp",width:"200",label:"最近活跃时间",sortable:""})]),_:1},8,["data"])]),p("div",me,[e(K,{"current-page":u.pageNum,"onUpdate:currentPage":t[3]||(t[3]=l=>u.pageNum=l),"page-size":u.pageSize,"onUpdate:pageSize":t[4]||(t[4]=l=>u.pageSize=l),"page-sizes":[10,20,50,100],small:!1,disabled:I.value,background:!0,layout:"total, sizes, prev, pager, next, jumper",total:h.value,onSizeChange:E,onCurrentChange:j},null,8,["current-page","page-size","disabled","total"])])]),_:1})),[[N,d.value]])])}}});const ze=ue(ge,[["__scopeId","data-v-21b580fc"]]);export{ze as default}; diff --git a/docker/frontend/web/dist/static/index-75229342.js b/docker/frontend/web/dist/static/index-b19b4669.js similarity index 91% rename from docker/frontend/web/dist/static/index-75229342.js rename to docker/frontend/web/dist/static/index-b19b4669.js index 6a616b4..c28249f 100644 --- a/docker/frontend/web/dist/static/index-75229342.js +++ b/docker/frontend/web/dist/static/index-b19b4669.js @@ -1 +1 @@ -import{p as b,aE as y,r as u,Z as V,ai as r,q as S,t as k,U as o,v as n,O as l,u as f,a2 as I,S as C,a9 as q,aH as E,aI as F}from"./vue-956193f0.js";import{d as M,_ as R}from"./index-35ab6744.js";import{t as U,v as z,E as g}from"./element-0afb0e99.js";import{_ as B}from"./index.vue_vue_type_script_setup_true_lang-497f09e5.js";import"./vxe-78a23074.js";const K=t=>(E("data-v-ec7c88b2"),t=t(),F(),t),N={class:"login-container"},T={class:"login-card"},A=K(()=>n("div",{class:"title"},[n("span",{class:"custom-text"},"SimpleIAST")],-1)),D={class:"content"},H=b({__name:"index",setup(t){const v=y(),p=u(null),i=u(!1);u("");const e=V({username:"admin",password:"",code:""}),x={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,max:16,message:"长度在 6 到 16 个字符",trigger:"blur"}],code:[{required:!0,message:"请输入验证码",trigger:"blur"}]},m=()=>{var d;(d=p.value)==null||d.validate((s,a)=>{s?(i.value=!0,M().login(e).then(()=>{v.push({path:"/"}),g.success("登录成功")}).catch(()=>{g.error("登录失败"),e.password=""}).finally(()=>{i.value=!1})):console.error("表单校验不通过",a)})};return(d,s)=>{const a=r("el-input"),_=r("el-form-item"),h=r("el-button"),w=r("el-form");return S(),k("div",N,[o(B,{class:"theme-switch"}),n("div",T,[A,n("div",D,[o(w,{ref_key:"loginFormRef",ref:p,model:e,rules:x,onKeyup:q(m,["enter"])},{default:l(()=>[o(_,{prop:"username"},{default:l(()=>[o(a,{modelValue:e.username,"onUpdate:modelValue":s[0]||(s[0]=c=>e.username=c),modelModifiers:{trim:!0},placeholder:"用户名",type:"text",tabindex:"1","prefix-icon":f(U),size:"large"},null,8,["modelValue","prefix-icon"])]),_:1}),o(_,{prop:"password"},{default:l(()=>[o(a,{modelValue:e.password,"onUpdate:modelValue":s[1]||(s[1]=c=>e.password=c),modelModifiers:{trim:!0},placeholder:"密码",type:"password",tabindex:"2","prefix-icon":f(z),size:"large","show-password":""},null,8,["modelValue","prefix-icon"])]),_:1}),o(h,{loading:i.value,type:"primary",size:"large",onClick:I(m,["prevent"])},{default:l(()=>[C("登 录")]),_:1},8,["loading","onClick"])]),_:1},8,["model","onKeyup"])])])])}}});const G=R(H,[["__scopeId","data-v-ec7c88b2"]]);export{G as default}; +import{p as b,aE as y,r as u,Z as V,ai as r,q as S,t as k,U as o,v as n,O as l,u as f,a2 as I,S as C,a9 as q,aH as E,aI as F}from"./vue-956193f0.js";import{d as M,_ as R}from"./index-5b4830db.js";import{t as U,v as z,E as g}from"./element-0afb0e99.js";import{_ as B}from"./index.vue_vue_type_script_setup_true_lang-9363a53d.js";import"./vxe-78a23074.js";const K=t=>(E("data-v-ec7c88b2"),t=t(),F(),t),N={class:"login-container"},T={class:"login-card"},A=K(()=>n("div",{class:"title"},[n("span",{class:"custom-text"},"SimpleIAST")],-1)),D={class:"content"},H=b({__name:"index",setup(t){const v=y(),p=u(null),i=u(!1);u("");const e=V({username:"admin",password:"",code:""}),x={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,max:16,message:"长度在 6 到 16 个字符",trigger:"blur"}],code:[{required:!0,message:"请输入验证码",trigger:"blur"}]},m=()=>{var d;(d=p.value)==null||d.validate((s,a)=>{s?(i.value=!0,M().login(e).then(()=>{v.push({path:"/"}),g.success("登录成功")}).catch(()=>{g.error("登录失败"),e.password=""}).finally(()=>{i.value=!1})):console.error("表单校验不通过",a)})};return(d,s)=>{const a=r("el-input"),_=r("el-form-item"),h=r("el-button"),w=r("el-form");return S(),k("div",N,[o(B,{class:"theme-switch"}),n("div",T,[A,n("div",D,[o(w,{ref_key:"loginFormRef",ref:p,model:e,rules:x,onKeyup:q(m,["enter"])},{default:l(()=>[o(_,{prop:"username"},{default:l(()=>[o(a,{modelValue:e.username,"onUpdate:modelValue":s[0]||(s[0]=c=>e.username=c),modelModifiers:{trim:!0},placeholder:"用户名",type:"text",tabindex:"1","prefix-icon":f(U),size:"large"},null,8,["modelValue","prefix-icon"])]),_:1}),o(_,{prop:"password"},{default:l(()=>[o(a,{modelValue:e.password,"onUpdate:modelValue":s[1]||(s[1]=c=>e.password=c),modelModifiers:{trim:!0},placeholder:"密码",type:"password",tabindex:"2","prefix-icon":f(z),size:"large","show-password":""},null,8,["modelValue","prefix-icon"])]),_:1}),o(h,{loading:i.value,type:"primary",size:"large",onClick:I(m,["prevent"])},{default:l(()=>[C("登 录")]),_:1},8,["loading","onClick"])]),_:1},8,["model","onKeyup"])])])])}}});const G=R(H,[["__scopeId","data-v-ec7c88b2"]]);export{G as default}; diff --git a/docker/frontend/web/dist/static/index-a31f151a.js b/docker/frontend/web/dist/static/index-d504c852.js similarity index 95% rename from docker/frontend/web/dist/static/index-a31f151a.js rename to docker/frontend/web/dist/static/index-d504c852.js index d6e3b43..d84b7a5 100644 --- a/docker/frontend/web/dist/static/index-a31f151a.js +++ b/docker/frontend/web/dist/static/index-d504c852.js @@ -1 +1 @@ -import{v as ve,t as ge,w as we,x as be,q as he}from"./index-46bdc1ae.js";import{x as ye,r as Ce,z as De,C as ke,A as Se,B as Ve,E as R,D as xe}from"./element-0afb0e99.js";import{p as Ie,r as f,aE as Ne,Z as ze,ai as s,aq as Re,q as d,t as q,P as j,M as g,O as t,v as h,U as e,F as $,a8 as F,u as m,S as i,I as Te,T as y,R as H}from"./vue-956193f0.js";import{v as Le,b as Ue,a as W,c as Be}from"./level-61112490.js";import{e as Ae,f as qe,_ as Ee}from"./index-35ab6744.js";import{H as Q,p as Me,W as Z,a as Oe,b as Pe}from"./level.css_vue_type_style_index_0_src_true_lang-509bbc79.js";import"./vxe-78a23074.js";const je={class:"app-container"},$e={class:"toolbar-wrapper"},Fe={class:"table-wrapper"},He={class:"demo-pagination-block"},We=Ie({__name:"index",setup(Qe){const C=f(!1),J=Ne(),K=f(!1),V=f(),T=f(10),L=f(1),U=f(0),N=f(0),w={pageSize:20,pageNum:1},c=ze({agentId:"",level:0}),D=()=>{C.value=!0,ve(w).then(l=>{const{pageSize:n,pageNum:r,total:o,pages:p,list:u}=l.data;V.value=u,T.value=n,U.value=p,L.value=r,N.value=o}).catch(()=>{V.value=[]}).finally(()=>{C.value=!1})};function G(){ge().then(l=>{A.value=l.data})}function k(l){const n=JSON.parse(l),r=n.vulnerableType;if(r==Q)return Me(n)[0];if(r==Z)return Oe(n)[0];{const o=n.flowData,p=Pe(o),u=p.length;return p[u-1]}}function B(l){return l==Q?2:l==Z?3:1}const E=f(),A=f();function X(l){E.value=l}function M(l){Ve.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{C.value=!0,we(l).then(()=>{R({type:"success",message:"删除成功"}),D()}).finally(()=>{C.value=!1})}).catch(()=>{R({type:"info",message:"删除出错"})})}function Y(){const l=[];for(const n of E.value)l.push(n.id);M(l.join(","))}function ee(){const l="/api/v1/report/export",n=Ae();qe({method:"get",baseURL:l,data:{},headers:{Authorization:n?`Bearer ${n}`:void 0},responseType:"blob"}).then(r=>{const o=r.data;if(!o)return;const p=window.URL.createObjectURL(new Blob([o])),u=document.createElement("a");u.style.display="none",u.href=p,u.setAttribute("download","report-"+Be()+".json"),document.body.appendChild(u),u.click(),window.URL.revokeObjectURL(u.href),document.body.removeChild(u)}).catch(r=>{R.error("导出失败,原因:"+r)})}const te=l=>{J.push(`/vuln/detail/${l}`)},ae=l=>{w.pageSize=l,D()},le=l=>{w.pageNum=l,D()},ne=()=>{const l=c.agentId,n=c.level;if(l==null||l==""&&n==0){D();return}be(l,n).then(r=>{const o=r.data;V.value=o.list,T.value=o.pageSize,U.value=o.pages,L.value=o.pageNum,N.value=o.total}).catch(()=>{V.value=[],T.value=0,U.value=0,L.value=0,N.value=0})},oe=()=>{c.agentId="",c.level=0};function se(l,n){he(l,n).then(()=>{let r=A.value.find(o=>o.statusId===n);R.success("漏洞状态已切换成"+r.statusName)}).catch(r=>{xe(r)})}return D(),G(),(l,n)=>{const r=s("el-input"),o=s("el-form-item"),p=s("el-option"),u=s("el-select"),x=s("el-button"),re=s("el-form"),O=s("el-card"),S=s("el-tooltip"),b=s("el-table-column"),ue=s("el-link"),_=s("el-col"),I=s("el-text"),z=s("el-row"),de=s("More"),ie=s("el-icon"),ce=s("el-dropdown-item"),pe=s("el-dropdown-menu"),_e=s("el-dropdown"),fe=s("el-table"),me=s("el-pagination"),P=Re("loading");return d(),q("div",je,[j((d(),g(O,{shadow:"never",class:"search-wrapper"},{default:t(()=>[h("div",null,[e(re,{ref:"searchFormRef",inline:!0,model:c},{default:t(()=>[e(o,{prop:"url",label:"应用ID"},{default:t(()=>[e(r,{modelValue:c.agentId,"onUpdate:modelValue":n[0]||(n[0]=a=>c.agentId=a),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(o,{prop:"level",label:"漏洞等级"},{default:t(()=>[e(u,{modelValue:c.level,"onUpdate:modelValue":n[1]||(n[1]=a=>c.level=a),style:{width:"80px"}},{default:t(()=>[(d(!0),q($,null,F(m(Le),a=>(d(),g(p,{label:m(W)(a.value),value:a.value,key:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(o,null,{default:t(()=>[e(x,{type:"primary",icon:m(ye),onClick:ne},{default:t(()=>[i("查询")]),_:1},8,["icon"]),e(x,{icon:m(Ce),onClick:oe},{default:t(()=>[i("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])])]),_:1})),[[P,C.value]]),j((d(),g(O,{shadow:"never"},{default:t(()=>[h("div",$e,[h("div",null,[e(x,{type:"danger",icon:m(De),onClick:Y},{default:t(()=>[i("批量删除")]),_:1},8,["icon"])]),h("div",null,[e(S,{content:"导出报告"},{default:t(()=>[e(x,{type:"primary",icon:m(ke),circle:"",onClick:ee},null,8,["icon"])]),_:1}),e(S,{content:"刷新当前页"},{default:t(()=>[e(x,{type:"primary",icon:m(Se),circle:"",onClick:D},null,8,["icon"])]),_:1})])]),h("div",Fe,[e(fe,{ref:"multipleTableRef",data:V.value,style:{width:"100%"},onSelectionChange:X},{default:t(()=>[e(b,{type:"selection",width:"55"}),e(b,{prop:"level",label:"漏洞等级",width:"120",sortable:""},{default:t(a=>[h("span",{class:Te(m(Ue)(a.row.level))},y(m(W)(a.row.level)),3)]),_:1}),e(b,{label:"漏洞概述",align:"left",width:"600"},{default:t(a=>[e(_,null,{default:t(()=>[e(z,{span:5},{default:t(()=>[e(_,{span:8},{default:t(()=>[e(ue,{type:"primary",onClick:v=>te(a.row.id)},{default:t(()=>[i(y(a.row.vulnerableTypeZH),1)]),_:2},1032,["onClick"])]),_:2},1024),e(_,{span:16},{default:t(()=>[e(I,null,{default:t(()=>[i("keypoint")]),_:1})]),_:1})]),_:2},1024),B(a.row.vulnerableType)==1?(d(),g(z,{key:0,span:15},{default:t(()=>[e(_,{span:8},{default:t(()=>[e(S,{content:a.row.uri,placement:"bottom-end"},{default:t(()=>[e(I,{truncated:"",class:"v-descrption"},{default:t(()=>[i(y(a.row.requestMethod)+" "+y(a.row.uri),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024),e(_,{span:16},{default:t(()=>[e(S,{placement:"bottom-end",content:k(a.row.findingData).sign},{default:t(()=>[e(I,{truncated:"",class:"v-descrption"},{default:t(()=>[i(y(k(a.row.findingData).sign),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:2},1024)):B(a.row.vulnerableType)==2?(d(),g(z,{key:1,span:15},{default:t(()=>[e(_,{span:8}),e(_,{span:16},{default:t(()=>[e(S,{placement:"bottom-end",content:k(a.row.findingData).className},{default:t(()=>[e(I,{truncated:"",class:"v-descrption"},{default:t(()=>[i(y(k(a.row.findingData).className),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:2},1024)):B(a.row.vulnerableType)==3?(d(),g(z,{key:2,span:15},{default:t(()=>[e(_,{span:8}),e(_,{span:16},{default:t(()=>[e(S,{placement:"bottom-end",content:k(a.row.findingData).url},{default:t(()=>[e(I,{truncated:"",class:"v-descrption"},{default:t(()=>[i(y(k(a.row.findingData).url),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:2},1024)):H("",!0)]),_:2},1024)]),_:1}),e(b,{label:"服务器名",prop:"agent.hostname",sortable:""}),e(b,{label:"最近上报时间",prop:"lastTimestamp",sortable:""}),e(b,{width:"160",label:"状态",prop:"status.statusName",sortable:""},{default:t(a=>[a?(d(),g(u,{key:0,modelValue:a.row.status.statusId,"onUpdate:modelValue":v=>a.row.status.statusId=v,onChange:v=>se(a.row.id,a.row.status.statusId)},{default:t(()=>[(d(!0),q($,null,F(A.value,v=>(d(),g(p,{label:v.statusName,value:v.statusId,key:v.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])):H("",!0)]),_:1}),e(b,{label:"选项",prop:""},{default:t(a=>[e(_e,null,{dropdown:t(()=>[e(pe,null,{default:t(()=>[e(ce,{onClick:v=>M(a.row.id)},{default:t(()=>[i("删除")]),_:2},1032,["onClick"])]),_:2},1024)]),default:t(()=>[e(ie,{style:{cursor:"pointer"}},{default:t(()=>[e(de)]),_:1})]),_:2},1024)]),_:1})]),_:1},8,["data"])]),h("div",He,[e(me,{"current-page":w.pageNum,"onUpdate:currentPage":n[2]||(n[2]=a=>w.pageNum=a),"page-size":w.pageSize,"onUpdate:pageSize":n[3]||(n[3]=a=>w.pageSize=a),"page-sizes":[10,20,50,100],small:!1,disabled:K.value,background:!0,layout:"total, sizes, prev, pager, next, jumper",total:N.value,onSizeChange:ae,onCurrentChange:le},null,8,["current-page","page-size","disabled","total"])])]),_:1})),[[P,C.value]])])}}});const tt=Ee(We,[["__scopeId","data-v-28bc8ace"]]);export{tt as default}; +import{v as ve,t as ge,w as we,x as be,q as he}from"./index-8fe9da41.js";import{x as ye,r as Ce,z as De,C as ke,A as Se,B as Ve,E as R,D as xe}from"./element-0afb0e99.js";import{p as Ie,r as f,aE as Ne,Z as ze,ai as s,aq as Re,q as d,t as q,P as j,M as g,O as t,v as h,U as e,F as $,a8 as F,u as m,S as i,I as Te,T as y,R as H}from"./vue-956193f0.js";import{v as Le,b as Ue,a as W,c as Be}from"./level-61112490.js";import{e as Ae,f as qe,_ as Ee}from"./index-5b4830db.js";import{H as Q,p as Me,W as Z,a as Oe,b as Pe}from"./level.css_vue_type_style_index_0_src_true_lang-5c282ff5.js";import"./vxe-78a23074.js";const je={class:"app-container"},$e={class:"toolbar-wrapper"},Fe={class:"table-wrapper"},He={class:"demo-pagination-block"},We=Ie({__name:"index",setup(Qe){const C=f(!1),J=Ne(),K=f(!1),V=f(),T=f(10),L=f(1),U=f(0),N=f(0),w={pageSize:20,pageNum:1},c=ze({agentId:"",level:0}),D=()=>{C.value=!0,ve(w).then(l=>{const{pageSize:n,pageNum:r,total:o,pages:p,list:u}=l.data;V.value=u,T.value=n,U.value=p,L.value=r,N.value=o}).catch(()=>{V.value=[]}).finally(()=>{C.value=!1})};function G(){ge().then(l=>{A.value=l.data})}function k(l){const n=JSON.parse(l),r=n.vulnerableType;if(r==Q)return Me(n)[0];if(r==Z)return Oe(n)[0];{const o=n.flowData,p=Pe(o),u=p.length;return p[u-1]}}function B(l){return l==Q?2:l==Z?3:1}const E=f(),A=f();function X(l){E.value=l}function M(l){Ve.confirm("确定删除?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",center:!0}).then(()=>{C.value=!0,we(l).then(()=>{R({type:"success",message:"删除成功"}),D()}).finally(()=>{C.value=!1})}).catch(()=>{R({type:"info",message:"删除出错"})})}function Y(){const l=[];for(const n of E.value)l.push(n.id);M(l.join(","))}function ee(){const l="/api/v1/report/export",n=Ae();qe({method:"get",baseURL:l,data:{},headers:{Authorization:n?`Bearer ${n}`:void 0},responseType:"blob"}).then(r=>{const o=r.data;if(!o)return;const p=window.URL.createObjectURL(new Blob([o])),u=document.createElement("a");u.style.display="none",u.href=p,u.setAttribute("download","report-"+Be()+".json"),document.body.appendChild(u),u.click(),window.URL.revokeObjectURL(u.href),document.body.removeChild(u)}).catch(r=>{R.error("导出失败,原因:"+r)})}const te=l=>{J.push(`/vuln/detail/${l}`)},ae=l=>{w.pageSize=l,D()},le=l=>{w.pageNum=l,D()},ne=()=>{const l=c.agentId,n=c.level;if(l==null||l==""&&n==0){D();return}be(l,n).then(r=>{const o=r.data;V.value=o.list,T.value=o.pageSize,U.value=o.pages,L.value=o.pageNum,N.value=o.total}).catch(()=>{V.value=[],T.value=0,U.value=0,L.value=0,N.value=0})},oe=()=>{c.agentId="",c.level=0};function se(l,n){he(l,n).then(()=>{let r=A.value.find(o=>o.statusId===n);R.success("漏洞状态已切换成"+r.statusName)}).catch(r=>{xe(r)})}return D(),G(),(l,n)=>{const r=s("el-input"),o=s("el-form-item"),p=s("el-option"),u=s("el-select"),x=s("el-button"),re=s("el-form"),O=s("el-card"),S=s("el-tooltip"),b=s("el-table-column"),ue=s("el-link"),_=s("el-col"),I=s("el-text"),z=s("el-row"),de=s("More"),ie=s("el-icon"),ce=s("el-dropdown-item"),pe=s("el-dropdown-menu"),_e=s("el-dropdown"),fe=s("el-table"),me=s("el-pagination"),P=Re("loading");return d(),q("div",je,[j((d(),g(O,{shadow:"never",class:"search-wrapper"},{default:t(()=>[h("div",null,[e(re,{ref:"searchFormRef",inline:!0,model:c},{default:t(()=>[e(o,{prop:"url",label:"应用ID"},{default:t(()=>[e(r,{modelValue:c.agentId,"onUpdate:modelValue":n[0]||(n[0]=a=>c.agentId=a),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(o,{prop:"level",label:"漏洞等级"},{default:t(()=>[e(u,{modelValue:c.level,"onUpdate:modelValue":n[1]||(n[1]=a=>c.level=a),style:{width:"80px"}},{default:t(()=>[(d(!0),q($,null,F(m(Le),a=>(d(),g(p,{label:m(W)(a.value),value:a.value,key:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(o,null,{default:t(()=>[e(x,{type:"primary",icon:m(ye),onClick:ne},{default:t(()=>[i("查询")]),_:1},8,["icon"]),e(x,{icon:m(Ce),onClick:oe},{default:t(()=>[i("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])])]),_:1})),[[P,C.value]]),j((d(),g(O,{shadow:"never"},{default:t(()=>[h("div",$e,[h("div",null,[e(x,{type:"danger",icon:m(De),onClick:Y},{default:t(()=>[i("批量删除")]),_:1},8,["icon"])]),h("div",null,[e(S,{content:"导出报告"},{default:t(()=>[e(x,{type:"primary",icon:m(ke),circle:"",onClick:ee},null,8,["icon"])]),_:1}),e(S,{content:"刷新当前页"},{default:t(()=>[e(x,{type:"primary",icon:m(Se),circle:"",onClick:D},null,8,["icon"])]),_:1})])]),h("div",Fe,[e(fe,{ref:"multipleTableRef",data:V.value,style:{width:"100%"},onSelectionChange:X},{default:t(()=>[e(b,{type:"selection",width:"55"}),e(b,{prop:"level",label:"漏洞等级",width:"120",sortable:""},{default:t(a=>[h("span",{class:Te(m(Ue)(a.row.level))},y(m(W)(a.row.level)),3)]),_:1}),e(b,{label:"漏洞概述",align:"left",width:"600"},{default:t(a=>[e(_,null,{default:t(()=>[e(z,{span:5},{default:t(()=>[e(_,{span:8},{default:t(()=>[e(ue,{type:"primary",onClick:v=>te(a.row.id)},{default:t(()=>[i(y(a.row.vulnerableTypeZH),1)]),_:2},1032,["onClick"])]),_:2},1024),e(_,{span:16},{default:t(()=>[e(I,null,{default:t(()=>[i("keypoint")]),_:1})]),_:1})]),_:2},1024),B(a.row.vulnerableType)==1?(d(),g(z,{key:0,span:15},{default:t(()=>[e(_,{span:8},{default:t(()=>[e(S,{content:a.row.uri,placement:"bottom-end"},{default:t(()=>[e(I,{truncated:"",class:"v-descrption"},{default:t(()=>[i(y(a.row.requestMethod)+" "+y(a.row.uri),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024),e(_,{span:16},{default:t(()=>[e(S,{placement:"bottom-end",content:k(a.row.findingData).sign},{default:t(()=>[e(I,{truncated:"",class:"v-descrption"},{default:t(()=>[i(y(k(a.row.findingData).sign),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:2},1024)):B(a.row.vulnerableType)==2?(d(),g(z,{key:1,span:15},{default:t(()=>[e(_,{span:8}),e(_,{span:16},{default:t(()=>[e(S,{placement:"bottom-end",content:k(a.row.findingData).className},{default:t(()=>[e(I,{truncated:"",class:"v-descrption"},{default:t(()=>[i(y(k(a.row.findingData).className),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:2},1024)):B(a.row.vulnerableType)==3?(d(),g(z,{key:2,span:15},{default:t(()=>[e(_,{span:8}),e(_,{span:16},{default:t(()=>[e(S,{placement:"bottom-end",content:k(a.row.findingData).url},{default:t(()=>[e(I,{truncated:"",class:"v-descrption"},{default:t(()=>[i(y(k(a.row.findingData).url),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:2},1024)):H("",!0)]),_:2},1024)]),_:1}),e(b,{label:"服务器名",prop:"agent.hostname",sortable:""}),e(b,{label:"最近上报时间",prop:"lastTimestamp",sortable:""}),e(b,{width:"160",label:"状态",prop:"status.statusName",sortable:""},{default:t(a=>[a?(d(),g(u,{key:0,modelValue:a.row.status.statusId,"onUpdate:modelValue":v=>a.row.status.statusId=v,onChange:v=>se(a.row.id,a.row.status.statusId)},{default:t(()=>[(d(!0),q($,null,F(A.value,v=>(d(),g(p,{label:v.statusName,value:v.statusId,key:v.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])):H("",!0)]),_:1}),e(b,{label:"选项",prop:""},{default:t(a=>[e(_e,null,{dropdown:t(()=>[e(pe,null,{default:t(()=>[e(ce,{onClick:v=>M(a.row.id)},{default:t(()=>[i("删除")]),_:2},1032,["onClick"])]),_:2},1024)]),default:t(()=>[e(ie,{style:{cursor:"pointer"}},{default:t(()=>[e(de)]),_:1})]),_:2},1024)]),_:1})]),_:1},8,["data"])]),h("div",He,[e(me,{"current-page":w.pageNum,"onUpdate:currentPage":n[2]||(n[2]=a=>w.pageNum=a),"page-size":w.pageSize,"onUpdate:pageSize":n[3]||(n[3]=a=>w.pageSize=a),"page-sizes":[10,20,50,100],small:!1,disabled:K.value,background:!0,layout:"total, sizes, prev, pager, next, jumper",total:N.value,onSizeChange:ae,onCurrentChange:le},null,8,["current-page","page-size","disabled","total"])])]),_:1})),[[P,C.value]])])}}});const tt=Ee(We,[["__scopeId","data-v-28bc8ace"]]);export{tt as default}; diff --git a/docker/frontend/web/dist/static/index.vue_vue_type_script_setup_true_lang-497f09e5.js b/docker/frontend/web/dist/static/index.vue_vue_type_script_setup_true_lang-9363a53d.js similarity index 92% rename from docker/frontend/web/dist/static/index.vue_vue_type_script_setup_true_lang-497f09e5.js rename to docker/frontend/web/dist/static/index.vue_vue_type_script_setup_true_lang-9363a53d.js index 84188f0..740adce 100644 --- a/docker/frontend/web/dist/static/index.vue_vue_type_script_setup_true_lang-497f09e5.js +++ b/docker/frontend/web/dist/static/index.vue_vue_type_script_setup_true_lang-9363a53d.js @@ -1 +1 @@ -import{h as k}from"./index-35ab6744.js";import{w as g}from"./element-0afb0e99.js";import{p as h,ai as o,q as l,M as m,O as e,U as n,t as C,a8 as v,u as t,F as x,v as s,T as B}from"./vue-956193f0.js";const V=h({__name:"index",setup(T){const{themeList:c,activeThemeName:d,setTheme:r}=k();return(b,N)=>{const _=o("el-icon"),i=o("el-tooltip"),p=o("el-dropdown-item"),u=o("el-dropdown-menu"),f=o("el-dropdown");return l(),m(f,{trigger:"click",onCommand:t(r)},{dropdown:e(()=>[n(u,null,{default:e(()=>[(l(!0),C(x,null,v(t(c),(a,w)=>(l(),m(p,{key:w,disabled:t(d)===a.name,command:a.name},{default:e(()=>[s("span",null,B(a.title),1)]),_:2},1032,["disabled","command"]))),128))]),_:1})]),default:e(()=>[s("div",null,[n(i,{effect:"dark",content:"主题模式",placement:"bottom"},{default:e(()=>[n(_,{size:20},{default:e(()=>[n(t(g))]),_:1})]),_:1})])]),_:1},8,["onCommand"])}}});export{V as _}; +import{h as k}from"./index-5b4830db.js";import{w as g}from"./element-0afb0e99.js";import{p as h,ai as o,q as l,M as m,O as e,U as n,t as C,a8 as v,u as t,F as x,v as s,T as B}from"./vue-956193f0.js";const V=h({__name:"index",setup(T){const{themeList:c,activeThemeName:d,setTheme:r}=k();return(b,N)=>{const _=o("el-icon"),i=o("el-tooltip"),p=o("el-dropdown-item"),u=o("el-dropdown-menu"),f=o("el-dropdown");return l(),m(f,{trigger:"click",onCommand:t(r)},{dropdown:e(()=>[n(u,null,{default:e(()=>[(l(!0),C(x,null,v(t(c),(a,w)=>(l(),m(p,{key:w,disabled:t(d)===a.name,command:a.name},{default:e(()=>[s("span",null,B(a.title),1)]),_:2},1032,["disabled","command"]))),128))]),_:1})]),default:e(()=>[s("div",null,[n(i,{effect:"dark",content:"主题模式",placement:"bottom"},{default:e(()=>[n(_,{size:20},{default:e(()=>[n(t(g))]),_:1})]),_:1})])]),_:1},8,["onCommand"])}}});export{V as _}; diff --git a/docker/frontend/web/dist/static/level.css_vue_type_style_index_0_src_true_lang-509bbc79.js b/docker/frontend/web/dist/static/level.css_vue_type_style_index_0_src_true_lang-509bbc79.js deleted file mode 100644 index be00d69..0000000 --- a/docker/frontend/web/dist/static/level.css_vue_type_style_index_0_src_true_lang-509bbc79.js +++ /dev/null @@ -1 +0,0 @@ -function N(a){let s=[];return a.forEach(e=>{const u=`${e.className.substring(e.className.lastIndexOf("/")+1)}.${e.method}()`,r=e.toValue||e.fromValue;let t=!1;const l=[{name:"className",label:"类名:",value:e.className},{name:"method",label:"方法名:",value:e.method},{name:"desc",label:"方法描述:",value:e.desc},{name:"taint",label:"污染参数:",value:r},{name:"stack",label:"调用栈:",value:e.stackList}];e.sanitizerNodes&&(l.push({name:"sanitizer",label:"过滤函数",value:e.sanitizerNodes}),t=!0),s.push({label:c(e.stage),sign:u,children:l,taint:r,isSanitizer:t})}),s}function m(a){let s=[],e={className:a.className,parameterName:a.parameterName,parameterValue:a.parameterValue,sourceFile:a.sourceFile};return s.push(e),s}function _(a){let s=[],e={className:a.className,method:a.parameterName,desc:a.parameterValue,user:a.detail.user,url:a.detail.url,password:a.detail.password};return s.push(e),s}function c(a){return a=="SOURCE"?"污染源":a=="PROPAGATION"?"传播阶段":a=="SINK"?"漏洞触发阶段":a=="SANITIZER"?"过滤阶段":"未知"}const n="HARD_CODE",p="WEAK_PASSWORD_IN_SQL";export{n as H,p as W,_ as a,N as b,m as p}; diff --git a/docker/frontend/web/dist/static/level.css_vue_type_style_index_0_src_true_lang-5c282ff5.js b/docker/frontend/web/dist/static/level.css_vue_type_style_index_0_src_true_lang-5c282ff5.js new file mode 100644 index 0000000..8cb4428 --- /dev/null +++ b/docker/frontend/web/dist/static/level.css_vue_type_style_index_0_src_true_lang-5c282ff5.js @@ -0,0 +1 @@ +function h(s){let e=[];return s.forEach(a=>{const l=`${a.className.substring(a.className.lastIndexOf("/")+1)}.${a.method}()`,u=a.toValue||a.fromValue;let r=!1;const t=[{name:"className",label:"类名",value:a.className,show:!0},{name:"method",label:"方法名",value:a.method,show:!0},{name:"desc",label:"方法描述",value:a.desc,show:!0}];a.flowPaths&&a.flowPaths.length>0&&(t.push({name:"from",label:"污点来源",value:a.flowPaths[0].fromObject,show:!1},{name:"to",label:"污点去向",value:a.flowPaths[0].toObject,show:!1}),a.stage=="SINK"?t.push({name:"taint",label:"污点",value:a.flowPaths[0].fromObject,show:!0}):t.push({name:"taint",label:"污点",value:a.flowPaths[0].toObject,show:!0})),a.sanitizerNodes&&(t.push({name:"sanitizer",label:"过滤函数",value:a.sanitizerNodes,show:!0}),r=!0),t.push({name:"stack",label:"调用栈",value:a.stackList,show:!0}),e.push({label:o(a.stage),sign:l,children:t,taint:u,isSanitizer:r})}),e}function p(s){let e=[],a={className:s.className,parameterName:s.parameterName,parameterValue:s.parameterValue,sourceFile:s.sourceFile};return e.push(a),e}function N(s){let e=[],a={className:s.className,method:s.parameterName,desc:s.parameterValue,user:s.detail.user,url:s.detail.url,password:s.detail.password};return e.push(a),e}function o(s){return s=="SOURCE"?"污染源":s=="PROPAGATION"?"传播阶段":s=="SINK"?"漏洞触发阶段":s=="SANITIZER"?"过滤阶段":"未知"}const i="HARD_CODE",m="WEAK_PASSWORD_IN_SQL";export{i as H,m as W,N as a,h as b,p}; diff --git a/docker/frontend/web/dist/static/noticeHistory-4f56bad4.js b/docker/frontend/web/dist/static/noticeHistory-14b776ce.js similarity index 94% rename from docker/frontend/web/dist/static/noticeHistory-4f56bad4.js rename to docker/frontend/web/dist/static/noticeHistory-14b776ce.js index 525cc18..9095986 100644 --- a/docker/frontend/web/dist/static/noticeHistory-4f56bad4.js +++ b/docker/frontend/web/dist/static/noticeHistory-14b776ce.js @@ -1 +1 @@ -import{A as V}from"./element-0afb0e99.js";import{r as P,D as T}from"./index-46bdc1ae.js";import{p as U,r as o,Z as A,ai as s,aq as E,q as d,t as b,P as j,M as f,O as n,v as _,U as a,u as I,R as L,S as h,T as M}from"./vue-956193f0.js";import{_ as O}from"./index-35ab6744.js";import"./vxe-78a23074.js";const Z={class:"app-container"},$={class:"toolbar-wrapper"},F={style:{float:"right"}},G={class:"table-wrapper"},J={key:0,class:"red-dot"},K={class:"pager-wrapper"},Q=U({name:"ElementPlus",__name:"noticeHistory",setup(W){o();const u=o(),C=o(10),z=o(1),N=o(0),y=o(0),l={pageSize:20,pageNum:1},g=o(!1),S=e=>{l.pageSize=e,c()};function k(e){P(e).then().catch(()=>{}),c()}const c=()=>{g.value=!0,T(l).then(e=>{const{pageSize:i,pageNum:p,total:m,pages:v,list:r}=e.data;u.value=r,C.value=i,N.value=v,z.value=p,y.value=m}).catch(()=>{u.value=[]}).finally(()=>{g.value=!1})};c(),A({operatorName:""});const w=o();function x(e){w.value=e}const R=e=>{l.pageNum=e,c()};return(e,i)=>{const p=s("el-button"),m=s("el-tooltip"),v=s("el-text"),r=s("el-table-column"),q=s("el-table"),D=s("el-pagination"),B=s("el-card"),H=E("loading");return d(),b("div",Z,[j((d(),f(B,{shadow:"never"},{default:n(()=>[_("div",$,[_("div",F,[a(m,{content:"刷新当前页"},{default:n(()=>[a(p,{type:"primary",icon:I(V),circle:"",onClick:c},null,8,["icon"])]),_:1})])]),_("div",G,[a(q,{data:u.value,onSelectionChange:x},{default:n(()=>[a(r,{label:"通知标题",align:"center"},{default:n(t=>[t.row.isRead===0?(d(),b("div",J)):L("",!0),a(v,null,{default:n(()=>[h(M(t.row.title),1)]),_:2},1024)]),_:1}),a(r,{prop:"description",label:"描述",align:"center"}),a(r,{prop:"datetime",label:"时间",align:"center"}),a(r,{prop:"isRead",label:"功能",align:"center"},{default:n(t=>[t.row.isRead===0?(d(),f(p,{key:0,type:"success",round:"",onClick:X=>k(t.row.id)},{default:n(()=>[h("设为已读")]),_:2},1032,["onClick"])):(d(),f(p,{key:1,type:"success",round:""},{default:n(()=>[h("查看")]),_:1}))]),_:1})]),_:1},8,["data"])]),_("div",K,[a(D,{background:"","current-page":l.pageNum,"onUpdate:currentPage":i[0]||(i[0]=t=>l.pageNum=t),"page-size":l.pageSize,"onUpdate:pageSize":i[1]||(i[1]=t=>l.pageSize=t),"page-sizes":[10,20,50,100],small:!1,layout:"total, sizes, prev, pager, next, jumper",total:y.value,onSizeChange:S,onCurrentChange:R},null,8,["current-page","page-size","total"])])]),_:1})),[[H,g.value]])])}}});const ne=O(Q,[["__scopeId","data-v-68dd70b0"]]);export{ne as default}; +import{A as V}from"./element-0afb0e99.js";import{r as P,D as T}from"./index-8fe9da41.js";import{p as U,r as o,Z as A,ai as s,aq as E,q as d,t as b,P as j,M as f,O as n,v as _,U as a,u as I,R as L,S as h,T as M}from"./vue-956193f0.js";import{_ as O}from"./index-5b4830db.js";import"./vxe-78a23074.js";const Z={class:"app-container"},$={class:"toolbar-wrapper"},F={style:{float:"right"}},G={class:"table-wrapper"},J={key:0,class:"red-dot"},K={class:"pager-wrapper"},Q=U({name:"ElementPlus",__name:"noticeHistory",setup(W){o();const u=o(),C=o(10),z=o(1),N=o(0),y=o(0),l={pageSize:20,pageNum:1},g=o(!1),S=e=>{l.pageSize=e,c()};function k(e){P(e).then().catch(()=>{}),c()}const c=()=>{g.value=!0,T(l).then(e=>{const{pageSize:i,pageNum:p,total:m,pages:v,list:r}=e.data;u.value=r,C.value=i,N.value=v,z.value=p,y.value=m}).catch(()=>{u.value=[]}).finally(()=>{g.value=!1})};c(),A({operatorName:""});const w=o();function x(e){w.value=e}const R=e=>{l.pageNum=e,c()};return(e,i)=>{const p=s("el-button"),m=s("el-tooltip"),v=s("el-text"),r=s("el-table-column"),q=s("el-table"),D=s("el-pagination"),B=s("el-card"),H=E("loading");return d(),b("div",Z,[j((d(),f(B,{shadow:"never"},{default:n(()=>[_("div",$,[_("div",F,[a(m,{content:"刷新当前页"},{default:n(()=>[a(p,{type:"primary",icon:I(V),circle:"",onClick:c},null,8,["icon"])]),_:1})])]),_("div",G,[a(q,{data:u.value,onSelectionChange:x},{default:n(()=>[a(r,{label:"通知标题",align:"center"},{default:n(t=>[t.row.isRead===0?(d(),b("div",J)):L("",!0),a(v,null,{default:n(()=>[h(M(t.row.title),1)]),_:2},1024)]),_:1}),a(r,{prop:"description",label:"描述",align:"center"}),a(r,{prop:"datetime",label:"时间",align:"center"}),a(r,{prop:"isRead",label:"功能",align:"center"},{default:n(t=>[t.row.isRead===0?(d(),f(p,{key:0,type:"success",round:"",onClick:X=>k(t.row.id)},{default:n(()=>[h("设为已读")]),_:2},1032,["onClick"])):(d(),f(p,{key:1,type:"success",round:""},{default:n(()=>[h("查看")]),_:1}))]),_:1})]),_:1},8,["data"])]),_("div",K,[a(D,{background:"","current-page":l.pageNum,"onUpdate:currentPage":i[0]||(i[0]=t=>l.pageNum=t),"page-size":l.pageSize,"onUpdate:pageSize":i[1]||(i[1]=t=>l.pageSize=t),"page-sizes":[10,20,50,100],small:!1,layout:"total, sizes, prev, pager, next, jumper",total:y.value,onSizeChange:S,onCurrentChange:R},null,8,["current-page","page-size","total"])])]),_:1})),[[H,g.value]])])}}});const ne=O(Q,[["__scopeId","data-v-68dd70b0"]]);export{ne as default}; diff --git a/docker/frontend/web/dist/static/operationLog-d361cf84.js b/docker/frontend/web/dist/static/operationLog-fdbfb6f8.js similarity index 96% rename from docker/frontend/web/dist/static/operationLog-d361cf84.js rename to docker/frontend/web/dist/static/operationLog-fdbfb6f8.js index 2daa063..74323b9 100644 --- a/docker/frontend/web/dist/static/operationLog-d361cf84.js +++ b/docker/frontend/web/dist/static/operationLog-fdbfb6f8.js @@ -1 +1 @@ -import{x as F,r as O,F as R,A as M}from"./element-0afb0e99.js";import{C as Z,m as G}from"./index-46bdc1ae.js";import{p as H,r as c,Z as J,ai as t,aq as K,q as S,t as Q,P,M as V,O as a,U as e,u as f,S as z,v,T as W}from"./vue-956193f0.js";import{_ as X}from"./index-35ab6744.js";import"./vxe-78a23074.js";const Y={class:"app-container"},$={class:"toolbar-wrapper"},ee={style:{float:"right"}},ae={class:"table-wrapper"},te={class:"pager-wrapper"},oe=H({name:"ElementPlus",__name:"operationLog",setup(ne){const u=c(),h=c(10),b=c(1),w=c(0),d=c(0),r={pageSize:20,pageNum:1},m=c(!1),B=o=>{r.pageSize=o,_()},_=()=>{m.value=!0,Z(r).then(o=>{const{pageSize:n,pageNum:C,total:g,pages:i,list:y}=o.data;u.value=y,h.value=n,w.value=i,b.value=C,d.value=g}).catch(()=>{u.value=[]}).finally(()=>{m.value=!1})};_();const s=J({operatorName:""}),D=()=>{s.operatorName=""},I=c();function L(o){I.value=o}const U=o=>{r.pageNum=o,_()};function T(){if(s.username==null||s.username==""){_();return}G(s.username).then(o=>{u.value=[o.data],h.value=1,w.value=1,b.value=1,d.value=1}).catch(()=>{u.value=[],h.value=0,w.value=0,b.value=0,d.value=0})}return(o,n)=>{const C=t("el-input"),g=t("el-form-item"),i=t("el-button"),y=t("el-form"),x=t("el-card"),N=t("el-tooltip"),p=t("el-table-column"),q=t("el-text"),A=t("el-row"),j=t("el-table"),E=t("el-pagination"),k=K("loading");return S(),Q("div",Y,[P((S(),V(x,{shadow:"never",class:"search-wrapper"},{default:a(()=>[e(y,{ref:"searchFormRef",inline:!0,model:s},{default:a(()=>[e(g,{prop:"username",label:"操作者账号"},{default:a(()=>[e(C,{modelValue:s.operatorName,"onUpdate:modelValue":n[0]||(n[0]=l=>s.operatorName=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(g,null,{default:a(()=>[e(i,{type:"primary",icon:f(F),onClick:T},{default:a(()=>[z("查询")]),_:1},8,["icon"]),e(i,{icon:f(O),onClick:D},{default:a(()=>[z("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])]),_:1})),[[k,m.value]]),P((S(),V(x,{shadow:"never"},{default:a(()=>[v("div",$,[v("div",ee,[e(N,{content:"下载"},{default:a(()=>[e(i,{type:"primary",icon:f(R),circle:""},null,8,["icon"])]),_:1}),e(N,{content:"刷新当前页"},{default:a(()=>[e(i,{type:"primary",icon:f(M),circle:"",onClick:_},null,8,["icon"])]),_:1})])]),v("div",ae,[e(j,{data:u.value,onSelectionChange:L},{default:a(()=>[e(p,{prop:"content",label:"动作名",align:"center"}),e(p,{prop:"operatorName",label:"操作用户",align:"center",sortable:""}),e(p,{prop:"operationParam",label:"操作参数",align:"center"}),e(p,{prop:"ipAddress",label:"IP",align:"center"}),e(p,{prop:"deviceInfo",label:"User-Agent",align:"center"},{default:a(l=>[e(A,{class:"w-400px mb-2"},{default:a(()=>[e(N,{content:l.row.deviceInfo,placement:"top-end"},{default:a(()=>[e(q,{truncated:""},{default:a(()=>[z(W(l.row.deviceInfo),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:1}),e(p,{prop:"operationTime",fixed:"right",label:"时间",width:"150",align:"center"})]),_:1},8,["data"])]),v("div",te,[e(E,{background:"","current-page":r.pageNum,"onUpdate:currentPage":n[1]||(n[1]=l=>r.pageNum=l),"page-size":r.pageSize,"onUpdate:pageSize":n[2]||(n[2]=l=>r.pageSize=l),"page-sizes":[10,20,50,100],small:!1,layout:"total, sizes, prev, pager, next, jumper",total:d.value,onSizeChange:B,onCurrentChange:U},null,8,["current-page","page-size","total"])])]),_:1})),[[k,m.value]])])}}});const pe=X(oe,[["__scopeId","data-v-7236c719"]]);export{pe as default}; +import{x as F,r as O,F as R,A as M}from"./element-0afb0e99.js";import{C as Z,m as G}from"./index-8fe9da41.js";import{p as H,r as c,Z as J,ai as t,aq as K,q as S,t as Q,P,M as V,O as a,U as e,u as f,S as z,v,T as W}from"./vue-956193f0.js";import{_ as X}from"./index-5b4830db.js";import"./vxe-78a23074.js";const Y={class:"app-container"},$={class:"toolbar-wrapper"},ee={style:{float:"right"}},ae={class:"table-wrapper"},te={class:"pager-wrapper"},oe=H({name:"ElementPlus",__name:"operationLog",setup(ne){const u=c(),h=c(10),b=c(1),w=c(0),d=c(0),r={pageSize:20,pageNum:1},m=c(!1),B=o=>{r.pageSize=o,_()},_=()=>{m.value=!0,Z(r).then(o=>{const{pageSize:n,pageNum:C,total:g,pages:i,list:y}=o.data;u.value=y,h.value=n,w.value=i,b.value=C,d.value=g}).catch(()=>{u.value=[]}).finally(()=>{m.value=!1})};_();const s=J({operatorName:""}),D=()=>{s.operatorName=""},I=c();function L(o){I.value=o}const U=o=>{r.pageNum=o,_()};function T(){if(s.username==null||s.username==""){_();return}G(s.username).then(o=>{u.value=[o.data],h.value=1,w.value=1,b.value=1,d.value=1}).catch(()=>{u.value=[],h.value=0,w.value=0,b.value=0,d.value=0})}return(o,n)=>{const C=t("el-input"),g=t("el-form-item"),i=t("el-button"),y=t("el-form"),x=t("el-card"),N=t("el-tooltip"),p=t("el-table-column"),q=t("el-text"),A=t("el-row"),j=t("el-table"),E=t("el-pagination"),k=K("loading");return S(),Q("div",Y,[P((S(),V(x,{shadow:"never",class:"search-wrapper"},{default:a(()=>[e(y,{ref:"searchFormRef",inline:!0,model:s},{default:a(()=>[e(g,{prop:"username",label:"操作者账号"},{default:a(()=>[e(C,{modelValue:s.operatorName,"onUpdate:modelValue":n[0]||(n[0]=l=>s.operatorName=l),placeholder:"请输入"},null,8,["modelValue"])]),_:1}),e(g,null,{default:a(()=>[e(i,{type:"primary",icon:f(F),onClick:T},{default:a(()=>[z("查询")]),_:1},8,["icon"]),e(i,{icon:f(O),onClick:D},{default:a(()=>[z("重置")]),_:1},8,["icon"])]),_:1})]),_:1},8,["model"])]),_:1})),[[k,m.value]]),P((S(),V(x,{shadow:"never"},{default:a(()=>[v("div",$,[v("div",ee,[e(N,{content:"下载"},{default:a(()=>[e(i,{type:"primary",icon:f(R),circle:""},null,8,["icon"])]),_:1}),e(N,{content:"刷新当前页"},{default:a(()=>[e(i,{type:"primary",icon:f(M),circle:"",onClick:_},null,8,["icon"])]),_:1})])]),v("div",ae,[e(j,{data:u.value,onSelectionChange:L},{default:a(()=>[e(p,{prop:"content",label:"动作名",align:"center"}),e(p,{prop:"operatorName",label:"操作用户",align:"center",sortable:""}),e(p,{prop:"operationParam",label:"操作参数",align:"center"}),e(p,{prop:"ipAddress",label:"IP",align:"center"}),e(p,{prop:"deviceInfo",label:"User-Agent",align:"center"},{default:a(l=>[e(A,{class:"w-400px mb-2"},{default:a(()=>[e(N,{content:l.row.deviceInfo,placement:"top-end"},{default:a(()=>[e(q,{truncated:""},{default:a(()=>[z(W(l.row.deviceInfo),1)]),_:2},1024)]),_:2},1032,["content"])]),_:2},1024)]),_:1}),e(p,{prop:"operationTime",fixed:"right",label:"时间",width:"150",align:"center"})]),_:1},8,["data"])]),v("div",te,[e(E,{background:"","current-page":r.pageNum,"onUpdate:currentPage":n[1]||(n[1]=l=>r.pageNum=l),"page-size":r.pageSize,"onUpdate:pageSize":n[2]||(n[2]=l=>r.pageSize=l),"page-sizes":[10,20,50,100],small:!1,layout:"total, sizes, prev, pager, next, jumper",total:d.value,onSizeChange:B,onCurrentChange:U},null,8,["current-page","page-size","total"])])]),_:1})),[[k,m.value]])])}}});const pe=X(oe,[["__scopeId","data-v-7236c719"]]);export{pe as default}; diff --git a/docker/logs/access.log b/docker/logs/access.log deleted file mode 100644 index e69de29..0000000 diff --git a/docker/logs/error.log b/docker/logs/error.log deleted file mode 100644 index e69de29..0000000 diff --git a/engine/src/main/java/com/keven1z/core/EngineController.java b/engine/src/main/java/com/keven1z/core/EngineController.java index aaec326..8eb3252 100644 --- a/engine/src/main/java/com/keven1z/core/EngineController.java +++ b/engine/src/main/java/com/keven1z/core/EngineController.java @@ -7,7 +7,7 @@ import com.keven1z.core.model.IASTContext; import com.keven1z.core.monitor.*; -import com.keven1z.core.model.server.AuthenticationDTO; +import com.keven1z.core.model.server.AuthenticationDto; import com.keven1z.core.policy.ServerPolicyManager; import com.keven1z.core.hook.taint.TaintSpy; import com.keven1z.core.hook.transforms.HookTransformer; @@ -92,7 +92,7 @@ private void configureServerConnection() { } private void performRegistration() throws RegistrationException { AuthClient authClient = HttpClientRegistry.getInstance().getClient(AuthClient.class); - AuthenticationDTO authenticationDTO = authClient.register(buildRegisterInformation()); + AuthenticationDto authenticationDTO = authClient.register(buildRegisterInformation()); if (authenticationDTO == null) { throw new RegistrationException("Failed to register agent"); } diff --git a/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/HandlerHookClassResolver.java b/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/HandlerHookClassResolver.java index db94019..ddecc5f 100644 --- a/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/HandlerHookClassResolver.java +++ b/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/HandlerHookClassResolver.java @@ -7,5 +7,5 @@ */ public interface HandlerHookClassResolver { - void resolve(Object returnObject, Object thisObject, Object[] parameters, String className, String method, String desc, String policyName, String from, String to); + void resolve(Object returnObject, Object thisObject, Object[] parameters, String className, String method, String desc, String policyName, String from, String to) throws Exception; } diff --git a/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/PropagationClassResolver.java b/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/PropagationClassResolver.java index 3b9487b..2b8ecb0 100644 --- a/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/PropagationClassResolver.java +++ b/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/PropagationClassResolver.java @@ -21,7 +21,15 @@ */ public class PropagationClassResolver implements HandlerHookClassResolver { @Override - public void resolve(Object returnObject, Object thisObject, Object[] parameters, String className, String method, String desc, String policyName, String from, String to) { + public void resolve(Object returnObject, + Object thisObject, + Object[] parameters, + String className, + String method, + String desc, + String policyName, + String from, + String to) throws Exception{ List fromPositionObjects = PolicyUtils.getFromPositionObject(from, parameters, returnObject, thisObject); if (fromPositionObjects.isEmpty()) { return; @@ -48,10 +56,11 @@ public void resolve(Object returnObject, Object thisObject, Object[] parameters, .returnObject(returnObject) .thisObject(thisObject) .parameters(parameters) + .stage(PolicyType.PROPAGATION) .addFlowPath(new TaintData.FlowPath(fromObject, toObject)) .build(); } - PathNode pathNode = taintGraph.addNode(taintData, PolicyType.PROPAGATION); + PathNode pathNode = taintGraph.addNode(taintData); taintGraph.addEdge(parentNode, pathNode, flowObject.getPathFlag()); } } diff --git a/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/SinkClassResolver.java b/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/SinkClassResolver.java index af43659..973c452 100644 --- a/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/SinkClassResolver.java +++ b/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/SinkClassResolver.java @@ -37,9 +37,10 @@ public void resolve(Object returnObject, Object thisObject, Object[] parameters, .parameters(parameters) .thisObject(thisObject) .addFlowPath(new TaintData.FlowPath(fromObject, null)) + .stage(PolicyType.SINK) .vulnerabilityType(VulnerabilityType.valueOf(policyName.toUpperCase())) .build(); - PathNode pathNode = taintGraph.addNode(taintData, PolicyType.SINK); + PathNode pathNode = taintGraph.addNode(taintData); taintGraph.addEdge(parentNode, pathNode, flowObject.getPathFlag()); } } diff --git a/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/SourceClassResolver.java b/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/SourceClassResolver.java index 39cbe09..1f05045 100644 --- a/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/SourceClassResolver.java +++ b/engine/src/main/java/com/keven1z/core/hook/taint/resolvers/SourceClassResolver.java @@ -24,7 +24,15 @@ public class SourceClassResolver implements HandlerHookClassResolver { private static final String[] BLACK_SPRINGFRAMEWORK_RETURN_OBJECT = new String[]{"org.springframework.web", "SecurityContextHolderAwareRequestWrapper"}; @Override - public void resolve(Object returnObject, Object thisObject, Object[] parameters, String className, String method, String desc, String policyName, String from, String to) { + public void resolve(Object returnObject, + Object thisObject, + Object[] parameters, + String className, + String method, + String desc, + String policyName, + String from, + String to) throws Exception{ if (!isReturnObjectFiltered(returnObject)) { return; } @@ -37,49 +45,45 @@ public void resolve(Object returnObject, Object thisObject, Object[] parameters, if (handler == null) { return; } - try { - List flowPaths = handler.handle(sourceFromPositionObject, returnObject); - if (flowPaths.isEmpty()) { - return; - } - TaintGraph taintGraph = TAINT_GRAPH_THREAD_LOCAL.get(); - //去除重复的污染源 - for (TaintData.FlowPath flowPath : flowPaths) { - if (taintGraph.isTaint(flowPath.getHashcode())){ - return; - } - } - TaintSource taintSource = new TaintSource.Builder().className(className) - .method(method) - .desc(desc) - .thisObject(thisObject) - .returnObject(returnObject) - .parameters(parameters) - .stackList(StackUtils.getStackTraceArray(true, true)) - .flowPaths(flowPaths) - .sourceType(SourceType.fromName(policyName)) - .build(); - if (taintGraph == null) { + List flowPaths; + flowPaths = handler.handle(sourceFromPositionObject, returnObject); + if (flowPaths.isEmpty()) { + return; + } + TaintGraph taintGraph = TAINT_GRAPH_THREAD_LOCAL.get(); + //去除重复的污染源 + for (TaintData.FlowPath flowPath : flowPaths) { + if (taintGraph.isTaint(flowPath.getHashcode())) { return; } - taintGraph.addNode(taintSource, PolicyType.SOURCE); - - } catch (Exception e) { - } - } - /** - * 获取污染源的入参名,eg:id=1,入参名为id - */ - private String getSourceFromName(FlowObject flowObject) { - if ("org.springframework.web.method.HandlerMethod$HandlerMethodParameter".equals(flowObject.getClass().getName())) { - return ReflectionUtils.invokeStringMethod(flowObject, "getParameterName", new Class[]{}); - } else { - return flowObject.toString(); + TaintSource taintSource = new TaintSource.Builder().className(className) + .method(method) + .desc(desc) + .thisObject(thisObject) + .returnObject(returnObject) + .parameters(parameters) + .stackList(StackUtils.getStackTraceArray(true, true)) + .flowPaths(flowPaths) + .sourceType(SourceType.fromName(policyName)) + .stage(PolicyType.SOURCE) + .build(); + if (taintGraph == null) { + return; } + taintGraph.addNode(taintSource); } + + +// private String getSourceFromName(FlowObject flowObject) { +// if ("org.springframework.web.method.HandlerMethod$HandlerMethodParameter".equals(flowObject.getClass().getName())) { +// return ReflectionUtils.invokeStringMethod(flowObject, "getParameterName", new Class[]{}); +// } else { +// return flowObject.toString(); +// } +// } // // private void resolveBeanHook(String className, String method, String desc, Object returnObject, FlowObject sourceFromPositionObject) { // TaintGraph taintGraph = TAINT_GRAPH_THREAD_LOCAL.get(); @@ -133,6 +137,4 @@ private boolean isReturnObjectFiltered(Object returnObject) { } return true; } -// - } diff --git a/engine/src/main/java/com/keven1z/core/model/Config.java b/engine/src/main/java/com/keven1z/core/model/Config.java index fbdb38b..265bdeb 100644 --- a/engine/src/main/java/com/keven1z/core/model/Config.java +++ b/engine/src/main/java/com/keven1z/core/model/Config.java @@ -68,7 +68,7 @@ private static class Inner { /** * 是否离线启动 */ - private final boolean isOfflineStart = true; + private final boolean isOfflineStart = false; /** * 是否记录详细日志 diff --git a/engine/src/main/java/com/keven1z/core/model/server/AuthenticationDTO.java b/engine/src/main/java/com/keven1z/core/model/server/AuthenticationDto.java similarity index 94% rename from engine/src/main/java/com/keven1z/core/model/server/AuthenticationDTO.java rename to engine/src/main/java/com/keven1z/core/model/server/AuthenticationDto.java index e3e3061..97e33bb 100644 --- a/engine/src/main/java/com/keven1z/core/model/server/AuthenticationDTO.java +++ b/engine/src/main/java/com/keven1z/core/model/server/AuthenticationDto.java @@ -1,6 +1,6 @@ package com.keven1z.core.model.server; -public class AuthenticationDTO { +public class AuthenticationDto { private String token; private String agentId; diff --git a/engine/src/main/java/com/keven1z/core/model/taint/PathNode.java b/engine/src/main/java/com/keven1z/core/model/taint/PathNode.java index f1e23cd..73a6c89 100644 --- a/engine/src/main/java/com/keven1z/core/model/taint/PathNode.java +++ b/engine/src/main/java/com/keven1z/core/model/taint/PathNode.java @@ -1,7 +1,5 @@ package com.keven1z.core.model.taint; -import com.keven1z.core.consts.PolicyType; - import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -20,7 +18,6 @@ public class PathNode { * @since 0.0.2 */ private final TaintData taintData; - private final PolicyType policyType; /** * 以此顶点为起点的边的集合,是一个列表,列表的每一项是一条边 *

@@ -33,10 +30,9 @@ public class PathNode { * * @param vertex 頂點 */ - public PathNode(TaintData vertex, PolicyType policyType) { + public PathNode(TaintData vertex) { this.taintData = vertex; this.taintEdgeSet = new HashSet<>(); - this.policyType = policyType; } /** @@ -119,8 +115,4 @@ public void clear() { this.taintEdgeSet.clear(); // this.taintData.clear(); } - - public PolicyType getPolicyType() { - return policyType; - } } diff --git a/engine/src/main/java/com/keven1z/core/model/taint/TaintData.java b/engine/src/main/java/com/keven1z/core/model/taint/TaintData.java index e3c67e1..e77b798 100644 --- a/engine/src/main/java/com/keven1z/core/model/taint/TaintData.java +++ b/engine/src/main/java/com/keven1z/core/model/taint/TaintData.java @@ -3,6 +3,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.keven1z.core.consts.PolicyType; + import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; @@ -25,7 +27,7 @@ public class TaintData { private final WeakReference parameters; private final List stackList; private final List flowPaths; - + private PolicyType stage; protected TaintData(Builder builder) { this.invokeId = INVOKE_ID.getAndIncrement(); this.className = builder.className; @@ -37,6 +39,7 @@ protected TaintData(Builder builder) { this.parameters = builder.parameters; this.stackList = builder.stackList; this.flowPaths = builder.flowPaths; + this.stage = builder.stage; } public int getInvokeId() { @@ -65,6 +68,11 @@ public Object getThisObject() { } return thisObject.get(); } + + public PolicyType getStage() { + return stage; + } + @JsonIgnore public Object getReturnObject() { if (returnObject == null) { @@ -150,7 +158,8 @@ public static class Builder> { private List stackList; @JsonProperty("flowPaths") private List flowPaths; - + @JsonProperty("stage") + private PolicyType stage ; public Builder() { } @@ -193,6 +202,10 @@ public T stackList(List stackList) { this.stackList = stackList; return self(); } + public T stage(PolicyType stage) { + this.stage = stage; + return self(); + } public T flowPaths(List flowPaths) { this.flowPaths = flowPaths; diff --git a/engine/src/main/java/com/keven1z/core/model/taint/TaintGraph.java b/engine/src/main/java/com/keven1z/core/model/taint/TaintGraph.java index 79ee22c..250c06d 100644 --- a/engine/src/main/java/com/keven1z/core/model/taint/TaintGraph.java +++ b/engine/src/main/java/com/keven1z/core/model/taint/TaintGraph.java @@ -36,7 +36,7 @@ public TaintGraph() { public List getSinkNodes() { ArrayList sinkNodes = new ArrayList<>(pathNodeList.size()); for (PathNode node : pathNodeList) { - if (node.getPolicyType() == PolicyType.SINK) { + if (node.getTaintData().getStage() == PolicyType.SINK) { sinkNodes.add(node); } } @@ -49,8 +49,8 @@ public int getNodeSize() { /** * 添加taint node */ - public PathNode addNode(TaintData taintData,PolicyType policyType) { - PathNode node = new PathNode(taintData, policyType); + public PathNode addNode(TaintData taintData) { + PathNode node = new PathNode(taintData); addNode(node); List flowPaths = taintData.getFlowPaths(); for (int i = 0; i < flowPaths.size(); i++) { @@ -250,7 +250,7 @@ private List getSanitizerList(TaintData taintData, List ta PathNode toNode = edge.getTo(); TaintData toTaintData = edge.getTo().getTaintData(); //如果污点的去向为SANITIZER并且没有包含在污点传播流程中 - if (PolicyType.SANITIZER.equals(toNode.getPolicyType()) && !taintDataList.contains(toTaintData)) { + if (PolicyType.SANITIZER.equals(toNode.getTaintData().getStage()) && !taintDataList.contains(toTaintData)) { queue.add(toTaintData); sanitizerTaintDataList.add(toTaintData); } diff --git a/engine/src/main/java/com/keven1z/core/model/taint/TaintSink.java b/engine/src/main/java/com/keven1z/core/model/taint/TaintSink.java index edba912..f2bb0e4 100644 --- a/engine/src/main/java/com/keven1z/core/model/taint/TaintSink.java +++ b/engine/src/main/java/com/keven1z/core/model/taint/TaintSink.java @@ -1,5 +1,6 @@ package com.keven1z.core.model.taint; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.keven1z.core.consts.VulnerabilityType; @JsonDeserialize(builder = TaintSink.Builder.class) @@ -13,6 +14,7 @@ private TaintSink(Builder builder) { } // 获取漏洞类型 + @JsonIgnore public VulnerabilityType getVulnerabilityType() { return vulnerabilityType; } @@ -25,6 +27,7 @@ public void setVulnerabilityType(VulnerabilityType vulnerabilityType) { // Builder 类,帮助构建 SinkInfo 对象 public static class Builder extends TaintData.Builder { + @JsonIgnore private VulnerabilityType vulnerabilityType; public Builder() { diff --git a/engine/src/main/java/com/keven1z/core/utils/IASTHttpClient.java b/engine/src/main/java/com/keven1z/core/utils/IASTHttpClient.java index 2bc5355..27f9691 100644 --- a/engine/src/main/java/com/keven1z/core/utils/IASTHttpClient.java +++ b/engine/src/main/java/com/keven1z/core/utils/IASTHttpClient.java @@ -12,7 +12,7 @@ import com.keven1z.core.log.LogTool; import com.keven1z.core.model.ApplicationModel; import com.keven1z.core.model.server.AgentDTO; -import com.keven1z.core.model.server.AuthenticationDTO; +import com.keven1z.core.model.server.AuthenticationDto; import com.keven1z.core.model.server.ResponseDTO; import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; @@ -166,7 +166,7 @@ public static void register(AgentDTO agentDTO) throws RegistrationException { throw new RegistrationException(errorMsg); } // 校验响应数据类型 - AuthenticationDTO authData = JsonUtils.parseObject(responseDTO.getData(), AuthenticationDTO.class); + AuthenticationDto authData = JsonUtils.parseObject(responseDTO.getData(), AuthenticationDto.class); if (authData == null || authData.getAgentId() == null || authData.getToken() == null) { String errorMsg = "Incomplete authentication data. AgentId or Token is missing."; logger.error(errorMsg); diff --git a/engine/src/main/java/com/keven1z/core/utils/http/AuthClient.java b/engine/src/main/java/com/keven1z/core/utils/http/AuthClient.java index d2e9448..43f4b0f 100644 --- a/engine/src/main/java/com/keven1z/core/utils/http/AuthClient.java +++ b/engine/src/main/java/com/keven1z/core/utils/http/AuthClient.java @@ -5,7 +5,7 @@ import com.keven1z.core.consts.Api; import com.keven1z.core.error.RegistrationException; import com.keven1z.core.model.server.AgentDTO; -import com.keven1z.core.model.server.AuthenticationDTO; +import com.keven1z.core.model.server.AuthenticationDto; import com.keven1z.core.model.server.ResponseDTO; import com.keven1z.core.utils.JsonUtils; import org.apache.http.client.methods.HttpGet; @@ -24,7 +24,7 @@ public AuthClient(String baseUrl) { super(baseUrl); } - public AuthenticationDTO register(AgentDTO agentDto) throws RegistrationException { + public AuthenticationDto register(AgentDTO agentDto) throws RegistrationException { try { String payload = JsonUtils.toJsonString(agentDto); HttpPost request = buildPostRequest(Api.AGENT_REGISTER_URL, payload); @@ -54,10 +54,10 @@ private HttpPost buildPostRequest(String path, String payload) { return request; } - private AuthenticationDTO parseAuthResponse(String json) throws RegistrationException { + private AuthenticationDto parseAuthResponse(String json) throws RegistrationException { try { - ResponseDTO response = JsonUtils.parseObject(json, - new TypeReference>() {}); + ResponseDTO response = JsonUtils.parseObject(json, + new TypeReference>() {}); // 处理失败响应 if (!response.isFlag()) { @@ -65,7 +65,7 @@ private AuthenticationDTO parseAuthResponse(String json) throws RegistrationExce LOGGER.warn(errorMsg); throw new RegistrationException(errorMsg); } - AuthenticationDTO authData = response.getData(); + AuthenticationDto authData = response.getData(); // 校验响应数据类型 if (authData == null || authData.getAgentId() == null || authData.getToken() == null) { String errorMsg = "Incomplete authentication data. AgentId or Token is missing."; diff --git a/target/simpleIAST-1.0-shaded.pom b/target/simpleIAST-1.0-shaded.pom index bae4464..fc1b530 100644 Binary files a/target/simpleIAST-1.0-shaded.pom and b/target/simpleIAST-1.0-shaded.pom differ