/**
* Created by chenyc on 2017/1/16.
*/
//定義資源分離的url地址,全局使用
var url_path =window.location.origin;
// url_path = url_path.substring(0,url_path.indexOf('/open_portal'));
//使用代理地址 nginx中共享門戶使用data-share代理
var base_remote=url_path+"/";
var TIME_OUT = 6000000;//登錄超時時間100分鐘 =100(分鐘)*60(秒)*1000(毫秒)
var AJAX_TIME_OUT = 10000;//ajax請求超時時間10秒
/**
* post請求
* ajax需要傳token
* 必須是登陸用戶
* urlpath:參數路徑
* parems:參數必須是json格式
* callback:成功回調
* callcomplete:請求成功回調方法。
*/
function postAjaxJson(urlpath, parems, callcomplete,callback) {
//token信息
var access_token = "";
if(sessionStorage.getItem('access_token') != undefined && sessionStorage.getItem('access_token') != null){
access_token = sessionStorage.getItem('access_token');
}
var urls = base_remote + urlpath + "?access_token=" + access_token;
var promise = $.ajax({
type: 'POST',
contentType: 'application/json;charset=UTF-8',
url: urls,
data: parems,
async: false,//默認值: true。默認設置下,所有請求均爲異步請求。如果需要發送同步請求,請將此選項設置爲 false。注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成纔可以執行。
timeout : AJAX_TIME_OUT, //超時時間設置,單位毫秒
dataType: 'json',
success: function(result) {
callcomplete(result);
if(result.resultCode=='-1'){
swal({
title: "會話失效!",
text: "用戶會話失效, 請重新登錄",
type: "warning",
showCancelButton: false,
confirmButtonColor: "#DD6B55",
confirmButtonText: "確定",
closeOnConfirm: false
},
function(){
window.location.href = window.location.origin + "/open_portal/main.html";
swal.close();
});
}
},
error: function(httpError) {
console.log('httpError=' + JSON.stringify(httpError));
//當發生異常時觸發(alert('處理異常!');)
handlBackInfo(-2, '請求異常,請重試。');
},
promise: function(result) {
//result.data即服務端返回的數據對象(響應成功)
handlBackInfo(result.data.resultCode, result.data.resultMsg);
callback(result.data);
}
})
};
/**
* post請求
* ajax不需要傳token
* 非登陸用戶
* urlpath:參數路徑
* parems:參數必須是json格式
* callback:回調
* callcomplete:請求成功回調方法。
*/
function postAjaxJson2(urlpath, parems, callcomplete, callback) {
var urls = base_remote + urlpath;
var promise = $.ajax({
type: 'POST',
contentType: 'application/json;charset=UTF-8',
url: urls,
async: false,
timeout : AJAX_TIME_OUT, //超時時間設置,單位毫秒
data: JSON.stringify(parems),
dataType: 'json',
success: function(result) {
callcomplete(result);
},
error: function(httpError) {
console.log('httpError=' + JSON.stringify(httpError));
//當發生異常時觸發(alert('處理異常!');)
handlBackInfo(-2, '請求異常,請重試。');
},
promise: function(result) {
//result.data即服務端返回的數據對象(響應成功)
handlBackInfo(result.data.resultCode, result.data.resultMsg);
callback(result.data);
}
})
};
/**
* get請求
* ajax不需要傳token
* 非登陸用戶
* urlpath:參數路徑
* parems:參數
* callback:回調
* callcomplete:當請求完成之後調用這個函數,無論成功或失敗。
*/
function getAjaxJson2Loading(urlpath, parems, callcomplete, callback) {
var urls = base_remote + urlpath ;
var promise = $.ajax({
type: 'GET',
url: urls,
data: parems,
timeout : AJAX_TIME_OUT, //超時時間設置,單位毫秒
async: false,
dataType: 'json',
beforeSend: function () {
$(".dm_content").append('<div id="pload" class="loading"></div>');
},
complete: function () {
$("#pload").remove();
},
success: function(result) {
callcomplete(result);
},
error: function(httpError) {
console.log('httpError=' + JSON.stringify(httpError));
//當發生異常時觸發(alert('處理異常!');)
handlBackInfo(-2, '請求異常,請重試。');
},
promise: function(result) {
//result.data即服務端返回的數據對象(響應成功)
handlBackInfo(result.data.resultCode, result.data.resultMsg);
callback(result.data);
}
})
}
/**
* get請求
* ajax需要傳token
* 必須是登陸用戶
* urlpath:參數路徑
* parems:參數
* callback:回調
* callcomplete:當請求完成之後調用這個函數,無論成功或失敗。
*/
function getAjaxJson(urlpath, parems, callcomplete,errorCallBack,callback) {
var access_token = "";
if(sessionStorage.getItem('access_token') != undefined && sessionStorage.getItem('access_token') != null){
access_token = sessionStorage.getItem('access_token');
}
var urls = base_remote + urlpath + "?access_token=" + access_token;
var promise = $.ajax({
type: 'GET',
url: urls,
// async: false,
data: parems,
timeout : AJAX_TIME_OUT, //超時時間設置,單位毫秒
dataType: 'json',
success: function(result) {
callcomplete(result);
if(result.resultCode=='-1'){
swal({
title: "會話失效!",
text: "用戶會話失效, 請重新登錄",
type: "warning",
showCancelButton: false,
confirmButtonColor: "#DD6B55",
confirmButtonText: "確定",
closeOnConfirm: false
},
function(){
window.location.href = window.location.origin + "/open_portal/main.html";
swal.close();
});
}
},
error: function(httpError) {
console.log('httpError=' + JSON.stringify(httpError));
//當發生異常時觸發(alert('處理異常!');)
handlBackInfo(-2, '請求異常,請重試。');
errorCallBack(httpError);
},
promise: function(result) {
//result.data即服務端返回的數據對象(響應成功)
handlBackInfo(result.data.resultCode, result.data.resultMsg);
callback(result.data);
}
})
}
/**
* get請求
* ajax不需要傳token
* 非登陸用戶
* urlpath:參數路徑
* parems:參數
* callback:回調
* callcomplete:當請求完成之後調用這個函數,無論成功或失敗。
*/
function getAjaxJson2(urlpath, parems, callcomplete, callback) {
var urls = base_remote + urlpath ;
var promise = $.ajax({
type: 'GET',
url: urls,
data: parems,
timeout : AJAX_TIME_OUT, //超時時間設置,單位毫秒
async: false,
dataType: 'json',
success: function(result) {
callcomplete(result);
},
error: function(httpError) {
console.log('httpError=' + JSON.stringify(httpError));
//當發生異常時觸發(alert('處理異常!');)
handlBackInfo(-2, '請求異常,請重試。');
},
promise: function(result) {
//result.data即服務端返回的數據對象(響應成功)
handlBackInfo(result.data.resultCode, result.data.resultMsg);
callback(result.data);
}
})
}
/**
* get請求
* ajax不需要傳token
* 非登陸用戶
* urlpath:參數路徑
* parems:參數
* callback:回調
* callcomplete:當請求完成之後調用這個函數,無論成功或失敗。
*/
function getAsyncAjaxJson2(urlpath, parems, callcomplete, callback) {
var urls = base_remote + urlpath ;
var promise = $.ajax({
type: 'GET',
url: urls,
data: parems,
async: true,
dataType: 'json',
success: function(result) {
callcomplete(result);
},
error: function(httpError) {
console.log('httpError=' + JSON.stringify(httpError));
//當發生異常時觸發(alert('處理異常!');)
handlBackInfo(-2, '請求異常,請重試。');
},
promise: function(result) {
//result.data即服務端返回的數據對象(響應成功)
handlBackInfo(result.data.resultCode, result.data.resultMsg);
callback(result.data);
}
})
}
/**
* 處理返回信息(包括錯誤信息)
* @param msgCode
* @param msgInfo
*/
function handlBackInfo(msgCode, msgInfo) {
// alert(msgCode+","+msgInfo);
// console.debug(msgCode+","+msgInfo);
}
/**
* 登錄請求
* @param {Object} url 地址
* @param {Object} params 參數
* @param {Object} callcomplete 當請求完成之後調用這個函數,無論成功或失敗。
* @param {Object} callback 回調方法
*/
function loginAjax(url,params,callcomplete,callback){
var urls = base_remote +url;
var promise = $.ajax({
type: 'POST',
url: urls,
data: params,
dataType: 'json',
success: function(result) {
callcomplete(result);
},
error: function(httpError) {
console.log('httpError=' + JSON.stringify(httpError));
alert("用戶名或密碼錯誤");
//當發生異常時觸發(alert('處理異常!');)
handlBackInfo(-2, '請求異常,請重試。');
},
promise: function(result) {
//result.data即服務端返回的數據對象(響應成功)
handlBackInfo(result.data.resultCode, result.data.resultMsg);
callback(result.data);
}
})
}
/**
* 單點登錄
* @param {Object} url 地址
* @param {Object} params 參數
* @param {Object} callcomplete 當請求完成之後調用這個函數,無論成功或失敗。
* @param {Object} callback 回調方法
*/
function singleLogin(urlpath, parems, callcomplete, callback){
var login_url = window.location.href;
var base_remote1 = login_url.substring(0,login_url.indexOf('/data_share_portal')) + "/auth-web/";
//單點登錄接口地址
var urls = base_remote1 +urlpath+"?token="+parems.token+"&appId="+parems.appId;
window.open(urls);
}
function returnLogin(){
var currentTime = new Date();
if(!isLogin()){
swal({
title: "提示!",
text: "用戶未登錄或登錄已過期,請登錄後在操作!",
type: "error",
showCancelButton: false,
confirmButtonColor: "#DD6B55",
confirmButtonText: "確定",
closeOnConfirm: false
},
function(){
window.location.href = window.location.origin + "/open_portal/main.html";
swal.close();
});
return false;
}
else{
return localStorage.login_person;
}
}
function isLogin(){
var currentTime = new Date();
if(typeof(localStorage.login_person)=='undefined' ||
typeof(JSON.parse(localStorage.login_person).resultData)=='undefined'||
currentTime.getTime()>=(JSON.parse(localStorage.login_person).resultData.createTime+TIME_OUT)){
return false;
}
else{
return true;
}
}
//根據id刪除方法
function delOption(uri,ids,fn){
var isSuccess = false;
//批量刪除操作
var parem;
swal({
title: "確定要刪除麼?",
text: "數據刪除後不可恢復,請謹慎操作!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "確定",
cancelButtonText: "取消",
closeOnConfirm: false
},
function() {
if(ids instanceof Array) {
for(var i = 0; i < ids.length; i++) {
parem = {
id: ids[i]
};
getAjaxJson(uri, parem, function(result) {
if(result.resultCode == '0') {
isSuccess = true;
} else {
isSuccess = false;
}
if(isSuccess) {
swal({
title: "成功!",
text: "該數據已經成功刪除",
type: "success"
},
function() {
if(typeof(fn)!='undefined'){
fn;
}else{
location.reload();
}
});
} else {
swal({
title: "失敗!",
text: '數據刪除異常',
type: "error"
},
function() {
if(typeof(fn)!='undefined'){
fn;
}else{
location.reload();
}
});
}
});
}
} else {
parem = {
id: ids
};
getAjaxJson(uri, parem, function(result) {
if(result.resultCode == '0') {
swal({
title: "成功!",
text: "該數據已經成功刪除",
type: "success"
},
function() {
if(typeof(fn)!='undefined'){
fn;
}else{
location.reload();
}
});
} else {
swal({
title: "失敗!",
text: '數據刪除異常',
type: "error"
},
function() {
if(typeof(fn)!='undefined'){
fn;
}else{
location.reload();
}
});
}
});
}
});
}