新增月充值活动

This commit is contained in:
dragon
2024-08-28 11:05:24 +08:00
parent c0c70679c4
commit 10dad3f7f5
39 changed files with 2636 additions and 0 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1004 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -0,0 +1,236 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title class="text1"></title>
<link rel="stylesheet" href="../../common/css/reset.css">
<link rel="stylesheet" href="./css/index.css">
</head>
<body>
<!-- 頂部返回 -->
<div class="back">
<img src="./images/travel/back.png" alt="">
</div>
<!-- 头部 -->
<div class="header">
<div class="rule_icon text2"></div>
<!-- 倒计时 -->
<div class="time">
<div class="day">
<b>0</b>
<span class="text3"></span>
</div>
<div class="hour">
<b>0</b>
<span class="text4"></span>
</div>
<div class="colon"></div>
<div class="min">
<b>0</b>
<span class="text5"></span>
</div>
<div class="colon"></div>
<div class="sec">
<b>0</b>
<span class="text6"></span>
</div>
</div>
</div>
<!-- 我的充值 -->
<div class="myRecharge">
<div class="title text7"></div>
<p><b>$0</b><img src="./images/why.png" alt=""></p>
<div class="but text8"></div>
</div>
<!-- 充值档位到达10 -->
<div class="recharge10 recharge1 recharges">
<div class="top">
<div class="title text9"></div>
</div>
<div class="content">
<img src="./images/recharge10.png" alt="">
</div>
<div class="bottom">
<div class="but text10"></div>
</div>
</div>
<!-- 充值档位到达100 -->
<div class="recharge100 recharge2 recharges">
<div class="top">
<div class="title text11"></div>
</div>
<div class="content">
<img src="./images/recharge10.png" alt="">
</div>
<div class="bottom">
<div class="but text10"></div>
</div>
</div>
<!-- 充值档位到达300 -->
<div class="recharge300 recharge3 recharges">
<div class="top">
<div class="title text12"></div>
</div>
<div class="content">
<!-- 奖励图片 -->
<img src="./images/recharge300.png" alt="" class="rewardImg">
<!-- 前三标题 -->
<div class="topTitle">
<img src="./images/left.png" alt="" class="left">
<b class="text13"></b>
<img src="./images/right.png" alt="" class="right">
</div>
<!-- 前三信息 -->
<div class="topBox">
<div class="no2">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top2.png" alt="" class="ts">
</div>
<div class="no1">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top1.png" alt="" class="ts">
</div>
<div class="no3">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top3.png" alt="" class="ts">
</div>
</div>
</div>
<div class="bottom">
<div class="but text10"></div>
</div>
</div>
<!-- 充值档位到达500 -->
<div class="recharge500 recharge4 recharges">
<div class="top">
<div class="title text14"></div>
</div>
<div class="content">
<!-- 奖励图片 -->
<img src="./images/recharge500.png" alt="" class="rewardImg">
<!-- 前三标题 -->
<div class="topTitle">
<img src="./images/left.png" alt="" class="left">
<b class="text13"></b>
<img src="./images/right.png" alt="" class="right">
</div>
<!-- 前三信息 -->
<div class="topBox">
<div class="no2">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top2.png" alt="" class="ts">
</div>
<div class="no1">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top1.png" alt="" class="ts">
</div>
<div class="no3">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top3.png" alt="" class="ts">
</div>
</div>
</div>
<div class="bottom">
<div class="but text10"></div>
</div>
</div>
<!-- 充值档位到达1000 -->
<div class="recharge1000 recharge5 recharges">
<div class="top">
<div class="title text15"></div>
</div>
<div class="content">
<!-- 奖励图片 -->
<img src="./images/recharge1000.png" alt="" class="rewardImg">
<!-- 前三标题 -->
<div class="topTitle">
<img src="./images/left.png" alt="" class="left">
<b class="text13"></b>
<img src="./images/right.png" alt="" class="right">
</div>
<!-- 前三信息 -->
<div class="topBox">
<div class="no2">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top2.png" alt="" class="ts">
</div>
<div class="no1">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top1.png" alt="" class="ts">
</div>
<div class="no3">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top3.png" alt="" class="ts">
</div>
</div>
</div>
<div class="bottom">
<div class="but text10"></div>
</div>
</div>
<!-- 充值档位到达3000 -->
<div class="recharge3000 recharge6 recharges">
<div class="top">
<div class="title text16"></div>
</div>
<div class="content">
<!-- 奖励图片 -->
<img src="./images/recharge3000.png" alt="" class="rewardImg">
<!-- 前三标题 -->
<!-- <div class="topTitle">
<img src="./images/left.png" alt="" class="left">
<b>Top 3 Winner</b>
<img src="./images/right.png" alt="" class="right">
</div> -->
<!-- 前三信息 -->
<!-- <div class="topBox">
<div class="no2">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top2.png" alt="" class="ts">
</div>
<div class="no1">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top1.png" alt="" class="ts">
</div>
<div class="no3">
<img src="./images/logo.png" alt="" class="tx">
<img src="./images/top3.png" alt="" class="ts">
</div>
</div> -->
</div>
<div class="bottom">
<div class="but text10"></div>
</div>
</div>
<!-- 弹窗 -->
<div class="pub">
<div class="pub_in">
<img src="./images/close.png" alt="" class="close">
<div class="title">Rules </div>
<div class="centent">
<p>1、Recharge activity time: 0:00:00 on the 1st of each month to 23:59:59 on the last day of the month
(GMT+3).</p>
<p>2、You can only get each grade reward once.</p>
<p>3、Each round of activities end, the rewards will automatically expire.</p>
<p>4、Contact our official customer service to get your unique ID!</p>
<p>5、Recharge agent can not join the activity.</p>
</div>
</div>
</div>
</body>
</html>
<script src="../../common/js/flexible.js"></script>
<script src="../../common/js/jquery-3.2.1.min.js"></script>
<script src="../../common/js/common2.js"></script>
<script src="../../common/js/layer.js"></script>
<script src="../../common/js/vconsole.min.js"></script>
<script src="../../common/js/route-constant.js"></script>
<script src="./local/en.js"></script>
<script src="./local/zh.js"></script>
<script src="./local/ar.js"></script>
<script src="./js/index.js"></script>
<script src="../../common/local/langHandler.js"></script>

