From e88544d290f972c94b83603181e0bb9b0b469239 Mon Sep 17 00:00:00 2001 From: midoks Date: Fri, 28 Oct 2022 14:08:56 +0800 Subject: [PATCH] Update mysql.js --- plugins/mysql/js/mysql.js | 189 +++++++++++++++++++++++++++++++------- 1 file changed, 156 insertions(+), 33 deletions(-) diff --git a/plugins/mysql/js/mysql.js b/plugins/mysql/js/mysql.js index fa86d71f3..619b0fed7 100755 --- a/plugins/mysql/js/mysql.js +++ b/plugins/mysql/js/mysql.js @@ -1,18 +1,9 @@ -function str2Obj(str){ - var data = {}; - kv = str.split('&'); - for(i in kv){ - v = kv[i].split('='); - data[v[0]] = v[1]; - } - return data; -} function myPost(method,args,callback, title){ var _args = null; if (typeof(args) == 'string'){ - _args = JSON.stringify(str2Obj(args)); + _args = JSON.stringify(toArrayObject(args)); } else { _args = JSON.stringify(args); } @@ -40,7 +31,7 @@ function myPostN(method,args,callback, title){ var _args = null; if (typeof(args) == 'string'){ - _args = JSON.stringify(str2Obj(args)); + _args = JSON.stringify(toArrayObject(args)); } else { _args = JSON.stringify(args); } @@ -59,7 +50,7 @@ function myPostN(method,args,callback, title){ function myAsyncPost(method,args){ var _args = null; if (typeof(args) == 'string'){ - _args = JSON.stringify(str2Obj(args)); + _args = JSON.stringify(toArrayObject(args)); } else { _args = JSON.stringify(args); } @@ -606,7 +597,7 @@ function setDbAccess(username){ yes:function(index){ var data = $("#set_db_access").serialize(); data = decodeURIComponent(data); - var dataObj = str2Obj(data); + var dataObj = toArrayObject(data); if(!dataObj['access']){ dataObj['access'] = dataObj['dataAccess']; if ( dataObj['dataAccess'] == 'ip'){ @@ -675,7 +666,7 @@ function addDatabase(type){ if (type==1){ var data = $("#add_db").serialize(); data = decodeURIComponent(data); - var dataObj = str2Obj(data); + var dataObj = toArrayObject(data); if(!dataObj['address']){ dataObj['address'] = dataObj['dataAccess']; } @@ -881,8 +872,11 @@ function openPhpmyadmin(name,username,password){ } } -function delBackup(filename,name){ - myPost('delete_db_backup',{filename:filename},function(){ +function delBackup(filename,name,path){ + if(typeof(path) == "undefined"){ + path = ""; + } + myPost('delete_db_backup',{filename:filename,path:path},function(){ layer.msg('执行成功!'); setTimeout(function(){ $('.layui-layer-close2').click(); @@ -902,6 +896,132 @@ function importBackup(file,name){ }); } + +function importDbExternal(file,name){ + myPost('import_db_external',{file:file,name:name}, function(data){ + layer.msg('执行成功!'); + }); +} + +function setLocalImport(db_name){ + + //上传文件 + function uploadDbFiles(upload_dir){ + var up_db = layer.open({ + type:1, + closeBtn: 1, + title:"上传导入文件["+upload_dir+']', + area: ['500px','300px'], + shadeClose:false, + content:'
\ + \ + \ + \ + \ + \ + \ + 文件编码:\ + \ + \ + \ + \ +
', + success:function(){ + $('#filesClose').click(function(){ + layer.close(up_db); + }); + } + + }); + uploadStart(function(){ + getList(); + }); + } + + function getList(){ + myPost('get_db_backup_import_list',{}, function(data){ + var rdata = $.parseJSON(data.data); + + var file_list = rdata.data.list; + var upload_dir = rdata.data.upload_dir; + + var tbody = ''; + for (var i = 0; i < file_list.length; i++) { + tbody += '\ + ' + file_list[i]['name'] + '\ + ' + file_list[i]['size'] + '\ + ' + file_list[i]['time'] + '\ + \ + 导入 | \ + 删除\ + \ + '; + } + + $('#import_db_file_list').html(tbody); + $('input[name="upload_dir"]').val(upload_dir); + + $("#import_db_file_list .del").on('click',function(){ + var index = $(this).attr('index'); + var filename = file_list[index]["name"]; + myPost('delete_db_backup',{filename:filename,path:upload_dir},function(){ + showMsg('执行成功!', function(){ + getList(); + },{icon:1},2000); + }); + }); + }); + } + + var layerIndex = layer.open({ + type: 1, + title: "从文件导入数据", + area: ['600px', '380px'], + closeBtn: 1, + shadeClose: false, + content: '
\ +
\ + \ +
\ +
\ + \ +
\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ +
文件名称文件大小备份时间操作
\ +
\ +
    \ +
  • 仅支持sql、zip、sql.gz、(tar.gz|gz|tgz)
  • \ +
  • zip、tar.gz压缩包结构:test.zip或test.tar.gz压缩包内,必需包含test.sql
  • \ +
  • 若文件过大,您还可以使用SFTP工具,将数据库文件上传到/www/backup/import
  • \ +
\ +
\ +
', + success:function(index){ + $('#btn_file_upload').click(function(){ + var upload_dir = $('input[name="upload_dir"]').val(); + uploadDbFiles(upload_dir); + }); + + getList(); + }, + }); + + +} + function setBackup(db_name,obj){ myPost('get_db_backup_list', {name:db_name}, function(data){ @@ -914,21 +1034,21 @@ function setBackup(db_name,obj){ ' + rdata.data[i]['time'] + '\ \ 导入 | \ - 下载 | \ 删除\ \ '; } - var s = layer.open({ + var layerIndex = layer.open({ type: 1, title: "数据库备份详情", area: ['600px', '280px'], - closeBtn: 2, + closeBtn: 1, shadeClose: false, content: '
\
\ \ + \
\
\
\ @@ -945,18 +1065,21 @@ function setBackup(db_name,obj){ \
\
\ -
' - }); - - $('#btn_backup').click(function(){ - myPost('set_db_backup',{name:db_name}, function(data){ - layer.msg('执行成功!'); + ', + success:function(index){ + $('#btn_backup').click(function(){ + myPost('set_db_backup',{name:db_name}, function(data){ + showMsg('执行成功!', function(){ + layer.close(layerIndex); + setBackup(db_name,obj); + }, {icon:1}, 2000); + }); + }); - setTimeout(function(){ - layer.close(s); - setBackup(db_name,obj); - },2000); - }); + $('#btn_local_import').click(function(){ + setLocalImport(db_name); + }); + }, }); }); } @@ -1332,7 +1455,7 @@ function addMasterRepSlaveUser(){ yes:function(index){ var data = $("#add_master").serialize(); data = decodeURIComponent(data); - var dataObj = str2Obj(data); + var dataObj = toArrayObject(data); if(!dataObj['address']){ dataObj['address'] = dataObj['dataAccess']; } @@ -1377,7 +1500,7 @@ function updateMasterRepSlaveUser(username){ $('#submit_update_master').click(function(){ var data = $("#update_master").serialize(); data = decodeURIComponent(data); - var dataObj = str2Obj(data); + var dataObj = toArrayObject(data); myPost('update_master_rep_slave_user', data, function(data){ var rdata = $.parseJSON(data.data); showMsg(rdata.msg,function(){ @@ -1488,7 +1611,7 @@ function setDbMasterAccess(username){ yes:function(index){ var data = $("#set_db_access").serialize(); data = decodeURIComponent(data); - var dataObj = str2Obj(data); + var dataObj = toArrayObject(data); if(!dataObj['access']){ dataObj['access'] = dataObj['dataAccess']; if ( dataObj['dataAccess'] == 'ip'){