common.js 7.21 KB
//获取地址栏中的某个查询参数
function getQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) {
        return r[2];
    }
    return null;
}

//解析url中的guid在localStorage中的值  返回参数的js对象形式
function getUrlQueryString(){
	var jy = getQueryString('jy');	
	if(jy!=null&&jy!=""&&jy!=undefined){
		if(jy=="jiyao"){
			var guidKey = getQueryString('guid');	
			var guidInfo = (new GlobalLocalCache()).GetCacheResult(guidKey,'','');
			var paramInfo = decodeURI(guidInfo['paramUrl']);
			var ftokenInfo = guidInfo['ftoken'];
			var paramObj = {'ftoken':ftokenInfo};
			var itemString = paramInfo.split('&');
			for(var i=0,l=itemString.length;i<l;i++){
				var currItemString = itemString[i];
				var itemArr = currItemString.split("=");
				var errorStringArr = ['null','undefined',"''"];
				if(errorStringArr.indexOf(itemArr[1]) == -1){
					paramObj[itemArr[0]] = itemArr[1];
				}
			}
		}
	}else{
		var guidKey = getQueryString('guid');
		var guidInfo = (new GlobalLocalCache()).GetCacheResult(guidKey,'','');
		if(!guidInfo){
			$("body").html("您无权访问该页面!");
			throw new Error('url过期');
		}
		var paramInfo = decodeURI(guidInfo['paramUrl']);
		var ftokenInfo = guidInfo['ftoken'];
		var paramObj = {'ftoken':ftokenInfo};
		var itemString = paramInfo.split('&');
		for(var i=0,l=itemString.length;i<l;i++){
			var currItemString = itemString[i];
			var itemArr = currItemString.split("=");
			var errorStringArr = ['null','undefined',"''"];
			if(errorStringArr.indexOf(itemArr[1]) == -1){
				paramObj[itemArr[0]] = itemArr[1];
			}
		}
	
	}
	return paramObj;
}

//处理原本使用window.location.search的地方  如locationSearchConverter(window.location.search)
function locationSearchConverter(windowLocationSearch){
	var reg = new RegExp("(^|&)" + 'guid' + "=([^&]*)(&|$)", "i");
    var r = windowLocationSearch.substr(1).match(reg);
    var originUrl = '';
    if (r != null) {
    	originUrl = '?' + (new GlobalLocalCache()).GetCacheResult(r[2],'','')['paramUrl'];
    }
    return originUrl;
}

//前端验证token合法
function validateFtoken(paramFtoken){
	var currFtoken = $.cookie('ftoken');
	if(currFtoken !== paramFtoken){
		throw new Error('url过期');
	}
}

function S4() {
	return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
}
function guid() {
	return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}

function updateHandleJumpUrl(url){
    var tempArr = url.split("?");
    var locationUrl=location.search.split("=");
    var returnStr = tempArr[1];
    var cacheUrlValue = null;
    var data = {
        paramUrl:returnStr,
        ftoken:$.cookie('ftoken')
    }
    if(window.globalLocalCache){
        cacheUrlValue = window.globalLocalCache.AddCache(locationUrl[1],"","",data);
    }
    return returnStr;
}

//打开新窗口前处理url
function handleJumpUrl(url){
	var myid = "guid" + guid();
	var tempArr = url.split("?");
	var returnStr = tempArr[0] + "?guid=" + myid;
	var urlValue = tempArr[1];
	var cacheUrlValue = null;
	var data = {
			paramUrl:urlValue,
			ftoken:$.cookie('ftoken')
	}
	if(window.globalLocalCache){
		cacheUrlValue = window.globalLocalCache.AddCache(myid,"","",data);
	}
	return returnStr;
}

function initializeData(){
	var queryParams=getUrlQueryString();
	var keys=Object.keys(queryParams);
	for(var i=0;i<keys.length;i++) {
		$("#"+keys[i]+"").val(queryParams[keys[i]]);
	}
	return queryParams;
}	