View File

@@ -0,0 +1,250 @@
let urlPrefix = getUrlPrefix()
let browser = checkVersion()
let env = EnvCheck();
if (env == 'test') {
new VConsole();
}
// 封裝layer消息提醒框
let layerIndex
var langReplace;
var localLang;
const showLoading = (content = langReplace(localLang.demoModule.layerIndex1)) => {
layer.open({
type: 2,
shadeClose: false,
content,
success(e) {
layerIndex = $(e).attr('index')
}
})
}
const hideLoading = (index) => {
layer.close(index)
}
const toastMsg = (content = langReplace(localLang.demoModule.layerIndex2), time = 2) => {
layer.open({
content,
time,
skin: 'msg'
})
}
var countupTime;//倒计时容器
var isLock = true;
var page = 1;
var wealth;
var limitWealth;
// 初始化函數
$(function () {
getInfoFromClient();
fuzzyMatchUpdateQueryStringParameterFun(); // 判断语言
setTimeout(function () {
// 頁面全屏
if (browser.app) {
if (browser.android) {
window.androidJsObj.initShowNav(false)
} else {
window.webkit.messageHandlers.initShowNav.postMessage(0)
}
};
// 頂部返回事件
$('.back img').click(() => {
if (browser.android) {
window.androidJsObj.closeWebView()
} else {
window.webkit.messageHandlers.closeWebView.postMessage(null)
}
})
fuzzyMatchUpdateQueryStringParameterFun(); // 判断语言
langReplace = window.lang.replace;
localLang = window.lang;
translateFun();
getConfig();
}, 100)
})
function translateFun() {
var langReplace = window.lang.replace;
var localLang = window.lang;
$('.text1').text(langReplace(localLang.demoModule.text1));
$('.text2').text(langReplace(localLang.demoModule.text2));
$('.text3').text(langReplace(localLang.demoModule.text3));
$('.text4').text(langReplace(localLang.demoModule.text4));
$('.text5').text(langReplace(localLang.demoModule.text5));
$('.text6').text(langReplace(localLang.demoModule.text6));
$('.text7').text(langReplace(localLang.demoModule.text7));
$('.text8').text(langReplace(localLang.demoModule.text8));
$('.text9').text(langReplace(localLang.demoModule.text9));
$('.text10').text(langReplace(localLang.demoModule.text10));
$('.text11').text(langReplace(localLang.demoModule.text11));
$('.text12').text(langReplace(localLang.demoModule.text12));
$('.text13').text(langReplace(localLang.demoModule.text13));
$('.text14').text(langReplace(localLang.demoModule.text14));
$('.text15').text(langReplace(localLang.demoModule.text15));
$('.text16').text(langReplace(localLang.demoModule.text16));
}
// 配置接口
function getConfig() {
showLoading()
networkRequest({
type: 'get',
url: urlPrefix + '/activity/h5/charge/rank',
data: { uid: pubInfo.uid },
success(res) {
if (res.code === 200) {
wealth = res.data.wealth;
limitWealth = res.data.limitWealth;
// 处理倒计时
countup(res.data.endTime - res.timestamp);
// 处理当前余额
$('.myRecharge p b').text('$' + res.data.usb);
// 渲染档位
res.data.activityLevelUserVo.forEach((res, i) => {
$(`.recharge${i + 1} .bottom .but`).attr('level', res.level);
// 处理按钮状态
if (res.receiveStatus == false) {
console.log(i);
if (res.receiveSwitch) {
$(`.recharge${i + 1} .bottom .but`).attr('click', 1);
$(`.recharge${i + 1} .bottom .but`).addClass('act');
} else {
$(`.recharge${i + 1} .bottom .but`).attr('click', 0);
$(`.recharge${i + 1} .bottom .but`).removeClass('act');
}
} else {
$(`.recharge${i + 1} .bottom .but`).attr('click', 0);
$(`.recharge${i + 1} .bottom .but`).removeClass('act');
}
// 处理前三
if (wealth < limitWealth) {
res.userVos.forEach((val, index) => {
$(`.recharge${i + 1} .content .topBox .no${index + 1} .tx`).attr('src', val.avatar);
})
} else {
$(`.recharge${i + 1} .content .topTitle`).hide();
$(`.recharge${i + 1} .content .topBox`).hide();
}
})
} else {
toastMsg(res.message)
}
hideLoading(layerIndex)
},
error(err) {
hideLoading(layerIndex)
toastMsg(langReplace(localLang.demoModule.layerIndex3))
}
})
}
// 跳转充值
$('.myRecharge .but').click(function () {
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 + '/molistar/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 + '/molistar/modules/pay/index.html?channelType=4';
}
}
})
// 打开规则弹窗
$('.header .rule_icon').click(function () {
$('.pub .pub_in .title').html(langReplace(localLang.demoModule.text17));
$('.pub .pub_in .centent').html(langReplace(localLang.demoModule.text18));
$('.pub ').show();
bodyScroolFun(true);
})
// 打开我的充值弹窗
$('.myRecharge p img').click(function () {
$('.pub .pub_in .centent').addClass('myRechargeText');
$('.pub .pub_in .title').html(langReplace(localLang.demoModule.text19));
$('.pub .pub_in .centent').html(langReplace(localLang.demoModule.text20));
$('.pub ').show();
bodyScroolFun(true);
})
// 打开定制礼物弹窗
$('').click(function () {
$('.pub .pub_in .centent').addClass('myRechargeText');
$('.pub .pub_in .title').html(langReplace(localLang.demoModule.text21));
$('.pub .pub_in .centent').html(langReplace(localLang.demoModule.text22));
$('.pub ').show();
bodyScroolFun(true);
})
// 关闭弹窗
$('.pub .pub_in .close').click(function () {
$('.pub .pub_in .centent').removeClass('myRechargeText');
$('.pub ').hide();
bodyScroolFun(false);
})
// 倒計時
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中
$('.header .time .day b').text(d);
$('.header .time .hour b').text(h);
$('.header .time .min b').text(m);
$('.header .time .sec b').text(s);
} else {
getConfig();
}
if (leftTime > 0) {
leftTime = leftTime - 1000;
}
countupTime = setTimeout(function () {
countup(leftTime);
}, 1000);
}
//补0操作
function getzf(num) {
if (parseInt(num) < 10) {
num = '0' + num;
}
return num;
}
// 领取按钮
$('.recharges .bottom .but').click(function () {
var level = $(this).attr('level');
var click = $(this).attr('click');
if (click == 1) {
showLoading()
networkRequest({
type: 'get',
url: urlPrefix + '/activity/h5/charge/recv',
data: { uid: pubInfo.uid, level },
success(res) {
if (res.code === 200) {
getConfig();
} else {
toastMsg(res.message)
}
hideLoading(layerIndex)
},
error(err) {
hideLoading(layerIndex)
toastMsg(langReplace(localLang.demoModule.layerIndex3))
}
})
}
})

