let urlPrefix = getUrlPrefix()
let browser = checkVersion()
let queryObj = getQueryString()
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'
})
}
// 获取门票包信息
let ticketObj = {}
let ticketStatus
let options, callLib;
const getTicketDetail = () => {
showLoading()
networkRequest({
type: 'GET',
url: urlPrefix + '/gameManage/channel/ticket/getDetail',
data: {
packageId : queryObj.pid
// packageId: 2
},
success(res) {
hideLoading(layerIndex)
if (res.code === 200) {
ticketStatus = res.data.status
ticketObj = res.data
if(browser.android){
options = {
scheme: {
protocol: 'pikoapp',
host: 'linkedme'
},
intent: {
package: 'com.mango.piko',
scheme: 'pikoapp',
},
universal: {
host: 'api.zhongjialx.com',
pathKey: ''
},
// appstore: 'http://doudouyue.com/8axv',
appstore: 'https://apps.apple.com/cn/app/id1513122909',
fallback: res.data.packageUrl,
timeout: 3000,
}
callLib = new CallApp(options)
}
showView()
} else {
toastMsg(res.message)
}
},
error(err) {
hideLoading(layerIndex)
toastMsg('網絡錯誤')
}
})
}
// 根据status渲染不同视图
const showView = () => {
// ticketStatus = 1
if (ticketStatus === 2) {
$('.fail-wrap .tip2').html(`已超过领取时间,下次要抓紧哦~`)
$('.fail-wrap').show()
} else if (ticketStatus === 3) {
window.location.href = './invalid.html'
} else if (ticketStatus === 1) {
if (!ticketObj.stock) {
$('.fail-wrap .tip2').html(`很抱歉,已领完,下次手速要快哦!`)
$('.fail-wrap').show()
} else {
$('.index-wrap').show()
}
}
renderView()
}
const renderView = () => {
$('.desc').html(ticketObj.showText)
$('.ticket-info img, .fail-wrap img').attr('src', ticketObj.ticketPic)
$('.ticket-name').html(ticketObj.ticketName)
$('.ticket-left-num span, .current-left span').html(ticketObj.stock)
$('.limitNum').html(ticketObj.limitNum)
let month = dateFormat(ticketObj.endTime, 'MM')
let day = dateFormat(ticketObj.endTime, 'dd')
let hour = dateFormat(ticketObj.endTime, 'hh:mm')
$('.month').html(month)
$('.day').html(day)
$('.hour').html(hour)
}
// 获取手机验证码
const getCode = (mobile) => {
showLoading()
$.ajax({
type: 'POST',
url: urlPrefix + '/sms/getCode?app=piko',
data: {
mobile,
type: 1
},
success(res) {
hideLoading(layerIndex)
if (res.code === 200) {
toastMsg(res.message)
timer()
} else {
toastMsg(res.message)
}
},
error() {
hideLoading(layerIndex)
toastMsg('網絡錯誤')
}
})
}
// 验证码倒计时
let time
let num = 60
let canGetCode = true
const timer = () => {
canGetCode = false
$('.verify-btn').html(`重新获取(${num}s)`)
clearInterval(time)
time = setInterval(() => {
if (num--) {
$('.verify-btn').html(`重新获取(${num}s)`)
} else {
$('.verify-btn').html(`获取验证码`)
clearInterval(time)
canGetCode = true
}
}, 1000)
}
// 用户领取门票
let drawParams = {}
const drawTicket = (params) => {
showLoading();
$.ajax({
type: 'POST',
url: urlPrefix + `/gameManage/channel/ticket/receiveTicket`,
data: {
packageId : queryObj.pid,
// packageId: 2,
phone: params.phone,
smsCode: params.smsCode,
},
success(res) {
hideLoading(layerIndex)
// res.code = 230003
if (res.code === 200) {
$('.desc').html(ticketObj.showText)
$('.success-wrap img').attr('src', ticketObj.ticketPic)
$('.success-wrap .ticket-name').html(ticketObj.ticketName + '*' + ticketObj.limitNum)
$('.index-wrap').hide()
$('.success-wrap').show()
} else if (res.code === 230003) {
$('.shade-content .title').html('该手机号未注册pikoApp
无法领取门票')
$('.shade-content .content-tip').html('请先前往pikoApp完成注册再来领取哦~')
$('.shade-content .content-btn').html('去APP内注册>>')
$('.shade-mask').show()
} else if (res.code === 230004) {
$('.shade-content .title').html('领取失败
该手机号已经领取过该门票')
$('.shade-content .content-tip').html('请优先使用已领取的门票哦~')
$('.shade-content .content-btn').html('去参赛>>')
$('.shade-mask').show()
} else if (res.code === 230006) {
window.location.href = './invalid.html'
} else if (res.code === 230007) {
$('.index-wrap').hide()
$('.fail-wrap .tip2').html(`已超过领取时间,下次要抓紧哦~`)
$('.fail-wrap').show()
} else if (res.code === 230008) {
$('.index-wrap').hide()
$('.fail-wrap .tip2').html(`很抱歉,已领完,下次手速要快哦!`)
$('.fail-wrap .current-left span').html(0)
$('.fail-wrap').show()
} else if (res.code === 230009) {
$('.shade-content .title').html('领取失败
该用户已经领取过门票')
$('.shade-content .content-tip').html('请优先使用已领取的门票哦~')
$('.shade-content .content-btn').html('去参赛>>')
$('.shade-mask').show()
} else {
toastMsg(res.message)
}
},
error() {
hideLoading(layerIndex)
toastMsg('網絡錯誤')
}
})
}
$(function () {
getInfoFromClient()
setTimeout(() => {
getTicketDetail()
}, 50)
let phoneReg = /^1[3-9][0-9]{9}$/;
$('.verify-btn').on('click', () => {
if (!phoneReg.test($('.mobile-number').val())) {
return toastMsg('请输入正确的手机号码~')
}
if (canGetCode) {
getCode($('.mobile-number').val())
}
})
$('.draw-btn').on('click', () => {
drawParams.phone = $('.mobile-number').val();
drawParams.smsCode = $('.verify-ipt').val();
if (!phoneReg.test($('.mobile-number').val())) {
return toastMsg('请输入正确的手机号码~')
}
if (!$('.verify-ipt').val()) {
return toastMsg('请输入验证码~')
}
drawTicket(drawParams)
})
// 关闭弹窗
$('.shade-mask').on('click', function () {
$(this).hide()
})
$('.shade-content').on('click', function (e) {
e.stopPropagation()
})
// 安卓系统键盘会撑起底部固定定位元素
$('.mobile-number, .verify-ipt').focus(() => {
$('.bottom').hide()
})
$('.mobile-number, .verify-ipt').blur(() => {
setTimeout(() => {
if ($(document.activeElement).attr("id") === 'body') {
$('.bottom').fadeIn(400)
}
}, 50)
})
let ua = navigator.userAgent.toLowerCase();
// 按钮点击
if(browser.android){
if (browser.weixin || ua.match(/\sQQ/i) == " qq") {
return $('.tips-tit').fadeIn(30);
}
$('.download, .content-btn, .success-btn').on('click', function () {
callLib.open({
path: "", //必填,可传空字符串
})
})
}
// ios使用深度链接
if(browser.ios){
let linkedKey = 'af4f58541a86d5f6c4193349f675419a'
let linkedObj = {
type: EnvCheck(),
}
if(queryObj.enterprise){
linkedKey = 'af4f58541a86d5f6c4193349f675419a'
}
linkedme.init(linkedKey, { type: EnvCheck() }, null)
linkedme.link(linkedObj, function(err, response){
if(err){
// 生成深度链接失败,返回错误对象err
console.log('err:', err);
}else{
$('.download, .content-btn, .success-btn').on('click', function(){
linkedme.trigger_deeplink(response.url);
})
$('.download, .content-btn, .success-btn').attr('href', response.url)
}
}, false)
}
})