Bläddra i källkod

Merge branch 'main' of http://git.ycjcjy.com/marketing/miniapp into main

张延森 3 år sedan
förälder
incheckning
ba7b2ca882

+ 2
- 2
config/dev.js Visa fil

3
     NODE_ENV: '"development"'
3
     NODE_ENV: '"development"'
4
   },
4
   },
5
   defineConstants: {
5
   defineConstants: {
6
-    HOST: '"https://xlk.njyz.tech"',
7
-    // HOST: '"https://www.newhousehold.cn"',
6
+    // HOST: '"https://xlk.njyz.tech"',
7
+    HOST: '"https://www.newhousehold.cn"',
8
     // HOST: '"http://127.0.0.1:8567"',
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-cn-shanghai.aliyuncs.com/"',
10
     OSS_PATH: '"https://xlk-assets.oss-cn-shanghai.aliyuncs.com/"',

+ 2
- 2
config/prod.js Visa fil

10
     OSS_PATH: '"https://xlk-assets.oss-cn-shanghai.aliyuncs.com/"',
10
     OSS_PATH: '"https://xlk-assets.oss-cn-shanghai.aliyuncs.com/"',
11
     OSS_FAST_PATH: '"https://xlk-assets.oss-cn-shanghai.aliyuncs.com/"',
11
     OSS_FAST_PATH: '"https://xlk-assets.oss-cn-shanghai.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.58-20210819"'
13
+    Version: '"V0.0.61-20210824"'
14
   },
14
   },
15
   mini: {},
15
   mini: {},
