official_website/app/admin/view/version_update/update_file.html

254 lines
8.0 KiB
HTML
Raw Normal View History

2024-12-02 13:57:08 +08:00
{extend name="foxcms" /}
{block name="css"}
<style>
.foxui-loading .foxui-loading-inner.block {
width: 418px !important;
height: 220px !important;
}
.foxui-loading .foxui-loading-inner.block svg {
width: 10%;
}
</style>
{/block}
{block name="body"}
<input name="bcid" value="{$bcid}" type="hidden" />
<input name="columnId" value="{$cid}" type="hidden" />
<input name="only" value="{$only}" type="hidden" />
<input name="id" value="{$id}" type="hidden" />
<input name="is_sql" value="{$is_sql}" type="hidden" />
<div class="foxcms-content-inner">
<!-- page content -->
<div class="diy-form-content">
<div class="section section-panel margin-top-10">
<p>注意事项: 安装时请确保文件列表中涉及的目录前可写入权限</p>
<div class="foxui-table foxui-table-border-bottom foxui-table-hover foxui-checkbox-group">
<ul class="foxui-table-thead foxui-checkbox-head">
<li class="foxui-table-tr">
<div class="foxui-table-th">目录</div>
<div class="foxui-table-th">可写</div>
</li>
</ul>
<ul class="foxui-table-tbody foxui-checkbox-list">
<!--表格内容-->
{foreach $dirs as $key=>$vo}
<li class="foxui-table-tr">
<div class="foxui-table-td">{$vo.dir}</div>
<div class="foxui-table-td">
{if $vo.writeable == 1}
<i class="foxui-icon-zhengque-f" style="color: #5cd685;font-size: 18px;"></i>
{else/}
<i class="foxui-icon-cuowu-f" style="color: #f56c6c;font-size: 18px;"></i>
{/if}
</div>
</li>
{/foreach}
</ul>
</div>
</div>
<div class="section section-panel margin-top-10">
<p>所有更新文件:</p>
<div class="foxui-table foxui-table-border-bottom foxui-table-hover foxui-checkbox-group">
<ul class="foxui-table-thead foxui-checkbox-head">
<li class="foxui-table-tr">
<div class="foxui-table-th">更新文件</div>
<div class="foxui-table-th">即将替换文件</div>
<div class="foxui-table-th"></div>
</li>
</ul>
<ul class="foxui-table-tbody foxui-checkbox-list">
<!--表格内容-->
{foreach $uFiles as $key=>$vo}
<li class="foxui-table-tr">
<div class="foxui-table-td">{$vo.file_relative_path}</div>
<div class="foxui-table-td">{$vo.update_file_relative_path}</div>
<div class="foxui-table-td">
{if $vo.is_update == 1}
<span class="foxui-margin-left-4 foxui-padding-4 foxui-padding-left-12 foxui-padding-right-12 foxui-bg-success foxui-color-white">覆盖</span>
{else/}
<span class="foxui-margin-left-4 foxui-padding-4 foxui-padding-left-12 foxui-padding-right-12 foxui-bg-primary foxui-color-white">新增</span>
{/if}
</div>
</li>
{/foreach}
</ul>
</div>
</div>
</div>
</div>
{include file="footed-copy"/}
<div class="foxcms-content-footer">
<button class="is-long foxui-size-small foxui-solid-primary" id="confirmUpdate">更新</button>
</div>
{/block}
{block name="js"}
<script>
//添加关闭更新
function addClose() {
let childHtml = `<button class="foxui-plain-danger" style="margin-top: 20px;" onclick="closeT(event)">取消更新</button>`;
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block').append(childHtml);
}
//关闭更新
function closeT(event) {
let curObj = event.target;
$(curObj).closest(".foxui-loading.is-fullscreen").remove();
}
$('#confirmUpdate').click(function () {
confirmUpdate();
});
//确认更新
function confirmUpdate(obj) {
if(obj != undefined || obj != null){
$(obj).closest(".foxui-loading.is-fullscreen").remove();
}
let is_sql = $('input[name="is_sql"]').val();//检查sql文件是否存在 0:没有更新sql文件1有更新sql
let info = "";
if(is_sql == 1){
info = "此版本涉及数据库更新,数据库备份中...";
}else{
info = "在线更新已经启动,开始下载更新...";
}
foxui.loading({
el: 'body',
type: 'block',
background: 'black',
text: '系统更新',
info: info,
iconType: 'spinner',
iconColor: '#000000',
iconSize: 42,
});
addClose();//添加关闭更新
if (is_sql == 1){
//备份数据
backupAll();
}else{
downloadUpdate();
}
}
//备份数据
function backupAll(){
let info = "此版本涉及数据库更新,数据库备份中...";
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').text(info);
$.ajax({
type: "get",
url: "backupAll",
dataType: "json",
success: function (res) {
if (res.code == 1) {
downloadUpdate();
}else{
let errInfo = '<a style="cursor: pointer;" onclick="confirmUpdate(this)">您的备份数据失败,请点击这里重试</a>';
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').html(errInfo);
}
}, error: function (res) {
let errInfo = '<a style="cursor: pointer;" onclick="confirmUpdate(this)">您的备份数据失败,请点击这里重试</a>';
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').html(errInfo);
}
});
}
//下载更新
function downloadUpdate() {
let info = "在线更新已经启动,开始下载更新...";
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').text(info);
let id = $('input[name="id"]').val();
let only = $('input[name="only"]').val();
let param = {
'only':only,
'id':id
};
$.ajax({
type: "get",
url: "downloadUpdate",
dataType: "json",
data:param,
success: function (res) {
if (res.code == 1) {
let filepath = res.data;
unFileUpdate(filepath);
}else{
let errInfo = '<a style="cursor: pointer;" onclick="downloadUpdate()">在线下载更新包失败,请点击这里重试</a>';
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').html(errInfo);
}
}, error: function (res) {
let errInfo = '<a style="cursor: pointer;" onclick="downloadUpdate()">在线下载更新包失败,请点击这里重试</a>';
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').html(errInfo);
}
});
}
//减压更新文件
function unFileUpdate(filepath) {
let info = "更新下载成功,开始解压缩...";
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').text(info);
$.ajax({
type: "post",
url: "unFileUpdate",
dataType: "json",
data:{filepath},
success: function (res) {
if (res.code == 1) {
let down_path = res.data;
fileUpdate(down_path);
}else{
let errInfo = `<a style="cursor: pointer;" onclick="unFileUpdate('${filepath}')">更新下载解压缩失败,请点击这里重试</a>`;
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').html(errInfo);
}
}, error: function (res) {
let errInfo = `<a style="cursor: pointer;" onclick="unFileUpdate('${filepath}')">更新下载解压缩失败,请点击这里重试</a>`;
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').html(errInfo);
}
});
}
//确认更新
function fileUpdate(down_path){
let info = "文件减压成功,开始运行更新...";
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').text(info);
let id = $('input[name="id"]').val();
let only = $('input[name="only"]').val();
let param = {
only,id,down_path
};
$.ajax({
type: "post",
url: "fileUpdate",
dataType: "json",
data:param,
success: function (res) {
if (res.code == 1) {
let errInfo = `系统更新成功 当前版本${res.data}`;
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').text(errInfo);
setTimeout(function () {
window.location.href=document.referrer;//返回并且刷新
}, 5000);
}else{
let errInfo = `<a style="cursor: pointer;" onclick="fileUpdate('${down_path}')">运行更新失败,请点击这里重试</a>`;
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').html(errInfo);
}
}, error: function (res) {
let errInfo = `<a style="cursor: pointer;" onclick="fileUpdate('${down_path}')">运行更新失败,请点击这里重试</a>`;
$('.foxui-loading.is-fullscreen .foxui-loading-inner.block p').html(errInfo);
}
});
}
</script>
{/block}