张延森 преди 3 години
родител
ревизия
7475d033d0
променени са 3 файла, в които са добавени 27 реда и са изтрити 8 реда
  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 Целия файл

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

+ 21
- 6
src/utils/hooks/useTrackPage.js Целия файл

@@ -1,6 +1,6 @@
1 1
 
2 2
 import { useRef } from 'react'
3
-import { useDidShow, useDidHide } from '@tarojs/taro'
3
+import Taro, { useDidShow, useDidHide } from '@tarojs/taro'
4 4
 import { trackPage, updateTrackPage } from '@/services/track'
5 5
 
6 6
 export default (payload) => {
@@ -9,11 +9,26 @@ export default (payload) => {
9 9
   payloadRef.current = payload
10 10
 
11 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 34
   useDidHide(() => {

+ 3
- 1
src/utils/index.js Целия файл

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