mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 18:31:57 +00:00
24 lines
37 KiB
JavaScript
24 lines
37 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-Bk2509Bx.js","assets/vue-vendor-DV7DYXbz.js","assets/ThemeToggle-DROshBR1.js","assets/ThemeToggle-MCe3g2y3.css","assets/element-plus-BSjV1f9S.js","assets/vendor-Dr8jvgFu.js","assets/element-plus-BWHEPMNp.css","assets/UserLoginView-CQ2slm3o.js","assets/UserDashboardView-CxHhaP6a.js","assets/ConfirmModal-C2rCOkXI.js","assets/ConfirmModal-BzWkJtgn.css","assets/TutorialView-Cpvhof5r.js","assets/TutorialView-DfJPWFZG.css","assets/UserManagementView-CaiXdQvq.js","assets/MainLayout-C8oFjafl.js","assets/LogoTitle-DF7a1vCs.js","assets/LogoTitle-DXipqypn.css","assets/MainLayout-DUrvC5cF.css","assets/DashboardView-BzrWMTub.js","assets/chart-yFHxLHpB.js","assets/DashboardView-C7pS8AeR.css","assets/ApiKeysView-DZf3x888.js","assets/WindowCountdown-Cz478C_V.js","assets/ActionDropdown-GADQlLlI.js","assets/ActionDropdown-BAe-X9zd.css","assets/ApiKeysView-M9vmNqGR.css","assets/ApiKeyUsageRecordsView-DEBCoJV1.js","assets/RecordDetailModal-iWzEw88d.js","assets/RecordDetailModal-CZv4ajwT.css","assets/AccountsView-mqqu5LbU.js","assets/AccountsView-CWWlCm8X.css","assets/AccountUsageRecordsView-CAVEOn9q.js","assets/SettingsView-BSo4LhAq.js","assets/SettingsView-D2Ttplqa.css","assets/ApiStatsView-D5wlfbRX.js","assets/ApiStatsView-BDCKkmc6.css","assets/QuotaCardsView-B9kpLmPn.js"])))=>i.map(i=>d[i]);
|
|
import{aP as B,aQ as ne,aR as ie,r as S,c as O,o as K,q as Y,V as ce,I as de,z as P,x as C,ac as ue,Q as le,a5 as me,y as w,C as F,L as W,P as z,Y as pe,B as he,R as Q,av as ge,aM as Ae,aS as fe}from"./vue-vendor-DV7DYXbz.js";import{i as ye,z as Te}from"./element-plus-BSjV1f9S.js";import{P as k}from"./vendor-Dr8jvgFu.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const d of i.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&r(d)}).observe(document,{childList:!0,subtree:!0});function s(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=s(o);fetch(o.href,i)}})();const be="modulepreload",Se=function(e){return"/admin-next/"+e},j={},T=function(t,s,r){let o=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const d=document.querySelector("meta[property=csp-nonce]"),g=(d==null?void 0:d.nonce)||(d==null?void 0:d.getAttribute("nonce"));o=Promise.allSettled(s.map(A=>{if(A=Se(A),A in j)return;j[A]=!0;const m=A.endsWith(".css"),h=m?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${A}"]${h}`))return;const c=document.createElement("link");if(c.rel=m?"stylesheet":be,m||(c.as="script"),c.crossOrigin="",c.href=A,g&&c.setAttribute("nonce",g),document.head.appendChild(c),m)return new Promise((f,b)=>{c.addEventListener("load",f),c.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${A}`)))})}))}function i(d){const g=new Event("vite:preloadError",{cancelable:!0});if(g.payload=d,window.dispatchEvent(g),!g.defaultPrevented)throw d}return o.then(d=>{for(const g of d||[])g.status==="rejected"&&i(g.reason);return t().catch(i)})},$={basePath:"/admin-next/",apiPrefix:""},ke=(e="")=>(e&&!e.startsWith("/")&&(e="/"+e),$.basePath+(e.startsWith("#")?e:"#"+e)),Pe=()=>ke("/login");let G=null,Ee=0;const x=(e,t="info",s="",r=3e3)=>{G||(G=document.createElement("div"),G.id="toast-container",G.style.cssText="position: fixed; top: 20px; right: 20px; z-index: 10000;",document.body.appendChild(G));const o=++Ee,i=document.createElement("div");i.className=`toast rounded-2xl p-4 shadow-2xl backdrop-blur-sm toast-${t}`,i.style.cssText=`
|
|
position: relative;
|
|
min-width: 320px;
|
|
max-width: 500px;
|
|
margin-bottom: 16px;
|
|
transform: translateX(100%);
|
|
transition: transform 0.3s ease-in-out;
|
|
`;const d={success:"fas fa-check-circle",error:"fas fa-times-circle",warning:"fas fa-exclamation-triangle",info:"fas fa-info-circle"};return i.innerHTML=`
|
|
<div class="flex items-start gap-3">
|
|
<div class="flex-shrink-0 mt-0.5">
|
|
<i class="${d[t]} text-lg"></i>
|
|
</div>
|
|
<div class="flex-1 min-w-0">
|
|
${s?`<h4 class="font-semibold text-sm mb-1">${s}</h4>`:""}
|
|
<p class="text-sm opacity-90 leading-relaxed">${e.replace(/\n/g,"<br>")}</p>
|
|
</div>
|
|
<button onclick="this.parentElement.parentElement.remove()"
|
|
class="flex-shrink-0 text-white/70 hover:text-white transition-colors ml-2">
|
|
<i class="fas fa-times"></i>
|
|
</button>
|
|
</div>
|
|
`,G.appendChild(i),setTimeout(()=>i.style.transform="translateX(0)",10),r>0&&setTimeout(()=>{i.style.transform="translateX(100%)",setTimeout(()=>i.remove(),300)},r),o},xs=async(e,t="已复制")=>{var s;try{if((s=navigator.clipboard)!=null&&s.writeText)await navigator.clipboard.writeText(e);else{const r=document.createElement("textarea");r.value=e,document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r)}return x(t,"success"),!0}catch(r){return console.error("Failed to copy:",r),x("复制失败","error"),!1}},Ls=e=>{if(e==null)return"0";const t=Math.abs(e);return t>=1e9?(e/1e9).toFixed(2)+"B":t>=1e6?(e/1e6).toFixed(2)+"M":t>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString()},Rs=(e,t="YYYY-MM-DD HH:mm:ss")=>{if(!e)return"";const s=new Date(e),r=o=>String(o).padStart(2,"0");return t.replace("YYYY",s.getFullYear()).replace("MM",r(s.getMonth()+1)).replace("DD",r(s.getDate())).replace("HH",r(s.getHours())).replace("mm",r(s.getMinutes())).replace("ss",r(s.getSeconds()))},Ms=e=>{if(!e)return"";const t=new Date(e),s=new Date-t,r=Math.floor(s/6e4),o=Math.floor(r/60),i=Math.floor(o/24);return i>=7?t.toLocaleDateString("zh-CN"):i>0?`${i}天前`:o>0?`${o}小时前`:r>0?`${r}分钟前`:"刚刚"},Ks=e=>e?new Date(e).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"",v=`${$.apiPrefix}/users`,J=B("user",{state:()=>({user:null,isAuthenticated:!1,sessionToken:null,loading:!1,config:null}),getters:{isLoggedIn:e=>e.isAuthenticated&&e.user,userName:e=>{var t,s;return((t=e.user)==null?void 0:t.displayName)||((s=e.user)==null?void 0:s.username)},userRole:e=>{var t;return(t=e.user)==null?void 0:t.role}},actions:{async login(e){this.loading=!0;try{const t=await k.post(`${v}/login`,e);if(t.data.success)return this.user=t.data.user,this.sessionToken=t.data.sessionToken,this.isAuthenticated=!0,localStorage.setItem("userToken",this.sessionToken),localStorage.setItem("userData",JSON.stringify(this.user)),this.setAuthHeader(),t.data;throw new Error(t.data.message||"Login failed")}catch(t){throw this.clearAuth(),t}finally{this.loading=!1}},async logout(){try{this.sessionToken&&await k.post(`${v}/logout`,{},{headers:{"x-user-token":this.sessionToken}})}catch(e){console.error("Logout request failed:",e)}finally{this.clearAuth()}},async checkAuth(){const e=localStorage.getItem("userToken"),t=localStorage.getItem("userData"),s=localStorage.getItem("userConfig");if(!e||!t)return this.clearAuth(),!1;try{return this.sessionToken=e,this.user=JSON.parse(t),this.config=s?JSON.parse(s):null,this.isAuthenticated=!0,this.setAuthHeader(),await this.getUserProfile(),!0}catch(r){return console.error("Auth check failed:",r),this.clearAuth(),!1}},async getUserProfile(){var e,t,s,r;try{const o=await k.get(`${v}/profile`);if(o.data.success)return this.user=o.data.user,this.config=o.data.config,localStorage.setItem("userData",JSON.stringify(this.user)),localStorage.setItem("userConfig",JSON.stringify(this.config)),o.data.user}catch(o){throw(((e=o.response)==null?void 0:e.status)===401||((t=o.response)==null?void 0:t.status)===403)&&(this.clearAuth(),((s=o.response)==null?void 0:s.status)===403)?new Error(((r=o.response.data)==null?void 0:r.message)||"Your account has been disabled"):o}},async getUserApiKeys(e=!1){try{const t={};e&&(t.includeDeleted="true");const s=await k.get(`${v}/api-keys`,{params:t});return s.data.success?s.data.apiKeys:[]}catch(t){throw console.error("Failed to fetch API keys:",t),t}},async createApiKey(e){try{return(await k.post(`${v}/api-keys`,e)).data}catch(t){throw console.error("Failed to create API key:",t),t}},async deleteApiKey(e){try{return(await k.delete(`${v}/api-keys/${e}`)).data}catch(t){throw console.error("Failed to delete API key:",t),t}},async getUserUsageStats(e={}){try{const t=await k.get(`${v}/usage-stats`,{params:e});return t.data.success?t.data.stats:null}catch(t){throw console.error("Failed to fetch usage stats:",t),t}},clearAuth(){this.user=null,this.sessionToken=null,this.isAuthenticated=!1,this.config=null,localStorage.removeItem("userToken"),localStorage.removeItem("userData"),localStorage.removeItem("userConfig"),delete k.defaults.headers.common["x-user-token"]},setAuthHeader(){this.sessionToken&&(k.defaults.headers.common["x-user-token"]=this.sessionToken)},setupAxiosInterceptors(){k.interceptors.response.use(e=>e,e=>{var t,s;if(((t=e.response)==null?void 0:t.status)===403){const r=(s=e.response.data)==null?void 0:s.message;r&&(r.includes("disabled")||r.includes("Account disabled"))&&(this.clearAuth(),x(r,"error"),window.location.pathname!=="/user-login"&&(window.location.href="/user-login"))}return Promise.reject(e)})}}}),ve=()=>T(()=>import("./LoginView-Bk2509Bx.js"),__vite__mapDeps([0,1,2,3,4,5,6])),Ge=()=>T(()=>import("./UserLoginView-CQ2slm3o.js"),__vite__mapDeps([7,1,2,3,4,5,6])),_e=()=>T(()=>import("./UserDashboardView-CxHhaP6a.js"),__vite__mapDeps([8,1,2,3,9,10,11,12,4,5,6])),we=()=>T(()=>import("./UserManagementView-CaiXdQvq.js"),__vite__mapDeps([13,1,9,10,5,4,6])),E=()=>T(()=>import("./MainLayout-C8oFjafl.js"),__vite__mapDeps([14,1,15,16,2,3,9,10,4,5,6,17])),Oe=()=>T(()=>import("./DashboardView-BzrWMTub.js"),__vite__mapDeps([18,4,1,5,6,19,20])),Ie=()=>T(()=>import("./ApiKeysView-DZf3x888.js"),__vite__mapDeps([21,4,1,5,6,9,10,22,23,24,25])),Ce=()=>T(()=>import("./ApiKeyUsageRecordsView-DEBCoJV1.js"),__vite__mapDeps([26,4,1,5,6,27,28])),$e=()=>T(()=>import("./AccountsView-mqqu5LbU.js"),__vite__mapDeps([29,4,1,5,6,9,10,19,23,24,30])),Ue=()=>T(()=>import("./AccountUsageRecordsView-CAVEOn9q.js"),__vite__mapDeps([31,4,1,5,6,27,28])),De=()=>T(()=>import("./SettingsView-BSo4LhAq.js"),__vite__mapDeps([32,1,9,10,4,5,6,33])),xe=()=>T(()=>import("./ApiStatsView-D5wlfbRX.js"),__vite__mapDeps([34,1,15,16,2,3,5,22,11,12,4,6,35])),Le=()=>T(()=>import("./QuotaCardsView-B9kpLmPn.js"),__vite__mapDeps([36,1,9,10,4,5,6])),Re=[{path:"/",redirect:()=>{const e=window.location.pathname,t=$.basePath.replace(/\/$/,"");return e===t||e===t+"/","/api-stats"}},{path:"/login",name:"Login",component:ve,meta:{requiresAuth:!1}},{path:"/admin-login",redirect:"/login"},{path:"/user-login",name:"UserLogin",component:Ge,meta:{requiresAuth:!1,userAuth:!0}},{path:"/user-dashboard",name:"UserDashboard",component:_e,meta:{requiresUserAuth:!0}},{path:"/api-stats",name:"ApiStats",component:xe,meta:{requiresAuth:!1}},{path:"/dashboard",component:E,meta:{requiresAuth:!0},children:[{path:"",name:"Dashboard",component:Oe}]},{path:"/api-keys",component:E,meta:{requiresAuth:!0},children:[{path:"",name:"ApiKeys",component:Ie}]},{path:"/api-keys/:keyId/usage-records",component:E,meta:{requiresAuth:!0},children:[{path:"",name:"ApiKeyUsageRecords",component:Ce}]},{path:"/accounts",component:E,meta:{requiresAuth:!0},children:[{path:"",name:"Accounts",component:$e}]},{path:"/accounts/:accountId/usage-records",component:E,meta:{requiresAuth:!0},children:[{path:"",name:"AccountUsageRecords",component:Ue}]},{path:"/settings",component:E,meta:{requiresAuth:!0},children:[{path:"",name:"Settings",component:De}]},{path:"/user-management",component:E,meta:{requiresAuth:!0},children:[{path:"",name:"UserManagement",component:we}]},{path:"/quota-cards",component:E,meta:{requiresAuth:!0},children:[{path:"",name:"QuotaCards",component:Le}]},{path:"/:pathMatch(.*)*",redirect:"/api-stats"}],L=ne({history:ie($.basePath),routes:Re});L.beforeEach(async(e,t,s)=>{const r=te(),o=J();if(console.log("路由导航:",{to:e.path,from:t.path,fullPath:e.fullPath,requiresAuth:e.meta.requiresAuth,requiresUserAuth:e.meta.requiresUserAuth,isAuthenticated:r.isAuthenticated,isUserAuthenticated:o.isAuthenticated}),e.path===t.path&&e.fullPath===t.fullPath)return s();if(e.meta.requiresUserAuth){if(!o.isAuthenticated)try{if(!await o.checkAuth())return s("/user-login")}catch(i){return i.message&&i.message.includes("disabled")&&x(i.message,"error"),s("/user-login")}return s()}e.path==="/api-stats"||e.path.startsWith("/api-stats")?s():e.path==="/user-login"?o.isAuthenticated?s("/user-dashboard"):s():e.meta.requiresAuth&&!r.isAuthenticated?s("/login"):e.path==="/login"&&r.isAuthenticated?s("/dashboard"):s()});const V=k.create({baseURL:$.apiPrefix,timeout:3e4,headers:{"Content-Type":"application/json"}});V.interceptors.request.use(e=>{const t=localStorage.getItem("authToken");return t&&(e.headers.Authorization=`Bearer ${t}`),e});V.interceptors.response.use(e=>e.data,e=>{var t;if(((t=e.response)==null?void 0:t.status)===401){const s=window.location.pathname+window.location.hash,r=s.includes("/api-stats")||s.includes("/user-login");!s.includes("/login")&&!s.endsWith("/")&&!r&&(localStorage.removeItem("authToken"),window.location.href=Pe())}return Promise.reject(e)});const a=async e=>{var t,s;try{return await V(e)}catch(r){console.error("Request failed:",r);const o=(t=r.response)==null?void 0:t.data;if(o){if(typeof o.success<"u")return o;if(o.error||o.message)return{success:!1,message:o.message||o.error}}const i=(s=r.response)==null?void 0:s.status;return{success:!1,message:{401:"未授权,请重新登录",403:"无权限访问",404:"请求的资源不存在",500:"服务器内部错误"}[i]||r.message||"请求失败"}}},Me=()=>a({url:"/apiStats/models",method:"GET"}),Ke=e=>a({url:"/apiStats/api/get-key-id",method:"POST",data:{apiKey:e}}),Be=e=>a({url:"/apiStats/api/user-stats",method:"POST",data:{apiId:e}}),Ve=(e,t="daily")=>a({url:"/apiStats/api/user-model-stats",method:"POST",data:{apiId:e,period:t}}),qe=e=>a({url:"/apiStats/api/batch-stats",method:"POST",data:{apiIds:e}}),Ne=(e,t="daily")=>a({url:"/apiStats/api/batch-model-stats",method:"POST",data:{apiIds:e,period:t}}),X=e=>a({url:"/web/auth/login",method:"POST",data:e}),Z=()=>a({url:"/web/auth/user",method:"GET"}),He=e=>a({url:"/web/auth/change-password",method:"POST",data:e}),ee=()=>a({url:"/admin/oem-settings",method:"GET"}),Fe=e=>a({url:"/admin/oem-settings",method:"PUT",data:e}),We=()=>a({url:"/apiStats/service-rates",method:"GET"}),ze=e=>a({url:"/apiStats/api/redeem-card",method:"POST",data:e}),Qe=(e,t={})=>a({url:"/apiStats/api/redemption-history",method:"GET",params:{apiId:e,...t}}),je=()=>a({url:"/admin/dashboard",method:"GET"}),Ye=e=>a({url:`/admin/usage-costs?period=${e}`,method:"GET"}),Je=e=>a({url:e,method:"GET"}),Xe=()=>a({url:"/admin/supported-clients",method:"GET"}),Ze=()=>a({url:"/admin/api-keys",method:"GET"}),et=e=>a({url:`/admin/api-keys?${e}`,method:"GET"}),tt=e=>a({url:"/admin/api-keys",method:"POST",data:e}),at=(e,t)=>a({url:`/admin/api-keys/${e}`,method:"PUT",data:t}),st=e=>a({url:`/admin/api-keys/${e}/toggle`,method:"PUT"}),ot=e=>a({url:`/admin/api-keys/${e}`,method:"DELETE"}),rt=(e,t)=>a({url:`/admin/api-keys/${e}/stats`,method:"GET",params:t}),nt=(e,t)=>a({url:`/admin/api-keys/${e}/model-stats`,method:"GET",params:t}),it=()=>a({url:"/admin/api-keys/tags",method:"GET"}),ct=()=>a({url:"/admin/api-keys/tags/details",method:"GET"}),dt=e=>a({url:"/admin/api-keys/tags",method:"POST",data:{name:e}}),ut=e=>a({url:`/admin/api-keys/tags/${encodeURIComponent(e)}`,method:"DELETE"}),lt=(e,t)=>a({url:`/admin/api-keys/tags/${encodeURIComponent(e)}`,method:"PUT",data:{newName:t}}),mt=()=>a({url:"/admin/api-keys/used-models",method:"GET"}),pt=e=>a({url:"/admin/api-keys/batch-stats",method:"POST",data:e}),ht=e=>a({url:"/admin/api-keys/batch-last-usage",method:"POST",data:e}),gt=()=>a({url:"/admin/api-keys/deleted",method:"GET"}),At=()=>a({url:"/admin/api-keys/cost-sort-status",method:"GET"}),ft=e=>a({url:`/admin/api-keys/${e}/restore`,method:"POST"}),yt=e=>a({url:`/admin/api-keys/${e}/permanent`,method:"DELETE"}),Tt=()=>a({url:"/admin/api-keys/deleted/clear-all",method:"DELETE"}),bt=e=>a({url:"/admin/api-keys/batch",method:"DELETE",data:e}),St=(e,t)=>a({url:`/admin/api-keys/${e}/expiration`,method:"PATCH",data:t}),kt=e=>a({url:"/admin/api-keys/batch",method:"POST",data:e}),Pt=e=>a({url:"/admin/api-keys/batch",method:"PUT",data:e}),Et=(e,t)=>a({url:`/admin/api-keys/${e}/usage-records`,method:"GET",params:t}),vt=()=>a({url:"/admin/claude-accounts",method:"GET"}),Gt=e=>a({url:"/admin/claude-accounts",method:"POST",data:e}),_t=(e,t)=>a({url:`/admin/claude-accounts/${e}`,method:"PUT",data:t}),wt=e=>a({url:`/admin/claude-accounts/${e}/refresh`,method:"POST"}),Ot=e=>a({url:"/admin/claude-accounts/generate-auth-url",method:"POST",data:e}),It=e=>a({url:"/admin/claude-accounts/exchange-code",method:"POST",data:e}),Ct=e=>a({url:"/admin/claude-accounts/generate-setup-token-url",method:"POST",data:e}),$t=e=>a({url:"/admin/claude-accounts/exchange-setup-token",method:"POST",data:e}),Ut=e=>a({url:"/admin/claude-accounts/oauth-with-cookie",method:"POST",data:e}),Dt=e=>a({url:"/admin/claude-accounts/setup-token-with-cookie",method:"POST",data:e}),xt=()=>a({url:"/admin/claude-console-accounts",method:"GET"}),Lt=e=>a({url:"/admin/claude-console-accounts",method:"POST",data:e}),Rt=(e,t)=>a({url:`/admin/claude-console-accounts/${e}`,method:"PUT",data:t}),Mt=()=>a({url:"/admin/bedrock-accounts",method:"GET"}),Kt=e=>a({url:"/admin/bedrock-accounts",method:"POST",data:e}),Bt=(e,t)=>a({url:`/admin/bedrock-accounts/${e}`,method:"PUT",data:t}),Vt=()=>a({url:"/admin/gemini-accounts",method:"GET"}),qt=e=>a({url:"/admin/gemini-accounts",method:"POST",data:e}),Nt=(e,t)=>a({url:`/admin/gemini-accounts/${e}`,method:"PUT",data:t}),Ht=e=>a({url:"/admin/gemini-accounts/generate-auth-url",method:"POST",data:e}),Ft=e=>a({url:"/admin/gemini-accounts/exchange-code",method:"POST",data:e}),Wt=()=>a({url:"/admin/gemini-api-accounts",method:"GET"}),zt=e=>a({url:"/admin/gemini-api-accounts",method:"POST",data:e}),Qt=(e,t)=>a({url:`/admin/gemini-api-accounts/${e}`,method:"PUT",data:t}),jt=()=>a({url:"/admin/openai-accounts",method:"GET"}),Yt=e=>a({url:"/admin/openai-accounts",method:"POST",data:e}),Jt=(e,t)=>a({url:`/admin/openai-accounts/${e}`,method:"PUT",data:t}),Xt=e=>a({url:"/admin/openai-accounts/generate-auth-url",method:"POST",data:e}),Zt=e=>a({url:"/admin/openai-accounts/exchange-code",method:"POST",data:e}),ea=()=>a({url:"/admin/openai-responses-accounts",method:"GET"}),ta=e=>a({url:"/admin/openai-responses-accounts",method:"POST",data:e}),aa=(e,t)=>a({url:`/admin/openai-responses-accounts/${e}`,method:"PUT",data:t}),sa=()=>a({url:"/admin/azure-openai-accounts",method:"GET"}),oa=e=>a({url:"/admin/azure-openai-accounts",method:"POST",data:e}),ra=(e,t)=>a({url:`/admin/azure-openai-accounts/${e}`,method:"PUT",data:t}),na=()=>a({url:"/admin/droid-accounts",method:"GET"}),ia=e=>a({url:"/admin/droid-accounts",method:"POST",data:e}),ca=(e,t)=>a({url:`/admin/droid-accounts/${e}`,method:"PUT",data:t}),da=e=>a({url:"/admin/droid-accounts/generate-auth-url",method:"POST",data:e}),ua=e=>a({url:"/admin/droid-accounts/exchange-code",method:"POST",data:e}),la=e=>a({url:`/admin/droid-accounts/${e}`,method:"GET"}),ma=()=>a({url:"/admin/ccr-accounts",method:"GET"}),pa=e=>a({url:"/admin/ccr-accounts",method:"POST",data:e}),ha=(e,t)=>a({url:`/admin/ccr-accounts/${e}`,method:"PUT",data:t}),ga=e=>a({url:e,method:"PUT"}),Aa=e=>a({url:e,method:"DELETE"}),fa=e=>a({url:e,method:"POST"}),ya=(e,t)=>a({url:e,method:"PUT",data:t}),Ta=()=>a({url:"/admin/claude-accounts/usage",method:"GET"}),ba=()=>a({url:"/admin/accounts/binding-counts",method:"GET"}),Sa=(e,t,s=30)=>a({url:`/admin/accounts/${e}/usage-history?platform=${t}&days=${s}`,method:"GET"}),ka=e=>a({url:`/admin/claude-console-accounts/${e}/usage`,method:"GET"}),Pa=(e,t)=>a({url:`/admin/accounts/${e}/usage-records`,method:"GET",params:t}),Ea=()=>a({url:"/admin/account-groups",method:"GET"}),va=e=>a({url:"/admin/account-groups",method:"POST",data:e}),Ga=(e,t)=>a({url:`/admin/account-groups/${e}`,method:"PUT",data:t}),_a=e=>a({url:`/admin/account-groups/${e}`,method:"DELETE"}),wa=e=>a({url:`/admin/account-groups/${e}/members`,method:"GET"}),Oa=()=>a({url:"/admin/users",method:"GET"}),Ia=e=>a({url:"/admin/quota-cards",method:"POST",data:e}),Ca=e=>a({url:`/admin/quota-cards/${e}`,method:"DELETE"}),$a=e=>a({url:"/admin/quota-cards",method:"GET",params:e}),Ua=()=>a({url:"/admin/quota-cards/stats",method:"GET"}),Da=()=>a({url:"/admin/redemptions",method:"GET"}),xa=(e,t)=>a({url:`/admin/redemptions/${e}/revoke`,method:"POST",data:t}),La=()=>a({url:"/admin/quota-cards/limits",method:"GET"}),Ra=e=>a({url:"/admin/quota-cards/limits",method:"PUT",data:e}),Ma=(e,t)=>a({url:`/admin/accounts/${e}/balance`,method:"GET",params:t}),Ka=(e,t)=>a({url:`/admin/accounts/${e}/balance/refresh`,method:"POST",data:t}),Ba=()=>a({url:"/admin/accounts/balance/summary",method:"GET"}),Va=(e,t)=>a({url:`/admin/accounts/balance/platform/${e}`,method:"GET",params:t}),qa=(e,t)=>a({url:`/admin/accounts/${e}/balance/script?platform=${t}`,method:"GET"}),Na=(e,t,s)=>a({url:`/admin/accounts/${e}/balance/script?platform=${t}`,method:"PUT",data:s}),Ha=(e,t,s)=>a({url:`/admin/accounts/${e}/balance/script/test?platform=${t}`,method:"POST",data:s}),Fa=()=>a({url:"/admin/balance-scripts/default",method:"GET"}),Wa=e=>a({url:"/admin/balance-scripts/default",method:"PUT",data:e}),za=e=>a({url:"/admin/balance-scripts/default/test",method:"POST",data:e}),Qa=e=>a({url:"/users",method:"GET",params:e}),ja=()=>a({url:"/users/stats/overview",method:"GET"}),Ya=e=>a({url:`/users/${e}`,method:"GET"}),Ja=(e,t)=>a({url:`/users/${e}/status`,method:"PATCH",data:t}),Xa=e=>a({url:`/users/${e}/disable-keys`,method:"POST"}),Za=(e,t)=>a({url:`/users/${e}/usage-stats`,method:"GET",params:t}),es=(e,t)=>a({url:`/users/${e}/role`,method:"PATCH",data:t}),ts=e=>a({url:"/admin/webhook/config",method:"GET",...e}),as=(e,t)=>a({url:"/admin/webhook/config",method:"POST",data:e,...t}),ss=(e,t)=>a({url:"/admin/webhook/platforms",method:"POST",data:e,...t}),os=(e,t)=>a({url:`/admin/webhook/platforms/${e}`,method:"DELETE",...t}),rs=(e,t,s)=>a({url:`/admin/webhook/platforms/${e}`,method:"PUT",data:t,...s}),ns=(e,t)=>a({url:`/admin/webhook/platforms/${e}/toggle`,method:"POST",...t}),is=(e,t)=>a({url:"/admin/webhook/test",method:"POST",data:e,...t}),cs=e=>a({url:"/admin/webhook/test-notification",method:"POST",...e}),ds=e=>a({url:"/admin/claude-relay-config",method:"GET",...e}),us=(e,t)=>a({url:"/admin/claude-relay-config",method:"PUT",data:e,...t}),ls=e=>a({url:"/admin/service-rates",method:"GET",...e}),ms=(e,t)=>a({url:"/admin/service-rates",method:"PUT",data:e,...t}),ps=()=>a({url:"/admin/check-updates",method:"GET"}),hs=()=>a({url:"/admin/claude-code-version",method:"GET"}),gs=()=>a({url:"/admin/claude-code-version/clear",method:"POST"}),Bs=Object.freeze(Object.defineProperty({__proto__:null,batchCreateApiKeysApi:kt,batchDeleteApiKeysApi:bt,batchUpdateApiKeysApi:Pt,changePasswordApi:He,checkUpdatesApi:ps,claudeOAuthWithCookieApi:Ut,claudeSetupTokenWithCookieApi:Dt,clearAllDeletedApiKeysApi:Tt,clearClaudeCodeVersionApi:gs,createAccountGroupApi:va,createApiKeyApi:tt,createApiKeyTagApi:dt,createAzureOpenAIAccountApi:oa,createBedrockAccountApi:Kt,createCcrAccountApi:pa,createClaudeAccountApi:Gt,createClaudeConsoleAccountApi:Lt,createDroidAccountApi:ia,createGeminiAccountApi:qt,createGeminiApiAccountApi:zt,createOpenAIAccountApi:Yt,createOpenAIResponsesAccountApi:ta,createQuotaCardApi:Ia,createWebhookPlatformApi:ss,deleteAccountByEndpointApi:Aa,deleteAccountGroupApi:_a,deleteApiKeyApi:ot,deleteApiKeyTagApi:ut,deleteQuotaCardApi:Ca,deleteWebhookPlatformApi:os,disableFrontUserKeysApi:Xa,exchangeClaudeCodeApi:It,exchangeClaudeSetupTokenApi:$t,exchangeDroidCodeApi:ua,exchangeGeminiCodeApi:Ft,exchangeOpenAICodeApi:Zt,generateClaudeAuthUrlApi:Ot,generateClaudeSetupTokenUrlApi:Ct,generateDroidAuthUrlApi:da,generateGeminiAuthUrlApi:Ht,generateOpenAIAuthUrlApi:Xt,getAccountBalanceApi:Ma,getAccountBalanceScriptApi:qa,getAccountGroupMembersApi:wa,getAccountGroupsApi:Ea,getAccountUsageHistoryApi:Sa,getAccountUsageRecordsByIdApi:Pa,getAccountsBindingCountsApi:ba,getAdminServiceRatesApi:ls,getApiKeyModelStatsApi:nt,getApiKeyStatsApi:rt,getApiKeyTagsApi:it,getApiKeyTagsDetailsApi:ct,getApiKeyUsageRecordsApi:Et,getApiKeyUsedModelsApi:mt,getApiKeysApi:Ze,getApiKeysBatchLastUsageApi:ht,getApiKeysBatchStatsApi:pt,getApiKeysCostSortStatusApi:At,getApiKeysWithParamsApi:et,getAuthUserApi:Z,getAzureOpenAIAccountsApi:sa,getBalanceByPlatformApi:Va,getBalanceSummaryApi:Ba,getBatchModelStatsApi:Ne,getBatchStatsApi:qe,getBedrockAccountsApi:Mt,getCcrAccountsApi:ma,getClaudeAccountsApi:vt,getClaudeAccountsUsageApi:Ta,getClaudeCodeVersionApi:hs,getClaudeConsoleAccountUsageApi:ka,getClaudeConsoleAccountsApi:xt,getClaudeRelayConfigApi:ds,getDashboardApi:je,getDefaultBalanceScriptApi:Fa,getDeletedApiKeysApi:gt,getDroidAccountByIdApi:la,getDroidAccountsApi:na,getFrontUserByIdApi:Ya,getFrontUserUsageStatsApi:Za,getFrontUsersApi:Qa,getFrontUsersStatsOverviewApi:ja,getGeminiAccountsApi:Vt,getGeminiApiAccountsApi:Wt,getKeyIdApi:Ke,getModelsApi:Me,getOemSettingsApi:ee,getOpenAIAccountsApi:jt,getOpenAIResponsesAccountsApi:ea,getQuotaCardLimitsApi:La,getQuotaCardsStatsApi:Ua,getQuotaCardsWithParamsApi:$a,getRedemptionHistoryByApiIdApi:Qe,getRedemptionsApi:Da,getServiceRatesApi:We,getSupportedClientsApi:Xe,getUsageCostsApi:Ye,getUsageStatsApi:Je,getUserModelStatsApi:Ve,getUserStatsApi:Be,getUsersApi:Oa,getWebhookConfigApi:ts,loginApi:X,permanentDeleteApiKeyApi:yt,redeemCardByApiIdApi:ze,refreshAccountBalanceApi:Ka,refreshClaudeAccountApi:wt,renameApiKeyTagApi:lt,restoreApiKeyApi:ft,revokeRedemptionApi:xa,testAccountBalanceScriptApi:Ha,testAccountByEndpointApi:fa,testDefaultBalanceScriptApi:za,testWebhookApi:is,testWebhookNotificationApi:cs,toggleAccountStatusApi:ga,toggleApiKeyApi:st,toggleWebhookPlatformApi:ns,updateAccountBalanceScriptApi:Na,updateAccountByEndpointApi:ya,updateAccountGroupApi:Ga,updateAdminServiceRatesApi:ms,updateApiKeyApi:at,updateApiKeyExpirationApi:St,updateAzureOpenAIAccountApi:ra,updateBedrockAccountApi:Bt,updateCcrAccountApi:ha,updateClaudeAccountApi:_t,updateClaudeConsoleAccountApi:Rt,updateClaudeRelayConfigApi:us,updateDefaultBalanceScriptApi:Wa,updateDroidAccountApi:ca,updateFrontUserRoleApi:es,updateFrontUserStatusApi:Ja,updateGeminiAccountApi:Nt,updateGeminiApiAccountApi:Qt,updateOemSettingsApi:Fe,updateOpenAIAccountApi:Jt,updateOpenAIResponsesAccountApi:aa,updateQuotaCardLimitsApi:Ra,updateWebhookConfigApi:as,updateWebhookPlatformApi:rs},Symbol.toStringTag,{value:"Module"})),te=B("auth",()=>{const e=S(!1),t=S(localStorage.getItem("authToken")||""),s=S(""),r=S(""),o=S(!1),i=S({siteName:"Claude Relay Service",siteIcon:"",siteIconData:"",faviconData:""}),d=S(!0),g=O(()=>!!t.value&&e.value),A=O(()=>t.value),m=O(()=>({username:s.value}));async function h(p){o.value=!0,r.value="";try{const n=await X(p);n.success?(t.value=n.token,s.value=n.username||p.username,e.value=!0,localStorage.setItem("authToken",n.token),await L.push("/dashboard")):r.value=n.message||"登录失败"}catch(n){r.value=n.message||"登录失败,请检查用户名和密码"}finally{o.value=!1}}function c(){e.value=!1,t.value="",s.value="",localStorage.removeItem("authToken"),L.push("/login")}function f(){t.value&&(e.value=!0,b())}async function b(){try{const p=await Z();if(!p.success||!p.user){c();return}s.value=p.user.username}catch{c()}}async function I(){d.value=!0;try{const p=await ee();if(p.success&&p.data){if(i.value={...i.value,...p.data},p.data.siteIconData||p.data.siteIcon){const n=document.querySelector("link[rel*='icon']")||document.createElement("link");n.type="image/x-icon",n.rel="shortcut icon",n.href=p.data.siteIconData||p.data.siteIcon,document.getElementsByTagName("head")[0].appendChild(n)}p.data.siteName&&(document.title=`${p.data.siteName} - 管理后台`)}}catch(p){console.error("加载OEM设置失败:",p)}finally{d.value=!1}}return{isLoggedIn:e,authToken:t,username:s,loginError:r,loginLoading:o,oemSettings:i,oemLoading:d,isAuthenticated:g,token:A,user:m,login:h,logout:c,checkAuth:f,loadOemSettings:I}}),y={LIGHT:"light",DARK:"dark",AUTO:"auto"},_={purple:{name:"默认紫",nameEn:"Purple",primary:"#667eea",secondary:"#764ba2",accent:"#f093fb",gradientStart:"#667eea",gradientMid:"#764ba2",gradientEnd:"#f093fb",glassStrong:"rgba(255, 255, 255, 0.95)",glass:"rgba(255, 255, 255, 0.1)",darkPrimary:"#818cf8",darkSecondary:"#a78bfa",darkAccent:"#c084fc",darkGradientStart:"#1f2937",darkGradientMid:"#374151",darkGradientEnd:"#4b5563",darkGlassStrong:"rgba(31, 41, 55, 0.95)",darkGlass:"rgba(0, 0, 0, 0.2)"},celadon:{name:"青瓷",nameEn:"Celadon",primary:"#7faaaf",secondary:"#5d8a8e",accent:"#a8d8dc",gradientStart:"#7faaaf",gradientMid:"#5d8a8e",gradientEnd:"#3d6a6e",glassStrong:"rgba(248, 253, 253, 0.95)",glass:"rgba(168, 216, 220, 0.1)",darkPrimary:"#9fcacd",darkSecondary:"#7daaae",darkAccent:"#c8f8fc",darkGradientStart:"#1a2a2b",darkGradientMid:"#2a3a3b",darkGradientEnd:"#3a4a4b",darkGlassStrong:"rgba(26, 42, 43, 0.95)",darkGlass:"rgba(0, 20, 20, 0.2)"},cinnabar:{name:"朱砂",nameEn:"Cinnabar",primary:"#c45a5a",secondary:"#8b3a3a",accent:"#e8a0a0",gradientStart:"#c45a5a",gradientMid:"#8b3a3a",gradientEnd:"#5c2a2a",glassStrong:"rgba(255, 252, 252, 0.95)",glass:"rgba(232, 160, 160, 0.1)",darkPrimary:"#e47a7a",darkSecondary:"#ab5a5a",darkAccent:"#f8c0c0",darkGradientStart:"#2a1a1a",darkGradientMid:"#3a2a2a",darkGradientEnd:"#4a3a3a",darkGlassStrong:"rgba(42, 26, 26, 0.95)",darkGlass:"rgba(20, 0, 0, 0.2)"},jade:{name:"墨玉",nameEn:"Jade",primary:"#4a7c59",secondary:"#2d5a3d",accent:"#7eb08c",gradientStart:"#4a7c59",gradientMid:"#2d5a3d",gradientEnd:"#1a3d28",glassStrong:"rgba(250, 255, 252, 0.95)",glass:"rgba(126, 176, 140, 0.1)",darkPrimary:"#6a9c79",darkSecondary:"#4d7a5d",darkAccent:"#9ed0ac",darkGradientStart:"#1a2a1e",darkGradientMid:"#2a3a2e",darkGradientEnd:"#3a4a3e",darkGlassStrong:"rgba(26, 42, 30, 0.95)",darkGlass:"rgba(0, 20, 10, 0.2)"},indigo:{name:"藏蓝",nameEn:"Indigo",primary:"#3a5a8c",secondary:"#2a4066",accent:"#6a8ab8",gradientStart:"#3a5a8c",gradientMid:"#2a4066",gradientEnd:"#1a2a44",glassStrong:"rgba(250, 252, 255, 0.95)",glass:"rgba(106, 138, 184, 0.1)",darkPrimary:"#5a7aac",darkSecondary:"#4a6086",darkAccent:"#8aaad8",darkGradientStart:"#1a1a2a",darkGradientMid:"#2a2a3a",darkGradientEnd:"#3a3a4a",darkGlassStrong:"rgba(26, 26, 42, 0.95)",darkGlass:"rgba(0, 0, 20, 0.2)"},amber:{name:"琥珀",nameEn:"Amber",primary:"#c49a3a",secondary:"#8b6914",accent:"#e8c86a",gradientStart:"#c49a3a",gradientMid:"#8b6914",gradientEnd:"#5c4a0a",glassStrong:"rgba(255, 253, 248, 0.95)",glass:"rgba(232, 200, 106, 0.1)",darkPrimary:"#e4ba5a",darkSecondary:"#ab8934",darkAccent:"#f8e88a",darkGradientStart:"#2a2a1a",darkGradientMid:"#3a3a2a",darkGradientEnd:"#4a4a3a",darkGlassStrong:"rgba(42, 42, 26, 0.95)",darkGlass:"rgba(20, 20, 0, 0.2)"},rouge:{name:"胭脂",nameEn:"Rouge",primary:"#b85a6a",secondary:"#8a3a4a",accent:"#e8a0b0",gradientStart:"#b85a6a",gradientMid:"#8a3a4a",gradientEnd:"#5c2a3a",glassStrong:"rgba(255, 250, 252, 0.95)",glass:"rgba(232, 160, 176, 0.1)",darkPrimary:"#d87a8a",darkSecondary:"#aa5a6a",darkAccent:"#f8c0d0",darkGradientStart:"#2a1a1e",darkGradientMid:"#3a2a2e",darkGradientEnd:"#4a3a3e",darkGlassStrong:"rgba(42, 26, 30, 0.95)",darkGlass:"rgba(20, 0, 10, 0.2)"}},As=B("theme",()=>{const e=S(y.AUTO),t=S(!1),s=S("purple"),r=O(()=>e.value===y.DARK?!0:e.value===y.LIGHT?!1:t.value),o=O(()=>r.value?y.DARK:y.LIGHT),i=O(()=>_[s.value]||_.purple),d=()=>{const n=window.matchMedia("(prefers-color-scheme: dark)");t.value=n.matches;const u=localStorage.getItem("themeMode");u&&Object.values(y).includes(u)?e.value=u:e.value=y.AUTO;const l=localStorage.getItem("colorScheme");l&&_[l]&&(s.value=l),g(),b()},g=()=>{const n=document.documentElement;r.value?n.classList.add("dark"):n.classList.remove("dark"),A()},A=()=>{const n=document.documentElement,u=i.value,l=r.value,q=l?u.darkPrimary:u.primary,N=l?u.darkSecondary:u.secondary,H=l?u.darkAccent:u.accent;n.style.setProperty("--primary-color",q),n.style.setProperty("--secondary-color",N),n.style.setProperty("--accent-color",H),n.style.setProperty("--bg-gradient-start",l?u.darkGradientStart:u.gradientStart),n.style.setProperty("--bg-gradient-mid",l?u.darkGradientMid:u.gradientMid),n.style.setProperty("--bg-gradient-end",l?u.darkGradientEnd:u.gradientEnd),n.style.setProperty("--glass-strong-color",l?u.darkGlassStrong:u.glassStrong),n.style.setProperty("--glass-color",l?u.darkGlass:u.glass),n.style.setProperty("--surface-color",l?u.darkGlassStrong:u.glassStrong),n.style.setProperty("--table-bg",l?u.darkGlassStrong:u.glassStrong),n.style.setProperty("--input-bg",l?u.darkGlassStrong:u.glassStrong);const M=re=>{const D=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(re);return D?`${parseInt(D[1],16)}, ${parseInt(D[2],16)}, ${parseInt(D[3],16)}`:"102, 126, 234"},U=M(q),se=M(N),oe=M(H);n.style.setProperty("--primary-rgb",U),n.style.setProperty("--secondary-rgb",se),n.style.setProperty("--accent-rgb",oe),n.style.setProperty("--table-hover",`rgba(${U}, ${l?.1:.05})`),n.style.setProperty("--border-color",`rgba(${U}, ${l?.25:.2})`),n.style.setProperty("--input-border",`rgba(${U}, ${l?.3:.25})`)},m=n=>{Object.values(y).includes(n)&&(e.value=n)},h=()=>{const n=[y.LIGHT,y.DARK,y.AUTO],l=(n.indexOf(e.value)+1)%n.length;e.value=n[l]},c=n=>{_[n]&&(s.value=n)},f=()=>{const n=Object.keys(_),l=(n.indexOf(s.value)+1)%n.length;s.value=n[l]};K(e,n=>{localStorage.setItem("themeMode",n),g()}),K(s,n=>{localStorage.setItem("colorScheme",n),A()}),K(t,()=>{e.value===y.AUTO&&g()});const b=()=>{const n=window.matchMedia("(prefers-color-scheme: dark)"),u=l=>{t.value=l.matches};return t.value=n.matches,n.addEventListener("change",u),()=>{n.removeEventListener("change",u)}};return{themeMode:e,isDarkMode:r,currentTheme:o,systemPrefersDark:t,colorScheme:s,currentColorScheme:i,ThemeMode:y,ColorSchemes:_,initTheme:d,setThemeMode:m,cycleThemeMode:h,watchSystemTheme:b,setColorScheme:c,cycleColorScheme:f,toggleTheme:()=>{h()},setTheme:n=>{n==="dark"?m(y.DARK):n==="light"&&m(y.LIGHT)}}}),ae=(e,t)=>{const s=e.__vccOpts||e;for(const[r,o]of t)s[r]=o;return s},fs={class:"toast-container"},ys=["onClick"],Ts={class:"toast-content"},bs={class:"toast-icon"},Ss={class:"toast-body"},ks={key:0,class:"toast-title"},Ps={class:"toast-message"},Es=["onClick"],vs={__name:"ToastNotification",setup(e,{expose:t}){const s=S([]);let r=0;const o=m=>{const h={success:"fas fa-check-circle",error:"fas fa-exclamation-circle",warning:"fas fa-exclamation-triangle",info:"fas fa-info-circle"};return h[m]||h.info},i=(m,h="info",c=null,f=5e3)=>{const b=++r,I={id:b,message:m,type:h,title:c,duration:f,isVisible:!1};return s.value.push(I),setTimeout(()=>{I.isVisible=!0},10),f>0&&setTimeout(()=>{d(b)},f),b},d=m=>{const h=s.value.findIndex(c=>c.id===m);if(h>-1){const c=s.value[h];c.isVisible=!1,setTimeout(()=>{const f=s.value.findIndex(b=>b.id===m);f>-1&&s.value.splice(f,1)},300)}},g=()=>{s.value.forEach(m=>{m.isVisible=!1}),setTimeout(()=>{s.value.length=0},300)},A=(m,h="info",c=null,f=5e3)=>i(m,h,c,f);return Y(()=>{window.showToast=A}),ce(()=>{window.showToast===A&&delete window.showToast}),t({showToast:A,removeToast:d,clearAllToasts:g}),(m,h)=>(w(),de(me,{to:"body"},[P("div",fs,[(w(!0),C(le,null,ue(s.value,c=>(w(),C("div",{key:c.id,class:F(["toast",`toast-${c.type}`,c.isVisible?"toast-show":"toast-hide"]),onClick:f=>d(c.id)},[P("div",Ts,[P("div",bs,[P("i",{class:F(o(c.type))},null,2)]),P("div",Ss,[c.title?(w(),C("div",ks,z(c.title),1)):W("",!0),P("div",Ps,z(c.message),1)]),P("button",{class:"toast-close",onClick:pe(f=>d(c.id),["stop"])},h[0]||(h[0]=[P("i",{class:"fas fa-times"},null,-1)]),8,Es)]),c.duration>0?(w(),C("div",{key:0,class:"toast-progress",style:he({animationDuration:`${c.duration}ms`})},null,4)):W("",!0)],10,ys))),128))])]))}},Gs=ae(vs,[["__scopeId","data-v-6710a02e"]]),_s={id:"app"},ws={__name:"App",setup(e){const t=te(),s=As(),r=S();return Y(()=>{s.initTheme(),s.watchSystemTheme(),t.checkAuth(),t.loadOemSettings()}),(o,i)=>{const d=ge("router-view");return w(),C("div",_s,[Q(d),Q(Gs,{ref_key:"toastRef",ref:r},null,512)])}}},Os=ae(ws,[["__scopeId","data-v-6f9c4d09"]]),R=Ae(Os),Is=fe();R.use(Is);R.use(L);R.use(ye,{locale:Te});const Cs=J();Cs.setupAxiosInterceptors();R.mount("#app");export{ft as $,it as A,kt as B,vt as C,xt as D,Vt as E,Wt as F,jt as G,ea as H,Mt as I,na as J,Ea as K,Oa as L,Pt as M,dt as N,lt as O,ct as P,ut as Q,At as R,et as S,mt as T,gt as U,bt as V,Tt as W,pt as X,ht as Y,xs as Z,ae as _,As as a,ya as a$,yt as a0,nt as a1,St as a2,Et as a3,ua as a4,sa as a5,Gt as a6,Lt as a7,Kt as a8,qt as a9,Xt as aA,Zt as aB,da as aC,Ga as aD,va as aE,_a as aF,la as aG,Me as aH,hs as aI,ka as aJ,gs as aK,wa as aL,ha as aM,pa as aN,$ as aO,Ma as aP,Ka as aQ,Ha as aR,Na as aS,qa as aT,ma as aU,ba as aV,Ta as aW,Va as aX,Ms as aY,fa as aZ,Sa as a_,Yt as aa,ia as ab,oa as ac,ta as ad,zt as ae,_t as af,Rt as ag,Bt as ah,Nt as ai,Jt as aj,ra as ak,aa as al,Qt as am,ca as an,ga as ao,Bs as ap,Aa as aq,wt as ar,Ot as as,It as at,Ct as au,$t as av,Ut as aw,Dt as ax,Ht as ay,Ft as az,J as b,Pa as b0,ee as b1,Fe as b2,ts as b3,ls as b4,as as b5,cs as b6,us as b7,ms as b8,is as b9,rs as ba,ss as bb,ns as bc,os as bd,ds as be,Ke as bf,Be as bg,Ve as bh,We as bi,qe as bj,Ne as bk,ze as bl,Qe as bm,Ks as bn,$a as bo,Ua as bp,Da as bq,La as br,Ra as bs,Ca as bt,Ia as bu,xa as bv,Rs as c,Ya as d,es as e,Ls as f,Za as g,Qa as h,ja as i,Ja as j,Xa as k,ps as l,He as m,je as n,Ye as o,Je as p,Ba as q,Xe as r,x as s,Ze as t,te as u,tt as v,at as w,st as x,ot as y,rt as z};
|