Your Name 3 年之前
父節點
當前提交
392597d000
共有 10 個文件被更改,包括 104 次插入22 次删除
  1. 1
    1
      config/dev.js
  2. 1
    0
      config/prod.js
  3. 1
    1
      project.config.json
  4. 20
    13
      src/app.js
  5. 1
    1
      src/services/person.js
  6. 8
    4
      src/store/models/person.js
  7. 20
    0
      src/utils/hooks/useRouter.js
  8. 22
    0
      src/utils/index.js
  9. 28
    0
      src/utils/preFetchData.js
  10. 2
    2
      src/utils/request.js

+ 1
- 1
config/dev.js 查看文件

@@ -3,7 +3,7 @@ module.exports = {
3 3
     NODE_ENV: '"development"'
4 4
   },
5 5
   defineConstants: {
6
-    HOST: '"http://81.69.196.8:8822"',
6
+    HOST: '"https://sgl-v2.njyunzhi.com"',
7 7
   },
8 8
   mini: {},
9 9
   h5: {}

+ 1
- 0
config/prod.js 查看文件

@@ -3,6 +3,7 @@ module.exports = {
3 3
     NODE_ENV: '"production"'
4 4
   },
5 5
   defineConstants: {
6
+    HOST: '"https://sgl-v2.njyunzhi.com"',
6 7
   },
7 8
   mini: {},
