Files
zsglpt/static/admin/assets/index-D8t2quK2.js

3 lines
11 KiB
JavaScript

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ReportPage-GPt5J1Db.js","./vendor-element-CJoVtPsD.js","./vendor-sLgkZK1v.js","./vendor-vue-CWkOjFoA.js","./vendor-element-C68yOrAy.css","./email-CqsrP_Ts.js","./tasks-DZnsc1fC.js","./system-In7Gh8x7.js","./MetricGrid-Cbhb9OGV.js","./MetricGrid-yP_dkP6X.css","./vendor-axios-B9ygI19o.js","./ReportPage-CnNjCmpq.css","./UsersPage-KZ5WSZrO.js","./users-CTuo5Ynz.js","./UsersPage-Cow_LicY.css","./FeedbacksPage-B8rr6rHD.js","./FeedbacksPage-mrXjCiV2.css","./LogsPage-WfvkzS-6.js","./LogsPage-D1bozCEo.css","./AnnouncementsPage-CaSWhmIw.js","./AnnouncementsPage-DOwZaaOu.css","./EmailPage-DlOkUKzK.js","./EmailPage-BmPCDPYC.css","./SecurityPage-BWFFA3z9.js","./SecurityPage-DN76ndc_.css","./SystemPage-CJ2F6_EU.js","./SystemPage-DMyNBO3N.css","./SettingsPage-3cNfdgGx.js","./SettingsPage-DaB8PeRL.css"])))=>i.map(i=>d[i]);
import{aW as p,K as w,A as h,r as S,c as U,v as le,a1 as ce,L as o,N as q,S as m,B as d,z as V,R as j,ak as K,O as z,Q as L,P as W,by as ie,p as N,bu as ue}from"./vendor-sLgkZK1v.js";import{u as de,p as me,q as pe,r as fe}from"./vendor-vue-CWkOjFoA.js";import{E as X,f as J,g as _e,u as he,h as ye,j as be,k as ge,m as ve,n as we,t as ke,o as Ee,p as Pe,z as xe}from"./vendor-element-CJoVtPsD.js";import{a as Re}from"./vendor-axios-B9ygI19o.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))s(n);new MutationObserver(n=>{for(const c of n)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&s(u)}).observe(document,{childList:!0,subtree:!0});function a(n){const c={};return n.integrity&&(c.integrity=n.integrity),n.referrerPolicy&&(c.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?c.credentials="include":n.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function s(n){if(n.ep)return;n.ep=!0;const c=a(n);fetch(n.href,c)}})();const Y=(e,t)=>{const a=e.__vccOpts||e;for(const[s,n]of t)a[s]=n;return a},Se={};function Le(e,t){const a=p("RouterView");return h(),w(a)}const Oe=Y(Se,[["render",Le]]),Te="modulepreload",Ae=function(e,t){return new URL(e,t).href},H={},k=function(t,a,s){let n=Promise.resolve();if(a&&a.length>0){let R=function(i){return Promise.all(i.map(_=>Promise.resolve(_).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};const u=document.getElementsByTagName("link"),f=document.querySelector("meta[property=csp-nonce]"),x=f?.nonce||f?.getAttribute("nonce");n=R(a.map(i=>{if(i=Ae(i,s),i in H)return;H[i]=!0;const _=i.endsWith(".css"),g=_?'[rel="stylesheet"]':"";if(s)for(let E=u.length-1;E>=0;E--){const P=u[E];if(P.href===i&&(!_||P.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${g}`))return;const y=document.createElement("link");if(y.rel=_?"stylesheet":Te,_||(y.as="script"),y.crossOrigin="",y.href=i,x&&y.setAttribute("nonce",x),document.head.appendChild(y),_)return new Promise((E,P)=>{y.addEventListener("load",E),y.addEventListener("error",()=>P(new Error(`Unable to preload CSS for ${i}`)))})}))}function c(u){const f=new Event("vite:preloadError",{cancelable:!0});if(f.payload=u,window.dispatchEvent(f),!f.defaultPrevented)throw u}return n.then(u=>{for(const f of u||[])f.status==="rejected"&&c(f.reason);return t().catch(c)})};let G="",Q=0;function O(e,t,a=1500){const s=Date.now();e===G&&s-Q<a||(G=e,Q=s,J.error(t))}function Ve(e){const t=String(e).replace(/([.*+?^${}()|[\]\\])/g,"\\$1"),a=document.cookie.match(new RegExp(`(?:^|; )${t}=([^;]*)`));return a?decodeURIComponent(a[1]):""}const b=Re.create({baseURL:"/yuyx/api",timeout:3e4,withCredentials:!0});let T=null;async function Ne(){return T||(T=X.prompt("请输入管理员密码进行二次确认","安全确认",{inputType:"password",inputPlaceholder:"管理员密码",confirmButtonText:"确认",cancelButtonText:"取消",inputValidator:e=>!!String(e||"").trim(),inputErrorMessage:"密码不能为空"}).then(async e=>{const t=String(e.value||"").trim();await b.post("/admin/reauth",{password:t}),J.success("已通过安全确认")}).finally(()=>{T=null}),T)}b.interceptors.request.use(e=>{const t=String(e?.method||"GET").toUpperCase();if(!["GET","HEAD","OPTIONS"].includes(t)){const a=Ve("csrf_token");a&&(e.headers=e.headers||{},e.headers["X-CSRF-Token"]=a)}return e});b.interceptors.response.use(e=>e,async e=>{const t=e?.response?.status,a=e?.response?.data,s=a?.error||a?.message||e?.message||"请求失败";if(a?.code==="reauth_required"&&e?.config&&!e.config.__reauth_retry)try{return e.config.__reauth_retry=!0,await Ne(),b.request(e.config)}catch{return Promise.reject(e)}return t===401?(O("401",s,3e3),(window.location?.pathname||"").startsWith("/yuyx")||(window.location.href="/yuyx")):t===403?O("403",s,5e3):t?O(`http:${t}:${s}`,s):e?.code==="ECONNABORTED"?O("timeout","请求超时",3e3):O(`net:${s}`,s,3e3),Promise.reject(e)});async function lt(e=""){const{data:t}=await b.get("/feedbacks",{params:e?{status:e}:{}});return t}async function Be(){const{data:e}=await b.get("/feedbacks",{params:{limit:1,offset:0}});return e?.stats}async function ct(e,t){const{data:a}=await b.post(`/feedbacks/${e}/reply`,{reply:t});return a}async function it(e){const{data:t}=await b.post(`/feedbacks/${e}/close`);return t}async function ut(e){const{data:t}=await b.delete(`/feedbacks/${e}`);return t}async function Ce(){const{data:e}=await b.get("/stats");return e}const Ie={class:"menu-label"},$e={key:1,class:"menu-label"},De={class:"header-left"},Fe={class:"header-right"},Me={class:"admin-name"},Ue={class:"main-shell"},qe={class:"menu-label"},je={key:1,class:"menu-label"},Ke={__name:"AdminLayout",setup(e){const t=de(),a=me(),s=S({}),n=U(()=>s.value?.admin_username||"");async function c(){try{s.value=await Ce()}finally{}}const u=S(!1),f=S(0);let x;async function R(v=null){if(v&&typeof v=="object"){Object.prototype.hasOwnProperty.call(v,"pendingFeedbacks")&&(f.value=Number(v.pendingFeedbacks||0));return}if(!u.value){u.value=!0;try{const r=await Be();f.value=Number(r?.pending||0)}finally{u.value=!1}}}N("refreshStats",c),N("adminStats",s),N("refreshNavBadges",R);const i=S(!1),_=S(!1);let g;function y(){i.value=!!g?.matches,i.value||(_.value=!1)}le(async()=>{g=window.matchMedia("(max-width: 768px)"),g.addEventListener?.("change",y),y(),await c(),await R(),x=window.setInterval(R,6e4)}),ce(()=>{g?.removeEventListener?.("change",y),window.clearInterval(x)});const E=[{path:"/reports",label:"报表",icon:_e},{path:"/users",label:"用户",icon:he},{path:"/feedbacks",label:"反馈",icon:ye,badgeKey:"feedbacks"},{path:"/logs",label:"任务日志",icon:be},{path:"/announcements",label:"公告",icon:ge},{path:"/email",label:"邮件",icon:ve},{path:"/security",label:"安全防护",icon:we},{path:"/system",label:"系统配置",icon:ke},{path:"/settings",label:"设置",icon:Ee}],P=U(()=>t.path);function A(v){return v?.badgeKey&&v.badgeKey==="feedbacks"?Number(f.value||0):0}async function Z(){try{await X.confirm("确定退出管理员登录吗?","退出登录",{confirmButtonText:"退出",cancelButtonText:"取消",type:"warning"})}catch{return}try{await b.post("/logout")}finally{window.location.href="/yuyx"}}async function B(v){await a.push(v),_.value=!1}return(v,r)=>{const C=p("el-icon"),I=p("el-badge"),$=p("el-menu-item"),D=p("el-menu"),ee=p("el-aside"),F=p("el-button"),te=p("el-header"),ae=p("RouterView"),ne=p("el-skeleton"),se=p("el-card"),oe=p("el-main"),M=p("el-container"),re=p("el-drawer");return h(),w(M,{class:"layout-root"},{default:o(()=>[i.value?q("",!0):(h(),w(ee,{key:0,width:"220px",class:"layout-aside"},{default:o(()=>[r[2]||(r[2]=d("div",{class:"brand"},[d("div",{class:"brand-title"},"后台管理"),d("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),m(D,{"default-active":P.value,class:"aside-menu",router:"",onSelect:B},{default:o(()=>[(h(),V(j,null,K(E,l=>m($,{key:l.path,index:l.path},{default:o(()=>[m(C,null,{default:o(()=>[(h(),w(z(l.icon)))]),_:2},1024),A(l)>0?(h(),w(I,{key:0,value:A(l),max:99,class:"menu-badge"},{default:o(()=>[d("span",Ie,L(l.label),1)]),_:2},1032,["value"])):(h(),V("span",$e,L(l.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1})),m(M,null,{default:o(()=>[m(te,{class:"layout-header"},{default:o(()=>[d("div",De,[i.value?(h(),w(F,{key:0,text:"",class:"header-menu-btn",onClick:r[0]||(r[0]=l=>_.value=!0)},{default:o(()=>[...r[3]||(r[3]=[W(" 菜单 ",-1)])]),_:1})):q("",!0),r[4]||(r[4]=d("div",{class:"header-title"},"后台管理系统",-1))]),d("div",Fe,[d("div",Me,[r[5]||(r[5]=d("span",{class:"app-muted"},"管理员",-1)),d("strong",null,L(n.value||"-"),1)]),m(F,{type:"primary",plain:"",class:"logout-btn",onClick:Z},{default:o(()=>[...r[6]||(r[6]=[W("退出",-1)])]),_:1})])]),_:1}),m(oe,{class:"layout-main"},{default:o(()=>[d("div",Ue,[(h(),w(ie,null,{default:o(()=>[m(ae)]),fallback:o(()=>[m(se,{shadow:"never","body-style":{padding:"16px"},class:"fallback-card"},{default:o(()=>[m(ne,{rows:5,animated:""})]),_:1})]),_:1}))])]),_:1})]),_:1}),m(re,{modelValue:_.value,"onUpdate:modelValue":r[1]||(r[1]=l=>_.value=l),size:"min(82vw, 280px)",direction:"ltr","with-header":!1},{default:o(()=>[r[7]||(r[7]=d("div",{class:"drawer-brand"},[d("div",{class:"brand-title"},"后台管理"),d("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),m(D,{"default-active":P.value,class:"aside-menu",router:"",onSelect:B},{default:o(()=>[(h(),V(j,null,K(E,l=>m($,{key:l.path,index:l.path},{default:o(()=>[m(C,null,{default:o(()=>[(h(),w(z(l.icon)))]),_:2},1024),A(l)>0?(h(),w(I,{key:0,value:A(l),max:99,class:"menu-badge"},{default:o(()=>[d("span",qe,L(l.label),1)]),_:2},1032,["value"])):(h(),V("span",je,L(l.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1},8,["modelValue"])]),_:1})}}},ze=Y(Ke,[["__scopeId","data-v-465abc4b"]]),We=()=>k(()=>import("./ReportPage-GPt5J1Db.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url),He=()=>k(()=>import("./UsersPage-KZ5WSZrO.js"),__vite__mapDeps([12,13,1,2,3,4,10,14]),import.meta.url),Ge=()=>k(()=>import("./FeedbacksPage-B8rr6rHD.js"),__vite__mapDeps([15,8,2,9,1,3,4,10,16]),import.meta.url),Qe=()=>k(()=>import("./LogsPage-WfvkzS-6.js"),__vite__mapDeps([17,13,6,1,2,3,4,10,18]),import.meta.url),Xe=()=>k(()=>import("./AnnouncementsPage-CaSWhmIw.js"),__vite__mapDeps([19,1,2,3,4,10,20]),import.meta.url),Je=()=>k(()=>import("./EmailPage-DlOkUKzK.js"),__vite__mapDeps([21,5,8,2,9,1,3,4,10,22]),import.meta.url),Ye=()=>k(()=>import("./SecurityPage-BWFFA3z9.js"),__vite__mapDeps([23,8,2,9,1,3,4,10,24]),import.meta.url),Ze=()=>k(()=>import("./SystemPage-CJ2F6_EU.js"),__vite__mapDeps([25,7,1,2,3,4,10,26]),import.meta.url),et=()=>k(()=>import("./SettingsPage-3cNfdgGx.js"),__vite__mapDeps([27,1,2,3,4,10,28]),import.meta.url),tt=[{path:"/",component:ze,children:[{path:"",redirect:"/reports"},{path:"/pending",redirect:"/reports"},{path:"/stats",redirect:"/reports"},{path:"/reports",name:"reports",component:We},{path:"/users",name:"users",component:He},{path:"/feedbacks",name:"feedbacks",component:Ge},{path:"/logs",name:"logs",component:Qe},{path:"/announcements",name:"announcements",component:Xe},{path:"/email",name:"email",component:Je},{path:"/security",name:"security",component:Ye},{path:"/system",name:"system",component:Ze},{path:"/settings",name:"settings",component:et}]}],at=pe({history:fe(),routes:tt});ue(Oe).use(at).use(Pe,{locale:xe}).mount("#app");export{Y as _,b as a,lt as b,it as c,ut as d,Be as f,ct as r};