Files

2 lines
5.9 KiB
JavaScript

import{_,k as T,l as M,o as C,b as S,d as U,w as n,c as o,g as e,f as i,h as a,m as z,M as B}from"./index.js";const L={style:{"margin-bottom":"8px"}},I={style:{"margin-bottom":"8px"}},j={style:{"margin-bottom":"8px"}},q={style:{"margin-bottom":"8px"}},N={style:{display:"flex","justify-content":"flex-end","margin-top":"24px"}},V={style:{"margin-bottom":"8px"}},W={style:{"margin-bottom":"8px"}},A={style:{"margin-bottom":"8px"}},D={style:{display:"flex","justify-content":"flex-end","margin-top":"24px"}},E={__name:"server",setup(O){const m=T(),l=M({port:5173,authToken:"",keepaliveMode:"comment",logLevel:"info",queueBuffer:2,imageLimit:5,imageMarkdown:!1});C(async()=>{await m.fetchServerConfig(),Object.assign(l,m.serverConfig)});const p=async()=>{await m.saveServerConfig(l)},f=async()=>{if(l.authToken&&l.authToken.length>0&&l.authToken.length<10){z.error("鉴权 Token 如果设置则必须至少 10 个字符,或留空");return}if(!l.authToken){B.confirm({title:"安全警告",content:"您正在将鉴权 Token 留空,这意味着 API 和 WebUI 将无需认证即可访问。请勿在公网环境中使用此配置!确定要继续吗?",okText:"确定留空",okType:"danger",cancelText:"取消",onOk:p});return}await p()};return(P,t)=>{const u=i("a-input-number"),r=i("a-col"),b=i("a-input-password"),d=i("a-select-option"),v=i("a-select"),g=i("a-row"),x=i("a-button"),y=i("a-card"),k=i("a-switch"),w=i("a-layout");return U(),S(w,{style:{background:"transparent"}},{default:n(()=>[o(y,{title:"服务器设置",bordered:!1,style:{width:"100%"}},{default:n(()=>[o(g,{gutter:[16,16]},{default:n(()=>[o(r,{xs:24,md:12},{default:n(()=>[e("div",L,[t[7]||(t[7]=e("div",{style:{"font-weight":"600","margin-bottom":"4px"}},"监听端口",-1)),t[8]||(t[8]=e("div",{style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"8px"}}," 设置服务器监听的端口号,默认为 5173 ",-1)),o(u,{value:l.port,"onUpdate:value":t[0]||(t[0]=s=>l.port=s),min:1,max:65535,placeholder:"请输入端口号",style:{width:"100%"}},null,8,["value"])])]),_:1}),o(r,{xs:24,md:12},{default:n(()=>[e("div",I,[t[9]||(t[9]=e("div",{style:{"font-weight":"600","margin-bottom":"4px"}},"鉴权 Token",-1)),t[10]||(t[10]=e("div",{style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"8px"}}," 用于 API 请求鉴权的密钥,留空则不启用鉴权 ",-1)),o(b,{value:l.authToken,"onUpdate:value":t[1]||(t[1]=s=>l.authToken=s),placeholder:"请输入 Token",type:"password"},null,8,["value"])])]),_:1}),o(r,{xs:24,md:12},{default:n(()=>[e("div",j,[t[13]||(t[13]=e("div",{style:{"font-weight":"600","margin-bottom":"4px"}},"心跳包类型",-1)),t[14]||(t[14]=e("div",{style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"8px"}}," 选择 SSE 流式响应的心跳包格式 ",-1)),o(v,{value:l.keepaliveMode,"onUpdate:value":t[2]||(t[2]=s=>l.keepaliveMode=s),style:{width:"100%"},placeholder:"请选择心跳包类型"},{default:n(()=>[o(d,{value:"comment"},{default:n(()=>[...t[11]||(t[11]=[a("Comment - 注释格式",-1)])]),_:1}),o(d,{value:"content"},{default:n(()=>[...t[12]||(t[12]=[a("Content - 内容格式",-1)])]),_:1})]),_:1},8,["value"])])]),_:1}),o(r,{xs:24,md:12},{default:n(()=>[e("div",q,[t[19]||(t[19]=e("div",{style:{"font-weight":"600","margin-bottom":"4px"}},"日志等级",-1)),t[20]||(t[20]=e("div",{style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"8px"}}," 设置服务器日志输出的详细程度 ",-1)),o(v,{value:l.logLevel,"onUpdate:value":t[3]||(t[3]=s=>l.logLevel=s),style:{width:"100%"},placeholder:"请选择日志等级"},{default:n(()=>[o(d,{value:"debug"},{default:n(()=>[...t[15]||(t[15]=[a("Debug - 调试日志",-1)])]),_:1}),o(d,{value:"info"},{default:n(()=>[...t[16]||(t[16]=[a("Info - 普通信息",-1)])]),_:1}),o(d,{value:"warn"},{default:n(()=>[...t[17]||(t[17]=[a("Warn - 警告信息",-1)])]),_:1}),o(d,{value:"error"},{default:n(()=>[...t[18]||(t[18]=[a("Error - 仅错误",-1)])]),_:1})]),_:1},8,["value"])])]),_:1})]),_:1}),e("div",N,[o(x,{type:"primary",onClick:f},{default:n(()=>[...t[21]||(t[21]=[a(" 保存设置 ",-1)])]),_:1})])]),_:1}),o(y,{title:"队列设置",bordered:!1,style:{width:"100%","margin-top":"10px"}},{default:n(()=>[o(g,{gutter:[16,16]},{default:n(()=>[o(r,{xs:24,md:12},{default:n(()=>[e("div",V,[t[22]||(t[22]=e("div",{style:{"font-weight":"600","margin-bottom":"4px"}},"队列缓冲区大小",-1)),t[23]||(t[23]=e("div",{style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"8px"}},[a(" 非流式请求的额外排队数(设为 0 则不限制非流式请求数量)"),e("br"),a(" 实际队列上限 = Workers数量 + 缓冲区大小 ")],-1)),o(u,{value:l.queueBuffer,"onUpdate:value":t[4]||(t[4]=s=>l.queueBuffer=s),min:0,max:100,placeholder:"默认为 2",style:{width:"100%"}},null,8,["value"])])]),_:1}),o(r,{xs:24,md:12},{default:n(()=>[e("div",W,[t[24]||(t[24]=e("div",{style:{"font-weight":"600","margin-bottom":"4px"}},"图片数量上限",-1)),t[25]||(t[25]=e("div",{style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"8px"}},[a(" 单次请求最多支持的图片附件数量"),e("br"),a(" 网页最多支持10个附件,超出会被丢弃 ")],-1)),o(u,{value:l.imageLimit,"onUpdate:value":t[5]||(t[5]=s=>l.imageLimit=s),min:1,max:10,placeholder:"默认为 5",style:{width:"100%"}},null,8,["value"])])]),_:1}),o(r,{xs:24,md:12},{default:n(()=>[e("div",A,[t[26]||(t[26]=e("div",{style:{"font-weight":"600","margin-bottom":"4px"}},"图片 Markdown 格式",-1)),t[27]||(t[27]=e("div",{style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"8px"}},[a(" 开启后生图结果将使用 Markdown 语法返回图片内容"),e("br"),a(" 开启此项需要客户端支持渲染 Markdown ")],-1)),o(k,{checked:l.imageMarkdown,"onUpdate:checked":t[6]||(t[6]=s=>l.imageMarkdown=s)},null,8,["checked"])])]),_:1})]),_:1}),e("div",D,[o(x,{type:"primary",onClick:f},{default:n(()=>[...t[28]||(t[28]=[a(" 保存设置 ",-1)])]),_:1})])]),_:1})]),_:1})}}},F=_(E,[["__scopeId","data-v-5311fcbb"]]);export{F as default};