Commit 6e812dde authored by 郝聪敏's avatar 郝聪敏

修复奖品列表重复问题;修复首页刷新问题

parent 9828cdc0
...@@ -64,8 +64,7 @@ ...@@ -64,8 +64,7 @@
circular="{{circular}}" circular="{{circular}}"
vertical vertical
current="1" current="1"
bindanimationfinish="animationfinish" bindchange="bindchange"
bindchange="cancelPause"
> >
<!-- curQueue 循环会导致video重新插入,objectFit 不可变更 --> <!-- curQueue 循环会导致video重新插入,objectFit 不可变更 -->
<swiper-item class="video-item" v-for="(item, idx) in curQueue" :key="item.id"> <swiper-item class="video-item" v-for="(item, idx) in curQueue" :key="item.id">
...@@ -108,6 +107,15 @@ ...@@ -108,6 +107,15 @@
import wepy from '@wepy/core'; import wepy from '@wepy/core';
import { getProbability } from '../../common/raffleProbability'; import { getProbability } from '../../common/raffleProbability';
import { getAwardsDetail } from '../../common/api.js'; import { getAwardsDetail } from '../../common/api.js';
const fn = async function(time) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, time);
});
};
wepy.component({ wepy.component({
props: { props: {
videoList: { videoList: {
...@@ -142,7 +150,9 @@ ...@@ -142,7 +150,9 @@
_invalidUp: 0, _invalidUp: 0,
_invalidDown: 0, _invalidDown: 0,
_videoContexts: [], _videoContexts: [],
loading: false loading: false,
isFirstUp: true,
isComputing: false
}, },
watch: { watch: {
videoList () { videoList () {
...@@ -157,17 +167,18 @@ ...@@ -157,17 +167,18 @@
} }
}, },
attached() { attached() {
this._videoContexts = [ // this._videoContexts = [
wx.createVideoContext('video_0', this.$wx), // wx.createVideoContext('video_0', this.$wx),
wx.createVideoContext('video_1', this.$wx), // wx.createVideoContext('video_1', this.$wx),
wx.createVideoContext('video_2', this.$wx) // wx.createVideoContext('video_2', this.$wx)
]; // ];
}, },
created() { created() {
this.compute(this.userAccount); this.compute(this.userAccount);
}, },
methods: { methods: {
compute (newVal) { compute (newVal) {
this.isComputing = true;
this.nextQueue.forEach(v => { this.nextQueue.forEach(v => {
v.probability = getProbability(+newVal, +v.coinQuantity); v.probability = getProbability(+newVal, +v.coinQuantity);
}); });
...@@ -183,6 +194,7 @@ ...@@ -183,6 +194,7 @@
this.curQueue = [...this.curQueue]; this.curQueue = [...this.curQueue];
this.nextQueue = [...this.nextQueue]; this.nextQueue = [...this.nextQueue];
this.prevQueue = [...this.prevQueue]; this.prevQueue = [...this.prevQueue];
this.isComputing = false;
}, },
async getProgress(id) { async getProgress(id) {
const detail = await getAwardsDetail({ prizeId: id }); const detail = await getAwardsDetail({ prizeId: id });
...@@ -227,7 +239,7 @@ ...@@ -227,7 +239,7 @@
this.playCurrent(1); this.playCurrent(1);
} }
}, },
animationfinish(e) { async bindchange(e) {
const current = e.$wx.detail.current; const current = e.$wx.detail.current;
const diff = current - this._last; const diff = current - this._last;
if (diff === 0) return; if (diff === 0) return;
...@@ -236,7 +248,13 @@ ...@@ -236,7 +248,13 @@
this.$emit('change', { activeId: this.curQueue[current].id }); this.$emit('change', { activeId: this.curQueue[current].id });
this.loading = true; this.loading = true;
// setTimeout(() => { if (current === 2 && this.isFirstUp) {
this.isFirstUp = false;
await fn(700);
}
// if (timeout) clearTimeout(timeout);
// timeout = setTimeout(() => {
const direction = diff === 1 || diff === -2 ? 'up' : 'down'; const direction = diff === 1 || diff === -2 ? 'up' : 'down';
if (direction === 'up') { if (direction === 'up') {
if (this._invalidDown === 0) { if (this._invalidDown === 0) {
...@@ -286,8 +304,8 @@ ...@@ -286,8 +304,8 @@
console.log('circular2'); console.log('circular2');
this.circular = false; this.circular = false;
} }
// console.log(this.prevQueue.map(v => v.id), this.curQueue.map(v => v.id), this.nextQueue.map(v => v.id)); console.log(this.prevQueue.map(v => v.id), this.curQueue.map(v => v.id), this.nextQueue.map(v => v.id));
// }); // }, 700);
}, },
onWaiting (e) { onWaiting (e) {
this.trigger(e, 'wait'); this.trigger(e, 'wait');
...@@ -322,13 +340,13 @@ ...@@ -322,13 +340,13 @@
chance: probability, chance: probability,
progress: progress progress: progress
}); });
this._videoContexts.forEach((ctx, index) => { // this._videoContexts.forEach((ctx, index) => {
if (index !== current) { // if (index !== current) {
ctx.pause(); // ctx.pause();
} else { // } else {
ctx.play(); // ctx.play();
} // }
}); // });
}, },
trigger(e, type) { trigger(e, type) {
var ext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var ext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
...@@ -346,8 +364,9 @@ ...@@ -346,8 +364,9 @@
this.pause = !this.pause; this.pause = !this.pause;
}, },
cancelPause() { cancelPause() {
// console.log('bindchange');
this.pause = false; this.pause = false;
} },
} }
}); });
</script> </script>
......
...@@ -175,7 +175,7 @@ ...@@ -175,7 +175,7 @@
<view class="video-wrapper"> <view class="video-wrapper">
<view id="myvideo"> <view id="myvideo">
<van-notify id="van-notify" /> <van-notify id="van-notify" />
<video-list :videoList.sync="videoList" :userAccount="mainInfo && mainInfo.account && mainInfo.account.quantity || 0" :total="total" bindchange="changeVideo" @getAwardsInfo="getAwardsInfo"> <video-list v-if="videoList && videoList.length" :videoList.sync="videoList" :userAccount="mainInfo && mainInfo.account && mainInfo.account.quantity || 0" :total="total" bindchange="changeVideo" @getAwardsInfo="getAwardsInfo">
</video-list> </video-list>
</view> </view>
<view class="userInfo" style="{{userImgStyle}}" @tap="showMenu(!showMenus)"> <view class="userInfo" style="{{userImgStyle}}" @tap="showMenu(!showMenus)">
......
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