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/add-form-legacy.js
!function(){function e(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var t,r,a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",l=a.toStringTag||"@@toStringTag";function u(e,a,o,l){var u=a&&a.prototype instanceof c?a:c,s=Object.create(u.prototype);return n(s,"_invoke",function(e,n,a){var o,l,u,c=0,s=a||[],f=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,n){return o=e,l=0,u=t,p.n=n,i}};function d(e,n){for(l=e,u=n,r=0;!f&&c&&!a&&r<s.length;r++){var a,o=s[r],d=p.p,m=o[2];e>3?(a=m===n)&&(u=o[(l=o[4])?5:(l=3,3)],o[4]=o[5]=t):o[0]<=d&&((a=e<2&&d<o[1])?(l=0,p.v=n,p.n=o[1]):d<m&&(a=e<3||o[0]>n||n>m)&&(o[4]=e,o[5]=n,p.n=m,l=0))}if(a||e>1)return i;throw f=!0,n}return function(a,s,m){if(c>1)throw TypeError("Generator is already running");for(f&&1===s&&d(s,m),l=s,u=m;(r=l<2?t:u)||!f;){o||(l?l<3?(l>1&&(p.n=-1),d(l,u)):p.n=u:p.v=u);try{if(c=2,o){if(l||(a="next"),r=o[a]){if(!(r=r.call(o,u)))throw TypeError("iterator result is not an object");if(!r.done)return r;u=r.value,l<2&&(l=0)}else 1===l&&(r=o.return)&&r.call(o),l<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),l=1);o=t}else if((r=(f=p.n<0)?u:e.call(n,p))!==i)break}catch(r){o=t,l=1,u=r}finally{c=1}}return{value:r,done:f}}}(e,o,l),!0),s}var i={};function c(){}function s(){}function f(){}r=Object.getPrototypeOf;var p=[][o]?r(r([][o]())):(n(r={},o,function(){return this}),r),d=f.prototype=c.prototype=Object.create(p);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,f):(e.__proto__=f,n(e,l,"GeneratorFunction")),e.prototype=Object.create(d),e}return s.prototype=f,n(d,"constructor",f),n(f,"constructor",s),s.displayName="GeneratorFunction",n(f,l,"GeneratorFunction"),n(d),n(d,l,"Generator"),n(d,o,function(){return this}),n(d,"toString",function(){return"[object Generator]"}),(e=function(){return{w:u,m:m}})()}function n(e,t,r,a){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}n=function(e,t,r,a){function l(t,r){n(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!a,configurable:!a,writable:!a}):e[t]=r:(l("next",0),l("throw",1),l("return",2))},n(e,t,r,a)}function t(e,n,t,r,a,o,l){try{var u=e[o](l),i=u.value}catch(e){return void t(e)}u.done?n(i):Promise.resolve(i).then(r,a)}function r(e){return function(){var n=this,r=arguments;return new Promise(function(a,o){var l=e.apply(n,r);function u(e){t(l,a,o,u,i,"next",e)}function i(e){t(l,a,o,u,i,"throw",e)}u(void 0)})}}System.register(["./utils-lib-legacy.js?v=1777008528","./form-item-legacy.js?v=1777008528","./index-legacy3.js?v=1777008528","./index-legacy75.js?v=1777008528","./base-lib-legacy.js?v=1777008528","./index-legacy118.js?v=1777008528","./__commonjsHelpers__-legacy.js?v=1777008528","./index-legacy119.js?v=1777008528","./index-legacy116.js?v=1777008528","./useController-legacy13.js?v=1777008528","./site-legacy.js?v=1777008528","./useStore-legacy2.js?v=1777008528"],function(n,t){"use strict";var a,o,l,u,i,c,s,f,p,d,m,v,y,g,b,h,_,j,w,x,k,I,P,S,O,q,T,z,G;return{setters:[function(e){a=e.X,o=e.w,l=e.e,u=e.M,i=e.fp,c=e.da,s=e.fq,f=e.G,p=e.cZ},function(e){d=e.i,m=e.F,v=e.g,y=e.d},function(e){g=e.e},function(e){b=e.a,h=e.b},function(e){_=e.c,j=e.r,w=e.e,x=e.U,k=e.x,I=e.ag,P=e.ak,S=e.aj,O=e.j,q=e.k,T=e.p,z=e.i},function(e){G=e._},null,null,null,null,null,null],execute:function(){var t={class:"p-[2rem] node-master-mysql-add-form"};var M=_({__name:"add-form",props:{compData:{default:function(){return{panel_address:""}}}},setup:function(n,p){var _,M,B,E,A,C,D,F=p.expose,V=b(),H=V.mysqlRowData,L=V.isRefreshList,N=n,R=[{label:"面板自动同步",value:"auto",desc:"通过主库面板连接从库面板进行导入导出数据,简单快捷,建议内网机器使用"},{label:"手动同步到从库",value:"manual",desc:"通过主库面板备份,手动将备份文件上传至从库导入后进行数据还原后同步,大于1G数据建议使用此方法同步"}],U=j({node_id:"",master_ip:(null==N||null===(_=N.compData)||void 0===_?void 0:_.panel_address)||"",slave_ip:"",err_code:["1062"],sync_type:"auto",db_name:""}),$=a({data:U.value,options:[d("选择从库节点","node_id",H.value,{attrs:{placeholder:"请选择从库节点",class:"!w-[45rem]",onChange:function(e){var n;J.value.slave_ip=(null===(n=H.value.find(function(n){return n.value===e}))||void 0===n?void 0:n.remarks)||""}},rules:[{required:!0,message:"请选择从库节点",trigger:"change"}]}),m("主库IP地址","master_ip",{attrs:{placeholder:"请输入主库IP地址,如:192.168.1.100",class:"!w-[45rem]"},rules:[{required:!0,message:"请输入主库IP地址",trigger:["blur","change"]},{pattern:/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,message:"请输入正确的IP地址格式",trigger:["blur","change"]}]}),m("从库IP地址","slave_ip",{attrs:{placeholder:"请输入从库IP地址,如:192.168.1.101",class:"!w-[45rem]"},rules:[{required:!0,message:"请输入从库IP地址",trigger:["blur","change"]},{pattern:/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,message:"请输入正确的IP地址格式",trigger:["blur","change"]}]}),v(" ",function(){return w(I,{modelValue:J.value.err_code,"onUpdate:modelValue":function(e){return J.value.err_code=e},class:"mb-[1.2rem]"},{default:function(){return[w(x,{value:"1062",key:"1062"},{default:function(){return[w("span",null,[k("跳过1062错误")]),w("div",{class:"err_code_desc"},[k("跳过主键或唯一键冲突错误")])]}})]}})},"err_code"),(E=c({request:(B=r(e().m(function n(t){var r,a;return e().w(function(e){for(;;)switch(e.n){case 0:return t.limit=50,e.n=1,s(t);case 1:return r=e.v,(a=r.data).data[0].keys_scopes_status=!0,console.log("request",a.data[0]),e.a(2,{data:a.data,total:a.page.total_count})}},n)})),function(e){return B.apply(this,arguments)}),columns:[g({key:"id"}),{label:"数据库名称",prop:"name"},{label:"数据库大小",prop:"size",render:function(e){return w("span",null,[f(e.size)])}},{label:"数据库引擎",prop:"type"}]}),A=E.BtTable,C=E.BtPage,D=E.BtSearch,v("同步数据库",function(){return w("div",{class:"w-[94.2%]"},[w(G,null,{"header-right":function(){return w(D,{placeholder:"请输入数据库名称",class:"!w-[20rem]"},null)},content:function(){return w(A,{height:"200px",onSelectionChange:(n=r(e().m(function n(t){var r;return e().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,J.value.db_name=t.map(function(e){return e.name}).join(","),J.value.db_type=t.map(function(e){return e.type}).join(","),e.n=1,Z();case 1:e.n=3;break;case 2:e.p=2,r=e.v,console.log(r);case 3:return e.a(2)}},n,null,[[0,2]])})),function(e){return n.apply(this,arguments)})},null);var n},"footer-right":function(){return w(C,{layout:"prev, pager, next, total, jumper","page-size":50},null)}})])},"db_name",{class:"node-master-mysql-db-table",rules:[{required:!0,message:"请选择要同步的数据库",trigger:"change"}]})),y(" ",[{content:"添加后仅同步选中的数据库数据,如需新增数据库需删除主从重新配置"}]),v("首次同步方式",function(){var e,n;return w(S,{modelValue:J.value.sync_type,"onUpdate:modelValue":function(e){return J.value.sync_type=e}},"function"==typeof(n=e=R.map(function(e){return w(P,{class:"mt-[1rem]",value:e.value,key:e.value,style:{height:"auto",lineHeight:"1",alignItems:"flex-start"}},{default:function(){return[w("span",{class:"radio-label"},[e.label]),w("div",{class:"radio-desc mt-[1rem] mb-[1rem] w-[43rem]",style:{whiteSpace:"normal",lineHeight:"1.5"}},[e.desc])]}})}))||"[object Object]"===Object.prototype.toString.call(n)&&!z(n)?e:{default:function(){return[e]}})},"sync_type"),y("",[{content:"仅支持mysql-5.7+版本(不支持mariadb)"},{content:"只支持通过app/或api添加的节点"}])],submit:(M=r(e().m(function n(t,r,a){var c,s,f,p;return e().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,r();case 1:return e.n=2,o({icon:"warning-filled",title:"提示",content:"首次配置将会重启数据库,如从库有同名数据库将会进行数据覆盖,建议空闲时间配置,是否继续?"});case 2:e.n=4;break;case 3:return e.p=3,f=e.v,console.log(f),e.a(2,!1);case 4:if(!t.value.db_type.includes("MyISAM")){e.n=8;break}return e.p=5,e.n=6,new Promise(function(e,n){l({title:"MyISAM 引擎警告",area:50,showFooter:!0,component:function(){return w("div",{class:"p-[2rem] text-base"},[w("div",{style:"color:var(--el-color-danger-dark-2);margin-bottom:8px;font-size: var(--el-font-size-base);"},[k("检测到选中的数据库包含 MyISAM 存储引擎的表,可能存在以下风险:")]),w("ul",{style:"margin-bottom:16px;list-style: disc;padding-left: 2rem;"},[w("li",null,[k("数据不一致:MyISAM 不支持事务,同步过程中可能出现数据不完整")]),w("li",null,[k("主从中断:表级锁定机制在高并发时内容易导致同步失败")]),w("li",null,[k("错误频发:需要设置错误跳过机制才能正常运行")])]),w("div",{style:"margin-bottom:2rem"},[w("div",{style:"margin-bottom:1rem"},[k("建议方案:")]),w("div",{style:"color:var(--el-color-primary); font-size: var(--el-font-size-base);margin-bottom:1rem"},[k("【推荐】转换为 InnoDB: ALTER TABLE table_name ENGINE=InnoDB")]),w("div",{style:"color:var(--el-base-supplement); font-size: var(--el-font-size-base);"},[k("【备选】继续使用并设置错误跳过码(如: 1062)")])]),w("div",null,[k("确定要继续选择这些数据库吗?")])])},confirmText:"继续添加",cancelText:"取消",onConfirm:function(){return e(!0),!0},onCancel:function(){return n(),!1}})});case 6:e.n=8;break;case 7:return e.p=7,e.v,e.a(2,!1);case 8:return c=u.load("正在添加主从,请稍后..."),e.p=9,e.n=10,i(t.value);case 10:if(!(s=e.v).status){e.n=11;break}return u.success("创建成功"),h(t.value.slave_ip),e.a(2,!0);case 11:return u.error(s.msg),e.a(2,!1);case 12:e.n=14;break;case 13:return e.p=13,p=e.v,console.error("提交失败:",p),u.error("创建失败,请重试"),e.a(2,!1);case 14:return e.p=14,L.value=!0,c.close(),e.f(14);case 15:return e.a(2)}},n,null,[[9,13,14,15],[5,7],[0,3]])})),function(e,n,t){return M.apply(this,arguments)})}),X=$.BtForm,Z=$.validate,J=$.param,K=$.submit;return F({validate:Z,onConfirm:K,formData:J}),function(e,n){return O(),q("div",t,[w(T(X))])}}});n("default",p(M,[["__scopeId","data-v-93d76ea6"]]))}}})}();