backuplist.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <div class="p-page">
  5. <div class="gg-form-bar border-t border-x">
  6. <h3 class="pb-3">数据还原</h3>
  7. </div>
  8. <table cellspacing="0" cellpadding="0" border="0" class="layui-table layui-table-form">
  9. <tr style="background-color:#FAFAFA">
  10. <th style=" text-align: center; font-weight: 800;"><span>文件名称</span></th>
  11. <th style=" text-align: center; font-weight: 800;"><span>文件格式</span></th>
  12. <th style=" text-align: center; font-weight: 800;"><span>分隔符</span></th>
  13. <th style=" text-align: center; font-weight: 800;"><span>文件总大小</span></th>
  14. <th style=" text-align: center; font-weight: 800;"><span>分卷总数</span></th>
  15. <th style=" text-align: center; font-weight: 800; width:222px"><span>操作</span></th>
  16. </tr>
  17. {empty name="list"}
  18. <tr>
  19. <td colspan="6" align="center" style="padding:20px 0; color:#999">暂无备份数据</td>
  20. </tr>
  21. {/empty}
  22. {volist name="list" id="vo" key="k"}
  23. <tr style="background-color: #fafafa;">
  24. <td><strong>备份时间:{$vo.time}</strong>{if $vo.timespan == $lock_time}<span style="color:red; margin-left:20px;">该备份不是完整备份,请删除重新备份</span>{/if}</td>
  25. <td align="center"><span>.sql</span></td>
  26. <td align="center"><span>{$vo.data.compress}</span></td>
  27. <td align="center"><span>{:format_bytes($vo.data.size)}</span></td>
  28. <td align="center"><span>{$vo.data.part}</span></td>
  29. <td align="center">
  30. <div class="layui-btn-group" data-time='{$vo.timespan}'>
  31. {if $vo.timespan == $lock_time}
  32. <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="reset">清除不完整的备份</a>
  33. {else/}
  34. <a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="import">数据还原</a>
  35. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除备份</a>
  36. {/if}
  37. </div>
  38. </td>
  39. </tr>
  40. {for start="0" end="$vo.data.part" step="1"}
  41. <tr>
  42. <td colspan="5">
  43. {:date("Ymd",$vo.timespan)}{$vo.data.compress}{:date("His",$vo.timespan)}{$vo.data.compress}{$i+1}.sql
  44. </td>
  45. <td align="center">
  46. <a class="layui-btn layui-btn-xs" href='/home/database/downfile?time={$vo.data.time}&part={$i+1}'>下载备份(分卷{$i+1})</a>
  47. </td>
  48. </tr>
  49. {/for}
  50. {/volist}
  51. </table>
  52. </div>
  53. {/block}
  54. <!-- /主体 -->
  55. <!-- 脚本 -->
  56. {block name="script"}
  57. <script>
  58. function gouguInit() {
  59. function importData(data) {
  60. if (data.code == 0) {
  61. console.log(data.msg);
  62. layer.closeAll();
  63. layer.msg(data.msg, { time: 200000 });
  64. if ($.isPlainObject(data.data)) {
  65. $.ajax({
  66. url: "/home/database/import",
  67. type: 'get',
  68. data: { "part": data.data.part, "start": data.data.start, time: data.data.time },
  69. success: function (res) {
  70. importData(res);
  71. }
  72. })
  73. } else {
  74. layer.msg(data.msg);
  75. window.onbeforeunload = function () { return null; }
  76. }
  77. } else {
  78. layer.msg(data.msg);
  79. }
  80. }
  81. //监听行工具事件
  82. $('[lay-event="import"]').on('click', function () {
  83. var time = $(this).parent().data('time');
  84. layer.confirm('确认要还原该备份吗?', {
  85. icon: 3,
  86. title: '提示'
  87. }, function (index) {
  88. layer.msg("数据还原中...", { time: 200000 });
  89. $.ajax({
  90. url: "/home/database/import?time=" + time,
  91. type: 'post',
  92. success: function (res) {
  93. importData(res);
  94. }
  95. })
  96. window.onbeforeunload = function () { return "正在还原数据库,请不要关闭!" }
  97. layer.close(index);
  98. });
  99. return false;
  100. })
  101. $('[lay-event="del"]').on('click', function () {
  102. var time = $(this).parent().data('time');
  103. layer.confirm('确认要删除该备份吗?', {
  104. icon: 3,
  105. title: '提示'
  106. }, function (index) {
  107. $.ajax({
  108. url: "/home/database/del",
  109. data: { 'time': time },
  110. success: function (res) {
  111. layer.msg(res.msg);
  112. if (res.code == 0) {
  113. setTimeout(function () {
  114. location.reload();
  115. }, 2000)
  116. }
  117. }
  118. })
  119. layer.close(index);
  120. });
  121. return false;
  122. })
  123. $('[lay-event="reset"]').on('click', function () {
  124. var time = $(this).parent().data('time');
  125. layer.confirm('确认要清除该备份吗?', {
  126. icon: 3,
  127. title: '提示'
  128. }, function (index) {
  129. $.ajax({
  130. url: "/home/database/del",
  131. data: { 'time': time, 'lock': 1 },
  132. success: function (res) {
  133. layer.msg(res.msg);
  134. if (res.code == 0) {
  135. setTimeout(function () {
  136. location.reload();
  137. }, 2000)
  138. }
  139. }
  140. })
  141. layer.close(index);
  142. });
  143. return false;
  144. })
  145. }
  146. </script>
  147. {/block}
  148. <!-- /脚本 -->