张延森 3 jaren geleden
bovenliggende
commit
7d962a2a90

+ 2
- 2
config/dev.js Bestand weergeven

4
   },
4
   },
5
   defineConstants: {
5
   defineConstants: {
6
     // HOST: '"https://xlk.njyz.tech"',
6
     // HOST: '"https://xlk.njyz.tech"',
7
-    // HOST: '"https://xlj.newlandsh.com"',
8
-    HOST: '"http://127.0.0.1:8567"',
7
+    HOST: '"https://xlj.newlandsh.com"',
8
+    // HOST: '"http://127.0.0.1:8567"',
9
     WSS_HOST: '"wss://xlk.njyz.tech"',
9
     WSS_HOST: '"wss://xlk.njyz.tech"',
10
     OSS_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
10
     OSS_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
11
     OSS_FAST_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
11
     OSS_FAST_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',

+ 1
- 1
config/prod.js Bestand weergeven

10
     OSS_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
10
     OSS_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
11
     OSS_FAST_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
11
     OSS_FAST_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
12
     ICON_FONT: '"https://yz-websit.oss-cn-hangzhou.aliyuncs.com/xlk/css/iconfont.ttf"',
12
     ICON_FONT: '"https://yz-websit.oss-cn-hangzhou.aliyuncs.com/xlk/css/iconfont.ttf"',
13
-    Version: '"V0.0.46-20210813"'
13
+    Version: '"V0.0.51-20210813"'
14
   },
14
   },
15
   mini: {},
15
   mini: {},
16
   h5: {
16
   h5: {

+ 1
- 1
src/app.jsx Bestand weergeven

61
         Taro.setStorage({ key: 'systemInfo', data })
61
         Taro.setStorage({ key: 'systemInfo', data })
62
       }
62
       }
63
     })
63
     })
