import{d as V,D as w,h as m,i as U,s as S,o as N,c as a,u as O,a as t,b as x,t as G,m as s,v as r,x as b,A as P,f as B,e as d}from"./index-B0A0-QFY.js";import{u as C}from"./settings-MHx3aXRd.js";import{_ as g}from"./SelectMenu.vue_vue_type_script_setup_true_lang-Bb3w9pba.js";import{_ as M}from"./Checkbox.vue_vue_type_script_setup_true_lang-B6QFZaQQ.js";const A={class:"space-y-8"},D={key:0,class:"rounded-3xl border border-border bg-card p-6 text-sm text-muted-foreground"},L={key:1,class:"rounded-3xl border border-border bg-card p-6"},T={class:"flex items-center justify-between"},q=["disabled"],F={key:0,class:"mt-4 rounded-2xl bg-destructive/10 px-4 py-3 text-sm text-destructive"},J={key:1,class:"mt-6 space-y-8"},R={class:"grid gap-4 lg:grid-cols-3"},$={class:"space-y-4"},j={class:"rounded-2xl border border-border bg-card p-4"},E={class:"mt-4 space-y-3"},I={class:"rounded-2xl border border-border bg-card p-4"},z={class:"mt-4 space-y-3"},H={class:"rounded-2xl border border-border bg-card p-4"},K={class:"mt-4 grid grid-cols-2 gap-3 text-sm"},Q={class:"space-y-4"},W={class:"rounded-2xl border border-border bg-card p-4"},X={class:"mt-4 space-y-3"},oe=V({__name:"Settings",setup(Y){const i=C(),{settings:v,isLoading:c}=w(i),o=m(null),p=m(!1),n=m(""),y=[{label:"Base64 编码",value:"base64"},{label:"URL 链接",value:"url"}],f=U(()=>{const u=[{label:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{label:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{label:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{label:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{label:"Gemini Auto",value:"gemini-auto"}],e=o.value?.image_generation.supported_models||[];for(const l of e)u.some(k=>k.value===l)||u.push({label:l,value:l});return u});S(v,u=>{if(!u)return;const e=JSON.parse(JSON.stringify(u));e.image_generation=e.image_generation||{enabled:!1,supported_models:[],output_format:"base64"},e.image_generation.output_format||="base64",o.value=e}),N(async()=>{await i.loadSettings()});const _=async()=>{if(o.value){n.value="",p.value=!0;try{await i.updateSettings(o.value)}catch(u){n.value=u.message||"保存失败"}finally{p.value=!1}}};return(u,e)=>(d(),a("div",A,[O(c)?(d(),a("section",D," 正在加载设置... ")):(d(),a("section",L,[t("div",T,[e[15]||(e[15]=t("p",{class:"text-base font-semibold text-foreground"},"配置面板",-1)),t("button",{class:"rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90",disabled:p.value||!o.value,onClick:_}," 保存设置 ",8,q)]),n.value?(d(),a("div",F,G(n.value),1)):x("",!0),o.value?(d(),a("div",J,[t("div",R,[t("div",$,[t("div",j,[e[19]||(e[19]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"基础",-1)),t("div",E,[e[16]||(e[16]=t("label",{class:"block text-xs text-muted-foreground"},"API 密钥",-1)),s(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>o.value.basic.api_key=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"可选"},null,512),[[r,o.value.basic.api_key]]),e[17]||(e[17]=t("label",{class:"block text-xs text-muted-foreground"},"基础地址",-1)),s(t("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>o.value.basic.base_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"自动检测或手动填写"},null,512),[[r,o.value.basic.base_url]]),e[18]||(e[18]=t("label",{class:"block text-xs text-muted-foreground"},"代理地址",-1)),s(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>o.value.basic.proxy=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"http://127.0.0.1:7890"},null,512),[[r,o.value.basic.proxy]])])]),t("div",I,[e[23]||(e[23]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"图像生成",-1)),t("div",z,[b(M,{modelValue:o.value.image_generation.enabled,"onUpdate:modelValue":e[3]||(e[3]=l=>o.value.image_generation.enabled=l)},{default:P(()=>[...e[20]||(e[20]=[B(" 启用图像生成 ",-1)])]),_:1},8,["modelValue"]),e[21]||(e[21]=t("label",{class:"block text-xs text-muted-foreground"},"输出格式",-1)),b(g,{modelValue:o.value.image_generation.output_format,"onUpdate:modelValue":e[4]||(e[4]=l=>o.value.image_generation.output_format=l),options:y,placement:"up"},null,8,["modelValue"]),e[22]||(e[22]=t("label",{class:"block text-xs text-muted-foreground"},"支持模型",-1)),b(g,{modelValue:o.value.image_generation.supported_models,"onUpdate:modelValue":e[5]||(e[5]=l=>o.value.image_generation.supported_models=l),options:f.value,placeholder:"选择模型",placement:"up",multiple:""},null,8,["modelValue","options"])])])]),t("div",H,[e[30]||(e[30]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"重试",-1)),t("div",K,[e[24]||(e[24]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"新会话尝试次数",-1)),s(t("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>o.value.retry.max_new_session_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.max_new_session_tries,void 0,{number:!0}]]),e[25]||(e[25]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"请求重试次数",-1)),s(t("input",{"onUpdate:modelValue":e[7]||(e[7]=l=>o.value.retry.max_request_retries=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.max_request_retries,void 0,{number:!0}]]),e[26]||(e[26]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"账号切换次数",-1)),s(t("input",{"onUpdate:modelValue":e[8]||(e[8]=l=>o.value.retry.max_account_switch_tries=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.max_account_switch_tries,void 0,{number:!0}]]),e[27]||(e[27]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"失败阈值",-1)),s(t("input",{"onUpdate:modelValue":e[9]||(e[9]=l=>o.value.retry.account_failure_threshold=l),type:"number",min:"1",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.account_failure_threshold,void 0,{number:!0}]]),e[28]||(e[28]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"限流冷却秒数",-1)),s(t("input",{"onUpdate:modelValue":e[10]||(e[10]=l=>o.value.retry.rate_limit_cooldown_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.rate_limit_cooldown_seconds,void 0,{number:!0}]]),e[29]||(e[29]=t("label",{class:"col-span-2 text-xs text-muted-foreground"},"会话缓存秒数",-1)),s(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>o.value.retry.session_cache_ttl_seconds=l),type:"number",min:"0",class:"col-span-2 rounded-2xl border border-input bg-background px-3 py-2"},null,512),[[r,o.value.retry.session_cache_ttl_seconds,void 0,{number:!0}]])])]),t("div",Q,[t("div",W,[e[34]||(e[34]=t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"公开展示",-1)),t("div",X,[e[31]||(e[31]=t("label",{class:"block text-xs text-muted-foreground"},"Logo 地址",-1)),s(t("input",{"onUpdate:modelValue":e[12]||(e[12]=l=>o.value.public_display.logo_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"logo 地址"},null,512),[[r,o.value.public_display.logo_url]]),e[32]||(e[32]=t("label",{class:"block text-xs text-muted-foreground"},"聊天入口",-1)),s(t("input",{"onUpdate:modelValue":e[13]||(e[13]=l=>o.value.public_display.chat_url=l),type:"text",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm",placeholder:"聊天入口地址"},null,512),[[r,o.value.public_display.chat_url]]),e[33]||(e[33]=t("label",{class:"block text-xs text-muted-foreground"},"会话有效时长",-1)),s(t("input",{"onUpdate:modelValue":e[14]||(e[14]=l=>o.value.session.expire_hours=l),type:"number",min:"1",class:"w-full rounded-2xl border border-input bg-background px-3 py-2 text-sm"},null,512),[[r,o.value.session.expire_hours,void 0,{number:!0}]])])]),e[35]||(e[35]=t("div",{class:"rounded-2xl border border-border bg-card p-4"},[t("p",{class:"text-xs uppercase tracking-[0.3em] text-muted-foreground"},"说明"),t("p",{class:"mt-4 text-sm text-muted-foreground"}," 保存后会直接写入配置文件并热更新。修改后请关注日志面板确认是否生效。 ")],-1))])])])):x("",!0)]))]))}});export{oe as default};