Selaa lähdekoodia

Merge branch 'master' into dev

张延森 5 vuotta sitten
vanhempi
commit
f2c4f24457
6 muutettua tiedostoa jossa 225 lisäystä ja 53 poistoa
  1. 1
    1
      config/prod.js
  2. 101
    46
      src/pages/project/h5Page.js
  3. 40
    5
      src/pages/project/index.js
  4. 7
    1
      src/utils/request.js
  5. 50
    0
      src/utils/rtLog.js
  6. 26
    0
      src/utils/tools.js

+ 1
- 1
config/prod.js Näytä tiedosto

9
     // WSS_HOST: '"wss://dev.jinchengjiaye.com"',
9
     // WSS_HOST: '"wss://dev.jinchengjiaye.com"',
10
     HOST: '"https://lt.pawoma.cn"',
10
     HOST: '"https://lt.pawoma.cn"',
11
     WSS_HOST: '"wss://lt.pawoma.cn"',
11
     WSS_HOST: '"wss://lt.pawoma.cn"',
12
-    Version:'V3.5.2.3_2019-12-16'
12
+    Version:'V3.5.2.3_2019-12-17'
13
   },
13
   },
14
   weapp: {},
14
   weapp: {},
15
   h5: {}
15
   h5: {}

+ 101
- 46
src/pages/project/h5Page.js Näytä tiedosto

9
 import { ROLE_CODE } from '@constants/user'
9
 import { ROLE_CODE } from '@constants/user'
10
 import { getQrCodeParams } from '@utils/qrcode'
10
 import { getQrCodeParams } from '@utils/qrcode'
11
 import { getMiniQrcode, savePoint, updatePoint } from '@services/common'
11
 import { getMiniQrcode, savePoint, updatePoint } from '@services/common'
12
+import { isEmpty } from '@utils/tools'
13
+
12
 const bgImg = require('@assets/helpgroup/bg.png')
14
 const bgImg = require('@assets/helpgroup/bg.png')
13
 
15
 
14
 @connect(state => state.user, { ...actions })
16
 @connect(state => state.user, { ...actions })
19
     avatarVisible: false,
21
     avatarVisible: false,
20
     phoneVisible: false,
22
     phoneVisible: false,
21
     webViewVisible: false,
23
     webViewVisible: false,
24
+    // pageHide: true,
22
     pageInfo: {},
25
     pageInfo: {},
23
     codeParams: '', // 解析二维码参数
26
     codeParams: '', // 解析二维码参数
27
+    h5Id: undefined,
24
   }
28
   }
25
 
29
 
26
   componentWillUnmount() {
30
   componentWillUnmount() {
27
     const { recordId } = this.state
31
     const { recordId } = this.state
28
     recordId && updatePoint(recordId)
32
     recordId && updatePoint(recordId)
29
   }
33
   }
34
+
35
+  // componentDidHide() {
36
+  //   this.setState({ pageHide: true });
37
+  // }
38
+
39
+  // componentDidShow() {
40
+  //   this.setState({ pageHide: false });
41
+  // }
42
+
30
   // 埋点
43
   // 埋点
