/**统一登录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 = null;
var openid = "";
var jylgi = 0;
var loginflag = false;//登录状态
// 使用模版提供是否登录,默认值
if (window.goTemplateData && window.goTemplateData.params && window.goTemplateData.params.login) {
loginflag = Boolean(window.goTemplateData.params.login)
}
var mynum = "";//页面参数num
var keysorpname = "";//项目名称
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 isBindPage = false; // 是否是绑定手机号页面功能
var _reconnectedConf = {
count: 0, // ws重连了几次
max: 10, // ws最大重连次数,重连max次后不再重连
}
//轮询查询
var LoginPolling = {
isPostLoginPolling: true,//是否发起轮询请求
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.init();
//定时器,定时请求看是否扫码登录,返回用户信息,登录
this.loginPollingInterval = setInterval(function(){
//如果浏览器不支持webscoket,走ajax轮询方式
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(){
if("WebSocket" in window){
try{
ws = new WebSocket(wsUrl);//实例化websocket对象
initEventHandle();
}catch(e){
reconnect();
//console.log(e)
}
}else{
LoginPolling.isPostLoginPolling = true;
}
}
//
var initEventHandle = function(){
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) {
SendMsg();
//心跳检测重置
webSocketHeartCheck.reset().start(ws,loginflag);
}
}
// 更新头像/昵称/手机号等信息
function updateUserInfo (data) {
if (data.update) {
$.post("/jypay/user/getSimpleData", {}, function(result) {
if (result && result.userId) {
var userName = result.name ? (result.name === result.phone ? '' : result.name) : ''
updateUserInfo({
update: false,
name: userName,
phone: result.phone,
avatar: result.headImage || ''
})
}
})
}
$('#public-nav *[data-user-name]').text(data.name || '')
$('#public-nav *[data-user-phone]').text(data.phone || '')
$('#public-nav img[data-user-avatar]').attr('src', data.avatar || '/common-module/public/image/auto.png')
$('#public-nav img[data-user-avatar]').on('error', function () {
if ($(this).attr('src').indexOf('/common-module/public/image/auto.png') === -1) {
$(this).attr('src', '/common-module/public/image/auto.png')
}
})
}
// 切换登录/未登录展示元素
function toggleLoginDom (type) {
if (type) {
$("#login .loginBtn").hide()
$("#public-nav .nav-avatar").show()
$("#public-nav .work-link").show()
$("#public-nav .fl").addClass('fix-work')
// 客服入口显示
$('#go-customer-4').show()
} else {
$("#public-nav .nav-avatar").hide()
$("#public-nav .work-link").hide()
$("#public-nav .fl").removeClass('fix-work')
$("#login .loginBtn").show()
// 客服入口隐藏
$('#go-customer-4').hide()
}
}
//
function reconnect() {
if(webSocketHeartCheck.lockReconnect || loginflag){
return;
}
// 达到最大重连次数后,不再重连
if (_reconnectedConf.count >= _reconnectedConf.max) {
console.log('ws重连达到最大次数,不再重连')
return
}
LoginPolling.isPostLoginPolling = true;
webSocketHeartCheck.lockReconnect = true;
LoginPolling.init();
//没连接上会一直重连,设置延迟避免请求过多
setTimeout(function () {
_reconnectedConf.count++;
console.log('ws第' + _reconnectedConf.count + '次重连')
createWebSocket();
webSocketHeartCheck.lockReconnect = false;
}, 2000);
}
//websocket查看用户是否登录
var JYLogin = function(num){
clearInterval(loginfg)
loginfg = setInterval(function(){
jylgi++;
//console.log(jylgi+"-----")
if(jylgi>120*60){
getNewShareId(num,false);
jylgi = 0;
}
},1000)
}
var SendMsg = function(){
if(pageshareid==""||kopshareid==""){
return;
}
if(ws!=null&&ws.readyState==1){
//console.log("发送:"+pageshareid+"___"+kopshareid)
ws.send(pageshareid+"___"+kopshareid);
}else{
LoginPolling.isPostLoginPolling = true;
}
}
//生成页面二维码,不同页面处理逻辑
var getNewShareId = function(num,isFirst){
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;
if(!loginflag){
if(isFirst){
LoginPolling.start();
createWebSocket();
}else if(!isFirst){
LoginPolling.init();
SendMsg();
}
}
localStorage.setItem("oldshareid", pageshareid);
//redisUserInfo(pageshareid,kopshareid);
$(".jyhead_qr img").attr("src","/front/share/"+pageshareid);
$("#bottomimg").attr("src","/front/share/"+pageshareid);
$("*[data-share-img]").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"://订阅页面
$("#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": case "130"://快照页
$("#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);
$("*[data-share-img]").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;
}
JYLogin(num);
}
},'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);
}
})
}
// (必要!)优先获取用户权限,不管用户有没有登陆,以便在页面中更早的拿到权限
ajaxGetUserPower()
function ajaxGetUserPower (conf) {
conf = conf || {}
var success = conf.success
var complete = conf.complete
$.ajax({
type: 'post',
url: '/bigmember/use/isAdd',
success: function (res) {
if (res && res.data) {
window.memberStatus = res.data.memberStatus
window.memberPower = res.data.power
window.customers = res.data.customers
window.vipStatus = res.data.vipStatus // 是否是超级订阅用户
window.isFree = res.data.isFree // 是否是免费用户
window.freeFile = res.data.freeFile // 免费用户 是否体验过 0:未体验过 -1:体验过
window.viper = res.data.viper // 是否是超级订阅老用户 false:老用户 true: 新用户
window.entniche = res.data.entniche // 商机管理用户
window.fileNum = res.data.fileNum // 超级订阅用户可下载附件次数
window.isLogin = true // 用于其他页面判断是否已登录
window.isNewEntNiche = res.data.entIsNew
window.isEntService = res.data.isEntService
sessionStorage.setItem('bidPower', JSON.stringify(res.data.power))
success && success(res)
}
},
complete: function () {
complete && complete()
}
})
}
function checkBigStatus () {
ajaxGetUserPower({
success: function (res) {
try {
setUserFree()
} catch (error) {}
if (res.data.memberStatus > 0) {
$(".myorderDiv.lastBox").show()
}
if (res.data.viper) {
$(".myorderDiv.ent-search").show()
}
if(res.data.power && res.data.power.length) {
if (res.data.power.indexOf(4) == -1 && res.data.vipStatus>0&&res.data.viper) {
$(".myorderDiv.entPortraitRecord").show()
}
if (res.data.power.indexOf(5) == -1 && res.data.vipStatus>0&&res.data.viper) {
$(".myorderDiv.buyerPortraitRecord").show()
}
}
if (res.data.memberStatus<=0&&res.data.vipStatus>0&&res.data.viper){
$(".myorderDiv.portraitRecord").show()
}
if (res.data.memberStatus > 0 && res.data.vipStatus > 0 && res.data.viper && res.data.power.indexOf(3) === -1) {
$('.fileRecord').show()
}
if (res.data.memberStatus <= 0 && res.data.vipStatus > 0 && res.data.viper) {
$('.fileRecord').show()
}
if ($.isArray(res.data.power)) {
// 大会员没有附加下载包权限用户且新版超级订阅用户
if (res.data.memberStatus > 0 && res.data.vipStatus > 0 && res.data.viper && res.data.power.indexOf(3) === -1) {
$('.fileRecord').show()
}
}
},
complete: function () {
try {
getPowerComplete && getPowerComplete()
} catch (error) {}
}
})
}
// 查询商机管理PC权限
function checkMenuForEnt () {
$.ajax({
type: 'get',
url: '/entbase/ent/mySelectent?t=' + new Date().getTime(),
success: function (er) {
$.ajax({
type: 'get',
url: '/front/entExportAuth/getAuth?t=' + new Date().getTime(),
success: function (r) {
$(".myorderDiv[data-ent-menu]").remove()
var tempHtml = ''
if(er.data!=null && er.data.status==1){
tempHtml += "
"
+"我的企业"
+"
"
}
if(r.entnicheMenu == true){
if (r.isNew == true) {
tempHtml+= ""
+"商机管理"
+"
"
} else {
tempHtml+= ""
+"商机管理"
+"
"
}
}
if(r.privatedata){
tempHtml+= ""
+"画像分析系统"
+"
"
}
$(".infoList .lastBox").before(tempHtml)
$('#entDiv').click(function () {
$.ajax({
type:'POST',
url:'/entnicheNew/buy/whetherbuy',
success:function () {
if(r.entnicheMenu == true){
if (r.isNew == true) {
window.location.href='/entpc/newBus'
} else {
window.location.href='/entpc/bus'
}
}
}
})
})
}
})
}
})
}
var msgTimer = null
function toReaded(ids, type, url) {
var _this = this
$.ajax({
type: 'POST',
url:'/jymessageCenter/markRead',
data: {
msgId: ids,
msgType: type
},
success:function () {
if (url) {
location.href = url
} else {
return
}
}
})
}
/**
* @date 2023/1/4 消息通知改为 webscoket 获取并调用浏览器消息通知
*/
// 查看是否有新消息
function checkCounts() {
try {
// 非工作台模式下需要重建链接,工作台嵌入页面不需要额外初始化
if (!goTemplateData.inIframe) {
getMsgBuoyActive.listenNotification()
}
} catch (e) {}
}
//查询用户信息,响应页面登录信息
var logic = function(data,num){
if(data.result=="ok"){
//判断是否需要设置cookie
if(data.cValue){
afterLoginSetCookit(data.cName,data.cValue,data.expires)
}
clearInterval(loginfg);
// loginflag置为true后在调用回调
loginflag = true;
// TODO login callback
try {
// header专用回调。
loginCallbackHeader(data)
} catch (e) {}
try {
// 页面专用回调
loginCallback(data)
} catch (e) {}
clearLoginStorage(/-login-clear/)
//$(".QRLogin").hide();
$("#bidLogin").modal("hide")
$("#bidcommunity").modal("hide")
if(!data.phone && data.openid) {
window.location.href = '/swordfish/frontPage/userMerge/sess/bind'
}
processpage(data,num);
//登录成功,停止轮询
LoginPolling.stop();
//登录成功,停止心跳监测
webSocketHeartCheck.reset();
if(ws && 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 + "...";
}
toggleLoginDom(true)
updateUserInfo({
update: true,
name: data.s_nickname || '',
phone: '',
avatar: data.s_headimage || ''
})
var skipInit = location.href.indexOf('/notin/page') !== -1
if (!skipInit && typeof window.GuideIntroDialog === 'function') {
window.guideIntroDialog = new GuideIntroDialog()
}
try{
checkBigStatus()
infoListCss();
message.init()
checkCounts()
if (typeof window.initIndexMsgList === 'function') {
initIndexMsgList()
}
} catch (e) {
console.warn(e)
}
}
}
//登录后处理页面逻辑
var processpage = function(item,num){
var backToUrl = getParam('backTo')
if (backToUrl) {
return location.replace(decodeURIComponent(backToUrl))
}
var toHref=$("#bidLogin").attr("data-rec")
switch (toHref) {
case "sjdc":
window.location.href = "/front/dataExport/toSieve";
return;
case "jydocs":
window.location.href = "/swordfish/docs";
return;
}
// 未登录标签页注册后重定向首页
if (location.href.indexOf('/tags/') > -1) {
window.location.replace('/')
} else if (location.href.indexOf('/nologin/content') > -1 || location.href.indexOf('/demand/detail') > -1) {
// 未登录三级页注册后刷新(后端重定向到登陆后的三级页)
// /demand/detail 供应搜索三级页登录后刷新
window.location.reload()
}
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": case "130"://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
}
}
/**
* 检查是否需要前往新用户兴趣设置
* @returns {boolean}
*/
function checkNeedGoNewUserSettingPage () {
// 同步请求判断是否新用户,需要跳转兴趣设置页面
// 首页不走这个逻辑打开。首页登录后会刷新数据,会走首页重定向。
// if (location.pathname === '/') return
var goPage
$.ajax({
type: 'post',
async: false,
url: '/salesLeads/appIsNewUerSales',
success: function (res) {
if (res && res.data) {
goPage = '/swordfish/frontPage/user/sess/set_favorite'
}
}
})
if (goPage) {
window.open(goPage)
return true
}
return false
}
function clearObjKeyForRegFn (obj, reg) {
if (obj) {
for(var k in obj) {
if (reg.test(k)) {
obj.removeItem(k)
}
}
}
}
function clearLoginStorage (reg) {
clearObjKeyForRegFn(sessionStorage, reg)
clearObjKeyForRegFn(localStorage, reg)
}
var removeLocalStorage = function(){
// 移除userId (大会员中标预测历史记录用到)
localStorage.removeItem('BIGMEMBER_PC')
}
//退出登录
var signout = function(){
clearInterval(loginfg);
loginflag = false;
unseatflag = false;
unseatzbqyflag = false;
toggleLoginDom(false)
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"){
$('#noticed').hide()
clearLoginStorage(/-login-clear/)
afterSignoutClearCookit();
// window.location.href="/";
var pt = new RegExp("^/article/content/.+$|^/front/dataExport/.+$|^/front/common(Footer|Header)|^/front/course/codePay$|^/front/course/orderPay$|^/entpc/.+$|^/bid/pc/page/.+$");
if(pt.test(window.location.pathname)){
window.location.href="/";
}else{
window.location.reload();
/*LoginPolling.start();
createWebSocket();
getNewShareId(mynum,true);*/
}
window.localStorage.removeItem('bus-key-group-SCOPE')
window.localStorage.removeItem('noMesg')
clearInterval(msgTimer)
// 移除浏览器缓存
removeLocalStorage()
}
})
}
var afterSignoutClearCookit = function(){
try{
$.cookie("userid_secure","",{expires:-1,path:"/",domain:document.domain.replace(/[^.]+/,"")});
$.cookie("klcn_value","",{expires:-1,path:"/",domain:document.domain.replace(/[^.]+/,"")});
}catch(e){
document.cookie = "userid_secure=;expires=-1;path=/";
document.cookie = "klcn_value=;expires=-1;path=/";
}
}
var afterLoginSetCookit = function(name,value,time){
var expires = new Date(time)
try{
$.cookie(name,value,{expires:expires.toGMTString(),path:"/",domain:document.domain.replace(/[^.]+/,"")});
}catch(e){
document.cookie = name+"="+value+";expires="+expires.toGMTString()+";path=/;domain="+document.domain.replace(/[^.]+/,"");
}
}
//查看用户是否已经登录
var haslogin = function(num,kyorpn,url){
mynum = num;//页面logid
keysorpname = kyorpn;//其他参数
thurl = url;//列表也跳转快照页url
$.ajax({
url: '/front/hasSign',
method: 'post',
success: function (data) {
if(data){
if(data.resetpwd){
afterSignoutClearCookit();
window.location.href = "/?nol=2";
return;
}
// loginflag置为true后在调用回调
loginflag = true;
// TODO login callback
try {
// header专用回调。
loginCallbackHeader(data)
} catch (e) {}
try {
// 页面专用回调
loginCallback(data)
} catch (e) {}
encryptId = data.encryptId
if(data.s_nickname!=null&&data.s_nickname.length>11){
data.s_nickname = data.s_nickname.substring(0,11);
data.s_nickname = data.s_nickname + "...";
}
toggleLoginDom(true)
updateUserInfo({
update: true,
name: data.s_nickname || '',
phone: '',
avatar: data.s_headimage || ''
})
try{
checkBigStatus()
infoListCss();
message.init()
checkCounts()
if (typeof window.initIndexMsgList === 'function') {
initIndexMsgList()
}
} catch (e) {
console.warn(e)
}
} else{
toggleLoginDom(false)
loginBtnType();
//pc限制登陆
var nosess = getParam("nol");
if (nosess && (!loginflag)){
openLoginDig();
}
window.localStorage.setItem('noMesg', 0)
}
getNewShareId(num,true);
},
complete: function () {
// TODO login callback
try {
checkLoginCallback()
} catch (e) {}
}
})
}
function loginBtnType(){
var href = window.location.pathname;
var curTheme =$("#public-nav").attr('data-theme')
if (href=="/"||href.indexOf("subscribe")>-1||href.indexOf("advservices")>-1||href.indexOf("solution")>-1||href.indexOf("partner")>-1||href.indexOf("aboutus")>-1||href.indexOf("busicooperation")>-1||href.indexOf("pcindex.html")>-1||window.location.pathname==="/jyxspc/"||window.location.pathname==="/entpc/"){
if(curTheme == 'dark'){
$(".loginBtn").attr("onmouseover","this.style.borderColor='#2cb7ca'; this.style.color='#2cb7ca';");
$(".loginBtn").attr("onmouseout","this.style.borderColor='#fff'; this.style.color='#fff';");
}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';");
}
}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';");
}
}
///////////////////////////////
// ajax部分匿名函数自执行,防止泄露全局变量
window.__wait_listen_modal__ = false
$(function(){
function goBackOrigin (cb) {
var backOrigin = $.cookie('article')
if (backOrigin) {
location.replace(backOrigin)
} else {
typeof cb === 'function' ? cb() : window.close()
}
}
var Direct = {
verify: {},
forge: {},
loginInfo: {},
instance: {},
ajaxSms: function (e, type) {
var _this = this;
switch (type) {
case 'verify': {
//手机号验证码登录 - 发送登录短信验证码
$.post("/phone/login",{
reqType:"sendIdentCode",
phone:$("#bidLogin .login-dig-input-box [name='verify_phone']").val(),
// isAutoLogin: $('.auto-login-checkbox').hasClass('checked'),
code:$("#bidLogin .login-dig-input-box [name='verify_code']").val()
},function(r){
if(r.status==-1){
_this.verify.phone.showError('手机号格式错误');
}else if(r.status==-2){//图形验证码错误
_this.verify.code.showError('图形验证码输入错误');
$("#bidLogin .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
}else if(r.status==-3){//图形验证码错误
_this.verify.phone.showError('手机号已被注册');
$("#bidLogin .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
}else{
sessionStorage.setItem('login-verify-start-time', new Date().getTime())
startTimeDown(type)
}
});
break
}
case 'register': {
//手机号验证码登录(注册) - 发送登录短信验证码
$.post("/phone/login",{
reqType:"sendIdentCode",
register: 'true',
phone:$(".register-form-box .login-dig-input-box [name='register_phone']").val(),
// isAutoLogin: $('.sms-login .auto-login-checkbox').hasClass('checked'),
code:$(".register-form-box .login-dig-input-box [name='register_code']").val()
},function(r){
if(r.status==-1){
_this.register.phone.showError('手机号格式错误');
}else if(r.status==-2){//图形验证码错误
_this.register.code.showError('图形验证码输入错误');
$(".register-form-box .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
}else if(r.status==-3){
_this.register.phone.showError('手机号已被注册');
$(".register-form-box .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
}else{
sessionStorage.setItem('login-verify-start-time', new Date().getTime())
startTimeDown(type)
}
});
break
}
case 'forge': {
$.post("/phone/forgetPwd",{
reqType:"sendIdentCode",
phone:$(".forgetpwd_page .login-dig-input-box [name='forge_phone']").val(),
code:$(".forgetpwd_page .login-dig-input-box [name='forge_code']").val()
},function(r){
if(r.status=="phoneError"){
_this.forge.phone.showError('手机号格式错误');
}else if(r.status=="codeError"){
_this.forge.code.showError('图形验证码输入错误');
$(".forgetpwd_page .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
}else if(r.status=="phoneNotExists"){
_this.forge.phone.showError('手机号尚未注册');
$(".forgetpwd_page .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
}else if(r.status=="y"){
sessionStorage.setItem('login-verify-start-time', new Date().getTime())
startTimeDown(type)
}
});
break
}
case 'bind-phone': {
$.post("/jypay/user/phone/bind",{
step: 1,
phone:$("#bidLogin .login-dig-input-box [name='verify_phone']").val(),
code:$("#bidLogin .login-dig-input-box [name='verify_code']").val()
},function(r){
if (r && r.error_code > -1) {
sessionStorage.setItem('login-verify-start-time', new Date().getTime())
startTimeDown(type)
} else {
if (r.error_msg === '图形验证码错误') {
if (_this.verify.code.value !== "HIDE") {
_this.verify.code.showError(r.error_msg || '发送错误,请稍后再试');
}
getNewVerify()
} else if (r.error_msg === '手机号已被使用') {
_this.verify.phone.showError('该手机号已被绑定,请更换手机号');
} else {
_this.verify.sms.showError(r.error_msg || '发送错误,请稍后再试');
}
}
});
break
}
}
},
// 忘记密码
ajaxStepOne: function (e, arr) {
$.post("/phone/forgetPwd",{reqType:"nextStep",identCode:arr[2].value},function(r){
e.setAttribute('data-loading', 'false');
if(r.status=="identCodeError"){
arr[2].showError('短信验证码错误');
}else if(r.status=="y"){
toggleStep(false);
}
});
},
ajaxStepTwo: function (e, arr) {
$.post("/phone/forgetPwd",{reqType:"save",password:arr[1].value},function(r){
e.setAttribute('data-loading', 'false');
if(r.status=="passwordError"){
arr[0].showError('密码格式错误');
}else if(r.status=="passwordRepeat"){
arr[0].showError('新密码不能与之前设置过的密码重复');
}else{
var toast = document.querySelector('.login-dig-success-toast')
toast.classList.add('is-show')
setTimeout(function () {
toast.classList.remove('is-show')
if(sessionStorage){
sessionStorage.reLogin=1;
}
window.history.back();
}, 1500);
}
});
},
// 设置密码
ajaxSetPassword: function (e, arr) {
var payload = {
password: arr[0].value
};
$.ajax({
url: "/publicapply/password/update",
type: "POST",
contentType: "application/json",
data: JSON.stringify(payload),
success: function(r) {
e.setAttribute('data-loading', 'false');
if (r) {
// 密码保存成功,走登录成功步骤
logic(Direct.loginInfo.userInfo, mynum);
} else {
arr[1].showError('密码保存失败');
}
}
});
},
// 手机号+密码登录
ajaxLoginPass: function (e, arr) {
var payload = {
reqType:"phoneLogin",
isAutoLogin: $('.auto-login-checkbox').hasClass('checked'),
phone:arr[0].value,
password: arr[1].value
}
$.post("/phone/login",payload,function(r){
e.setAttribute('data-loading', 'false')
switch (r.status) {
case -1: {
arr[0].showError('手机号或账号名输入错误')
break
}
case 1: {
logic(r.userInfo,mynum);
break
}
case -2: {
arr[1].showError('密码输入错误')
break
}
}
});
},
ajaxLoginSms: function (e, arr) {
if ($('#bidLogin').attr('data-name') === 'bind-phone') {
$.post("/jypay/user/phone/bind",{
step: 2,
phone: arr[0].value,
code: arr[2].value,
mode: isBindPage ? 'mergeBind' : ''
},function(r){
e.setAttribute('data-loading', 'false')
if (r && r.error_code > -1) {
if(r.data.state==1){
var backToUrl = getParam('backTo')
if (backToUrl) {
return location.replace(decodeURIComponent(backToUrl))
}
if (isBindPage) {
if (history.length === 1) {
goBackOrigin()
} else {
if (document.referrer === location.href) {
goBackOrigin(function () {
location.href = '/'
})
} else {
checkNeedGoNewUserSettingPage()
history.back()
}
}
return
}
if (r.data.needMerge) {
location.href = '/swordfish/frontPage/userMerge/sess/merge?token=' + r.data.mergeToken
return
} else {
checkNeedGoNewUserSettingPage()
$("#bidLogin").modal("hide")
sessionStorage.setItem('bind-phone', arr[0].value.trim())
typeof window.callBindPhoneSuccess === 'function' && window.callBindPhoneSuccess(true)
}
} else if (r.data.state==2){
location.replace('/swordfish/frontPage/userMerge/sess/merge?token=' + r.data.token)
}
} else {
arr[2].showError(r.error_msg || '绑定错误,请稍后再试')
}
});
} else {
var source = getParam("source");//百度SEM
if (source!=null){
var pathname = window.location.pathname;
if (pathname=="/front/structed/pc_index.html"){//结构化数据
source+="_structed";
}else if (pathname=="/bid/pc/page/bidfile_landpage"){//招标文件解读
source+="_bidfile";
}else if (pathname=="/big/page/index"){//大会员
source+="_member";
}
}else{
source="";
}
var payload = {
reqType:"identCodeLogin",
identCode:arr[2].value,
isAutoLogin: $('.auto-login-checkbox').hasClass('checked'),
source:source
}
// 短信验证码登录
$.post("/phone/login",payload,function(r){
e.setAttribute('data-loading', 'false')
if(r.status==1){
if (r.userInfo.isNewUser) {
trackClick('注册行为-打开设置密码弹窗')
Direct.showSetPassModule(true)
Direct.loginInfo = r
} else {
logic(r.userInfo,mynum);
}
}else if(r.status==-1){
arr[2].showError('短信验证码输入错误')
}else if(r.status==-4){
arr[2].showError('系统错误,请重试')
}
});
}
},
// 新用户设置密码
showSetPassModule: function (type) {
var otherArr = ['.login-dig-footer-box .wx-logo-box', '.login-dig-footer-box .login-dig-text-split' ,'.login-dig-tabbar-navbar', '.login-dig-tabbar-content', '.login-dig-tabbar-content.is-active', '.pass-bottom', '.login-dig-wx-qrcode-box', '.login-dig-top-back-box', '.code-bottom', '.login-common-title', '.login-auto-card']
var setPassArr = ['.login-dig-tabbar-content.set-password', '.login-dig-tabbar-navbar.set-pass-module', '.set-pass-bottom', '.set-pass-title']
for(var i=0;i[name='pass']").click();
openLoginDig();
}
window.__wait_listen_modal__ = true
$("#bidLogin").on("show.bs.modal", function () {
if ($('#bidLogin').attr('data-name') === 'bind-phone') {
getNewVerify()
} else {
var verify_path = "/front/landpage/captcha?v="
$("#bidLogin .verify-img").attr("src", verify_path + new Date().getTime());
}
});
$("#bidLogin").on("hidden.bs.modal", function () {
window.needToWork = false
$(".public-nav").css({"padding-right":""});
if($("#bidLogin").attr("data-rec")){
$("#bidLogin").removeAttr("data-rec");
}
if(Direct.loginInfo.userInfo && Direct.loginInfo.userInfo.result === 'ok') {
location.reload()
}
});
function startTimeDown (type) {
var nowCount = 60
if (sessionStorage.getItem('login-verify-start-time')) {
var cCount = parseInt((new Date().getTime() - sessionStorage.getItem('login-verify-start-time')) / 1000)
if (cCount >= 0 & cCount <= 60) {
nowCount -= cCount
} else {
sessionStorage.removeItem('login-verify-start-time')
return
}
} else {
return
}
var nowQ = 'span[data-name="verify_get_sms"]'
var otherQ = 'span[data-name="forge_get_sms"]'
if (type === 'forge') {
var tempQ = nowQ
nowQ = otherQ
otherQ = tempQ
}
if (type === 'register') {
nowQ = 'span[data-name="register_get_sms"]'
otherQ = 'span[data-name="verify_get_sms"]'
}
var Ele = document.querySelector(nowQ)
var otherEle = document.querySelector(otherQ)
var defalutIT = '重新获取('+ --nowCount +'s)'
if (Ele) Ele.innerText = defalutIT
if (otherEle) otherEle.innerText = defalutIT
var nowSS = window.setInterval(function () {
if (nowCount === 1 || !sessionStorage.getItem('login-verify-start-time')) {
clearInterval(nowSS)
if (Ele) Ele.innerText = '获取验证码'
if (Ele) Ele.classList.remove('is-stop')
if (otherEle) otherEle.innerText = '获取验证码'
sessionStorage.removeItem('login-verify-start-time')
return
}
var iT = '重新获取('+ --nowCount +'s)'
if (Ele) Ele.classList.add('is-stop')
if (Ele) Ele.innerText = iT
if (otherEle) otherEle.classList.add('is-stop')
if (otherEle) otherEle.innerText = iT
}, 1000)
}
function getSMSCode (e) {
if (e.classList.contains('is-stop')) return
var verifyStartTime = new Date().getTime()
var oldTime = sessionStorage.getItem('login-verify-start-time') || verifyStartTime - 70000
if (verifyStartTime - oldTime >= 60000) {
var nowQ = e.getAttribute('data-name') === 'forge_get_sms' ? 'forge' : 'verify'
if ($("#bidLogin").attr('data-name') === 'bind-phone') {
nowQ = 'bind-phone'
// getNewVerify()
}
if (e.getAttribute('data-name') === 'verify_get_sms' && !isBindPage) {
nowQ = 'verify'
trackClick('注册行为-验证码登录/注册-获取验证码')
}
if(isBindPage) {
trackClick('绑定-发送验证码')
}
Direct.ajaxSms(e, nowQ)
}
}
// 表单规则
function ruleForPhoneOrName (data, type) {
return true
}
function ruleForPhone (data, type) {
var phoneReg = /^[1][3-9][0-9]{9}$/.test(data.value);
var createPhoneReg =/^[1][0][0][0-9]{8}$/.test(data.value);
var checkStatus = phoneReg || createPhoneReg;
if (type === 'input') {
return data.value.length >= 11 ? checkStatus : true
}
if (type === 'blur') {
return data.value.length ? checkStatus : true
}
return checkStatus
}
function ruleForCode (data, type) {
var checkStatus = /^\S{4}$/.test(data.value)
if (type === 'blur') {
return data.value.length ? checkStatus : true
}
if (type === 'input') {
return data.value.length == 4 ? checkStatus : true
}
return checkStatus
}
function ruleForEnt (data, type) {
var checkStatus = /^\S{4,100}$/.test(data.value)
if (type === 'blur') {
return data.value.length ? checkStatus : true
}
if (type === 'input') {
return data.value.length < 4 ? checkStatus : true
}
return checkStatus
}
function ruleForSms (data, type) {
var checkStatus = /^\S{6}$/.test(data.value)
if (type === 'blur') {
return data.value.length ? checkStatus : true
}
if (type === 'input') {
return data.value.length == 6 ? checkStatus : true
}
return checkStatus
}
function ruleForPass (data, type) {
var checkStatus = /^\S{6,}$/.test(data.value)
if (type === 'blur') {
return data.value.length ? checkStatus : true
}
if (type === 'input') {
return data.value.length >= 6 ? checkStatus : true
}
return checkStatus
}
function createFormStauts (formOption) {
var nowEle = document.querySelector(formOption.el)
var errClass = 'is-error'
// 实时状态
var nowData = {
status: null,
next: formOption.next || false,
value: null,
el: nowEle,
skip: function (value) {
this.status = true
this.next = true
this.value = value
formOption.upStatus()
},
showError: function (error) {
this.status = false
this.next = false
formOption.upStatus()
if (error) {
this.el.parentNode.setAttribute('data-error', error)
this.el.parentNode.classList.add(errClass)
showToast(error)
}
}
}
// 错误提示
if (formOption.errorTip && formOption.errorTip !== '') {
nowEle.parentNode.setAttribute('data-error', formOption.errorTip)
showToast(formOption.errorTip)
}
// 校验规则
if (typeof formOption.rule !== "function") {
formOption.rule = function (data) {
return true
}
}
// 状态变动通知回调
if (typeof formOption.upStatus !== "function") {
formOption.upStatus = function (data) {
return true
}
}
// 监听事件
var events = formOption.event;
for(var i=0;i-1){//结构化数据
sourceStr="结构化数据-pc-baidusem";
}else if (href.indexOf("/bid/pc/page/bidfile_landpage?source=baidusem")>-1){//招标文件解读
sourceStr="招标文件解读-pc-baidusem";
}
if (sourceStr!=""){
try {
_hmt.push(['_trackEvent',sourceStr, 'click', "登录"]);
} catch (e) {
console.log('未初始化百度统计', e);
}
}
if (!window.__wait_listen_modal__) {
var verify_path = "/front/landpage/captcha?v="
$("#bidLogin .verify-img").attr("src", verify_path + new Date().getTime());
}
$("#bidLogin").modal("show");
try {
var injectLogic = logic
var link = [
'/jylab/supsearch/index.html',
'/jylab/entSearch/index.html',
'/jylab/purSearch/index.html',
'/search/issued'
]
console.info(location)
logic = function (data, num) {
window.needToWork = Boolean(type)
if (data.result === 'ok') {
//判断是否需要设置cookie
if(data.cValue){
afterLoginSetCookit(data.cName,data.cValue,data.expires)
}
// 判断是否绑定手机号
if(!data.phone && data.openid) {
window.location.href = '/swordfish/frontPage/userMerge/sess/bind'
return
}
// 检查是否需要新窗口打开<新用户兴趣偏好设置页面>
checkNeedGoNewUserSettingPage()
try{
if(Logincallback){
Logincallback(data, num)
}
}catch(e){
}
// p415: 如果是在首页登录,需要刷新页面,以刷新页面用户信息卡片数据以及页面登录未登录下链接
// 改为跳转工作桌面,此处注释掉
// if (location.pathname === '/') {
// return location.reload()
// }
// p525 如果是豆丁过来的 跳转到工作桌面
if (getParam("partner")==="docin") {
location.href = '/page_workDesktop/'
return
}
if (redirectUrl === 'reload') {
return location.reload()
}
// 需要登陆后重定向的页面
if(redirectUrl){
location.href = redirectUrl
return
}
// 搜索页登录后返回当前页面
if(link.indexOf(location.pathname) > -1) {
location.href = location.pathname + location.search
return
}
if (needToWork) {
location.href = '/page_workDesktop/'
return
}
}
injectLogic(data, num)
}
} catch (e) {}
// 埋点
trackClick('注册行为-登录或注册弹窗')
}
function openBindPhoneDig() {
openLoginDigForWx(false);
$('#bidLogin .logo').hide()
$('#bidLogin .bind-phone-head').show()
$('.login-auto-card').hide()
if ($('#bidLogin').attr('data-name') !== 'bind-phone') {
$("#bidLogin").attr('data-name', 'bind-phone')
// $('.login-dig-submit-button:disabled').css('background', '#2CB7CA')
// $('.login-dig-submit-button:disabled').css('opacity', '0.5')
$('.login-dig-submit-button').css('margin-bottom', '12px')
$('.login-dig-submit-button').addClass('bindphonebtn')
$("#bidLogin .login-dig-submit-button[name='verify_submit']").text('立即绑定')
$(".login-dig-tabbar-content[data-name='code'] .login-dig-input-box").removeClass('is-error').children('input').val('')
$('.login-auto-card').show()
}
$("#bidLogin").modal("show");
}
// 密码切换显示/隐藏
function switchPassShow (e, str) {
e.preventDefault()
const type = $(str).attr('type')
if(type === 'password') {
$(str).attr('type', 'text')
} else {
$(str).attr('type', 'password')
}
}
function closeLoginDig() {
$("#bidLogin").modal("hide");
// window.location.reload()
}
function openLoginDigForWx (type) {
var otherArr = ['.login-dig-footer-box .wx-logo-box', '.login-dig-footer-box .login-dig-text-split' ,'.login-dig-tabbar-navbar', '.login-dig-tabbar-content', '.login-dig-tabbar-content.is-active', '.pass-bottom']
var wxArr = ['.login-dig-wx-qrcode-box', '.login-dig-top-back-box', '.code-bottom']
for(var i=0;i .logo', '.login-dig-footer-box','.login-dig-footer-box .wx-logo-box', '.login-dig-footer-box .login-dig-text-split' ,'.login-dig-tabbar-navbar', '.login-dig-tabbar-content', '.login-dig-tabbar-content.is-active', '.login-dig-wx-qrcode-box', '.login-auto-card']
for(var i=0;i