/**统一登录js文件**/
var loginfg='';//websocket请求标识
var bIE9=false;
if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/[6789]./i)) {
bIE9=true
}
var wsUrl = "ws"+(!bIE9&&"https:"==document.location.protocol?"s":"")+"://"+window.location.host+"/ws";
var ws = "";
var openid = "";
var jylgi = 0;
var loginflag = false;//登录状态
var mynum = "";//页面参数num
var keysorpname = "";//项目名称
var kzyflag = false;//快照页标识
var thurl = "";//url
var semnum = "";//SEM
var ldpnum = "";//落地页扫码后调整标识
var ldmold = "";//落地页扫码后调整标识
var pageshareid = "";
var kopshareid = "";
var oldshareid = "";
var encryptId = null;
var qr_type = "s";
var unseatflag = false;//未登录情况下,用户点击超级搜索等开启按钮或者功能,根据此状态看是否弹出二维码
var unseatzbqyflag = false;//未登录情况下,用户点击中标企业等开启按钮或者功能,根据此状态看是否弹出二维码
var sendMsgInterval = null;
var entjumpflag = false;
//轮询查询
var LoginPolling = {
isPostLoginPolling: false,//是否发起轮询请求
loginPollingInterval: null,
initInterval: null,
init: function(){
//防止重复调用
if(this.initInterval != null){
return;
}
//先发一个消息,保存session
this.postShareid();
this.initInterval = setInterval(this.postShareid,3000);
},
postShareid: function(){
if(WSpolling.isPageHidden || pageshareid == "" || kopshareid == ""){
return;
}
$.ajax({
type: "POST",
url: "/front/ajaxPolling",
data: {reqType: 1,shareIds: pageshareid+"___"+kopshareid},
dataType: "json",
timeout: 3000,
success: function(r){
clearInterval(LoginPolling.initInterval);
//LoginPolling.initInterval = null;
}
});
},
start: function(){
//防止重复调用
if(this.loginPollingInterval != null){
return;
}
//定时器,定时请求看是否扫码登录,返回用户信息,登录
this.loginPollingInterval = setInterval(function(){
//如果浏览器不支持webscoket,走ajax轮询方式
if(window.WebSocket == undefined) {
LoginPolling.isPostLoginPolling = true;
}
if(WSpolling.isPageHidden || !LoginPolling.isPostLoginPolling){
return;
}
$.ajax({
type: "POST",
url: "/front/ajaxPolling",
data: {reqType:2},
dataType: "json",
timeout: 3000,
success: function(r){
if(!jQuery.isEmptyObject(r)){
logic(r,mynum);
}
}
});
},5000);
},
stop: function(){
clearInterval(this.loginPollingInterval);
this.loginPollingInterval = null;
this.isPostLoginPolling = false;
this.initInterval = null;
}
}
var webSocketHeartCheck = new WebSocketHeartCheck(LoginPolling);
//创建websocket连接
var createWebSocket = function(flag){
try{
ws = new WebSocket(wsUrl);//实例化websocket对象
initEventHandle(flag);
}catch(e){
reconnect();
//console.log(e)
}
}
//
var initEventHandle = function(flag){
ws.onmessage = function(e){
//接收消息正常,就不再发ajax轮询
LoginPolling.isPostLoginPolling = false;
if(e.data==""){
return
}else if(e.data=="HeartBeat"){//心跳检测
//如果获取到消息,心跳检测重置
//拿到任何消息都说明当前连接是正常的
webSocketHeartCheck.reset().start(ws,loginflag);
return;
}
//用户登录
logic($.parseJSON(e.data),mynum);
}
ws.onerror = function(e){
//console.info("onerror");
reconnect();
}
ws.onclose = function(e) {
//console.info("onclose");
reconnect();
}
ws.onopen = function(e) {
if(flag){//重连之后发送shareid
SendMsg();
}
//心跳检测重置
webSocketHeartCheck.reset().start(ws,loginflag);
}
}
//
function reconnect() {
if(webSocketHeartCheck.lockReconnect || loginflag){
return;
}
LoginPolling.isPostLoginPolling = true;
webSocketHeartCheck.lockReconnect = true;
LoginPolling.init();
//没连接上会一直重连,设置延迟避免请求过多
setTimeout(function () {
createWebSocket(true);
webSocketHeartCheck.lockReconnect = false;
}, 2000);
}
//websocket查看用户是否登录
var JYLogin = function(num){
clearInterval(loginfg)
loginfg = setInterval(function(){
jylgi++;
//console.log(jylgi+"-----")
if(jylgi>12*60){
getNewShareId(num);
jylgi = 0;
}
},1000)
LoginPolling.init();
SendMsg();
}
var SendMsg = function(){
//向后台发送websocket数据
if (window["WebSocket"]){
if(ws.readyState==1){
//console.log("发送:"+pageshareid+"___"+kopshareid)
ws.send(pageshareid+"___"+kopshareid);
}else{
LoginPolling.isPostLoginPolling = true;
}
}else{
LoginPolling.isPostLoginPolling = true;
}
}
//生成页面二维码,不同页面处理逻辑
var getNewShareId = function(num){
mynum = num;
pageType = "T"
var rref = document.referrer;
if (localStorage.getItem("oldshareid")!=null){
oldshareid=localStorage.getItem("oldshareid");
}
//console.log("num:"+num)
$.post("/front/getLoginNum/"+num,{rref:rref,oid:oldshareid},function(data){
if($("#bidLogin").attr("data-rec")=="sjdc"){
window.location.href = "/front/dataExport/toSieve";
return;
}
if(data&&data.num){
pageshareid = data.num;
kopshareid = data.numot;
mynum = num;
localStorage.setItem("oldshareid", pageshareid);
//redisUserInfo(pageshareid,kopshareid);
$(".jyhead_qr img").attr("src","/front/share/"+pageshareid);
$("#bottomimg").attr("src","/front/share/"+pageshareid);
$("#layerImg-login").attr("src","/front/share/"+pageshareid);
$("#layerImg-zbsq").attr("src","/front/share/"+pageshareid);
switch(num){
case "10"://首页
//$("#layerImg").attr("src","/front/share/"+pageshareid);
//$("#sy-shareimg img").attr("src","/front/share/"+pageshareid);
$(".wxlinkdiv").attr("src","/front/share/"+pageshareid);
break;
case "11"://订阅页面
$("#dyym-1 img").attr("src","/front/share/"+kopshareid);
$("#dyym-2").attr("src","/front/share/"+pageshareid);
$(".secondleft img").attr("src","/front/share/"+pageshareid);
$("#vipCode").attr("src","/front/share/"+kopshareid);
break;
case "12"://搜索列表页
$("#layerImg").attr("src","/front/share/"+pageshareid);
$("#wxCode").attr("src","/front/share/"+pageshareid);
$("#keyImg").attr("src","/front/share/"+kopshareid);
if(keysorpname!=undefined&&keysorpname!=""){
var ref = document.referrer;
if(ref != ""&&ref.indexOf("jianyu360.com")<0||ref.indexOf("qmx.top")<0){
$.post("/front/rediskw",{"skw":keysorpname,"num":kopshareid});
}
}
break;
case "13"://快照页
$("#layerImg").attr("src","/front/share/"+pageshareid);
$("#wxCode").attr("src","/front/share/"+kopshareid);
//生成二维码
if(keysorpname!=undefined&&keysorpname!=""){
$.post("/front/rediskw",{"skw":keysorpname,"num":kopshareid});
}
break;
case "14"://标签页面
$("#bottomimg").attr("src","/front/share/"+pageshareid);
$("#layerImg").attr("src","/front/share/"+pageshareid);
$("#keyImg").attr("src","/front/share/"+pageshareid);
break;
case "15"://博客列表和内容页面
break;
case "16"://关于我们页面
break;
case "18"://扫码关注企业18
$("#layerImg").attr("src","/front/share/"+pageshareid);
var company = $.trim($("#zbSeatchT input[name='keywords']").val());
if(company != "" && company != null && company.length >0){
$("#keyImg").attr("src","/front/share/"+kopshareid);
$.post("/front/rediskw",{"skw":company,"num":kopshareid});
}else{
$("#keyImg").attr("src","/front/share/"+pageshareid);
}
break;
case "19"://拟建项目
$("#layerImg").attr("src","/front/share/"+pageshareid);
$("#wxCode").attr("src","/front/share/"+pageshareid);
$("#keyImg").attr("src","/front/share/"+kopshareid);
if(keysorpname!=undefined&&keysorpname!=""){
$.post("/front/rediskw",{"skw":keysorpname,"num":kopshareid});
}
break;
case "17"://1808新落地页
$(".ewm1").attr("src","/front/share/"+pageshareid);
$(".ewm2").attr("src","/front/share/"+kopshareid);
$("#kwewm").attr("src","/front/share/"+kopshareid);
$(".ecode_img img").attr("src","/front/share/"+kopshareid).css("display","");
break;
case "23"://数据导出
break;
}
if(num=="13"&&!kzyflag){
return false;
}
setTimeout(function(){
if(!loginflag){
JYLogin(num);
}
},500);
}
},'json');
}
//
var redisUserInfo = function(pid,kid){
var rurl = window.location.href;
var rref = document.referrer;
if (localStorage.getItem("oldshareid")!=null){
oldshareid=localStorage.getItem("oldshareid");
}
$.post("/front/followinfo",{pid:pid,kid:kid,rurl:rurl,rref:rref,oid:oldshareid},function(data){
if(data&&data.result=="ok"){
localStorage.setItem("oldshareid", pid);
}
})
}
//查询用户信息,响应页面登录信息
var logic = function(data,num){
if(data.result=="ok"){
//$(".QRLogin").hide();
$("#bidLogin").modal("hide")
$("#bidcommunity").modal("hide")
clearInterval(loginfg);
loginflag = true;
processpage(data.shareid,num);
//登录成功,停止轮询
LoginPolling.stop();
//登录成功,停止心跳监测
webSocketHeartCheck.reset();
if(ws.readyState==1){
ws.send("close");
ws.close();
}
encryptId = data.encryptId
if(data.s_nickname.length>11){
data.s_nickname = data.s_nickname.substring(0,11);
data.s_nickname = data.s_nickname + "...";
}
var hhtml = "
"){
data.redisheadimg = "";
}
if(data.s_headimage==null||data.s_headimage==undefined||data.s_headimage==""||data.s_headimage==""){
data.s_headimage = "/images/defaultAvatarN.png?v=2";
}
if(data.redisheadimg!=""){
hhtml+="src='"+data.redisheadimg+"'"
}else{
hhtml+="src='"+data.s_headimage+"'"
}
hhtml+=" onerror='this.src=\"/images/defaultAvatarN.png?v=2\"'>"
+""
+"
"
+"
"
+"
"
+"
"
+data.s_nickname
+"
"
+"
"
+"我的订单"
+"
"
+"
"
+"

"
+"
退出"
+"
"
+"
"
+"
"
$("#login").html(hhtml);
try{
infoListCss();
commonMouseEvent();
}catch(e){}
}
}
//登录后处理页面逻辑
var processpage = function(shareid,num){
if($("#bidLogin").attr("data-rec")=="sjdc"){
window.location.href = "/front/dataExport/toSieve";
return;
}
clearInterval(loginfg);
switch(num){
case "10"://10首页
var ful = $("#myModal").attr("aria-hidden");
if(ful=="true"){
break;
}
$("#myModal").modal("hide");
// if(dataListId!=""){
// setTimeout(function(){
// window.open("/article/content/"+dataListId+".html");
// },500)
// }
break;
case "11"://11订阅页面
//$("#myModal-01").click();
$(".modal").click();
break;
case "12"://12搜索列表
var ful = $("#myModal").attr("aria-hidden");
if(ful=="true"){
break;
}
$("#myModal").modal("hide");
$("#labModal").modal("hide");
if(dataId!=""){
setTimeout(function(){
//$('a[dataId="'+ dataId +'"]').click();
var aHref = "";
if(searchvalue != ""){
aHref += '.html?kds='+searchvalue;
}else{
aHref += '.html';
}
window.open("/article/content/"+dataId+aHref);
},500);
}
break;
case "13"://13快照页
if(thurl!=""&&thurl!="D"){
window.location.href=thurl;
}else if(thurl==""){
window.location.href="/";
}
break;
case "14"://14标签页面
var ful = $("#myModal").attr("aria-hidden");
if(ful=="true"){
break;
}
$("#myModal").click();
if(dataId!=""){
setTimeout(function(){
window.open("/article/content/"+dataId+".html");
},500);
}
break;
case "15"://15剑鱼标讯博客页面
break;
case "16"://关于我们页面16
break;
case "18"://中标企业搜索
var ful = $("#myModal").attr("aria-hidden");
if(ful=="true"){
break;
}
$("#myModal").modal("hide");
$("#labModal").modal("hide");
if(dataId!=""){
setTimeout(function(){
//$('a[dataId="'+ dataId +'"]').click();
var aHref = "";
if(searchvalue != ""){
aHref += '.html?kds='+searchvalue;
}else{
aHref += '.html';
}
window.open("/article/content/"+dataId+aHref);
},500);
}
break;
break;
case "19"://拟建项目
var ful = $("#myModal").attr("aria-hidden");
if(ful=="true"){
break;
}
$("#myModal").modal("hide");
$("#labModal").modal("hide");
if(dataId!=""){
setTimeout(function(){
var aHref = "";
if(searchvalue != ""){
aHref += '.html?kds='+searchvalue;
}else{
aHref += '.html';
}
window.open("/article/content/"+dataId+aHref);
},500);
}
break;
case "17"://落地页
$("#bidLogin").modal("hide");
$(".close").click();
if(ldpnum=="0"){
window.open('/jylab/supsearch/index.html', '_self')
}else if(ldpnum=="1"){
window.open('/front/subscribe.html', '_self')
}else if(ldpnum=="2"){
window.open('/jylab/supsearch/proposedProject.html', '_self')
}else if(ldpnum=="3"){
if(ldmold!=""){
window.open('/list/stype/'+ldmold+'.html', '_self')
}else{
window.open('/jylab/supsearch/index.html', '_self')
}
}else if(ldpnum=="4"){
if(ldmold!=""){
window.open('/list/area/'+ldmold+'.html', '_self')
}else{
window.open('/jylab/supsearch/index.html', '_self')
}
}else if(ldpnum=="5"){
if(ldmold){
window.open('/article/content/'+ldmold+'.html')
}else{
window.open('/jylab/supsearch/index.html')
}
}else if(ldpnum=="6"){
window.open('/front/dataExport/toSieve')
}
break;
case "24"://百度SEM-p 快照页推广-落地页
window.open(semHref, '_self')
break
}
}
//退出登录
var signout = function(){
clearInterval(loginfg);
kzyflag = true;
loginflag = false;
unseatflag = false;
unseatzbqyflag = false;
$("#login").html("");
loginBtnType();
$(".control-tabBtn>a:first>font").text("招标搜索");
$(".control-tabBtn>a:eq(2)").addClass("hidden");
$(".control-tabBtn>a:eq(3)").addClass("hidden");
$(".superSearch").show();
$.post("/front/signOut",function(data){
if(data=="ok"){
try{
$.cookie("userid_secure","",{expires:-1,path:"/",domain:document.domain.replace(/[^.]+/,"")});
}catch(e){
document.cookie = "userid_secure=;expires=-1;path=/";
}
var pt = new RegExp("^/front/dataExport/.+$");
if(pt.test(window.location.pathname)){
window.location.href="/";
}else{
LoginPolling.start();
createWebSocket(false);
getNewShareId(mynum);
}
}
})
}
//查看用户是否已经登录
var haslogin = function(num,kyorpn,url){
mynum = num;//页面logid
keysorpname = kyorpn;//其他参数
thurl = url;//列表也跳转快照页url
$.post("/front/hasSign",function(data, location){
if(data){
loginflag = true;
encryptId = data.encryptId
if(data.s_nickname.length>11){
data.s_nickname = data.s_nickname.substring(0,11);
data.s_nickname = data.s_nickname + "...";
}
var hhtml = "
"){
data.redisheadimg = "";
}
if(data.s_headimage==null||data.s_headimage==undefined||data.s_headimage==""||data.s_headimage==""){
data.s_headimage = "/images/defaultAvatarN.png?v=2";
}
if(data.redisheadimg!=""){
hhtml+="src='"+data.redisheadimg+"'"
}else{
hhtml+="src='"+data.s_headimage+"'"
}
hhtml+=" onerror='this.src=\"/images/defaultAvatarN.png?v=2\"'>"
+""
+"
"
+"
"
+"
"
+"
"
+data.s_nickname
+"
"
+"
"
+"我的订单"
+"
"
+"
"
+"

"
+"
退出"
+"
"
+"
"
+"
"
$("#login").html(hhtml);
try{
infoListCss();
commonMouseEvent();
}catch(e){}
getNewShareId(num);
changeER();
}else{
$("#login").html("");
loginBtnType();
getNewShareId(num);
LoginPolling.start();
createWebSocket(false);
kzyflag = true;//未登录进入快照页面
changeER();
}
})
}
//
function changeER(){
$(".loginBtn").click(function(){
var thref = window.location.href;
if(thref.indexOf("topics")<0){
$(".code-text").html('
微信扫码登录
立即免费使用')
}
})
}
function loginBtnType(){
var href = window.location.pathname;
if (href=="/"||href.indexOf("subscribe")>-1||href.indexOf("advservices")>-1||href.indexOf("aboutus")>-1||href.indexOf("busicooperation")>-1||href.indexOf("pcindex.html")>-1){
$(".loginBtn").attr("onmouseover","this.style.borderColor='#2cb7ca'; this.style.color='#2cb7ca';");
$(".loginBtn").attr("onmouseout","this.style.borderColor='#fff'; this.style.color='#fff';");
}else if(href.indexOf("topics")>-1){
$(".loginBtn").css({"border":"none"});
}else{
$(".loginBtn").css({"border-color":"#e0e0e0","color":"rgb(37, 38, 39)"});
$(".loginBtn").attr("onmouseover","this.style.borderColor='#2cb7ca'; this.style.color='#2cb7ca';");
$(".loginBtn").attr("onmouseout","this.style.borderColor='#e0e0e0'; this.style.color='#252627';");
}
}