chore: update frontend build for v1.1.112 [skip ci]

This commit is contained in:
github-actions[bot]
2025-08-17 09:12:11 +00:00
parent 965d58e2e0
commit b33477cd9f
39 changed files with 7 additions and 196 deletions

View File

@@ -6,5 +6,5 @@ This branch contains the pre-built frontend assets for Claude Relay Service.
These files are automatically generated by the CI/CD pipeline. These files are automatically generated by the CI/CD pipeline.
Version: 1.1.111 Version: 1.1.112
Build Date: 2025-08-15 10:48:04 UTC Build Date: 2025-08-17 09:12:11 UTC

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.loading-spinner[data-v-4b61f9b3]{width:24px;height:24px;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:spin-4b61f9b3 1s linear infinite}@keyframes spin-4b61f9b3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.accounts-container[data-v-4b61f9b3]{min-height:calc(100vh - 300px)}.table-container[data-v-4b61f9b3]{overflow-x:auto;border-radius:12px;border:1px solid rgba(0,0,0,.05)}.table-row[data-v-4b61f9b3]{transition:all .2s ease}.table-row[data-v-4b61f9b3]:hover{background-color:#00000005}

View File

@@ -0,0 +1 @@
.custom-scrollbar[data-v-b315d95a]{scrollbar-width:thin;scrollbar-color:#cbd5e0 #f7fafc}.custom-scrollbar[data-v-b315d95a]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-b315d95a]::-webkit-scrollbar-track{background:#f7fafc}.custom-scrollbar[data-v-b315d95a]::-webkit-scrollbar-thumb{background-color:#cbd5e0;border-radius:3px}.custom-scrollbar[data-v-b315d95a]::-webkit-scrollbar-thumb:hover{background-color:#a0aec0}pre[data-v-75e2b028],pre[data-v-b0b904b9]{white-space:pre-wrap;word-wrap:break-word}@keyframes fadeIn-cfb0d627{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn[data-v-cfb0d627]{animation:fadeIn-cfb0d627 .2s ease-out}.loading-spinner[data-v-cfb0d627]{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin-cfb0d627 .8s linear infinite;display:inline-block}@keyframes spin-cfb0d627{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tab-content[data-v-99508535]{min-height:calc(100vh - 300px)}.table-container[data-v-99508535]{overflow-x:auto;border-radius:12px;border:1px solid rgba(0,0,0,.05)}.table-row[data-v-99508535]{transition:all .2s ease}.table-row[data-v-99508535]:hover{background-color:#00000005}.loading-spinner[data-v-99508535]{width:24px;height:24px;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:spin-99508535 1s linear infinite}@keyframes spin-99508535{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.api-key-date-picker[data-v-99508535] .el-input__inner{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.api-key-date-picker[data-v-99508535] .el-input__inner:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.api-key-date-picker[data-v-99508535] .el-range-separator{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{r as f,c as D,q as E,Z as R,x as s,y as n,z as c,I as N,L as v,C as d,P as L,R as T,J as W,B as $,Q as O,ac as q,T as A,a5 as H,D as I}from"./vue-vendor-DfnFpxGJ.js";import{_ as P}from"./index-KCMFVMd0.js";const F={class:"relative"},J={class:"select-none whitespace-nowrap text-sm font-medium text-gray-700"},M={class:"max-h-60 overflow-y-auto py-1"},Q=["onClick"],U={key:1,class:"fas fa-check ml-auto pl-3 text-xs text-blue-600"},Z={__name:"CustomDropdown",props:{modelValue:{type:[String,Number],default:""},options:{type:Array,required:!0},placeholder:{type:String,default:"请选择"},icon:{type:String,default:""},iconColor:{type:String,default:"text-gray-500"}},emits:["update:modelValue","change"],setup(o,{emit:V}){const w=o,g=V,t=f(!1),r=f(null),u=f(null),h=f({}),B=D(()=>{const e=w.options.find(i=>i.value===w.modelValue);return e?e.label:""}),S=async()=>{t.value=!t.value,t.value&&(await I(),y())},m=()=>{t.value=!1},z=e=>{g("update:modelValue",e.value),g("change",e.value),m()},y=()=>{if(!r.value||!t.value)return;const e=r.value.getBoundingClientRect(),i=250,a=window.innerHeight-e.bottom,C=e.top;let p,l;a>=i||a>=C?p=e.bottom+8:p=e.top-i-8,l=e.left;const _=200;l+_>window.innerWidth&&(l=window.innerWidth-_-10),l<10&&(l=10),h.value={top:`${p}px`,left:`${l}px`,minWidth:`${e.width}px`}},x=()=>{t.value&&y()},b=()=>{t.value&&m()},k=e=>{!r.value||!t.value||r.value.contains(e.target)||(u.value&&!u.value.contains(e.target)?m():u.value||m())};return E(()=>{window.addEventListener("scroll",x,!0),window.addEventListener("resize",b),document.addEventListener("click",k)}),R(()=>{window.removeEventListener("scroll",x,!0),window.removeEventListener("resize",b),document.removeEventListener("click",k)}),(e,i)=>(n(),s("div",F,[c("div",{ref_key:"triggerRef",ref:r,class:d(["relative flex cursor-pointer items-center gap-2 rounded-lg border border-gray-200 bg-white px-3 py-2 shadow-sm transition-all duration-200 hover:shadow-md",[t.value&&"border-blue-400 shadow-md"]]),onClick:S},[o.icon?(n(),s("i",{key:0,class:d(["fas",o.icon,"text-sm",o.iconColor])},null,2)):v("",!0),c("span",J,L(B.value||o.placeholder),1),c("i",{class:d(["fas fa-chevron-down ml-auto text-xs text-gray-400 transition-transform duration-200",t.value&&"rotate-180"])},null,2)],2),(n(),N(H,{to:"body"},[T(A,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"transform scale-95 opacity-0","enter-to-class":"transform scale-100 opacity-100","leave-active-class":"transition duration-150 ease-in","leave-from-class":"transform scale-100 opacity-100","leave-to-class":"transform scale-95 opacity-0"},{default:W(()=>[t.value?(n(),s("div",{key:0,ref_key:"dropdownRef",ref:u,class:"fixed z-[9999] min-w-max overflow-hidden rounded-lg border border-gray-200 bg-white shadow-lg",style:$(h.value)},[c("div",M,[(n(!0),s(O,null,q(o.options,a=>(n(),s("div",{key:a.value,class:d(["flex cursor-pointer items-center gap-2 whitespace-nowrap px-3 py-2 text-sm transition-colors duration-150",[a.value===o.modelValue?"bg-blue-50 font-medium text-blue-700":"text-gray-700 hover:bg-gray-50"]]),onClick:C=>z(a)},[a.icon?(n(),s("i",{key:0,class:d(["fas",a.icon,"text-xs"])},null,2)):v("",!0),c("span",null,L(a.label),1),a.value===o.modelValue?(n(),s("i",U)):v("",!0)],10,Q))),128))])],4)):v("",!0)]),_:1})]))]))}},K=P(Z,[["__scopeId","data-v-87609db5"]]);export{K as C};

View File

@@ -0,0 +1 @@
.max-h-60[data-v-87609db5]::-webkit-scrollbar{width:6px}.max-h-60[data-v-87609db5]::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.max-h-60[data-v-87609db5]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.max-h-60[data-v-87609db5]::-webkit-scrollbar-thumb:hover{background:#9ca3af}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.custom-date-picker[data-v-ceff92ae] .el-input__inner{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.custom-date-picker[data-v-ceff92ae] .el-input__inner:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1));--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.custom-date-picker[data-v-ceff92ae] .el-input__inner{font-size:13px;padding:0 10px}.custom-date-picker[data-v-ceff92ae] .el-range-separator{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));padding:0 2px}.custom-date-picker[data-v-ceff92ae] .el-range-input{font-size:13px}@keyframes spin-ceff92ae{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin[data-v-ceff92ae]{animation:spin-ceff92ae 1s linear infinite}

View File

@@ -1 +0,0 @@
import{c as x,r as b,q as f,x as a,z as t,L as i,Q as y,u as o,P as d,Y as w,K as u,aq as c,O as p,y as n}from"./vue-vendor-DfnFpxGJ.js";import{_,u as v}from"./index-KCMFVMd0.js";import"./element-plus-BaMaLFJp.js";import"./vendor-BDiMbLwQ.js";const h={class:"flex min-h-screen items-center justify-center p-4 sm:p-6"},k={class:"glass-strong w-full max-w-md rounded-xl p-6 shadow-2xl sm:rounded-2xl sm:p-8 md:rounded-3xl md:p-10"},L={class:"mb-6 text-center sm:mb-8"},S={class:"mx-auto mb-4 flex h-16 w-16 items-center justify-center overflow-hidden rounded-xl border border-gray-300/30 bg-gradient-to-br from-blue-500/20 to-purple-500/20 backdrop-blur-sm sm:mb-6 sm:h-20 sm:w-20 sm:rounded-2xl"},V=["src"],I={key:1,class:"fas fa-cloud text-2xl text-gray-700 sm:text-3xl"},N={key:1,class:"h-10 w-10 animate-pulse rounded bg-gray-300/50 sm:h-12 sm:w-12"},q={key:0,class:"header-title mb-2 text-2xl font-bold text-white sm:text-3xl"},D={key:1,class:"mx-auto mb-2 h-8 w-48 animate-pulse rounded bg-gray-300/50 sm:h-9 sm:w-64"},E=["disabled"],j={key:0,class:"fas fa-sign-in-alt mr-2"},B={key:1,class:"loading-spinner mr-2"},M={key:0,class:"mt-4 rounded-lg border border-red-500/30 bg-red-500/20 p-3 text-center text-xs text-red-800 backdrop-blur-sm sm:mt-6 sm:rounded-xl sm:p-4 sm:text-sm"},F={__name:"LoginView",setup(O){const e=v(),m=x(()=>e.oemLoading),l=b({username:"",password:""});f(()=>{e.loadOemSettings()});const g=async()=>{await e.login(l.value)};return(T,s)=>(n(),a("div",h,[t("div",k,[t("div",L,[t("div",S,[m.value?(n(),a("div",N)):(n(),a(y,{key:0},[o(e).oemSettings.siteIconData||o(e).oemSettings.siteIcon?(n(),a("img",{key:0,alt:"Logo",class:"h-10 w-10 object-contain sm:h-12 sm:w-12",src:o(e).oemSettings.siteIconData||o(e).oemSettings.siteIcon,onError:s[0]||(s[0]=r=>r.target.style.display="none")},null,40,V)):(n(),a("i",I))],64))]),!m.value&&o(e).oemSettings.siteName?(n(),a("h1",q,d(o(e).oemSettings.siteName),1)):m.value?(n(),a("div",D)):i("",!0),s[3]||(s[3]=t("p",{class:"text-base text-gray-600 sm:text-lg"},"管理后台",-1))]),t("form",{class:"space-y-4 sm:space-y-6",onSubmit:w(g,["prevent"])},[t("div",null,[s[4]||(s[4]=t("label",{class:"mb-2 block text-sm font-semibold text-gray-900 sm:mb-3"},"用户名",-1)),u(t("input",{"onUpdate:modelValue":s[1]||(s[1]=r=>l.value.username=r),class:"form-input w-full",placeholder:"请输入用户名",required:"",type:"text"},null,512),[[c,l.value.username]])]),t("div",null,[s[5]||(s[5]=t("label",{class:"mb-2 block text-sm font-semibold text-gray-900 sm:mb-3"},"密码",-1)),u(t("input",{"onUpdate:modelValue":s[2]||(s[2]=r=>l.value.password=r),class:"form-input w-full",placeholder:"请输入密码",required:"",type:"password"},null,512),[[c,l.value.password]])]),t("button",{class:"btn btn-primary w-full px-4 py-3 text-base font-semibold sm:px-6 sm:py-4 sm:text-lg",disabled:o(e).loginLoading,type:"submit"},[o(e).loginLoading?i("",!0):(n(),a("i",j)),o(e).loginLoading?(n(),a("div",B)):i("",!0),p(" "+d(o(e).loginLoading?"登录中...":"登录"),1)],8,E)],32),o(e).loginError?(n(),a("div",M,[s[6]||(s[6]=t("i",{class:"fas fa-exclamation-triangle mr-2"},null,-1)),p(d(o(e).loginError),1)])):i("",!0)])]))}},K=_(F,[["__scopeId","data-v-1990a2ea"]]);export{K as default};

View File

@@ -0,0 +1 @@
@keyframes pulse-10fd6442{0%{opacity:.7}50%{opacity:.4}to{opacity:.7}}.animate-pulse[data-v-10fd6442]{animation:pulse-10fd6442 2s cubic-bezier(.4,0,.6,1) infinite}.header-title[data-v-10fd6442]{text-shadow:0 1px 2px rgba(0,0,0,.1)}

View File

@@ -1 +0,0 @@
import{_ as r}from"./index-KCMFVMd0.js";import{x as t,y as s,z as a,Q as d,L as o,A as c,C as g,P as i}from"./vue-vendor-DfnFpxGJ.js";const u={class:"flex items-center gap-4"},f={class:"flex h-12 w-12 flex-shrink-0 items-center justify-center overflow-hidden rounded-xl border border-gray-300/30 bg-gradient-to-br from-blue-500/20 to-purple-500/20 backdrop-blur-sm"},y=["src"],h={key:1,class:"fas fa-cloud text-xl text-gray-700"},m={key:1,class:"h-8 w-8 animate-pulse rounded bg-gray-300/50"},x={class:"flex min-h-[48px] flex-col justify-center"},b={class:"flex items-center gap-3"},k={key:1,class:"h-8 w-64 animate-pulse rounded bg-gray-300/50"},_={key:0,class:"mt-0.5 text-sm leading-tight text-gray-600"},S={__name:"LogoTitle",props:{loading:{type:Boolean,default:!1},title:{type:String,default:""},subtitle:{type:String,default:""},logoSrc:{type:String,default:""},titleClass:{type:String,default:"text-gray-900"}},setup(e){const n=l=>{l.target.style.display="none"};return(l,v)=>(s(),t("div",u,[a("div",f,[e.loading?(s(),t("div",m)):(s(),t(d,{key:0},[e.logoSrc?(s(),t("img",{key:0,alt:"Logo",class:"h-8 w-8 object-contain",src:e.logoSrc,onError:n},null,40,y)):(s(),t("i",h))],64))]),a("div",x,[a("div",b,[!e.loading&&e.title?(s(),t("h1",{key:0,class:g(["header-title text-2xl font-bold leading-tight",e.titleClass])},i(e.title),3)):e.loading?(s(),t("div",k)):o("",!0),c(l.$slots,"after-title",{},void 0,!0)]),e.subtitle?(s(),t("p",_,i(e.subtitle),1)):o("",!0)])]))}},w=r(S,[["__scopeId","data-v-10fd6442"]]);export{w as L};

View File

@@ -0,0 +1 @@
.user-menu-dropdown[data-v-a00d91a7]{margin-top:8px}.fade-enter-active[data-v-a00d91a7],.fade-leave-active[data-v-a00d91a7]{transition:opacity .3s}.fade-enter-from[data-v-a00d91a7],.fade-leave-to[data-v-a00d91a7]{opacity:0}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.settings-container[data-v-b2aa7b63]{min-height:calc(100vh - 300px)}.card[data-v-b2aa7b63]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;border:1px solid #e5e7eb}.table-container[data-v-b2aa7b63]{overflow:hidden;border-radius:8px;border:1px solid #f3f4f6}.table-row[data-v-b2aa7b63]{transition:background-color .2s ease}.table-row[data-v-b2aa7b63]:hover{background-color:#f9fafb}.form-input[data-v-b2aa7b63]{width:100%;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));padding:.5rem 1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.form-input[data-v-b2aa7b63]:focus{border-color:transparent;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.btn[data-v-b2aa7b63]{display:inline-flex;align-items:center;justify-content:center;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn[data-v-b2aa7b63]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-offset-width: 2px}.btn-primary[data-v-b2aa7b63]{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.btn-primary[data-v-b2aa7b63]:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.btn-primary[data-v-b2aa7b63]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.btn-success[data-v-b2aa7b63]{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.btn-success[data-v-b2aa7b63]:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.btn-success[data-v-b2aa7b63]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.loading-spinner[data-v-b2aa7b63]{height:1.25rem;width:1.25rem}@keyframes spin-b2aa7b63{to{transform:rotate(360deg)}}.loading-spinner[data-v-b2aa7b63]{animation:spin-b2aa7b63 1s linear infinite;border-radius:9999px;border-width:2px;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-border-opacity: 1;border-top-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}

View File

@@ -1 +0,0 @@
.tutorial-container[data-v-6a18e586]{min-height:calc(100vh - 300px)}.tutorial-content[data-v-6a18e586]{animation:fadeIn-6a18e586 .3s ease-in-out}@keyframes fadeIn-6a18e586{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}code[data-v-6a18e586]{font-family:Fira Code,Monaco,Menlo,Ubuntu Mono,monospace}.tutorial-content h4[data-v-6a18e586]{scroll-margin-top:100px}.tutorial-content .bg-gradient-to-r[data-v-6a18e586]{transition:all .2s ease}.tutorial-content .bg-gradient-to-r[data-v-6a18e586]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{r as N,c as y,o as x,q as R,V as C,x as i,y as o,z as n,L as f,P as l,O as w,B as k,C as b}from"./vue-vendor-DfnFpxGJ.js";const $={class:"space-y-1"},P={class:"flex items-center justify-between text-xs"},B={class:"text-gray-500"},E={key:0,class:"font-medium text-gray-700"},I={key:1,class:"font-medium text-orange-600"},V={key:2,class:"font-medium text-gray-500"},j={key:3,class:"font-medium text-gray-400"},z={key:0,class:"space-y-0.5"},D={key:0,class:"space-y-0.5"},W={class:"flex items-center justify-between text-xs"},F={class:"text-gray-600"},K={class:"h-1 w-full rounded-full bg-gray-200"},O={key:1,class:"space-y-0.5"},U={class:"flex items-center justify-between text-xs"},A={class:"text-gray-600"},G={class:"h-1 w-full rounded-full bg-gray-200"},H={key:1,class:"text-xs text-gray-500"},J={key:0},Q={key:1},X={key:2},Z={__name:"WindowCountdown",props:{label:{type:String,default:"窗口限制"},rateLimitWindow:{type:Number,required:!0},windowStartTime:{type:Number,default:null},windowEndTime:{type:Number,default:null},windowRemainingSeconds:{type:Number,default:null},currentRequests:{type:Number,default:0},requestLimit:{type:Number,default:0},currentTokens:{type:Number,default:0},tokenLimit:{type:Number,default:0},showProgress:{type:Boolean,default:!0},showTooltip:{type:Boolean,default:!1}},setup(a){const s=a,r=N(s.windowRemainingSeconds);let u=null;const c=y(()=>s.windowStartTime===null?"notStarted":r.value===0?"expired":r.value>0?"active":"unknown"),T=y(()=>s.requestLimit>0),_=y(()=>s.tokenLimit>0),L=e=>{if(e==null)return"--:--";const t=Math.floor(e/3600),d=Math.floor(e%3600/60),p=e%60;return t>0?`${t}h ${d}m`:d>0?`${d}m ${p}s`:`${p}s`},q=e=>{const t=Math.floor(e/3600),d=Math.floor(e%3600/60);return t>0?`${t}小时${d}分钟`:`${d}分钟`},g=e=>e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),v=()=>{if(!s.requestLimit||s.requestLimit===0)return 0;const e=(s.currentRequests||0)/s.requestLimit*100;return Math.min(e,100)},S=()=>{const e=v();return e>=100?"bg-red-500":e>=80?"bg-yellow-500":"bg-blue-500"},h=()=>{if(!s.tokenLimit||s.tokenLimit===0)return 0;const e=(s.currentTokens||0)/s.tokenLimit*100;return Math.min(e,100)},M=()=>{const e=h();return e>=100?"bg-red-500":e>=80?"bg-yellow-500":"bg-purple-500"},m=()=>{if(s.windowEndTime&&r.value>0){const e=Date.now(),t=Math.max(0,Math.floor((s.windowEndTime-e)/1e3));r.value=t,t===0&&u&&(clearInterval(u),u=null)}};return x(()=>s.windowRemainingSeconds,e=>{r.value=e}),x(()=>s.windowEndTime,e=>{e&&(m(),!u&&r.value>0&&(u=setInterval(m,1e3)))}),R(()=>{s.windowEndTime&&r.value>0&&(m(),u=setInterval(m,1e3))}),C(()=>{u&&clearInterval(u)}),(e,t)=>(o(),i("div",$,[n("div",P,[n("span",B,l(a.label),1),c.value==="active"?(o(),i("span",E,[t[0]||(t[0]=n("i",{class:"fas fa-clock mr-1 text-blue-500"},null,-1)),w(" "+l(L(r.value)),1)])):c.value==="expired"?(o(),i("span",I,t[1]||(t[1]=[n("i",{class:"fas fa-sync-alt mr-1"},null,-1),w(" 窗口已过期 ",-1)]))):c.value==="notStarted"?(o(),i("span",V,t[2]||(t[2]=[n("i",{class:"fas fa-pause-circle mr-1"},null,-1),w(" 窗口未激活 ",-1)]))):(o(),i("span",j,l(a.rateLimitWindow)+" 分钟 ",1))]),a.showProgress?(o(),i("div",z,[T.value?(o(),i("div",D,[n("div",W,[t[3]||(t[3]=n("span",{class:"text-gray-400"},"请求",-1)),n("span",F,l(a.currentRequests||0)+"/"+l(a.requestLimit),1)]),n("div",K,[n("div",{class:b(["h-1 rounded-full transition-all duration-300",S()]),style:k({width:v()+"%"})},null,6)])])):f("",!0),_.value?(o(),i("div",O,[n("div",U,[t[4]||(t[4]=n("span",{class:"text-gray-400"},"Token",-1)),n("span",A,l(g(a.currentTokens||0))+"/"+l(g(a.tokenLimit)),1)]),n("div",G,[n("div",{class:b(["h-1 rounded-full transition-all duration-300",M()]),style:k({width:h()+"%"})},null,6)])])):f("",!0)])):f("",!0),c.value==="active"&&a.showTooltip?(o(),i("div",H,[t[5]||(t[5]=n("i",{class:"fas fa-info-circle mr-1"},null,-1)),r.value<60?(o(),i("span",J,"即将重置")):r.value<300?(o(),i("span",Q,l(Math.ceil(r.value/60))+" 分钟后重置",1)):(o(),i("span",X,l(q(r.value))+"后重置",1))])):f("",!0)]))}};export{Z as _};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,22 +0,0 @@
let e=null,r=0;function c(n,s="info",a="",i=3e3){e||(e=document.createElement("div"),e.id="toast-container",e.style.cssText="position: fixed; top: 20px; right: 20px; z-index: 10000;",document.body.appendChild(e));const o=++r,t=document.createElement("div");t.className=`toast rounded-2xl p-4 shadow-2xl backdrop-blur-sm toast-${s}`,t.style.cssText=`
position: relative;
min-width: 320px;
max-width: 500px;
margin-bottom: 16px;
transform: translateX(100%);
transition: transform 0.3s ease-in-out;
`;const l={success:"fas fa-check-circle",error:"fas fa-times-circle",warning:"fas fa-exclamation-triangle",info:"fas fa-info-circle"};return t.innerHTML=`
<div class="flex items-start gap-3">
<div class="flex-shrink-0 mt-0.5">
<i class="${l[s]} text-lg"></i>
</div>
<div class="flex-1 min-w-0">
${a?`<h4 class="font-semibold text-sm mb-1">${a}</h4>`:""}
<p class="text-sm opacity-90 leading-relaxed">${n}</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>
`,e.appendChild(t),setTimeout(()=>{t.style.transform="translateX(0)"},10),i>0&&setTimeout(()=>{t.style.transform="translateX(100%)",setTimeout(()=>{t.remove()},300)},i),o}export{c as s};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,34 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Claude Relay Service - 管理后台</title>
<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<!-- 预连接到CDN域名加速资源加载 -->
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
<link rel="dns-prefetch" href="https://cdn.jsdelivr.net">
<link rel="dns-prefetch" href="https://cdnjs.cloudflare.com">
<script type="module" crossorigin src="/admin-next/assets/index-KCMFVMd0.js"></script>
<link rel="modulepreload" crossorigin href="/admin-next/assets/vue-vendor-DfnFpxGJ.js">
<link rel="modulepreload" crossorigin href="/admin-next/assets/vendor-BDiMbLwQ.js">
<link rel="modulepreload" crossorigin href="/admin-next/assets/element-plus-BaMaLFJp.js">
<link rel="stylesheet" crossorigin href="/admin-next/assets/element-plus-CPnoEkWW.css">
<link rel="stylesheet" crossorigin href="/admin-next/assets/index-DuIYNWRC.css">
</head>
<body>
<div id="app"></div>
</body>
</html>