Files
yinmeng-h5/view/yinmeng/activity/2023-anchorBattle/js/index.js

239 lines
7.5 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.

let urlPrefix = getUrlPrefix()
let browser = checkVersion()
let env = EnvCheck();
if (env == 'test') {
new VConsole();
}
// 封装layer消息提醒框
let layerIndex
const showLoading = (content = '加载中...') => {
layer.open({
type: 2,
shadeClose: false,
content,
success (e) {
layerIndex = $(e).attr('index')
}
})
}
const hideLoading = (index) => {
layer.close(index)
}
const toastMsg = (content = '操作完成', time = 2) => {
layer.open({
content,
time,
skin: 'msg'
})
}
var leftTime;//倒计时暂存
var timeOut2;//倒计时暂存
var rankType = 1;//1日榜2总榜
var date;//日期
var dateArr = [];//存放昨日和今日时间
// 初始化函数
$(function () {
getInfoFromClient()
setTimeout(function () {
// 页面全屏
if (browser.app) {
if (browser.android) {
window.androidJsObj.initShowNav(false)
} else {
window.webkit.messageHandlers.initShowNav.postMessage(0)
}
};
// 顶部返回事件
$('.back').click(() => {
if (browser.android) {
window.androidJsObj.closeWebView()
} else {
window.webkit.messageHandlers.closeWebView.postMessage(null)
}
})
getRank(rankType, date);
}, 100)
})
// 获取榜单接口
function getRank (rankType, date) {
$('.list li').remove();
showLoading()
networkRequest({
type: 'get',
url: urlPrefix + '/act/2023RoomPk/rank/getRank',
data: { rankType, date },
success (res) {
if (res.code === 200) {
// 处理倒计时
if (rankType == 1) {
const curTime = res.timestamp
var endTime = null;
if (browser.ios) {
endTime = (new Date(`${res.data.dateList[res.data.dateList.length - 1]} 11:59:59`.replace(/-/g, "/")).getTime())
} else {
endTime = (new Date(`${res.data.dateList[res.data.dateList.length - 1]} 11:59:59`).getTime())
}
leftTime = endTime - res.timestamp;
const hadEnd = (endTime - curTime) <= 0
if (hadEnd) {
rankType = 2;
date = null;
getRank(rankType, date)
return
}
}
countup();
dateArr[0] = dateFormat(res.timestamp - 86400000, 'yyyy-MM-dd');
dateArr[1] = dateFormat(res.timestamp, 'yyyy-MM-dd');
// 处理前三
var top3 = res.data.rankList.slice(0, 3);
var notTop3 = res.data.rankList.slice(3);
if (top3.length < 3) {
let arr = new Array(3 - top3.length).fill({
avatar: './images/logo.png',
nick: '虚位以待',
erbanNo: 'ID:虚位以待',
score: " 0"
})
top3.push(...arr)
}
top3.forEach((res, i) => {
$(`.top3 .no${i + 1} .ts`).attr('uid', res.uid);
$(`.top3 .no${i + 1} .tx`).attr('src', res.avatar);
$(`.top3 .no${i + 1} p`).text(res.nick);
$(`.top3 .no${i + 1} span`).text(res.erbanNo);
$(`.top3 .no${i + 1} b i`).text(unitProcessing(res.score, 10000, 1, 'w'));
})
// 非前三
var str = '';
notTop3.forEach((res, i) => {
str += `
<li>
<div class="num">${res.ranking}</div>
<img src="${res.avatar}" uid=${res.uid} alt="" class="tx">
<div class="box">
<p>${res.nick}</p>
<span>ID: ${res.erbanNo}</span>
</div>
<div class="score">闪耀值: ${unitProcessing(res.score, 10000, 1, 'w')}</div>
</li>
`
})
$('.list').append(str);
} else {
toastMsg(res.message)
}
hideLoading(layerIndex)
},
error (err) {
hideLoading(layerIndex)
toastMsg('网络错误,请退出重进')
}
})
}
// 榜单切换
$('.tab div').click(function () {
var i = $(this).index() + 1;
rankType = i == 1 || i == 2 ? 1 : 2;
$('.tab div').removeClass('act1').removeClass('act3').removeClass('act2');
$(this).addClass(`act${i}`);
if (i == 1 || i == 2) {
date = dateArr[i - 1];
} else {
date = null;
}
getRank(rankType, date);
})
// 规则tab切换
$('.rule .rule_in .tabs div').click(function () {
var i = $(this).index() + 1;
$('.rule .rule_in .tabs div').removeClass('ruletabActs1').removeClass('ruletabActs2');
$('.rule .rule_in .box1, .rule .rule_in .box2').hide();
$(this).addClass(`ruletabActs${i}`);
if (i == 1) {
$('.rule .rule_in .box1').show();
} else {
$('.rule .rule_in .box2').show();
}
return false
})
// 打开规则
$('.rule_icon').click(function () {
$('.rule').show();
bodyScroolFun(true);
})
// 关闭规则
$('.rule').click(function () {
$(this).hide();
bodyScroolFun(false);
})
// 倒计时
function countup () {
clearTimeout(timeOut2)
//获取当前时间
// var now = nowTime;
var d = 0;
var h = 0;
var m = 0;
var s = 0;
//定义变量 d,h,m,s保存倒计时的时间
var d, h, m, s;
//递归每秒调⽤countTime⽅法显⽰动态时间效果
if (leftTime >= 0 && leftTime < 1000) {
rankType = 2;
date = null;
getRank(rankType, date);
} else if (leftTime > 1000) {
d = getzf(Math.floor(leftTime / 1000 / 60 / 60 / 24));
h = getzf(Math.floor(leftTime / 1000 / 60 / 60 % 24));
m = getzf(Math.floor(leftTime / 1000 / 60 % 60));
s = getzf(Math.floor(leftTime / 1000 % 60));
//将倒计时赋值到div中
$('.time .sp1').text(d);
$('.time .sp2').text(h);
$('.time .sp3').text(m);
$('.time .sp4').text(s);
} else {
//todo 展示活动已结束
$('.timeOutTab').show();
$('.timeOut').show();
$('.tab').hide();
$('.time').hide();
}
if (leftTime > 0){
leftTime = leftTime - 1000;
}
timeOut2 = setTimeout(countup, 1000);
}
//补0操作
function getzf (num) {
if (parseInt(num) < 10) {
num = '0' + num;
}
return num;
}
// 点击前三按钮
$('.top3 .no .ts').on('click', function () {
var uid = $(this).attr('uid');
if (browser.ios) {
window.webkit.messageHandlers.openRoom.postMessage(uid);
} else if (browser.android) {
if (androidJsObj && typeof androidJsObj === 'object') {
window.androidJsObj.openRoom(uid);
}
}
})
// 点击非前三按钮
$('.list').on('click', 'li .tx', function () {
var uid = $(this).attr('uid');
console.log(uid);
if (browser.ios) {
window.webkit.messageHandlers.openRoom.postMessage(uid);
} else if (browser.android) {
if (androidJsObj && typeof androidJsObj === 'object') {
window.androidJsObj.openRoom(uid);
}
}
})