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

3 lines
13 KiB
JavaScript

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