8 9
   h5: {

+ 1
- 1
project.config.json 查看文件

@@ -2,7 +2,7 @@
2 2
   "miniprogramRoot": "./dist",
3 3
   "projectname": "miniapp",
4 4
   "description": "十公里",
5
-  "appid": "wxe44244d1a5ea3364",
5
+  "appid": "wx06a7372d48d56843",
6 6
   "setting": {
7 7
     "urlCheck": true,
8 8
     "es6": false,

+ 20
- 13
src/app.js 查看文件

@@ -1,26 +1,33 @@
1 1
 import { Component } from 'react'
2 2
 import Taro from '@tarojs/taro'
3
+import preFetchData from '@/utils/preFetchData'
3 4
 import store, { StoreRoot } from './store'
4 5
 import './app.less'
5 6
 
6 7
 class App extends Component {
7 8
 
8 9
   onLaunch(options) {
9
-    // 预拉取数据
10
-    Taro.getBackgroundFetchData({
11
-      fetchType: 'pre',
12
-      success(res) {
13
-        console.log(res.fetchedData)
14
-      }
15
-    })
10
+    const [,, setPerson, login] = store.getModel('person').getState()
16 11
 
12
+    // 预拉取数据
13
+    preFetchData().then((fetchData) => {
14
+      setPerson({
15
+        personId: fetchData.personId,
16
+        openid: fetchData.openid,
17
+      })
17 18
 
18
-    Taro.login({
19
-      success: (res) => {
20
-        const { code } = res;
21
-        const [_, login] = store.getModel('person').getState()
22
-        login({ code })
23
-      }
19
+      // 登录获取人员信息
20
+      Taro.login({
21
+        success: (res) => {
22
+          const { code } = res;
23
+          login({ code })
24
+        }
25
+      })
26
+    }).catch(() => {
27
+      Taro.showToast({
28
+        title: '网络异常, 请退出重试',
29
+        icon: 'none',
30
+      })
24 31
     })
25 32
   }
26 33
 

+ 1
- 1
src/services/person.js 查看文件

@@ -1,3 +1,3 @@
1 1
 import request from '@/utils/request'
2 2
 
3
-export const login = (params) => request('/login', { params })
3
+export const login = (params) => request('/login', { params, method: 'post' })

+ 8
- 4
src/store/models/person.js 查看文件

@@ -1,15 +1,19 @@
1 1
 import { useState } from "react"
2
+import Taro from '@tarojs/taro'
2 3
 import { login } from '@/services/person'
3 4
 
4 5
 export default () => {
5
-  const [person, setPerson] = useState({ personId: 123 })
6
+  const [person, setPerson] = useState()
7
+  const [peronRoles, setPersonRoles] = useState([])
6 8
 
7 9
   const personLogin = (params) => {
8
-    console.log('-------personLogin---->', params)
9 10
     login(params).then((res) => {
10
-      setPerson(res)
11
+      const { person : taPerson, personRoleList, sessionKey } = res;
12
+      setPerson(taPerson);
13
+      setPersonRoles(personRoleList);
14
+      Taro.setStorage({ key: 'sessionKey', data: sessionKey })
11 15
     })
12 16
   }
13 17
 
14
-  return [person, personLogin]
18
+  return [person, peronRoles, setPerson, personLogin]
15 19
 }

+ 20
- 0
src/utils/hooks/useRouter.js 查看文件

@@ -0,0 +1,20 @@
1
+import Taro, { useRouter } from '@tarojs/taro'
2
+import { parseQueryString } from '@/utils'
3
+
4
+export default () => {
5
+  const router = useRouter()
6
+
7
+  // 扫码进入的
8
+  if (router?.params?.scene) {
9
+    const qrCodeStr = Taro.getStorageSync('qrcode')
10
+    if (qrCodeStr && qrCodeStr !== 'undefined') {
11
+      const qrParams = parseQueryString(qrCodeStr) || {}
12
+      router.params = {
13
+        ...router.params || {},
14
+        ...qrParams,
15
+      }
16
+    }
17
+  }
18
+
19
+  return router
20
+}

+ 22
- 0
src/utils/index.js 查看文件

@@ -0,0 +1,22 @@
1
+
2
+export function parseQueryString(queryStr) {
3
+  if (!queryStr) {
4
+    return;
5
+  }
6
+
7
+  const params = queryStr.split('&').reduce((acc, str) => {
8
+    if (!str) return acc;
9
+
10
+    const kv = str.split('=')
11
+    if (kv.length !== 2) return acc;
12
+
13
+    const key = decodeURIComponent(kv[0])
14
+    const val = decodeURIComponent(kv[1])
15
+
16
+    return {
17
+      ...acc,
18
+      [key]: val,
19
+    }
20
+  }, {});
21
+  return params;
22
+}

+ 28
- 0
src/utils/preFetchData.js 查看文件

@@ -0,0 +1,28 @@
1
+import Taro from '@tarojs/taro'
2
+
3
+export default () => {
4
+  return new Promise((resolve, reject) => {
5
+    Taro.getBackgroundFetchData({
6
+      fetchType: 'pre',
7
+      success(res) {
8
+        const { code, message, data } = JSON.parse(res.fetchedData) || {}
9
+        if (code === 1000) {
10
+          const { token, sessionKey, qrcode, ...otherData } = data
11
+
12
+          Taro.setStorage({ key: 'token', data: token })
13
+          Taro.setStorage({ key: 'sessionKey', data: sessionKey })
14
+          Taro.setStorage({ key: 'qrcode', data: qrcode })
15
+
16
+          resolve(otherData)
17
+        } else {
18
+          console.error(message)
19
+          reject(message)
20
+        }
21
+      },
22
+      fail: (e) => {
23
+        console.error(e)
24
+        reject(e.errMsg || e.message)
25
+      }
26
+    })
27
+  })
28
+}

+ 2
- 2
src/utils/request.js 查看文件

@@ -22,8 +22,8 @@ export default (url, options) => {
22 22
   const urlWithParams = queryStr ? `${url}?${queryStr}` : url;
23 23
   const nwUrl = `${HOST}/api/wx${urlWithParams}`
24 24
 
25
-  const token = Taro.getStorageSync('token')
26
-  const tokenHeader = token ? { 'X-Authorization-JWT': token } : {}
25
+  const authToken = Taro.getStorageSync('token')
26
+  const tokenHeader = authToken ? { 'X-Authorization-JWT': authToken } : {}
27 27
   const nwHeader = {
28 28
     ...(header || {}),
29 29
     ...tokenHeader,