Parcourir la source

Merge branch 'v4' of http://git.ycjcjy.com/zhiyuxing/miniapp-v3 into v4

许静 il y a 5 ans
Parent
révision
74efe44eb9

+ 2
- 2
config/dev.js Voir le fichier

@@ -9,8 +9,8 @@ module.exports = {
9 9
     // WSS_HOST: '"wss://dev.jinchengjiaye.com"',
10 10
     // HOST: '"https://lt.pawoma.cn"',
11 11
     // WSS_HOST: '"wss://lt.pawoma.cn"',
12
-    HOST: '"http://192.168.0.84:8080"',
13
-    WSS_HOST: '"ws://192.168.0.84:8080"',
12
+    HOST: '"http://127.0.0.1:8080"',
13
+    WSS_HOST: '"ws://127.0.0.1:8080"',
14 14
   },
15 15
   weapp: {},
16 16
   h5: {}

+ 1
- 0
src/constants/api.js Voir le fichier

@@ -55,6 +55,7 @@ export const API_GOODS_EXCHANGE_RECORDS = resolvePath('taPointsExchange')
55 55
 export const API_POINTS_RECORDS = resolvePath('taPointsRecords')
56 56
 export const API_POINTS_RULE = resolvePath('tdPointsRules')
57 57
 export const API_POINTS_ADRESS = resolvePath('person/city')
58
+export const API_GOODS_BELONGS = resolvePath('goodsToBuilding')
58 59
 
59 60
 // client
60 61
 export const API_CLIENT_LIST = resolvePath('customer/recommend/mine')

+ 11
- 5
src/pages/activity/activity.js Voir le fichier

@@ -1,5 +1,5 @@
1 1
 import Taro, { Component } from '@tarojs/taro';
2
-import ListView from '@components/ListView'
2
+import Authorize from '@components/authorize'
3 3
 import './index.scss'
4 4
 import { AtTabs, AtTabsPane } from 'taro-ui'
5 5
 import "taro-ui/dist/style/components/tabs.scss"
@@ -10,10 +10,9 @@ import { savePoint, updatePoint } from '@services/common'
10 10
 import { connect } from '@tarojs/redux'
11 11
 
12 12
 
13
-
14 13
 let pageIndex = 1
15 14
 
