Files
est-frame/build/assets/js/380abe66.4a80c6d8.js
2025-10-22 05:38:27 +00:00

1 line
9.0 KiB
JavaScript
Executable File

(self.webpackChunkest_farmework=self.webpackChunkest_farmework||[]).push([[5216],{26177:(e,s,a)=>{"use strict";a.r(s),a.d(s,{default:()=>m});var n=a(96540),t=a(44586),i=a(41103);const r={loginWrapper:"loginWrapper_ui7P",loginContainer:"loginContainer_lHRG",logo:"logo_lzEx",title:"title_Mh0S",subtitle:"subtitle_I6Ge",form:"form_ECMN",inputGroup:"inputGroup_sUeB",input:"input_wpV0",submitButton:"submitButton_WjLJ",error:"error_S16t",bottomLinks:"bottomLinks_k98N",activateAccount:"activateAccount_AsEc",forgotPassword:"forgotPassword_UhG8",backToLogin:"backToLogin_kqD0",inputError:"inputError_skTw",loader:"loader_QXHR",spin:"spin_sFUa",accountInfo:"accountInfo_Ph5V",infoRow:"infoRow_hkQZ",infoLabel:"infoLabel_iVes",infoValue:"infoValue_cdzQ",logoutButton:"logoutButton_UrUB",adminButton:"adminButton_EWBr"};var o=a(95945),l=a(56347),c=a(94335),d=a(54769),u=a(74848);const p=()=>{const[e,s]=(0,n.useState)(""),[t,i]=(0,n.useState)(""),[p,m]=(0,n.useState)(""),[h,g]=(0,n.useState)(!1),[f,x]=(0,n.useState)({}),[j,b]=(0,n.useState)("checking"),[N,y]=(0,n.useState)(!1),[v,S]=(0,n.useState)(""),[k,w]=(0,n.useState)(""),{login:E,isLoggedIn:_,username:B,logout:C,getUserInfo:A,error:L,userLevel:T}=(0,o.A)(),$=(0,l.W6)(),[W,I]=(0,n.useState)(null);(0,n.useEffect)((()=>{_&&A().then((e=>{e&&x(e)})).catch((e=>{console.error("Error fetching user info:",e),m("\u83b7\u53d6\u7528\u6237\u4fe1\u606f\u5931\u8d25\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55"),C()}))}),[_,A,C]),(0,n.useEffect)((()=>{L&&m(L)}),[L]),(0,n.useEffect)((()=>{}),[T]);const z=async()=>{try{const e=await fetch(`${d.J}/license-status`),s=await e.json();s.success&&s.isValid?b("valid"):b("invalid")}catch(e){console.error("\u68c0\u67e5\u8bb8\u53ef\u8bc1\u72b6\u6001\u5931\u8d25:",e),b("invalid")}};(0,n.useEffect)((()=>{z()}),[]);(0,n.useEffect)((()=>{(async()=>{try{const e=await c.A.get(`${d.J}/public-key`);I(e.data.publicKey)}catch(e){console.error("\u83b7\u53d6\u516c\u94a5\u5931\u8d25:",e),m("\u7cfb\u7edf\u9519\u8bef\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5")}})()}),[]);const V=()=>{localStorage.removeItem("navPermissions"),C(),$.push("/")},P=()=>{$.push("/AdminPanel")};return _?(0,u.jsx)("div",{className:r.loginWrapper,children:(0,u.jsxs)("div",{className:r.loginContainer,children:[T>=9&&(0,u.jsxs)("div",{className:r.openSourceNotice,style:{marginTop:"0px",textAlign:"left"},children:[(0,u.jsx)("a",{href:"/About",rel:"noopener noreferrer",style:{fontSize:"14px",color:"rgba(110, 110, 110, 0.5)"},children:"\u5173\u4e8e\u672c\u673a"}),(0,u.jsx)("a",{style:{margin:"0 6px"}}),(0,u.jsx)("a",{href:"/\u6388\u6743\u58f0\u660e.txt",rel:"noopener noreferrer",style:{fontSize:"14px",color:"rgba(110, 110, 110, 0.5)"},children:"\u6388\u6743\u58f0\u660e"})]}),(0,u.jsx)("img",{src:"/img/est-image.png",alt:"EST Logo",className:r.logo}),(0,u.jsxs)("p",{className:r.subtitle,children:["\u6b22\u8fce\u56de\u6765\uff0c",B,"\uff01"]}),(0,u.jsxs)("div",{className:r.accountInfo,children:[(0,u.jsxs)("div",{className:r.infoRow,children:[(0,u.jsx)("span",{className:r.infoLabel,children:"\u73ed\u7ea7:"}),(0,u.jsx)("span",{className:r.infoValue,children:f.class_name})]}),(0,u.jsxs)("div",{className:r.infoRow,children:[(0,u.jsx)("span",{className:r.infoLabel,children:"\u7528\u6237\u540d:"}),(0,u.jsx)("span",{className:r.infoValue,children:f.username})]}),(0,u.jsxs)("div",{className:r.infoRow,children:[(0,u.jsx)("span",{className:r.infoLabel,children:"\u5b66\u53f7:"}),(0,u.jsx)("span",{className:r.infoValue,children:f.student_id})]}),(0,u.jsxs)("div",{className:r.infoRow,children:[(0,u.jsx)("span",{className:r.infoLabel,children:"\u7ec4\u7ec7\u673a\u6784:"}),(0,u.jsx)("span",{className:r.infoValue,children:f.organization})]})]}),(0,u.jsx)("button",{onClick:V,className:`${r.submitButton} ${r.logoutButton}`,children:"\u767b\u51fa"}),T>=9&&(0,u.jsx)("button",{onClick:P,className:`${r.submitButton} ${r.adminButton}`,children:"\u7528\u6237\u7ba1\u7406"})]})}):(0,u.jsx)("div",{className:r.loginWrapper,children:(0,u.jsxs)("div",{className:r.loginContainer,children:[(0,u.jsx)("img",{src:"/img/est-image.png",alt:"EST Logo",className:r.logo}),(0,u.jsxs)("div",{children:[(0,u.jsx)("h2",{className:r.title,children:"\u6b22\u8fce\u56de\u6765"}),(0,u.jsx)("p",{className:r.subtitle,children:"\u8bf7\u767b\u5f55\u60a8\u7684\u8d26\u6237"}),"invalid"===j&&(0,u.jsxs)("div",{className:r.licenseWarning,children:[(0,u.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:12},children:[(0,u.jsx)("span",{style:{fontSize:20},children:"\ud83d\udd12"}),(0,u.jsxs)("div",{children:[(0,u.jsx)("h3",{style:{margin:0,fontWeight:600,fontSize:16},children:"\u672a\u68c0\u6d4b\u5230\u6709\u6548\u8bb8\u53ef\u8bc1"}),(0,u.jsx)("p",{style:{margin:"6px 0 0",color:"#64748b",fontSize:13},children:"\u8bf7\u4e0a\u4f20\u7531\u53d1\u884c\u65b9\u63d0\u4f9b\u7684 .lic \u6587\u4ef6\u4ee5\u7ee7\u7eed\u767b\u5f55\u3002"})]})]}),(0,u.jsxs)("div",{className:r.licenseUpload,children:[(0,u.jsx)("input",{type:"file",id:"licenseFile",accept:".lic",onChange:async e=>{const s=e.target.files[0];if(!s)return;if(!s.name.endsWith(".lic"))return void S("\u8bf7\u4e0a\u4f20.lic\u683c\u5f0f\u7684\u8bb8\u53ef\u8bc1\u6587\u4ef6");y(!0),S(""),w("");const a=new FormData;a.append("license",s);try{const e=localStorage.getItem("token"),s=await fetch(`${d.J}/upload-license`,{method:"POST",body:a,headers:{Authorization:`Bearer ${e}`}}),n=await s.json();n.success?(w("\u8bb8\u53ef\u8bc1\u4e0a\u4f20\u6210\u529f\uff01"),await z()):S(n.error||"\u8bb8\u53ef\u8bc1\u4e0a\u4f20\u5931\u8d25")}catch(n){console.error("\u4e0a\u4f20\u8bb8\u53ef\u8bc1\u5931\u8d25:",n),S("\u4e0a\u4f20\u8bb8\u53ef\u8bc1\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5")}finally{y(!1)}},style:{display:"none"}}),(0,u.jsx)("div",{onClick:()=>document.getElementById("licenseFile").click(),style:{border:"2px dashed #cbd5e1",borderRadius:12,padding:16,textAlign:"center",background:"#f8fafc",cursor:"pointer",transition:"background .2s ease",marginBottom:12},children:(0,u.jsx)("span",{style:{color:"#334155",fontSize:13},children:"\u70b9\u51fb\u9009\u62e9\u6216\u62d6\u62fd .lic \u6587\u4ef6\u5230\u6b64\u5904"})}),v&&(0,u.jsx)("p",{className:r.error,children:v}),k&&(0,u.jsx)("p",{className:r.success,children:k}),(0,u.jsx)("p",{style:{fontSize:12,color:"#64748b",marginTop:8},children:"\u63d0\u793a\uff1a\u4e0a\u4f20\u540e\u7cfb\u7edf\u4f1a\u81ea\u52a8\u6821\u9a8c\u8bb8\u53ef\u8bc1\u6709\u6548\u6027\u3002"})]})]}),"invalid"!==j&&(0,u.jsxs)("form",{onSubmit:async s=>{s.preventDefault(),g(!0),m("");try{const s=await(async e=>{try{const s=JSON.stringify(e),n=a(21396),t=n.lib.WordArray.random(32),i=n.lib.WordArray.random(16);return{data:n.AES.encrypt(s,t,{iv:i,mode:n.mode.CBC,padding:n.pad.Pkcs7}).toString(),key:t.toString(n.enc.Base64),iv:i.toString(n.enc.Base64)}}catch(s){throw console.error("Encryption error:",s),new Error("\u52a0\u5bc6\u5931\u8d25")}})({student_id_or_username:e,password:t}),n=await c.A.post(`${d.J}/login`,s);if(n.data.success){await E(n.data.token,n.data.username),x(n.data);const e=parseInt(n.data.level),s=n.data.model,a=["\u767b\u5165/\u767b\u51fa"],t=["\u5e03\u7ebf\u6d4b\u8bd5","Fluke\u6d4b\u8bd5\u4eea\u6a21\u62df\u5668"],i=["Wi-Fi\u6d4b\u8bd5","NetAlly\u6d4b\u8bd5\u4eea\u6a21\u62df\u5668"];let r;r="EST-05E"===s||"EST-05C"===s||"EST-10A"===s?["\u529e\u516c\u573a\u666f"]:"EST-10E"===s||"EST-10C"===s?["\u529e\u516c\u573a\u666f","\u5de5\u4e1a\u573a\u666f"]:"EST-100E"===s||"EST-100C"===s||"EST-100"===s?["\u529e\u516c\u573a\u666f","\u5de5\u4e1a\u573a\u666f","\u6570\u636e\u4e2d\u5fc3\u573a\u666f"]:["\u529e\u516c\u573a\u666f"];const o=["\u7ade\u8d5b\u6a21\u5f0f"],l=["\u63a7\u5236\u53f0","\u7ade\u8d5b\u63a7\u5236\u53f0"];let c;switch(e){case 0:c=[...a,...t];break;case 1:c=[...a,...t,...r,...o];break;case 2:c=[...a,...i];break;case 3:c=[...a,...t,...i];break;case 4:c=[...a,...t,...i,...r,...o];break;case 9:c=[...a,...t,,...r,...o,...l];break;default:c=a}localStorage.setItem("navPermissions",JSON.stringify(c)),window.location.reload()}else m("\u767b\u5f55\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u7528\u6237\u540d/\u90ae\u7bb1\u548c\u5bc6\u7801")}catch(n){console.error("Login error:",n),n.response&&403===n.response.status?m(n.response.data.error||"\u8d26\u6237\u5df2\u8fc7\u671f\uff0c\u8bf7\u8054\u7cfb\u7cfb\u7edf\u7ba1\u7406\u5458"):m("\u767b\u5f55\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5")}finally{g(!1)}},className:r.form,children:[(0,u.jsx)("div",{className:r.inputGroup,children:(0,u.jsx)("input",{type:"text",value:e,onChange:e=>s(e.target.value),required:!0,placeholder:"\u7528\u6237\u540d\u6216\u90ae\u7bb1",className:`${r.input} ${p?r.inputError:""}`})}),(0,u.jsx)("div",{className:r.inputGroup,children:(0,u.jsx)("input",{type:"password",value:t,onChange:e=>i(e.target.value),required:!0,placeholder:"\u5bc6\u7801",className:`${r.input} ${p?r.inputError:""}`})}),(0,u.jsx)("button",{type:"submit",className:r.submitButton,disabled:h,children:h?(0,u.jsx)("span",{className:r.loader}):"\u767b\u5165"})]}),p&&"invalid"!==j&&(0,u.jsx)("p",{className:r.error,children:p})]})]})})};function m(){const{siteConfig:e}=(0,t.A)();return(0,u.jsx)(i.A,{title:`${e.title}`,description:"Description will go into a meta tag in <head />",children:(0,u.jsx)("main",{children:(0,u.jsx)(p,{})})})}},50477:()=>{}}]);