31
   success() {
44
   success() {
32
-    const { userInfo: { person } } = this.props
33
-
34
-    const router = Taro.getStorageSync('router')
45
+    const router = Taro.getStorageSync('router') || { query: {} }
35
     const firstShare = this.$router.params.firstShare || router.query.firstShare || ""
46
     const firstShare = this.$router.params.firstShare || router.query.firstShare || ""
36
     const consultant = this.$router.params.consultant || router.query.consultant || ""
47
     const consultant = this.$router.params.consultant || router.query.consultant || ""
37
     const sharePersonId = this.$router.params.sharePersonId || router.query.sharePersonId || ""
48
     const sharePersonId = this.$router.params.sharePersonId || router.query.sharePersonId || ""
38
-    const { pageInfo } = this.state
39
-    const targetId = pageInfo.drainageId || this.$router.params.id || router.query.id || ""
49
+    const { h5Id } = this.state
50
+
40
     savePoint({
51
     savePoint({
41
       event: 'detail',
52
       event: 'detail',
42
       eventType: 'h5',
53
       eventType: 'h5',
43
       propertyName: 'h5活动',
54
       propertyName: 'h5活动',
44
       consultantId: consultant,
55
       consultantId: consultant,
45
       sharePersonId: sharePersonId,
56
       sharePersonId: sharePersonId,
46
-      targetId: targetId,
57
+      targetId: h5Id,
47
       data: '{"firstShare":"' + firstShare + '"}'
58
       data: '{"firstShare":"' + firstShare + '"}'
48
     }).then(res => {
59
     }).then(res => {
49
       this.setState({
60
       this.setState({
52
       console.log('访问记录')
63
       console.log('访问记录')
53
     })
64
     })
54
   }
65
   }
66
+
55
   // 分享好友
67
   // 分享好友
56
   onShareAppMessage = () => {
68
   onShareAppMessage = () => {
57
     const { pageInfo } = this.state
69
     const { pageInfo } = this.state
74
   //   })
86
   //   })
75
   // }
87
   // }
76
 
88
 
77
-
78
   currentPageAndParams() {
89
   currentPageAndParams() {
79
     const { userInfo: { person } } = this.props
90
     const { userInfo: { person } } = this.props
80
-    const router = Taro.getStorageSync('router')
91
+    const { h5Id } = this.state
92
+    const router = Taro.getStorageSync('router') || { query: {} }
81
 
93
 
82
     const consultant = person.personType == ROLE_CODE['CONSULTANT'] ? person.userId : ""
94
     const consultant = person.personType == ROLE_CODE['CONSULTANT'] ? person.userId : ""
83
     const firstShare = this.$router.params.firstShare || router.query.firstShare || person.personId
95
     const firstShare = this.$router.params.firstShare || router.query.firstShare || person.personId
84
-    const id = this.$router.params.id || router.query.id || ""
85
 
96
 
86
     let queryParams = [
97
     let queryParams = [
87
       `sharePersonId=${person.personId}`,
98
       `sharePersonId=${person.personId}`,
88
       `consultant=${consultant}`,
99
       `consultant=${consultant}`,
89
       `firstShare=${firstShare}`,
100
       `firstShare=${firstShare}`,
90
-      `id=${id}`
101
+      `id=${h5Id}`
91
     ]
102
     ]
92
 
103
 
93
     const res = [
104
     const res = [
97
 
108
 
98
     return res
109
     return res
99
   }
110
   }
111
+
100
   componentWillMount() {
112
   componentWillMount() {
101
     ready.queue(() => {
113
     ready.queue(() => {
114
+
102
       Taro.showLoading()
115
       Taro.showLoading()
103
       if (this.$router.params.scene) {
116
       if (this.$router.params.scene) {
104
 
117
 
106
           this.setState({
119
           this.setState({
107
             codeParams: res['__raw'] || ''
120
             codeParams: res['__raw'] || ''
108
           })
121
           })
122
+
123
+          if (isEmpty(res.id)) {
124
+            Taro.showModal({
125
+              title: '提示',
126
+              content: '活动不存在',
127
+              success: (res) => {
128
+                if (res.confirm) {
129
+                  this.gotoIndex()
130
+                }
131
+              },
132
+            })
133
+            return;
134
+          }
135
+
136
+          if (!this.state.h5Id) {
137
+            this.loadH5Profile(res.id)
138
+          }
109
           // console.log(codeParams, "解析二维码返回值")
139
           // console.log(codeParams, "解析二维码返回值")
110
         })
140
         })
111
       }
141
       }
112
 
142
 
113
-      console.log(this.$router, "this.$router")
114
-      const router = Taro.getStorageSync('router')
115
-      console.log(router, "router")
116
-      const hFiveId = this.$router.params.id || router.query.id || ""
117
-      console.log(hFiveId, "hFiveId")
118
-      // h5id 、第一个分享人ID、置业顾问ID、分享人ID
119
-      getHFiveDetail(hFiveId).then(res => {
120
-        Taro.hideLoading()
121
-        if (res.status == 1) {
122
-          this.setState({
123
-            pageInfo: res
124
-          })
125
-        } else {
126
-          Taro.showModal({
127
-            title: '提示',
128
-            content: '活动已下架',
129
-            showCancel: false,
130
-          }).then(() => {
131
-            Taro.switchTab({
132
-              url: '/pages/project/index'
133
-            })
134
-          })
135
-        }
136
-      })
143
+      const router = Taro.getStorageSync('router') || { query: {} }
144
+      const hFiveId = this.$router.params.id || router.query.id
145
+
146
+      if (!isEmpty(hFiveId)) {
147
+        this.loadH5Profile(hFiveId)
148
+      }
149
+
150
+      // 没有 H5ID, 也没有分享
151
+      if (isEmpty(hFiveId) && !this.$router.params.scene) {
152
+        Taro.showModal({
153
+          title: '提示',
154
+          content: '活动不存在',
155
+          success: (res) => {
156
+            if (res.confirm) {
157
+              this.gotoIndex()
158
+            }
159
+          },
160
+        })
161
+        return;
162
+      }
163
+
137
       const { userInfo: { person: { avatarurl, phone } } } = this.props
164
       const { userInfo: { person: { avatarurl, phone } } } = this.props
138
-      console.log(this.props, "this.propsthis.propsthis.props")
139
 
165
 
140
       if (avatarurl && avatarurl.indexOf('wx.qlogo.cn') != -1) {
166
       if (avatarurl && avatarurl.indexOf('wx.qlogo.cn') != -1) {
141
         console.log(avatarurl, "有头像哦~")
167
         console.log(avatarurl, "有头像哦~")
171
       }
197
       }
172
     })
198
     })
173
   }
199
   }
200
+
201
+  gotoIndex = () => {
202
+    Taro.switchTab({
203
+      url: '/pages/project/index'
204
+    })    
205
+  }
206
+
207
+  loadH5Profile = (id) => {
208
+    // h5id 、第一个分享人ID、置业顾问ID、分享人ID
209
+    getHFiveDetail(id).then(res => {
210
+      Taro.hideLoading()
211
+      if (res.status == 1) {
212
+        this.setState({
213
+          pageInfo: res,
214
+          h5Id: id,
215
+        })
216
+      } else {
217
+        Taro.showModal({
218
+          title: '提示',
219
+          content: '活动已下架',
220
+          showCancel: false,
221
+        }).then(() => {
222
+          this.gotoIndex()
223
+        })
224
+      }
225
+    })
226
+  }
227
+
174
   // 授权头像成功
228
   // 授权头像成功
175
   onAvatarSuccess() {
229
   onAvatarSuccess() {
176
     this.setState({
230
     this.setState({
221
       }
275
       }
222
     })
276
     })
223
   }
277
   }
278
+
224
   // 授权手机号
279
   // 授权手机号
225
   getPhoneNumber(e) {
280
   getPhoneNumber(e) {
226
     getUserPhone(e, (phoneNumber) => {
281
     getUserPhone(e, (phoneNumber) => {
240
       }
295
       }
241
     })
296
     })
242
   }
297
   }