64
-  
64
+
65
     getLocation().then((loc) => {
65
     getLocation().then((loc) => {
66
       getRouterParams(options).then(router => {
66
       getRouterParams(options).then(router => {
67
         Taro.setStorageSync('router', router)
67
         Taro.setStorageSync('router', router)

+ 2
- 0
src/constants/api.js Bestand weergeven

322
 
322
 
323
 // 渠道客户基本状态
323
 // 渠道客户基本状态
324
 export const API_CHANNEL_CUSTOMER_STATUS = resolvePath('channelCustomer/status')
324
 export const API_CHANNEL_CUSTOMER_STATUS = resolvePath('channelCustomer/status')
325
+
326
+export const API_SUBSCRIBE_MESSAGE = resolvePath('miniapp-message')

+ 6
- 4
src/layout/index.js Bestand weergeven

16
 import { ROLE_CODE } from '@/constants/user'
16
 import { ROLE_CODE } from '@/constants/user'
17
 import useAuth from './useAuth'
17
 import useAuth from './useAuth'
18
 import useScreen from './useScreen'
18
 import useScreen from './useScreen'
19
+import useFixedRouter from './useFixedRouter'
19
 import { routes } from '../routes'
20
 import { routes } from '../routes'
20
 
21
 
21
 import './style.scss'
22
 import './style.scss'
28
   const city = useSelector(s => s.city.curCity)
29
   const city = useSelector(s => s.city.curCity)
29
   const { spinning, userInfo } = useSelector(s => s.user)
30
   const { spinning, userInfo } = useSelector(s => s.user)
30
   const { person, ...extInfo } = userInfo || {}
31
   const { person, ...extInfo } = userInfo || {}
31
-  const router = useRouter()
32
+  const router = useFixedRouter()
32
   const page = routes.filter((r) => (router.path.indexOf(r.page) > -1))[0]
33
   const page = routes.filter((r) => (router.path.indexOf(r.page) > -1))[0]
33
   const [loading, setLoading] = useState(false)
34
   const [loading, setLoading] = useState(false)
34
   const [authPhone, authAvatar, authPage] = useAuth(person, page)
35
   const [authPhone, authAvatar, authPage] = useAuth(person, page)
35
   const [shareTimelineVisible, setShareTimelineVisible] = useState(false)
36
   const [shareTimelineVisible, setShareTimelineVisible] = useState(false)
36
 
37
 
37
-  const { id } = router.params
38
+  const { id, scene, qrInited } = router.params
39
+
38
   const showConsultant = page.shortcut && page.shortcut.consultant
40
   const showConsultant = page.shortcut && page.shortcut.consultant
39
 
41
 
40
   // 页面分享
42
   // 页面分享
98
   }, [page])
100
   }, [page])
99
 
101
 
100
   useEffect(() => {
102
   useEffect(() => {
101
-    setLoading(!person || !person.personId)
103
+    setLoading((!person || !person.personId) || (scene && !qrInited))
102
   // eslint-disable-next-line react-hooks/exhaustive-deps
104
   // eslint-disable-next-line react-hooks/exhaustive-deps
103
-  }, [person])
105
+  }, [person, scene, qrInited])
104
 
106
 
105
   return (
107
   return (
106
     <>
108
     <>

+ 40
- 0
src/layout/useFixedRouter.js Bestand weergeven

1
+
2
+import { useEffect, useRef, useState } from 'react'
3
+import { useRouter } from '@tarojs/taro'
4
+import { parseQueryString } from '@/utils/tools'
5
+import { getCodeScene } from '@/services/common'
6
+
7
+export default () => {
8
+  const router = useRouter()
9
+  const routerRef = useRef()
10
+  routerRef.current = router
11
+
12
+  const { scene } = router.params
13
+
14
+  // 标记是否已经远程读取二维码参数
15
+  const [inited, setInited] = useState(scene ? false : true)
16
+
17
+  useEffect(() => {
18
+    if (scene) {
19
+      getCodeScene(scene).then((res) => {
20
+        const queryStr = JSON.parse(res).scene
21
+        const params = parseQueryString(queryStr) || {}
22
+        
23
+        routerRef.current.params = {
24
+          ...routerRef.current.params || {},
25
+          ...params
26
+        }
27
+
28
+        setInited(true)
29
+      })
30
+    }
31
+  }, [scene])
32
+
33
+  const params = {
34
+    ...routerRef.current.params,
35
+    qrInited: inited
36
+  }
37
+
38
+  router.params = params
39
+  return router
40
+}

+ 6
- 3
src/pages/index/buildingDetail/components/BasicInfo/index.jsx Bestand weergeven

6
 import classNames from 'classnames'
6
 import classNames from 'classnames'
7
 import useFavor from '@/utils/hooks/useFavor'
7
 import useFavor from '@/utils/hooks/useFavor'
8
 import { formatDate } from '@/utils/chatDate'
8
 import { formatDate } from '@/utils/chatDate'
9
+import { showSubscribeMessage, MESSAGE_TYPE } from '@/utils/subscribeMessage'
10
+import { fetch } from '@/utils/request'
11
+import { API_SUBSCRIBE_MESSAGE } from '@/constants/api'
9
 import '@/assets/css/iconfont.css'
12
 import '@/assets/css/iconfont.css'
10
 import './index.scss'
13
 import './index.scss'
11
 
14
 
19
   const goto = (url) => Taro.navigateTo({ url })
22
   const goto = (url) => Taro.navigateTo({ url })
20
 
23
 
21
   const handleSubscribeMessage = () => {
24
   const handleSubscribeMessage = () => {
22
-    Taro.showToast({
23
-      title: '该功能即将上线!',
24
-      icon: 'none',
25
+    const messageType = MESSAGE_TYPE.ACTIVITY 
26
+    showSubscribeMessage(messageType).then(() => {
27
+      fetch({ url: `${API_SUBSCRIBE_MESSAGE}`, payload: { messageType }, showToast: false })
25
     })
28
     })
26
   }
29
   }
27
 
30
 

+ 3
- 2
src/utils/subscribeMessage.js Bestand weergeven

3
 
3
 
4
 export const MESSAGE_TYPE = {
4
 export const MESSAGE_TYPE = {
5
   NOTICE: 'notice',
5
   NOTICE: 'notice',
6
+  ACTIVITY: 'activity',
6
 }
7
 }
7
 
8
 
8
 export function showSubscribeMessage (messageType) {
9
 export function showSubscribeMessage (messageType) {
11
 
12
 
12
   const tmplIds = (miniApp.tpls || []).filter(x => x.tplType === messageType).map(x => x.tplId)
13
   const tmplIds = (miniApp.tpls || []).filter(x => x.tplType === messageType).map(x => x.tplId)
13
   if (tmplIds.length > 0) {
14
   if (tmplIds.length > 0) {
14
-    return new Promise((resolve) => {
15
-      Taro.requestSubscribeMessage({ tmplIds, fail: (e) => { console.error(e) }, complete: resolve })
15
+    return new Promise((resolve, reject) => {
16
+      Taro.requestSubscribeMessage({ tmplIds, fail: (e) => { console.error(e); reject(e) }, success: resolve })
16
     })
17
     })
17
   } else {
18
   } else {
18
     return Promise.resolve()
19
     return Promise.resolve()

+ 46
- 45
src/utils/tools.js Bestand weergeven

330
 }
330
 }
331
 
331
 
332
 export const getRouterParams = (options) => {
332
 export const getRouterParams = (options) => {
333
-  return new Promise(resolve => {
334
-    const router = options || getCurrentInstance().router
335
-    const originQuery = { ...router.query };
336
-    let { query: { scene: paramsId }, scene } = router
337
-
338
-    // query 里面如果跟同级场景一样, 说明是小程序原生场景值
339
-    if (paramsId === scene) {
340
-      paramsId = undefined
341
-    }
342
-
343
-    if (paramsId) {
344
-      // 扫码进入
345
-      getCodeScene(paramsId).then(res => {
346
-        let params = JSON.parse(res).scene
347
-
348
-        let { from: _from, recommender: _recommender, consultant, id, ...left } = parseQueryString(params) || {}
349
-
350
-        router.query = Object.assign(router.query, {
351
-          originQuery,
352
-          id,
353
-          paramsId,
354
-          from: _from,
355
-          recommender: _recommender,
356
-          consultant,
357
-          params,
358
-          targetId: id,
359
-          ...left,
360
-        })
361
-        Taro.setStorageSync('recommender', router.query.recommender)
362
-        Taro.setStorageSync('consultantId', router.query.consultant)
363
-        resolve(router)
364
-      })
365
-    } else {
366
-      router.query = Object.assign(router.query, {
367
-        originQuery,
368
-        paramsId: router.query.id || '',
369
-        from: router.query.from || 'search',
370
-        recommender: router.query.recommender || '',
371
-        targetId: router.query.id || '',
372
-        consultant: router.query.consultant || '',
373
-      })
374
-
375
-      resolve(router)
376
-    }
377
-  })
333
+  return Promise.resolve(options)
334
+  // return new Promise(resolve => {
335
+  //   const router = options || getCurrentInstance().router
336
+  //   const originQuery = { ...router.query };
337
+  //   let { query: { scene: paramsId }, scene } = router
338
+
339
+  //   // query 里面如果跟同级场景一样, 说明是小程序原生场景值
340
+  //   if (paramsId === scene) {
341
+  //     paramsId = undefined
342
+  //   }
343
+
344
+  //   if (paramsId) {
345
+  //     // 扫码进入
346
+  //     getCodeScene(paramsId).then(res => {
347
+  //       let params = JSON.parse(res).scene
348
+
349
+  //       let { from: _from, recommender: _recommender, consultant, id, ...left } = parseQueryString(params) || {}
350
+
351
+  //       router.query = Object.assign(router.query, {
352
+  //         originQuery,
353
+  //         id,
354
+  //         paramsId,
355
+  //         from: _from,
356
+  //         recommender: _recommender,
357
+  //         consultant,
358
+  //         params,
359
+  //         targetId: id,
360
+  //         ...left,
361
+  //       })
362
+  //       Taro.setStorageSync('recommender', router.query.recommender)
363
+  //       Taro.setStorageSync('consultantId', router.query.consultant)
364
+  //       resolve(router)
365
+  //     })
366
+  //   } else {
367
+  //     router.query = Object.assign(router.query, {
368
+  //       originQuery,
369
+  //       paramsId: router.query.id || '',
370
+  //       from: router.query.from || 'search',
371
+  //       recommender: router.query.recommender || '',
372
+  //       targetId: router.query.id || '',
373
+  //       consultant: router.query.consultant || '',
374
+  //     })
375
+
376
+  //     resolve(router)
377
+  //   }
378
+  // })
378
 }
379
 }