var link = document.location.href
var refer = document.referrer
var tool = {
setCookie: function (cname, cvalue, cday) {
var d = new Date()
d.setTime(d.getTime() + cday * 24 * 60 * 60 * 1000)
var expires = "expires=" + d.toGMTString()
document.cookie = cname + "=" + cvalue + "; " + expires + ";path=/"
},
getCookie: function (cname) {
var name = cname + "="
var ca = document.cookie.split(";")
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim()
if (c.indexOf(name) == 0) return c.substring(name.length, c.length)
}
return ""
},
checkCookie: function () {
var qd = this.getCookie("qd")
if (qd != "") {
console.log(qd)
} else {
console.log(link)
}
}
}
// 按钮追踪
var btn = "顶部按钮"
function toApply(data) {
if (data == 0) {
btn = "顶部导航栏按钮"
} else if (data == 1) {
btn = "banner按钮"
} else if (data == 2) {
btn = "侧边栏按钮"
} else if (data == 3) {
btn = "中间按钮"
} else if (data == 31) {
btn = "在线版试用按钮"
} else if (data == 32) {
btn = "标准版试用按钮"
} else if (data == 33) {
btn = "企业版试用按钮"
} else if (data == 9) {
btn = "底部按钮"
} else {
btn = data
}
sessionStorage.setItem("btn", btn)
tool.setCookie("btn", btn, 1)
}
sessionStorage.setItem("currentLink", link)
tool.setCookie("currentLink", link, 1)
function IsMobile() { // 判断是否是移动端
let info = navigator.userAgent
let agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPod", "iPad"]
for (let i = 0; i < agents.length; i++) {
if (info.indexOf(agents[i]) >= 0) return true
}
return false
}
// 来源链接判断----sessionStorage和cookie--------------重要
function getSourceUrl() {
const checkLink = (link, substrings) => substrings.some(substring => link.includes(substring));
const substrings = ["baidu.com", "medium=CPC", "medium=cpc", "hmsr", "so.com", "sogou.com", "media=sogou", "zhihu", "知乎", "%E7%9F%A5%E4%B9%8E", "sm.cn", "toutiao", "bing.com", "google.com", "weishiwei", "chinaso.com", "bd_vid"];
const setQd = (qd) => {
sessionStorage.setItem("qd", qd);
tool.setCookie("qd", qd, 1);
}
const getQd = () => sessionStorage.getItem("qd") || tool.getCookie("qd");
if (refer == "" || refer == null || checkLink(link, substrings)) {
setQd(link);
} else {
if (!getQd() || checkLink(refer, substrings)) {
setQd(refer);
}
}
return getQd() || refer || link;
}
var sourceUrl = getSourceUrl() //来源链接
function getUrlData(link = location.href) {//获取url中的参数
let urlData = {}
if (link.indexOf("?") != -1) {
let index = link.lastIndexOf("?")
let url = link.substring(index, link.length)
let str = url.substr(1)
let strs = str.split("&")
for (let i = 0; i < strs.length; i++) {
try {
urlData[strs[i].split("=")[0]] = decodeURIComponent(strs[i].split("=")[1])
} catch (error) {
urlData[strs[i].split("=")[0]] = strs[i].split("=")[1]
}
}
}
return urlData
}
const urlParam = getUrlData(sourceUrl) || {}
let website_device = "pc"
if (window.navigator && /Mobile|Android|webOS|iPhone|iPad|Phone/i.test(navigator.userAgent)) {
website_device = "mobile"
}
let website_url = sourceUrl //来源链接
let website_landing_page_type = "hollycrm," + website_device //落地页类型
let website_contact_channel = "wxwork" //联络渠道
/* -------------- 推广媒体 -------------- */
function websiteMedia() {
let media = "no"
if (sourceUrl.indexOf("baidu") > -1 || sourceUrl.indexOf("百度") > -1 || sourceUrl.indexOf("aladdin") > -1) {
media = "baidu,seo"
if (sourceUrl.indexOf("medium=cpc") > -1 || sourceUrl.indexOf("zhidao.baidu") > -1 || sourceUrl.indexOf("百度,SEM") > -1) {
media = "baidu,sem"
}
if (sourceUrl.indexOf("aladdin") > -1) {
media = "baidu,aladdin"
}
if (sourceUrl.indexOf("baidufeed") > -1) {
media = "baidu,baidufeed"
}
}
if (sourceUrl.indexOf("so.com") > -1 || sourceUrl.indexOf("media=360") > -1 || sourceUrl.indexOf("source=360") > -1) {
media = "360,seo"
if (sourceUrl.indexOf("medium=cpc") > -1 || sourceUrl.indexOf("360SEM") > -1) {
media = "360,sem"
}
}
if (sourceUrl.indexOf("sogou.com") > -1 || sourceUrl.indexOf("media=sogou") > -1) {
media = "sogou,seo"
if (sourceUrl.indexOf("cpc") > -1) {
media = "sogou,sem"
}
}
if (sourceUrl.indexOf("zhihu") > -1 || sourceUrl.indexOf("知乎") > -1) {
media = "zhihu"
}
if (sourceUrl.indexOf("google.com") > -1) {
media = "google"
}
if (sourceUrl.indexOf("sm.cn") > -1) {
media = "sm"
}
if (sourceUrl.indexOf("bing.com") > -1 || sourceUrl.indexOf("bing.cn") > -1) {
media = "bing"
}
if (sourceUrl.indexOf("douban.com") > -1) {
media = "douban"
}
if (sourceUrl.indexOf("taobao.com") > -1) {
media = "taobao"
}
if (sourceUrl.indexOf("toutiao") > -1) {
media = "toutiao"
}
if (sourceUrl.indexOf("a6.7x24cc.com") > -1) {
media = "a6"
}
return media
}
let website_promotion_media = websiteMedia()
/* --------------- 关键词 -------------- */
let website_keywords = urlParam.utm_term || urlParam.word || urlParam.wd || urlParam.hmkw || urlParam.q || urlParam.query || urlParam.keyword || ""
/* -------------- 计划单元 -------------- */
let website_plan_unit = ""
let website_keywords_string = ""
if (urlParam.plan || urlParam.unit) {
website_plan_unit = urlParam.plan + "-" + urlParam.unit
}
if (website_keywords && website_plan_unit) {
website_keywords_string = website_plan_unit + "-" + website_keywords // 媒体摘要
}
if (!website_plan_unit && website_keywords) {// 只有关键词
website_keywords_string = website_keywords
}
if (website_plan_unit && !website_keywords) {// 只有计划单元
website_keywords_string = website_plan_unit
}
let bd_vid = urlParam.bd_vid || "" // 百度vid
// 外部判断来源的js............................外部判断来源的js
var hollycrm = {}// 合力命名空间
/* ------------- 合力来源对象 ------------- */
hollycrm.originate = {
env: hollycrm.env || "product", // 当前运行环境:product:正式环境;test:测试环境
interfaceUrl: "k8s-im.7x24cc.com/open_platform", // 接口地址
serviceID: "0",
param: {},// 客户初始化的参数
originateInfo: {},// 来源信息数据对象
tokenID: "",// 请求的token
/**
* 获取UUID
* @return {string} 返回UUID
*/
getUuid: function uuid() {
var s = []
var hexDigits = "0123456789abcdef"
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1)
}
s[14] = "4" // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1) // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-"
var uuid = s.join("")
return uuid
},
/**
* 获取来源信息
*/
getOriginateUrl: function () {
var self = hollycrm.originate
var originateUrl = sourceUrl
function getUrlData(link) { //获取url中的参数
var urlData = {}
if (link.indexOf("?") != -1) {
var index = link.lastIndexOf("?")
var url = link.substring(index, link.length)
var str = url.substr(1)
var strs = str.split("&")
for (var i = 0; i < strs.length; i++) {
try {
urlData[strs[i].split("=")[0]] = decodeURIComponent(strs[i].split("=")[1])
} catch (error) {
urlData[strs[i].split("=")[0]] = strs[i].split("=")[1]
}
}
}
return urlData
}
var urlParam = getUrlData(originateUrl) || {}
/* -------------- 推广媒体 -------------- */
var media = "无法判断"
if (originateUrl.indexOf("baidu") > -1 || originateUrl.indexOf("百度") > -1 || originateUrl.indexOf("aladdin") > -1) {
media = "百度SEO"
if (originateUrl.indexOf("medium=cpc") > -1 || originateUrl.indexOf("zhidao.baidu") > -1 || originateUrl.indexOf("百度,SEM") > -1) {
media = "百度SEM"
}
if (originateUrl.indexOf("aladdin") > -1) {
media = "百度阿拉丁"
}
if (originateUrl.indexOf("baidufeed") > -1) {
media = "百度信息流"
}
}
if (originateUrl.indexOf("so.com") > -1 || originateUrl.indexOf("media=360") > -1 || originateUrl.indexOf("source=360") > -1) {
media = "360SEO"
if (originateUrl.indexOf("medium=cpc") > -1 || originateUrl.indexOf("360SEM") > -1) {
media = "360SEM"
}
}
if (originateUrl.indexOf("sogou.com") > -1 || originateUrl.indexOf("media=sogou") > -1) {
media = "搜狗SEO"
if (originateUrl.indexOf("cpc") > -1) {
media = "搜狗SEM"
}
}
if (originateUrl.indexOf("zhihu") > -1 || originateUrl.indexOf("知乎") > -1 || originateUrl.indexOf("%E7%9F%A5%E4%B9%8E") > -1) {
media = "知乎"
}
if (originateUrl.indexOf("google.com") > -1) {
media = "谷歌"
}
if (originateUrl.indexOf("sm.cn") > -1) {
media = "神马"
}
if (originateUrl.indexOf("bing.com") > -1 || originateUrl.indexOf("bing.cn") > -1) {
media = "必应"
}
if (originateUrl.indexOf("douban.com") > -1) {
media = "豆瓣"
}
if (originateUrl.indexOf("taobao.com") > -1) {
media = "淘宝"
}
if (originateUrl.indexOf("toutiao") > -1) {
media = "头条"
}
if (originateUrl.indexOf("a6.7x24cc.com") > -1) {
media = "A6系统"
}
self.originateInfo.originateId = self.getUuid() // 来源ID
self.originateInfo.originateType = media // 来源类型
self.originateInfo.originateKey = urlParam.utm_term || urlParam.word || urlParam.wd || urlParam.hmkw || urlParam.q || urlParam.query || urlParam.keyword || "" // 来源关键词
self.originateInfo.originateUrl = originateUrl // 来源链接地址
return self.originateInfo
},
/**
* 获取聊天入口地址
* @param param 参数
* @param callback 回调
*/
getChatUrl: function (param, callback) {
var self = hollycrm.originate
if (!param) {
console.error("参数[param]不能为空!")
return
}
if (!param.accountID) {
console.error("参数param里必须要有属性[accountID]!")
return
}
if (!param.channelID) {
console.error("参数param里必须要有属性[channelID]!")
return
}
self.param = param
var originateInfo = self.getOriginateUrl() //来源信息
self.getServiceConf(function () { //获取服务器id
self.getToken(function () {
self.saveOriginateInfo(originateInfo, function () {
self.generateChatUrl(function (chatUrl) {
if (callback && typeof callback === "function") {
callback({ chatUrl: chatUrl + "&originateId=" + originateInfo.originateId })
}
})
})
})
})
},
/**
* 生成聊天入口地址
* @param callback 回调
*/
generateChatUrl: function (callback) {
var self = hollycrm.originate
var url = self.getInterfaceUrl()
var data = {
Modual: "ChatConfig",
Action: "GetChatUrl",
account: self.param.accountID,
token: self.tokenID,
channelId: self.param.channelID
}
self.sendAjax(url, data, function (res) {
if (res && res.Succeed) {
if (res.chatUrl) {
var chatUrl = res.chatUrl
if (self.param.urlParam) {
for (var key in self.param.urlParam) {
chatUrl += "&" + key + "=" + self.param.urlParam[key]
}
}
callback(chatUrl)
} else {
console.error("获取不到聊天入口的链接地址!")
}
} else {
console.error("请求获取聊天入口的链接地址错误,请检查网络连接!")
}
})
},
/**
* 获取接口请求地址
* @return {String} 请求地址
*/
getInterfaceUrl: function () {
var isHttps = "https:" == document.location.protocol ? true : false
var url = hollycrm.originate.interfaceUrl
var env = hollycrm.originate.env
if (env === "test") {
url = "/open_platform"
return url
}
if (isHttps) {
return "https://" + url
} else {
return "http://" + url
}
},
/**
* 获取请求Token
* @param callback 回调
*/
getToken: function (callback) {
var url = hollycrm.originate.getInterfaceUrl()
var data = {
Action: "getNewMediaToken"
}
hollycrm.originate.sendAjax(url, data, function (res) {
if (res) {
if (res.token) {
hollycrm.originate.tokenID = res.token
callback()
} else {
console.error("获取合力来源Token失败!")
}
}
})
},
/**
* 保存来源信息到服务器
* @param originateInfo 来源信息
* @param callback 回调
*/
saveOriginateInfo: function (originateInfo, callback) {
var self = hollycrm.originate
var url = self.getInterfaceUrl()
var data = {
accountID: self.param.accountID,
token: self.tokenID,
Action: "saveOriginateInfo",
originateId: originateInfo.originateId,
originateUrl: originateInfo.originateUrl,
originateKey: originateInfo.originateKey,
originateType: originateInfo.originateType
}
self.sendAjax(url, data, function (res) {
if (res) {
if (!res.Succeed) {
console.error("保存来源信息失败!")
}
callback()// 保存失败也不阻塞后续的执行
}
})
},
/**
* 发送Ajax信息
* @param url 请求地址
* @param data 请求数据
* @param successFunc 请求成功回调
*/
sendAjax: function (url, data, successFunc) {
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
if (hollycrm.originate.serviceID === '8' && data.Action !== "locationServiceConf") {
url += "chat/" + data.Action;
}
xhr.open("POST", url, true)
if (hollycrm.originate.serviceID === '8' && data.Action !== "locationServiceConf") {
xhr.setRequestHeader("Content-Type", "application/json");
}
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var data = eval("(" + xhr.responseText + ")")
if (data.succeed && data.data) {
Object.assign(data, data.data);
data.Succeed = true
}
successFunc(data)
} else {
alert("服务器返回错误!")
}
}
}
xhr.send(JSON.stringify(data))
},
/**
* 获取getServiceConf
* @param id 账号id
* @param callback
*/
getServiceConf: function (callback) {
var self = hollycrm.originate
var url = self.getInterfaceUrl()
var data = {
Account: self.param.accountID,
Action: "locationServiceConf"
}
self.sendAjax(url, data, function (res) {
if (res.Succeed) {
hollycrm.originate.serviceID = res.serviceID;
hollycrm.originate.interfaceUrl = "k8s-im.7x24cc.com/newMedia_" + res.serviceID + "/";
callback()
return
} else {
console.error("获取服务配置失败失败!")
}
})
}
}
// 外部判断来源的js............................外部判断来源的js--end
/* ---------- 下面是企微活码相关的内容 ---------- */
var qrCode = "" // 二维码图片地址
var qrFormCode = "" // 表单后活码地址
var yinliu_url = "" // 小程序引流链接
async function getAccessToken() {// 企微活码,获取access_token
let res = await axios.get("https://a2.xiaomilaile.com/local-commonInte/accessToken?account=N000000001907&appid=xmpavkl4bgs4lihg&secret=120d0781-827c-4320-9104-47cb33a303ae")
return res.data.accessToken
}
async function getCode() { //右侧边栏生成企微活码
let accessToken = await getAccessToken()
const data = {
account: "N000000001907",
access_token: accessToken,
id: "5e89b46d-6a41-4dd0-8056-953f33708921",
website_keywords: website_keywords_string, //媒体摘要 包含计划 单元 关键词
website_url: website_url, //原始链接
website_promotion_media: website_promotion_media, //推广媒体 如 百度SEM baidu,sem
website_contact_channel: website_contact_channel, //联络渠道 如企业微信 wxwork
website_landing_page_type: website_landing_page_type, //落地页 hollycrm,pc
processLevel: "undefined,undefined",// 客户分级
welcome_msg: `您好,欢迎关注合力亿捷。
我们专注「营销服」一体化客户联络方案,拥有20年技术积累,产品覆盖零售、金融、汽车、餐饮和制造等行业。
您想了解哪个产品呢?
1、云呼叫中心
2、在线客服
3、工单系统
4、AI语音机器人
5、企微SCRM
6、其他`// 欢迎语
}
if (bd_vid) {
data.bd_vid = bd_vid
}
await axios({
method: "post",
url: "https://a2.xiaomilaile.com/local-commonInte/qywxExternal/get_multi_qrcode",
data: data
})
.then(res => {
qrCode = res.data.result.qr_code
})
.catch(err => {
console.log(err)
})
}
async function getFormCode() { //表单后企微活码
let accessToken = await getAccessToken()
const data = {
account: "N000000001907",
access_token: accessToken,
id: "ab3fa7b4-b92c-4c72-a181-0e18a58cc260",
fixedPhone: tool.getCookie("applyTel"),
"eec84370-7a47-11ea-adda-6b777015da5a": tool.getCookie("applyCity"),
fixedCusName: tool.getCookie("applyCom"),
website_keywords: website_keywords_string, //媒体摘要 包含计划 单元 关键词
website_url: website_url, //原始链接
website_promotion_media: website_promotion_media, //推广媒体 如 百度SEM baidu,sem
website_contact_channel: website_contact_channel, //联络渠道 如企业微信 wxwork
website_landing_page_type: website_landing_page_type, //落地页 hollycrm,pc
processLevel: "undefined,undefined",// 客户分级
welcome_msg: `您好,欢迎关注合力亿捷。
我们专注「营销服」一体化客户联络方案,拥有20年技术积累,产品覆盖零售、金融、汽车、餐饮和制造等行业。`,// 表单后欢迎语
extend_data: { formId: tool.getCookie("formId") } // A6对接表单id
}
if (bd_vid) {
data.bd_vid = bd_vid
}
await axios({
method: "post",
url: "https://a2.xiaomilaile.com/local-commonInte/qywxExternal/get_multi_qrcode",
data: data
})
.then(res => {
qrFormCode = res.data.result.qr_code
yinliu_url = res.data.result.yinliu_url // 用于表单后活码的引流
})
.catch(err => {
console.log(err)
})
}
async function toweixin() { // 点击跳转小程序活码
location.href = "https://work.weixin.qq.com/ca/cawcdec1a0cc0f1141";
// let accessToken = await getAccessToken()
// const data = {
// account: "N000000001907",
// access_token: accessToken,
// id: "32462733-4f95-492b-8f58-5fc498ecca35",
// website_keywords: website_keywords_string, //媒体摘要 包含计划 单元 关键词
// website_url: website_url, //原始链接
// website_promotion_media: website_promotion_media, //推广媒体 如 百度SEM baidu,sem
// website_contact_channel: website_contact_channel, //联络渠道 如企业微信 wxwork
// website_landing_page_type: website_landing_page_type, //落地页 website,hollycrm
// processLevel: "undefined,undefined"// 客户分级
// }
// if (bd_vid) {
// data.bd_vid = bd_vid
// }
// let param = new URLSearchParams()
// param.append("source", JSON.stringify(data))
// axios
// .post("/api/weixin/to_weixin.php", param)
// .then(res => {
// // console.log(res.data)
// if (IsMobile()) {
// window.location.href = res.data
// } else {
// alert("请在手机端打开")
// }
// })
// .catch(error => {
// console.log(error)
// })
}
function sendNotification(title, body, icon, callback) { // 浏览器通知
// 先检查浏览器是否支持
if (!("Notification" in window)) {
// IE浏览器不支持发送Notification通知!
return
}
if (Notification.permission === "denied") {
// 如果用户已拒绝显示通知
return
}
if (Notification.permission === "granted") {
//用户已授权,直接发送通知
notify()
} else {
// 默认,先向用户询问是否允许显示通知
Notification.requestPermission(function (permission) {
// 如果用户同意,就可以直接发送通知
if (permission === "granted") {
notify()
}
})
}
function notify() {
let notification = new Notification(title, {
icon: icon,
body: body
})
notification.onshow = function () {
setTimeout(function () {
notification.close()
}, 8000)
}
notification.onclick = function () {
notification.close()
window.focus()
callback && callback()
}
notification.onclose = function () { }
}
}
let mixins = {
data: {
headerCss: false, //导航样阴影css
mobileLogo: "logo.png", //移动端logo
mobileMenu: "menu_white.png", //移动端menu图片
mobileFixshow: true, //移动端咨询悬浮显示
show: false, //在线咨询大框
showWeekFlag: false, //上面的企微二维码
slideShow: false, //下面的企微码
getChatSlideShow: false, //在线咨询小弹窗
fixChatImgMsg: true, //人像上的1
chatText: "在线", //在线咨询文字
toastImg: "", //默认企微二维码
kefuMaxFlag: JSON.parse(sessionStorage.getItem("kefuMaxFlag")) || false, //客服最大化
kefuMuteFlag: JSON.parse(sessionStorage.getItem("kefuMuteFlag")) || false, //客服语音
kefuEndFlag: true
},
created() {
let self = this
if (sessionStorage.getItem("kefuOpenFlag") === "true") { //在线咨询打开后直接跳转到其它页面
self.showKefu()
}
if (sessionStorage.getItem("kefuOpenFlag") === "close") { //在线咨询关闭后跳转到其它页面
self.showOtherPageKefu()
}
setTimeout(() => { //20秒后显示在线咨询小弹窗
this.getChatSlideShow = true
}, 20000)
this.pushOcpcData() //推送ocpc数据
},
mounted() {
this.navActiveCss() //顶部导航css
this.changeNumber() //电话号码修改
this.openAgainKefu() //在线咨询通知提醒
window.addEventListener("scroll", this.showIcon) //顶部导航logo图片更换
},
methods: {
openAgainKefu() {//在线咨询提醒
let self = this
let i = 0
let timer
function show() {
//标题栏闪动
var title = document.title.replace("【 】", "").replace("【新消息】", "")
timer = setTimeout(function () {
if (i % 2 == 0) {
document.title = "【新消息】" + title
} else {
document.title = "【 】" + title
}
i++
show()
}, 600)
}
window.addEventListener("message", function (event) {
var data = event.data || {}
if (data.type === "newMessage") {
//如果收到新消息
var regInfo = data.data.Content
var regHtml = new RegExp("?[^>]*>", "gi")
if (regInfo.indexOf("emoji") >= 0 || regInfo.indexOf("&") >= 0) {
regInfo = regInfo
.replace(/<\s?img[^>]*>/gi, "[图片]")
.replace(/ /gi, " ")
.replace(/>/gi, ">")
.replace(/</gi, "<")
.replace(/&/gi, "&")
.replace(regHtml, "")
sendNotification("您有一条新消息", regInfo, "/assets/images/logo2.png")
} else {
if (data.data.Content.indexOf("
= 0) {
var notifyContent = data.data.Content.replace(/<\s?img[^>]*>/gi, "[图片]")
.replace(/ /gi, " ")
.replace(/>/gi, ">")
.replace(/</gi, "<")
.replace(/&/gi, "&")
.replace(regHtml, "")
sendNotification("您有一条新消息", notifyContent, "/assets/images/logo2.png")
} else {
sendNotification("您有一条新消息", data.data.Content, "/assets/images/logo2.png")
}
}
let kefuMuteFlag = sessionStorage.getItem("kefuMuteFlag") || "false"
if (!self.kefuMuteFlag && kefuMuteFlag === "false") {
var chatAudio = document.getElementById("chatAudio")
chatAudio.play()
}
clearTimeout(timer)
document.title = document.title.replace("【 】", "").replace("【新消息】", "")
show()
let kefuEndFlag = sessionStorage.getItem("kefuEndFlag") || "false"
if (!self.show && kefuEndFlag !== "true") {
// 不显示大框时, 过10秒再显示
let timeLimit = 10000
setTimeout(function () {
self.show = true
}, timeLimit)
}
}
})
window.onfocus = function () {
//窗口获得焦点时, 不闪动
clearTimeout(timer)
document.title = document.title.replace("【 】", "").replace("【新消息】", "")
}
document.onclick = function () {
clearTimeout(timer)
document.title = document.title.replace("【 】", "").replace("【新消息】", "")
}
},
showIcon() {//顶部导航css
if (/Mobile|Android|webOS|iPhone|iPad|Phone/i.test(navigator.userAgent) || screen.width <= 768) {
// 移动端
if (!!document.documentElement.scrollTop && document.documentElement.scrollTop > 50) {
this.headerCss = true
this.mobileLogo = "logo1.png"
} else {
this.headerCss = false
this.mobileLogo = "logo.png"
}
} else {
// PC端
if (!!document.documentElement.scrollTop && document.documentElement.scrollTop > 200) {
this.headerCss = true
} else {
this.headerCss = false
this.mobileLogo = "logo.png"
}
}
},
toTop() {//返回顶部
scrollTo({
left: 0,
top: 0,
behavior: 'smooth'
});
},
navActiveCss() { //顶部导航css
const linkMap = {
2: ["com/callcenter", "com/salesplat", "com/webchat", "com/order", "/scrm", "/AIplatform", "com/project", "/solution/customer", "/solution/progress", "/remote", "/AIcall", "com/robot"],
3: ["/solution/", "/telecom", "/gover", "/express", "/finance", "/auto"],
4: ["/wincase"],
5: ["/news", "/help"],
6: ["/aboutus"]
};
for (let key in linkMap) {
if (linkMap[key].some(item => link.indexOf(item) != -1)) {
$(`.first-wrap .first:nth-child(${key}) a.first-link`).addClass("hover");
}
}
},
changeNumber() { // 分渠道修改网站电话
/* ................. 分渠道修改网站电话 ................ */
if (sourceUrl && sourceUrl.indexOf("baidu.com") > -1 && sourceUrl.indexOf("medium=cpc") < 0) {
$(".telNum").each(function () {
$(this).text("4000-628-505") //百度SEO
})
}
if (sourceUrl && sourceUrl.indexOf("medium=cpc") > -1 && sourceUrl.indexOf("baidu") > -1) {
$(".telNum").each(function () {
$(this).text("4006-456-595") //百度SEM
})
}
if (sourceUrl && (sourceUrl.indexOf("aladdin") > -1 || location.href.indexOf("aladdin") > -1)) {
$(".telNum").each(function () {
$(this).text("4008-198-638") //阿拉丁
})
}
if (sourceUrl.indexOf("medium=cpc") < 0 && (sourceUrl.indexOf("media=360") > -1 || sourceUrl.indexOf("so.com") > -1 || sourceUrl.indexOf("source=360") > -1)) {
$(".telNum").each(function () {
$(this).text("4000-628-505") //360SEO
})
}
if (sourceUrl.indexOf("medium=cpc") > -1 && (sourceUrl.indexOf("media=360") > -1 || sourceUrl.indexOf("so.com") > -1 || sourceUrl.indexOf("source=360") > -1)) {
$(".telNum").each(function () {
$(this).text("4006-345-595") //360SEM
})
}
if (sourceUrl.indexOf("medium=cpc") > -1 && (sourceUrl.indexOf("media=sogou") > -1 || sourceUrl.indexOf("sogou.com") > -1)) {
$(".telNum").each(function () {
$(this).text("4006-345-595") //搜狗SEM
})
}
if (sourceUrl && (sourceUrl.indexOf("zhihu") > -1 || sourceUrl.indexOf("知乎") > -1 || sourceUrl.indexOf("%E7%9F%A5%E4%B9%8E") > -1)) {
$(".telNum").each(function () {
$(this).text("4006-240-256") //知乎
})
}
if (sourceUrl.indexOf("medium=cpc") > -1 && sourceUrl.indexOf("project") > -1) {
$(".telNum").each(function () {
$(this).text("4006-345-690") //项目管理页面SEM相关
})
}
if (navigator.userAgent.match(/(iPhone|iPod|Android|ios|iOS|iPad|Backerry|WebOS|Symbian|Windows Phone|Phone)/i)) {
$(".telNum").each(function () {
$(this).text("180-4353-0712") //移动端的
})
}
/* ---------- 移动端分渠道修改电话号码 ---------- */
if (sourceUrl && sourceUrl.indexOf("medium=cpc") > -1 && sourceUrl.indexOf("baidu") > -1 && IsMobile()) {
$(".telNum").each(function () {
$(this).text("4006-726-496") //百度SEM
$(this).attr("href", "tel:4006-726-496")
})
$(".telNumber").attr("href", "/apply?type=sem")
$(".telNumber").html('
免费试用')
// $(".telNumber").hide();
// $("#get_chat").css("borderRadius", "0.5rem")
}
axios({
method: "post",
url: "https://ipapi.co/json/"
}).then(res => {
var ipApiCity = res.data.city || ""
if (ipApiCity.indexOf("Shanghai") > -1) {
$(".telNum").each(function () {
$(this).text("021-61897000") //上海区域的
})
}
}).catch(err => {
console.log("??ip定位 err:", err)
})
/* ................. 分渠道修改网站电话end ................ */
},
removeChatImgMsg() {// 去除人像上的1
this.fixChatImgMsg = false
},
kefuMax() {//客服最大化
this.kefuMaxFlag = !this.kefuMaxFlag
sessionStorage.setItem("kefuMaxFlag", this.kefuMaxFlag)
},
kefuMute() {// 客服静音
this.kefuMuteFlag = !this.kefuMuteFlag
sessionStorage.setItem("kefuMuteFlag", this.kefuMuteFlag)
},
isWorkTime() { // 判断是否是工作时间
var date = new Date()
var minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()
var time = Number(date.getHours() + "" + minute)
return (900 <= time && time <= 1200) || (1330 <= time && time <= 1800)
},
createChatFrame() { // 创建聊天框
if (!$("#olchatframe")[0]) {
hollycrm.originate.getChatUrl(
{
channelID: "hollycrm.com-705d8d50-fa6c-11e6-9d96-b5920273913b",
accountID: "N000000001907"
},
function (callbackData) {
chatUrl1 = callbackData.chatUrl
chatUrl1 = chatUrl1.replace("http:", "https:")
var chatframe = document.createElement("iframe")
var framebox = document.getElementById("kefu_frame_box")
chatframe.id = "olchatframe"
chatframe.src = chatUrl1
framebox.appendChild(chatframe)
if (!document.getElementById("chatAudio")) {
var chatAudio = document.createElement("audio")
chatAudio.id = "chatAudio"
chatAudio.src = "/assets/images/msgcall.mp3"
document.body.appendChild(chatAudio)
}
}
)
}
},
async checkDuty() { //检查值班状态
try {
let res = await axios({
method: "post",
url: "/api/kefu/webchat.php"
})
if (res.data == "onduty") { //值班
return true
} else {
return false
}
} catch (err) {
console.log("?? checkDuty ~ err", err)
}
},
async showKefu() {//显示隐藏在线咨询
let self = this
self.chatText == "收起" ? (self.chatText = "在线") : (self.chatText = "收起")// 大咨询框显示与隐藏
self.removeChatImgMsg() // 去除人像上的1
self.getChatSlideShow = false // 隐藏小咨询框
let checkDuty = await self.checkDuty() // 检查值班状态
if (checkDuty && self.isWorkTime()) { // 工作时间,并且有人值班
self.show = !self.show
sessionStorage.setItem("kefuEndFlag", "false");
sessionStorage.setItem("kefuOpenFlag", self.show ? "true" : "close");
self.createChatFrame() // 打开在线
} else { // 非工作时间,或者没人值班
if (!self.toastImg) {
self.getQrCode() // 获取企微活码
}
self.show = false
self.showWeekFlag = !self.showWeekFlag
}
self.ocpcPush() // 在线ocpc推送
},
async showOtherPageKefu() {// 当用户点击了关闭再跳转到其它页面时,在线咨询在后台加载,但不显示
let self = this
if (!self.isWorkTime()) return
let checkDuty = await self.checkDuty()
if (checkDuty) {
self.show = false
self.createChatFrame() // 创建聊天框
}
},
closeFrame() {//关闭在线咨询
this.show = false
this.showWeekFlag = false
this.getChatSlideShow = false
this.removeChatImgMsg()
this.chatText = "在线"
sessionStorage.setItem("kefuOpenFlag", "close")
},
kefuEnd() {// 结束在线咨询
this.kefuEndFlag = true
this.show = false
this.showWeekFlag = false
this.getChatSlideShow = false
this.removeChatImgMsg()
this.chatText = "在线"
sessionStorage.setItem("kefuOpenFlag", "close")
sessionStorage.setItem("kefuEndFlag", "true")
},
chatSlideShow() {//在线咨询小框关闭
this.getChatSlideShow = false
this.removeChatImgMsg()
this.setTimeChatShow()
},
setTimeChatShow() {//关闭后小窗40s后再次弹出
let self = this
setTimeout(function () {
self.getChatSlideShow = true
}, 40000)
},
async slideClick() {//显示隐藏企微活码---点击
if (!this.toastImg) {
await this.getQrCode() // 获取企微活码
}
this.slideShow = !this.slideShow
},
async mouseoverSlideClick() {//显示企微活码---鼠标移入
if (!this.toastImg) {
await this.getQrCode() // 获取企微活码
}
this.slideShow = true
},
async mouseoutSlideClick() {//隐藏企微活码---鼠标移出
this.slideShow = false
},
async getQrCode() {// 获取企微活码
await getCode()
this.toastImg = qrCode
},
pushOcpcData() {// 记录ocpc数据
if (!bd_vid || sessionStorage.getItem("ocpcFlag") || tool.getCookie("ocpcFlag")) {
return
}
let param = new URLSearchParams()
param.append("query", "set")
param.append("site", "呼叫中心站")
param.append("url", sourceUrl)
param.append("bd_vid", bd_vid)
param.append("keywords", website_keywords)
axios({
method: "post",
url: "https://site.hollycrm.com/ocpc/index.php",
data: param
}).then(res => {
sessionStorage.setItem("ocpcFlag", "true")
tool.setCookie("ocpcFlag", "true", 0.01)
}).catch(err => {
console.log(err)
})
},
async ocpcPush() {// ocpc推送到百度
if (!bd_vid) return // 如果没有bd_vid,不推送
if (sessionStorage.getItem("webchat_ocpc_push") == "true" || tool.getCookie("webchat_ocpc_push") == "true") { // 如果已经推送过,不推送
return
}
var queryData = {
query: "queryByVid",
site: "呼叫中心站",
"bd_vid": bd_vid,
}
queryData = new URLSearchParams(queryData)
var queryRes = await axios({
method: "post",
url: "https://site.hollycrm.com/ocpc/index.php",
data: queryData
}).then(res => {
return res.data
}).catch(err => {
return err
})
if (queryRes.success && queryRes.row == 0) {
return
}
var data = {
"query": "back",
"site": "呼叫中心站",
"bd_vid": bd_vid,
"url": sourceUrl,
"convertType": 1,
}
data = new URLSearchParams(data)
var pushData = axios({
method: "post",
url: "https://site.hollycrm.com/ocpc/ocpc.php",
data: data
}).then(res => {
return res.data
}).catch(err => {
return err
})
if (pushData.success == true) {
sessionStorage.setItem("webchat_ocpc_push", "true")
tool.setCookie("webchat_ocpc_push", "true", 0.01)
}
}
}
}