Authored by bevishuang

优化抽奖,限定接口增加店铺ID

... ... @@ -42,7 +42,7 @@ Page({
userPrize: {
id: 0,
name: `未中奖`,
path: ''
picPath: ''
}, // 签到后用户中奖信息
indexs: [0, 1, 2, 5, 8, 7, 6, 3],
... ... @@ -107,7 +107,7 @@ Page({
var that = this;
//判断中奖位置格式
if (position == null || isNaN(position) || position > 7) {
if (position == null || isNaN(position) || position > 8) {
wx.showModal({
title: '提示',
content: '请稍后再试!',
... ... @@ -214,6 +214,8 @@ Page({
},
goRlues: function() {
console.log("规则说明");
let url = `https://activity.yoho.cn/feature/5973.html?share_id=8677&title=MKT签到规则`;
global.router.goUrl(url);
},
clockLoginEvent: function() {
... ... @@ -300,6 +302,7 @@ Page({
});
} else {
if (dataset.index === 4) {
let awardPicInfos = null;
if (this.data.isUnderway) {
this.setData({
isUnderway: false
... ... @@ -313,6 +316,7 @@ Page({
});
// 签到之前再次查询是否已经签到过,防止登录接口延迟出现多次签到情况
return this.clockLoginEvent().then(res => {
awardPicInfos = res.data.awardPicInfos;
if (util.get(res, 'data.isSign', 'N') === 'Y') {
return {
code: 401,
... ... @@ -330,7 +334,6 @@ Page({
return clockModel.signAward({
longitude: lres.data.longitude,
latitude: lres.data.latitude,
// position: this.data.luckPosition,
}).then(sres => {
//执行提示,是否中奖
if (sres.code !== 200) {
... ... @@ -352,7 +355,11 @@ Page({
this.setData({
luckPosition: index
});
this.clockLuck();
console.log("index:" + index + "//item.id:" + item.id);
wx.reportAnalytics("prizze_index", {
index:index
})
this.clockLuck(index);
}
return item;
});
... ...
... ... @@ -41,7 +41,7 @@
<text class="clock-bottom-title" bindtap="goRlues">规则说明</text>
<view class="clock-bottom-split">
</view>
<navigator url="/pages/home/index" hover-class="none" class="clock-bottom-title">我的奖品</navigator>
<navigator url="/pages/home/index" open-type="switchTab" hover-class="none" class="clock-bottom-title">我的奖品</navigator>
</view>
</view>
... ... @@ -58,14 +58,14 @@
<view class="clock-result-content">
<view class="clock-result-icon">
<view class="overflow-hidden-block">
<image mode="widthFix" src="{{helper.image(userPrize.path, 180, 180)}}"></image>
<image mode="widthFix" src="{{helper.image(userPrize.picPath, 180, 180)}}"></image>
</view>
</view>
<text class="clock-result-p1 ellipsis">{{userPrize.name}}</text>
<view class="clock-result-p2">奖品已经放入您的账户</view>
</view>
<navigator url="/pages/home/index" hover-class="none" class="clock-result-go">去查看</navigator>
<navigator url="/pages/home/index" open-type="switchTab" hover-class="none" class="clock-result-go">去看看</navigator>
</view>
</view>
</block>
... ...
... ... @@ -5,143 +5,190 @@ let app = getApp();
let yas;
Page({
data: {
navIndex: 0,
navItems: [
{id: -1, name: '限定发售'},
{id: 1, name: '潮流课堂'},
{id: 2, name: '至IN活动'}
],
saleItem: []
},
onLoad: function(options) {
let navIndex = parseInt(`0${options.nav}`, 10);
let navItems = this.data.navItems || [];
let tcategoryId = 0;
let saleItem = [];
navItems.map((nav, index) => {
saleItem.push({ page: 1, end: false, data: [] }); // init
if (navIndex === index) {
tcategoryId = nav.id;
}
});
this.setData({saleItem, navIndex });
yas = new Yas(app);
yas.pageOpenReport();
return this.getListCategory(tcategoryId, navIndex);
},
onShareAppMessage: function() {
return {
title: '潮人汇聚、尖货集结,一个城市,一个潮流中心!南京新街口艾尚天地YOHO!STORE',
path: `/pages/activity/index?nav=${this.data.navIndex}`
};
},
tapNav: function(e) {
let dataset = e.detail.dataset || {};
let saleItem = this.data.saleItem;
wx.showLoading({
title: '正在加载中...'
});
Object.assign(saleItem[dataset.index], {page: 1, end: false});
this.setData({ saleItem });
return this.getListCategory(dataset.id, dataset.index).then(() => {
this.setData({ navIndex: dataset.index }, wx.hideLoading);
});
},
getListCategory: function(id, index) {
let saleItem = this.data.saleItem[index];
if (saleItem.end) {
return Promise.resolve({code: 402, data: [], message: ''});
}
if (id === -1) {
return this.queryLimitActivityList(index);
}
return this.getActivityList(id, index);
},
// 活动列表
getActivityList: function(id, index) {
return Promise.all([
IndexModel.getActivityNowList({activityType: id, isFront: 1}),
IndexModel.getActivityEndList({activityType: id, isFront: 1})
]).then(res => {
let saleItem = this.data.saleItem;
let itemSub = saleItem[index];
let activityData = [].concat(res[0].data || [], res[1].data || []);
if (itemSub.page === 1) {
itemSub.data = [];
}
itemSub.data = itemSub.data.concat(activityData).map(item => {
return IndexModel.activityDataFormat(item);
});
itemSub.end = true;
saleItem[index] = itemSub;
this.setData({saleItem});
return res;
}).catch(e => {
console.log(e.message);
});
},
// 限定发售列表
queryLimitActivityList: function(index) {
let saleItem = this.data.saleItem;
let itemSub = saleItem[index];
return IndexModel.queryLimitActivityList({pageNum: itemSub.page++, pageSize: 10}).then(res => {
if (res.code !== 200) {
return res;
}
let limitActivityList = res.data && res.data.limitActivityList || [];
if (itemSub.page === 2) {
itemSub.data = [];
}
itemSub.data = itemSub.data.concat(limitActivityList);
itemSub.end = !limitActivityList.length;
saleItem[index] = itemSub;
this.setData({saleItem});
return res;
}).catch(e => {
console.log(e.message);
});
},
tapBooking: function(e) {
let dataset = e.currentTarget.dataset;
return global.router.go('classroomDetail', {id: dataset.id});
},
tapSaleDetail: function(e) {
let dataset = e.currentTarget.dataset;
if (['C', 'D'].indexOf(dataset.type) > -1) {
return global.router.go('limitSaleNews', {id: dataset.id});
}
global.router.go('limitSaleDetail', {id: dataset.id});
},
tapLoadMore: function() {
let index = this.data.navIndex;
return this.getListCategory(this.data.navItems[index].id, index);
data: {
navIndex: 0,
navItems: [{
id: -1,
name: '限定发售'
},
{
id: 1,
name: '潮流课堂'
},
{
id: 2,
name: '至IN活动'
}
],
saleItem: []
},
onLoad: function(options) {
let navIndex = parseInt(`0${options.nav}`, 10);
let navItems = this.data.navItems || [];
let tcategoryId = 0;
let saleItem = [];
navItems.map((nav, index) => {
saleItem.push({
page: 1,
end: false,
data: []
}); // init
if (navIndex === index) {
tcategoryId = nav.id;
}
});
this.setData({
saleItem,
navIndex
});
yas = new Yas(app);
yas.pageOpenReport();
return this.getListCategory(tcategoryId, navIndex);
},
onShareAppMessage: function() {
return {
title: '潮人汇聚、尖货集结,一个城市,一个潮流中心!南京新街口艾尚天地YOHO!STORE',
path: `/pages/activity/index?nav=${this.data.navIndex}`
};
},
tapNav: function(e) {
let dataset = e.detail.dataset || {};
let saleItem = this.data.saleItem;
wx.showLoading({
title: '正在加载中...'
});
Object.assign(saleItem[dataset.index], {
page: 1,
end: false
});
this.setData({
saleItem
});
return this.getListCategory(dataset.id, dataset.index).then(() => {
this.setData({
navIndex: dataset.index
}, wx.hideLoading);
});
},
getListCategory: function(id, index) {
let saleItem = this.data.saleItem[index];
if (saleItem.end) {
return Promise.resolve({
code: 402,
data: [],
message: ''
});
}
});
if (id === -1) {
return this.queryLimitActivityList(index);
}
return this.getActivityList(id, index);
},
// 活动列表
getActivityList: function(id, index) {
return Promise.all([
IndexModel.getActivityNowList({
activityType: id,
isFront: 1
}),
IndexModel.getActivityEndList({
activityType: id,
isFront: 1
})
]).then(res => {
let saleItem = this.data.saleItem;
let itemSub = saleItem[index];
let activityData = [].concat(res[0].data || [], res[1].data || []);
if (itemSub.page === 1) {
itemSub.data = [];
}
itemSub.data = itemSub.data.concat(activityData).map(item => {
return IndexModel.activityDataFormat(item);
});
itemSub.end = true;
saleItem[index] = itemSub;
this.setData({
saleItem
});
return res;
}).catch(e => {
console.log(e.message);
});
},
// 限定发售列表
queryLimitActivityList: function(index) {
let saleItem = this.data.saleItem;
let itemSub = saleItem[index];
let params = {
pageNum: itemSub.page++,
pageSize: 10,
belongStoreId: 94,
}
return IndexModel.queryLimitActivityList(params).then(res => {
if (res.code !== 200) {
return res;
}
let limitActivityList = res.data && res.data.limitActivityList || [];
if (itemSub.page === 2) {
itemSub.data = [];
}
itemSub.data = itemSub.data.concat(limitActivityList);
itemSub.end = !limitActivityList.length;
saleItem[index] = itemSub;
this.setData({
saleItem
});
return res;
}).catch(e => {
console.log(e.message);
});
},
tapBooking: function(e) {
let dataset = e.currentTarget.dataset;
return global.router.go('classroomDetail', {
id: dataset.id
});
},
tapSaleDetail: function(e) {
let dataset = e.currentTarget.dataset;
if (['C', 'D'].indexOf(dataset.type) > -1) {
return global.router.go('limitSaleNews', {
id: dataset.id
});
}
global.router.go('limitSaleDetail', {
id: dataset.id
});
},
tapLoadMore: function() {
let index = this.data.navIndex;
return this.getListCategory(this.data.navItems[index].id, index);
}
});
\ No newline at end of file
... ...
... ... @@ -3,65 +3,80 @@ import myScrollTap from '../my-scroll-tap';
import Yas from '../../common/yas.js';
let initData = {
data: [],
page: 1,
end: false
data: [],
page: 1,
end: false
};
let yas;
let app = getApp();
Page(Object.assign(myScrollTap, {
data: {
saleItem: Object.assign({}, initData)
},
onLoad: function() {
this.tapLoadMore();
yas = new Yas(app);
yas.pageOpenReport();
},
onPullDownRefresh: function() {
return this.queryLimitActivityList(true).then(() => {
wx.stopPullDownRefresh();
});
},
onShareAppMessage: function() {
return {
title: '潮流尖货,不抢怎么行?!我正在YOHO!STORE参加限定发售,买尖货 不陪跑!'
};
},
queryLimitActivityList: function(refresh) {
let saleItem = refresh ? Object.assign({}, initData) : this.data.saleItem;
data: {
saleItem: Object.assign({}, initData)
},
onLoad: function() {
this.tapLoadMore();
yas = new Yas(app);
yas.pageOpenReport();
},
onPullDownRefresh: function() {
return this.queryLimitActivityList(true).then(() => {
wx.stopPullDownRefresh();
});
},
onShareAppMessage: function() {
return {
title: '潮流尖货,不抢怎么行?!我正在YOHO!STORE参加限定发售,买尖货 不陪跑!'
};
},
queryLimitActivityList: function(refresh) {
let saleItem = refresh ? Object.assign({}, initData) : this.data.saleItem;
if (saleItem.end) {
return Promise.resolve({code: 402, data: [], message: ''});
}
return saleModel.queryLimitActivityList({pageNum: saleItem.page++, pageSize: 10}).then(res => {
if (res.code !== 200) {
return res;
}
if (saleItem.end) {
return Promise.resolve({
code: 402,
data: [],
message: ''
});
}
let params = {
pageNum: saleItem.page++,
pageSize: 10,
belongStoreId: 94,
}
let limitActivityList = res.data && res.data.limitActivityList || [];
return saleModel.queryLimitActivityList(params).then(res => {
if (res.code !== 200) {
return res;
}
saleItem.data = saleItem.data.concat(limitActivityList);
saleItem.end = !limitActivityList.length;
this.setData({saleItem});
let limitActivityList = res.data && res.data.limitActivityList || [];
return res;
}).catch(() => {
return {};
});
},
tapDetail: function(e) {
let dataset = e.currentTarget.dataset;
saleItem.data = saleItem.data.concat(limitActivityList);
saleItem.end = !limitActivityList.length;
this.setData({
saleItem
});
if (['C', 'D'].indexOf(dataset.type) > -1) {
return global.router.go('limitSaleNews', {id: dataset.id});
}
return res;
}).catch(() => {
return {};
});
},
tapDetail: function(e) {
let dataset = e.currentTarget.dataset;
global.router.go('limitSaleDetail', {id: dataset.id});
},
tapLoadMore: function() {
return this.queryLimitActivityList();
if (['C', 'D'].indexOf(dataset.type) > -1) {
return global.router.go('limitSaleNews', {
id: dataset.id
});
}
}));
global.router.go('limitSaleDetail', {
id: dataset.id
});
},
tapLoadMore: function() {
return this.queryLimitActivityList();
}
}));
\ No newline at end of file
... ...