修复了2个bug

This commit is contained in:
andy committed 2026-09-02 17:02:02 +08:00
1 parent ce8372e878
commit 2a64dc7395
64 files changed
+1050 -39

No files matched your search

@@ -0,0 +1 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662],{4527:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>f});var a=s(5155),n=s(2115),r=s(5299),l=s(9559),i=s(6046),o=s(7612);function u(){let[e,t]=(0,n.useState)(null),[s,u]=(0,n.useState)({}),[v,f]=(0,n.useState)(()=>new Set),[p,m]=(0,n.useState)("status"),[g,x]=(0,n.useState)(!0),[j,y]=(0,n.useState)(!1),[b,w]=(0,n.useState)(null),[N,k]=(0,n.useState)(null),A=(0,n.useRef)(null),E=(0,n.useRef)(null),C=(0,n.useRef)(null),M=(0,n.useMemo)(()=>(null==e?void 0:e.groups.flatMap(e=>e.fields))||[],[e]),S=(0,n.useMemo)(()=>null==e?void 0:e.groups.find(e=>e.id===p),[p,e]),R=(0,n.useMemo)(()=>[{id:"status",label:"状态"},...(null==e?void 0:e.groups.map(e=>{var t,s;return{id:e.id,label:(t=e.id,s=e.title,"auth"===t?"登录":"visual"===t?"图片":"evolink"===t?"EvoLink":"seedance"===t?"方舟":"oss"===t?"OSS":s)}}))||[]],[e]);async function z(){x(!0),k(null),w(null);try{let s=await fetch("/api/settings",{cache:"no-store"}),a=await s.json();if(!s.ok)throw Error(a.error||"读取设置失败");if(t(a),u(c(a)),f(new Set),"status"!==p&&!a.groups.some(e=>e.id===p)){var e;m((null==(e=a.groups[0])?void 0:e.id)||"status")}}catch(e){k(e instanceof Error?e.message:String(e))}finally{x(!1)}}async function _(){if(0!==v.size){y(!0),k(null),w(null);try{let e=await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({values:Object.fromEntries([...v].map(e=>{var t;return[e,null!=(t=s[e])?t:""]}))})}),a=await e.json();if(!e.ok)throw Error(a.error||"保存设置失败");t(a),u(c(a)),f(new Set),w(a.restartRequired?"配置已保存,重启 Go 服务后生效。":"配置已保存并应用到当前服务。")}catch(e){k(e instanceof Error?e.message:String(e))}finally{y(!1)}}}function q(e,t){u(s=>({...s,[e]:t})),f(t=>{let s=new Set(t);return s.add(e),s})}return((0,n.useEffect)(()=>{z()},[]),(0,n.useEffect)(()=>(0,o.It)(A,e=>(0,o.xr)(e)),[]),(0,n.useEffect)(()=>{(0,o.Js)(C.current)},[N,b]),(0,n.useEffect)(()=>{(0,o.c8)(E.current)},[p]),g&&!e)?(0,a.jsxs)("section",{className:"panel settings-loading",children:[(0,a.jsx)(r.A,{className:"spin",size:18}),"正在读取配置"]}):(0,a.jsxs)("div",{className:"settings-panel",ref:A,children:[(0,a.jsx)("div",{className:"workspace-head","data-animate":!0,children:(0,a.jsx)("div",{children:(0,a.jsx)("h1",{className:"workspace-title",children:"服务设置"})})}),(0,a.jsxs)("section",{className:"panel settings-actions","data-animate":!0,children:[(0,a.jsx)("div",{className:"segmented settings-tabs","aria-label":"设置分类",children:R.map(e=>(0,a.jsx)("button",{className:p===e.id?"active":"","aria-pressed":p===e.id,type:"button",onClick:()=>m(e.id),children:e.label},e.id))}),(0,a.jsxs)("div",{className:"toolbar",children:[(0,a.jsxs)("button",{className:"button",type:"button",onClick:z,disabled:g||j,children:[g?(0,a.jsx)(r.A,{className:"spin",size:18}):(0,a.jsx)(l.A,{size:18}),"刷新"]}),(0,a.jsxs)("button",{className:"button primary",type:"button",onClick:_,disabled:j||0===v.size||!M.length&&!(null==e?void 0:e.engineAssignments.length),children:[j?(0,a.jsx)(r.A,{className:"spin",size:18}):(0,a.jsx)(i.A,{size:18}),"保存"]})]})]}),N||b?(0,a.jsxs)("div",{ref:C,children:[N?(0,a.jsx)("div",{className:"callout",role:"alert",children:N}):null,b?(0,a.jsx)("div",{className:"callout success-callout",role:"status","aria-live":"polite",children:b}):null]}):null,S?(0,a.jsxs)("section",{className:"panel settings-group","data-animate":!0,ref:E,children:[(0,a.jsx)("div",{className:"settings-group-head",children:(0,a.jsx)("div",{children:(0,a.jsx)("h2",{children:S.title})})}),(0,a.jsx)("div",{className:"settings-field-grid",children:S.fields.map(e=>{var t,n;return(0,a.jsxs)("label",{className:"field settings-field",children:[(0,a.jsxs)("span",{children:[e.label,e.secret?(0,a.jsx)("em",{children:e.configured?"已配置":"未配置"}):null]}),"select"===e.type?(0,a.jsx)("select",{value:null!=(t=s[e.key])?t:e.value,onChange:t=>q(e.key,t.target.value),children:(e.options||[]).map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,a.jsx)("input",{type:e.secret?"password":"number"===e.type?"number":"text",value:null!=(n=s[e.key])?n:"",placeholder:e.secret&&e.configured?"留空保留当前密钥":e.description||"",onChange:t=>q(e.key,t.target.value)}),(0,a.jsx)("small",{children:e.key})]},e.key)})})]},S.id):null,"status"===p?(0,a.jsxs)("section",{className:"panel settings-group","data-animate":!0,ref:E,children:[(0,a.jsx)("div",{className:"settings-group-head",children:(0,a.jsx)("div",{children:(0,a.jsx)("h2",{children:"功能引擎"})})}),(0,a.jsxs)("div",{className:"settings-service-strip",children:[(0,a.jsx)(d,{label:"即梦",value:h(null==e?void 0:e.services.visual),ready:!!(null==e?void 0:e.services.visual)}),(0,a.jsx)(d,{label:"EvoLink",value:h(null==e?void 0:e.services.evolink),ready:!!(null==e?void 0:e.services.evolink)}),(0,a.jsx)(d,{label:"Seedance",value:h(null==e?void 0:e.services.seedLine truncated