Files
2025-04-21 17:49:17 +08:00

258 lines
10 KiB
JavaScript
Raw Permalink 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.
import { parseInt } from 'lodash';
import CctvsJs from '../class/cctv';
import ConfigsJs from '../class/config';
import { downloadImage,outPutLog,layerPopup } from '../public/commonFun.js';
const Configs = new ConfigsJs();
// 首页弹窗
const IndexCctv = {
intPopUpsIndex: 0,
init() {
const Cctvs = new CctvsJs();
let CctvTipIndex = Cctvs.getDataByWhere(106, 211, [301]);
console.log(CctvTipIndex)
let CctvTipIndexDom = `
<!--首页弹窗遮挡层-->
<div class="index-center-tc-zdc j-close-occlusion-layer"></div>
`
//首页弹窗广告数量
if (document.querySelector(".index-center-tc-num") ) {
document.querySelector(".index-center-tc-num").innerText = (CctvTipIndex.length-1)
}
/**
* 首页弹窗
*
*/
CctvTipIndex.forEach((item, index) => {
if (item) {
if (item.title == '域名弹窗' && index == 0) {
CctvTipIndexDom += this.CreateCctvTipIndexPupopDomainFun(item, index)
}else{
CctvTipIndexDom += this.CreateCctvTipIndexFun(item, index);
}
}
})
//首页弹窗广告
if (!this.isFirstLoadHomeDomanFun() && CctvTipIndex.length>0 ) {
$("body.home-web").append(CctvTipIndexDom)
}
this.addEvent()
},
/**
* 绑定点击事件-初始化
*/
addEvent(){
// 保存相册
$(".j-genimg").on('click', function () {
if (!window.HTMLCanvasElement) {
layerPopup("请截图保存!", 3)
return;
}
const layerIndexTc = layerPopup("拼命保存中。。");
html2canvas(document.querySelector(".index-center-tc"), {
useCORS: true, // 启用跨域配置
logging: true, // 启用日志记录以进行调试
backgroundColor: null // 保持透明背景(如果需要)
}).then(canvas => {
var clipImgBase64 = canvas.toDataURL();
// 生成图片
var clipImg = new Image();
clipImg.src = clipImgBase64;
downloadImage(clipImgBase64);
layer.close(layerIndexTc);
}).catch(err => {
console.error("html2canvas 出错:", err);
layer.close(layerIndexTc);
layerPopup("请手动截图保存!", 3)
});
});
// 关闭弹窗
$(".j-close-index-pop-ups").on('click', (event) => {
let intPopUpsIndex = $(event.currentTarget).attr('data-index')
this.closeIndexTcfun(intPopUpsIndex)
})
// 关闭遮挡层
$(".j-close-occlusion-layer").on('click', () => {
console.log(this.intPopUpsIndex)
this.closeIndexTcfun(this.intPopUpsIndex)
})
},
/**
*
* 创建首页弹窗广告
* h5
**/
CreateCctvTipIndexPupopDomainFun(data, index) {
if (typeof data == 'object') {
if (data.title == '域名弹窗' && index == 0) {
return `
<div class="index-center-tc index-center-tc-index${index} df-index-center-tc df-index-center-tc" >
<div style="width:300px">
<i class="index-center-tc-close icon iconfont icon-shanchu1 j-close-index-pop-ups" data-index="${index}" ></i>
<a>
<img class="index-center-tc-bjimg jqlazyload" src="${data.cover}" data-original="${data.cover}" />
</a>
<div class="index-center-tc-op-domain df-top-domain j-share" data-sharedom=".index-center-tc-op-domain-text" >
<p class="index-center-tc-op-domain-text">${Configs.get('STANDBY_URL')}</p>
</div>
<!--
<div class="index-center-tc-yj-domain tc-domain j-share" data-sharedom=".index-center-tc-yj-domain-text" >
<p class="index-center-tc-yj-domain-text">${Configs.get('VIP_DOMAIN_1')}</p>
</div>
-->
<div class="index-center-tc-vip1-domain tc-domain j-share" data-sharedom=".index-center-tc-vip1-domain-text" >
<p class="index-center-tc-vip1-domain-text">${Configs.get('VIP_DOMAIN_1')}</p>
</div>
<div class="index-center-tc-vip2-domain tc-domain j-share" data-sharedom=".index-center-tc-vip2-domain-text" >
<p class="index-center-tc-vip2-domain-text">${Configs.get('VIP_DOMAIN_2')}</p>
</div>
<div class="index-center-tc-vip3-domain tc-domain j-share" data-sharedom=".index-center-tc-vip3-domain-text" >
<p class="index-center-tc-vip3-domain-text">${Configs.get('VIP_DOMAIN_3')}</p>
</div>
<a class="index-center-tc-fs1-domain tc-domain" href="${Configs.get('TG_URL', null)}" target="_blank">
<p class="index-center-tc-fs1-domain-text" >${Configs.get('TG_URL', null)}</p>
</a>
<a class="index-center-tc-fs2-ios tc-domain" href="https://f5d3.xyz" target="_blank">
<p ><!--点击查看解决苹果手机无法加入和查看群内容--></p>
</a>
<div class="index-center-tc-new-mail tc-domain j-share" data-sharedom=".index-center-tc-new-mail-text">
<p class="index-center-tc-new-mail-text">${Configs.get('NEW_EMAIL')}</p>
</div>
<div class="index-center-tc-btn">
<div class="index-center-tc-btn-left j-genimg" ></div>
<div class="index-center-tc-btn-right j-share" data-sharedom=".yjfz-nr-dv" ></div>
</div>
<div class="yjfz-nr-dv">
官方永久域名:<br>
${Configs.get('VIP_DOMAIN_1')}<br>
你的VIP专属域名<br>
${Configs.get('VIP_DOMAIN_1')}<br>
${Configs.get('VIP_DOMAIN_2')}<br>
${Configs.get('VIP_DOMAIN_3')}<br>
官方万人粉丝群:<br>
${Configs.get('TG_URL')}<br>
官方自动回复最新邮箱地址:<br>
${Configs.get('NEW_EMAIL')}<br>
</div>
</div>
</div>
`
}
}
},
/**
*
* 创建首页弹窗广告
* h5
**/
CreateCctvTipIndexFun(data, index) {
if (typeof data == 'object') {
//index++
//data.href = framt_cctv_url(data.href,secretUrl)
let strStyle = `style="display: none;"`
if(index == 0){
strStyle = `style="display: block;"`
}
return `
<div class="index-center-tc index-center-tc-index${index}" ${strStyle}>
<div style="width:300px">
<i class="index-center-tc-close icon iconfont icon-shanchu1 j-close-index-pop-ups" data-index="${index}"></i>
<a rel="nofollow" class="j-cctv-click" data-href="${data.href}" data-id="${data.id}" data-onsite-or-offsite="${data.onsite_or_offsite}" >
<img class="index-center-tc-bjimg jqlazyload" src="${data.cover}" data-original="${data.cover}" alt="" />
</a>
</div>
</div>
`
}
},
/*
* 检测是否n分钟内是否访问过访问首页
* intMinute 分钟
*/
isFirstLoadHomeDomanFun(intMinute = Configs.get('HOMEPAGE_LOAD_POPUPS_NUM')) {
let currentDomain = document.domain
let isFirstLoadHome = localStorage.getItem("isFirstLoadHome");
let isFirstLoadHomeTime = localStorage.getItem("isFirstLoadHomeTime") ? localStorage.getItem("isFirstLoadHomeTime") : 0;
isFirstLoadHomeTime = Number(isFirstLoadHomeTime)
let timestamp = new Date().getTime();
let timeLeft = timestamp - isFirstLoadHomeTime
outPutLog(currentDomain)
outPutLog(isFirstLoadHome)
outPutLog(isFirstLoadHomeTime)
outPutLog(timestamp)
outPutLog(timeLeft + '===' + intMinute * 60 * 1000)
if (isFirstLoadHome == currentDomain && timeLeft <= intMinute * 60 * 1000) {
outPutLog('非首次访问')
return true
} else {
outPutLog('首次访问')
localStorage.setItem("isFirstLoadHome", currentDomain);
localStorage.setItem("isFirstLoadHomeTime", timestamp);
return false
}
},
//点击 关闭按钮
closeIndexTcfun(intIndex) {
let intPopusTotal = document.querySelector(".index-center-tc-num").innerText //一共几个弹窗
intIndex = parseInt(intIndex)
intPopusTotal = parseInt(intPopusTotal)
console.log(intPopusTotal)
console.log(intIndex)
if (intIndex >= intPopusTotal) {
//最后一个弹窗才关闭遮挡层
let DomOcclusionLayer = document.querySelector(".index-center-tc-zdc")
DomOcclusionLayer.setAttribute("style", "display:none!important");
//关闭最后一个弹窗
let strClassName = ".index-center-tc-index" + intIndex
let DomPupous = document.querySelector(strClassName)
DomPupous.setAttribute("style", "display:none!important");
} else {
//关当前弹窗
let strCurrentClassName = ".index-center-tc-index" + intIndex
let DomCurrentPupous = document.querySelector(strCurrentClassName)
DomCurrentPupous.setAttribute("style", "display:none!important");
//展示下一个弹窗
let strNextClassName = ".index-center-tc-index" + (intIndex += 1)
let DomNextPupous = document.querySelector(strNextClassName)
DomNextPupous.setAttribute("style", "display:block");
}
this.intPopUpsIndex = intIndex++
}
}
export default IndexCctv;