298
+
243
   // 报备客户
299
   // 报备客户
244
   reportClient() {
300
   reportClient() {
245
 
301
 
246
-    const router = Taro.getStorageSync('router')
302
+    const router = Taro.getStorageSync('router') || { query: {} }
247
     const consultant = this.$router.params.consultant || router.query.consultant || ""
303
     const consultant = this.$router.params.consultant || router.query.consultant || ""
248
     const {
304
     const {
249
       userInfo: { person: { phone, tel, userId } }
305
       userInfo: { person: { phone, tel, userId } }
250
     } = this.props
306
     } = this.props
251
-    // debugger
307
+
252
     if (consultant && consultant != userId) {
308
     if (consultant && consultant != userId) {
253
       const realPhone = phone || tel
309
       const realPhone = phone || tel
254
       const payload = {
310
       const payload = {
266
   }
322
   }
267
 
323
 
268
   renderMaskBanner() {
324
   renderMaskBanner() {
269
-    const { avatarVisible, phoneVisible, pageInfo } = this.state
325
+    const { avatarVisible, phoneVisible, pageInfo, h5Id } = this.state
270
     return (
326
     return (
271
       <View>
327
       <View>
272
         <Image src={pageInfo.middleImg || bgImg} mode='widthFix' className='bg_img'></Image>
328
         <Image src={pageInfo.middleImg || bgImg} mode='widthFix' className='bg_img'></Image>
273
         <View className="middle-page">
329
         <View className="middle-page">
274
-          {avatarVisible &&
330
+          {avatarVisible && h5Id &&
275
             <View className="content">
331
             <View className="content">
276
               <View className="title">授权头像,围观活动</View>
332
               <View className="title">授权头像,围观活动</View>
277
               <View className="touxiang"><open-data type="userAvatarUrl"></open-data></View>
333
               <View className="touxiang"><open-data type="userAvatarUrl"></open-data></View>
279
               <Button className="btn" open-type="getUserInfo" lang="zh_CN" onGetUserInfo={this.getUserInfo}>好</Button>
335
               <Button className="btn" open-type="getUserInfo" lang="zh_CN" onGetUserInfo={this.getUserInfo}>好</Button>
280
             </View>
336
             </View>
281
           }
337
           }
282
-          {phoneVisible &&
338
+          {phoneVisible && h5Id &&
283
             <Button className="phone-btn" open-type="getPhoneNumber" lang="zh_CN" onGetphonenumber={this.getPhoneNumber}>点击授权查看详情</Button>
339
             <Button className="phone-btn" open-type="getPhoneNumber" lang="zh_CN" onGetphonenumber={this.getPhoneNumber}>点击授权查看详情</Button>
284
           }
340
           }
285
         </View>
341
         </View>
287
     )
343
     )
288
   }
344
   }
289
   render() {
345
   render() {
290
-    const router = Taro.getStorageSync('router')
291
-    const { pageInfo, webViewVisible, codeParams } = this.state
346
+    const router = Taro.getStorageSync('router') || { query: {} }
347
+    const { pageInfo, webViewVisible, codeParams, pageHide, h5Id } = this.state
292
     const { userInfo: { person } } = this.props
348
     const { userInfo: { person } } = this.props
293
     const consultant = person.personType == ROLE_CODE['CONSULTANT'] ? person.userId : ""
349
     const consultant = person.personType == ROLE_CODE['CONSULTANT'] ? person.userId : ""
294
-    const h5id = this.$router.params.id || router.query.id || ""
295
     const firstShare = this.$router.params.firstShare || router.query.firstShare || person.personId
350
     const firstShare = this.$router.params.firstShare || router.query.firstShare || person.personId
296
     const webUrlParams = [
351
     const webUrlParams = [
297
       `personId=${person.personId}`,
352
       `personId=${person.personId}`,
298
-      `h5id=${h5id}`,
353
+      `h5id=${h5Id}`,
299
       `consultant=${consultant}`,
354
       `consultant=${consultant}`,
300
       `firstShare=${firstShare}`,
355
       `firstShare=${firstShare}`,
301
       `codeParams=${encodeURIComponent(codeParams)}`,
356
       `codeParams=${encodeURIComponent(codeParams)}`,
302
     ].join('&')
357
     ].join('&')
303
 
358
 
304
-    console.log('----web-h5------>', `${pageInfo.h5Address}?${webUrlParams}`)
359
+    const showH5 = !isEmpty(h5Id) && pageInfo.h5Address && pageInfo.h5Address !== 'about' && pageInfo.h5Address !== 'http://about' && pageInfo.h5Address !== 'https://about'
305
 
360
 
306
-    const showH5 = pageInfo.h5Address && pageInfo.h5Address !== 'about' && pageInfo.h5Address !== 'http://about' && pageInfo.h5Address !== 'https://about'
361
+    console.log('----web-h5------>', showH5, `${pageInfo.h5Address}?${webUrlParams}`)
307
 
362
 
308
     return (
363
     return (
309
       <Block>
364
       <Block>

+ 40
- 5
src/pages/project/index.js Näytä tiedosto

22
 import Authorize from '@components/authorize'
22
 import Authorize from '@components/authorize'
23
 
23
 
24
 
24
 
25
-const accountInfo = wx.getAccountInfoSync();
25
+const { miniProgram: { appId } } = wx.getAccountInfoSync();
26
+
27
+// 分享图
28
+let shareImageOfApp;
29
+// banner 广告图
30
+let advImageOfApp;
31
+
32
+switch (appId) {
33
+  case 'wx755faa4b3ec76cd3':
34
+    // 尾房宝
35
+    shareImageOfApp = 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/cff400dab32e9230f6bf7498b8291d7.jpg';
36
+    advImageOfApp = 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/f58480ff83787b64235b729bca5d805.jpg';
37
+    break;
38
+
39
+  case 'wx1d981b76761246ce':
40
+    // 橙蕉嘉房
41
+    shareImageOfApp = 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/%E6%A9%99%E8%95%89%E5%98%89%E6%88%BF.jpg';
42
+    break;
43
+
44
+  case 'wxa431cc21403b51bb':
45
+    // 橙蕉海房
46
+    shareImageOfApp = 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/%E6%A9%99%E8%95%89%E6%B5%B7%E6%88%BF.jpg';
47
+    break;
48
+
49
+  case 'wx25c971cd14b0e11d':
50
+    // 橙蕉越房
51
+    shareImageOfApp = 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/%E6%A9%99%E8%95%89%E8%B6%8A%E6%88%BF.jpg';
52
+    break;
53
+
54
+  case 'wx593a402c7c27beb9':
55
+    // 橙蕉金房
56
+    shareImageOfApp = 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/%E6%A9%99%E8%95%89%E9%87%91%E6%88%BF.jpg';
57
+    break;
58
+
59
+  default:
60
+    shareImageOfApp = 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/upload/images/1574145199853-97feda7895c65be33aa234a7b81b37f.jpg';
61
+    break;
62
+}
26
 
63
 
27
 @connect(
64
 @connect(
28
   state => ({ ...state.project, ...state.city, ...state.user }),
65
   state => ({ ...state.project, ...state.city, ...state.user }),
37
     keywords: '',
74
     keywords: '',
38
     loaded: false,
75
     loaded: false,
39
     maskBanner: '',
76
     maskBanner: '',
40
-    // shareImg: 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/cff400dab32e9230f6bf7498b8291d7.jpg',
41
-    shareImg: 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/upload/images/1574145199853-97feda7895c65be33aa234a7b81b37f.jpg',
42
-    // shareImg: 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/upload/images/1565358322510-share.jpg',
43
-    // adImage: 'https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/f58480ff83787b64235b729bca5d805.jpg',
77
+    shareImg: shareImageOfApp,
78
+    adImage: advImageOfApp,
44
     bannerList: [],
79
     bannerList: [],
45
     helpGroupList: [],
80
     helpGroupList: [],
46
     newsList: [],
81
     newsList: [],

+ 7
- 1
src/utils/request.js Näytä tiedosto

1
 import Taro from '@tarojs/taro'
1
 import Taro from '@tarojs/taro'
2
 import { API_UPLOAD_IMAGE } from '@constants/api'
2
 import { API_UPLOAD_IMAGE } from '@constants/api'
3
 import login from '@utils/login'
3
 import login from '@utils/login'
4
+import rtLog from './rtLog'
5
+
4
 const CODE_SUCCESS = 1000
6
 const CODE_SUCCESS = 1000
5
 const CODE_UNLOGIN = 1001
7
 const CODE_UNLOGIN = 1001
6
 const CODE_AUTH_EXPIRED = 1002
8
 const CODE_AUTH_EXPIRED = 1002
82
       throw res.data
84
       throw res.data
83
     }
85
     }
84
   }).catch((err) => {
86
   }).catch((err) => {
85
-    console.error(err, url)
87
+    rtLog.error('[request]', "==================================")
88
+    rtLog.error('[request]', err)
89
+    rtLog.error('[request]', url)
90
+    rtLog.error('[request]', wx.getLaunchOptionsSync())
91
+    rtLog.error('[request]', "==================================")
86
 
92
 
87
     let errMessage = `请求失败: ${err.errMsg}`
93
     let errMessage = `请求失败: ${err.errMsg}`
88
     if (err.errMsg) {
94
     if (err.errMsg) {

+ 50
- 0
src/utils/rtLog.js Näytä tiedosto

1
+
2
+let logger;
3
+
4
+function getLogger() {
5
+  if (wx.canIUse('getRealtimeLogManager')) {
6
+    return wx.getRealtimeLogManager()
7
+  }
8
+
9
+  return undefined;
10
+}
11
+
12
+function info(...args) {
13
+  if (!logger) {
14
+    logger = getLogger()
15
+  }
16
+
17
+  // 本地打印
18
+  console.info(...args)
19
+
20
+  // 远程提交
21
+  if (logger) {
22
+    logger.info(...args)
23
+  }
24
+}
25
+
26
+function error(...args) {
27
+  if (!logger) {
28
+    logger = getLogger()
29
+  }
30
+
31
+  console.error(...args)
32
+
33
+  if (logger) {
34
+    logger.error(...args)
35
+  }
36
+}
37
+
38
+function warn(...args) {
39
+  if (!logger) {
40
+    logger = getLogger()
41
+  }
42
+
43
+  console.warn(...args)
44
+
45
+  if (logger) {
46
+    logger.warn(...args)
47
+  }
48
+}
49
+
50
+export default { info, error, warn }

+ 26
- 0
src/utils/tools.js Näytä tiedosto

1
 import Taro from '@tarojs/taro';
1
 import Taro from '@tarojs/taro';
2
 
2
 
3
+/**
4
+ * 是否为空
5
+ * @param {*} o 
6
+ */
7
+export function isEmpty(o) {
8
+  if (typeof o === 'string') {
9
+    if (!o || o === 'null' || o === 'undefined') {
10
+      return true
11
+    }
12
+  }
13
+
14
+  if (typeof o === 'object') {
15
+    return !Object.keys(o).length
16
+  }
17
+
18
+  if (Array.isArray(o)) {
19
+    return !o.length
20
+  }
21
+
22
+  if (o === null || o === undefined) {
23
+    return true
24
+  }
25
+
26
+  return false
27
+}
28
+
3
 /**
29
 /**
4
  * 是否分享场景(含扫码)
30
  * 是否分享场景(含扫码)
5
  * @param {*} scene 
31
  * @param {*} scene