16
   h5: {
16
   h5: {
17
     /**
17
     /**
18
-     * 如果h5端编译后体积过大,可以使用webpack-bundle-analyzer插件对打包体积进行分析。
18
+     * 如果h5端编译后体积过大,可以使用webpack-bundle-analyzer插件对打包体积进行分析。d
19
      * 参考代码如下:
19
      * 参考代码如下:
20
      * webpackChain (chain) {
20
      * webpackChain (chain) {
21
      *   chain.plugin('analyzer')
21
      *   chain.plugin('analyzer')

+ 42
- 2
project.config.json Visa fil

2
 	"miniprogramRoot": "dist/",
2
 	"miniprogramRoot": "dist/",
3
 	"projectname": "miniapp",
3
 	"projectname": "miniapp",
4
 	"description": "",
4
 	"description": "",
5
-	"appid": "wxe44244d1a5ea3364",
5
+	"appid": "wxc96058d57e77f373",
6
 	"setting": {
6
 	"setting": {
7
 		"urlCheck": false,
7
 		"urlCheck": false,
8
 		"es6": false,
8
 		"es6": false,
33
 	"compileType": "miniprogram",
33
 	"compileType": "miniprogram",
34
 	"simulatorType": "wechat",
34
 	"simulatorType": "wechat",
35
 	"simulatorPluginLibVersion": {},
35
 	"simulatorPluginLibVersion": {},
36
-	"condition": {}
36
+	"condition": {
37
+		"search": {
38
+			"current": -1,
39
+			"list": []
40
+		},
41
+		"conversation": {
42
+			"current": -1,
43
+			"list": []
44
+		},
45
+		"plugin": {
46
+			"current": -1,
47
+			"list": []
48
+		},
49
+		"game": {
50
+			"current": -1,
51
+			"list": []
52
+		},
53
+		"gamePlugin": {
54
+			"current": -1,
55
+			"list": []
56
+		},
57
+		"miniprogram": {
58
+			"current": -1,
59
+			"list": [
60
+				{
61
+					"id": -1,
62
+					"name": "pages/index/index",
63
+					"pathName": "pages/index/index",
64
+					"query": "id= 1a679f513937508670594ea2ec616195&from=card _share&recommender= 1a679f513937508670594ea2ec616195",
65
+					"scene": null
66
+				},
67
+				{
68
+					"id": -1,
69
+					"name": "subpackages/pages/consultant/myHomepage/index",
70
+					"pathName": "subpackages/pages/consultant/myHomepage/index",
71
+					"query": "id=1a679f513937508670594ea2ec616195&from=card _share&recommender= 1a679f513937508670594ea2ec616195",
72
+					"scene": null
73
+				}
74
+			]
75
+		}
76
+	}
37
 }
77
 }

+ 29
- 48
src/app.jsx Visa fil

1
 import { Component } from 'react'
1
 import { Component } from 'react'
2
 import { Provider } from 'react-redux'
2
 import { Provider } from 'react-redux'
3
 import Taro from '@tarojs/taro'
3
 import Taro from '@tarojs/taro'
4
-import { getLocation, getRouterParams } from '@/utils/tools'
4
+import { getLocation } from '@/utils/tools'
5
 import login from '@/utils/login'
5
 import login from '@/utils/login'
6
 import im from '@/utils/im'
6
 import im from '@/utils/im'
7
-import store from './store'
8
 import trackUserSource from '@/utils/tracking/userSource'
7
 import trackUserSource from '@/utils/tracking/userSource'
8
+import store from './store'
9
 
9
 
10
 import './app.scss'
10
 import './app.scss'
11
 
11
 
49
   onLaunch (options) {
49
   onLaunch (options) {
50
 
50
 
51
     console.log('【onLaunch】:', JSON.stringify(options))
51
     console.log('【onLaunch】:', JSON.stringify(options))
52
-    const { mode } = options
52
+    const { mode, query } = options
53
     Taro.setStorageSync('mode', mode)
53
     Taro.setStorageSync('mode', mode)
54
 
54
 
55
     // 加载远程字体
55
     // 加载远程字体
62
       }
62
       }
63
     })
63
     })
64
 
64
 
65
+    // 获取地址
65
     getLocation().then((loc) => {
66
     getLocation().then((loc) => {
66
-      getRouterParams(options).then(router => {
67
-        Taro.setStorageSync('router', router)
68
-
69
-        const { query: payload } = router
70
-
71
-        payload.path = router.path
72
-        payload.scene = router.scene
73
-
74
-        if (loc) {
75
-          payload.lon = loc.lon
76
-          payload.lat = loc.lat
77
-        }
78
-
79
-        const { path, scene, ...params } = payload
80
-
81
-        if (mode === 'singlePage') {
82
-          // 分享朋友圈的单页模式
83
-          params.singleMode = true
84
-
85
-          // login
86
-          login(params).then(() => {
87
-            this.logged = true
88
-          })
89
-        } else {
90
-          // 非单页模式
91
-          Taro.login({
92
-            success: ({ code }) => {
93
-              params.code = code
94
-
95
-              // login
96
-              login(params).then((res) => {
97
-                const { person: { personId } } = res
98
-                
99
-                // 初始化 im
100
-                im.init(personId)
101
-
102
-                this.logged = true
103
-
104
-                // 埋点
105
-                trackUserSource(options).then((x) => (this.updateTracking = x))
106
-              })
107
-            }
108
-          })
109
-        }
110
-      })
67
+      const params = {
68
+        ...query||{},
69
+        ...loc||{},
70
+      }
71
+
72
+      if (mode === 'singlePage') {
73
+        // 分享朋友圈的单页模式
74
+        params.singleMode = true
75
+  
76
+        // login
77
+        login(params).then(() => {
78
+          this.logged = true
79
+        })
80
+      } else {
81
+        login(params).then((person) => {
82
+          
83
+          // 初始化 im
84
+          im.init(person.personId)
85
+
86
+          this.logged = true
87
+
88
+          // 埋点
89
+          trackUserSource(options).then((x) => (this.updateTracking = x))
90
+        })
91
+      }
111
     })
92
     })
112
   }
93
   }
113
 
94
 

+ 1
- 1
src/components/Auth/AuthPage/index.jsx Visa fil

18
   
18
   
19
   const handlePhoneNumber = (e) => {
19
   const handlePhoneNumber = (e) => {
20
     const { errMsg, ...data } = e?.detail || {}
20
     const { errMsg, ...data } = e?.detail || {}
21
-    debugger
21
+    // debugger
22
     if (errMsg === 'getPhoneNumber:ok') {
22
     if (errMsg === 'getPhoneNumber:ok') {
23
       setLoading(true)
23
       setLoading(true)
24
       updatePhoneNumber(data).then(() => {
24
       updatePhoneNumber(data).then(() => {

+ 1
- 1
src/layout/index.js Visa fil

26
   const city = useSelector(s => s.city.curCity)
26
   const city = useSelector(s => s.city.curCity)
27
   const { spinning, userInfo } = useSelector(s => s.user)
27
   const { spinning, userInfo } = useSelector(s => s.user)
28
   const { person, ...extInfo } = userInfo || {}
28
   const { person, ...extInfo } = userInfo || {}
29
-  const router = useFixedRouter()
29
+  const router = useFixedRouter(person)
30
   const page = routes.filter((r) => (router.path.indexOf(r.page) > -1))[0]
30
   const page = routes.filter((r) => (router.path.indexOf(r.page) > -1))[0]
31
   const [loading, setLoading] = useState(false)
31
   const [loading, setLoading] = useState(false)
32
   const [authPhone, authAvatar, authPage] = useAuth(person, page)
32
   const [authPhone, authAvatar, authPage] = useAuth(person, page)

+ 12
- 5
src/layout/useFixedRouter.js Visa fil

1
 
1
 
2
 import { useEffect, useRef, useState } from 'react'
2
 import { useEffect, useRef, useState } from 'react'
3
 import { useRouter } from '@tarojs/taro'
3
 import { useRouter } from '@tarojs/taro'
4
-import { parseQueryString } from '@/utils/tools'
4
+import { parseQueryString, setRecommender } from '@/utils/tools'
5
 import { getCodeScene } from '@/services/common'
5
 import { getCodeScene } from '@/services/common'
6
 
6
 
7
-export default () => {
7
+export default (person) => {
8
   const router = useRouter()
8
   const router = useRouter()
9
   const routerRef = useRef()
9
   const routerRef = useRef()
10
   routerRef.current = router
10
   routerRef.current = router
18
     if (scene) {
18
     if (scene) {
19
       getCodeScene(scene).then((res) => {
19
       getCodeScene(scene).then((res) => {
20
         const queryStr = JSON.parse(res).scene
20
         const queryStr = JSON.parse(res).scene
21
-        const params = parseQueryString(queryStr) || {}
21
+        const { recommender, ...otherParams } = parseQueryString(queryStr) || {}
22
+
23
+        const isSelf = recommender && recommender === person?.personId
22
         
24
         
23
         routerRef.current.params = {
25
         routerRef.current.params = {
24
           ...routerRef.current.params || {},
26
           ...routerRef.current.params || {},
25
-          ...params
27
+          ...otherParams,
28
+          ...(isSelf || !recommender ? {} : { recommender }),
29
+        }
30
+
31
+        if (!isSelf) {
32
+          setRecommender(recommender)
26
         }
33
         }
27
 
34
 
28
         setInited(true)
35
         setInited(true)
29
       })
36
       })
30
     }
37
     }
31
-  }, [scene])
38
+  }, [scene, person])
32
 
39
 
33
   const params = {
40
   const params = {
34
     ...routerRef.current.params,
41
     ...routerRef.current.params,

+ 1
- 1
src/pages/index/buildingDetail/components/SpecialPriceHouse/index.jsx Visa fil

34
           {
34
           {
35
             List.map((item, index) => (
35
             List.map((item, index) => (
36
               <view className='ListItem' key={`List-${index}`}>
36
               <view className='ListItem' key={`List-${index}`}>
37
-                <text className='Tips'>省{`${toW(item.thriftPrice)}`}</text>
37
+                <text className='Tips'>省{`${toW(item.thriftPrice)}`}</text>
38
                 <view className='Price'>
38
                 <view className='Price'>
39
                   <text>{toW(item.currentPrice)}</text>
39
                   <text>{toW(item.currentPrice)}</text>
40
                   <text>万</text>
40
                   <text>万</text>

+ 6
- 6
src/pages/index/buildingPropertyConsultant/index.jsx Visa fil

9
 
9
 
10
 export default withLayout((props) => {
10
 export default withLayout((props) => {
11
   const { router } = props
11
   const { router } = props
12
-  const { buildingId } = router.params
12
+  const { buldingId } = router.params
13
 
13
 
14
   const [List, setList] = useState([])
14
   const [List, setList] = useState([])
15
 
15
 
35
   }
35
   }
36
 
36
 
37
   useEffect(() => {
37
   useEffect(() => {
38
-    if (!buildingId) {
38
+    if (!buldingId) {
39
       Taro.showToast({
39
       Taro.showToast({
40
         title: '没有楼盘信息',
40
         title: '没有楼盘信息',
41
         icon: 'none',
41
         icon: 'none',
43
       return
43
       return
44
     }
44
     }
45
 
45
 
46
-    getCardList({ pageSize: 500, buildingId }).then((res) => {
46
+    getCardList({ pageSize: 500, buildingId: buldingId }).then((res) => {
47
       const { records } = res || []
47
       const { records } = res || []
48
       setList(records)
48
       setList(records)
49
     })
49
     })
50
-  }, [buildingId])
50
+  }, [buldingId])
51
 
51
 
52
   return (
52
   return (
53
     <view className='Page buildingPropertyConsultant'>
53
     <view className='Page buildingPropertyConsultant'>
82
                   ></text>
82
                   ></text>
83
                   
83
                   
84
                 </view>
84
                 </view>
85
-
85
+                
86
                 <view className='Desc'>
86
                 <view className='Desc'>
87
-                  <text>{item.description}</text>
87
+                  <text>{item.description || '暂无简介'}</text>
88
                 </view>
88
                 </view>
89
 
89
 
90
               </view>
90
               </view>

+ 9
- 7
src/pages/index/components/HotRecommend/index.jsx Visa fil

47
     Taro.navigateTo({ url: `/pages/index/activityList/index?type=${CurrentId}` })
47
     Taro.navigateTo({ url: `/pages/index/activityList/index?type=${CurrentId}` })
48
   }
48
   }
49
 
49
 
50
-  const toDetail = () => {
51
-    if (CurrentContentInfo.dynamicId) {
52
-      Taro.navigateTo({ url: `/pages/index/activityDetail/index?id=${CurrentContentInfo.dynamicId}` })
50
+  const toDetail = (item) => {
51
+    return () => {
52
+      if (item.dynamicId) {
53
+        Taro.navigateTo({ url: `/pages/index/activityDetail/index?id=${item.dynamicId}` })
54
+      }
53
     }
55
     }
54
   }
56
   }
55
 
57
 
73
                     <SwiperItem key={`Banner-${index}`}>
75
                     <SwiperItem key={`Banner-${index}`}>
74
                       <view className='swiper-item'>
76
                       <view className='swiper-item'>
75
                         <view className='flex-h'>
77
                         <view className='flex-h'>
76
-                          <text className='flex-item' onClick={toDetail}>{item.title || '暂无活动'}</text>
78
+                          <text className='flex-item' onClick={toDetail(item)}>{item.title || '暂无活动'}</text>
77
                           <text onClick={() => { ToMore() }}>更多活动</text>
79
                           <text onClick={() => { ToMore() }}>更多活动</text>
78
                         </view>
80
                         </view>
79
-                        <text onClick={toDetail}>{item.halfTitle}</text>
81
+                        <text onClick={toDetail(item)}>{item.halfTitle}</text>
80
                       </view>
82
                       </view>
81
                     </SwiperItem>
83
                     </SwiperItem>
82
                   ))
84
                   ))
91
                     <SwiperItem key={`Banner-${index}`}>
93
                     <SwiperItem key={`Banner-${index}`}>
92
                       <view className='swiper-item'>
94
                       <view className='swiper-item'>
93
                         <view className='flex-h'>
95
                         <view className='flex-h'>
94
-                          <text className='flex-item' onClick={toDetail}>{item.title || '暂无活动'}</text>
96
+                          <text className='flex-item' onClick={toDetail(item)}>{item.title || '暂无活动'}</text>
95
                           <text onClick={() => { ToMore() }}>更多团房</text>
97
                           <text onClick={() => { ToMore() }}>更多团房</text>
96
                         </view>
98
                         </view>
97
-                        <text onClick={toDetail}>{item.halfTitle}</text>
99
+                        <text onClick={toDetail(item)}>{item.halfTitle}</text>
98
                       </view>
100
                       </view>
99
                     </SwiperItem>
101
                     </SwiperItem>
100
                   ))
102
                   ))

+ 4
- 1
src/pages/index/helpToFindHouse/components/SubmitBuyHouseResult/index.jsx Visa fil

64
                           <view className='RecommendBuildingItem' key={`item-${index}`} onClick={() => { Taro.navigateTo({ url: `/pages/index/buildingDetail/index?id=${item.buildingId}` }) }}>
64
                           <view className='RecommendBuildingItem' key={`item-${index}`} onClick={() => { Taro.navigateTo({ url: `/pages/index/buildingDetail/index?id=${item.buildingId}` }) }}>
65
                             <view>
65
                             <view>
66
                               <view className='Img'>
66
                               <view className='Img'>
67
-                                <Image mode='aspectFill' src={getImgURL(item.poster || item.preSalePermit)} className='centerLabel'></Image>
67
+                                {
68
+                                  (item.buildingListImg || []).length > 0 &&
69
+                                  <Image mode='aspectFill' src={getImgURL(item.buildingListImg[0].url)} className='centerLabel'></Image>
70
+                                }
68
                               </view>
71
                               </view>
69
                               <view className='Title flex-h'>
72
                               <view className='Title flex-h'>
70
                                 <view className='flex-item'>
73
                                 <view className='flex-item'>

+ 1
- 1
src/pages/mine/index.jsx Visa fil

85
                         <text onClick={() => { Taro.navigateTo({ url: `/pages/mine/userInfo/index` }) }}>个人信息资料修改</text>
85
                         <text onClick={() => { Taro.navigateTo({ url: `/pages/mine/userInfo/index` }) }}>个人信息资料修改</text>
86
                       </view>
86
                       </view>
87
                     </view>
87
                     </view>
88
-                    <text className='Role'>{UserRole === 1 ? '客户' : UserRole === 2 ? '经纪人' : UserRole === 3 ? '置业顾问' : '驻场管理'}</text>
88
+                    <text className='Role'>{UserRole === 1 ? '客户' : UserRole === 2 ? '合伙人' : UserRole === 3 ? '置业顾问' : '驻场管理'}</text>
89
                     <text className='New'>NEW</text>
89
                     <text className='New'>NEW</text>
90
                     <text className='iconfont icon-diqiu'></text>
90
                     <text className='iconfont icon-diqiu'></text>
91
                   </view>
91
                   </view>

+ 1
- 1
src/pages/mine/myCustomerDetail/index.jsx Visa fil

204
                 followList.map((item, index) => (
204
                 followList.map((item, index) => (
205
                   <view key={`Item-${index}`}>
205
                   <view key={`Item-${index}`}>
206
                     <view className='flex-h'>
206
                     <view className='flex-h'>
207
-                      <text>范丞丞</text>
207
+                      <text>{item.name}</text>
208
                       <view className='flex-item'></view>
208
                       <view className='flex-item'></view>
209
                       <text>{formatDate(item.createDate, 'yyyy-MM-dd hh:mm')}</text>
209
                       <text>{formatDate(item.createDate, 'yyyy-MM-dd hh:mm')}</text>
210
                     </view>
210
                     </view>

+ 2
- 2
src/services/login.js Visa fil

9
  * 获取用户openid等信息
9
  * 获取用户openid等信息
10
  * @param {*} payload 
10
  * @param {*} payload 
11
  */
11
  */
12
-export const wxLogin = (payload, showToast) => {
13
-  return fetch({ url: `${API_USER_LOGIN}?${Qs.stringify(payload)}`, method: 'POST', showToast })
12
+export const wxLogin = (payload) => {
13
+  return fetch({ url: `${API_USER_LOGIN}?${Qs.stringify(payload, { skipNulls: true })}`, method: 'POST', showToast: false })
14
 }
14
 }

+ 1
- 1
src/subpackages/pages/consultant/myHomepage/index.jsx Visa fil

113
                     <text>{UserInfo.name} {UserInfo.phone}</text>
113
                     <text>{UserInfo.name} {UserInfo.phone}</text>
114
                   </view>
114
                   </view>
115
                   <text onClick={handleFavor} className='iconfont icon-dianzan' style={isSave ? { color: 'red' } : undefined}></text>
115
                   <text onClick={handleFavor} className='iconfont icon-dianzan' style={isSave ? { color: 'red' } : undefined}></text>
116
-                  <text onClick={handleFavor}>{LikeNum}{isSave ? `已点赞` : '赞'}</text>
116
+                  <text onClick={handleFavor}>{isSave ? `已点赞` : '赞'}</text>
117
                 </view>
117
                 </view>
118
                 <view className='Tag'>
118
                 <view className='Tag'>
119
                   <view>
119
                   <view>

+ 51
- 19
src/utils/login.js Visa fil

1
 import Taro from '@tarojs/taro';
1
 import Taro from '@tarojs/taro';
2
 import store from "@/store";
2
 import store from "@/store";
3
 import { dispatchCitySelected } from '@/actions/city'
3
 import { dispatchCitySelected } from '@/actions/city'
4
-import { USER_INFO, ASSIGN_UNREADNUM, ROLE_CODE } from '@/constants/user'
5
-import { ifNull } from '@/utils/tools'
4
+import { USER_INFO } from '@/constants/user'
5
+import { parseQueryString, setRecommender } from '@/utils/tools'
6
 import { wxLogin } from '@/services/login'
6
 import { wxLogin } from '@/services/login'
7
 import { queryUserInfo } from '@/services/user'
7
 import { queryUserInfo } from '@/services/user'
8
-import { API_QUERY_USERINFO_BYID } from '@/constants/api'
9
-import { fetch } from '@/utils/request'
10
-
11
-export default (params) => {
12
-  return new Promise((resolve, reject) => {  
13
-    // 转换 undefined 为 ''
14
-    const loginParams = Object.keys(params).reduce((acc, k) => ({ ...acc, [`${k}`]: ifNull(params[k], '') }), {})
8
+import { getCodeScene } from '@/services/common'
15
 
9
 
10
+function loginRemote (params) {
11
+  return new Promise((resolve, reject) => {
16
     // 远程登录获取人员
12
     // 远程登录获取人员
17
-    wxLogin(loginParams, false).then(data => {
13
+    wxLogin({...params }).then(data => {
18
 
14
 
19
       const { extraInfo, miniApp, person, city } = data
15
       const { extraInfo, miniApp, person, city } = data
20
       const { token, sessionKey } = miniApp
16
       const { token, sessionKey } = miniApp
32
         }
28
         }
33
       }
29
       }
34
 
30
 
31
+      // 如果有推荐人信息
32
+      if (params.recommender && params.recommender !== person.personId) {
33
+        setRecommender(params.recommender)
34
+      }
35
+
35
       // 获取人员详细信息
36
       // 获取人员详细信息
36
       // eslint-disable-next-line no-unused-vars
37
       // eslint-disable-next-line no-unused-vars
37
       queryUserInfo().then(info => {
38
       queryUserInfo().then(info => {
38
         resolve(data)
39
         resolve(data)
39
       }).catch(reject)
40
       }).catch(reject)
41
+    }).catch(reject)
42
+  
43
+  })
44
+}
40
 
45
 
41
-      // 如果有推荐人信息
42
-      if (loginParams.recommender && loginParams.recommender !== person.personId) {
43
-        fetch({ url: `${API_QUERY_USERINFO_BYID}/${loginParams.recommender}` }).then((res) => {
44
-          dispatch({ type: 'SYNC_RECOMMENDER', payload: res });
45
-          if (res.personType === ROLE_CODE.CONSULTANT) {
46
-            dispatch({ type: 'SYNC_CONSULTANT', payload: res });
47
-          }
46
+function getCodeAndLogin (params) {
47
+  return new Promise((resolve, reject) => {
48
+    Taro.login({
49
+      success: ({ code }) => {
50
+        params.code = code
51
+  
52
+        // login
53
+        loginRemote(params).then((res) => {
54
+          const { person } = res
55
+          resolve(person)
48
         })
56
         })
57
+      },
58
+      fail: (err) => {
59
+        console.error(err)
60
+        reject(err)
49
       }
61
       }
50
-    }).catch(reject)
51
-  
62
+    })
63
+  })
64
+}
65
+
66
+export default (params) => {
67
+  return new Promise((resolve, reject) => {
68
+    // 二维码ID
69
+    const qrCodeId = params.scene
70
+    if (qrCodeId) {
71
+      // 读二维码内容
72
+      getCodeScene(qrCodeId).then((res) => {
73
+        const queryStr = JSON.parse(res).scene
74
+        const qrCodeParams = parseQueryString(queryStr) || {}
75
+        
76
+        getCodeAndLogin({
77
+          ...params,
78
+          ...qrCodeParams,
79
+        }).then(resolve).catch(reject)
80
+      })
81
+    } else {
82
+      getCodeAndLogin(params).then(resolve).catch(reject)
83
+    }
52
   })
84
   })
53
 }
85
 }

+ 12
- 50
src/utils/tools.js Visa fil

1
-import Taro, { getCurrentInstance } from "@tarojs/taro";
2
-import { getCodeScene } from '@/services/common';
1
+import Taro from "@tarojs/taro";
2
+import { API_QUERY_USERINFO_BYID } from '@/constants/api';
3
+import { ROLE_CODE } from '@/constants/user'
4
+import { fetch } from '@/utils/request';
3
 import store from "@/store";
5
 import store from "@/store";
4
 
6
 
5
 /**
7
 /**
329
   })
331
   })
330
 }
332
 }
331
 
333
 
332
-export const getRouterParams = (options) => {
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
-  // })
379
-}
334
+export function setRecommender(recommender) {
335
+  fetch({ url: `${API_QUERY_USERINFO_BYID}/${recommender}` }).then((res) => {
336
+    store.dispatch({ type: 'SYNC_RECOMMENDER', payload: res });
337
+    if (res.personType === ROLE_CODE.CONSULTANT) {
338
+      store.dispatch({ type: 'SYNC_CONSULTANT', payload: res });
339
+    }
340
+  })
341
+}