张延森 3 år sedan
förälder
incheckning
0b3983f5f2
4 ändrade filer med 59 tillägg och 9 borttagningar
  1. 37
    8
      src/pages/Honghe.vue
  2. 11
    0
      src/services/person.js
  3. 10
    0
      src/utils/math.js
  4. 1
    1
      src/utils/request.js

+ 37
- 8
src/pages/Honghe.vue Visa fil

24
 
24
 
25
 <script>
25
 <script>
26
 import { useModel } from '@/store'
26
 import { useModel } from '@/store'
27
+import { drawLottery, getPrizeList } from '@/services/person'
28
+import { rand } from '@/utils/math'
27
 
29
 
28
 export default {
30
 export default {
29
   name: 'Honghe',
31
   name: 'Honghe',
33
   data() {
35
   data() {
34
     return {
36
     return {
35
       indexJPG: new Array(12).fill(null),
37
       indexJPG: new Array(12).fill(null),
36
-      showPopup: false
38
+      showPopup: false,
39
+      prizeList: [],
40
+      clickNum: 0,
41
+      bingoClickNum: rand(0, 12)
37
     }
42
     }
38
   },
43
   },
39
   computed: {
44
   computed: {
46
       }
51
       }
47
     }
52
     }
48
   },
53
   },
49
-  watch: {
50
-    person: {
51
-      handler(val) {
52
-        console.log('-----watch---person----', val)
53
-      },
54
-      immediate: true
55
-    }
54
+  created() {
55
+    this.getPrizes()
56
   },
56
   },
57
   methods: {
57
   methods: {
58
     //关闭
58
     //关闭
62
     baga(e) {
62
     baga(e) {
63
       console.log(e)
63
       console.log(e)
64
       this.showPopup = true
64
       this.showPopup = true
65
+
66
+      // 如果点击可以抽奖
67
+      if (this.clickNum === this.bingoClickNum) {
68
+        if (!this.person.personId) {
69
+          // 报错, 提示刷新页面
70
+        } else {
71
+          // 如果还没有参与
72
+          if (!this.person.isJoined) {
73
+            this.drawLots()
74
+          }
75
+        }
76
+      }
77
+
78
+      if (this.clickNum < this.bingoClickNum) {
79
+        this.clickNum += 1
80
+      }
81
+    },
82
+    // 抽奖
83
+    drawLots() {
84
+      drawLottery(this.person).then(res => {
85
+        // 更新人员信息
86
+        this.person = res
87
+        
88
+        // 其他动作
89
+      })
90
+    },
91
+    // 获取奖品列表
92
+    getPrizes() {
93
+      getPrizeList().then(list => this.prizeList = list);
65
     }
94
     }
66
   }
95
   }
67
 }
96
 }

+ 11
- 0
src/services/person.js Visa fil

32
   const url = `${baseURL}/taPerson/${person.personId}/prize`
32
   const url = `${baseURL}/taPerson/${person.personId}/prize`
33
   return request(url)
33
   return request(url)
34
 }
34
 }
35
+
36
+
37
+/**
38
+ * 获取奖品列表
39
+ * @param {*} person 
40
+ * @returns 
41
+ */
42
+export function getPrizeList() {
43
+  const url = `${baseURL}/taPrize`
44
+  return request(url)
45
+}

+ 10
- 0
src/utils/math.js Visa fil

1
+
2
+/**
3
+ * 生成 [min, max) 范围内的随机整数
4
+ * @param {*} min 
5
+ * @param {*} max 
6
+ * @returns 
7
+ */
8
+export function rand(min, max) {
9
+  return min + Math.floor(Math.random() * (max - min))
10
+}

+ 1
- 1
src/utils/request.js Visa fil

1
 
1
 
2
 import { getToken } from './token'
2
 import { getToken } from './token'
3
 
3
 
4
-export default function request (url, options) {
4
+export default function request (url, options = {}) {
5
   const headers = new Headers();
5
   const headers = new Headers();
6
   headers.append('Content-Type', 'application/json;charset=utf8');
6
   headers.append('Content-Type', 'application/json;charset=utf8');
7
   headers.append('X-Authorization-JWT', getToken());
7
   headers.append('X-Authorization-JWT', getToken());