531 lines
20 KiB
JavaScript
531 lines
20 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 activityCode1;
|
||
var activityCode2;
|
||
var activityCode;
|
||
var diamondNum;
|
||
var taskCode;
|
||
var taskIcon;
|
||
var taskName;
|
||
var showValue;
|
||
var countupTime;
|
||
// 初始化函數
|
||
$(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)
|
||
}
|
||
})
|
||
getTask_MENG_DONG_HUA_HE();
|
||
getTask_TIAN_MI_SHENG_WEN();
|
||
getRank();
|
||
}, 100)
|
||
})
|
||
// 獲取榜單接口
|
||
function getRank () {
|
||
showLoading()
|
||
networkRequest({
|
||
type: 'get',
|
||
url: urlPrefix + '/act/2024Valentines/cpRank/getRank',
|
||
success (res) {
|
||
if (res.code === 200) {
|
||
// 處理任務
|
||
res.data.cpTaskList.forEach((val, i) => {
|
||
console.log(res.status);
|
||
if (val.status == 2) {
|
||
$(`.page3 .box .tasks${i + 1} .buy`).addClass("act");
|
||
$(`.page3 .box .tasks${i + 1} .buy`).text("已完成");
|
||
$(`.page3 .box .tasks${i + 1} .line .i`).text(`${res.data.score > val.score ? val.score : res.data.score}/${val.score}`);
|
||
$(`.page3 .box .tasks${i + 1} .line span`).css('width', `${(res.data.score / val.score) * 100 >= 100 ? 98.8 : (res.data.score / val.score) * 100}%`)
|
||
} else {
|
||
$(`.page3 .box .tasks${i + 1} .buy`).removeClass("act");
|
||
$(`.page3 .box .tasks${i + 1} .buy`).text("未完成");
|
||
$(`.page3 .box .tasks${i + 1} .line .i`).text(`${res.data.score > val.score ? val.score : res.data.score}/${val.score}`);
|
||
$(`.page3 .box .tasks${i + 1} .line span`).css('width', `${(res.data.score / val.score) * 100 >= 100 ? 98.8 : (res.data.score / val.score) * 100}%`)
|
||
}
|
||
});
|
||
// 處理前三
|
||
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({
|
||
leftAvatar: './images/logo.png',
|
||
rightAvatar: './images/logo.png',
|
||
leftNick: '虛位以待',
|
||
rightNick: '虛位以待',
|
||
score: "0"
|
||
})
|
||
top3.push(...arr)
|
||
}
|
||
top3.forEach((res, i) => {
|
||
$(`.page3 .top3 .no${i + 1} .leftlogo`).attr('src', res.leftAvatar);
|
||
$(`.page3 .top3 .no${i + 1} .rightlogo`).attr('src', res.rightAvatar);
|
||
$(`.page3 .top3 .no${i + 1} .name`).html(`${res.leftNick.length > 6 ? res.leftNick.slice(0, 6) + '...' : res.leftNick}<i> & </i>${res.rightNick.length > 6 ? res.rightNick.slice(0, 6) + '...' : res.rightNick}`);
|
||
$(`.page3 .top3 .no${i + 1} .score`).text(unitProcessing(res.score, 10000, 1, 'w') + '熱戀值')
|
||
})
|
||
// 非前三
|
||
var str = '';
|
||
$('.page3 ul li').remove();
|
||
notTop3.forEach((res, i) => {
|
||
str += `
|
||
<li>
|
||
<div class="num">${res.ranking}</div>
|
||
<img src="${res.leftAvatar}" alt="" class="leftTx">
|
||
<img src="${res.rightAvatar}" alt="" class="rightTx">
|
||
<div class="leftName">${res.leftNick}</div>
|
||
<div class="rightName">${res.rightNick}</div>
|
||
<div class="score">${unitProcessing(res.score, 10000, 1, 'w')}</div>
|
||
</li>
|
||
`
|
||
})
|
||
$('.page3 ul').append(str);
|
||
// 處理自己榜單排名
|
||
$('.page3 .my .myBox').remove();
|
||
var strMy = '';
|
||
res.data.meRankList.forEach((res, i) => {
|
||
strMy += `
|
||
<div class="myBox">
|
||
<div class="num">${res.ranking == 0 ? '未上榜' : res.ranking}</div>
|
||
<img src="${res.leftAvatar}" alt="" class="leftTx">
|
||
<img src="${res.rightAvatar}" alt="" class="rightTx">
|
||
<div class="leftName">${res.leftNick}</div>
|
||
<div class="rightName">${res.rightNick}</div>
|
||
<div class="score">${unitProcessing(res.score, 10000, 1, 'w')}</div>
|
||
</div>
|
||
`
|
||
})
|
||
$('.page3 .my .scroll').append(strMy)
|
||
} else {
|
||
toastMsg(res.message)
|
||
}
|
||
hideLoading(layerIndex)
|
||
},
|
||
error (err) {
|
||
hideLoading(layerIndex)
|
||
toastMsg('網路錯誤,請退出重進')
|
||
}
|
||
})
|
||
}
|
||
// 獲取萌動禮盒點亮任務接口
|
||
function activityInfo () {
|
||
showLoading()
|
||
networkRequest({
|
||
type: 'get',
|
||
url: urlPrefix + '/activity/info',
|
||
data: { activityCode: activityCode2 },
|
||
success (res) {
|
||
if (res.code === 200) {
|
||
if (res.data.endTime - res.timestamp > 0) {
|
||
countup(res.data.endTime - res.timestamp);
|
||
} else {
|
||
$('.end').show();
|
||
bodyScroolFun(true);
|
||
}
|
||
} else {
|
||
toastMsg(res.message)
|
||
}
|
||
hideLoading(layerIndex)
|
||
},
|
||
error (err) {
|
||
hideLoading(layerIndex)
|
||
toastMsg('網路錯誤,請退出重進')
|
||
}
|
||
})
|
||
}
|
||
// 倒計時
|
||
function countup (leftTime) {
|
||
clearTimeout(countupTime)
|
||
//獲取當前時間
|
||
// 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) {
|
||
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中
|
||
$('.page2 .box .i1').text(`剩余時間:${d}天${h}時${m}分${s}秒`);
|
||
} else {
|
||
$('.page2 .box .i1').text(`剩余時間:已結束`);
|
||
|
||
}
|
||
if (leftTime > 0) {
|
||
leftTime = leftTime - 1000;
|
||
}
|
||
countupTime = setTimeout(function () {
|
||
countup(leftTime);
|
||
}, 1000);
|
||
}
|
||
// 獲取萌動禮盒點亮任務接口
|
||
function getTask_MENG_DONG_HUA_HE () {
|
||
showLoading()
|
||
networkRequest({
|
||
type: 'get',
|
||
url: urlPrefix + '/activity/task/user',
|
||
data: { componentCode: "MENG_DONG_HUA_HE" },
|
||
success (res) {
|
||
if (res.code === 200) {
|
||
// 渲染合成列錶
|
||
$('.page1 .bg1 .giftListBox .giftList').remove();
|
||
var str = '';
|
||
res.data[0].children.forEach((res, i) => {
|
||
str += `
|
||
<div class="giftList giftList${i + 1} ${res.completed ? '' : 'filter'}">
|
||
<div class="qp"></div>
|
||
<img src="${res.taskIcon}" alt="" class="gift">
|
||
<div class="giftName">${res.taskName}</div>
|
||
<div class="giftVAlue">${res.taskValue}鉆</div>
|
||
</div>
|
||
`
|
||
});
|
||
$('.page1 .bg1 .giftListBox').append(str);
|
||
activityCode1 = 'ACT_2024_VALENTINES_DAY';
|
||
recordPage(activityCode1, 'MENG_DONG_HUA_HE',);
|
||
if (res.data[0].reward.granted) {
|
||
$('.page1 .bg1 .p3').show();
|
||
} else {
|
||
$('.page1 .bg1 .p3').hide();
|
||
}
|
||
} else {
|
||
toastMsg(res.message)
|
||
}
|
||
hideLoading(layerIndex)
|
||
},
|
||
error (err) {
|
||
hideLoading(layerIndex)
|
||
toastMsg('網路錯誤,請退出重進')
|
||
}
|
||
})
|
||
}
|
||
// 獲取甜蜜升溫任務接口
|
||
function getTask_TIAN_MI_SHENG_WEN () {
|
||
showLoading()
|
||
networkRequest({
|
||
type: 'get',
|
||
url: urlPrefix + '/activity/task/user',
|
||
data: { componentCode: "TIAN_MI_SHENG_WEN" },
|
||
success (res) {
|
||
if (res.code === 200) {
|
||
activityCode2 = 'ACT_2024_VALENTINES_DAY';
|
||
res.data.forEach((res, i) => {
|
||
$(`.page2 .box .tasks${i + 1} .giftBox .gift`).attr('src', res.taskIcon);
|
||
$(`.page2 .box .tasks${i + 1} .giftBox .giftName`).text(res.reward.rewardName);
|
||
$(`.page2 .box .tasks${i + 1} .giftBox .giftVAlue`).text(res.reward.showValue + '鉆');
|
||
$(`.page2 .box .tasks${i + 1} .p1`).text(`每達到${res.taskValue}禮物值,可解鎖1次直購權`);
|
||
$(`.page2 .box .tasks${i + 1} .line .i`).text(`${res.completeValue % res.taskValue}/${res.taskValue}`);
|
||
$(`.page2 .box .tasks${i + 1} .line span`).css('width', `${(res.completeValue % res.taskValue / res.taskValue) * 100 >= 100 ? 98.8 : (res.completeValue % res.taskValue / res.taskValue) * 100}%`);
|
||
$(`.page2 .box .tasks${i + 1} .p3`).text(`當前可購買: ${Math.floor(res.activityValue / res.taskValue)}個`);
|
||
$(`.page2 .box .tasks${i + 1} .buy`).html(`<img src="./images/diamond.png" alt="" class="diamond">
|
||
${res.reward.showValue}購買`);
|
||
$(`.page2 .box .tasks${i + 1} .buy`).attr('activityCode', res.activityCode);
|
||
$(`.page2 .box .tasks${i + 1} .buy`).attr('taskCode', res.taskCode);
|
||
$(`.page2 .box .tasks${i + 1} .buy`).attr('diamondNum', res.reward.showValue);
|
||
$(`.page2 .box .tasks${i + 1} .buy`).attr('num', Math.floor(res.activityValue / res.taskValue));
|
||
$(`.page2 .box .tasks${i + 1} .buy`).attr('taskIcon', res.taskIcon);
|
||
$(`.page2 .box .tasks${i + 1} .buy`).attr('taskName', res.reward.rewardName);
|
||
$(`.page2 .box .tasks${i + 1} .buy`).attr('showValue', res.reward.showValue);
|
||
})
|
||
activityInfo();
|
||
} else {
|
||
toastMsg(res.message)
|
||
}
|
||
hideLoading(layerIndex)
|
||
},
|
||
error (err) {
|
||
hideLoading(layerIndex)
|
||
toastMsg('網路錯誤,請退出重進')
|
||
}
|
||
})
|
||
}
|
||
// 購買接口
|
||
function exchange (activityCode, diamondNum, taskCode, taskIcon, taskName, showValue) {
|
||
showLoading()
|
||
networkRequest({
|
||
type: 'post',
|
||
url: urlPrefix + '/activity/task/exchange',
|
||
data: { activityCode, diamondNum, taskCode, num: 1 },
|
||
success (res) {
|
||
if (res.code === 200) {
|
||
$('.success .success_in .giftListSuccess .gift').attr('src', taskIcon);
|
||
$('.success .success_in .giftListSuccess .giftName').text(taskName);
|
||
$('.success .success_in .giftListSuccess .giftVAlue').text(`${showValue}鉆`);
|
||
$('.success .success_in .text').text(`${taskName}*1已發放至「我的背包」`);
|
||
$('.success').show();
|
||
getTask_TIAN_MI_SHENG_WEN();
|
||
bodyScroolFun(true);
|
||
} else if (res.code == 31005) {
|
||
$('.failureBuy').show();
|
||
bodyScroolFun(true);
|
||
} else {
|
||
toastMsg(res.message)
|
||
}
|
||
hideLoading(layerIndex)
|
||
},
|
||
error (err) {
|
||
hideLoading(layerIndex)
|
||
toastMsg('網路錯誤,請退出重進')
|
||
}
|
||
})
|
||
}
|
||
// 購買禮物按鈕
|
||
$(`.page2 .box .taskss .buy`).click(function () {
|
||
var num = $(this).attr('num');
|
||
activityCode = $(this).attr('activityCode');
|
||
diamondNum = $(this).attr('diamondNum');
|
||
taskCode = $(this).attr('taskCode');
|
||
taskIcon = $(this).attr('taskIcon');
|
||
taskName = $(this).attr('taskName');
|
||
showValue = $(this).attr('showValue');
|
||
if (num > 0) {//true
|
||
$('.sure .sure_in .giftListSuccess .gift').attr('src', taskIcon);
|
||
$('.sure .sure_in .giftListSuccess .giftName').text(taskName);
|
||
$('.sure .sure_in .giftListSuccess .giftVAlue').text(showValue + '鉆');
|
||
$('.sure').show();
|
||
bodyScroolFun(true);
|
||
} else {
|
||
toastMsg('當前購買次數不足~')
|
||
}
|
||
});
|
||
// 二次確認彈窗
|
||
$('.sure .sure_in .ok').click(function () {
|
||
exchange(activityCode, diamondNum, taskCode, taskIcon, taskName, showValue);
|
||
$('.sure').hide();
|
||
bodyScroolFun(false);
|
||
})
|
||
// tab切換
|
||
$('.tab div').click(function () {
|
||
var i = $(this).index() + 1;
|
||
$('.page1,.page2,.page3').hide();
|
||
$(`.page${i}`).show();
|
||
$(this).addClass(`act`).siblings().removeClass('act')
|
||
if (i == 3) {
|
||
getRank();
|
||
}
|
||
})
|
||
// 記錄接口
|
||
function recordPage (activityCode, componentCode) {
|
||
showLoading()
|
||
networkRequest({
|
||
type: 'get',
|
||
url: urlPrefix + '/activity/task/user/record/page',
|
||
data: { activityCode, componentCode, pageNum: 1, pageSize: 9999 },
|
||
success (res) {
|
||
if (res.code === 200) {
|
||
var str = '';
|
||
if (componentCode == 'MENG_DONG_HUA_HE') {
|
||
$('.page1 .bg2 ul li').remove()
|
||
if (res.data.records.length <= 0) {
|
||
str = `<li class="null"><div>暫無點亮記錄,快去集齊禮物吧~</div></li>`
|
||
} else {
|
||
res.data.records.forEach(res => {
|
||
str += `
|
||
<li class="liTitle">
|
||
<div>點亮時間</div>
|
||
<div>獲得獎勵</div>
|
||
</li>
|
||
<li>
|
||
<div class="left">
|
||
<p>${dateFormat(res.createTime, 'yyyy/MM/dd')}</p>
|
||
<span>${dateFormat(res.createTime, 'hh/mm/ss')}</span>
|
||
</div>
|
||
<div>${res.rewardName}銘牌</div>
|
||
</li>
|
||
`})
|
||
}
|
||
$('.page1 .bg2 ul').append(str);
|
||
} else if (componentCode == 'TIAN_MI_SHENG_WEN') {
|
||
$('.buyRecords .buyRecords_in ul li').remove();
|
||
if (res.data.records.length <= 0) {
|
||
str = `<li class="null"><div>暫無購買記錄~</div></li>`
|
||
} else {
|
||
res.data.records.forEach(res => {
|
||
str += `
|
||
<li class="liTitle">
|
||
<div>購買時間</div>
|
||
<div>購買禮物</div>
|
||
</li>
|
||
<li>
|
||
<div class="left">
|
||
<p>${dateFormat(res.createTime, 'yyyy/MM/dd')}</p>
|
||
<span>${dateFormat(res.createTime, 'hh/mm/ss')}</span>
|
||
</div>
|
||
<div>${res.rewardName}禮物*1個</div>
|
||
</li>
|
||
`})
|
||
}
|
||
$('.buyRecords .buyRecords_in ul').append(str);
|
||
}
|
||
} else {
|
||
toastMsg(res.message)
|
||
}
|
||
hideLoading(layerIndex)
|
||
},
|
||
error (err) {
|
||
hideLoading(layerIndex)
|
||
toastMsg('網路錯誤,請退出重進')
|
||
}
|
||
})
|
||
}
|
||
// 打開購買記錄
|
||
$('.page2 .box .page2Buy_icon').click(function () {
|
||
recordPage(activityCode2, 'TIAN_MI_SHENG_WEN',);
|
||
$('.buyRecords').show();
|
||
bodyScroolFun(true);
|
||
})
|
||
|
||
// 關閉購買記錄
|
||
$('.buyRecords').click(function () {
|
||
$('.buyRecords').hide();
|
||
bodyScroolFun(false);
|
||
})
|
||
|
||
// 打開規則記錄
|
||
$('.header .rule_icon').click(function () {
|
||
$('.rule').show();
|
||
bodyScroolFun(true);
|
||
})
|
||
|
||
// 關閉規則記錄
|
||
$('.rule').click(function () {
|
||
$('.rule').hide();
|
||
bodyScroolFun(false);
|
||
})
|
||
|
||
// 自己榜單展開按鈕
|
||
var scrollBool = true;
|
||
$('.page3 .my .icon').click(function () {
|
||
$('.page3 .my .scroll').scrollTop(0)
|
||
if (scrollBool) {
|
||
$('.page3 .my').css({ "height": "8.74667rem", "background": "url(./images/myBg.png) no-repeat", "background-size": "100% 100%" })
|
||
$('.page3 .my .scroll').css({ "overflow-y": "scroll" })
|
||
$('.page3 .my .icon').attr('src', './images/bottom.png')
|
||
bodyScroolFun(true);
|
||
} else {
|
||
$('.page3 .my').css({ "height": "2.2rem", "background": "url(./images/myBg2.png) no-repeat", "background-size": "100% 100%" })
|
||
$('.page3 .my .scroll').css({ "overflow-y": "hidden" })
|
||
$('.page3 .my .icon').attr('src', './images/top.png')
|
||
bodyScroolFun(false);
|
||
}
|
||
scrollBool = !scrollBool;
|
||
})
|
||
|
||
// 關閉活動結束彈窗
|
||
$('.end .end_in .but').click(function () {
|
||
$('.page1,.page2,.page3').hide();
|
||
$(`.page${3}`).show();
|
||
$('.tab div').removeClass('act');
|
||
$('.tab div').eq(2).addClass('act');
|
||
$('.end').hide();
|
||
bodyScroolFun(false);
|
||
})
|
||
|
||
// 關閉充值彈窗
|
||
$('.failureBuy .failureBuy_in .close').click(function () {
|
||
$('.failureBuy').hide();
|
||
bodyScroolFun(false);
|
||
})
|
||
|
||
// 跳轉充值彈窗
|
||
$('.failureBuy .failureBuy_in .ok').click(function () {
|
||
$('.failureBuy').hide();
|
||
bodyScroolFun(false);
|
||
if (browser.app) {
|
||
if (browser.android) {
|
||
let channel = pubInfo.deviceInfo.channel;
|
||
console.log(pubInfo.deviceInfo);
|
||
if (channel == "google") {
|
||
window.androidJsObj.openChargePage(6);
|
||
} else {
|
||
window.androidJsObj.openChargePage(6);
|
||
window.location.href = urlPrefix + '/peko/modules/pay/index.html?channelType=4';
|
||
}
|
||
} else if (browser.ios) {
|
||
let channel = pubInfo.deviceInfo.channel;
|
||
if (channel == "appstore") {
|
||
window.webkit.messageHandlers.openChargePage.postMessage(null);
|
||
} else {
|
||
window.webkit.messageHandlers.chargePayClickPage.postMessage(6);
|
||
window.location.href = urlPrefix + '/peko/modules/pay/index.html?channelType=4';
|
||
}
|
||
}
|
||
} else {
|
||
toastMsg('請在app內打開')
|
||
}
|
||
})
|
||
|
||
// 關閉購買成功彈窗
|
||
$('.success .success_in .but').click(function () {
|
||
$('.success').hide();
|
||
bodyScroolFun(false);
|
||
})
|
||
|
||
// 關閉二次確認彈窗
|
||
$('.sure .sure_in .close').click(function () {
|
||
$('.sure').hide();
|
||
bodyScroolFun(false);
|
||
})
|
||
|
||
// 關閉榜單獎勵
|
||
$('.page3Rule').click(function () {
|
||
$('.page3Rule').hide();
|
||
bodyScroolFun(false);
|
||
})
|
||
|
||
// 打開榜單獎勵
|
||
$('.page3 .top3 .rule_icon').click(function () {
|
||
$('.page3Rule').show();
|
||
bodyScroolFun(true);
|
||
})
|
||
|
||
//補0操作
|
||
function getzf (num) {
|
||
if (parseInt(num) < 10) {
|
||
num = '0' + num;
|
||
}
|
||
return num;
|
||
} |