This commit is contained in:
Your Name
2026-07-22 10:18:59 +08:00
parent 2530ddada6
commit 0fb03d0bca
618 changed files with 19445 additions and 3 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.auth-page[data-v-a92a8550]{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-secondary)}.auth-card[data-v-a92a8550]{width:100%;max-width:400px;padding:40px 32px;background:var(--bg-primary);border-radius:16px;border:1px solid var(--border);box-shadow:var(--shadow)}.auth-header[data-v-a92a8550]{text-align:center;margin-bottom:32px}.logo[data-v-a92a8550]{font-size:48px;margin-bottom:12px}.auth-header h1[data-v-a92a8550]{font-size:24px;margin-bottom:8px}.auth-header p[data-v-a92a8550]{color:var(--text-secondary);font-size:14px}.auth-btn[data-v-a92a8550]{width:100%;margin-top:8px;padding:14px}.auth-footer[data-v-a92a8550]{text-align:center;margin-top:24px;font-size:14px;color:var(--text-secondary)}
@@ -0,0 +1 @@
import{_ as y,u as V,o as k,c as p,a as t,t as u,b as x,w as N,d as v,v as c,e as S,f as m,g as q,h as B,r as a,i as C,j as L,k as M,l as f}from"./index-k46zOoYG.js";import{u as D}from"./settings-1-hPceiv.js";const R={class:"auth-page"},T={class:"auth-card"},U={class:"auth-header"},j={class:"form-group"},A={class:"form-group"},E={key:0,class:"form-error"},I=["disabled"],P={class:"auth-footer"},z={__name:"LoginView",setup(F){const _=L(),g=M(),b=V(),i=D(),l=a(""),r=a(""),s=a(""),o=a(!1);k(()=>i.loadPublic());async function h(){s.value="",o.value=!0;try{await b.login(l.value,r.value),_.push(g.query.redirect||"/")}catch(d){s.value=d.message}finally{o.value=!1}}return(d,e)=>{const w=C("router-link");return f(),p("div",R,[t("div",T,[t("div",U,[e[2]||(e[2]=t("div",{class:"logo"},"💬",-1)),t("h1",null,u(x(i).siteName),1),e[3]||(e[3]=t("p",null,"登录您的账户",-1))]),t("form",{onSubmit:N(h,["prevent"])},[t("div",j,[e[4]||(e[4]=t("label",null,"账号",-1)),v(t("input",{"onUpdate:modelValue":e[0]||(e[0]=n=>l.value=n),class:"form-input",placeholder:"用户名或邮箱",required:""},null,512),[[c,l.value]])]),t("div",A,[e[5]||(e[5]=t("label",null,"密码",-1)),v(t("input",{"onUpdate:modelValue":e[1]||(e[1]=n=>r.value=n),type:"password",class:"form-input",placeholder:"请输入密码",required:""},null,512),[[c,r.value]])]),s.value?(f(),p("p",E,u(s.value),1)):S("",!0),t("button",{type:"submit",class:"btn btn-primary auth-btn",disabled:o.value},u(o.value?"登录中...":"登录"),9,I)],32),t("p",P,[e[7]||(e[7]=m(" 还没有账户? ",-1)),q(w,{to:"/register"},{default:B(()=>[...e[6]||(e[6]=[m("立即注册",-1)])]),_:1})])])])}}},J=y(z,[["__scopeId","data-v-a92a8550"]]);export{J as default};
@@ -0,0 +1 @@
.auth-page[data-v-ab6798e7]{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-secondary)}.auth-card[data-v-ab6798e7]{width:100%;max-width:400px;padding:40px 32px;background:var(--bg-primary);border-radius:16px;border:1px solid var(--border);box-shadow:var(--shadow)}.auth-header[data-v-ab6798e7]{text-align:center;margin-bottom:32px}.logo[data-v-ab6798e7]{font-size:48px;margin-bottom:12px}.auth-header h1[data-v-ab6798e7]{font-size:24px;margin-bottom:8px}.auth-header p[data-v-ab6798e7]{color:var(--text-secondary);font-size:14px}.auth-btn[data-v-ab6798e7]{width:100%;margin-top:8px;padding:14px}.auth-footer[data-v-ab6798e7]{text-align:center;margin-top:24px;font-size:14px;color:var(--text-secondary)}
@@ -0,0 +1 @@
import{_ as h,u as V,o as x,c as f,a as t,t as d,b as k,w as N,d as p,v as m,e as R,f as c,g as S,h as q,r as l,i as B,j as C,l as g}from"./index-k46zOoYG.js";import{u as M}from"./settings-1-hPceiv.js";const U={class:"auth-page"},D={class:"auth-card"},T={class:"auth-header"},j={class:"form-group"},A={class:"form-group"},E={class:"form-group"},I={key:0,class:"form-error"},P=["disabled"],z={class:"auth-footer"},F={__name:"RegisterView",setup(G){const _=C(),b=V(),r=M(),u=l(""),n=l(""),i=l(""),s=l(""),a=l(!1);x(()=>r.loadPublic());async function w(){if(!r.allowRegister){s.value="当前不允许注册";return}s.value="",a.value=!0;try{await b.register(u.value,n.value,i.value),_.push("/")}catch(v){s.value=v.message}finally{a.value=!1}}return(v,e)=>{const y=B("router-link");return g(),f("div",U,[t("div",D,[t("div",T,[e[3]||(e[3]=t("div",{class:"logo"},"💬",-1)),t("h1",null,d(k(r).siteName),1),e[4]||(e[4]=t("p",null,"创建新账户",-1))]),t("form",{onSubmit:N(w,["prevent"])},[t("div",j,[e[5]||(e[5]=t("label",null,"用户名",-1)),p(t("input",{"onUpdate:modelValue":e[0]||(e[0]=o=>u.value=o),class:"form-input",placeholder:"3-50 个字符",required:""},null,512),[[m,u.value]])]),t("div",A,[e[6]||(e[6]=t("label",null,"邮箱",-1)),p(t("input",{"onUpdate:modelValue":e[1]||(e[1]=o=>n.value=o),type:"email",class:"form-input",placeholder:"your@email.com",required:""},null,512),[[m,n.value]])]),t("div",E,[e[7]||(e[7]=t("label",null,"密码",-1)),p(t("input",{"onUpdate:modelValue":e[2]||(e[2]=o=>i.value=o),type:"password",class:"form-input",placeholder:"至少 6 位",required:""},null,512),[[m,i.value]])]),s.value?(g(),f("p",I,d(s.value),1)):R("",!0),t("button",{type:"submit",class:"btn btn-primary auth-btn",disabled:a.value},d(a.value?"注册中...":"注册"),9,P)],32),t("p",z,[e[9]||(e[9]=c(" 已有账户? ",-1)),S(y,{to:"/login"},{default:q(()=>[...e[8]||(e[8]=[c("立即登录",-1)])]),_:1})])])])}}},K=h(F,[["__scopeId","data-v-ab6798e7"]]);export{K as default};
+10
View File
@@ -0,0 +1,10 @@
.notification-region[data-v-a3b13931]{position:fixed;top:16px;right:16px;z-index:120;display:flex;width:min(420px,calc(100vw - 32px));flex-direction:column;gap:10px;pointer-events:none}.notification-card[data-v-a3b13931]{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;overflow:hidden;padding:14px;background:#fffffffa;border:1px solid var(--border-strong);border-radius:16px;box-shadow:0 18px 48px #263b5c29;pointer-events:auto}.notification-card[data-v-a3b13931]:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--danger)}.notification-icon[data-v-a3b13931]{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#fff0f0;color:var(--danger)}.notification-content[data-v-a3b13931]{min-width:0}.notification-heading[data-v-a3b13931]{display:flex;min-height:28px;align-items:flex-start;justify-content:space-between;gap:10px}.notification-heading strong[data-v-a3b13931]{padding-top:2px;color:var(--text-primary);font-size:15px;font-weight:650;line-height:1.4}.notification-close[data-v-a3b13931]{width:28px;height:28px;margin:-3px -4px 0 0;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0;transition:background .16s ease,color .16s ease,transform .16s ease}.notification-close[data-v-a3b13931]:hover{background:var(--bg-soft);color:var(--text-primary)}.notification-close[data-v-a3b13931]:active,.copy-detail[data-v-a3b13931]:active{transform:scale(.96)}.notification-content>p[data-v-a3b13931]{max-width:36em;color:var(--text-secondary);font-size:13px;line-height:1.65;text-wrap:pretty}.notification-detail[data-v-a3b13931]{margin-top:10px;border-top:1px solid var(--border)}.notification-detail summary[data-v-a3b13931]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0 1px;color:var(--text-secondary);font-size:12px;font-weight:550;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.notification-detail summary[data-v-a3b13931]::-webkit-details-marker{display:none}.detail-chevron[data-v-a3b13931]{transition:transform .18s ease}.notification-detail[open] .detail-chevron[data-v-a3b13931]{transform:rotate(180deg)}.detail-body[data-v-a3b13931]{margin-top:8px;padding:10px;background:#f6f8fb;border:1px solid var(--border);border-radius:10px}.detail-body pre[data-v-a3b13931]{max-height:190px;overflow:auto;color:#354258;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.copy-detail[data-v-a3b13931]{display:inline-flex;align-items:center;gap:5px;min-height:30px;margin-top:9px;padding:0 9px;background:#fff;border:1px solid var(--border-strong);border-radius:8px;color:var(--text-secondary);font-size:11px;transition:background .16s ease,color .16s ease,transform .16s ease}.copy-detail[data-v-a3b13931]:hover{background:var(--bg-soft);color:var(--text-primary)}.notification-enter-active[data-v-a3b13931],.notification-leave-active[data-v-a3b13931]{transition:opacity .22s ease,transform .22s cubic-bezier(.16,1,.3,1)}.notification-enter-from[data-v-a3b13931],.notification-leave-to[data-v-a3b13931]{opacity:0;transform:translateY(-8px) scale(.98)}@media(max-width:768px){.notification-region[data-v-a3b13931]{top:calc(10px + env(safe-area-inset-top));right:10px;left:10px;width:auto}.notification-card[data-v-a3b13931]{grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px;border-radius:14px}.notification-icon[data-v-a3b13931]{width:34px;height:34px;border-radius:10px}.detail-body pre[data-v-a3b13931]{max-height:min(220px,36dvh)}}@media(prefers-reduced-motion:reduce){.notification-enter-active[data-v-a3b13931],.notification-leave-active[data-v-a3b13931],.notification-close[data-v-a3b13931],.copy-detail[data-v-a3b13931],.detail-chevron[data-v-a3b13931]{transition:none}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
Theme: GitHub
Description: Light theme as seen on github.com
Author: github.com
Maintainer: @Hirse
Updated: 2021-05-15
Outdated base version: https://github.com/primer/github-syntax-light
Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}:root{--bg-primary: #f5f7fb;--bg-secondary: #ffffff;--bg-tertiary: #f8fafc;--bg-hover: #eef3f9;--bg-soft: #f2f5f8;--text-primary: #152033;--text-secondary: #526077;--text-muted: #7d899b;--accent: #2d66da;--accent-hover: #2458c4;--accent-soft: #edf4ff;--border: #e1e7ef;--border-strong: #d4dce7;--danger: #dc4c4c;--sidebar-width: 268px;--header-height: 66px;--input-max-width: 920px;--content-max-width: 1040px;--radius: 18px;--radius-sm: 12px;--shadow: 0 18px 50px rgba(38, 59, 92, .08);--shadow-soft: 0 8px 24px rgba(38, 59, 92, .06);--shadow-composer: 0 14px 38px rgba(38, 59, 92, .09)}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%;min-height:100dvh;font-family:Microsoft YaHei UI,PingFang SC,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{overflow:hidden}a{color:var(--accent);text-decoration:none}button{cursor:pointer;border:none;background:none;color:inherit;font:inherit}button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid rgba(45,102,218,.72);outline-offset:2px}input,textarea,select{font:inherit;color:inherit;background:transparent;border:none;outline:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ced7e3;border-radius:999px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:999px;font-size:14px;font-weight:500;transition:color .16s ease,background .16s ease,border-color .16s ease,transform .16s ease}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:#fff;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:#ef44441a}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:14px;color:var(--text-secondary)}.form-input{width:100%;padding:12px 16px;background:#fff;border:1px solid var(--border);border-radius:14px;font-size:15px;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2d66da1c}.form-error{color:var(--danger);font-size:13px;margin-top:12px}.markdown-body{line-height:1.7;font-size:15px;word-break:break-word}.markdown-body p{margin-bottom:12px}.markdown-body p:last-child{margin-bottom:0}.markdown-body br{content:"";display:block;margin-top:10px}.markdown-body pre{background:#f8fafc;border:1px solid var(--border);border-radius:14px;padding:16px;overflow-x:auto;margin:12px 0}.markdown-body code{font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px}.markdown-body :not(pre)>code{background:#eef2ff;padding:2px 6px;border-radius:6px}.markdown-body ul,.markdown-body ol{padding-left:24px;margin-bottom:12px}.markdown-body blockquote{border-left:3px solid var(--accent);padding-left:16px;color:var(--text-secondary);margin:12px 0}.markdown-body table{border-collapse:collapse;width:100%;margin:12px 0}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:8px 12px;text-align:left}.markdown-body th{background:var(--bg-soft)}.markdown-body a{color:var(--accent)}.markdown-body img{max-width:100%;border-radius:8px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#15203357;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90}@media(max-width:768px){.sidebar-overlay.active{display:block}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{m,r as e,n as s}from"./index-k46zOoYG.js";const v=m("settings",()=>{const o=e({markdown:!0,image:!0,video:!0,voice:!0,document:!0,emoji:!0,upload_image:!0,upload_video:!0,upload_file:!0,paste_image:!0}),n=e("AI Chat"),u=e(!0),r=e([]),i=e([]),l=e(!1);async function d(){const a=(await s.get("/settings/public")).data.data;o.value=a.features,n.value=a.site_name,u.value=a.allow_register,l.value=!0}async function c(){const t=await s.get("/models");r.value=t.data.data}async function g(){const t=await s.get("/agents");i.value=t.data.data||[]}return{features:o,siteName:n,allowRegister:u,models:r,agents:i,loaded:l,loadPublic:d,loadModels:c,loadAgents:g}});export{v as u};