115 lines
4.0 KiB
JavaScript
115 lines
4.0 KiB
JavaScript
|
|
/**
|
|||
|
|
* 软件安装异步请求步骤
|
|||
|
|
* @author Devil
|
|||
|
|
* @blog http://gong.gg/
|
|||
|
|
* @version 1.0.0
|
|||
|
|
* @date 2021-02-22
|
|||
|
|
* @desc description
|
|||
|
|
* @param {[string]} key [操作key(仅download和install需要)]
|
|||
|
|
* @param {[string]} opt [操作类型(url 获取下载地址, download 下载插件包, install 安装插件包)]
|
|||
|
|
* @param {[string]} msg [提示信息]
|
|||
|
|
*/
|
|||
|
|
function RequestHandle(key, opt, msg)
|
|||
|
|
{
|
|||
|
|
// 操作容器
|
|||
|
|
var $container = $('.packageinstall-container');
|
|||
|
|
var $progress = $('.progress-container');
|
|||
|
|
var $error = $('.error-container');
|
|||
|
|
var $success = $('.success-container');
|
|||
|
|
|
|||
|
|
// 获取参数值
|
|||
|
|
var id = $container.data('id') || 0;
|
|||
|
|
var type = $container.data('type') || null;
|
|||
|
|
var terminal = $container.data('terminal') || null;
|
|||
|
|
var url = $container.data('url') || null;
|
|||
|
|
var admin_url = $container.data('admin-url') || null;
|
|||
|
|
if(id == 0 || type == null || url == null)
|
|||
|
|
{
|
|||
|
|
$progress.addClass('am-hide');
|
|||
|
|
$error.removeClass('am-hide');
|
|||
|
|
$error.find('.msg-text').text(window['lang_operate_params_error'] || '请求参数有误');
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 默认获取地址
|
|||
|
|
if((opt || null) == null)
|
|||
|
|
{
|
|||
|
|
opt = 'url';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 加载提示
|
|||
|
|
$progress.find('.msg-text').text(msg || window['lang_get_loading_tips'] || '正在获取中...');
|
|||
|
|
|
|||
|
|
// ajax
|
|||
|
|
$.ajax({
|
|||
|
|
url: RequestUrlHandle(url),
|
|||
|
|
type: 'POST',
|
|||
|
|
dataType: 'json',
|
|||
|
|
timeout: 305000,
|
|||
|
|
data: {"id":id, "type":type, "opt":opt, "key":key || '', "terminal":terminal || ''},
|
|||
|
|
success: function(result)
|
|||
|
|
{
|
|||
|
|
if((result || null) != null && result.code == 0)
|
|||
|
|
{
|
|||
|
|
switch(opt)
|
|||
|
|
{
|
|||
|
|
// 获取下载地址
|
|||
|
|
case 'url' :
|
|||
|
|
RequestHandle(result.data, 'download', window['lang_download_loading_tips'] || '正在下载中...');
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
// 下载插件包
|
|||
|
|
case 'download' :
|
|||
|
|
RequestHandle(result.data, 'install', window['lang_install_loading_tips'] || '正在安装中...');
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
// 安装完成
|
|||
|
|
case 'install' :
|
|||
|
|
$progress.addClass('am-hide');
|
|||
|
|
$error.addClass('am-hide');
|
|||
|
|
$success.removeClass('am-hide');
|
|||
|
|
setTimeout(function()
|
|||
|
|
{
|
|||
|
|
window.location.href = admin_url;
|
|||
|
|
}, 2000);
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
$progress.addClass('am-hide');
|
|||
|
|
$error.removeClass('am-hide');
|
|||
|
|
$error.find('.msg-text').text(((result || null) == null) ? (window['lang_error_text'] || '异常错误') : (result.msg || (window['lang_error_text'] || '异常错误')));
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
error: function(xhr, type)
|
|||
|
|
{
|
|||
|
|
$progress.addClass('am-hide');
|
|||
|
|
$error.removeClass('am-hide');
|
|||
|
|
var data = null;
|
|||
|
|
if((xhr.responseJSON || null) != null && (xhr.responseJSON.msg || null) != null)
|
|||
|
|
{
|
|||
|
|
data = xhr.responseJSON;
|
|||
|
|
} else {
|
|||
|
|
if(xhr.responseText.substr(0, 1) == '{')
|
|||
|
|
{
|
|||
|
|
var json = JSON.parse(xhr.responseText);
|
|||
|
|
if((json.msg || null) != null)
|
|||
|
|
{
|
|||
|
|
data = json;
|
|||
|
|
} else {
|
|||
|
|
data = xhr.responseText;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
data = xhr.responseText;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
var msg = (typeof(data) == 'object') ? data.msg : data;
|
|||
|
|
$error.find('.msg-text').text(msg || (window['lang_error_text'] || '异常错误'));
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$(function()
|
|||
|
|
{
|
|||
|
|
// 请求安装
|
|||
|
|
RequestHandle();
|
|||
|
|
});
|