//设置头部logo
$(function() {
	var HEADERLOGO = $("#HEADERLOGO");
	if(HEADERLOGO.length > 0 && HEADERLOGO.children().length < 1) {
        var logoimg = $('<img>');
        logoimg.addClass('div-head-title');
        // logoimg.css('width', 'auto').css('height', '34px').css('margin-top','4px').css('margin-left','26px');
		// logoimg.css('width', 'auto').css('height', '30px').css('margin-top','6px').css('margin-left','26px'); //修改logo样式
		logoimg.css('width', 'auto').css('height', '30px').css('margin-top','12px').css('margin-left','26px'); //修改logo样式 0616
        logoimg.attr('src', CONF_FRONT_SERVERURL + "/image/index/logo20200609.svg");
        HEADERLOGO.empty();
        HEADERLOGO.append(logoimg);
        return;
        //LOGO固定不表之后 写死 暂不需要发请求
		$.ajax({  
		    type:"POST", 
		    url: CONF_BACK_SERVERURL+'/mvc/resource/findAll.do', 
		    dataType:"json",
		    async:true, 
		    data:"",  
		    success:function (data) {  
				for(var i=0;i<data.length;i++){
					if(data[i]['identification']=='F' && data[i]['alias'] == "前端Logo"){
						var logoimg = $('<img>');
						logoimg.addClass('div-head-title');
						logoimg.css('width', 'auto').css('height', '55px').css('margin-top','0px');
						logoimg.attr('src', window.location.origin + data[i]['iconCls']);
						HEADERLOGO.empty();
						HEADERLOGO.append(logoimg);
						break;
					}
				}	
		    },  
		    error: function(e){  
		        console.log("获取logo路径出错:" + e);
		    }
		})
	}
})

//yxt 20190326 更新url 参数
function updateHandleJumpUrl(uid,urlValue){
    var data = {
        paramUrl:urlValue,
        ftoken:$.cookie('ftoken')
    }
    if(window.globalLocalCache){
        window.globalLocalCache.removeLocalCache(uid);
        window.globalLocalCache.AddCache(uid,"","",data);
    }
    return ;
}

function spUpdateHandleJumpUrl(url){
    var tempArr = url.split("?");
    var locationUrl=location.search.split("=");
    var returnStr = tempArr[1];
    var cacheUrlValue = null;
    var data = {
        paramUrl:returnStr,
        ftoken:$.cookie('ftoken')
    }
    if(window.globalLocalCache){
        cacheUrlValue = window.globalLocalCache.AddCache(locationUrl[1],"","",data);
    }
    return returnStr;
}


function getUnitRemark() {
	var unitnameArray = [],
		cookieuser = $.cookie('cookieuser');
		
	if(cookieuser) {
		var userinfo = JSON.parse(cookieuser);
		userinfo.units.forEach( function (value) {
			if(value.remark === '西安市自然资源和规划局') {
				unitnameArray.push(value.name);
			} else {
				unitnameArray.push(value.remark || value.name);
			}
		});
		return unitnameArray.toString();
	}
}

/**
 * 获取用户真实姓名
 * @returns {string}
 */
function getUserRealname() {
	var cookieuser = $.cookie('cookieuser');
	if(!cookieuser) {
		return "";
	}
	var userinfo = JSON.parse(cookieuser);
	return userinfo.user ? userinfo.user.realname : '' ;
}


function exportCoord() {
	var projectname = $('#projectName').text();
	var projectid = $("#projectId").val() || $("#mpId").val();
	if (!projectid || !projectname) {
		console.error("项目标识或项目名称为空!");
		return layer.msg("导出失败!");
	}

	var url = CONF_GIS_ONEMAP + "/projectMap/exportTxt?projectCode=" + projectid;
	// 开始请求
	var xhr = new XMLHttpRequest();
	xhr.open('GET', url, true);
	xhr.responseType = "blob";
	xhr.onload = function () {
		if (this.status === 200) {
			var blob = this.response;
			if (blob.size === 0) {
				return layer.msg("坐标信息为空!");
			}
			var aelm = document.createElement('a');
			aelm.href = URL.createObjectURL(blob);
			aelm.download = projectname + '.txt';
			$("body").append(aelm);
			aelm.click();
			$(aelm).remove();
		} else {
			layer.msg("导出失败!");
		}
	};
	xhr.send();
}