Commit a2bc5993 by howie

'弹窗广告新增配置项'

parent 82e4f016
......@@ -28,32 +28,39 @@ Component({
img: app.DFSImg(this.data.datas.componentData.imageUrl,700,null,1)
})
console.log(this.data.datas.componentData,'this.data.datas.componentData.once')
if(!this.data.datas.componentData.once){
console.log('laizhelile')
let routes = getCurrentPages()
let page = routes[routes.length - 1].route
wx.removeStorageSync(`${app.globalData.shopInfo.shopCode}_popFlag_${page}_${this.data.datas.id}`)
}
if (this.getPopFlag() == 'true'){
this.setData({
domainShow : false
})
}else{
this.setData({
domainShow: true
})
if (this.data.datas.componentData.columnNum > 0 && this.data.datas.componentData.autoOff){
clearTimeout(this.data.timeout);
this.data.timeout = setTimeout(() => {
this.setData({
domainShow: false
})
if(this.data.datas.componentData.once){
this.setPopFlag('true')
}
}, this.data.datas.componentData.columnNum * 1000)
// if(!this.data.datas.componentData.once){
// console.log('laizhelile')
// let routes = getCurrentPages()
// let page = routes[routes.length - 1].route
// wx.removeStorageSync(`${app.globalData.shopInfo.shopCode}_popFlag_${page}_${this.data.datas.id}`)
// }
// if (this.getPopFlag() == 'true'){
// this.setData({
// domainShow : false
// })
// }else{
// this.setData({
// domainShow: true
// })
// if (this.data.datas.componentData.columnNum > 0 && this.data.datas.componentData.autoOff){
// this.autoOff()
// }
// }
let nowTime = Date.now()
let pushTime = this.data.datas.componentData.pushTime
// 如果没有设置时间范围,按老客户的需求执行(30天后过期),将条件设置为按天推送,间隔时间30天
if(pushTime.length == 0) {
this.data.datas.componentData.pushDay = 30
this.data.datas.componentData.pushFrequency = '2'
this.data.datas.componentData.isDayOrWeek = '0'
this.isPush()
}
// 设置了时间范围,且在时间范围中,根据条件推送
else if(pushTime.length > 0 && nowTime >= pushTime[0] && nowTime <= pushTime[1]) {
this.isPush()
}else {
// 不在时间范围中,关闭
this.setData({ domainShow: false })
}
},
......@@ -61,28 +68,99 @@ Component({
* 组件的方法列表
*/
methods: {
getPopFlag() {
let routes = getCurrentPages()
let page = routes[routes.length - 1].route
return wx.getStorageSync(`${app.globalData.shopInfo.shopCode}_popFlag_${page}_${this.data.datas.id}`)
// 判断何时定时关闭
autoOff() {
if (
this.data.datas.componentData.columnNum > 0 &&
this.data.datas.componentData.autoOff
) {
clearTimeout(this.timeout);
this.data.timeout = setTimeout(() => {
this.setData({ domainShow: false })
}, this.data.datas.componentData.columnNum * 1000);
}
},
setPopFlag(value) {
app.globalData.setPopupStorage = 1;
let routes = getCurrentPages()
let page = routes[routes.length - 1].route
wx.setStorageSync(`${app.globalData.shopInfo.shopCode}_popFlag_${page}_${this.data.datas.id}`, value)
let popUpList = wx.getStorageSync('popUpList') || [];
popUpList.push(`${app.globalData.shopInfo.shopCode}_popFlag_${page}_${this.data.datas.id}`)
wx.setStorageSync('popUpList', popUpList)
console.log(app.globalData)
// 根据条件判断是否推送
isPush() {
switch(this.data.datas.componentData.pushFrequency) {
case '0':
// 永久一次 推送
let pushCount = wx.getStorageSync('onlyPushOnceCount');
if(pushCount !='pushed') {
wx.setStorageSync('onlyPushOnceCount', 'pushed');
this.setData({ domainShow: true })
this.autoOff()
wx.removeStorageSync('dayPushTimeInfo') //清除按天推送的缓存,防止切换配置后出错
}else {
break;
}
break;
case '1':
// 每次进入 推送
wx.removeStorageSync('dayPushTimeInfo') //清除按天推送的缓存,防止切换配置后出错
wx.removeStorageSync('onlyPushOnceCount') //清除永久推送的缓存,防止切换配置后出错
this.setData({ domainShow: true })
this.autoOff()
break;
case '2':
// 自定义
if(this.data.datas.componentData.isDayOrWeek == 0) {
// 按天推送
this.timedDayPush()
wx.removeStorageSync('onlyPushOnceCount') //清除永久推送的缓存,防止切换配置后出错
}else if(this.data.datas.componentData.isDayOrWeek == 1) {
// 按周推送
this.timedWeekPush()
wx.removeStorageSync('dayPushTimeInfo') //清除按天推送的缓存,防止切换配置后出错
wx.removeStorageSync('onlyPushOnceCount') //清除永久推送的缓存,防止切换配置后出错
}
break;
}
},
// 自定义定时推送,按天数
timedDayPush() {
// 如果缓存中没有信息,或者缓存中应该弹窗的时间已经过去了,则弹窗,并算出下一次弹窗的时间。
let nowTime = Date.now()
let pushTimeInfo = wx.getStorageSync('dayPushTimeInfo');
if(!pushTimeInfo || nowTime >= pushTimeInfo) {
this.setData({ domainShow: true })
this.autoOff()
let nextPushTime = nowTime + Number(this.data.datas.componentData.pushDay) * 24 * 60 * 60 * 1000;
wx.setStorageSync('dayPushTimeInfo', JSON.stringify(nextPushTime))
}
},
// 自定义定时推送,按周几
timedWeekPush() {
// 当天是周几
let currentDayOfWeek = new Date().getDay()
// 如果当天在推送的周几中,则推送
if(this.data.datas.componentData.pushWeek.includes(currentDayOfWeek)) {
this.setData({ domainShow: true })
this.autoOff()
}
},
// getPopFlag() {
// let routes = getCurrentPages()
// let page = routes[routes.length - 1].route
// return wx.getStorageSync(`${app.globalData.shopInfo.shopCode}_popFlag_${page}_${this.data.datas.id}`)
// },
// setPopFlag(value) {
// app.globalData.setPopupStorage = 1;
// let routes = getCurrentPages()
// let page = routes[routes.length - 1].route
// wx.setStorageSync(`${app.globalData.shopInfo.shopCode}_popFlag_${page}_${this.data.datas.id}`, value)
// let popUpList = wx.getStorageSync('popUpList') || [];
// popUpList.push(`${app.globalData.shopInfo.shopCode}_popFlag_${page}_${this.data.datas.id}`)
// wx.setStorageSync('popUpList', popUpList)
// console.log(app.globalData)
// },
backHandle(e){
this.setData({
domainShow : false
})
if(this.data.datas.componentData.once){
this.setPopFlag("true");
}
// if(this.data.datas.componentData.once){
// this.setPopFlag("true");
// }
app.trackCpn(e, this.data.datas.componentName, '关闭自动弹窗广告')
clearTimeout(this.data.timeout);
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment