Files
mew-h5/view/mew/modules/weekStar/js/newWeekStar.js
2023-11-08 11:26:13 +08:00

314 lines
11 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();
var browser = checkVersion();
var info = {};
if (EnvCheck() === '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 endTime2 = null; //结束时间
var timeLost = true; //时间锁
var rankType = 1; //1:魅力榜 2:豪气榜
var rankTypeWeek = 1; //1:本周榜 2:上周榜
var mineRankArr = []; //自己排名数组
var giftListArr = [];//礼物数组
var topThree = [];//前三排名数组
var notTopThree = [];//非前三排名数组
var lock = true;
$(function () {
getInfoFromClient()
setTimeout(function () {
getWeekStarAward(rankType, rankTypeWeek);
}, 50)
})
function getWeekStarAward (rankType, rankTypeWeek) {
showLoading();
networkRequest({
type: 'GET',
url: urlPrefix + '/weekStar/getWeekStarList',
data: {
rankType,
uid: pubInfo.uid
},
success (res) {
if (res.code === 200) {
// 处理倒计时
endTime2 = res.data.endTime;
if (timeLost) {
countup();
timeLost = false;
}
giftListArr.length = 0;//礼物列表数组清空
mineRankArr.length = 0;// 自己排名数组清空
topThree.length = 0;// 清空前三数组
notTopThree.length = 0;// 清空非前三数组
$('.box .giftListBox .giftList li').remove();// 礼物dom删除
$('.box .not_top_three li').remove();// 非前三列表dom删除
//本周
if (rankTypeWeek == 1) {
// 处理礼物列表
var giftListStr = ``;
res.data.weekStarRankList.forEach((res, index) => {
giftListArr.push(res.gift);
mineRankArr.push(res.mineRank);
topThree.push(res.weekStarRankList);
notTopThree.push(res.weekStarRankList);
});
mineRankArrFun(mineRankArr, 0, rankType);
// 处理礼物数组
giftListArr.forEach((res, index) => {
giftListStr += `
<li class="${index == 0 ? 'active' : ''}">
<img src="${res.picUrl}" alt="">
<span>${res.giftName}</span>
</li>
`
})
if (giftListArr.length > 2) {
$('.box .giftListBox .giftList').css("width", `${9.12 + (giftListArr.length * 1.05)}rem`)
}
$('.box .giftListBox .giftList').append(giftListStr)
// 礼物列表切换
$('.box .giftList li').click(function () {
var index = $(this).index();
$(this).addClass('active').siblings().removeClass('active');
mineRankArrFun(mineRankArr, index, rankType);
weekStarRankList(topThree, index, rankType);
$('.box .not_top_three li').remove();// 非前三列表dom删除
notWeekStarRankList(notTopThree, index, rankType);
})
// 处理前三
weekStarRankList(topThree, 0, rankType);
// 处理非前三
notWeekStarRankList(notTopThree, 0, rankType);
} else {
//上周
// 处理礼物列表
var giftListStr = ``;
res.data.lastWeekStarList.forEach((res, index) => {
giftListArr.push(res.gift);
mineRankArr.push(res.mineRank);
topThree.push(res.weekStarRankList);
notTopThree.push(res.weekStarRankList);
});
mineRankArrFun(mineRankArr, 0, rankType);
// 处理礼物数组
giftListArr.forEach((res, index) => {
giftListStr += `
<li class="${index == 0 ? 'active' : ''}">
<img src="${res.picUrl}" alt="">
<span>${res.giftName}</span>
</li>
`
})
if (giftListArr.length > 2) {
$('.box .giftListBox .giftList').css("width", `${9.12 + giftListArr.length * 1.05}rem`)
}
$('.box .giftListBox .giftList').append(giftListStr)
// 礼物列表切换
$('.box .giftList li').click(function () {
var index = $(this).index();
$(this).addClass('active').siblings().removeClass('active');
mineRankArrFun(mineRankArr, index, rankType);
weekStarRankList(topThree, index, rankType);
$('.box .not_top_three li').remove();// 非前三列表dom删除
notWeekStarRankList(notTopThree, index, rankType);
})
// 处理前三
weekStarRankList(topThree, 0, rankType);
// 处理非前三
notWeekStarRankList(notTopThree, 0, rankType);
}
hideLoading(layerIndex);
} else {
hideLoading(layerIndex);
toastMsg(res.message);
}
},
error () {
hideLoading(layerIndex);
toastMsg('网络错误');
}
})
}
// 本周上周切换
$('.tabAbox div').click(function () {
var i = $(this).index();
if (i == 0) {
rankTypeWeek = 1;
$('.tabAbox').removeClass('tab2').addClass('tab1');
getWeekStarAward(rankType, rankTypeWeek);
} else {
rankTypeWeek = 2;
$('.tabAbox').removeClass('tab1').addClass('tab2');
getWeekStarAward(rankType, rankTypeWeek);
}
})
// 魅力豪气切换
$('.sTab div').click(function () {
var i = $(this).index();
if (i == 0) {
rankType = 1;
$('.sTab').removeClass('sTab_active');
getWeekStarAward(rankType, rankTypeWeek);
} else {
rankType = 2;
$('.sTab').addClass('sTab_active');
getWeekStarAward(rankType, rankTypeWeek);
}
})
// 处理前三函数
function weekStarRankList (arr, index, type) {
var arrs = arr[index].slice(0, 3);
if (arrs.length < 3) {
let arr = new Array(3 - arrs.length).fill({
avatar: './images/newimages/null.png',
nick: '虚位以待',
amount: ""
})
arrs.push(...arr)
}
arrs.forEach((res, i) => {
$(`.box .top_three .No${i + 1} .tx img`).attr('src', res.avatar);
$(`.box .top_three .No${i + 1} .tx`).attr('uid', res.uid);
$(`.box .top_three .No${i + 1} p`).text(res.nick);
if (type == 1) {
$(`.box .top_three .No${i + 1} b`).text(`${res.amount == 0 ? '' : '魅力值:' + formatNumber(res.amount)}`);
} else {
$(`.box .top_three .No${i + 1} b`).text(`${res.amount == 0 ? '' : '豪气值:' + formatNumber(res.amount)}`);
}
})
}
// 跳转前三资料页
$('.top_three .tx').click(function () {
var uid = Number($(this).attr("uid"));
if (lock) {
lock = false;
if (browser.ios) {
window.webkit.messageHandlers.openPersonPage.postMessage(uid);
setTimeout(function () { lock = true; }, 200)
} else if (browser.android) {
if (androidJsObj && typeof androidJsObj === 'object') {
window.androidJsObj.openPersonPage(uid);
setTimeout(function () { lock = true; }, 200)
}
}
}
})
// 处理前非三函数
function notWeekStarRankList (arr, index, type) {
var arrs = arr[index].slice(3);
var str = ``;
arrs.forEach((res, i) => {
str += `
<li uid=${res.uid}>
<span class="ranking">${i + 4}</span>
<img src="${res.avatar}" alt="">
<span class="nice">${res.nick}</span>
<span class="num">${type == 1 ? res.amount == 0 ? '' : '魅力值:' + formatNumber(res.amount) : res.amount == 0 ? '' : '豪气值:' + formatNumber(res.amount)}</span>
</li>
`
})
$('.box .not_top_three').append(str)
$('.box .not_top_three li').click(function () {
var uid = Number($(this).attr("uid"));
if (lock) {
lock = false;
if (browser.ios) {
window.webkit.messageHandlers.openPersonPage.postMessage(uid);
setTimeout(function () { lock = true; }, 200)
} else if (browser.android) {
if (androidJsObj && typeof androidJsObj === 'object') {
window.androidJsObj.openPersonPage(uid);
setTimeout(function () { lock = true; }, 200)
}
}
}
})
}
// 处理自己排名数组
function mineRankArrFun (arr, index, type) {
$('.myBox .ranking').text(arr[index].rank < 0 ? '未上榜' : arr[index].rank);
$('.myBox .nice').text(arr[index].nick);
$('.myBox img').attr('src', arr[index].avatar);
if (type == 1) {
$('.myBox .num').text(`魅力值:${formatNumber(arr[index].amount)}`);
} else {
$('.myBox .num').text(`豪气值:${formatNumber(arr[index].amount)}`);
}
}
// 处理以万为单位
function formatNumber (num) {
num = Number(num);
if (num == 0 || num <= 10000) {
return num;
} else
if (num > 1 && num < 10000) {
return num + '';
} else {
return (num / 10000).toFixed(2) + '万';
}
}
function countup () {
//获取当前时间
var date = new Date();
var now = date.getTime();
var d = 0;
var h = 0;
var m = 0;
var s = 0;
//设置截⽌时间
var end = endTime2;
//时间差
var leftTime = end - now;
//定义变量 d,h,m,s保存倒计时的时间
var d, h, m, s;
if (leftTime >= 0) {
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 span').text(d + " 天 " + h + " : " + m + " : " + s);
//递归每秒调⽤countTime⽅法显⽰动态时间效果
} else {
$('.time span').text("00 天 00 : 00 : 00");
return
}
setTimeout(countup, 1000);
}
//补0操作
function getzf (num) {
if (parseInt(num) < 10) {
num = '0' + num;
}
return num;
}
function checkTime (i) {
if (i < 10) {
i = "0" + i;
}
return i;
}