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

This commit is contained in:
github-actions[bot]
2025-09-02 06:49:31 +00:00
parent b96952d3c5
commit 320fa05ec2
91 changed files with 307 additions and 193 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.
Version: 1.1.124
Build Date: 2025-09-01 03:45:29 UTC
Version: 1.1.125
Build Date: 2025-09-02 06:49:31 UTC

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 @@
.modal[data-v-c629d8ff]{background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dark{background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.loading-spinner[data-v-2731e200]{width:24px;height:24px;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:spin-2731e200 1s linear infinite}@keyframes spin-2731e200{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.accounts-container[data-v-2731e200]{min-height:calc(100vh - 300px)}.table-container[data-v-2731e200]{overflow-x:auto;border-radius:12px;border:1px solid rgba(0,0,0,.05)}.table-row[data-v-2731e200]{transition:all .2s ease}.table-row[data-v-2731e200]:hover{background-color:#00000005}

View File

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

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

@@ -0,0 +1 @@
import{_ as n}from"./index-B2CfBDav.js";import{I as i,y as r,x as d,L as c,z as e,P as a,a5 as m}from"./vue-vendor-Bsazo-x0.js";const f={key:0,class:"modal fixed inset-0 z-50 flex items-center justify-center p-4"},x={class:"modal-content mx-auto w-full max-w-md rounded-2xl bg-white p-6 shadow-xl dark:bg-gray-800"},g={class:"mb-6 flex items-start gap-4"},y={class:"flex-1"},u={class:"mb-2 text-lg font-bold text-gray-900 dark:text-white"},p={class:"whitespace-pre-line text-sm leading-relaxed text-gray-700 dark:text-gray-300"},h={class:"flex gap-3"},w={__name:"ConfirmModal",props:{show:{type:Boolean,required:!0},title:{type:String,default:""},message:{type:String,default:""},confirmText:{type:String,default:"继续"},cancelText:{type:String,default:"取消"}},emits:["confirm","cancel"],setup(o){return(s,t)=>(r(),i(m,{to:"body"},[o.show?(r(),d("div",f,[e("div",x,[e("div",g,[t[2]||(t[2]=e("div",{class:"flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-gradient-to-br from-yellow-400 to-yellow-500"},[e("i",{class:"fas fa-exclamation text-xl text-white"})],-1)),e("div",y,[e("h3",u,a(o.title),1),e("p",p,a(o.message),1)])]),e("div",h,[e("button",{class:"flex-1 rounded-xl bg-gray-100 px-4 py-2.5 font-medium text-gray-700 transition-colors hover:bg-gray-200 dark:bg-gray-700 dark:text-gray-200 dark:hover:bg-gray-600",onClick:t[0]||(t[0]=l=>s.$emit("cancel"))},a(o.cancelText),1),e("button",{class:"flex-1 rounded-xl bg-gradient-to-r from-yellow-500 to-orange-500 px-4 py-2.5 font-medium text-white shadow-sm transition-colors hover:from-yellow-600 hover:to-orange-600",onClick:t[1]||(t[1]=l=>s.$emit("confirm"))},a(o.confirmText),1)])])])):c("",!0)]))}},v=n(w,[["__scopeId","data-v-c629d8ff"]]);export{v as C};

View File

@@ -0,0 +1 @@
.modal[data-v-c629d8ff]{background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dark{background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

View File

@@ -1 +1 @@
import{r as m,c as D,q as E,Z as R,x as n,y as r,z as d,I as N,L as v,C as c,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-Ig-GgGwA.js";import{_ as P}from"./index-BOKTkHbB.js";const F={class:"relative"},J={class:"select-none whitespace-nowrap text-sm font-medium text-gray-700 dark:text-gray-200"},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 p=o,y=V,t=m(!1),l=m(null),u=m(null),w=m({}),B=D(()=>{const e=p.options.find(i=>i.value===p.modelValue);return e?e.label:""}),S=async()=>{t.value=!t.value,t.value&&(await I(),h())},f=()=>{t.value=!1},z=e=>{y("update:modelValue",e.value),y("change",e.value),f()},h=()=>{if(!l.value||!t.value)return;const e=l.value.getBoundingClientRect(),i=250,a=window.innerHeight-e.bottom,C=e.top;let g,s;a>=i||a>=C?g=e.bottom+8:g=e.top-i-8,s=e.left;const _=200;s+_>window.innerWidth&&(s=window.innerWidth-_-10),s<10&&(s=10),w.value={top:`${g}px`,left:`${s}px`,minWidth:`${e.width}px`}},x=()=>{t.value&&h()},b=()=>{t.value&&f()},k=e=>{!l.value||!t.value||l.value.contains(e.target)||(u.value&&!u.value.contains(e.target)?f():u.value||f())};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)=>(r(),n("div",F,[d("div",{ref_key:"triggerRef",ref:l,class:c(["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 dark:border-gray-600 dark:bg-gray-800",[t.value&&"border-blue-400 shadow-md"]]),onClick:S},[o.icon?(r(),n("i",{key:0,class:c(["fas",o.icon,"text-sm",o.iconColor])},null,2)):v("",!0),d("span",J,L(B.value||o.placeholder),1),d("i",{class:c(["fas fa-chevron-down ml-auto text-xs text-gray-400 transition-transform duration-200 dark:text-gray-500",t.value&&"rotate-180"])},null,2)],2),(r(),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?(r(),n("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 dark:border-gray-600 dark:bg-gray-800",style:$(w.value)},[d("div",M,[(r(!0),n(O,null,q(o.options,a=>(r(),n("div",{key:a.value,class:c(["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 dark:bg-blue-900/30 dark:text-blue-400":"text-gray-700 hover:bg-gray-50 dark:text-gray-300 dark:hover:bg-gray-700"]]),onClick:C=>z(a)},[a.icon?(r(),n("i",{key:0,class:c(["fas",a.icon,"text-xs"])},null,2)):v("",!0),d("span",null,L(a.label),1),a.value===o.modelValue?(r(),n("i",U)):v("",!0)],10,Q))),128))])],4)):v("",!0)]),_:1})]))]))}},K=P(Z,[["__scopeId","data-v-ffee8773"]]);export{K as C};
import{r as m,c as D,q as E,Z as R,x as n,y as r,z as d,I as N,L as v,C as c,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-Bsazo-x0.js";import{_ as P}from"./index-B2CfBDav.js";const F={class:"relative"},J={class:"select-none whitespace-nowrap text-sm font-medium text-gray-700 dark:text-gray-200"},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 p=o,y=V,t=m(!1),l=m(null),u=m(null),w=m({}),B=D(()=>{const e=p.options.find(i=>i.value===p.modelValue);return e?e.label:""}),S=async()=>{t.value=!t.value,t.value&&(await I(),h())},f=()=>{t.value=!1},z=e=>{y("update:modelValue",e.value),y("change",e.value),f()},h=()=>{if(!l.value||!t.value)return;const e=l.value.getBoundingClientRect(),i=250,a=window.innerHeight-e.bottom,C=e.top;let g,s;a>=i||a>=C?g=e.bottom+8:g=e.top-i-8,s=e.left;const _=200;s+_>window.innerWidth&&(s=window.innerWidth-_-10),s<10&&(s=10),w.value={top:`${g}px`,left:`${s}px`,minWidth:`${e.width}px`}},x=()=>{t.value&&h()},b=()=>{t.value&&f()},k=e=>{!l.value||!t.value||l.value.contains(e.target)||(u.value&&!u.value.contains(e.target)?f():u.value||f())};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)=>(r(),n("div",F,[d("div",{ref_key:"triggerRef",ref:l,class:c(["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 dark:border-gray-600 dark:bg-gray-800",[t.value&&"border-blue-400 shadow-md"]]),onClick:S},[o.icon?(r(),n("i",{key:0,class:c(["fas",o.icon,"text-sm",o.iconColor])},null,2)):v("",!0),d("span",J,L(B.value||o.placeholder),1),d("i",{class:c(["fas fa-chevron-down ml-auto text-xs text-gray-400 transition-transform duration-200 dark:text-gray-500",t.value&&"rotate-180"])},null,2)],2),(r(),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?(r(),n("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 dark:border-gray-600 dark:bg-gray-800",style:$(w.value)},[d("div",M,[(r(!0),n(O,null,q(o.options,a=>(r(),n("div",{key:a.value,class:c(["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 dark:bg-blue-900/30 dark:text-blue-400":"text-gray-700 hover:bg-gray-50 dark:text-gray-300 dark:hover:bg-gray-700"]]),onClick:C=>z(a)},[a.icon?(r(),n("i",{key:0,class:c(["fas",a.icon,"text-xs"])},null,2)):v("",!0),d("span",null,L(a.label),1),a.value===o.modelValue?(r(),n("i",U)):v("",!0)],10,Q))),128))])],4)):v("",!0)]),_:1})]))]))}},K=P(Z,[["__scopeId","data-v-ffee8773"]]);export{K as C};

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 +1 @@
import{c as b,r as y,q as f,x as a,z as s,R as h,L as i,Q as _,u as o,P as m,Y as w,K as u,aq as c,O as g,y as r}from"./vue-vendor-Ig-GgGwA.js";import{_ as v,u as k,a as S}from"./index-BOKTkHbB.js";import{T as L}from"./ThemeToggle-ChUebeBf.js";import"./element-plus-Bq6mBxnk.js";import"./vendor-BDiMbLwQ.js";const V={class:"flex min-h-screen items-center justify-center p-4 sm:p-6"},T={class:"fixed right-4 top-4 z-50"},N={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"},I={class:"mb-6 text-center sm:mb-8"},q={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"},D=["src"],E={key:1,class:"fas fa-cloud text-2xl text-gray-700 sm:text-3xl"},j={key:1,class:"h-10 w-10 animate-pulse rounded bg-gray-300/50 sm:h-12 sm:w-12"},B={key:0,class:"header-title mb-2 text-2xl font-bold text-white sm:text-3xl"},M={key:1,class:"mx-auto mb-2 h-8 w-48 animate-pulse rounded bg-gray-300/50 sm:h-9 sm:w-64"},z=["disabled"],F={key:0,class:"fas fa-sign-in-alt mr-2"},O={key:1,class:"loading-spinner mr-2"},U={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 dark:text-red-400 sm:mt-6 sm:rounded-xl sm:p-4 sm:text-sm"},A={__name:"LoginView",setup(C){const e=k(),p=S(),d=b(()=>e.oemLoading),n=y({username:"",password:""});f(()=>{p.initTheme(),e.loadOemSettings()});const x=async()=>{await e.login(n.value)};return(K,t)=>(r(),a("div",V,[s("div",T,[h(L,{mode:"dropdown"})]),s("div",N,[s("div",I,[s("div",q,[d.value?(r(),a("div",j)):(r(),a(_,{key:0},[o(e).oemSettings.siteIconData||o(e).oemSettings.siteIcon?(r(),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:t[0]||(t[0]=l=>l.target.style.display="none")},null,40,D)):(r(),a("i",E))],64))]),!d.value&&o(e).oemSettings.siteName?(r(),a("h1",B,m(o(e).oemSettings.siteName),1)):d.value?(r(),a("div",M)):i("",!0),t[3]||(t[3]=s("p",{class:"text-base text-gray-600 dark:text-gray-400 sm:text-lg"},"管理后台",-1))]),s("form",{class:"space-y-4 sm:space-y-6",onSubmit:w(x,["prevent"])},[s("div",null,[t[4]||(t[4]=s("label",{class:"mb-2 block text-sm font-semibold text-gray-900 dark:text-gray-100 sm:mb-3"},"用户名",-1)),u(s("input",{"onUpdate:modelValue":t[1]||(t[1]=l=>n.value.username=l),class:"form-input w-full",placeholder:"请输入用户名",required:"",type:"text"},null,512),[[c,n.value.username]])]),s("div",null,[t[5]||(t[5]=s("label",{class:"mb-2 block text-sm font-semibold text-gray-900 dark:text-gray-100 sm:mb-3"},"密码",-1)),u(s("input",{"onUpdate:modelValue":t[2]||(t[2]=l=>n.value.password=l),class:"form-input w-full",placeholder:"请输入密码",required:"",type:"password"},null,512),[[c,n.value.password]])]),s("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):(r(),a("i",F)),o(e).loginLoading?(r(),a("div",O)):i("",!0),g(" "+m(o(e).loginLoading?"登录中...":"登录"),1)],8,z)],32),o(e).loginError?(r(),a("div",U,[t[6]||(t[6]=s("i",{class:"fas fa-exclamation-triangle mr-2"},null,-1)),g(m(o(e).loginError),1)])):i("",!0)])]))}},H=v(A,[["__scopeId","data-v-4e1eb19c"]]);export{H as default};
import{c as b,r as y,q as f,x as a,z as s,R as h,L as i,Q as _,u as o,P as m,Y as w,K as u,aq as c,O as g,y as r}from"./vue-vendor-Bsazo-x0.js";import{_ as v,u as k,a as S}from"./index-B2CfBDav.js";import{T as L}from"./ThemeToggle-Ov1cO6jp.js";import"./element-plus-C5sO7D8l.js";import"./vendor-C8JtMHuO.js";const V={class:"flex min-h-screen items-center justify-center p-4 sm:p-6"},T={class:"fixed right-4 top-4 z-50"},N={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"},I={class:"mb-6 text-center sm:mb-8"},q={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"},D=["src"],E={key:1,class:"fas fa-cloud text-2xl text-gray-700 sm:text-3xl"},j={key:1,class:"h-10 w-10 animate-pulse rounded bg-gray-300/50 sm:h-12 sm:w-12"},B={key:0,class:"header-title mb-2 text-2xl font-bold text-white sm:text-3xl"},M={key:1,class:"mx-auto mb-2 h-8 w-48 animate-pulse rounded bg-gray-300/50 sm:h-9 sm:w-64"},z=["disabled"],F={key:0,class:"fas fa-sign-in-alt mr-2"},O={key:1,class:"loading-spinner mr-2"},U={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 dark:text-red-400 sm:mt-6 sm:rounded-xl sm:p-4 sm:text-sm"},A={__name:"LoginView",setup(C){const e=k(),p=S(),d=b(()=>e.oemLoading),n=y({username:"",password:""});f(()=>{p.initTheme(),e.loadOemSettings()});const x=async()=>{await e.login(n.value)};return(K,t)=>(r(),a("div",V,[s("div",T,[h(L,{mode:"dropdown"})]),s("div",N,[s("div",I,[s("div",q,[d.value?(r(),a("div",j)):(r(),a(_,{key:0},[o(e).oemSettings.siteIconData||o(e).oemSettings.siteIcon?(r(),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:t[0]||(t[0]=l=>l.target.style.display="none")},null,40,D)):(r(),a("i",E))],64))]),!d.value&&o(e).oemSettings.siteName?(r(),a("h1",B,m(o(e).oemSettings.siteName),1)):d.value?(r(),a("div",M)):i("",!0),t[3]||(t[3]=s("p",{class:"text-base text-gray-600 dark:text-gray-400 sm:text-lg"},"管理后台",-1))]),s("form",{class:"space-y-4 sm:space-y-6",onSubmit:w(x,["prevent"])},[s("div",null,[t[4]||(t[4]=s("label",{class:"mb-2 block text-sm font-semibold text-gray-900 dark:text-gray-100 sm:mb-3"},"用户名",-1)),u(s("input",{"onUpdate:modelValue":t[1]||(t[1]=l=>n.value.username=l),class:"form-input w-full",placeholder:"请输入用户名",required:"",type:"text"},null,512),[[c,n.value.username]])]),s("div",null,[t[5]||(t[5]=s("label",{class:"mb-2 block text-sm font-semibold text-gray-900 dark:text-gray-100 sm:mb-3"},"密码",-1)),u(s("input",{"onUpdate:modelValue":t[2]||(t[2]=l=>n.value.password=l),class:"form-input w-full",placeholder:"请输入密码",required:"",type:"password"},null,512),[[c,n.value.password]])]),s("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):(r(),a("i",F)),o(e).loginLoading?(r(),a("div",O)):i("",!0),g(" "+m(o(e).loginLoading?"登录中...":"登录"),1)],8,z)],32),o(e).loginError?(r(),a("div",U,[t[6]||(t[6]=s("i",{class:"fas fa-exclamation-triangle mr-2"},null,-1)),g(m(o(e).loginError),1)])):i("",!0)])]))}},H=v(A,[["__scopeId","data-v-4e1eb19c"]]);export{H as default};

