Commit 1f5a8997632a2fc582c490cbbec8105c4bde0d62

Authored by 王强
1 parent 4353fecc

购好物,首页,“折扣专区”和“积分商城”轮训在切换页面时不要再次设置轮训,优化~

src/pages/optimization2/optimization2.vue
@@ -363,7 +363,8 @@ @@ -363,7 +363,8 @@
363 discountData: { 363 discountData: {
364 now: [], // 当前折扣专区数据(用于动画展示) 364 now: [], // 当前折扣专区数据(用于动画展示)
365 next: 0, // 下一个需要展示的折扣专区数组下标(折扣专区总数据) 365 next: 0, // 下一个需要展示的折扣专区数组下标(折扣专区总数据)
366 - index: 0 // 下一个需要展示的位置下标(折扣专区now数据) 366 + index: 0, // 下一个需要展示的位置下标(折扣专区now数据)
  367 + interval: null // 轮训对象,用于判断如果有轮训对象就不再重新设置轮训了
367 }, 368 },
368 quality: null, // 品质优选 369 quality: null, // 品质优选
369 salesOptions: null, // 热销排行选项 370 salesOptions: null, // 热销排行选项
@@ -377,7 +378,8 @@ @@ -377,7 +378,8 @@
377 pointsData: { 378 pointsData: {
378 now: [], // 当前积分商城数据(用于动画展示) 379 now: [], // 当前积分商城数据(用于动画展示)
379 next: 0, // 下一个需要展示的积分商城数组下标(积分商城总数据) 380 next: 0, // 下一个需要展示的积分商城数组下标(积分商城总数据)
380 - index: 0 // 下一个需要展示的位置下标(积分商城now数据) 381 + index: 0, // 下一个需要展示的位置下标(积分商城now数据)
  382 + interval: null // 轮训对象,用于判断如果有轮训对象就不再重新设置轮训了
381 }, 383 },
382 likeLists: null, // 猜你喜欢列表 384 likeLists: null, // 猜你喜欢列表
383 likeNum: 0, // 猜你喜欢二维数组当前显示的下标 385 likeNum: 0, // 猜你喜欢二维数组当前显示的下标
@@ -674,15 +676,19 @@ @@ -674,15 +676,19 @@
674 // 设置折扣专区计时器,每3秒切换一次数据 676 // 设置折扣专区计时器,每3秒切换一次数据
675 this.$nextTick(() => { 677 this.$nextTick(() => {
676 678
677 - // 判断数据数量是否 > 2 ,如果是,执行切换轮训  
678 - if (this.discountData.now.length < this.discountLists.length) { 679 + // 判断是否已有轮训对象
  680 + if (!this.discountData.interval) {
679 681
680 - // 轮训计时器  
681 - setInterval(() => {  
682 -  
683 - // 切换折扣专区数据  
684 - this.fade(this.discountData, this.discountLists);  
685 - }, 3000); 682 + // 判断数据数量是否 > 2 ,如果是,执行切换轮训
  683 + if (this.discountData.now.length < this.discountLists.length) {
  684 +
  685 + // 轮训计时器
  686 + this.discountData.interval = setInterval(() => {
  687 +
  688 + // 切换折扣专区数据
  689 + this.fade(this.discountData, this.discountLists);
  690 + }, 3000);
  691 + }
686 } 692 }
687 }); 693 });
688 } 694 }
@@ -703,22 +709,26 @@ @@ -703,22 +709,26 @@
703 // 设置积分商城计时器,每3秒切换一次数据 709 // 设置积分商城计时器,每3秒切换一次数据
704 this.$nextTick(() => { 710 this.$nextTick(() => {
705 711
706 - // 判断数据数量是否 > 2 ,如果是,执行切换轮训  
707 - if (this.pointsData.now.length < this.pointsLists.length) { 712 + // 判断是否已有轮训对象
  713 + if (!this.pointsData.interval) {
708 714
709 - // 和折扣专区岔开,延时1秒执行  
710 - setTimeout(() => {  
711 -  
712 - // 随机生成轮训时间  
713 - let timer = (parseInt(Math.random() * (500 + 1) + 3000, 10) || 3000); 715 + // 判断数据数量是否 > 2 ,如果是,执行切换轮训
  716 + if (this.pointsData.now.length < this.pointsLists.length) {
714 717
715 - // 轮训计时器  
716 - setInterval(() => { 718 + // 和折扣专区岔开,延时1秒执行
  719 + setTimeout(() => {
717 720
718 - // 切换折扣专区数据  
719 - this.fade(this.pointsData, this.pointsLists);  
720 - }, timer || 3000);  
721 - }, 1000); 721 + // 随机生成轮训时间
  722 + let timer = (parseInt(Math.random() * (500 + 1) + 3000, 10) || 3000);
  723 +
  724 + // 轮训计时器
  725 + this.pointsData.interval = setInterval(() => {
  726 +
  727 + // 切换折扣专区数据
  728 + this.fade(this.pointsData, this.pointsLists);
  729 + }, timer || 3000);
  730 + }, 1000);
  731 + }
722 } 732 }
723 }); 733 });
724 } else { 734 } else {