Guest User

Untitled

a guest
Sep 6th, 2023
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. export default {
  2. data() {
  3. return {
  4. prizes: [],
  5. spinning: false,
  6. offset: 0,
  7. wheelStyle: {},
  8. };
  9. },
  10. methods: {
  11. fetchPrizes() {
  12. axios.get('/RewardList').then((response) => {
  13. const originalPrizes = response.data;
  14. const repetitions = 10;
  15. const duplicatedPrizes = [];
  16.  
  17. for (let i = 0; i < repetitions; i++) {
  18. duplicatedPrizes.push(...originalPrizes);
  19. }
  20. this.prizes = duplicatedPrizes;
  21. });
  22. },
  23. async fetchDailySpinPrize() {
  24. try {
  25. const response = await axios.get('/Daily-spin');
  26. const { Pavadinimas } = response.data.prize;
  27.  
  28. console.log('Pavadinimas:', Pavadinimas);
  29. const selectedPrize = this.prizes.find((prize) => prize.Pavadinimas === Pavadinimas);
  30.  
  31. if (selectedPrize) {
  32. const selectedIndex = this.prizes.indexOf(selectedPrize);
  33.  
  34. const numPrizes = this.prizes.length;
  35. const angle = (selectedIndex * 360) / numPrizes;
  36. const cardWidth = 100;
  37. const wheelWidth = cardWidth * numPrizes;
  38. const landingPosition = (cardWidth / 2) - (angle * (wheelWidth / 360));
  39.  
  40. this.spinToPosition(landingPosition);
  41. }
  42. } catch (error) {
  43. console.error('Error fetching daily spin prize:', error);
  44. }
  45. },
  46. spinToPosition(landingPosition) {
  47. this.spinning = true;
  48.  
  49. const object = {
  50. x: Math.random() * 0.5,
  51. y: Math.random() * 0.2,
  52. };
  53.  
  54. this.wheelStyle = {
  55. 'transition-timing-function': `cubic-bezier(0, ${object.x}, ${object.y}, 1)`,
  56. 'transition-duration': '6s',
  57. 'transform': `translate3d(-${landingPosition}px, 0px, 0px)`,
  58. };
  59.  
  60. console.log('Landing Position:', landingPosition);
  61.  
  62. setTimeout(() => {
  63. this.spinning = false;
  64.  
  65. this.wheelStyle = {
  66. 'transition-timing-function': '',
  67. 'transition-duration': '',
  68. 'transform': `translate3d(0px, 0px, 0px)`,
  69. };
  70. }, 6000);
  71. }
  72. },
  73. mounted() {
  74. this.fetchPrizes();
  75. },
  76. }
Advertisement
Add Comment
Please, Sign In to add comment