张延森 4 年前
父节点
当前提交
87e625adb6
共有 6 个文件被更改,包括 41 次插入8 次删除
  1. 11
    1
      src/app.js
  2. 3
    1
      src/components/GetUserPhone/index.jsx
  3. 2
    2
      src/store/models/index.js
  4. 4
    4
      src/store/models/useAppParams.js
  5. 6
    0
      src/utils/api.js
  6. 15
    0
      src/utils/qrcode.js

+ 11
- 1
src/app.js 查看文件

30
   // 在此处是为了兼容热启动
30
   // 在此处是为了兼容热启动
31
   componentDidShow () {
31
   componentDidShow () {
32
     const { setUser } = store.getModel('user').getState()
32
     const { setUser } = store.getModel('user').getState()
33
+    const { setAppParams } = store.getModel('appParams').getState()
33
 
34
 
34
     // 保存刚进入系统时的router
35
     // 保存刚进入系统时的router
35
     const router = getCurrentInstance().router
36
     const router = getCurrentInstance().router
36
 
37
 
37
     // 如果是分享或者扫码
38
     // 如果是分享或者扫码
38
     // scene 与其它参数时互斥的. 有 scene 说明时扫码进来的
39
     // scene 与其它参数时互斥的. 有 scene 说明时扫码进来的
39
-    const { from = '', recommender = '', scene = '' } = router.params
40
+    const params = router.params || {}
41
+    const { from = '', recommender = '', scene = '' } = params
42
+    setAppParams({...params})
40
 
43
 
41
     // 登录
44
     // 登录
42
     Taro.login({
45
     Taro.login({
47
             Taro.setStorage({ key: 'token', data: x.token })
50
             Taro.setStorage({ key: 'token', data: x.token })
48
             Taro.setStorage({ key: 'sessionKey', data: x.sessionKey })
51
             Taro.setStorage({ key: 'sessionKey', data: x.sessionKey })
49
 
52
 
53
+            if (x.scene) {
54
+              setAppParams({
55
+                ...params,
56
+                ...x.scene
57
+              })
58
+            }
59
+
50
             // 埋点
60
             // 埋点
51
             trackUserSource(router, x.scene).then(res => this.updateTracing = res)
61
             trackUserSource(router, x.scene).then(res => this.updateTracing = res)
52
           })
62
           })

+ 3
- 1
src/components/GetUserPhone/index.jsx 查看文件

10
 export default function GetUserPhone (props) {
10
 export default function GetUserPhone (props) {
11
   const [showPannel, setShowPannel] = useState(true)
11
   const [showPannel, setShowPannel] = useState(true)
12
   const { user, setUser } = useModel('user')
12
   const { user, setUser } = useModel('user')
13
+  const { appParams } = useModel('appParams')
13
 
14
 
14
   const ToGetUserPhone = (e) => { // 授权手机号
15
   const ToGetUserPhone = (e) => { // 授权手机号
15
     const { errMsg, ...data } = e.detail
16
     const { errMsg, ...data } = e.detail
19
         data: {
20
         data: {
20
           sessionKey: Taro.getStorageSync('sessionKey'),
21
           sessionKey: Taro.getStorageSync('sessionKey'),
21
           encryptedData: data.encryptedData,
22
           encryptedData: data.encryptedData,
22
-          iv: data.iv
23
+          iv: data.iv,
24
+          recommender: (appParams || {}).recommender || ''
23
         }
25
         }
24
       }).then((res) => {
26
       }).then((res) => {
25
         setUser({ ...user, phone: res.phoneNumber })
27
         setUser({ ...user, phone: res.phoneNumber })

+ 2
- 2
src/store/models/index.js 查看文件

1
 import useSystem from './useSystem'
1
 import useSystem from './useSystem'
2
-import useAppRouter from './useAppRouter'
2
+import useAppParams from './useAppParams'
3
 import useUser from './useUser'
3
 import useUser from './useUser'
4
 import useScreen from './useScreen'
4
 import useScreen from './useScreen'
5
 
5
 
6
 const models = {
6
 const models = {
7
-  'appRouter': useAppRouter,
7
+  'appParams': useAppParams,
8
   'sys': useSystem,
8
   'sys': useSystem,
9
   'user': useUser,
9
   'user': useUser,
10
   'screen': useScreen
10
   'screen': useScreen

src/store/models/useAppRouter.js → src/store/models/useAppParams.js 查看文件

2
 import Taro from '@tarojs/taro'
2
 import Taro from '@tarojs/taro'
3
 
3
 
4
 // 保存系统进入时的参数
4
 // 保存系统进入时的参数
5
-export default function useAppRouter() {
6
-  const [router, setRouter] = useState()
5
+export default function useAppParams() {
6
+  const [appParams, setAppParams] = useState()
7
 
7
 
8
   return {
8
   return {
9
-    router,
10
-    setRouter
9
+    appParams,
10
+    setAppParams
11
   }
11
   }
12
 }
12
 }

+ 6
- 0
src/utils/api.js 查看文件

200
     url: `${prefix}/signup`
200
     url: `${prefix}/signup`
201
   },
201
   },
202
 
202
 
203
+  // 二维码
204
+  qrcode: {
205
+    method: 'post',
206
+    url: `${prefix}/qrcode`
207
+  }
208
+
203
 }
209
 }
204
 
210
 
205
 
211
 

+ 15
- 0
src/utils/qrcode.js 查看文件

1
+import { apis, request2 } from './request'
2
+
3
+export function getCardQrParam(user) {
4
+  const param = [
5
+    `id=${user.personId}`,
6
+    `from=card`,
7
+    `recommender=${user.personId}`
8
+  ]
9
+
10
+  return param.join('&')
11
+}
12
+
13
+export function getQrCodeImage(data) {
14
+  return request2({...apis.qrcode, data})
15
+}