Files
peko-h5/view/peko/activity/act-guard-planet/js/mall.js

256 lines
8.0 KiB
JavaScript

let urlPrefix = getUrlPrefix()
let browser = checkVersion()
let env = EnvCheck();
if (env == 'test') {
new VConsole();
}
// 封装layer消息提醒框
let layerIndex
const showLoading = () => {
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'
})
}
// 获取用户相关信息
const getUserInfo = (param) => {
networkRequest({
type: 'GET',
url: urlPrefix + '/act/callBattle/getUserActInfo',
success(res){
if(res.code === 200){
$('.bottom').find('.avatar img').attr('src', res.data.avatar)
if(res.data.nick.length > 10){
res.data.nick = res.data.nick.slice(0,10) + '...'
}
$('.bottom').find('.nick').html(res.data.nick)
$('.bottom').find('.diamond-num span').html(res.data.diamonds)
if(param){
$('.bottom').find('.fragment-num span')[0].innerHTML = parseInt($('.bottom').find('.fragment-num span')[0].innerHTML) + param
} else{
$('.bottom').find('.fragment-num span').html(res.data.pieceNum)
}
}
},
error(err){
toastMsg('網絡錯誤')
}
})
}
// 获取头饰礼包信息
let listPack = []
const getListPack = () => {
networkRequest({
type: 'GET',
url: urlPrefix + '/act/callBattle/listPack',
success(res){
if(res.code === 200){
console.log(res.data);
listPack = res.data
renderList()
}
},
error(err){
toastMsg('網絡錯誤')
}
})
}
// 渲染礼包
const renderList = () => {
listPack.map((item, index) => {
let $li = $('ul.buy-area li').eq(index)
$li.find('.headwear-pic').find('img').attr('src', item.imgUrl)
$li.find('.headwear-name').html(item.name)
$li.find('.headwear-price span').html(item.sellingPrice)
$li.find('.headwear-award span').html(item.ticketNum)
let currentBuyBtn = $('.buy-btn').eq(index)
currentBuyBtn.data('name', item.name)
currentBuyBtn.data('day', 1)
currentBuyBtn.data('gold', item.sellingPrice)
currentBuyBtn.data('giftId', item.id)
currentBuyBtn.data('ticketNum', item.ticketNum)
})
}
$(function(){
getInfoFromClient()
setTimeout(function(){
getUserInfo()
getListPack()
}, 50)
// 监听购买按钮点击事件
$('ul.buy-area').on('click', '.buy-btn', function(){
console.log($(this).data());
if (!$(this).data('name') || !$(this).data('day') || !$(this).data('gold') || !$(this).data('giftId')) {
toastMsg('礼包信息不完整')
return
}
giftObj = {}
giftObj['name'] = $(this).data('name')
giftObj['day'] = $(this).data('day')
giftObj['gold'] = $(this).data('gold')
giftObj['giftId'] = $(this).data('giftId')
giftObj['num'] = 1
giftObj['ticketNum'] = $(this).data('ticketNum')
$('.shade-mask-buy').find('.title span').html(giftObj['name'])
$('.shade-mask-buy').find('.buy-day span').html(giftObj['day'])
$('.shade-mask-buy').find('.buy-price span').html(giftObj['gold'])
$('.shade-mask-buy').find('.inputNum').val(giftObj['num'])
$('.shade-mask-buy').fadeIn(50)
})
// 关闭购买弹窗
$('.cancel').on('click', function(){
$('.shade-mask-buy').fadeOut(50)
})
$('.shade-mask-buy').on('click', function(){
$('.shade-mask-buy').fadeOut(50)
})
$('.shade-content-buy').on('click', function(e){
e.stopPropagation()
})
// 关闭余额不足弹窗
$('.shade-mask-no-money').on('click', function(){
$('.shade-mask-no-money').fadeOut(50)
})
$('.shade-content-no-money').on('click', function(e){
e.stopPropagation()
})
// 增加购买数量
$('.increase').on('click', function(){
if(giftObj['num']<9999){
giftObj['num']++;
giftObj['day']++;
let allPrice = giftObj['num'] * giftObj['gold'];
$('.inputNum').val(giftObj['num'])
$('.buy-day span').html(giftObj['day'])
$('.buy-price span').html(allPrice)
}else{
toastMsg('单次购买数量最多为9999')
}
})
// 减少购买数量
$('.decrease').on('click', function(){
if($('.inputNum').val()>0){
giftObj['num']--;
giftObj['day']--;
let allPrice = giftObj['num'] * giftObj['gold'];
$('.inputNum').val(giftObj['num'])
$('.buy-day span').html(giftObj['day'])
$('.buy-price span').html(allPrice)
}else{
toastMsg('最少购买数量为1')
}
})
// 手动输入购买数量
$('.inputNum').on('input', function(){
let exp = /^[0-9]+$/
if (!exp.test($(this).val())) {
toastMsg('请输入数字')
// $(this).val(1)
return
}
if($(this).val() > 9999){
giftObj['num'] = 9999
}else{
giftObj['num'] = $(this).val()
}
giftObj['day'] = giftObj['num'];
let allPrice = giftObj['num'] * giftObj['gold'];
$('.inputNum').val(giftObj['num'])
$('.buy-day span').html(giftObj['day'])
$('.buy-price span').html(allPrice)
})
// 确认购买
let lock = false
$('.confirm').on('click', function(){
let exp = /^[0-9]+$/
if(!exp.test($('.inputNum').val())){
toastMsg('请输入数字')
$('.inputNum').val(1)
return
}
if($('.inputNum').val() == 0){
return toastMsg('最少购买数量为1')
}
if(!lock){
lock = true
networkRequest({
type: 'POST',
url: urlPrefix + '/activity/pack/buy',
data: {
uid: pubInfo.uid,
packId: giftObj.giftId,
packNum: giftObj.num,
ticket: pubInfo.ticket
},
success(res){
if(res.code === 200){
$('.shade-mask-buy').hide()
toastMsg('购买成功!')
getUserInfo(res.data)
}else if(res.code === 2103){
$('.shade-mask-buy').hide()
$('.shade-mask-no-money').show()
}else{
toastMsg(res.message)
}
lock = false
},
error(err){
toastMsg('網絡錯誤')
}
})
}
})
// 跳转充值
$('.recharge, .no-money-recharge').on('click', function () {
if(browser.app){
if(browser.android){
// window.androidJsObj.openChargePage()
tools.nativeUtils.jumpAppointPage('RECHARGE_PAGE')
}else if(browser.ios){
window.webkit.messageHandlers.openChargePage.postMessage(null)
}
}else{
toastMsg('请在app内打开')
}
})
//返回页面 重新请求接口
var hiddenProperty = 'hidden' in document ? 'hidden' :
'webkitHidden' in document ? 'webkitHidden' :
'mozHidden' in document ? 'mozHidden' : null;
var visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');
var onVisibilityChange = function () {
if(!document[hiddenProperty]){
$('.shade-mask-no-money').hide()
getUserInfo()
}
}
document.addEventListener(visibilityChangeEvent, onVisibilityChange);
})