284 lines
7.4 KiB
JavaScript
284 lines
7.4 KiB
JavaScript
|
var app = getApp();
|
||
|
var util = require('../../utils/util.js');
|
||
|
var status = require('../../utils/index.js');
|
||
|
|
||
|
Page({
|
||
|
mixins: [require('../../mixin/globalMixin.js')],
|
||
|
data: {
|
||
|
statusBarHeight: app.globalData.statusBarHeight + 44 + 'px',
|
||
|
searchBarHeight: app.globalData.statusBarHeight + 'px',
|
||
|
currentTab: 0,
|
||
|
scekillTimeList: [],
|
||
|
endTime: 10000,
|
||
|
list: [],
|
||
|
clearTimer: false
|
||
|
},
|
||
|
secTime: '',
|
||
|
seckill_share_title: '',
|
||
|
seckill_share_image: '',
|
||
|
handlerGobackClick(delta) {
|
||
|
const pages = getCurrentPages();
|
||
|
if (pages.length >= 2) {
|
||
|
wx.navigateBack({
|
||
|
delta: delta
|
||
|
});
|
||
|
} else {
|
||
|
wx.switchTab({
|
||
|
url: '/eaterplanet_ecommerce/pages/index/index'
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
handlerGohomeClick(url) {
|
||
|
wx.switchTab({
|
||
|
url: '/eaterplanet_ecommerce/pages/index/index'
|
||
|
});
|
||
|
},
|
||
|
/**
|
||
|
* 生命周期函数--监听页面加载
|
||
|
*/
|
||
|
onLoad: function (options) {
|
||
|
status.setNavBgColor();
|
||
|
app.setShareConfig();
|
||
|
this.secTime = options.time || '';
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面显示
|
||
|
*/
|
||
|
onShow: function () {
|
||
|
let that = this;
|
||
|
util.check_login_new().then((res) => {
|
||
|
that.setData({needAuth: !res})
|
||
|
res && (0, status.cartNum)('', true).then((resp) => {
|
||
|
resp.code == 0 && that.setData({
|
||
|
cartNum: resp.data
|
||
|
})
|
||
|
});
|
||
|
})
|
||
|
this.loadPage();
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面隐藏
|
||
|
*/
|
||
|
onHide: function () {
|
||
|
this.setData({ clearTimer: false })
|
||
|
},
|
||
|
|
||
|
loadPage: function(){
|
||
|
this.getInfo();
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 授权成功回调
|
||
|
*/
|
||
|
authSuccess: function () {
|
||
|
const that = this;
|
||
|
this.setData({
|
||
|
showEmpty: false,
|
||
|
needAuth: false,
|
||
|
showAuthModal: false
|
||
|
}, () => {
|
||
|
that.loadPage()
|
||
|
})
|
||
|
},
|
||
|
|
||
|
authModal: function () {
|
||
|
if (this.data.needAuth) {
|
||
|
this.setData({
|
||
|
showAuthModal: !this.data.showAuthModal
|
||
|
});
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
},
|
||
|
|
||
|
getInfo: function(){
|
||
|
let that = this;
|
||
|
app.util.request({
|
||
|
url: 'entry/wxapp/index',
|
||
|
data: {
|
||
|
controller: 'scekill.get_scekill_info'
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
success: function (res) {
|
||
|
if(res.data.code==0){
|
||
|
let {
|
||
|
seckill_is_open,
|
||
|
scekill_time_arr,
|
||
|
seckill_page_title,
|
||
|
seckill_bg_color,
|
||
|
seckill_share_title,
|
||
|
seckill_share_image,
|
||
|
showTabbar
|
||
|
} = res.data.data;
|
||
|
wx.setNavigationBarTitle({
|
||
|
title: seckill_page_title || '整点秒杀'
|
||
|
})
|
||
|
|
||
|
let myDate = new Date();
|
||
|
let curHour = myDate.getHours(); // 当前时间
|
||
|
console.log('当前时间:', curHour);
|
||
|
let curSeckillIdx = 0; //当前时间索引
|
||
|
let scekillTimeArr = scekill_time_arr || []; //显示的时间段
|
||
|
// if (scekill_time_arr.length > 5) {}
|
||
|
//判断各个时段状态
|
||
|
let scekillTimeList = [];
|
||
|
let currentTab = 0;
|
||
|
if (scekillTimeArr.length) {
|
||
|
scekillTimeArr.forEach((item, idx) => {
|
||
|
let secObj = {};
|
||
|
//state: 0已开抢 1疯抢中 2即将开抢
|
||
|
if (item == curHour) {
|
||
|
secObj.state = 1;
|
||
|
secObj.desc = '疯抢中';
|
||
|
currentTab = idx;
|
||
|
} else if (item < curHour) {
|
||
|
secObj.state = 0;
|
||
|
secObj.desc = '已开抢';
|
||
|
} else {
|
||
|
secObj.state = 2;
|
||
|
secObj.desc = '即将开抢';
|
||
|
}
|
||
|
secObj.timeStr = (item < 10 ? '0' + item : item) + ':00';
|
||
|
secObj.seckillTime = item;
|
||
|
scekillTimeList.push(secObj);
|
||
|
})
|
||
|
if (that.secTime!='') {
|
||
|
let k = scekillTimeArr.findIndex((n) => n == that.secTime);
|
||
|
if (k > 0) currentTab = k;
|
||
|
}
|
||
|
that.getSecKillGoods(scekillTimeArr[currentTab]);
|
||
|
}
|
||
|
|
||
|
let curTimeStr = (scekillTimeArr[currentTab]*1 + 1);
|
||
|
if (that.secTime!='' && curHour!=scekillTimeArr[currentTab]) {
|
||
|
curTimeStr = (scekillTimeArr[currentTab]*1);
|
||
|
}
|
||
|
|
||
|
let endTime = new Date(new Date().toLocaleDateString()).getTime() + curTimeStr*60*60*1000;
|
||
|
that.seckill_share_title = seckill_share_title;
|
||
|
that.seckill_share_image = seckill_share_image;
|
||
|
that.setData({ scekillTimeList, seckill_bg_color, currentTab, endTime, showTabbar })
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
|
||
|
handleClick(e) {
|
||
|
let that = this;
|
||
|
let currentTab = e.currentTarget.dataset.index;
|
||
|
let scekillTimeList = this.data.scekillTimeList;
|
||
|
let day = new Date(new Date().toLocaleDateString()).getTime();
|
||
|
let curTimeItem = scekillTimeList[currentTab];
|
||
|
let endTime = 0;
|
||
|
if (curTimeItem.state == 1) {
|
||
|
endTime = day + (curTimeItem.seckillTime * 1 + 1) * 60 * 60 * 1000;
|
||
|
} else {
|
||
|
if (curTimeItem.state == 2) {
|
||
|
endTime = day + (curTimeItem.seckillTime * 1) * 60 * 60 * 1000 + 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.setData({
|
||
|
list: [],
|
||
|
currentTab,
|
||
|
endTime,
|
||
|
clearTimer: true
|
||
|
}, ()=>{
|
||
|
that.getSecKillGoods(curTimeItem.seckillTime);
|
||
|
})
|
||
|
},
|
||
|
|
||
|
getSecKillGoods: function (seckill_time) {
|
||
|
wx.showLoading();
|
||
|
var that = this;
|
||
|
var cur_community = wx.getStorageSync('community');
|
||
|
var token = wx.getStorageSync('token');
|
||
|
app.util.request({
|
||
|
url: 'entry/wxapp/index',
|
||
|
data: {
|
||
|
controller: 'index.load_gps_goodslist',
|
||
|
token: token,
|
||
|
pageNum: 1,
|
||
|
head_id: cur_community.communityId,
|
||
|
seckill_time,
|
||
|
is_seckill: 1,
|
||
|
per_page: 10000
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
success: function (res) {
|
||
|
wx.stopPullDownRefresh();
|
||
|
wx.hideLoading();
|
||
|
if (res.data.code == 0) {
|
||
|
let list = res.data.list || [];
|
||
|
list = that.transTime(list);
|
||
|
let showEmpty = false;
|
||
|
if (list.length == 0) showEmpty = true;
|
||
|
that.setData({ list, clearTimer: false, showEmpty })
|
||
|
} else {
|
||
|
that.setData({ clearTimer: false, showEmpty: true })
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 结束时间判断
|
||
|
*/
|
||
|
transTime: function (list) {
|
||
|
let that = this;
|
||
|
let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
|
||
|
e === 0 && list.map(function (t) {
|
||
|
t.end_time *= 1000;
|
||
|
t.actEnd = t.end_time <= new Date().getTime();
|
||
|
})
|
||
|
return list;
|
||
|
},
|
||
|
|
||
|
endCurSeckill: function(){
|
||
|
this.loadPage();
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 页面相关事件处理函数--监听用户下拉动作
|
||
|
*/
|
||
|
onPullDownRefresh: function () {
|
||
|
this.loadPage();
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 用户点击右上角分享
|
||
|
*/
|
||
|
onShareAppMessage: function () {
|
||
|
var member_id = wx.getStorageSync('member_id');
|
||
|
let {
|
||
|
seckill_share_title,
|
||
|
seckill_share_image
|
||
|
} = this;
|
||
|
return {
|
||
|
title: seckill_share_title,
|
||
|
path: "eaterplanet_ecommerce/moduleA/seckill/list?share_id=" + member_id,
|
||
|
imageUrl: seckill_share_image,
|
||
|
success: function () { },
|
||
|
fail: function () { }
|
||
|
};
|
||
|
},
|
||
|
|
||
|
onShareTimeline: function() {
|
||
|
var member_id = wx.getStorageSync('member_id');
|
||
|
let {
|
||
|
seckill_share_title,
|
||
|
seckill_share_image
|
||
|
} = this;
|
||
|
var query= `share_id=${member_id}`;
|
||
|
return {
|
||
|
title: seckill_share_title,
|
||
|
imageUrl: seckill_share_image,
|
||
|
query,
|
||
|
success: function() {},
|
||
|
fail: function() {}
|
||
|
};
|
||
|
}
|
||
|
})
|