张延森 3 years ago
parent
commit
7475d033d0
3 changed files with 27 additions and 8 deletions
  1. 3
    1
      src/app.js
  2. 21
    6
      src/utils/hooks/useTrackPage.js
  3. 3
    1
      src/utils/index.js

+ 3
- 1
src/app.js View File

16
         openid: fetchData.openid,
16
         openid: fetchData.openid,
17
       })
17
       })
18
 
18
 
19
+      const { fromType, recommender, scene : qrCodeId } = options.query
20
+
19
       // 登录获取人员信息
21
       // 登录获取人员信息
20
       Taro.login({
22
       Taro.login({
21
         success: (res) => {
23
         success: (res) => {
22
           const { code } = res;
24
           const { code } = res;
23
-          login({ code, personId: fetchData.personId })
25
+          login({ code, personId: fetchData.personId, fromType, recommender, qrCodeId })
24
         }
26
         }
25
       })
27
       })
26
     }).catch(() => {
28
     }).catch(() => {

+ 21
- 6
src/utils/hooks/useTrackPage.js View File

1
 
1
 
2
 import { useRef } from 'react'
2
 import { useRef } from 'react'
3
-import { useDidShow, useDidHide } from '@tarojs/taro'
3
+import Taro, { useDidShow, useDidHide } from '@tarojs/taro'
4
 import { trackPage, updateTrackPage } from '@/services/track'
4
 import { trackPage, updateTrackPage } from '@/services/track'
5
 
5
 
6
 export default (payload) => {
6
 export default (payload) => {
9
   payloadRef.current = payload
9
   payloadRef.current = payload
10
 
10
 
11
   useDidShow(() => {
11
   useDidShow(() => {
12
-    trackPage(payloadRef.current).then((res) => {
13
-      resRef.current = res;
14
-    }).catch((err) => {
15
-      console.error(err);
16
-    })
12
+    let token = Taro.getStorageSync('token')
13
+    if (token) {
14
+      trackPage(payloadRef.current).then((res) => {
15
+        resRef.current = res;
16
+      }).catch((err) => {
17
+        console.error(err);
18
+      })
19
+    } else {
20
+      const t = setInterval(() => {
21
+        token = Taro.getStorageSync('token')
22
+        if (token) {
23
+          clearTimeout(t)
24
+          trackPage(payloadRef.current).then((res) => {
25
+            resRef.current = res;
26
+          }).catch((err) => {
27
+            console.error(err);
28
+          })
29
+        }
30
+      }, 500)
31
+    }
17
   })
32
   })
18
 
33
 
19
   useDidHide(() => {
34
   useDidHide(() => {

+ 3
- 1
src/utils/index.js View File

37
   const keys = Object.keys(params)
37
   const keys = Object.keys(params)
38
   const arr = keys.map((key) => {
38
   const arr = keys.map((key) => {
39
     const val = params[key]
39
     const val = params[key]
40
+    if (val === null || val === undefined) return false;
41
+
40
     return `${key}=${encodeURIComponent(val)}`
42
     return `${key}=${encodeURIComponent(val)}`
41
   })
43
   })
42
 
44
 
43
-  return arr.join('&')
45
+  return arr.filter(Boolean).join('&')
44
 }
46
 }