123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615 |
- /**统一登录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 = "<img class='imgShow' onmouseover='openStyle()' onmouseout='closeStyle()' "
- if(data.redisheadimg=="<nil>"){
- data.redisheadimg = "";
- }
- if(data.s_headimage==null||data.s_headimage==undefined||data.s_headimage==""||data.s_headimage=="<nil>"){
- 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\"'>"
- +"<div class='userInfo'>"
- +"<div class='infoList' style='display:none'>"
- +"<span class='one'></span>"
- +"<span class='two'></span>"
- +"<div class='usernameDiv'>"
- +data.s_nickname
- +"</div>"
- +"<div class=\"myorderDiv\" onclick=\"window.location.href='/front/dataExport/toMyOrder'\">"
- +"<span>我的订单</span>"
- +"</div>"
- +"<div class='exitDiv' onclick='signout()'>"
- +"<img id='outImg' src='/images/userexit.png'/>"
- +"<span>退出</span>"
- +"</div>"
- +"</div>"
- +"</div>"
- $("#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("<button class='loginBtn' data-toggle='modal' data-target='#bidLogin' >登录</button>");
- 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 = "<img class='imgShow' onmouseover='openStyle()' onmouseout='closeStyle()' "
- if(data.redisheadimg=="<nil>"){
- data.redisheadimg = "";
- }
- if(data.s_headimage==null||data.s_headimage==undefined||data.s_headimage==""||data.s_headimage=="<nil>"){
- 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\"'>"
- +"<div class='userInfo'>"
- +"<div class='infoList' style='display:none'>"
- +"<span class='one'></span>"
- +"<span class='two'></span>"
- +"<div class='usernameDiv'>"
- +data.s_nickname
- +"</div>"
- +"<div class=\"myorderDiv\" onclick=\"window.location.href='/front/dataExport/toMyOrder'\">"
- +"<span>我的订单</span>"
- +"</div>"
- +"<div class='exitDiv' onclick='signout()'>"
- +"<img id='outImg' src='/images/userexit.png'/>"
- +"<span>退出</span>"
- +"</div>"
- +"</div>"
- +"</div>"
- $("#login").html(hhtml);
- try{
- infoListCss();
- commonMouseEvent();
- }catch(e){}
- getNewShareId(num);
- changeER();
- }else{
- $("#login").html("<button class='loginBtn' data-toggle='modal' data-target='#bidLogin' >登录</button>");
- 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('<span><img id="wxpng" src="/images/wx1.png">微信扫码登录</span><br><span id="freetext">立即免费使用</span>')
- }
- })
- }
- 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';");
- }
- }
-
|