Files
Nexus/web/app/assets/ServerQuickAddDialogs-zcLgLArY.js
T
2026-07-08 22:31:31 +08:00

1 line
4.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{Ar as e,Er as t,L as n,Lt as r,Nr as i,Or as a,Tr as o,Yr as s,_ as c,_i as l,ai as u,g as d,h as f,in as p,jr as m,qr as h,ri as g,u as _,ui as v,v as y,wt as b,xi as x,xr as S}from"./index-CDcgx9V8.js";import{t as C}from"./useSnackbar-u_XK4ZNm.js";import{i as w,n as T,o as E,t as D}from"./VCard-pmpQR9O7.js";import{t as O}from"./VTextField-B-BnrJAQ.js";import{t as k}from"./apiError-CpgZRt4T.js";import{t as A}from"./VDialog-nKJcjfNL.js";function j(e={}){let t=C(),n=v(!1),i=v(!1),a=v({domain:``,port:22,name:``}),o=v(!1),s=v([]),c=v(``);function l(){a.value={domain:``,port:22,name:``},n.value=!0}function u(e,t){s.value=e,c.value=t||``,o.value=!0}function d(e){e.onboarding_job_id&&(r(e.onboarding_job_id,e.onboarding_label||`新服务器初始化`,1,`onboard`,`0/1`,`running`),b(`新服务器初始化已在后台执行(sudo + 路径探测)`))}async function f(){let r=a.value.domain.trim();if(!r){t(`请填写 IP 或域名`,`error`);return}i.value=!0;try{let i={domain:r,port:a.value.port||22},o=a.value.name.trim();o&&(i.name=o);let s=await p.post(`/servers/add-by-ip`,i);s.success&&s.server?(n.value=!1,d(s),t(`添加成功:${s.matched_preset} (${s.matched_username})`),await e.onSuccess?.(s)):(n.value=!1,u(s.errors||[],s.message),await e.onPendingFailure?.())}catch(e){t(k(e,`添加失败`),`error`)}finally{i.value=!1}}return{showQuickAdd:n,quickAddLoading:i,quickAddForm:a,showPollFailure:o,pollFailureErrors:s,pollFailureMessage:c,openQuickAdd:l,submitQuickAdd:f,showFailureDialog:u}}var M={key:1,class:`text-medium-emphasis`},N=i({__name:`ServerQuickAddDialogs`,props:{onSuccess:{type:Function},onPendingFailure:{type:Function}},setup(r,{expose:i}){let p=r,{showQuickAdd:v,quickAddLoading:b,quickAddForm:C,showPollFailure:k,pollFailureErrors:N,pollFailureMessage:P,openQuickAdd:F,submitQuickAdd:I,showFailureDialog:L}=j({onSuccess:e=>p.onSuccess?.(e),onPendingFailure:()=>p.onPendingFailure?.()});return i({open:F,showFailure:L}),(r,i)=>(h(),a(S,null,[m(A,{modelValue:l(v),"onUpdate:modelValue":i[4]||=e=>u(v)?v.value=e:null,"max-width":`480`,persistent:``},{default:g(()=>[m(D,{border:``},{default:g(()=>[m(w,null,{default:g(()=>[...i[7]||=[e(`快速添加服务器(仅 IP`,-1)]]),_:1}),m(T,null,{default:g(()=>[i[8]||=o(`p`,{class:`text-body-2 text-medium-emphasis mb-3`},` 将按顺序轮询凭据管理中的全部密码预设与 SSH 密钥预设尝试登录,首个成功即加入服务器列表。 `,-1),m(O,{modelValue:l(C).domain,"onUpdate:modelValue":i[0]||=e=>l(C).domain=e,label:`IP 或域名`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`192.168.1.10`,rules:[e=>!!e?.trim()||`必填`]},null,8,[`modelValue`,`rules`]),m(O,{modelValue:l(C).port,"onUpdate:modelValue":i[1]||=e=>l(C).port=e,modelModifiers:{number:!0},label:`SSH 端口`,variant:`outlined`,density:`compact`,type:`number`,class:`mb-2`},null,8,[`modelValue`]),m(O,{modelValue:l(C).name,"onUpdate:modelValue":i[2]||=e=>l(C).name=e,label:`显示名称(可选)`,variant:`outlined`,density:`compact`,hint:`留空则使用 IP`,"persistent-hint":``},null,8,[`modelValue`])]),_:1}),m(E,null,{default:g(()=>[m(y),m(n,{variant:`text`,disabled:l(b),onClick:i[3]||=e=>v.value=!1},{default:g(()=>[...i[9]||=[e(`取消`,-1)]]),_:1},8,[`disabled`]),m(n,{color:`primary`,variant:`flat`,loading:l(b),onClick:l(I)},{default:g(()=>[...i[10]||=[e(`开始轮询`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),m(A,{modelValue:l(k),"onUpdate:modelValue":i[6]||=e=>u(k)?k.value=e:null,"max-width":`560`},{default:g(()=>[m(D,{border:``},{default:g(()=>[m(w,{class:`text-error`},{default:g(()=>[...i[11]||=[e(`SSH 连接失败`,-1)]]),_:1}),m(T,null,{default:g(()=>[i[12]||=o(`p`,{class:`text-body-2 mb-3`},`已尝试全部凭据预设,均未登录成功。该服务器已加入「连接失败列表」,可稍后重试。`,-1),l(N).length?(h(),t(_,{key:0,density:`compact`,class:`bg-grey-lighten-4 rounded`},{default:g(()=>[(h(!0),a(S,null,s(l(N),(n,r)=>(h(),t(f,{key:r},{default:g(()=>[m(d,{class:`text-body-2`},{default:g(()=>[e(` [`+x(n.preset_type===`password`?`密码`:n.preset_type===`system`?`系统`:`密钥`)+`] `+x(n.preset_name)+` (`+x(n.username)+`) `,1)]),_:2},1024),m(c,{class:`text-error`},{default:g(()=>[e(x(n.error),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(h(),a(`p`,M,x(l(P)),1))]),_:1}),m(E,null,{default:g(()=>[m(y),m(n,{color:`primary`,variant:`flat`,onClick:i[5]||=e=>k.value=!1},{default:g(()=>[...i[13]||=[e(`知道了`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}});export{N as t};