314 lines
11 KiB
JavaScript
314 lines
11 KiB
JavaScript
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;
|
||
} |