View File

@@ -1 +1 @@
import{_ as d}from"./index-BOKTkHbB.js";import{x as t,y as a,z as l,Q as n,L as o,A as c,C as g,P as r}from"./vue-vendor-Ig-GgGwA.js";const u={class:"flex items-center gap-4"},y={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 dark:border-gray-600/30 dark:from-blue-600/20 dark:to-purple-600/20"},f=["src"],m={key:1,class:"fas fa-cloud text-xl text-gray-700 dark:text-gray-300"},h={key:1,class:"h-8 w-8 animate-pulse rounded bg-gray-300/50 dark:bg-gray-600/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 dark:bg-gray-600/50"},_={key:0,class:"mt-0.5 text-sm leading-tight text-gray-600 dark:text-gray-400"},p={__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 i=s=>{s.target.style.display="none"};return(s,S)=>(a(),t("div",u,[l("div",y,[e.loading?(a(),t("div",h)):(a(),t(n,{key:0},[e.logoSrc?(a(),t("img",{key:0,alt:"Logo",class:"h-8 w-8 object-contain",src:e.logoSrc,onError:i},null,40,f)):(a(),t("i",m))],64))]),l("div",x,[l("div",b,[!e.loading&&e.title?(a(),t("h1",{key:0,class:g(["header-title text-2xl font-bold leading-tight",e.titleClass])},r(e.title),3)):e.loading?(a(),t("div",k)):o("",!0),c(s.$slots,"after-title",{},void 0,!0)]),e.subtitle?(a(),t("p",_,r(e.subtitle),1)):o("",!0)])]))}},w=d(p,[["__scopeId","data-v-15eb26fd"]]);export{w as L};
import{_ as d}from"./index-B2CfBDav.js";import{x as t,y as a,z as l,Q as n,L as o,A as c,C as g,P as r}from"./vue-vendor-Bsazo-x0.js";const u={class:"flex items-center gap-4"},y={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 dark:border-gray-600/30 dark:from-blue-600/20 dark:to-purple-600/20"},f=["src"],m={key:1,class:"fas fa-cloud text-xl text-gray-700 dark:text-gray-300"},h={key:1,class:"h-8 w-8 animate-pulse rounded bg-gray-300/50 dark:bg-gray-600/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 dark:bg-gray-600/50"},_={key:0,class:"mt-0.5 text-sm leading-tight text-gray-600 dark:text-gray-400"},p={__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 i=s=>{s.target.style.display="none"};return(s,S)=>(a(),t("div",u,[l("div",y,[e.loading?(a(),t("div",h)):(a(),t(n,{key:0},[e.logoSrc?(a(),t("img",{key:0,alt:"Logo",class:"h-8 w-8 object-contain",src:e.logoSrc,onError:i},null,40,f)):(a(),t("i",m))],64))]),l("div",x,[l("div",b,[!e.loading&&e.title?(a(),t("h1",{key:0,class:g(["header-title text-2xl font-bold leading-tight",e.titleClass])},r(e.title),3)):e.loading?(a(),t("div",k)):o("",!0),c(s.$slots,"after-title",{},void 0,!0)]),e.subtitle?(a(),t("p",_,r(e.subtitle),1)):o("",!0)])]))}},w=d(p,[["__scopeId","data-v-15eb26fd"]]);export{w as L};

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 +1 @@
.settings-container[data-v-646adcb4]{min-height:calc(100vh - 300px)}.card[data-v-646adcb4]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;border:1px solid #e5e7eb}:root.dark .card[data-v-646adcb4]{background:#1f2937;border:1px solid #374151;box-shadow:0 2px 12px #0000004d}.table-container[data-v-646adcb4]{overflow:hidden;border-radius:8px;border:1px solid #f3f4f6}:root.dark .table-container[data-v-646adcb4]{border:1px solid #4b5563}.table-row[data-v-646adcb4]{transition:background-color .2s ease}.table-row[data-v-646adcb4]:hover{background-color:#f9fafb}:root.dark .table-row[data-v-646adcb4]:hover{background-color:#374151}.form-input[data-v-646adcb4]{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-646adcb4]: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-646adcb4]{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-646adcb4]: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-646adcb4]{--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-646adcb4]:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.btn-primary[data-v-646adcb4]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.btn-success[data-v-646adcb4]{--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-646adcb4]:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.btn-success[data-v-646adcb4]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.loading-spinner[data-v-646adcb4]{height:1.25rem;width:1.25rem}@keyframes spin-646adcb4{to{transform:rotate(360deg)}}.loading-spinner[data-v-646adcb4]{animation:spin-646adcb4 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))}
.settings-container[data-v-6a970686]{min-height:calc(100vh - 300px)}.card[data-v-6a970686]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;border:1px solid #e5e7eb}:root.dark .card[data-v-6a970686]{background:#1f2937;border:1px solid #374151;box-shadow:0 2px 12px #0000004d}.table-container[data-v-6a970686]{overflow:hidden;border-radius:8px;border:1px solid #f3f4f6}:root.dark .table-container[data-v-6a970686]{border:1px solid #4b5563}.table-row[data-v-6a970686]{transition:background-color .2s ease}.table-row[data-v-6a970686]:hover{background-color:#f9fafb}:root.dark .table-row[data-v-6a970686]:hover{background-color:#374151}.form-input[data-v-6a970686]{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-6a970686]: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-6a970686]{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-6a970686]: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-6a970686]{--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-6a970686]:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.btn-primary[data-v-6a970686]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.btn-success[data-v-6a970686]{--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-6a970686]:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.btn-success[data-v-6a970686]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.loading-spinner[data-v-6a970686]{height:1.25rem;width:1.25rem}@keyframes spin-6a970686{to{transform:rotate(360deg)}}.loading-spinner[data-v-6a970686]{animation:spin-6a970686 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))}

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 +1 @@
import{c as f,x as s,y as t,L as u,R as k,J as v,u as o,T as g,z as e,C as d,Q as p,ac as y,P as b}from"./vue-vendor-Ig-GgGwA.js";import{_ as T,a as w}from"./index-BOKTkHbB.js";const M={class:"theme-toggle-container"},C=["title"],L={key:"sun",class:"fas fa-sun"},x={key:"moon",class:"fas fa-moon"},B={key:"auto",class:"fas fa-circle-half-stroke"},S={key:1,class:"theme-switch-wrapper"},N=["title"],V={class:"switch-handle"},z={class:"handle-icon"},$={key:0,class:"fas fa-sun"},D={key:1,class:"fas fa-moon"},E={key:2,class:"fas fa-circle-half-stroke"},F={key:2,class:"theme-segmented"},I=["title","onClick"],J={key:0,class:"ml-1 hidden sm:inline"},O={__name:"ThemeToggle",props:{mode:{type:String,default:"compact",validator:l=>["compact","dropdown","segmented"].includes(l)},showLabel:{type:Boolean,default:!1}},setup(l){const a=w(),h=[{value:"light",label:"浅色模式",shortLabel:"浅色",icon:"fas fa-sun"},{value:"dark",label:"深色模式",shortLabel:"深色",icon:"fas fa-moon"},{value:"auto",label:"跟随系统",shortLabel:"自动",icon:"fas fa-circle-half-stroke"}],m=f(()=>{const n=h.find(i=>i.value===a.themeMode);return n?`点击切换主题 - ${n.label}`:"切换主题"}),r=()=>{a.cycleThemeMode()},_=n=>{a.setThemeMode(n)};return(n,i)=>(t(),s("div",M,[l.mode==="compact"?(t(),s("button",{key:0,class:"theme-toggle-button",title:m.value,onClick:r},[k(g,{mode:"out-in",name:"fade"},{default:v(()=>[o(a).themeMode==="light"?(t(),s("i",L)):o(a).themeMode==="dark"?(t(),s("i",x)):(t(),s("i",B))]),_:1})],8,C)):l.mode==="dropdown"?(t(),s("div",S,[e("button",{class:d(["theme-switch",{"is-dark":o(a).themeMode==="dark","is-auto":o(a).themeMode==="auto"}]),title:m.value,onClick:r},[i[0]||(i[0]=e("div",{class:"switch-bg"},[e("div",{class:"stars"},[e("span"),e("span"),e("span")]),e("div",{class:"clouds"},[e("span"),e("span")])],-1)),e("div",V,[e("div",z,[o(a).themeMode==="light"?(t(),s("i",$)):o(a).themeMode==="dark"?(t(),s("i",D)):(t(),s("i",E))])])],10,N)])):l.mode==="segmented"?(t(),s("div",F,[(t(),s(p,null,y(h,c=>e("button",{key:c.value,class:d(["theme-segment",{active:o(a).themeMode===c.value}]),title:c.label,onClick:P=>_(c.value)},[e("i",{class:d(c.icon)},null,2),l.showLabel?(t(),s("span",J,b(c.shortLabel),1)):u("",!0)],10,I)),64))])):u("",!0)]))}},j=T(O,[["__scopeId","data-v-58747959"]]);export{j as T};
import{c as f,x as s,y as t,L as u,R as k,J as v,u as o,T as g,z as e,C as d,Q as p,ac as y,P as b}from"./vue-vendor-Bsazo-x0.js";import{_ as T,a as w}from"./index-B2CfBDav.js";const M={class:"theme-toggle-container"},C=["title"],L={key:"sun",class:"fas fa-sun"},x={key:"moon",class:"fas fa-moon"},B={key:"auto",class:"fas fa-circle-half-stroke"},S={key:1,class:"theme-switch-wrapper"},N=["title"],V={class:"switch-handle"},z={class:"handle-icon"},$={key:0,class:"fas fa-sun"},D={key:1,class:"fas fa-moon"},E={key:2,class:"fas fa-circle-half-stroke"},F={key:2,class:"theme-segmented"},I=["title","onClick"],J={key:0,class:"ml-1 hidden sm:inline"},O={__name:"ThemeToggle",props:{mode:{type:String,default:"compact",validator:l=>["compact","dropdown","segmented"].includes(l)},showLabel:{type:Boolean,default:!1}},setup(l){const a=w(),h=[{value:"light",label:"浅色模式",shortLabel:"浅色",icon:"fas fa-sun"},{value:"dark",label:"深色模式",shortLabel:"深色",icon:"fas fa-moon"},{value:"auto",label:"跟随系统",shortLabel:"自动",icon:"fas fa-circle-half-stroke"}],m=f(()=>{const n=h.find(i=>i.value===a.themeMode);return n?`点击切换主题 - ${n.label}`:"切换主题"}),r=()=>{a.cycleThemeMode()},_=n=>{a.setThemeMode(n)};return(n,i)=>(t(),s("div",M,[l.mode==="compact"?(t(),s("button",{key:0,class:"theme-toggle-button",title:m.value,onClick:r},[k(g,{mode:"out-in",name:"fade"},{default:v(()=>[o(a).themeMode==="light"?(t(),s("i",L)):o(a).themeMode==="dark"?(t(),s("i",x)):(t(),s("i",B))]),_:1})],8,C)):l.mode==="dropdown"?(t(),s("div",S,[e("button",{class:d(["theme-switch",{"is-dark":o(a).themeMode==="dark","is-auto":o(a).themeMode==="auto"}]),title:m.value,onClick:r},[i[0]||(i[0]=e("div",{class:"switch-bg"},[e("div",{class:"stars"},[e("span"),e("span"),e("span")]),e("div",{class:"clouds"},[e("span"),e("span")])],-1)),e("div",V,[e("div",z,[o(a).themeMode==="light"?(t(),s("i",$)):o(a).themeMode==="dark"?(t(),s("i",D)):(t(),s("i",E))])])],10,N)])):l.mode==="segmented"?(t(),s("div",F,[(t(),s(p,null,y(h,c=>e("button",{key:c.value,class:d(["theme-segment",{active:o(a).themeMode===c.value}]),title:c.label,onClick:P=>_(c.value)},[e("i",{class:d(c.icon)},null,2),l.showLabel?(t(),s("span",J,b(c.shortLabel),1)):u("",!0)],10,I)),64))])):u("",!0)]))}},j=T(O,[["__scopeId","data-v-58747959"]]);export{j as T};

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

View File

@@ -1,4 +1,4 @@
var Jn=Object.defineProperty;var Qn=(i,t,e)=>t in i?Jn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var M=(i,t,e)=>Qn(i,typeof t!="symbol"?t+"":t,e);import{C as en}from"./vendor-BDiMbLwQ.js";/*!
var Jn=Object.defineProperty;var Qn=(i,t,e)=>t in i?Jn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var M=(i,t,e)=>Qn(i,typeof t!="symbol"?t+"":t,e);import{C as en}from"./vendor-C8JtMHuO.js";/*!
* Chart.js v4.5.0
* https://www.chartjs.org
* (c) 2025 Chart.js Contributors

File diff suppressed because one or more lines are too long

23
assets/index-B2CfBDav.js Normal file

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

35
assets/vendor-C8JtMHuO.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -19,12 +19,12 @@
<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-BOKTkHbB.js"></script>
<link rel="modulepreload" crossorigin href="/admin-next/assets/vue-vendor-Ig-GgGwA.js">
<link rel="modulepreload" crossorigin href="/admin-next/assets/vendor-BDiMbLwQ.js">
<link rel="modulepreload" crossorigin href="/admin-next/assets/element-plus-Bq6mBxnk.js">
<script type="module" crossorigin src="/admin-next/assets/index-B2CfBDav.js"></script>
<link rel="modulepreload" crossorigin href="/admin-next/assets/vue-vendor-Bsazo-x0.js">
<link rel="modulepreload" crossorigin href="/admin-next/assets/vendor-C8JtMHuO.js">
<link rel="modulepreload" crossorigin href="/admin-next/assets/element-plus-C5sO7D8l.js">
<link rel="stylesheet" crossorigin href="/admin-next/assets/element-plus-nq7etrhL.css">
<link rel="stylesheet" crossorigin href="/admin-next/assets/index-K6VbhXeV.css">
<link rel="stylesheet" crossorigin href="/admin-next/assets/index-CZgoAXsK.css">
</head>
<body>

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 @@
.modal[data-v-c629d8ff]{background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dark{background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.loading-spinner[data-v-2731e200]{width:24px;height:24px;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:spin-2731e200 1s linear infinite}@keyframes spin-2731e200{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.accounts-container[data-v-2731e200]{min-height:calc(100vh - 300px)}.table-container[data-v-2731e200]{overflow-x:auto;border-radius:12px;border:1px solid rgba(0,0,0,.05)}.table-row[data-v-2731e200]{transition:all .2s ease}.table-row[data-v-2731e200]:hover{background-color:#00000005}

View File

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

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

View File

@@ -0,0 +1 @@
import{_ as n}from"./index-B2CfBDav.js";import{I as i,y as r,x as d,L as c,z as e,P as a,a5 as m}from"./vue-vendor-Bsazo-x0.js";const f={key:0,class:"modal fixed inset-0 z-50 flex items-center justify-center p-4"},x={class:"modal-content mx-auto w-full max-w-md rounded-2xl bg-white p-6 shadow-xl dark:bg-gray-800"},g={class:"mb-6 flex items-start gap-4"},y={class:"flex-1"},u={class:"mb-2 text-lg font-bold text-gray-900 dark:text-white"},p={class:"whitespace-pre-line text-sm leading-relaxed text-gray-700 dark:text-gray-300"},h={class:"flex gap-3"},w={__name:"ConfirmModal",props:{show:{type:Boolean,required:!0},title:{type:String,default:""},message:{type:String,default:""},confirmText:{type:String,default:"继续"},cancelText:{type:String,default:"取消"}},emits:["confirm","cancel"],setup(o){return(s,t)=>(r(),i(m,{to:"body"},[o.show?(r(),d("div",f,[e("div",x,[e("div",g,[t[2]||(t[2]=e("div",{class:"flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-gradient-to-br from-yellow-400 to-yellow-500"},[e("i",{class:"fas fa-exclamation text-xl text-white"})],-1)),e("div",y,[e("h3",u,a(o.title),1),e("p",p,a(o.message),1)])]),e("div",h,[e("button",{class:"flex-1 rounded-xl bg-gray-100 px-4 py-2.5 font-medium text-gray-700 transition-colors hover:bg-gray-200 dark:bg-gray-700 dark:text-gray-200 dark:hover:bg-gray-600",onClick:t[0]||(t[0]=l=>s.$emit("cancel"))},a(o.cancelText),1),e("button",{class:"flex-1 rounded-xl bg-gradient-to-r from-yellow-500 to-orange-500 px-4 py-2.5 font-medium text-white shadow-sm transition-colors hover:from-yellow-600 hover:to-orange-600",onClick:t[1]||(t[1]=l=>s.$emit("confirm"))},a(o.confirmText),1)])])])):c("",!0)]))}},v=n(w,[["__scopeId","data-v-c629d8ff"]]);export{v as C};

View File

@@ -0,0 +1 @@
.modal[data-v-c629d8ff]{background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dark{background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

View File

@@ -1 +1 @@
import{r as m,c as D,q as E,Z as R,x as n,y as r,z as d,I as N,L as v,C as c,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-Ig-GgGwA.js";import{_ as P}from"./index-BOKTkHbB.js";const F={class:"relative"},J={class:"select-none whitespace-nowrap text-sm font-medium text-gray-700 dark:text-gray-200"},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 p=o,y=V,t=m(!1),l=m(null),u=m(null),w=m({}),B=D(()=>{const e=p.options.find(i=>i.value===p.modelValue);return e?e.label:""}),S=async()=>{t.value=!t.value,t.value&&(await I(),h())},f=()=>{t.value=!1},z=e=>{y("update:modelValue",e.value),y("change",e.value),f()},h=()=>{if(!l.value||!t.value)return;const e=l.value.getBoundingClientRect(),i=250,a=window.innerHeight-e.bottom,C=e.top;let g,s;a>=i||a>=C?g=e.bottom+8:g=e.top-i-8,s=e.left;const _=200;s+_>window.innerWidth&&(s=window.innerWidth-_-10),s<10&&(s=10),w.value={top:`${g}px`,left:`${s}px`,minWidth:`${e.width}px`}},x=()=>{t.value&&h()},b=()=>{t.value&&f()},k=e=>{!l.value||!t.value||l.value.contains(e.target)||(u.value&&!u.value.contains(e.target)?f():u.value||f())};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)=>(r(),n("div",F,[d("div",{ref_key:"triggerRef",ref:l,class:c(["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 dark:border-gray-600 dark:bg-gray-800",[t.value&&"border-blue-400 shadow-md"]]),onClick:S},[o.icon?(r(),n("i",{key:0,class:c(["fas",o.icon,"text-sm",o.iconColor])},null,2)):v("",!0),d("span",J,L(B.value||o.placeholder),1),d("i",{class:c(["fas fa-chevron-down ml-auto text-xs text-gray-400 transition-transform duration-200 dark:text-gray-500",t.value&&"rotate-180"])},null,2)],2),(r(),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?(r(),n("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 dark:border-gray-600 dark:bg-gray-800",style:$(w.value)},[d("div",M,[(r(!0),n(O,null,q(o.options,a=>(r(),n("div",{key:a.value,class:c(["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 dark:bg-blue-900/30 dark:text-blue-400":"text-gray-700 hover:bg-gray-50 dark:text-gray-300 dark:hover:bg-gray-700"]]),onClick:C=>z(a)},[a.icon?(r(),n("i",{key:0,class:c(["fas",a.icon,"text-xs"])},null,2)):v("",!0),d("span",null,L(a.label),1),a.value===o.modelValue?(r(),n("i",U)):v("",!0)],10,Q))),128))])],4)):v("",!0)]),_:1})]))]))}},K=P(Z,[["__scopeId","data-v-ffee8773"]]);export{K as C};
import{r as m,c as D,q as E,Z as R,x as n,y as r,z as d,I as N,L as v,C as c,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-Bsazo-x0.js";import{_ as P}from"./index-B2CfBDav.js";const F={class:"relative"},J={class:"select-none whitespace-nowrap text-sm font-medium text-gray-700 dark:text-gray-200"},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 p=o,y=V,t=m(!1),l=m(null),u=m(null),w=m({}),B=D(()=>{const e=p.options.find(i=>i.value===p.modelValue);return e?e.label:""}),S=async()=>{t.value=!t.value,t.value&&(await I(),h())},f=()=>{t.value=!1},z=e=>{y("update:modelValue",e.value),y("change",e.value),f()},h=()=>{if(!l.value||!t.value)return;const e=l.value.getBoundingClientRect(),i=250,a=window.innerHeight-e.bottom,C=e.top;let g,s;a>=i||a>=C?g=e.bottom+8:g=e.top-i-8,s=e.left;const _=200;s+_>window.innerWidth&&(s=window.innerWidth-_-10),s<10&&(s=10),w.value={top:`${g}px`,left:`${s}px`,minWidth:`${e.width}px`}},x=()=>{t.value&&h()},b=()=>{t.value&&f()},k=e=>{!l.value||!t.value||l.value.contains(e.target)||(u.value&&!u.value.contains(e.target)?f():u.value||f())};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)=>(r(),n("div",F,[d("div",{ref_key:"triggerRef",ref:l,class:c(["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 dark:border-gray-600 dark:bg-gray-800",[t.value&&"border-blue-400 shadow-md"]]),onClick:S},[o.icon?(r(),n("i",{key:0,class:c(["fas",o.icon,"text-sm",o.iconColor])},null,2)):v("",!0),d("span",J,L(B.value||o.placeholder),1),d("i",{class:c(["fas fa-chevron-down ml-auto text-xs text-gray-400 transition-transform duration-200 dark:text-gray-500",t.value&&"rotate-180"])},null,2)],2),(r(),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?(r(),n("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 dark:border-gray-600 dark:bg-gray-800",style:$(w.value)},[d("div",M,[(r(!0),n(O,null,q(o.options,a=>(r(),n("div",{key:a.value,class:c(["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 dark:bg-blue-900/30 dark:text-blue-400":"text-gray-700 hover:bg-gray-50 dark:text-gray-300 dark:hover:bg-gray-700"]]),onClick:C=>z(a)},[a.icon?(r(),n("i",{key:0,class:c(["fas",a.icon,"text-xs"])},null,2)):v("",!0),d("span",null,L(a.label),1),a.value===o.modelValue?(r(),n("i",U)):v("",!0)],10,Q))),128))])],4)):v("",!0)]),_:1})]))]))}},K=P(Z,[["__scopeId","data-v-ffee8773"]]);export{K as C};

View File

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

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 @@
.custom-date-picker[data-v-e71abcc3]{font-size:13px}@keyframes spin-e71abcc3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin[data-v-e71abcc3]{animation:spin-e71abcc3 1s linear infinite}

View File

@@ -1 +1 @@
import{c as b,r as y,q as f,x as a,z as s,R as h,L as i,Q as _,u as o,P as m,Y as w,K as u,aq as c,O as g,y as r}from"./vue-vendor-Ig-GgGwA.js";import{_ as v,u as k,a as S}from"./index-BOKTkHbB.js";import{T as L}from"./ThemeToggle-ChUebeBf.js";import"./element-plus-Bq6mBxnk.js";import"./vendor-BDiMbLwQ.js";const V={class:"flex min-h-screen items-center justify-center p-4 sm:p-6"},T={class:"fixed right-4 top-4 z-50"},N={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"},I={class:"mb-6 text-center sm:mb-8"},q={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"},D=["src"],E={key:1,class:"fas fa-cloud text-2xl text-gray-700 sm:text-3xl"},j={key:1,class:"h-10 w-10 animate-pulse rounded bg-gray-300/50 sm:h-12 sm:w-12"},B={key:0,class:"header-title mb-2 text-2xl font-bold text-white sm:text-3xl"},M={key:1,class:"mx-auto mb-2 h-8 w-48 animate-pulse rounded bg-gray-300/50 sm:h-9 sm:w-64"},z=["disabled"],F={key:0,class:"fas fa-sign-in-alt mr-2"},O={key:1,class:"loading-spinner mr-2"},U={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 dark:text-red-400 sm:mt-6 sm:rounded-xl sm:p-4 sm:text-sm"},A={__name:"LoginView",setup(C){const e=k(),p=S(),d=b(()=>e.oemLoading),n=y({username:"",password:""});f(()=>{p.initTheme(),e.loadOemSettings()});const x=async()=>{await e.login(n.value)};return(K,t)=>(r(),a("div",V,[s("div",T,[h(L,{mode:"dropdown"})]),s("div",N,[s("div",I,[s("div",q,[d.value?(r(),a("div",j)):(r(),a(_,{key:0},[o(e).oemSettings.siteIconData||o(e).oemSettings.siteIcon?(r(),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:t[0]||(t[0]=l=>l.target.style.display="none")},null,40,D)):(r(),a("i",E))],64))]),!d.value&&o(e).oemSettings.siteName?(r(),a("h1",B,m(o(e).oemSettings.siteName),1)):d.value?(r(),a("div",M)):i("",!0),t[3]||(t[3]=s("p",{class:"text-base text-gray-600 dark:text-gray-400 sm:text-lg"},"管理后台",-1))]),s("form",{class:"space-y-4 sm:space-y-6",onSubmit:w(x,["prevent"])},[s("div",null,[t[4]||(t[4]=s("label",{class:"mb-2 block text-sm font-semibold text-gray-900 dark:text-gray-100 sm:mb-3"},"用户名",-1)),u(s("input",{"onUpdate:modelValue":t[1]||(t[1]=l=>n.value.username=l),class:"form-input w-full",placeholder:"请输入用户名",required:"",type:"text"},null,512),[[c,n.value.username]])]),s("div",null,[t[5]||(t[5]=s("label",{class:"mb-2 block text-sm font-semibold text-gray-900 dark:text-gray-100 sm:mb-3"},"密码",-1)),u(s("input",{"onUpdate:modelValue":t[2]||(t[2]=l=>n.value.password=l),class:"form-input w-full",placeholder:"请输入密码",required:"",type:"password"},null,512),[[c,n.value.password]])]),s("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):(r(),a("i",F)),o(e).loginLoading?(r(),a("div",O)):i("",!0),g(" "+m(o(e).loginLoading?"登录中...":"登录"),1)],8,z)],32),o(e).loginError?(r(),a("div",U,[t[6]||(t[6]=s("i",{class:"fas fa-exclamation-triangle mr-2"},null,-1)),g(m(o(e).loginError),1)])):i("",!0)])]))}},H=v(A,[["__scopeId","data-v-4e1eb19c"]]);export{H as default};
import{c as b,r as y,q as f,x as a,z as s,R as h,L as i,Q as _,u as o,P as m,Y as w,K as u,aq as c,O as g,y as r}from"./vue-vendor-Bsazo-x0.js";import{_ as v,u as k,a as S}from"./index-B2CfBDav.js";import{T as L}from"./ThemeToggle-Ov1cO6jp.js";import"./element-plus-C5sO7D8l.js";import"./vendor-C8JtMHuO.js";const V={class:"flex min-h-screen items-center justify-center p-4 sm:p-6"},T={class:"fixed right-4 top-4 z-50"},N={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"},I={class:"mb-6 text-center sm:mb-8"},q={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"},D=["src"],E={key:1,class:"fas fa-cloud text-2xl text-gray-700 sm:text-3xl"},j={key:1,class:"h-10 w-10 animate-pulse rounded bg-gray-300/50 sm:h-12 sm:w-12"},B={key:0,class:"header-title mb-2 text-2xl font-bold text-white sm:text-3xl"},M={key:1,class:"mx-auto mb-2 h-8 w-48 animate-pulse rounded bg-gray-300/50 sm:h-9 sm:w-64"},z=["disabled"],F={key:0,class:"fas fa-sign-in-alt mr-2"},O={key:1,class:"loading-spinner mr-2"},U={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 dark:text-red-400 sm:mt-6 sm:rounded-xl sm:p-4 sm:text-sm"},A={__name:"LoginView",setup(C){const e=k(),p=S(),d=b(()=>e.oemLoading),n=y({username:"",password:""});f(()=>{p.initTheme(),e.loadOemSettings()});const x=async()=>{await e.login(n.value)};return(K,t)=>(r(),a("div",V,[s("div",T,[h(L,{mode:"dropdown"})]),s("div",N,[s("div",I,[s("div",q,[d.value?(r(),a("div",j)):(r(),a(_,{key:0},[o(e).oemSettings.siteIconData||o(e).oemSettings.siteIcon?(r(),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:t[0]||(t[0]=l=>l.target.style.display="none")},null,40,D)):(r(),a("i",E))],64))]),!d.value&&o(e).oemSettings.siteName?(r(),a("h1",B,m(o(e).oemSettings.siteName),1)):d.value?(r(),a("div",M)):i("",!0),t[3]||(t[3]=s("p",{class:"text-base text-gray-600 dark:text-gray-400 sm:text-lg"},"管理后台",-1))]),s("form",{class:"space-y-4 sm:space-y-6",onSubmit:w(x,["prevent"])},[s("div",null,[t[4]||(t[4]=s("label",{class:"mb-2 block text-sm font-semibold text-gray-900 dark:text-gray-100 sm:mb-3"},"用户名",-1)),u(s("input",{"onUpdate:modelValue":t[1]||(t[1]=l=>n.value.username=l),class:"form-input w-full",placeholder:"请输入用户名",required:"",type:"text"},null,512),[[c,n.value.username]])]),s("div",null,[t[5]||(t[5]=s("label",{class:"mb-2 block text-sm font-semibold text-gray-900 dark:text-gray-100 sm:mb-3"},"密码",-1)),u(s("input",{"onUpdate:modelValue":t[2]||(t[2]=l=>n.value.password=l),class:"form-input w-full",placeholder:"请输入密码",required:"",type:"password"},null,512),[[c,n.value.password]])]),s("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):(r(),a("i",F)),o(e).loginLoading?(r(),a("div",O)):i("",!0),g(" "+m(o(e).loginLoading?"登录中...":"登录"),1)],8,z)],32),o(e).loginError?(r(),a("div",U,[t[6]||(t[6]=s("i",{class:"fas fa-exclamation-triangle mr-2"},null,-1)),g(m(o(e).loginError),1)])):i("",!0)])]))}},H=v(A,[["__scopeId","data-v-4e1eb19c"]]);export{H as default};

View File

View File

@@ -1 +1 @@
import{_ as d}from"./index-BOKTkHbB.js";import{x as t,y as a,z as l,Q as n,L as o,A as c,C as g,P as r}from"./vue-vendor-Ig-GgGwA.js";const u={class:"flex items-center gap-4"},y={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 dark:border-gray-600/30 dark:from-blue-600/20 dark:to-purple-600/20"},f=["src"],m={key:1,class:"fas fa-cloud text-xl text-gray-700 dark:text-gray-300"},h={key:1,class:"h-8 w-8 animate-pulse rounded bg-gray-300/50 dark:bg-gray-600/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 dark:bg-gray-600/50"},_={key:0,class:"mt-0.5 text-sm leading-tight text-gray-600 dark:text-gray-400"},p={__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 i=s=>{s.target.style.display="none"};return(s,S)=>(a(),t("div",u,[l("div",y,[e.loading?(a(),t("div",h)):(a(),t(n,{key:0},[e.logoSrc?(a(),t("img",{key:0,alt:"Logo",class:"h-8 w-8 object-contain",src:e.logoSrc,onError:i},null,40,f)):(a(),t("i",m))],64))]),l("div",x,[l("div",b,[!e.loading&&e.title?(a(),t("h1",{key:0,class:g(["header-title text-2xl font-bold leading-tight",e.titleClass])},r(e.title),3)):e.loading?(a(),t("div",k)):o("",!0),c(s.$slots,"after-title",{},void 0,!0)]),e.subtitle?(a(),t("p",_,r(e.subtitle),1)):o("",!0)])]))}},w=d(p,[["__scopeId","data-v-15eb26fd"]]);export{w as L};
import{_ as d}from"./index-B2CfBDav.js";import{x as t,y as a,z as l,Q as n,L as o,A as c,C as g,P as r}from"./vue-vendor-Bsazo-x0.js";const u={class:"flex items-center gap-4"},y={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 dark:border-gray-600/30 dark:from-blue-600/20 dark:to-purple-600/20"},f=["src"],m={key:1,class:"fas fa-cloud text-xl text-gray-700 dark:text-gray-300"},h={key:1,class:"h-8 w-8 animate-pulse rounded bg-gray-300/50 dark:bg-gray-600/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 dark:bg-gray-600/50"},_={key:0,class:"mt-0.5 text-sm leading-tight text-gray-600 dark:text-gray-400"},p={__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 i=s=>{s.target.style.display="none"};return(s,S)=>(a(),t("div",u,[l("div",y,[e.loading?(a(),t("div",h)):(a(),t(n,{key:0},[e.logoSrc?(a(),t("img",{key:0,alt:"Logo",class:"h-8 w-8 object-contain",src:e.logoSrc,onError:i},null,40,f)):(a(),t("i",m))],64))]),l("div",x,[l("div",b,[!e.loading&&e.title?(a(),t("h1",{key:0,class:g(["header-title text-2xl font-bold leading-tight",e.titleClass])},r(e.title),3)):e.loading?(a(),t("div",k)):o("",!0),c(s.$slots,"after-title",{},void 0,!0)]),e.subtitle?(a(),t("p",_,r(e.subtitle),1)):o("",!0)])]))}},w=d(p,[["__scopeId","data-v-15eb26fd"]]);export{w as L};

View File

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

View File

@@ -0,0 +1 @@
.user-menu-button[data-v-1d65ae6c]{position:relative;overflow:hidden;min-height:38px}.user-menu-button[data-v-1d65ae6c]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.user-menu-button[data-v-1d65ae6c]:hover:before{left:100%}.user-menu-dropdown[data-v-1d65ae6c]{margin-top:8px;animation:slideDown-1d65ae6c .3s ease-out}@keyframes slideDown-1d65ae6c{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fade-enter-active[data-v-1d65ae6c],.fade-leave-active[data-v-1d65ae6c]{transition:opacity .3s}.fade-enter-from[data-v-1d65ae6c],.fade-leave-to[data-v-1d65ae6c]{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

@@ -1 +1 @@
.settings-container[data-v-646adcb4]{min-height:calc(100vh - 300px)}.card[data-v-646adcb4]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;border:1px solid #e5e7eb}:root.dark .card[data-v-646adcb4]{background:#1f2937;border:1px solid #374151;box-shadow:0 2px 12px #0000004d}.table-container[data-v-646adcb4]{overflow:hidden;border-radius:8px;border:1px solid #f3f4f6}:root.dark .table-container[data-v-646adcb4]{border:1px solid #4b5563}.table-row[data-v-646adcb4]{transition:background-color .2s ease}.table-row[data-v-646adcb4]:hover{background-color:#f9fafb}:root.dark .table-row[data-v-646adcb4]:hover{background-color:#374151}.form-input[data-v-646adcb4]{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-646adcb4]: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-646adcb4]{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-646adcb4]: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-646adcb4]{--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-646adcb4]:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.btn-primary[data-v-646adcb4]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.btn-success[data-v-646adcb4]{--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-646adcb4]:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.btn-success[data-v-646adcb4]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.loading-spinner[data-v-646adcb4]{height:1.25rem;width:1.25rem}@keyframes spin-646adcb4{to{transform:rotate(360deg)}}.loading-spinner[data-v-646adcb4]{animation:spin-646adcb4 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))}
.settings-container[data-v-6a970686]{min-height:calc(100vh - 300px)}.card[data-v-6a970686]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;border:1px solid #e5e7eb}:root.dark .card[data-v-6a970686]{background:#1f2937;border:1px solid #374151;box-shadow:0 2px 12px #0000004d}.table-container[data-v-6a970686]{overflow:hidden;border-radius:8px;border:1px solid #f3f4f6}:root.dark .table-container[data-v-6a970686]{border:1px solid #4b5563}.table-row[data-v-6a970686]{transition:background-color .2s ease}.table-row[data-v-6a970686]:hover{background-color:#f9fafb}:root.dark .table-row[data-v-6a970686]:hover{background-color:#374151}.form-input[data-v-6a970686]{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-6a970686]: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-6a970686]{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-6a970686]: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-6a970686]{--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-6a970686]:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.btn-primary[data-v-6a970686]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.btn-success[data-v-6a970686]{--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-6a970686]:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.btn-success[data-v-6a970686]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.loading-spinner[data-v-6a970686]{height:1.25rem;width:1.25rem}@keyframes spin-6a970686{to{transform:rotate(360deg)}}.loading-spinner[data-v-6a970686]{animation:spin-6a970686 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))}

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 +1 @@
import{c as f,x as s,y as t,L as u,R as k,J as v,u as o,T as g,z as e,C as d,Q as p,ac as y,P as b}from"./vue-vendor-Ig-GgGwA.js";import{_ as T,a as w}from"./index-BOKTkHbB.js";const M={class:"theme-toggle-container"},C=["title"],L={key:"sun",class:"fas fa-sun"},x={key:"moon",class:"fas fa-moon"},B={key:"auto",class:"fas fa-circle-half-stroke"},S={key:1,class:"theme-switch-wrapper"},N=["title"],V={class:"switch-handle"},z={class:"handle-icon"},$={key:0,class:"fas fa-sun"},D={key:1,class:"fas fa-moon"},E={key:2,class:"fas fa-circle-half-stroke"},F={key:2,class:"theme-segmented"},I=["title","onClick"],J={key:0,class:"ml-1 hidden sm:inline"},O={__name:"ThemeToggle",props:{mode:{type:String,default:"compact",validator:l=>["compact","dropdown","segmented"].includes(l)},showLabel:{type:Boolean,default:!1}},setup(l){const a=w(),h=[{value:"light",label:"浅色模式",shortLabel:"浅色",icon:"fas fa-sun"},{value:"dark",label:"深色模式",shortLabel:"深色",icon:"fas fa-moon"},{value:"auto",label:"跟随系统",shortLabel:"自动",icon:"fas fa-circle-half-stroke"}],m=f(()=>{const n=h.find(i=>i.value===a.themeMode);return n?`点击切换主题 - ${n.label}`:"切换主题"}),r=()=>{a.cycleThemeMode()},_=n=>{a.setThemeMode(n)};return(n,i)=>(t(),s("div",M,[l.mode==="compact"?(t(),s("button",{key:0,class:"theme-toggle-button",title:m.value,onClick:r},[k(g,{mode:"out-in",name:"fade"},{default:v(()=>[o(a).themeMode==="light"?(t(),s("i",L)):o(a).themeMode==="dark"?(t(),s("i",x)):(t(),s("i",B))]),_:1})],8,C)):l.mode==="dropdown"?(t(),s("div",S,[e("button",{class:d(["theme-switch",{"is-dark":o(a).themeMode==="dark","is-auto":o(a).themeMode==="auto"}]),title:m.value,onClick:r},[i[0]||(i[0]=e("div",{class:"switch-bg"},[e("div",{class:"stars"},[e("span"),e("span"),e("span")]),e("div",{class:"clouds"},[e("span"),e("span")])],-1)),e("div",V,[e("div",z,[o(a).themeMode==="light"?(t(),s("i",$)):o(a).themeMode==="dark"?(t(),s("i",D)):(t(),s("i",E))])])],10,N)])):l.mode==="segmented"?(t(),s("div",F,[(t(),s(p,null,y(h,c=>e("button",{key:c.value,class:d(["theme-segment",{active:o(a).themeMode===c.value}]),title:c.label,onClick:P=>_(c.value)},[e("i",{class:d(c.icon)},null,2),l.showLabel?(t(),s("span",J,b(c.shortLabel),1)):u("",!0)],10,I)),64))])):u("",!0)]))}},j=T(O,[["__scopeId","data-v-58747959"]]);export{j as T};
import{c as f,x as s,y as t,L as u,R as k,J as v,u as o,T as g,z as e,C as d,Q as p,ac as y,P as b}from"./vue-vendor-Bsazo-x0.js";import{_ as T,a as w}from"./index-B2CfBDav.js";const M={class:"theme-toggle-container"},C=["title"],L={key:"sun",class:"fas fa-sun"},x={key:"moon",class:"fas fa-moon"},B={key:"auto",class:"fas fa-circle-half-stroke"},S={key:1,class:"theme-switch-wrapper"},N=["title"],V={class:"switch-handle"},z={class:"handle-icon"},$={key:0,class:"fas fa-sun"},D={key:1,class:"fas fa-moon"},E={key:2,class:"fas fa-circle-half-stroke"},F={key:2,class:"theme-segmented"},I=["title","onClick"],J={key:0,class:"ml-1 hidden sm:inline"},O={__name:"ThemeToggle",props:{mode:{type:String,default:"compact",validator:l=>["compact","dropdown","segmented"].includes(l)},showLabel:{type:Boolean,default:!1}},setup(l){const a=w(),h=[{value:"light",label:"浅色模式",shortLabel:"浅色",icon:"fas fa-sun"},{value:"dark",label:"深色模式",shortLabel:"深色",icon:"fas fa-moon"},{value:"auto",label:"跟随系统",shortLabel:"自动",icon:"fas fa-circle-half-stroke"}],m=f(()=>{const n=h.find(i=>i.value===a.themeMode);return n?`点击切换主题 - ${n.label}`:"切换主题"}),r=()=>{a.cycleThemeMode()},_=n=>{a.setThemeMode(n)};return(n,i)=>(t(),s("div",M,[l.mode==="compact"?(t(),s("button",{key:0,class:"theme-toggle-button",title:m.value,onClick:r},[k(g,{mode:"out-in",name:"fade"},{default:v(()=>[o(a).themeMode==="light"?(t(),s("i",L)):o(a).themeMode==="dark"?(t(),s("i",x)):(t(),s("i",B))]),_:1})],8,C)):l.mode==="dropdown"?(t(),s("div",S,[e("button",{class:d(["theme-switch",{"is-dark":o(a).themeMode==="dark","is-auto":o(a).themeMode==="auto"}]),title:m.value,onClick:r},[i[0]||(i[0]=e("div",{class:"switch-bg"},[e("div",{class:"stars"},[e("span"),e("span"),e("span")]),e("div",{class:"clouds"},[e("span"),e("span")])],-1)),e("div",V,[e("div",z,[o(a).themeMode==="light"?(t(),s("i",$)):o(a).themeMode==="dark"?(t(),s("i",D)):(t(),s("i",E))])])],10,N)])):l.mode==="segmented"?(t(),s("div",F,[(t(),s(p,null,y(h,c=>e("button",{key:c.value,class:d(["theme-segment",{active:o(a).themeMode===c.value}]),title:c.label,onClick:P=>_(c.value)},[e("i",{class:d(c.icon)},null,2),l.showLabel?(t(),s("span",J,b(c.shortLabel),1)):u("",!0)],10,I)),64))])):u("",!0)]))}},j=T(O,[["__scopeId","data-v-58747959"]]);export{j as T};

View File

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

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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

34
web/admin-spa/dist/index.html vendored Normal file
View File

@@ -0,0 +1,34 @@
<!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-B2CfBDav.js"></script>
<link rel="modulepreload" crossorigin href="/admin-next/assets/vue-vendor-Bsazo-x0.js">
<link rel="modulepreload" crossorigin href="/admin-next/assets/vendor-C8JtMHuO.js">
<link rel="modulepreload" crossorigin href="/admin-next/assets/element-plus-C5sO7D8l.js">
<link rel="stylesheet" crossorigin href="/admin-next/assets/element-plus-nq7etrhL.css">
<link rel="stylesheet" crossorigin href="/admin-next/assets/index-CZgoAXsK.css">
</head>
<body>
<div id="app"></div>
</body>
</html>