197 lines
6.7 KiB
HTML
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> </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> |