gswz/SFHY/static/js/price.js

320 lines
9.3 KiB
JavaScript
Raw Normal View History

2024-02-28 14:35:44 +08:00
// 节流函数
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);
}
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;
}
console.log("按钮位置+当前链接---" + btnPosition + "---" + curLink);
console.log("🚀 sourceUrl---", sourceUrl)
var vm = new Vue({
el: "#app",
data: {
advanI: 1,
problemI: 1,
codeText: '获取验证码',
count: 30,
timer: null,
tel: "",
cityValue: "",
city: "",
com: "",
typec: "价格页面",
telCodeStatus: false,
codeStatus: false,
telTips: "",
codeTips: "",
comTips: "",
cityTips: "",
buttonAble: false,
code: "",
state: "0",
options: provinceArr,
selectedOptions: [],
right: "",
like: [true, true, true, true, true, true],
dislike: [true, true, true, true, true, true],
tabV: 1,
priceDetailShowFlag: false,
priceDetailCloseShowFlag: false,
},
mixins: [mixins],
methods: {
/* ------- 显示关闭价格详情关闭按钮 ------- */
priceDetailCloseShow() {
let _this = this;
let priceDetail = document.querySelector(".price-detail-wrap");
if (priceDetail.scrollTop > 300) {
_this.priceDetailCloseShowFlag = true;
} else {
_this.priceDetailCloseShowFlag = false;
}
},
showPriceDetail() {
this.priceDetailShowFlag = true;
document.documentElement.style.overflowY = "hidden"
},
closePriceDetail() {
this.priceDetailShowFlag = false;
document.documentElement.style.overflowY = "auto"
},
problemLike(i) {
this.$set(this.like, i, false);
this.$set(this.dislike, i, true);
},
problemDislike(i) {
this.$set(this.dislike, i, false);
this.$set(this.like, i, 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,
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),
verifyCity: debounce(function () {
if (vm.city.trim() == "") {
vm.cityTips = "请输入您所在的城市";
} else { vm.cityTips = ""; }
}, 1500),
handleChange() {
for (let i = 0; i < this.selectedOptions.length; i++) {
this.city = this.city + " " + CodeToText[this.selectedOptions[i]];
}
},
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 (!this.city) {
Swal.fire({
type: 'error',
height: "300",
title: '请先选择地区',
showConfirmButton: false,
timer: 1500
})
vm.cityTips = "请输入您所在的城市";
return false;
}
else {
vm.tips = "";
tool.setCookie("applyTel", vm.tel, 1);
tool.setCookie("applyCom", vm.com, 1);
tool.setCookie("applyCity", vm.city, 1);
document.agent.submit();
}
}
}
});
if (screen.availWidth !== 1280 && window.devicePixelRatio !== 1.5) {
AOS.init({
disable: "mobile",
duration: 600,
delay: 50,
easing: 'ease-in-out'
})
} else {
AOS.init({
disable: true,
duration: 600,
delay: 50,
easing: 'ease-in-out'
})
}