gswz/SFHY/static/js/agent.js

362 lines
10 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 节流函数
function throttle(handle, wait) {
let lastTime = 0;
return function (e) {
let nowTime = new Date().getTime()
if (nowTime - lastTime > wait) {
handle();
lastTime = nowTime;
}
}
}
/* ................... 防抖函数 ................... */
function debounce(func, delay) {
let timeout
return function () {
clearTimeout(timeout) // 如果持续触发,那么就清除定时器,定时器的回调就不会执行。
timeout = setTimeout(() => {
func.apply(this, arguments)
}, delay)
}
}
/* .................. 获取链接参数 .................. */
function getUrlData(name) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == name) {
return decodeURI(pair[1]);
}
}
return (false);
}
if (getUrlData("btn") && getUrlData("btn") === "index") {
sessionStorage.setItem("agent", "index");
}
var channel = "PC端";
if (window.navigator && (/Mobile|Android|webOS|iPhone|iPad|Phone/i.test(navigator.userAgent))) {
channel = "移动端";
}
// 按钮位置和当前链接
var btnPosition = "代理页面按钮";
var curLink = sessionStorage.getItem("currentLink") || tool.getCookie("currentLink");
if (curLink == "") {
curLink = link;
}
var vm = new Vue({
el: "#app",
data: {
tel: '',
i: 2,
aboutFix: "",
activeIndex: 2,
solveSwiper: "",
teleManaI: 2,
sscManaI: 1,
codeText: '获取验证码',
count: 30,
timer: null,
tel: "",
cityValue: "",
city: "",
com: "",
typec: "代理页面",
telCodeStatus: false,
codeStatus: false,
telTips: "",
codeTips: "",
comTips: "",
cityTips: "",
buttonAble: false,
code: "",
state: "0",
right: "",
imgScrollFlag: null,
},
mounted() {
if (screen.availWidth !== 1280 && window.devicePixelRatio !== 1.5) {
new WOW().init();
};
this.allSwiper()
window.addEventListener("scroll", this.aboutFixClass)
// this.imgScroll()
},
mixins: [mixins],
methods: {
aboutFixClass() {
if (
!!document.documentElement.scrollTop &&
document.documentElement.scrollTop > 200 || document.body.scrollTop > 200
) {
this.headerCss = false
this.aboutFix = "about-fix";
} else {
this.aboutFix = "";
}
},
imgScroll() {
let _this = this;
var dome = document.querySelector(".agent-industry-box");
var dome1 = document.querySelector(".agent-industry-box1");
var dome2 = document.querySelector(".agent-industry-box2");
var speed = 10;//设置向上轮动的速度
dome2.innerHTML = dome1.innerHTML;//复制节点
function moveTop() {
if (dome2.offsetWidth - dome.scrollLeft <= 0) {
dome.scrollLeft -= dome1.offsetWidth
} else {
dome.scrollLeft++;
}
}
this.imgScrollFlag = setInterval(moveTop, speed);
dome.onmouseover = function () {
clearInterval(_this.imgScrollFlag);
}
dome.onmouseout = function () {
_this.imgScrollFlag = setInterval(moveTop, speed);
}
},
solveTab(i) {
this.i = i;
var j = i - 1;
this.solveSwiper.slideTo(j, 1000, false);
},
teleMana(i) {
this.teleManaI = i;
},
sscTab(i) {
this.sscManaI = i;
},
allSwiper() {//swiper
if (screen.width <= 768) { //名企证言轮播
var comSwiper = new Swiper('.com-swiper', {
initialSlide: 1,//初始化时slide的索引
slidesPerView: 'auto',
slideToClickedSlide: true,
centeredSlides: true,
loop: true, // 循环模式选项
autoplay: {
delay: 3000,
disableOnInteraction: false
},
pagination: {
el: '.swiper-pagination',
clickable: true,
}
})
} else {
new Swiper('.com-swiper', {
// initialSlide: 1,//初始化时slide的索引
slidesPerView: 3,
// spaceBetween: 30,
slideToClickedSlide: true,
centeredSlides: true,
loop: true, // 循环模式选项
autoplay: {
delay: 3000,
disableOnInteraction: false
},
pagination: {
el: '.swiper-pagination',
clickable: true,
}
})
}
},
verifyTel: debounce(function () {
var RegExp = /^1[3-9][0-9]{9}$/;
if (vm.tel.trim() == "") {
vm.telTips = "请输入您的手机号";
vm.telCodeStatus = false;
} else if (!RegExp.test(vm.tel.trim())) {
vm.telTips = "请输入正确的手机号码";
vm.telCodeStatus = false;
} else {
vm.telTips = "";
vm.telCodeStatus = true;
}
}, 500),
getCode: throttle(function () {
btnPosition = "代理页面立即加入按钮"
var RegExp = /^1[3-9][0-9]{9}$/;
if (vm.tel.trim() == "") {
Swal.fire({
title: '请输入您的手机号',
showConfirmButton: false,
timer: 1500
})
return false
} else if (!RegExp.test(vm.tel.trim())) {
Swal.fire({
title: '请输入正确的手机号码',
showConfirmButton: false,
timer: 1500
})
} else {
vm.tips = "";// 验证通过
vm.timer = setInterval(() => {
if (vm.count > 0 && vm.count <= 30) {
vm.buttonAble = true
vm.count--
vm.codeText = vm.count + "秒后重新获取"
} else {
vm.buttonAble = false;
vm.codeText = "获取验证码"
clearInterval(vm.timer);
vm.timer = null;
vm.count = 30;
}
}, 1000);
$.ajax({
url: "/apply/apply-code.php",
type: "post",
data: {
tel: vm.tel,
btn: btnPosition,
curLink: curLink,
protype: vm.typec,
sourceLink: sourceUrl,
website_keywords: website_keywords,// 关键词
channel: channel
},
success: function (res) {
if (res == "toomuch") {
alert("请匆频繁提交!感谢您的理解和合作可通过在线客服或电话与我们取得联系")
return
}
console.log("第一步推送成功!");
}
});
vm.actionId = vm.tel + "-" + Math.floor(Math.random() * 1000000);
$.ajax({
url: "/api/sendMsg.php",
type: 'POST',
data: {
telNum: vm.tel,
actionId: vm.actionId,
info: 'holly.400',
time: new Date().getTime(),
actionName: "呼叫中心站试用申请",
verifyCode: ""
},
success: function (res) {
if (res.state == "sent") {//发送验证码成功并且成功写入数据库返回sent
return (vm.codeTips = "验证码已发送请注意查收");
} else {//其他不成功的情况
return (vm.codeTips = "发送失败请稍后再试");
}
}
});
}
}, 1500),
verifyCode: debounce(function (event) {
if (vm.tel == "") {
vm.codeStatus = false;
return (vm.telTips = "请输入手机号码");
} else if (event.target.value == "") {
vm.codeStatus = false;
return (vm.codeTips = "请输入验证码");
} else if (event.target.value.length != 4) {
vm.codeStatus = false;
return (vm.codeTips = "请输入正确的验证码");
} else {
vm.codeTips = ""
}
$.ajax({
url: "/api/verifyMsg.php",
type: 'post',
data: {
telNum: vm.tel,
actionId: vm.actionId,
actionName: "呼叫中心站试用申请",
code: vm.code
},
success: function (res) {
if (res.state == "vSucceed") {
$("#tel").attr({ readonly: "readonly" });
$("#getCode").attr({ disabled: "true" });
vm.$data.right = true;
vm.$data.codeTips = "验证码验证成功";
setTimeout(() => {
vm.$data.codeTips = "";
vm.codeStatus = true;
}, 500);
} else if (res.state == "vFail") {
event.target.focus();
vm.$data.right = false;
vm.codeStatus = false;
return (vm.$data.codeTips = "验证码错误请重试");
}
}
});
}, 1500),
verifyCom: debounce(function () {
if (vm.com.trim() == "") {
vm.comTips = "请输入您的公司名称";
} else { vm.comTips = ""; }
}, 1500),
verify: function () {
btnPosition = "代理页面立即加入按钮"
var mobilePattern = /^1[3-9][0-9]{9}$/;
if (vm.tel.trim() == "") {
Swal.fire({
title: '请输入您的手机号',
showConfirmButton: false,
timer: 1500
})
return false;
} else if (!mobilePattern.test(vm.tel.trim())) {
Swal.fire({
title: '请输入正确的手机号码',
showConfirmButton: false,
timer: 1500
})
return false;
} else if (vm.code.trim() == "") {
Swal.fire({
title: '请输入验证码',
showConfirmButton: false,
timer: 1500
})
return false;
} else if (vm.code.trim().length != 4) {
Swal.fire({
title: '请输入正确的验证码',
showConfirmButton: false,
timer: 1500
})
return false;
} else if (!vm.right) {
Swal.fire({
title: '请输入正确的验证码',
showConfirmButton: false,
timer: 1500
})
return false;
} else if (vm.com.trim() == "") {
Swal.fire({
title: '请输入公司名',
showConfirmButton: false,
timer: 1500
})
return false;
}
else {
vm.tips = "";
tool.setCookie("applyTel", vm.tel, 1);
tool.setCookie("applyCom", vm.com, 1);
tool.setCookie("applyCity", vm.city, 1);
if (channel === "移动端") {
document.agent_mobile.submit();
} else {
document.agent.submit();
}
}
}
},
beforeDestroy() {
clearInterval(_this.imgScrollFlag);
},
});