HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/js/index463.js
import{dM as z,X as G,fh as M,fi as X}from"./utils-lib.js?v=1777008528";import{r as I,c as K,aC as Q,g as H,aF as q,z as W,a8 as Y,j as Z,k as $,e as D,p as L,aV as ee}from"./base-lib.js?v=1777008528";import{b as se,a as ae}from"./useController9.js?v=1777008528";import{F as i,c as N,b as B,a as te,m as E,i as le}from"./form-item.js?v=1777008528";import{u as T}from"./index73.js?v=1777008528";import{u as U}from"./useStore12.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index3.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";import"./index118.js?v=1777008528";import"./index151.js?v=1777008528";import"./index152.js?v=1777008528";import"./index.vue_vue_type_style_index_0_scoped_cdc7f4d3_lang.js?v=1777008528";T();const{rowData:t}=U(),re=()=>{var o,l,s,u,y,a,r,_,d,f,k,h,m,p,w;try{let c="api";(o=t.value)!=null&&o.app_key?c="app":(l=t.value)!=null&&l.api_key?c="api":(s=t.value)!=null&&s.ssh_conf&&(c="ssh");const b={ssh_ip:((u=t.value)==null?void 0:u.ssh_conf.host)||"",ssh_type:(y=t.value)!=null&&y.ssh_conf.pkey?"key":"password",ssh_password:((a=t.value)==null?void 0:a.ssh_conf.password)||"",ssh_key:((r=t.value)==null?void 0:r.ssh_conf.pkey)||"",ssh_port:((_=t.value)==null?void 0:_.ssh_conf.port)||"22",ssh_pkey_passwd:((d=t.value)==null?void 0:d.ssh_conf.pkey_passwd)||""};return{...(f=t.value)!=null&&f.id?{id:(k=t.value)==null?void 0:k.id}:{},address:((h=t.value)==null?void 0:h.address)||"",verify_type:c,api_key:"",app_key:"",category_id:((p=(m=t.value)==null?void 0:m.category_id)==null?void 0:p.toString())||"0",remarks:((w=t.value)==null?void 0:w.remarks)||"",...b}}catch(c){return{}}},oe=()=>{const o=I("测试连接"),l=I("default"),s=I(!1);return{buttonText:o,buttonType:l,buttonLoading:s,buttonClick:async(a,r)=>{if(!await r())return;s.value=!0,o.value="测试中",l.value="default";const d=await z({host:a.value.ssh_ip,port:parseInt(a.value.ssh_port),test_case:1,...a.value.ssh_type=="password"?{password:a.value.ssh_password}:{pkey:a.value.ssh_key,pkey_passwd:a.value.ssh_pkey_passwd}});s.value=!1,d.status?(o.value="连接成功",l.value="success"):(o.value="连接失败",l.value="danger")},textChange:()=>{o.value="测试连接",l.value="default",s.value=!1}}},ue={class:"p-[2rem]"},be=K({__name:"index",setup(o,{expose:l}){const{isEdit:s,isVerify:u}=T(),y=Q("popupLoading",(e,n)=>({close:()=>{}})),a=I(!1),{rowData:r,nodeCategory:_}=U(),d=H(()=>_.value.filter(e=>e.value!=="all"&&Number(e.value)>=0)),{buttonText:f,buttonType:k,buttonLoading:h,buttonClick:m,textChange:p}=oe(),{BtForm:w,submit:c,clearValidate:b,validate:C}=G({data:re,options:e=>H(()=>{var n;return[i("节点名称","remarks",{attrs:{class:"!w-[32rem]",placeholder:"请输入节点名称"},rules:[{required:!0,message:"节点名称不能为空",trigger:["blur","change"]}]}),N("验证类型","verify_type",[{label:"API密钥",value:"api"},{label:"APP插件",value:"app"},{label:"SSH",value:"ssh"}],{attrs:{onChange:()=>{b()}}}),...e.value.verify_type==="ssh"?[B([i("节点IP","ssh_ip",{attrs:{class:"!w-[150px]",placeholder:"例如:192.168.1.1",onInput:p},rules:[{required:!0,message:"请输入节点IP",trigger:["change","blur"]}]}),i("SSH端口","ssh_port",{attrs:{class:"!w-[70px]",placeholder:"22",onInput:p},rules:[{required:!0,message:"请输入SSH端口",trigger:["change","blur"]}]})]),N("认证方式","ssh_type",[{label:"密码",value:"password"},{label:"密钥",value:"key"}],{attrs:{onChange:()=>{b(),p()}}}),B([...e.value.ssh_type==="password"?[i("SSH密码","ssh_password",{attrs:{class:"!w-[230px]",type:"password",placeholder:"例如:123456",onInput:p},rules:[{required:!0,message:"请输入SSH密码",trigger:["change","blur"]}]})]:[te("SSH密钥","ssh_key",{attrs:{class:"!w-[230px]",placeholder:"请输入SSH密钥",onInput:p},rules:[{required:!0,message:"请输入SSH密钥",trigger:["change","blur"]}]})],E(()=>q(W,{plain:!0,type:k.value,class:"ml-[1.5rem] self-end mb-[1.8rem]",loading:h.value,disabled:h.value,onClick:()=>m(e,C)},f.value))]),...e.value.ssh_type==="key"?[i("SSH私钥密码","ssh_pkey_passwd",{attrs:{class:"!w-[320px]",type:"password",placeholder:"若没有密码,请留空",onInput:p}})]:[]]:[],...e.value.verify_type==="api"?[i("面板地址","address",{attrs:{class:"!w-[320px]",clearable:!0,placeholder:"例如:http://192.168.1.1:88 或 https://domain.com:88",onInput:P=>{if(e.value.address=e.value.address.trim(),M(e.value.address)){const v=new URL(e.value.address);e.value.address=v.origin}}},rules:[X()]})]:[],...e.value.verify_type==="api"?[i("API密钥","api_key",{attrs:{class:"!w-[32rem]",placeholder:s.value?"请输入API密钥,留空则沿用之前的密钥":"请输入API密钥"},rules:[{required:!s.value,message:"API密钥不能为空",trigger:["blur","change"]}]})]:[],...e.value.verify_type==="app"?[...u.value?[E(()=>q(ee,{class:"!w-[32rem] !mb-[1rem] !ml-[10rem]",title:"请回到面板【堡塔APP】插件上点击确认按钮来完成验证",type:"warning",closable:!1}))]:[i("APP密钥","app_key",{attrs:{class:"!w-[32rem]",placeholder:s.value?"请输入APP插件密钥,留空则沿用之前的密钥":"请输入APP插件密钥"},rules:[{required:!s.value,message:"APP插件密钥不能为空",trigger:["blur","change"]}]})]]:[],le("分类","category_id",d.value||[{label:"默认分类",value:"0"}],{attrs:{class:"!w-[32rem]",placeholder:"请选择分类",defaultId:(n=e.value)==null?void 0:n.category_id}}),...e.value.verify_type==="api"?[{type:"help",options:[{content:"第一步:填写面板URL地址,示例:https://192.168.1.2:8888"},{content:"第二步:打开面板,转到【面板设置】页面,点击【API接口配置】"},{isHtml:!0,content:'<li style="color:red">第三步:配置【IP白名单】,输入您电脑的公网固定IP,如果没有固定IP,请直接填星号(*)</li>'},{content:"第四步:在【API接口配置】窗口中复制【接口密钥】"},{content:"第五步:回到节点管理窗口,粘贴到【API密钥】输入框"}]}]:e.value.verify_type==="ssh"?[{type:"help",options:[{content:"请输入root账户信息"}]}]:[{type:"help",options:[{content:"第一步:在面板【软件商店】安装【堡塔APP】插件1.2以上版本"},{content:"第二步:点击【复制绑定密钥】按钮获取密钥"},{content:"第三步:粘贴到【APP密钥】输入框,并点击【验证】按钮"},{content:"第四步:回到面板【堡塔APP】插件上点击【确认】按钮来完成验证"}]}]]}),submit:async(e,n,P)=>{var v;return await n(),e.value.verify_type==="app"&&e.value.app_key!==""&&((v=r.value)==null?void 0:v.app_key)!==e.value.app_key?new Promise(async(A,x)=>{const{close:S}=y(u,"请先完成验证");a.value=await se({remarks:e.value.remarks,app_key:e.value.app_key},async()=>{S(),A(await F(e))}),a.value||(S(),u.value=!1,x(!1))}):await F(e)}}),F=async e=>{const{address:n,category_id:P,api_key:v,app_key:A,remarks:x,ssh_ip:S,ssh_port:V,ssh_type:R,ssh_password:j,ssh_key:J,ssh_pkey_passwd:O}=e.value;let g={...e.value.verify_type==="api"?{api_key:v}:{},...e.value.verify_type==="app"?{app_key:A}:{},...e.value.verify_type==="ssh"?{ssh_conf:JSON.stringify({host:S,port:V,...R==="password"?{password:j}:{pkey:J,pkey_passwd:O}})}:{address:n},category_id:P==="all"?0:P,remarks:x};return s.value&&(e.value.api_key===""&&(g.api_key=r.value.api_key),e.value.app_key===""&&(g.app_key=r.value.app_key),e.value.verify_type!=="ssh"&&(g.ssh_conf=JSON.stringify(r.value.ssh_conf)),g.id=r.value.id),await ae(g,s.value)};return Y(()=>{u.value=!1,a.value&&a.value()}),l({onConfirm:c}),(e,n)=>(Z(),$("div",ue,[D(L(w),{disabled:L(u)},null,8,["disabled"])]))}});export{be as default};