张延森 3 anos atrás
pai
commit
7d962a2a90

+ 2
- 2
config/dev.js Ver arquivo

@@ -4,8 +4,8 @@ module.exports = {
4 4
   },
5 5
   defineConstants: {
6 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 9
     WSS_HOST: '"wss://xlk.njyz.tech"',
10 10
     OSS_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
11 11
     OSS_FAST_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',

+ 1
- 1
config/prod.js Ver arquivo

@@ -10,7 +10,7 @@ module.exports = {
10 10
     OSS_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
11 11
     OSS_FAST_PATH: '"https://xlk-assets.oss-accelerate.aliyuncs.com/"',
12 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 15
   mini: {},
16 16
   h5: {

+ 1
- 1
src/app.jsx Ver arquivo

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

+ 2
- 0
src/constants/api.js Ver arquivo

@@ -322,3 +322,5 @@ export const API_CHANNEL_STAT_REPORT = resolvePath('briefing')
322 322
 
323 323
 // 渠道客户基本状态
324 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 Ver arquivo

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

+ 40
- 0
src/layout/useFixedRouter.js Ver arquivo

@@ -0,0 +1,40 @@
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 Ver arquivo

@@ -6,6 +6,9 @@ import { ROLE_CODE } from '@/constants/user'
6 6
 import classNames from 'classnames'
7 7
 import useFavor from '@/utils/hooks/useFavor'
8 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 12
 import '@/assets/css/iconfont.css'
10 13
 import './index.scss'
11 14
 
@@ -19,9 +22,9 @@ export default function BasicInfo (props) {
19 22
   const goto = (url) => Taro.navigateTo({ url })
20 23
 
21 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 Ver arquivo

@@ -3,6 +3,7 @@ import store from '../store'
3 3
 
4 4
 export const MESSAGE_TYPE = {
5 5
   NOTICE: 'notice',
6
+  ACTIVITY: 'activity',
6 7
 }
7 8
 
8 9
 export function showSubscribeMessage (messageType) {
@@ -11,8 +12,8 @@ export function showSubscribeMessage (messageType) {
11 12
 
12 13
   const tmplIds = (miniApp.tpls || []).filter(x => x.tplType === messageType).map(x => x.tplId)
13 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 18
   } else {
18 19
     return Promise.resolve()

+ 46
- 45
src/utils/tools.js Ver arquivo

@@ -330,49 +330,50 @@ export const getLocation = () => {
330 330
 }
331 331
 
332 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
 }