16
-@connect(state => state.city)
15
+@connect(({ user, city }) => ({ user, city }))
17 16
 export default class active extends Component {
18 17
 
19 18
   config = {
@@ -29,12 +28,19 @@ export default class active extends Component {
29 28
     this.setState({
30 29
       current: value
31 30
     })
31
+  }  
32
+
33
+  renderLogin() {
34
+    return <Authorize></Authorize>
32 35
   }
33 36
 
34 37
   render() {
35
-    const { isEmpty, hasMore, list } = this.state
36
-    return (
38
+    const { user } = this.state
39
+    // if (!user || !user.phone) {
40
+    //   return this.renderLogin()
41
+    // }
37 42
 
43
+    return (!user || !user.phone) ? this.renderLogin() : (
38 44
       <View style="height:100vh">
39 45
         <AtTabs className="tab-box" scroll current={this.state.current} tabList={[{ title: '热门活动' }, { title: '最新资讯' }]} onClick={this.handleClick.bind(this)}>
40 46
           <AtTabsPane current={this.state.current} index={0} >

+ 5
- 3
src/pages/activity/detail/index.js Voir le fichier

@@ -7,7 +7,7 @@ import dayjs from 'dayjs'
7 7
 import WxParse from '@components/wxParse/wxParse'
8 8
 import getUserPhone from '@utils/getUserPhone'
9 9
 import ready from '@utils/ready'
10
-import { getDownloadURL } from '@utils/tools'
10
+import { getDownloadURL, times } from '@utils/tools'
11 11
 import {
12 12
   addActivityShareNum,
13 13
   signupActivity,
@@ -38,7 +38,7 @@ export default class Detail extends Component {
38 38
     posterShow: false,
39 39
     posterData: {},
40 40
     posterVisible: false,
41
-    selector: ['1', '2', '3'],
41
+    selector: [],
42 42
     selectorChecked: '1',
43 43
     canChoose: 'none',
44 44
     inputName: ''
@@ -68,8 +68,10 @@ export default class Detail extends Component {
68 68
         detail: res,
69 69
         isSaved,
70 70
         isSign,
71
-        loaded: true
71
+        loaded: true,
72
+        selector: times(res.maxEnlistByPerson || 1).map((_, i) => `${i+1}`),
72 73
       }, () => {
74
+        console.log('-----state-->', this.state)
73 75
         const { detail } = this.state
74 76
         if (detail.posters[0].posterImg) {
75 77
           this.setState({

+ 1
- 0
src/pages/auth/index.js Voir le fichier

@@ -15,6 +15,7 @@ export default class Index extends Component {
15 15
     const sessionKey = Taro.getStorageSync('sessionKey')
16 16
     // 获取用户信息
17 17
     Taro.getUserInfo({
18
+      lang: 'zh_CN',
18 19
       success: res => {
19 20
         const payload = Object.assign(res, { sessionKey })
20 21
         // const { userInfo: { nickName, gender, country, city, province } } = payload

+ 33
- 255
src/pages/person/index.js Voir le fichier

@@ -8,6 +8,9 @@ import Notice from '@components/Notice'
8 8
 
9 9
 import * as actions from '@actions/user'
10 10
 import Authorize from '@components/authorize'
11
+
12
+import { menus } from './menus'
13
+
11 14
 @connect(({ user, city }) => ({ user, city }), { ...actions })
12 15
 export default class Person extends Component {
13 16
   config = {
@@ -19,7 +22,8 @@ export default class Person extends Component {
19 22
     user: {},
20 23
     isAgent: false,//经纪人
21 24
     consultant: false,//置业顾问
22
-    tourist: false,//普通用户
25
+    tourist: false,//普通用户,
26
+    menus: [],
23 27
   }
24 28
 
25 29
   componentDidShow() {
@@ -32,7 +36,8 @@ export default class Person extends Component {
32 36
     queryUserInfo().then(user => {
33 37
       this.setState({
34 38
         user,
35
-        phone: user.phone
39
+        phone: user.phone,
40
+        menus: menus.map(group => group.filter(x => x.userTypes.indexOf(user.personType) > -1))
36 41
       }, () => {
37 42
         if (user.personType != ROLE_CODE['CHANNEL_AGENT'] && user.personType != ROLE_CODE['ESTATE_AGENT'] && user.personType != 'Realty Consultant') {
38 43
           this.setState({ tourist: true, phone: user.phone })
@@ -87,65 +92,8 @@ export default class Person extends Component {
87 92
     })
88 93
   }
89 94
 
90
-  toFavor() {
91
-    Taro.navigateTo({
92
-      url: '/pages/person/favorite/index'
93
-    })
94
-  }
95
-  toAgentClient() {
96
-    Taro.navigateTo({
97
-      url: '/pages/agent/client/index'
98
-    })
99
-  }
100
-  toAssemble() {
101
-    Taro.navigateTo({
102
-      url: '/pages/activity/assemblePage'
103
-    })
104
-  }
105
-  toAssistance() {
106
-    Taro.navigateTo({
107
-      url: '/pages/activity/assistancePage'
108
-    })
109
-  }
110
-  toProfile() {
111
-    Taro.navigateTo({
112
-      url: '/pages/person/profile/index'
113
-    })
114
-  }
115
-  toAgent() {
116
-    Taro.navigateTo({
117
-      url: '/pages/agent/index'
118
-    })
119
-  }
120
-  toAgentInvitation() {
121
-    Taro.navigateTo({
122
-      url: '/pages/agent/invitation/index'
123
-    })
124
-  }
125
-  toActivity() {
126
-    Taro.navigateTo({
127
-      url: '/pages/activity/myActivity?from=mine'
128
-    })
129
-  }
130
-  toRecord() {
131
-    Taro.navigateTo({
132
-      url: '/pages/shop/record/index'
133
-    })
134
-  }
135
-  toToolkit() {
136
-    Taro.navigateTo({
137
-      url: '/pages/toolKit/index'
138
-    })
139
-  }
140
-  toPolicy() {
141
-    Taro.navigateTo({
142
-      url: '/pages/policy/index?from=mine'
143
-    })
144
-  }
145
-  toFeedback() {
146
-    Taro.navigateTo({
147
-      url: '/pages/person/feedback/index'
148
-    })
95
+  redirectTo(url) {
96
+    Taro.navigateTo({ url })
149 97
   }
150 98
 
151 99
   getRoleName(type) {
@@ -195,7 +143,7 @@ export default class Person extends Component {
195 143
   }
196 144
 
197 145
   renderDetail() {
198
-    const { user, isAgent, consultant, tourist } = this.state
146
+    const { user, menus, isAgent, consultant, tourist } = this.state
199 147
     // const isConsultant = user.personType == ROLE_CODE['CONSULTANT']
200 148
     // const isConsultant = user.personType
201 149
     return (
@@ -234,199 +182,29 @@ export default class Person extends Component {
234 182
           </View>
235 183
         </View>
236 184
         <View>
237
-          <View onClick={this.toAgent} className="menu-item-con">
238
-            <Image className="left-icon" src={require('@assets/mine/homepage.png')} ></Image>
239
-            <View className="menu-maintext">
240
-              <Text className="menu-name">我的主页</Text>
241
-              <Text className="right-icon"></Text>
242
-            </View>
243
-
244
-          </View>
245
-          <View onClick={this.toAgentClient} className="menu-item-con">
246
-            <Image className="left-icon" src={require('@assets/mine/recommend.png')} ></Image>
247
-            <View className="menu-maintext">
248
-              <Text className="menu-name">推荐客户</Text>
249
-              <Text className="right-icon"></Text>
250
-            </View>
251
-          </View>
252
-          <View onClick={this.toAgentInvitation} className="menu-item-con">
253
-            <Image className="left-icon" src={require('@assets/mine/development.png')} ></Image>
254
-            <View className="menu-maintext">
255
-              <Text className="menu-name">发展经纪人</Text>
256
-              <Text className="right-icon"></Text>
257
-            </View>
258
-          </View>
259
-          <View className='line'></View>
260
-          <View onClick={this.toActivity} className="menu-item-con">
261
-            <Image className="left-icon" src={require('@assets/mine/activities.png')} ></Image>
262
-            <View className="menu-maintext">
263
-
264
-              <Text className="menu-name">我的活动</Text>
265
-              <Text className="right-icon"></Text>
266
-            </View>
267
-
268
-          </View>
269
-          <View onClick={this.toAssemble} className="menu-item-con">
270
-            <Image className="left-icon" src={require('@assets/mine/regiment.png')} ></Image>
271
-            <View className="menu-maintext">
272
-              <Text className="menu-name">我的拼团</Text>
273
-              <Text className="right-icon"></Text>
274
-            </View>
275
-
276
-          </View>
277
-          <View onClick={this.toAssistance} className="menu-item-con">
278
-            <Image className="left-icon" src={require('@assets/mine/help.png')} ></Image>
279
-            <View className="menu-maintext">
280
-              <Text className="menu-name">我的助力</Text>
281
-              <Text className="right-icon"></Text>
282
-            </View>
283
-
284
-          </View>
285
-          <View className='line'></View>
286
-          <View onClick={this.toFavor} className="menu-item-con">
287
-            <Image className="left-icon" src={require('@assets/mine/collection.png')} ></Image>
288
-            <View className="menu-maintext">
289
-              <Text className="menu-name">我的收藏</Text>
290
-              <Text className="right-icon"></Text>
291
-            </View>
292
-
293
-          </View>
294
-          <View onClick={this.toRecord} className="menu-item-con">
295
-            <Image className="left-icon" src={require('@assets/mine/exchange.png')} ></Image>
296
-            <View className="menu-maintext">
297
-
298
-              <Text className="menu-name">兑换记录</Text>
299
-              <Text className="right-icon"></Text>
300
-            </View>
301
-
302
-          </View>
303
-          <View onClick={this.toProfile} className="menu-item-con">
304
-            <Image className="left-icon" src={require('@assets/mine/profile.png')} ></Image>
305
-            <View className="menu-maintext">
306
-
307
-              <Text className="menu-name">我的资料</Text>
308
-              <Text className="right-icon"></Text>
309
-            </View>
310
-
311
-          </View>
312
-          <View onClick={this.toToolkit} className="menu-item-con">
313
-            <Image className="left-icon" src={require('@assets/mine/calculator.png')} ></Image>
314
-            <View className="menu-maintext">
315
-
316
-              <Text className="menu-name">房贷计算器</Text>
317
-              <Text className="right-icon"></Text>
318
-            </View>
319
-
320
-          </View>
321
-          <View onClick={this.toPolicy} className="menu-item-con">
322
-            <Image className="left-icon" src={require('@assets/mine/encyclopedia.png')} ></Image>
323
-            <View className="menu-maintext">
324
-
325
-              <Text className="menu-name">购房百科</Text>
326
-              <Text className="right-icon"></Text>
327
-            </View>
328
-
329
-          </View>
330
-          <View onClick={this.toFeedback} className="menu-item-con">
331
-            <Image className="left-icon" src={require('@assets/mine/feedback.png')} ></Image>
332
-            <View className="menu-maintext">
333
-
334
-              <Text className="menu-name">意见反馈</Text>
335
-              <Text className="right-icon"></Text>
336
-            </View>
337
-
338
-          </View>
185
+          {
186
+            menus.map((group, ginx) => {
187
+              return (
188
+                <Block key={`grp-${ginx}`}>
189
+                  {
190
+                    group.map((menu, inx) => {
191
+                      return (
192
+                        <View onClick={() => this.redirectTo(menu.url)} className="menu-item-con" key={`menu-${inx}`}>
193
+                          <Image className="left-icon" src={menu.icon} ></Image>
194
+                          <View className="menu-maintext">
195
+                            <Text className="menu-name">{menu.name}</Text>
196
+                            <Text className="right-icon"></Text>
197
+                          </View>        
198
+                        </View>
199
+                      )
200
+                    })
201
+                  }
202
+                  <View className='line'></View>
203
+                </Block>
204
+              )
205
+            })
206
+          }
339 207
         </View>
340
-        {/* <View className="list-item">
341
-          <Image src={require('@assets/person/shouye.png')} className="icon" ></Image>
342
-          <Text className='menu-item_txt'>我的主页</Text>
343
-        </View> */}
344
-        {/* <View className="menu menu1"> */}
345
-        {/* 经纪人的主页 */}
346
-        {/* {(user.personType == ROLE_CODE['ESTATE_AGENT'] || user.personType == ROLE_CODE['CHANNEL_AGENT']) && (<Navigator className="menu-item" hover-class="none" url={`/pages/agent/index`}>
347
-            <Image src={require('@assets/person/shouye.png')} className='menu-item_img' mode="widthFix"></Image>
348
-            <Text className='menu-item_txt'>我的主页</Text>
349
-          </Navigator>)} */}
350
-        {/* 置业顾问主页 */}
351
-        {/* {user.personType == 'Realty Consultant' && (<Navigator className="menu-item" hover-class="none" url={`/pages/card/index?id=${user.id}`}>
352
-            <Image src={require('@assets/person/shouye.png')} className='menu-item_img' mode="widthFix"></Image>
353
-            <Text className='menu-item_txt'>我的主页</Text>
354
-          </Navigator>)} */}
355
-
356
-        {/* 经纪人推荐客户 */}
357
-        {/* {(user.personType == ROLE_CODE['ESTATE_AGENT'] || user.personType == ROLE_CODE['CHANNEL_AGENT']) && (<Navigator className="menu-item" hover-class="none" url={`/pages/agent/client/index`}>
358
-            <Image src={require('@assets/person/wode.png')} className='menu-item_img' mode="widthFix"></Image>
359
-            <Text className='menu-item_txt'>推荐客户</Text>
360
-          </Navigator>)} */}
361
-
362
-
363
-
364
-        {/* 游客主页 */}
365
-        {/* {(user.personType == ROLE_CODE['CUSTOMER'] || !user.personType) && (<Navigator className="menu-item" hover-class="none" url={`/pages/agent/become/index`}>
366
-            <Image src={require('@assets/person/shouye.png')} className='menu-item_img' mode="widthFix"></Image>
367
-            <Text className='menu-item_txt'>经纪人</Text>
368
-          </Navigator>)} */}
369
-
370
-
371
-        {/* 置业顾问 */}
372
-        {/* {user.personType == 'Realty Consultant' && (<View className='menu-item' onClick={this.toClientPage}>
373
-            <Image src={require('@assets/person/kehu.png')} className='menu-item_img' mode="widthFix"></Image>
374
-            <Text className='menu-item_txt'>我的客户</Text>
375
-          </View>)} */}
376
-
377
-        {/* <Navigator className='menu-item' hover-class="none" url="/pages/person/feedback/index">
378
-            <Image src={require('@assets/person/fankui.png')} className='menu-item_img' mode="widthFix"></Image>
379
-            <Text className='menu-item_txt'>意见反馈</Text>
380
-          </Navigator> */}
381
-
382
-        {/* <Navigator className='menu-item' hover-class="none" url="/pages/shop/record/index">
383
-            <Image src={require('@assets/person/shijian.png')} className='menu-item_img' mode="widthFix"></Image>
384
-            <Text className='menu-item_txt'>兑换记录</Text>
385
-          </Navigator> */}
386
-
387
-        {/* <Navigator className='menu-item' hover-class="none" url="/pages/activity/index?from=mine">
388
-            <Image src={require('@assets/person/huodong.png')} className='menu-item_img' mode="widthFix"></Image>
389
-            <Text className='menu-item_txt'>我的活动</Text>
390
-          </Navigator> */}
391
-
392
-        {/* <View className='menu-item' onClick={this.toFavor}>
393
-            <Image src={require('@assets/person/shou.png')} className='menu-item_img' mode="widthFix"></Image>
394
-            <Text className='menu-item_txt'>我的收藏</Text>
395
-          </View>
396
-        */}
397
-
398
-        {/* 经纪人我的邀请 */}
399
-        {/* {(user.personType == ROLE_CODE['ESTATE_AGENT'] || user.personType == ROLE_CODE['CHANNEL_AGENT']) && (<Navigator className="menu-item" hover-class="none" url={`/pages/agent/invitation/index`}>
400
-            <Image src={require('@assets/person/yaoqing.png')} className='menu-item_img' mode="widthFix"></Image>
401
-            <Text className='menu-item_txt'>发展经纪人</Text>
402
-          </Navigator>)} */}
403
-        {/* 经纪人/置业顾问推广码 */}
404
-        {/* {(user.personType == ROLE_CODE['ESTATE_AGENT'] || user.personType == ROLE_CODE['CHANNEL_AGENT'] || user.personType == ROLE_CODE['CONSULTANT']) && (<Navigator className="menu-item" hover-class="none" url={`/pages/person/spread/index`}>
405
-            <Image src={require('@assets/tui.png')} className='menu-item_img' mode="widthFix"></Image>
406
-            <Text className='menu-item_txt'>我的推广码</Text>
407
-          </Navigator>)}
408
-        </View> */}
409
-        {/* VIP积分 */}
410
-        {/* <View className='integral'>
411
-          <Image src={require('@assets/person/vip.png')} className='integral-img' mode="widthFix" onClick={this.doSign}></Image>
412
-          <Image src={require('@assets/person/fanhui.png')} className='goto_btn' mode="widthFix"></Image>
413
-        </View> */}
414
-        {/* <View className='line'></View>
415
-        <View className='menu menu2'>
416
-          <View className='menu-tit'>我的服务</View>
417
-          <Navigator className='menu-item' hover-class="none" url="/pages/toolKit/index?from=mine">
418
-            <Image src={require('@assets/person/jisuanqi.png')} className='menu-item_img' mode="widthFix"></Image>
419
-            <Text className='menu-item_txt'>房贷计算</Text>
420
-          </Navigator> */}
421
-        {/* <Navigator className='menu-item' hover-class="none" url="/pages/policy/index?from=mine">
422
-            <Image src={require('@assets/person/zheng.png')} className='menu-item_img' mode="widthFix"></Image>
423
-            <Text className='menu-item_txt'>购房政策</Text>
424
-          </Navigator> */}
425
-        {/* <View className='menu-item' onClick={this.handleMore}>
426
-            <Image src={require('@assets/person/more.png')} className='menu-item_img' mode="widthFix"></Image>
427
-            <Text className='menu-item_txt'>敬请期待</Text>
428
-          </View>
429
-        </View> */}
430 208
       </View>
431 209
     );
432 210
   }
@@ -436,7 +214,7 @@ export default class Person extends Component {
436 214
     return (
437 215
       <View className='wrap'>
438 216
         {phone && this.renderDetail()}
439
-        {!phone && this.renderLogin()}
217
+        {/* {!phone && this.renderLogin()} */}
440 218
       </View>
441 219
     )
442 220
   }

+ 123
- 0
src/pages/person/menus.js Voir le fichier

@@ -0,0 +1,123 @@
1
+import { ROLE_CODE } from '@constants/user'
2
+
3
+export const icons = {
4
+  homepage: require('@assets/mine/homepage.png'),
5
+  recommend: require('@assets/mine/recommend.png'),
6
+  development: require('@assets/mine/development.png'),
7
+  activities: require('@assets/mine/activities.png'),
8
+  regiment: require('@assets/mine/regiment.png'),
9
+  help: require('@assets/mine/help.png'),
10
+  collection: require('@assets/mine/collection.png'),
11
+  exchange: require('@assets/mine/exchange.png'),
12
+  profile: require('@assets/mine/profile.png'),
13
+  calculator: require('@assets/mine/calculator.png'),
14
+  encyclopedia: require('@assets/mine/encyclopedia.png'),
15
+  feedback: require('@assets/mine/feedback.png'),
16
+}
17
+
18
+const DRIFT = ROLE_CODE['DRIFT']
19
+const CUSTOMER = ROLE_CODE['CUSTOMER']
20
+const CONSULTANT = ROLE_CODE['CONSULTANT']
21
+const ESTATE_AGENT = ROLE_CODE['ESTATE_AGENT']
22
+const CHANNEL_AGENT = ROLE_CODE['CHANNEL_AGENT']
23
+
24
+export const menus = [
25
+  [
26
+    {
27
+      name: '我的主页',
28
+      url: '/pages/agent/index',
29
+      icon: icons.homepage,
30
+      extends: undefined,
31
+      userTypes: [CONSULTANT, ESTATE_AGENT, CHANNEL_AGENT],
32
+    },
33
+    {
34
+      name: '成为经纪人',
35
+      url: '/pages/agent/become/index',
36
+      icon: icons.development,
37
+      extends: undefined,
38
+      userTypes: [CUSTOMER],
39
+    },
40
+    {
41
+      name: '推荐客户',
42
+      url: '/pages/agent/client/index',
43
+      icon: icons.recommend,
44
+      extends: undefined,
45
+      userTypes: [ESTATE_AGENT, CHANNEL_AGENT],
46
+    },
47
+    {
48
+      name: '发展经纪人',
49
+      url: '/pages/agent/invitation/index',
50
+      icon: icons.development,
51
+      extends: undefined,
52
+      userTypes: [ESTATE_AGENT, CHANNEL_AGENT],
53
+    },
54
+  ],
55
+  [
56
+    {
57
+      name: '我的活动',
58
+      url: '/pages/activity/index?from=mine',
59
+      icon: icons.activities,
60
+      extends: undefined,
61
+      userTypes: [CUSTOMER, CONSULTANT, ESTATE_AGENT, CHANNEL_AGENT],
62
+    },
63
+    {
64
+      name: '我的拼团',
65
+      url: '/pages/activity/assemblePage',
66
+      icon: icons.regiment,
67
+      extends: undefined,
68
+      userTypes: [CUSTOMER, CONSULTANT, ESTATE_AGENT, CHANNEL_AGENT],
69
+    },
70
+    {
71
+      name: '我的助力',
72
+      url: '/pages/activity/assistancePage',
73
+      icon: icons.regiment,
74
+      extends: undefined,
75
+      userTypes: [CUSTOMER, CONSULTANT, ESTATE_AGENT, CHANNEL_AGENT],
76
+    },
77
+  ],
78
+  [
79
+    {
80
+      name: '我的收藏',
81
+      url: '/pages/person/favorite/index',
82
+      icon: icons.collection,
83
+      extends: undefined,
84
+      userTypes: [CUSTOMER, CONSULTANT, ESTATE_AGENT, CHANNEL_AGENT],
85
+    },
86
+    {
87
+      name: '我的资料',
88
+      url: '/pages/person/profile/index',
89
+      icon: icons.profile,
90
+      extends: undefined,
91
+      userTypes: [CUSTOMER, ESTATE_AGENT, CHANNEL_AGENT],
92
+    },
93
+    {
94
+      name: '兑换记录',
95
+      url: '/pages/shop/record/index',
96
+      icon: icons.exchange,
97
+      extends: undefined,
98
+      userTypes: [CUSTOMER, CONSULTANT, ESTATE_AGENT, CHANNEL_AGENT],
99
+    },
100
+    {
101
+      name: '房贷计算器',
102
+      url: '/pages/toolKit/index',
103
+      icon: icons.calculator,
104
+      extends: undefined,
105
+      userTypes: [CUSTOMER, CONSULTANT, ESTATE_AGENT, CHANNEL_AGENT],
106
+    },
107
+    {
108
+      name: '购房百科',
109
+      url: '/pages/policy/index?from=mine',
110
+      icon: icons.encyclopedia,
111
+      extends: undefined,
112
+      userTypes: [CUSTOMER, CONSULTANT, ESTATE_AGENT, CHANNEL_AGENT],
113
+    },
114
+    {
115
+      name: '意见反馈',
116
+      url: '/pages/person/feedback/index',
117
+      icon: icons.feedback,
118
+      extends: undefined,
119
+      userTypes: [CUSTOMER, CONSULTANT, ESTATE_AGENT, CHANNEL_AGENT],
120
+    },
121
+  ],
122
+]
123
+

+ 2
- 0
src/pages/project/map/index.js Voir le fichier

@@ -38,6 +38,8 @@ export default class Index extends Component {
38 38
       }, () => {
39 39
         const { list } = this.state
40 40
         list.forEach(function (val, index) {
41
+          if (!val.coordinate || val.coordinate.indexOf(',') === -1) return
42
+
41 43
           let coord = val.coordinate.split(',')
42 44
           let latitude = parseFloat(coord[0])
43 45
           let longitude = parseFloat(coord[1])

+ 3
- 3
src/pages/shop/index.js Voir le fichier

@@ -7,7 +7,7 @@ import './index.scss'
7 7
 // import Search from '@components/search'
8 8
 import Banner from './banner'
9 9
 import ready from '@utils/ready'
10
-// import { ROLE_CODE } from '@constants/user'
10
+import { ROLE_CODE } from '@constants/user'
11 11
 import { queryBanners } from '@services/common'
12 12
 import { getGoodsBuilding, getGoodsList } from '@services/item'
13 13
 import { connect } from '@tarojs/redux'
@@ -333,11 +333,11 @@ export default class Shop extends Component {
333 333
   render() {
334 334
     const { person: { personType } } = this.props.userInfo
335 335
     //const { person: { phone } } = this.props.userInfo
336
-    // const isDrift = personType === ROLE_CODE['DRIFT']
336
+    const isDrift = personType === ROLE_CODE['DRIFT']
337 337
 
338 338
     return (
339 339
       <View className='wrap'>
340
-        {personType == 'drift' ? this.renderLogin() : this.renderDetail()}
340
+        {isDrift ? this.renderLogin() : this.renderDetail()}
341 341
       </View>
342 342
     )
343 343
   }

+ 2
- 0
src/utils/tools.js Voir le fichier

@@ -23,6 +23,8 @@ export function formateLeftTime(leftTime) {
23 23
 }
24 24
 
25 25
 export function getDownloadURL(url, type) {
26
+  if (!url) return url
27
+
26 28
   switch (type) {
27 29
     case 'avatar':
28 30
       return url.replace('https://wx.qlogo.cn/', `${HOST}/qlogo/`);