3 lines
11 KiB
JavaScript
3 lines
11 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrivilegeRequestDialog-CaV7XICr.js","assets/index-DGJ6dnLh.js","assets/index-BE0BzS9Q.css","assets/PrivilegeRequestDialog-CNJlRMOy.css","assets/SuccessDialog-BpGtP4mq.js","assets/SuccessDialog-BPcsUGCQ.css","assets/ErrorDialog-COuvC4wX.js"])))=>i.map(i=>d[i]);
|
|
import{_ as ne,c as i,r as u,m as ve,o as re,g as x,u as ue,h as b,a as de,b as k,d as a,e as pe,f as n,n as G,i as c,w as d,j as V,k as z,l as w,F as me,p as ce,t as H,v as ge,q as v,s as N,x as B,y as E,z as m}from"./index-DGJ6dnLh.js";import{r as fe}from"./login-DCaIIcze.js";const Ae="/assets/logo-DksfcAHK.png",ke="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAYAAACWwljjAAAFQklEQVRYw+3Wa1BUdRjH8SOpMeg4WhZGpDIxiaaTeUFgWrxE4AVRQJGlRRAVIV1JkbgMgQLi5AVBQSVLSp0xlEAUKBEEFZCrCstll8UV2AV2YbmoGCrYv31+R95UL5pmmtamZ+bz6rz5nvOc/5zDcX9jGLs/iTxuyvIlWYkRFeTHA2HVRFtzfhthTG5KuH96/vUgNlC4mMgyw1NJit/aAXLKazYje9xtIMZ/OZz50gW+9hcNkvoLEemEPbnrSP47QYwxQ5Ifv54RqzcXwFFvSyjaOhfavN8F7Y5ZcC/HH9JOB4LNa9Zw5YA76OZV8vIGMdZtSp7cDrtOnOavYiQhTAiPwi1AMtIQaqyngsxpBtw2GAGDKfaQmpUAa6xc4Vfp4UtEdzAMycsT9JQ1Tyctl/2eEkuTlYysF/rCUNxMqDEzgTqzSXBnpgnIHCzgjvEEuD52DLBr3rA1MAaWmNtB582wdtIljZ9G9D+IPU6aTxIPBjHCcXvg3CEh9K2fDLWvjIH6D6fwTIyheuwEqLUyhzLOALq8pkN+bgRw3HY4FBsMzxojZxP9DequLjAlQwVrbpIjhyIY4UYGQ/buhdBqPxlk3Gion2IMDQIz3kJe/ZS34I7uHkmD7VSQVgYDNyIAwsNCgfXGXoOBPjP9DKrOCAogA2etGTmTHAMcFwFZye7wS5QlVHGjoEw4A2qPCUBZ6AzNcQ5Q/YYRdO+YB1U3dsDwypLio4FJ3ECryIzWz6Cm3NgTRHN8HiPF6eHAGSbAdh8feFZkB7krzaHE9h2o85sDsiAbkIsXQMN+e2CtGyF0kzdwXCgU5++D/ouLQFV4OEU/g2Q/iNuIPNaKkQflAWBqexxGjhLDVUcL6IwSQN3SGVChe6FJg9dckCx6D1QBliDZLIAxo7eA8eyv4KE0BJqTrHkZvnL9DJKn+Twmt0NsGGHZy2Dn3kQYfsQ53Hh4/r4RNGz8AIpdzKEuaAF0RC2E57MmQgE3ATjuM/CPiANW7AqSfQJQ5vk362eQKmd3JrmXsoSRocpNIMnbB9zbceDIWUPmuHFQNMkISqa9DpUvNK6YDpW2s8DfwBK48WFQnhMCgzUBoLy0BrRVe5P0NWjPLdKUsJiR1tR1wGp8IeZwMgx/SrgRvjxuAziNcwLvyathLOcJHLflhRDYGRYFrNET2rJ5yvPLoas0tOj/oL8UpC4JHyTSU+6MNCS4gvKoAB5WiKG+MAQSg0WwLXQ/ZJ3xhao0FxB5hYCbUwAEfhEF3Td8QP2dAOQnPwFlxgrolUVq9TPoaX+ZB2nLc2Gk6awj1MU78HZZwJMid2Byb550JQwVO0NfxlJgdz14vWKeRAiK6DlQF28PLZdcoLNcBIO92bb6GTQ8Q/13RURT6tlH2gvXMlITLYD6uI+gp2ozdF0VQXumM6ivCqGvahM8kPiDItkeGo8tB025GFQ3xFrSr06zI3/4yde7oN7m0sWk5eKWDqK5JWJQvAHac9ygq3Adr9gTNNc3QG85rzPfHe5/7wDtPwuhp/Zz6CjyhaZzwi6ivfetHdH/oP77+3PJQOsuRnqkQdCa4wWqyx6gyecpL64GTaEX7ycXUJz4GJp1B4O0X/Hg0Xp1tFV+8Ei1k6c5coHofxBrrzQinbKYo0SVJ+wn6iurGHlY5gY911aDJnMFaHXXiDp9GQyvtKfUA9QFTtBZ7gPdit0tpFd9OpwwFmlA9D/o9yNLDpxIKmI8PMnNSNtviCLVpYTITzrXEGWaq4qos0WgOPdpCenIF+eRrurjB4k0PXopYZG6gMg/D/gNBUxhAbSAmKMAAAAASUVORK5CYII=",we={class:"app"},De={class:"navbar"},Ce={class:"nav-container"},Ie={class:"nav-dropdown"},ye={class:"dropdown-content"},be={class:"nav-dropdown"},Ne={class:"dropdown-content"},Pe={class:"nav-dropdown"},Qe={class:"dropdown-content"},Te={class:"nav-dropdown"},_e={class:"dropdown-content"},Ge={class:"nav-dropdown"},Be={class:"dropdown-content"},Ee=["src"],Le={class:"nav-username"},Fe={class:"dropdown-menu"},Me={class:"main-content"},Re=!0,Ue={__name:"index",setup(qe){const S=B(()=>E(()=>import("./PrivilegeRequestDialog-CaV7XICr.js"),__vite__mapDeps([0,1,2,3]))),h=B(()=>E(()=>import("./SuccessDialog-BpGtP4mq.js"),__vite__mapDeps([4,1,2,5]))),Y=B(()=>E(()=>import("./ErrorDialog-COuvC4wX.js"),__vite__mapDeps([6,1,2]))),r=i(()=>!!localStorage.getItem("access_token")&&!!s.value),K=i(()=>s.value&&s.value.privilege==="lv-admin"),D=u(!1),s=u(null),g=u(!1),P=u(null),f=ue(),L=i(()=>s.value&&s.value.qq_code?`https://q1.qlogo.cn/g?b=qq&nk=${s.value.qq_code}&s=40`:null),Q=i(()=>{if(!s.value)return null;const l=ve(s.value.privilege,s.value.temp_privilege);if(!l)return null;const e=l.split(";"),t=["lv-admin","lv-mod","lv-competitor","lv-map","lv-user"];for(const o of t)if(e.includes(o))return o;return null}),O=i(()=>{const l=Q.value;if(!l)return"";const e={"lv-admin":"管理员","lv-mod":"模组","lv-map":"地图","lv-user":"用户","lv-competitor":"竞技"},t=l!=="lv-user"&&s.value&&s.value.temp_privilege&&s.value.temp_privilege.includes(l),o=e[l]||l;return t?`临时:${o}`:o}),Z=i(()=>{const l=Q.value;return l?{"lv-admin":"privilege-tag admin","lv-mod":"privilege-tag mod","lv-map":"privilege-tag map","lv-user":"privilege-tag user","lv-competitor":"privilege-tag competitor"}[l]||"privilege-tag":""}),J=()=>{D.value=!D.value},W=()=>{localStorage.removeItem("access_token"),s.value=null,g.value=!1,f.push("/")},F=l=>{P.value&&!P.value.contains(l.target)&&(g.value=!1)},j=()=>{g.value=!g.value};let C=null;const X=["lv-mod","lv-map","lv-competitor","lv-user"];function $(l){const e=l.matched.find(t=>t.meta&&t.meta.requiredPrivilege);return e?e.meta.requiredPrivilege:null}re(()=>{localStorage.getItem("access_token")&&x().then(l=>{l?(U(l)&&(T.value="账号异常:检测到非法临时权限,请重新登录或联系管理员。",I.value=!0),s.value=l):console.log("Index.vue: Failed to get user info, token might be invalid.")}),document.addEventListener("click",F),C=setInterval(async()=>{if(localStorage.getItem("access_token")&&s.value)try{const l=await x();if(l){U(l)&&(T.value="账号异常:检测到非法临时权限,请重新登录或联系管理员。",I.value=!0);const e=s.value.temp_privilege&&s.value.temp_privilege.trim()!=="",t=l.temp_privilege&&l.temp_privilege.trim()!=="";e&&!t&&f.replace("/maps");const o=$(f.currentRoute.value);o&&!b(l,o)&&f.replace("/maps"),s.value=l}}catch(l){console.log("权限检查失败:",l)}},10*1e3)}),de(()=>{document.removeEventListener("click",F),C&&(clearInterval(C),C=null)}),i(()=>r.value&&s.value);const ee=i(()=>r.value&&s.value&&b(s.value,["lv-admin","lv-mod"])),le=i(()=>r.value&&s.value),ae=i(()=>r.value&&s.value),se=i(()=>r.value&&s.value&&b(s.value,["lv-admin","lv-competitor"]));i(()=>Re),i(()=>ee.value||le.value),i(()=>ae.value),i(()=>se.value);const I=u(!1),T=u(""),y=u(!1),M=u(""),R=u(""),A=u({visible:!1,message:""}),te={"lv-admin":"管理员","lv-mod":"模组","lv-map":"地图","lv-user":"用户","lv-competitor":"竞技"};function oe(l="",e=""){M.value=l,R.value=e,y.value=!0}async function ie(){if(y.value=!1,!r.value){A.value={visible:!0,message:"请先登录后再申请权限!"};return}try{await fe(R.value),A.value={visible:!0,message:"权限申请已提交,请等待审核。"}}catch{A.value={visible:!0,message:"权限申请失败,请重试或联系管理员。"}}}function _(l,e){if(!r.value||!s.value||!b(s.value,e)){const t=["lv-mod","lv-competitor","lv-map"];let o="";for(const q of t)if(e&&e.includes(q)){o=q;break}!o&&e&&e.includes("lv-admin")&&(o="lv-admin");const p=te[o]||o;oe(p,o);return}f.push(l)}function U(l){return!l||!l.temp_privilege?!1:l.temp_privilege.split(";").map(t=>t.trim()).filter(Boolean).some(t=>!X.includes(t))}return(l,e)=>{const t=V("router-link"),o=V("router-view");return m(),k("div",we,[a("nav",De,[a("div",Ce,[e[26]||(e[26]=a("div",{class:"nav-brand"},"红色警戒3数据分析中心",-1)),a("button",{class:"mobile-menu-toggle",onClick:J},e[7]||(e[7]=[a("i",{class:"fas fa-bars"},null,-1)])),a("div",{class:G(["nav-left",{active:D.value}])},[a("div",Ie,[e[11]||(e[11]=a("span",{class:"nav-link"},"地图与作者推荐",-1)),a("div",ye,[n(t,{to:"/maps",class:"nav-link"},{default:d(()=>e[8]||(e[8]=[v("全部上传地图")])),_:1}),n(t,{to:"/weekly",class:"nav-link"},{default:d(()=>e[9]||(e[9]=[v("本周上传地图")])),_:1}),n(t,{to:"/author",class:"nav-link"},{default:d(()=>e[10]||(e[10]=[v("活跃作者推荐")])),_:1})])]),a("div",be,[e[14]||(e[14]=a("span",{class:"nav-link"},"地形与纹理",-1)),a("div",Ne,[n(t,{to:"/terrain",class:"nav-link"},{default:d(()=>e[12]||(e[12]=[v("地形图列表")])),_:1}),r.value?(m(),z(t,{key:0,to:"/terrainGenerate",class:"nav-link",onClick:e[0]||(e[0]=w(p=>_("/terrainGenerate",["lv-admin","lv-mod","lv-map","lv-competitor"]),["prevent"]))},{default:d(()=>e[13]||(e[13]=[v("地形纹理合成工具")])),_:1})):c("",!0)])]),r.value?(m(),k(me,{key:0},[a("div",Pe,[e[17]||(e[17]=a("span",{class:"nav-link"},"在线工具",-1)),a("div",Qe,[n(t,{to:"/weapon-match",class:"nav-link",onClick:e[1]||(e[1]=w(p=>_("/weapon-match",["lv-admin","lv-mod"]),["prevent"]))},{default:d(()=>e[15]||(e[15]=[v("Weapon 匹配")])),_:1}),n(t,{to:"/PIC2TGA",class:"nav-link",onClick:e[2]||(e[2]=w(p=>_("/PIC2TGA",["lv-admin","lv-mod","lv-map","lv-competitor"]),["prevent"]))},{default:d(()=>e[16]||(e[16]=[v("在线转tga工具")])),_:1})])]),a("div",Te,[e[19]||(e[19]=a("span",{class:"nav-link"},"赛事信息",-1)),a("div",_e,[n(t,{to:"/competition",class:"nav-link"},{default:d(()=>e[18]||(e[18]=[v("赛程信息")])),_:1})])]),a("div",Ge,[e[21]||(e[21]=a("span",{class:"nav-link"},"公共信息区",-1)),a("div",Be,[n(t,{to:"/demands",class:"nav-link"},{default:d(()=>e[20]||(e[20]=[v("办事大厅")])),_:1})])])],64)):c("",!0)],2),a("div",{class:G(["nav-right",{active:D.value}])},[r.value?c("",!0):(m(),z(t,{key:0,to:"/backend/login",class:"nav-link login-btn"},{default:d(()=>e[22]||(e[22]=[a("i",{class:"fas fa-user"},null,-1),v(" 登录 ")])),_:1})),r.value&&s.value?(m(),k("div",{key:1,class:"user-info-nav",ref_key:"userInfoNavRef",ref:P,onClick:j},[L.value?(m(),k("img",{key:0,src:L.value,alt:"User Avatar",class:"nav-avatar"},null,8,Ee)):c("",!0),a("span",Le,H(s.value.username),1),Q.value?(m(),k("span",{key:1,class:G(Z.value)},H(O.value),3)):c("",!0),e[25]||(e[25]=a("i",{class:"fas fa-chevron-down dropdown-icon"},null,-1)),ce(a("div",Fe,[K.value?(m(),k("div",{key:0,class:"dropdown-item",onClick:e[3]||(e[3]=w(p=>{N(f).push("/backend/dashboard"),g.value=!1},["stop"]))},e[23]||(e[23]=[a("i",{class:"fas fa-cog"},null,-1),v(" 管理后台 ")]))):c("",!0),a("div",{class:"dropdown-item",onClick:w(W,["stop"])},e[24]||(e[24]=[a("i",{class:"fas fa-sign-out-alt"},null,-1),v(" 退出登录 ")]))],512),[[ge,g.value]])],512)):c("",!0)],2)])]),a("main",Me,[n(o)]),e[27]||(e[27]=pe('<footer class="footer" data-v-a467dd31><div class="footer-top" data-v-a467dd31><div class="footer-brand" data-v-a467dd31><img src="'+Ae+'" class="footer-logo" data-v-a467dd31><span class="footer-title" data-v-a467dd31>红色警戒3数据分析中心</span></div></div><div class="footer-bottom" data-v-a467dd31><p data-v-a467dd31>Byz解忧杂货铺</p><p class="beian" data-v-a467dd31><img src="'+ke+'" alt="公安备案图标" class="police-icon" data-v-a467dd31><a href="https://beian.mps.gov.cn/#/query/webSearch?code=11010802045768" rel="noreferrer" target="_blank" data-v-a467dd31>京公网安备11010802045768号</a></p></div></footer>',1)),n(N(S),{visible:y.value,privilegeName:M.value,onClose:e[4]||(e[4]=p=>y.value=!1),onApply:ie},null,8,["visible","privilegeName"]),n(N(h),{visible:A.value.visible,message:A.value.message,onClose:e[5]||(e[5]=p=>A.value.visible=!1)},null,8,["visible","message"]),n(N(Y),{visible:I.value,message:T.value,onClose:e[6]||(e[6]=p=>I.value=!1)},null,8,["visible","message"])])}}},ze=ne(Ue,[["__scopeId","data-v-a467dd31"]]);export{ze as default};
|