167 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {extend name="../../base/view/common/base" /}
 | |
| {block name="breadcrumb"}
 | |
| <span class="layui-breadcrumb">
 | |
|   <a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
 | |
|   <a href="/home/user/setting">信息设置</a>
 | |
|   <a><cite>数据还原</cite></a>
 | |
| </span>
 | |
| {/block}
 | |
| <!-- 主体 -->
 | |
| {block name="body"}
 | |
| <div class="main-content">
 | |
| 	{include file="../../base/view/common/submenu" /}
 | |
| 	<div class="main-page-content">
 | |
| 		<div class="layui-tab layui-tab-brief layui-tab-big">
 | |
| 			<ul class="layui-tab-title">
 | |
| 				<li><a href="/admin/database/database">数据备份</a></li>
 | |
| 				<li class="layui-this"><a href="/admin/database/backuplist">数据还原</a></li>
 | |
| 			</ul>
 | |
| 		</div> 
 | |
| 		<table cellspacing="0" cellpadding="0" border="0" class="layui-table">
 | |
| 			<tr style="background-color: #f5f5f5; text-align: center;">
 | |
| 				<th style=" text-align: center; font-weight: 800;"><span>文件名称</span></th>
 | |
| 				<th style=" text-align: center; font-weight: 800;"><span>文件格式</span></th>
 | |
| 				<th style=" text-align: center; font-weight: 800;"><span>分隔符</span></th>
 | |
| 				<th style=" text-align: center; font-weight: 800;"><span>文件总大小</span></th>
 | |
| 				<th style=" text-align: center; font-weight: 800;"><span>分卷总数</span></th>
 | |
| 				<th style=" text-align: center; font-weight: 800; width:200px"><span>操作</span></th>
 | |
| 			</tr>			
 | |
| 			{empty name="list"}
 | |
| 			<tr>
 | |
| 				<td colspan="6" align="center">暂无备份数据</td>
 | |
| 			</tr>
 | |
| 			{/empty}
 | |
| 			{volist name="list" id="vo" key="k"}
 | |
| 			<tr style="background-color: #fafafa;">
 | |
| 				<td><strong>备份时间:{$vo.time}</strong>{if $vo.timespan == $lock_time}<span style="color:red; margin-left:20px;">该备份不是完整备份,请删除重新备份</span>{/if}</td>
 | |
| 				<td align="center"><span>.sql</span></td>
 | |
| 				<td align="center"><span>{$vo.data.compress}</span></td>
 | |
| 				<td align="center"><span>{:format_bytes($vo.data.size)}</span></td>
 | |
| 				<td align="center"><span>{$vo.data.part}</span></td>
 | |
| 				<td align="center">
 | |
| 					<div class="layui-btn-group" data-time='{$vo.timespan}'>
 | |
| 						{if $vo.timespan == $lock_time}
 | |
| 						<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="reset">清除不完整的备份</a>
 | |
| 						{else/}
 | |
| 						<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="import">数据还原</a>
 | |
| 						<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">备份删除</a>
 | |
| 						{/if}
 | |
| 					</div>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 			{for start="0" end="$vo.data.part" step="1"}
 | |
| 			<tr>
 | |
| 				<td colspan="5">
 | |
| 					{:date("Ymd",$vo.timespan)}{$vo.data.compress}{:date("His",$vo.timespan)}{$vo.data.compress}{$i+1}.sql
 | |
| 				</td>
 | |
| 				<td align="center">
 | |
| 					<a class="layui-btn layui-btn-xs" href='/admin/database/downfile?time={$vo.data.time}&part={$i+1}'>下载备份(分卷{$i+1})</a>				
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 			{/for}
 | |
| 			{/volist}
 | |
| 		</table>
 | |
| 	</div>
 | |
| </div>
 | |
| 
 | |
| {/block}
 | |
| <!-- /主体 -->
 | |
| 
 | |
| <!-- 脚本 -->
 | |
| {block name="script"}
 | |
| <script>
 | |
| const moduleInit = ['tool'];
 | |
| 	function gouguInit() {
 | |
| 		function importData(data){
 | |
| 			if(data.code==0){
 | |
| 				console.log(data.msg);
 | |
| 				layer.closeAll();
 | |
| 				layer.msg(data.msg,{time: 200000});
 | |
| 				if($.isPlainObject(data.data)){
 | |
| 					$.ajax({
 | |
| 						url: "/admin/database/import",
 | |
| 						type:'get',
 | |
| 						data:{"part" : data.data.part, "start" : data.data.start,time:data.data.time},
 | |
| 						success: function (res) {
 | |
| 							importData(res);
 | |
| 						}
 | |
| 					})					 
 | |
| 				}else {
 | |
| 					layer.msg(data.msg);
 | |
| 					window.onbeforeunload = function(){ return null; }
 | |
| 				}
 | |
| 			} else {
 | |
| 				layer.msg(data.msg);
 | |
| 			}
 | |
| 		}	
 | |
| 		//监听行工具事件
 | |
| 		$('[lay-event="import"]').on('click',function(){
 | |
| 			var time=$(this).parent().data('time');
 | |
| 			layer.confirm('确认要还原该备份吗?', {
 | |
| 					icon: 3,
 | |
| 					title: '提示'
 | |
| 				}, function (index) {
 | |
| 				    layer.msg("数据还原中...",{time: 200000});				
 | |
| 					$.ajax({
 | |
| 						url: "/admin/database/import?time="+time,
 | |
| 						type:'get',
 | |
| 						success: function (res) {
 | |
| 							importData(res);
 | |
| 						}
 | |
| 					})
 | |
| 				window.onbeforeunload = function(){ return "正在还原数据库,请不要关闭!" }
 | |
| 				layer.close(index);
 | |
| 			});
 | |
| 			return false;
 | |
| 		})
 | |
| 
 | |
| 		$('[lay-event="del"]').on('click',function(){
 | |
| 			var time=$(this).parent().data('time');
 | |
| 			layer.confirm('确认要删除该备份吗?', {
 | |
| 					icon: 3,
 | |
| 					title: '提示'
 | |
| 				}, function (index) {
 | |
| 					$.ajax({
 | |
| 						url: "/admin/database/del",
 | |
| 						data: {'time':time},
 | |
| 						success: function (res) {
 | |
| 							layer.msg(res.msg);
 | |
| 							if (res.code == 0) {
 | |
| 								setTimeout(function(){
 | |
| 									location.reload();
 | |
| 								},2000)
 | |
| 							}
 | |
| 						}
 | |
| 					})
 | |
| 					layer.close(index);
 | |
| 				});
 | |
| 			return false;
 | |
| 		})
 | |
| 		
 | |
| 		$('[lay-event="reset"]').on('click',function(){
 | |
| 			var time=$(this).parent().data('time');
 | |
| 			layer.confirm('确认要清除该备份吗?', {
 | |
| 					icon: 3,
 | |
| 					title: '提示'
 | |
| 				}, function (index) {
 | |
| 					$.ajax({
 | |
| 						url: "/admin/database/del",
 | |
| 						data: {'time':time,'lock':1},
 | |
| 						success: function (res) {
 | |
| 							layer.msg(res.msg);
 | |
| 							if (res.code == 0) {
 | |
| 								setTimeout(function(){
 | |
| 									location.reload();
 | |
| 								},2000)
 | |
| 							}
 | |
| 						}
 | |
| 					})
 | |
| 					layer.close(index);
 | |
| 				});
 | |
| 			return false;
 | |
| 		})
 | |
| 	}
 | |
| </script>
 | |
| {/block}
 | |
| <!-- /脚本 -->
 |