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:'