2 lines
1.7 KiB
JavaScript
2 lines
1.7 KiB
JavaScript
|
|
import{Z as y,r as c,T as f,$ as p}from"./index-BYp6OBwf.js";import{a as _}from"./index-CMW9Tl_L.js";const u="admin_token",m="admin_user_id",A=y("admin",()=>{const r=c(null),n=c(localStorage.getItem(u)),s=c(localStorage.getItem(m)),l=c(!1),I=f(()=>!!n.value&&!!r.value),h=f(()=>{var e;return((e=r.value)==null?void 0:e.name)||""}),E=f(()=>{var e;return((e=r.value)==null?void 0:e.user_id)||s.value||""});async function S(e,o,d){l.value=!0;try{const t=await _.post("/agents/login",{user_id:e,name:e,password:o,otp_code:d||void 0}),i=t.agent_info||t;if("require_otp"in t&&t.require_otp)throw l.value=!1,new Error("require_otp");if(i.role!=="admin")throw new Error("无管理权限:该账号非管理员角色");n.value=t.token||i.token,s.value=e,localStorage.setItem(u,t.token||i.token),localStorage.setItem(m,e),r.value={...i,role:"admin"},p.push("/dashboard")}catch(a){if(console.error("管理员登录失败:",a),a instanceof Error&&a.message==="require_otp")throw a;const t=a instanceof Error?a.message:"登录失败,请重试";throw new Error(t)}finally{l.value=!1}}function g(){n.value=null,s.value=null,r.value=null,localStorage.removeItem(u),localStorage.removeItem(m),p.push("/login")}async function v(){var e;try{if(!n.value)return;const o=await _.get("/agents/me");r.value=o}catch(o){console.error("获取管理员信息失败:",o),o&&typeof o=="object"&&"response"in o&&((e=o.response)==null?void 0:e.status)===401&&g()}}async function w(){const e=localStorage.getItem(u);if(e){n.value=e,s.value=localStorage.getItem(m);try{await v()}catch{g()}}}return{adminInfo:r,token:n,adminUserId:s,logging:l,isLoggedIn:I,adminName:h,userId:E,login:S,logout:g,refreshAdminInfo:v,initAuth:w}});export{A as u};
|