View File

@@ -0,0 +1,40 @@
// 阿拉伯
langAr = {
// 模块
demoModule: {
layerIndex1: `جار التحميل...`,
layerIndex2: `نجاح`,
layerIndex3: `خطأ في الشبكة`,
text1: `إعادة شحن شهرية`,
text2: `القواعد`,
text3: `يوم`,
text4: `ساعة`,
text5: `دقيقة`,
text6: `ثانية`,
text7: `إعادة شحني`,
text8: `انتقل إلى إعادة الشحن`,
text9: `إعادة شحن $10`,
text10: `احصل على مكافأة`,
text11: `إعادة شحن $100`,
text12: `إعادة شحن $300`,
text13: `أفضل 3 فائزين`,
text14: `إعادة شحن $500`,
text15: `إعادة شحن $1000`,
text16: `إعادة شحن $3000`,
text17: `القواعد`,
text18: `
<p>1، وقت نشاط إعادة الشحن: من 00:00:00 في اليوم الأول من كل شهر إلى 23:59:59 في اليوم الأخير من الشهر (GMT+3).</p>
<p>2، يمكنك الحصول على مكافأة كل درجة مرة واحدة فقط.</p>
<p>3، عند انتهاء كل جولة من الأنشطة، ستنتهي المكافآت تلقائيًا.</p>
<p>4، اتصل بخدمة العملاء الرسمية للحصول على معرفك الفريد!</p>
<p>5، لا يمكن لوكيل الشحن الانضمام إلى النشاط.</p>
`,
text19: `إعادة شحن شهريتي`,
text20: `
<p>1، تشمل طرق إعادة الشحن Google وApple الداخلية وما إلى ذلك.</p>
<p>2، لا يمكن لوكيل الشحن الانضمام إلى النشاط.</p>
`,
text21: `هدية مخصصة`,
text22: `<p>يمكنك إرسال الفيديو الخاص بك إلى خدمة العملاء لدينا للحصول على هديتك المخصصة.</p>`,
}
}

