张延森 4 лет назад
Родитель
Сommit
38d955253e

+ 4
- 3
src/layouts/index.jsx Просмотреть файл

@@ -1,5 +1,5 @@
1 1
 import React, { useEffect, useState } from 'react'
2
-import Taro, { useDidShow } from '@tarojs/taro'
2
+import Taro, { useDidShow, useRouter } from '@tarojs/taro'
3 3
 import AdvLayer from '@/components/AdvLayer'
4 4
 import GetUserIcon from '@/components/GetUserIcon/index'
5 5
 import GetUserPhone from '@/components/GetUserPhone/index'
@@ -22,6 +22,7 @@ const showError = err => {
22 22
 
23 23
 export default function (props) {
24 24
   const { user } = useModel('user')
25
+  const router = useRouter()
25 26
 
26 27
   const [page, setPage] = useState({})
27 28
   const [loading, setLoading] = useState(true)
@@ -40,7 +41,7 @@ export default function (props) {
40 41
   const goback = () => Taro.navigateBack({ delta: 1, fail: () => Taro.switchTab({ url: '/pages/ShouYe/index' }) })
41 42
 
42 43
   useDidShow(() => {
43
-    setPage(getPage())
44
+    setPage(getPage(router))
44 45
   })
45 46
 
46 47
   useEffect(() => {
@@ -57,7 +58,7 @@ export default function (props) {
57 58
   }, [page])
58 59
 
59 60
   // 埋点
60
-  useMountTrack()
61
+  useMountTrack({}, router)
61 62
 
62 63
   // 授权手机
63 64
   useEffect(() => {

+ 3
- 3
src/pages/FuLi/ShangPinXiangQing/index.jsx Просмотреть файл

@@ -9,9 +9,9 @@ import '@/assets/css/iconfont.less'
9 9
 import './index.less'
10 10
 
11 11
 export default function ShangPinXiangQing () {
12
-
12
+  const router = useRouter()
13 13
   const { user } = useModel('user')
14
-  const [CurrnetId] = useState(useRouter().params.id) // 当前id
14
+  const [CurrnetId] = useState(router.params.id) // 当前id
15 15
   const [GoodsDetail, setGoodsDetail] = useState(null) // 商品详情
16 16
 
17 17
   Taro.useShareAppMessage(() => {
@@ -19,7 +19,7 @@ export default function ShangPinXiangQing () {
19 19
       title: GoodsDetail.goodsName,
20 20
       id: CurrnetId,
21 21
       image: GoodsDetail.imgUrl
22
-    }, user)
22
+    }, user, router)
23 23
   })
24 24
 
25 25
   useEffect(() => {

+ 3
- 2
src/pages/HuoDong/HuoDongDetail/index.jsx Просмотреть файл

@@ -14,6 +14,7 @@ import './index.less'
14 14
 export default function HuoDongDetail () {
15 15
 
16 16
   const { user } = useModel('user')
17
+  const router = useRouter()
17 18
   const [DataLock, setDataLock] = useState(false)
18 19
   // const [HasJoin, setHasJoin] = useState(null)
19 20
   // const [HasSign, setHasSign] = useState(null)
@@ -23,7 +24,7 @@ export default function HuoDongDetail () {
23 24
   const [ShowJoinNumPopup, setShowJoinNumPopup] = useState(false)
24 25
   const [JoinNum, setJoinNum] = useState(null)
25 26
   const [ShowGetUserPhoneLayer, setShowGetUserPhoneLayer] = useState(false)
26
-  const [CurrnetHuoDongId] = useState(useRouter().params.id) // 当前活动id
27
+  const [CurrnetHuoDongId] = useState(router.params.id) // 当前活动id
27 28
   const [ActivityDetail, setActivityDetail] = useState(null) // 活动详情
28 29
   const [JoinInfo, setJoinInfo] = useState(null) // 参加活动详情
29 30
   const [Status, setStatus] = useState(null) // 参加活动状态 0-立即参与 1-未开始 2-去报名 3-已报名 4-去签到 5-已签到 6-已结束
@@ -34,7 +35,7 @@ export default function HuoDongDetail () {
34 35
       title: ActivityDetail.title,
35 36
       id: CurrnetHuoDongId,
36 37
       image: ActivityDetail.imgUrl
37
-    }, user)
38
+    }, user, router)
38 39
   })
39 40
 
40 41
   useEffect(() => {

+ 3
- 2
src/pages/HuoDong/ZiXunDetail/index.jsx Просмотреть файл

@@ -13,7 +13,8 @@ import './index.less'
13 13
 export default function ZiXunDetail () {
14 14
 
15 15
   const { user } = useModel('user')
16
-  const [CurrnetZiXunId] = useState(useRouter().params.id) // 当前查询资讯id
16
+  const router = useRouter()
17
+  const [CurrnetZiXunId] = useState(router.params.id) // 当前查询资讯id
17 18
   const [NewsDetail, setNewsDetail] = useState(null) // 资讯详情
18 19
 
19 20
   Taro.useShareAppMessage(() => {
@@ -21,7 +22,7 @@ export default function ZiXunDetail () {
21 22
       title: NewsDetail.newsName,
22 23
       id: CurrnetZiXunId,
23 24
       image: NewsDetail.newsImg
24
-    }, user)
25
+    }, user, router)
25 26
   })
26 27
 
27 28
   useEffect(() => {

+ 3
- 3
src/pages/ShouYe/index.jsx Просмотреть файл

@@ -6,7 +6,7 @@ import { Swiper, SwiperItem, Text } from '@tarojs/components'
6 6
 import request, { apis } from '@/utils/request'
7 7
 import { useModel } from '@/store'
8 8
 import useUserMounted from '@/utils/hooks/useUserMounted'
9
-import Taro from '@tarojs/taro'
9
+import Taro, { useRouter } from '@tarojs/taro'
10 10
 import Page from '@/layouts'
11 11
 import nav2detail from '@/utils/nav2detail'
12 12
 import { getShareObject } from '@/utils/share'
@@ -15,7 +15,7 @@ import '@/assets/css/iconfont.less'
15 15
 import './index.less'
16 16
 
17 17
 export default function Index () {
18
-
18
+  const router = useRouter()
19 19
   const { user } = useModel('user')
20 20
   const [OwnerList] = useState([
21 21
     { icon: require('@/assets/img/icon1.png'), name: '物业缴费', id: 1, router: '/pages/WuYe/index', setName: 'WuYeNavId', setValue: '4', isTab: true },
@@ -189,7 +189,7 @@ export default function Index () {
189 189
 
190 190
   // 分享转发
191 191
   Taro.useShareAppMessage(() => {
192
-    const shareObj = getShareObject({ title: '远道智慧社区' }, user)
192
+    const shareObj = getShareObject({ title: '远道智慧社区' }, user, router)
193 193
     return shareObj
194 194
   })
195 195
 

+ 3
- 3
src/pages/WoDe/TuiJianErWeiMa/index.jsx Просмотреть файл

@@ -1,5 +1,5 @@
1 1
 import React, { useState, useEffect } from 'react'
2
-import Taro from '@tarojs/taro'
2
+import Taro, { useRouter } from '@tarojs/taro'
3 3
 import CustomHeader from '@/components/CustomHeader/index'
4 4
 import { getQrCodeImage, getCardQrParam } from '@/utils/qrcode'
5 5
 import Page from '@/layouts'
@@ -10,7 +10,7 @@ import '@/assets/css/iconfont.less'
10 10
 import './index.less'
11 11
 
12 12
 export default function TuiJianErWeiMa () {
13
-
13
+  const router = useRouter()
14 14
   const { user } = useModel('user')
15 15
   const [QrCodeImg, setQrCodeImg] = useState(null)
16 16
 
@@ -19,7 +19,7 @@ export default function TuiJianErWeiMa () {
19 19
       title: '推荐二维码',
20 20
       id: user.personId,
21 21
       image: QrCodeImg
22
-    }, user)
22
+    }, user, router)
23 23
   })
24 24
 
25 25
   useEffect(() => {

+ 3
- 3
src/pages/WuYe/BaoXiuDetail/index.jsx Просмотреть файл

@@ -12,9 +12,9 @@ import '@/assets/css/iconfont.less'
12 12
 import './index.less'
13 13
 
14 14
 export default function BaoXiuDetail () {
15
-
15
+  const router = useRouter()
16 16
   const { user } = useModel('user')
17
-  const [CurrnetBaoXiuId] = useState(useRouter().params.id)
17
+  const [CurrnetBaoXiuId] = useState(router.params.id)
18 18
   const [DetailInfo, setDetailInfo] = useState(null)
19 19
   const [PhoneList, setPhoneList] = useState([])
20 20
   const [ShowPopup, setShowPopup] = useState(false)
@@ -31,7 +31,7 @@ export default function BaoXiuDetail () {
31 31
       title: DetailInfo.ticketTitle,
32 32
       id: CurrnetBaoXiuId,
33 33
       image: null
34
-    }, user)
34
+    }, user, router)
35 35
   })
36 36
 
37 37
   useEffect(() => {

+ 3
- 3
src/pages/WuYe/FuWuDetail/index.jsx Просмотреть файл

@@ -11,9 +11,9 @@ import '@/assets/css/iconfont.less'
11 11
 import './index.less'
12 12
 
13 13
 export default function WuYeFuWuDetail () {
14
-
14
+  const router = useRouter()
15 15
   const { user } = useModel('user')
16
-  const [CurrnetId] = useState(useRouter().params.id) // 当前id
16
+  const [CurrnetId] = useState(router.params.id) // 当前id
17 17
   const [DetailInfo, setDetailInfo] = useState(null) // 详情
18 18
 
19 19
   Taro.useShareAppMessage(() => {
@@ -21,7 +21,7 @@ export default function WuYeFuWuDetail () {
21 21
       title: DetailInfo.newsName,
22 22
       id: CurrnetId,
23 23
       image: DetailInfo.newsImg
24
-    }, user)
24
+    }, user, router)
25 25
   })
26 26
 
27 27
   useEffect(() => {

+ 2
- 2
src/pages/WuYe/GongGaoDetail/index.jsx Просмотреть файл

@@ -11,7 +11,7 @@ import '@/assets/css/iconfont.less'
11 11
 import './index.less'
12 12
 
13 13
 export default function WuYeGongGaoDetail () {
14
-
14
+  const router = useRouter()
15 15
   const { user } = useModel('user')
16 16
   const [CurrnetId] = useState(useRouter().params.id)
17 17
   const [DetailInfo, setDetailInfo] = useState(null)
@@ -21,7 +21,7 @@ export default function WuYeGongGaoDetail () {
21 21
       title: DetailInfo.announcementTitle,
22 22
       id: CurrnetId,
23 23
       image: DetailInfo.announcementCarouselImg
24
-    }, user)
24
+    }, user, router)
25 25
   })
26 26
 
27 27
   useEffect(() => {

+ 2
- 4
src/utils/hooks/useMountTrack.js Просмотреть файл

@@ -1,5 +1,4 @@
1 1
 import React, { useEffect, useRef } from 'react'
2
-import { getCurrentInstance } from '@tarojs/taro'
3 2
 import { useModel } from '@/store'
4 3
 import { getPage } from '@/utils'
5 4
 import request, { apis } from '../request'
@@ -11,7 +10,7 @@ import request, { apis } from '../request'
11 10
  * 
12 11
  * @param {*} params 
13 12
  */
14
-export default function useMountTrack(params) {
13
+export default function useMountTrack(params, router) {
15 14
   const execed = useRef(false)
16 15
   const { user } = useModel('user')
17 16
 
@@ -20,8 +19,7 @@ export default function useMountTrack(params) {
20 19
       return
21 20
     }
22 21
 
23
-    const router = getCurrentInstance().router
24
-    const page = getPage()
22
+    const page = getPage(router)
25 23
     if (!page) {
26 24
       return
27 25
     }

+ 1
- 3
src/utils/index.js Просмотреть файл

@@ -1,4 +1,3 @@
1
-import { getCurrentInstance } from '@tarojs/taro'
2 1
 
3 2
 const pages = require('../pages')
4 3
 
@@ -6,8 +5,7 @@ const pages = require('../pages')
6 5
 export const deepCopy = x => JSON.parse(JSON.stringify(X))
7 6
 
8 7
 // 获取当前页面配置
9
-export const getPage = () => {
10
-  const router = getCurrentInstance().router
8
+export const getPage = (router) => {
11 9
   return pages.filter(x => router.path.indexOf(x.page) > -1)[0]
12 10
 }
13 11
 

+ 3
- 5
src/utils/share.js Просмотреть файл

@@ -1,4 +1,3 @@
1
-import { getCurrentInstance } from '@tarojs/taro'
2 1
 import { shareTrack } from './track'
3 2
 import { getPage } from '.'
4 3
 
@@ -12,10 +11,9 @@ import { getPage } from '.'
12 11
  * @param {*} params 
13 12
  * @param {*} user 
14 13
  */
15
-export function getShareObject(params, user) {
14
+export function getShareObject(params, user, router) {
16 15
   console.log(user, `user`)
17
-  const router = getCurrentInstance().router
18
-  const page = getPage() || {}
16
+  const page = getPage(router) || {}
19 17
   const { title, image, targetId, ...leftParams } = params || {}
20 18
 
21 19
   const event = (params || {}).event || 'share'
@@ -28,7 +26,7 @@ export function getShareObject(params, user) {
28 26
     event,
29 27
     eventType,
30 28
     targetId,
31
-  }, user)
29
+  }, user, router)
32 30
 
33 31
   // 理论上 queryString 需要做 encodeURIComponent 处理
34 32
   const queryString = [

+ 3
- 3
src/utils/track.js Просмотреть файл

@@ -9,7 +9,7 @@ import { getPage } from '.'
9 9
 export async function trackUserSource(router, qrcode) {
10 10
   const { path, scene, params } = router || {}
11 11
 
12
-  const page = getPage()
12
+  const page = getPage(router)
13 13
 
14 14
   const trackPayload = {
15 15
     ...(page.track || {}),
@@ -45,9 +45,9 @@ export async function trackUserSource(router, qrcode) {
45 45
  * 
46 46
  * @param {*} params 
47 47
  */
48
-export function shareTrack(params, user) {
48
+export function shareTrack(params, user, router) {
49 49
   // 埋点
50
-  const page = getPage() || {}
50
+  const page = getPage(router) || {}
51 51
   const eventType =  (params || {}).eventType || page.eventType
52 52
 
53 53
   const { targetId, ...trackParams } = params || {}