Files
2019-02-28 19:48:21 +08:00

197 lines
6.7 KiB
HTML

<include file="public/layout" />
<body style="background-color: rgb(255, 255, 255); overflow: auto; cursor: default; -moz-user-select: inherit;">
<div id="append_parent"></div>
<div id="ajaxwaitid"></div>
<div class="page">
<div class="fixed-bar">
<div class="item-title">
<div class="subject">
<h3>数据备份</h3>
<h5>网站系统数据备份</h5>
</div>
</div>
</div>
<!-- 操作说明 -->
<div id="explanation" class="explanation" style="color: rgb(44, 188, 163); background-color: rgb(237, 251, 248); width: 99%; height: 100%;">
<div id="checkZoom" class="title"><i class="fa fa-lightbulb-o"></i>
<h4 title="提示相关设置操作时应注意的要点">操作提示</h4>
<span title="收起提示" id="explanationZoom" style="display: block;"></span>
</div>
<ul>
<li>数据备份功能根据你的选择备份全部数据或指定数据,导出的数据文件可用“数据恢复”功能或 phpMyAdmin 导入</li>
<li>建议定期备份数据库</li>
</ul>
</div>
<div class="flexigrid">
<div class="mDiv">
<div class="ftitle">
<h3>数据库表列表</h3>
<h5>(共{$tableNum}张记录,共计{$total})</h5>
</div>
<div title="刷新数据" class="pReload"><i class="fa fa-refresh"></i></div>
</div>
<div class="hDiv">
<div class="hDivBox">
<table cellspacing="0" cellpadding="0">
<thead>
<tr>
<th class="sign" axis="col0">
<div style="width: 24px;"><input type="checkbox" onclick="javascript:$('input[name*=tables]').prop('checked',this.checked);"></div>
</th>
<th align="left" abbr="article_title" axis="col3" class="">
<div style="text-align: left; width: 200px;" class="">数据库表</div>
</th>
<th align="center" abbr="ac_id" axis="col4" class="">
<div style="text-align: center; width: 50px;" class="">记录条数</div>
</th>
<th align="center" abbr="article_show" axis="col5" class="">
<div style="text-align: center; width: 50px;" class="">占用空间</div>
</th>
<th align="center" abbr="article_time" axis="col6" class="">
<div style="text-align: center; width: 100px;" class="">编码</div>
</th>
<th align="center" abbr="article_time" axis="col6" class="">
<div style="text-align: center; width: 120px;" class="">创建时间</div>
</th>
<th align="center" abbr="article_time" axis="col6" class="">
<div style="text-align: center; width: 200px;" class="">备份状态</div>
</th>
<th align="center" axis="col1" class="handle">
<div style="text-align: center; width: 150px;">操作</div>
</th>
<th style="width:100%" axis="col7">
<div></div>
</th>
</tr>
</thead>
</table>
</div>
</div>
<div class="tDiv">
<div class="tDiv2">
<div class="fbutton">
<a onclick="gobackup();" id="ing_btn">
<div class="add" title="数据备份">
<span><i class="fa fa-book"></i><span id="export">数据备份</span></span>
</div>
</a>
</div>
</div>
<div style="clear:both"></div>
</div>
<div class="bDiv" style="height: auto;">
<div id="flexigrid" cellpadding="0" cellspacing="0" border="0">
<form method="post" id="export-form" action="{:U('export')}">
<table>
<tbody>
<foreach name="list" item="vo" key="k" >
<tr data-id="{$vo.name}">
<td class="sign">
<div style="width: 24px;"><input type="checkbox" name="tables[]" value="{$vo.Name}"></div>
</td>
<td align="left" class="">
<div style="text-align: left; width: 200px;">{$vo.Name}</div>
</td>
<td align="center" class="">
<div style="text-align: center; width: 50px;">{$vo.Rows}</div>
</td>
<td align="center" class="">
<div style="text-align: center; width: 50px;">{$vo.Data_length|format_bytes}</div>
</td>
<td align="center" class="">
<div style="text-align: center; width: 100px;">{$vo.Collation}</div>
</td>
<td align="center" class="">
<div style="text-align: center; width: 120px;">{$vo.Create_time}</div>
</td>
<td align="center" class="">
<div style="text-align: center; width: 200px;" class="info">未备份</div>
</td>
<td align="center" class="handle">
<div style="text-align: center; width: 170px; max-width:170px;">
<a href="{:U('Tools/optimize',array('tablename'=>$vo['Name']))}" class="btn blue"><i class="fa fa-magic"></i>优化</a>
<a class="btn green" href="{:U('Tools/repair',array('tablename'=>$vo['Name']))}"><i class="fa fa-wrench"></i>修复</a>
</div>
</td>
<td align="" class="" style="width: 100%;">
<div>&nbsp;</div>
</td>
</tr>
</foreach>
</tbody>
</table>
</form>
</div>
<div class="iDiv" style="display: none;"></div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
// 表格行点击选中切换
$('#flexigrid > table>tbody >tr').click(function(){
$(this).toggleClass('trSelected');
});
// 点击刷新数据
$('.fa-refresh').click(function(){
location.href = location.href;
});
});
(function($){
var $form = $("#export-form"), $export = $("#export"), tables
$export.click(function(){
if($("input[name^='tables']:checked").length == 0){
layer.alert('请选中要备份的数据表', {icon: 2});
return false;
}
$export.addClass("disabled");
$export.html("正在发送备份请求...");
$.post(
$form.attr("action"),
$form.serialize(),
function(data){
if(data.status){
tables = data.tables;
$export.html(data.info + "开始备份,请不要关闭本页面!");
backup(data.tab);
window.onbeforeunload = function(){ return "正在备份数据库,请不要关闭!" }
} else {
layer.alert(data.info, {icon: 2});
$export.removeClass("disabled");
$export.html("立即备份");
}
},
"json"
);
return false;
});
function backup(tab, status){
status && showmsg(tab.id, "开始备份...(0%)");
$.get($form.attr("action"), tab, function(data){
if(data.status){
showmsg(tab.id, data.info);
if(!$.isPlainObject(data.tab)){
$export.removeClass("disabled");
$export.html("备份完成,点击重新备份");
window.onbeforeunload = function(){ return null }
return;
}
backup(data.tab, tab.id != data.tab.id);
} else {
$export.removeClass("disabled");
$export.html("立即备份");
}
}, "json");
}
function showmsg(id, msg){
$form.find("input[value=" + tables[id] + "]").closest("tr").find(".info").html(msg);
}
})(jQuery);
</script>
</body>
</html>