View File

@@ -0,0 +1,38 @@
langEn = {
demoModule: {
layerIndex1: `Loading...`,
layerIndex2: `Success`,
layerIndex3: `Network error`,
text1: `Monthoy recharge`,
text2: `rules`,
text3: `Day`,
text4: `Hour`,
text5: `Min`,
text6: `Sec`,
text7: `My Recharge`,
text8: `Go to Recharge`,
text9: `Recharge $10`,
text10: `Get reward`,
text11: `Recharge $100`,
text12: `Recharge $300`,
text13: `Top 3 Winner`,
text14: `Recharge $500`,
text15: `Recharge $1000`,
text16: `Recharge $3000`,
text17: `Rules`,
text18: `
<p>1、Recharge activity time: 0:00:00 on the 1st of each month to 23:59:59 on the last day of the month (GMT+3).</p>
<p>2、You can only get each grade reward once.</p>
<p>3、Each round of activities end, the rewards will automatically expire.</p>
<p>4、Contact our official customer service to get your unique ID!</p>
<p>5、Recharge agent can not join the activity.</p>
`,
text19: `My Monthly Recharge`,
text20: `
<p>1、Recharge methods include Google, Apple internal purchase and so on.</p>
<p>2、Recharge agent can not join the activity.</p>
`,
text21: `Customized Gift`,
text22: `<p>You can send your special video to our customer service to get your customized gift.</p>`,
}
}

View File

@@ -0,0 +1,40 @@
// 中文
langZh = {
// 模塊
demoModule: {
layerIndex1: `加载中...`,
layerIndex2: `成功`,
layerIndex3: `网络错误`,
text1: `月度充值`,
text2: `规则`,
text3: ``,
text4: `小时`,
text5: `分钟`,
text6: ``,
text7: `我的充值`,
text8: `前往充值`,
text9: `充值 $10`,
text10: `获得奖励`,
text11: `充值 $100`,
text12: `充值 $300`,
text13: `前三名获奖者`,
text14: `充值 $500`,
text15: `充值 $1000`,
text16: `充值 $3000`,
text17: `规则`,
text18: `
<p>1、充值活动时间每月1日00:00:00到每月最后一天23:59:59GMT+3。</p>
<p>2、每个等级的奖励只能获得一次。</p>
<p>3、每轮活动结束后奖励将自动过期。</p>
<p>4、联系客服获取您的唯一ID</p>
<p>5、充值代理不能参加活动。</p>
`,
text19: `我的月度充值`,
text20: `
<p>1、充值方式包括Google、Apple内购等。</p>
<p>2、充值代理不能参加活动。</p>
`,
text21: `定制礼品`,
text22: `<p>您可以将您的特别视频发送给我们的客服,以获取定制礼品。</p>`,
}
}