239 lines
7.5 KiB
JavaScript
239 lines
7.5 KiB
JavaScript
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);
|
||
}
|
||
}
|
||
}) |