Files
peko-h5/view/peko/activity/act-qixi/js/index.js
2023-09-01 15:20:36 +08:00

504 lines
13 KiB
JavaScript

let browser = checkVersion()
let info = {}
let baseUrl = ''
let timer //定时器
let timer2
let rankType = 1 //1为日榜 2为总榜
let canIncrease = true
let isFirstLoad = true
//日榜 总榜 只有第一次点击的时候会请求接口
let dayOneTime = true
let totalOneTime = true
let dataList = []
let dataListD = []
let dataListT = []
// new VConsole
if (EnvCheck() == 'test') {
// new VConsole;
baseUrl = 'http://beta.api.pekolive.com/'
} else {
baseUrl = 'https://api.pekolive.com/'
}
let i = 0
let a = true
$(function () {
//埋点测试
_hmt.push(['_trackEvent', 'client', 'click', 'qixi']);
let DMPageNum = 1;
let DMPageSize = 50;
let dayRankPageNum = 1; //日榜 总榜的页数要区分
let totalRankPageNum = 1;
let rankPageSize = 5;
let t = 0
function getId() {
if (browser.app) {
if (browser.ios) {
var allcookies = document.cookie;
var $uid = allcookies.match(/\d+/);
info.uid = $uid[0]
window.webkit.messageHandlers.getTicket.postMessage(null);
// window.webkit.messageHandlers.getUid.postMessage(null);
} else if (browser.android) {
if (androidJsObj && typeof androidJsObj === 'object') {
info.uid = parseInt(window.androidJsObj.getUid());
info.ticket = window.androidJsObj.getTicket();
// console.log(40, info.uid, info.ticket);
}
}
} else {
info.uid = 936365;
info.ticket = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aWNrZXRfdHlwZSI6bnVsbCwidWlkIjo5MzYzNjUsInRpY2tldF9pZCI6IjU2NDRmMTMwLTFjZDctNDM3OS05MDM4LTEwNTZlMjBhNGIxNiIsImV4cCI6MzYwMCwiY2xpZW50X2lkIjoiZXJiYW4tY2xpZW50In0.ZkINRzz8KG5wSVJ7_01ys-Nn0TlyySYmMlFhzvgMM0w'
}
}
//获取告白墙弹幕
function getMessageWall(DMPageNum = 1) {
$.ajax({
type: 'GET',
url: baseUrl + 'sweetActivity/messageWall',
data: {
page: DMPageNum,
pageSize: DMPageSize
},
headers: {
pub_uid: info.uid,
pub_ticket: info.ticket,
// pub_uid: 936365,
// pub_ticket: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aWNrZXRfdHlwZSI6bnVsbCwidWlkIjo5MzYzNjUsInRpY2tldF9pZCI6IjJiMjJiYmZlLWU1YWMtNDY3Ni1hYWRiLTM2YWMwZTYwMmY4OSIsImV4cCI6MzYwMCwiY2xpZW50X2lkIjoiZXJiYW4tY2xpZW50In0.g08aW8Y7SSIDnqwdbfMfowQwlgk75DXAR2EIk3K5Ugk',
},
success(res) {
if (res.code == 200) {
// console.log(res.data);
let data = res.data;
if(data.length < DMPageSize){
isEnd = true
} else {
getMessageWall(++DMPageNum)
}
// danmu = data.map((item) => {
// return {
// message: item.message
// }
// });
danmu.push(...data)
if(DMPageNum === 1) {
damuPool = [...data];
} else {
damuPool.push(...data)
}
// console.log(55555, damuPool);
setData();
// renderDM(res.data)
} else {
getMessageWall(++DMPageNum)
}
},
error(){
// getMessageWall(++DMPageNum)
}
})
}
//获取专属墙数据
function getRankList(page, rankType) {
$.ajax({
type: 'GET',
url: baseUrl + 'sweetActivity/rankList',
data: {
page: page,
pageSize: rankPageSize,
rankType: rankType //日榜1 总榜2
},
headers: {
pub_uid: info.uid,
pub_ticket: info.ticket,
// pub_uid: 936365,
// pub_ticket: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aWNrZXRfdHlwZSI6bnVsbCwidWlkIjo5MzYzNjUsInRpY2tldF9pZCI6IjJiMjJiYmZlLWU1YWMtNDY3Ni1hYWRiLTM2YWMwZTYwMmY4OSIsImV4cCI6MzYwMCwiY2xpZW50X2lkIjoiZXJiYW4tY2xpZW50In0.g08aW8Y7SSIDnqwdbfMfowQwlgk75DXAR2EIk3K5Ugk',
},
success(res) {
// console.log(res);
if (res.code == 200) {
if (res.data.length) {
if(rankType == 1){
// listDay = res.data
// dataList.push(...listDay)
dataListD.push(...res.data)
renderRankList(rankType);
if(res.data.length === rankPageSize){
canIncrease = true
}else{
// console.log(333);
canIncrease = false
dataListD = dataListD.slice(0, (page - 1) * rankPageSize)
}
}else{
// listTotal = res.data
// dataList.push(...listTotal)
dataListT.push(...res.data)
renderRankList(rankType);
if(res.data.length === rankPageSize){
canIncrease = true
}else{
canIncrease = false
dataListT = dataListT.slice(0, (page - 1) * rankPageSize)
}
}
// dataList.push(...res.data)
// renderRankList(rankType);
// if(res.data.length === rankPageSize){
// canIncrease = true
// }else{
// canIncrease = false
// dataList = dataList.slice(0, (pageNum - 1) * rankPageSize)
// }
}
// else {
// canIncrease = false
// if (!isFirstLoad) {
// $('.toast').html('暂时没有更多...').fadeIn(30).fadeOut(1000)
// }
// }
else{
canIncrease = false
}
}
},
error(){
$('.toast').html('网络异常,请检查您的网络后再试').fadeIn(30).fadeOut(3000)
}
})
}
getId()
// initDM()
setTimeout(() => {
getMessageWall()
if(new Date().getDate() >= 25){
rankType = 2
getRankList(totalRankPageNum, rankType)
change()
}else{
getRankList(dayRankPageNum, rankType)
}
}, 50)
function change () {
totalOneTime = false
$('.btn-item').eq(1).css('background-image', "url('./images/btn-list-active.png')")
$('.btn-item').eq(0).css('background-image', "url('./images/btn-list.png')")
$('.totalRank').css('display', 'block')
$('.dayRank').css('display', 'none')
clearTimeout(timer)
$('.count-down').html('活动已结束<br>榜单仅做展示')
}
let damuPool = [];
let danmu = [];
// 弹幕
function setData() {
// if(damuPool.length * 3000 - 1000 <= t){
// getMessageWall(++DMPageNum)
// return
// }
// console.log(damuPool);
// setTimeout(() => {
// renderDM(danmushoot);
// setData();
// }, 3000);
if(!timer2){
timer2 = setInterval(() => {
if(!danmu.length){
danmu = [...damuPool]
}
if (isEnd && danmu.length < 5){
DMPageNum = 1
getMessageWall(DMPageNum)
isEnd =false
}
let danmushoot = danmu.shift();
if(danmushoot){
renderDM(danmushoot);
}
}, 250);
}
}
// 初始化
var danmaku = new Danmaku({
container: document.getElementById('my-container'),
speed: 100,
})
function renderDM(item) {
let style = {}
if(item.sweetValue >= 52){
style = {
fontSize: 26 / 75 + 'rem',
color: '#ffffff',
padding: '0.2rem 0.4rem 0.2rem 0.8rem',
border: '1px solid #96005C',
borderRadius: '0.4rem',
// backgroundColor: '#FF93CD',
background: "#FF608A url('./images/danmu-love.png') no-repeat 5px 5px/20px 20px"
}
}else{
style = {
fontSize: 26 / 75 + 'rem',
color: '#ffffff',
padding: '0.2rem 0.4rem',
border: '1px solid #C94195',
borderRadius: '0.4rem',
backgroundColor: '#FF94CE'
}
}
danmaku.emit({
text: item.message,
style
})
// data.map((item, index) => {
// danmaku.emit({
// text: item.message,
// style: {
// fontSize: 26 / 75 + 'rem',
// color: '#ffffff',
// padding: '0.2rem 0.4rem',
// border: '1px solid #C94195',
// borderRadius: '0.4rem',
// background: '#FF93CD'
// }
// })
// })
// setTimeout(() => {
// if (DMPageNum > 4) {
// DMPageNum = 1
// getMessageWall(DMPageNum)
// } else {
// getMessageWall(++DMPageNum)
// }
// }, 3000)
}
//渲染专属墙榜单
function renderRankList(rankType) {
if(rankType === 1){
//日榜
render(dataListD, rankType)
}else{
//总榜
render(dataListT, rankType)
}
// let arr = dataList.map((item, index) => {
// return `
// <li>
// <div class="num">${index + 1}</div>
// <div class="message-obj">
// <div class="sender">
// <img src="${item.sendAvatar}" alt="" class="avadar" data-uid='${item.sendUid}'>
// <span class="nickname">${item.sendNick.length > 5 ? item.sendNick.slice(0, 5) + '...' : item.sendNick}</span>
// </div>
// <div class="love-info">
// <span>爱心值</span>
// <img src="./images/love.png" alt="">
// <span class="love-value">${item.sweetValue}</span>
// </div>
// <div class="receiver">
// <img src="${item.recvAvatar}" alt="" class="avadar" data-uid='${item.recvUid}'>
// <span class="nickname">${item.recvNick.length > 5 ? item.recvNick.slice(0, 5) + '...' : item.recvNick}</span>
// </div>
// </div>
// <p class="message-content">${item.message}</p>
// </li>
// `
// })
// let str = arr.join('')
// if (rankType === 1) {
// $('.totalRank').css('display', 'none')
// $('.dayRank').css('display', 'block')
// $('.dayRank')[0].innerHTML = str
// } else if (rankType === 2) {
// $('.dayRank').css('display', 'none')
// $('.totalRank').css('display', 'block')
// $('.totalRank')[0].innerHTML = str
// }
}
function render(data, rankType){
let str = data.map((item, index) => {
return `
<li>
<div class="num">${index + 1}</div>
<div class="message-obj">
<div class="sender">
<img src="${item.sendAvatar}" alt="" class="avadar" data-uid='${item.sendUid}'>
<span class="nickname">${item.sendNick.length > 5 ? item.sendNick.slice(0, 5) + '...' : item.sendNick}</span>
</div>
<div class="love-info">
<span>爱心值</span>
<img src="./images/love.png" alt="">
<span class="love-value">${item.sweetValue}</span>
</div>
<div class="receiver">
<img src="${item.recvAvatar}" alt="" class="avadar" data-uid='${item.recvUid}'>
<span class="nickname">${item.recvNick.length > 5 ? item.recvNick.slice(0, 5) + '...' : item.recvNick}</span>
</div>
</div>
<p class="message-content">${item.message}</p>
</li>
`
}).join('')
if (rankType === 1) {
$('.totalRank').css('display', 'none')
$('.dayRank').css('display', 'block')
$('.dayRank')[0].innerHTML = str
} else if (rankType === 2) {
$('.dayRank').css('display', 'none')
$('.totalRank').css('display', 'block')
$('.totalRank')[0].innerHTML = str
}
}
//跳转到 寄语 页面
$('.confession-window').on('click', function () {
$(location).attr('href', 'message.html')
})
//规则弹窗
$('.btn-regular').on('click', function () {
$('.shade-mask').css('display', 'block');
document.body.style.overflow = 'hidden'
})
//关闭规则弹窗
$('.close-mask').on('click', function () {
$('.shade-mask').css('display', 'none');
document.body.style.overflow = 'auto'
})
//点击日榜 总榜
$('.btn-item').on('click', function () {
$(this).css('background-image', "url('./images/btn-list-active.png')")
$(this).siblings().css('background-image', "url('./images/btn-list.png')")
})
$('.btn-item').eq(0).on('click', function () {
clearTimeout(timer)
countDown()
rankType = 1
// if(dayOneTime){
// console.log('ri yi ci');
// getRankList(dayRankPageNum, rankType)
// dayOneTime = false
// }
$('.totalRank').css('display', 'none')
$('.dayRank').css('display', 'block')
})
$('.btn-item').eq(1).on('click', function () {
clearTimeout(timer)
countDown('2020/8/25 00:00:00')
rankType = 2
if (totalOneTime) {
// console.log('zong yi ci ');
getRankList(totalRankPageNum, rankType)
totalOneTime = false
a = false
}
$('.totalRank').css('display', 'block')
$('.dayRank').css('display', 'none')
})
//倒计时
function countDown(cd) {
let totalTime = cd
let now = new Date()
let nowMs = now.getTime()
if (!cd) {
let y = now.getFullYear()
let m = now.getMonth() + 1
let d = now.getDate()
let tomorrow = y + '/' + m + '/' + (d + 1)
var end = new Date(tomorrow) //日榜
} else {
var end = new Date(cd) //总榜
}
let endMS = end.getTime()
if (endMS > nowMs) {
// console.log('活动进行中');
let leftMS = endMS - nowMs;
let lefth = Math.floor(leftMS / 1000 / 60 / 60)
let h = lefth < 10 ? '0' + lefth : lefth
// console.log(h);
let leftm = Math.floor(leftMS / 1000 / 60 % 60)
let m = leftm < 10 ? '0' + leftm : leftm
// console.log(m);
let lefts = Math.floor(leftMS / 1000 % 60)
let s = lefts < 10 ? '0' + lefts : lefts
// console.log(s);
$('.h').html(h)
$('.m').html(m)
$('.s').html(s)
} else {
}
timer = setTimeout(() => {
countDown(totalTime)
}, 1000)
}
countDown()
//加载更多 日榜 总榜的点击加载更多区别是ranktype参数
$('.loadmore').on('click', function () {
// console.log('加载更多');
isFirstLoad = false
// console.log(rankType);
if (rankType == 1) {
if (canIncrease) {
pageNum = ++dayRankPageNum
} else {
pageNum = dayRankPageNum
}
} else {
if (canIncrease) {
pageNum = ++totalRankPageNum
} else {
pageNum = totalRankPageNum
}
}
getRankList(pageNum, rankType)
})
//跳转个人主页
function openPerson(dom) {
$(document).on('click', dom, function () {
let erbanUid = $(this).data('uid')
// console.log($(this)[0])
if (!browser.app) return
if (browser.ios) {
window.webkit.messageHandlers.openPersonPage.postMessage(erbanUid);
} else if (browser.android) {
if (androidJsObj && typeof androidJsObj === 'object') {
window.androidJsObj.openPersonPage(erbanUid);
}
}
})
}
openPerson('.sender img')
openPerson('.receiver img')
})
function getMessage(key, value) {
info[key] = value;
}