mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 20:31:59 +00:00
chore: update frontend build for v1.1.121 [skip ci]
This commit is contained in:
@@ -6,5 +6,5 @@ This branch contains the pre-built frontend assets for Claude Relay Service.
|
|||||||
|
|
||||||
These files are automatically generated by the CI/CD pipeline.
|
These files are automatically generated by the CI/CD pipeline.
|
||||||
|
|
||||||
Version: 1.1.120
|
Version: 1.1.121
|
||||||
Build Date: 2025-08-24 09:49:10 UTC
|
Build Date: 2025-08-28 00:42:20 UTC
|
||||||
|
|||||||
@@ -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-c2f46f02]{width:24px;height:24px;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:spin-c2f46f02 1s linear infinite}@keyframes spin-c2f46f02{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.accounts-container[data-v-c2f46f02]{min-height:calc(100vh - 300px)}.table-container[data-v-c2f46f02]{overflow-x:auto;border-radius:12px;border:1px solid rgba(0,0,0,.05)}.table-row[data-v-c2f46f02]{transition:all .2s ease}.table-row[data-v-c2f46f02]:hover{background-color:#00000005}
|
|
||||||
15
web/admin-spa/dist/assets/AccountsView-CXuc1gD-.js
vendored
Normal file
15
web/admin-spa/dist/assets/AccountsView-CXuc1gD-.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/admin-spa/dist/assets/ApiKeysView-BAk5rs4W.css
vendored
Normal file
1
web/admin-spa/dist/assets/ApiKeysView-BAk5rs4W.css
vendored
Normal file
@@ -0,0 +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-255559bf]{min-height:calc(100vh - 300px)}.table-container[data-v-255559bf]{overflow-x:auto;border-radius:12px;border:1px solid rgba(0,0,0,.05)}.table-row[data-v-255559bf]{transition:all .2s ease}.table-row[data-v-255559bf]:hover{background-color:#00000005}.loading-spinner[data-v-255559bf]{width:24px;height:24px;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:spin-255559bf 1s linear infinite}@keyframes spin-255559bf{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.api-key-date-picker[data-v-255559bf] .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-255559bf] .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-255559bf] .el-range-separator{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}
|
||||||
23
web/admin-spa/dist/assets/ApiKeysView-CIy7JR3V.js
vendored
Normal file
23
web/admin-spa/dist/assets/ApiKeysView-CIy7JR3V.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/admin-spa/dist/assets/ApiStatsView-D_A6K6R6.css
vendored
Normal file
1
web/admin-spa/dist/assets/ApiStatsView-D_A6K6R6.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/admin-spa/dist/assets/ApiStatsView-Dc3CG1DW.js
vendored
Normal file
1
web/admin-spa/dist/assets/ApiStatsView-Dc3CG1DW.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/admin-spa/dist/assets/CustomDropdown-Q-JVaRVL.js
vendored
Normal file
1
web/admin-spa/dist/assets/CustomDropdown-Q-JVaRVL.js
vendored
Normal file
@@ -0,0 +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-C2TiZpy7.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};
|
||||||
1
web/admin-spa/dist/assets/CustomDropdown-jjrvIxsf.css
vendored
Normal file
1
web/admin-spa/dist/assets/CustomDropdown-jjrvIxsf.css
vendored
Normal 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}
|
||||||
1
web/admin-spa/dist/assets/DashboardView-Bsu0I2oU.js
vendored
Normal file
1
web/admin-spa/dist/assets/DashboardView-Bsu0I2oU.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -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}
|
|
||||||
1
web/admin-spa/dist/assets/LoginView-BkYxy5vj.js
vendored
Normal file
1
web/admin-spa/dist/assets/LoginView-BkYxy5vj.js
vendored
Normal file
@@ -0,0 +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-C2TiZpy7.js";import{T as L}from"./ThemeToggle-Dqc-zR3c.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};
|
||||||
0
web/admin-spa/dist/assets/LoginView-tn0RQdqM.css
vendored
Normal file
0
web/admin-spa/dist/assets/LoginView-tn0RQdqM.css
vendored
Normal file
1
web/admin-spa/dist/assets/LogoTitle-C7EUMnLj.js
vendored
Normal file
1
web/admin-spa/dist/assets/LogoTitle-C7EUMnLj.js
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{_ as d}from"./index-C2TiZpy7.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};
|
||||||
1
web/admin-spa/dist/assets/LogoTitle-DXipqypn.css
vendored
Normal file
1
web/admin-spa/dist/assets/LogoTitle-DXipqypn.css
vendored
Normal 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)}
|
||||||
1
web/admin-spa/dist/assets/MainLayout-1_R8fkU5.js
vendored
Normal file
1
web/admin-spa/dist/assets/MainLayout-1_R8fkU5.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/admin-spa/dist/assets/MainLayout-CCQ2LruH.css
vendored
Normal file
1
web/admin-spa/dist/assets/MainLayout-CCQ2LruH.css
vendored
Normal 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}
|
||||||
3
web/admin-spa/dist/assets/SettingsView-CEFGAXTj.js
vendored
Normal file
3
web/admin-spa/dist/assets/SettingsView-CEFGAXTj.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
|||||||
.settings-container[data-v-44082597]{min-height:calc(100vh - 300px)}.card[data-v-44082597]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;border:1px solid #e5e7eb}:root.dark .card[data-v-44082597]{background:#1f2937;border:1px solid #374151;box-shadow:0 2px 12px #0000004d}.table-container[data-v-44082597]{overflow:hidden;border-radius:8px;border:1px solid #f3f4f6}:root.dark .table-container[data-v-44082597]{border:1px solid #4b5563}.table-row[data-v-44082597]{transition:background-color .2s ease}.table-row[data-v-44082597]:hover{background-color:#f9fafb}:root.dark .table-row[data-v-44082597]:hover{background-color:#374151}.form-input[data-v-44082597]{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-44082597]: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-44082597]{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-44082597]: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-44082597]{--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-44082597]:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.btn-primary[data-v-44082597]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.btn-success[data-v-44082597]{--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-44082597]:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.btn-success[data-v-44082597]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.loading-spinner[data-v-44082597]{height:1.25rem;width:1.25rem}@keyframes spin-44082597{to{transform:rotate(360deg)}}.loading-spinner[data-v-44082597]{animation:spin-44082597 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))}
|
|
||||||
1
web/admin-spa/dist/assets/ThemeToggle-BbfeH87u.css
vendored
Normal file
1
web/admin-spa/dist/assets/ThemeToggle-BbfeH87u.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/admin-spa/dist/assets/ThemeToggle-Dqc-zR3c.js
vendored
Normal file
1
web/admin-spa/dist/assets/ThemeToggle-Dqc-zR3c.js
vendored
Normal file
@@ -0,0 +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-C2TiZpy7.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};
|
||||||
1
web/admin-spa/dist/assets/TutorialView-BSzHwpnm.js
vendored
Normal file
1
web/admin-spa/dist/assets/TutorialView-BSzHwpnm.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/admin-spa/dist/assets/TutorialView-BVycHwR_.css
vendored
Normal file
1
web/admin-spa/dist/assets/TutorialView-BVycHwR_.css
vendored
Normal 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}
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{r as N,c as y,o as x,q as R,V as C,x as i,y as o,z as n,L as f,P as l,O as w,B as k,C as b}from"./vue-vendor-Ig-GgGwA.js";const $={class:"space-y-1"},P={class:"flex items-center justify-between text-xs"},B={class:"text-gray-500"},E={key:0,class:"font-medium text-gray-700"},I={key:1,class:"font-medium text-orange-600"},V={key:2,class:"font-medium text-gray-500"},j={key:3,class:"font-medium text-gray-400"},z={key:0,class:"space-y-0.5"},D={key:0,class:"space-y-0.5"},W={class:"flex items-center justify-between text-xs"},F={class:"text-gray-600"},K={class:"h-1 w-full rounded-full bg-gray-200"},O={key:1,class:"space-y-0.5"},U={class:"flex items-center justify-between text-xs"},A={class:"text-gray-600"},G={class:"h-1 w-full rounded-full bg-gray-200"},H={key:1,class:"text-xs text-gray-500"},J={key:0},Q={key:1},X={key:2},Z={__name:"WindowCountdown",props:{label:{type:String,default:"窗口限制"},rateLimitWindow:{type:Number,required:!0},windowStartTime:{type:Number,default:null},windowEndTime:{type:Number,default:null},windowRemainingSeconds:{type:Number,default:null},currentRequests:{type:Number,default:0},requestLimit:{type:Number,default:0},currentTokens:{type:Number,default:0},tokenLimit:{type:Number,default:0},showProgress:{type:Boolean,default:!0},showTooltip:{type:Boolean,default:!1}},setup(a){const s=a,r=N(s.windowRemainingSeconds);let u=null;const c=y(()=>s.windowStartTime===null?"notStarted":r.value===0?"expired":r.value>0?"active":"unknown"),T=y(()=>s.requestLimit>0),_=y(()=>s.tokenLimit>0),L=e=>{if(e==null)return"--:--";const t=Math.floor(e/3600),d=Math.floor(e%3600/60),p=e%60;return t>0?`${t}h ${d}m`:d>0?`${d}m ${p}s`:`${p}s`},q=e=>{const t=Math.floor(e/3600),d=Math.floor(e%3600/60);return t>0?`${t}小时${d}分钟`:`${d}分钟`},g=e=>e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),v=()=>{if(!s.requestLimit||s.requestLimit===0)return 0;const e=(s.currentRequests||0)/s.requestLimit*100;return Math.min(e,100)},S=()=>{const e=v();return e>=100?"bg-red-500":e>=80?"bg-yellow-500":"bg-blue-500"},h=()=>{if(!s.tokenLimit||s.tokenLimit===0)return 0;const e=(s.currentTokens||0)/s.tokenLimit*100;return Math.min(e,100)},M=()=>{const e=h();return e>=100?"bg-red-500":e>=80?"bg-yellow-500":"bg-purple-500"},m=()=>{if(s.windowEndTime&&r.value>0){const e=Date.now(),t=Math.max(0,Math.floor((s.windowEndTime-e)/1e3));r.value=t,t===0&&u&&(clearInterval(u),u=null)}};return x(()=>s.windowRemainingSeconds,e=>{r.value=e}),x(()=>s.windowEndTime,e=>{e&&(m(),!u&&r.value>0&&(u=setInterval(m,1e3)))}),R(()=>{s.windowEndTime&&r.value>0&&(m(),u=setInterval(m,1e3))}),C(()=>{u&&clearInterval(u)}),(e,t)=>(o(),i("div",$,[n("div",P,[n("span",B,l(a.label),1),c.value==="active"?(o(),i("span",E,[t[0]||(t[0]=n("i",{class:"fas fa-clock mr-1 text-blue-500"},null,-1)),w(" "+l(L(r.value)),1)])):c.value==="expired"?(o(),i("span",I,t[1]||(t[1]=[n("i",{class:"fas fa-sync-alt mr-1"},null,-1),w(" 窗口已过期 ",-1)]))):c.value==="notStarted"?(o(),i("span",V,t[2]||(t[2]=[n("i",{class:"fas fa-pause-circle mr-1"},null,-1),w(" 窗口未激活 ",-1)]))):(o(),i("span",j,l(a.rateLimitWindow)+" 分钟 ",1))]),a.showProgress?(o(),i("div",z,[T.value?(o(),i("div",D,[n("div",W,[t[3]||(t[3]=n("span",{class:"text-gray-400"},"请求",-1)),n("span",F,l(a.currentRequests||0)+"/"+l(a.requestLimit),1)]),n("div",K,[n("div",{class:b(["h-1 rounded-full transition-all duration-300",S()]),style:k({width:v()+"%"})},null,6)])])):f("",!0),_.value?(o(),i("div",O,[n("div",U,[t[4]||(t[4]=n("span",{class:"text-gray-400"},"Token",-1)),n("span",A,l(g(a.currentTokens||0))+"/"+l(g(a.tokenLimit)),1)]),n("div",G,[n("div",{class:b(["h-1 rounded-full transition-all duration-300",M()]),style:k({width:h()+"%"})},null,6)])])):f("",!0)])):f("",!0),c.value==="active"&&a.showTooltip?(o(),i("div",H,[t[5]||(t[5]=n("i",{class:"fas fa-info-circle mr-1"},null,-1)),r.value<60?(o(),i("span",J,"即将重置")):r.value<300?(o(),i("span",Q,l(Math.ceil(r.value/60))+" 分钟后重置",1)):(o(),i("span",X,l(q(r.value))+"后重置",1))])):f("",!0)]))}};export{Z as _};
|
|
||||||
13
web/admin-spa/dist/assets/chart-Cor9iTVD.js
vendored
Normal file
13
web/admin-spa/dist/assets/chart-Cor9iTVD.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
web/admin-spa/dist/assets/element-plus-nq7etrhL.css
vendored
Normal file
1
web/admin-spa/dist/assets/element-plus-nq7etrhL.css
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
web/admin-spa/dist/assets/fa-brands-400-D1LuMI3I.ttf
vendored
Normal file
BIN
web/admin-spa/dist/assets/fa-brands-400-D1LuMI3I.ttf
vendored
Normal file
Binary file not shown.
BIN
web/admin-spa/dist/assets/fa-brands-400-D_cYUPeE.woff2
vendored
Normal file
BIN
web/admin-spa/dist/assets/fa-brands-400-D_cYUPeE.woff2
vendored
Normal file
Binary file not shown.
BIN
web/admin-spa/dist/assets/fa-regular-400-BjRzuEpd.woff2
vendored
Normal file
BIN
web/admin-spa/dist/assets/fa-regular-400-BjRzuEpd.woff2
vendored
Normal file
Binary file not shown.
BIN
web/admin-spa/dist/assets/fa-regular-400-DZaxPHgR.ttf
vendored
Normal file
BIN
web/admin-spa/dist/assets/fa-regular-400-DZaxPHgR.ttf
vendored
Normal file
Binary file not shown.
BIN
web/admin-spa/dist/assets/fa-solid-900-CTAAxXor.woff2
vendored
Normal file
BIN
web/admin-spa/dist/assets/fa-solid-900-CTAAxXor.woff2
vendored
Normal file
Binary file not shown.
BIN
web/admin-spa/dist/assets/fa-solid-900-D0aA9rwL.ttf
vendored
Normal file
BIN
web/admin-spa/dist/assets/fa-solid-900-D0aA9rwL.ttf
vendored
Normal file
Binary file not shown.
BIN
web/admin-spa/dist/assets/fa-v4compatibility-C9RhG_FT.woff2
vendored
Normal file
BIN
web/admin-spa/dist/assets/fa-v4compatibility-C9RhG_FT.woff2
vendored
Normal file
Binary file not shown.
BIN
web/admin-spa/dist/assets/fa-v4compatibility-CCth-dXg.ttf
vendored
Normal file
BIN
web/admin-spa/dist/assets/fa-v4compatibility-CCth-dXg.ttf
vendored
Normal file
Binary file not shown.
2
web/admin-spa/dist/assets/index-C2TiZpy7.js
vendored
Normal file
2
web/admin-spa/dist/assets/index-C2TiZpy7.js
vendored
Normal file
File diff suppressed because one or more lines are too long
5
web/admin-spa/dist/assets/index-CpSw-PRl.css
vendored
5
web/admin-spa/dist/assets/index-CpSw-PRl.css
vendored
File diff suppressed because one or more lines are too long
22
web/admin-spa/dist/assets/toast-BvwA7Mwb.js
vendored
Normal file
22
web/admin-spa/dist/assets/toast-BvwA7Mwb.js
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
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};
|
||||||
30
web/admin-spa/dist/assets/vendor-BDiMbLwQ.js
vendored
Normal file
30
web/admin-spa/dist/assets/vendor-BDiMbLwQ.js
vendored
Normal file
File diff suppressed because one or more lines are too long
25
web/admin-spa/dist/assets/vue-vendor-Ig-GgGwA.js
vendored
25
web/admin-spa/dist/assets/vue-vendor-Ig-GgGwA.js
vendored
File diff suppressed because one or more lines are too long
34
web/admin-spa/dist/index.html
vendored
Normal file
34
web/admin-spa/dist/index.html
vendored
Normal 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-C2TiZpy7.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">
|
||||||
|
<link rel="stylesheet" crossorigin href="/admin-next/assets/element-plus-nq7etrhL.css">
|
||||||
|
<link rel="stylesheet" crossorigin href="/admin-next/assets/index-CpSw-PRl.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user