mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2024-12-05 13:29:27 +08:00
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();
|
||
}); |