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