周立森 5 年之前
父節點
當前提交
263af942c7

+ 2
- 2
config/dev.js 查看文件

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
-    // HOST: '"http://192.168.0.72:8080"',
13
-    // WSS_HOST: '"ws://192.168.0.72:8080"',
12
+    HOST: '"http://192.168.0.84:8080"',
13
+    WSS_HOST: '"ws://192.168.0.84:8080"',
14
   },
14
   },
15
   weapp: {},
15
   weapp: {},
16
   h5: {}
16
   h5: {}

二進制
src/assets/icons/baozhang.png 查看文件


二進制
src/assets/icons/fuwu.png 查看文件


二進制
src/assets/icons/jiedu.png 查看文件


二進制
src/assets/icons/zixun.png 查看文件


+ 1
- 0
src/constants/api.js 查看文件

179
 export const API_SEX_INFO = resolvePath('genderStatistic')
179
 export const API_SEX_INFO = resolvePath('genderStatistic')
180
 export const API_ECHERTS_DAILY = resolvePath('customerStatisticDaily')
180
 export const API_ECHERTS_DAILY = resolvePath('customerStatisticDaily')
181
 export const API_ECHERTS_MONTH = resolvePath('customerStatisticMonthly')
181
 export const API_ECHERTS_MONTH = resolvePath('customerStatisticMonthly')
182
+export const API_BUILDING_TYPE = resolvePath('getByBuildingIdSelectBuildingProjectType')

+ 11
- 8
src/pages/activity/detail/assemble.js 查看文件

402
               phone: person.tel || person.phone,
402
               phone: person.tel || person.phone,
403
               avatarurl: person.avatarurl,
403
               avatarurl: person.avatarurl,
404
             }).then(res => {
404
             }).then(res => {
405
-              this.setState({
406
-                recordDetail: res.taShareRecord,
407
-                recordId: res.taShareRecord.recordId,
408
-                memberList: res.shareChildRecordList || [],
409
-                isStarter: true,
410
-                groupState: res.taShareRecord.status,
411
-              }, () => cb && cb())
405
+              console.log(res,'888888')
406
+              if(res){
407
+                this.setState({
408
+                  recordDetail: res.taShareRecord,
409
+                  recordId: res.taShareRecord.recordId,
410
+                  memberList: res.shareChildRecordList || [],
411
+                  isStarter: true,
412
+                  groupState: res.taShareRecord.status,
413
+                }, () => cb && cb())
414
+              }
412
             }).catch(err => {
415
             }).catch(err => {
413
-              console.log('err:', err)
416
+              console.log(err,'11111111111111')
414
               Taro.showToast({
417
               Taro.showToast({
415
                 title: '发起失败: ' + err.message,
418
                 title: '发起失败: ' + err.message,
416
                 icon: 'none'
419
                 icon: 'none'

+ 4
- 4
src/pages/agent/recommend/index.js 查看文件

246
       this.Alert("请选择意向楼盘");
246
       this.Alert("请选择意向楼盘");
247
       return false;
247
       return false;
248
     }
248
     }
249
-    if (adviser == "") {
250
-      this.Alert("请选择置业顾问");
251
-      return false;
252
-    }
249
+    // if (adviser == "") {
250
+    //   this.Alert("请选择置业顾问");
251
+    //   return false;
252
+    // }
253
     // if (date == "请选择") {
253
     // if (date == "请选择") {
254
     //   this.Alert("请选择预约到访时间");
254
     //   this.Alert("请选择预约到访时间");
255
     //   return false;
255
     //   return false;

+ 31
- 35
src/pages/person/customerAnalysis/analysis.js 查看文件

25
     recordId: undefined, // 埋点ID
25
     recordId: undefined, // 埋点ID
26
     sexInfo: [],
26
     sexInfo: [],
27
     checkedWhich: 0,
27
     checkedWhich: 0,
28
-    chartInfo: [
29
-      // { name: '周一', value: '26' },
30
-      // { name: '周二', value: '84' },
31
-      // { name: '周三', value: '107' },
32
-      // { name: '周四', value: '93' },
33
-      // { name: '周五', value: '127' },
34
-      // { name: '周六', value: '64' },
35
-      // { name: '周日', value: '94' },
36
-    ],
28
+    chartInfo: [],
37
     chartInfo2: [],
29
     chartInfo2: [],
38
     chartInfo3: [],
30
     chartInfo3: [],
39
   }
31
   }
50
     if (value == '0') {
42
     if (value == '0') {
51
       querySexInfo('new').then(res => {
43
       querySexInfo('new').then(res => {
52
         this.setState({
44
         this.setState({
53
-          sexInfo: res.slice(0,3) || []
45
+          sexInfo: res.slice(0, 3) || []
54
         })
46
         })
55
       })
47
       })
56
       getEchartDailyInfo('new').then(res => {
48
       getEchartDailyInfo('new').then(res => {
49
+        const arr = res.reverse()
57
         this.setState({
50
         this.setState({
58
-          chartInfo: res.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum }))
51
+          chartInfo: arr.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum }))
59
         })
52
         })
60
       })
53
       })
61
 
54
 
62
     } else if (value == '1') {
55
     } else if (value == '1') {
63
       querySexInfo('follow').then(res => {
56
       querySexInfo('follow').then(res => {
64
         this.setState({
57
         this.setState({
65
-          sexInfo: res.slice(0,3) || []
58
+          sexInfo: res.slice(0, 3) || []
66
         })
59
         })
67
       })
60
       })
68
       getEchartDailyInfo('follow').then(res => {
61
       getEchartDailyInfo('follow').then(res => {
69
 
62
 
70
-        console.log(res.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum })), "5555*-----------------555555")
63
+        const arr2 = res.reverse()
71
         this.setState({
64
         this.setState({
72
-          chartInfo2: res.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum }))
65
+          chartInfo2: arr2.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum }))
73
         })
66
         })
74
       })
67
       })
75
     } else {
68
     } else {
76
       querySexInfo('visite').then(res => {
69
       querySexInfo('visite').then(res => {
77
         this.setState({
70
         this.setState({
78
-          sexInfo: res.slice(0,3) || []
71
+          sexInfo: res.slice(0, 3) || []
79
         })
72
         })
80
       })
73
       })
81
       getEchartDailyInfo('visite').then(res => {
74
       getEchartDailyInfo('visite').then(res => {
75
+        const arr3 = res.reverse()
82
         this.setState({
76
         this.setState({
83
-          chartInfo3: res.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum }))
77
+          chartInfo3: arr3.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum }))
84
         })
78
         })
85
       })
79
       })
86
     }
80
     }
94
   componentDidMount() {
88
   componentDidMount() {
95
     querySexInfo('new').then(res => {
89
     querySexInfo('new').then(res => {
96
       this.setState({
90
       this.setState({
97
-        sexInfo: res.slice(0,3) || []
91
+        sexInfo: res.slice(0, 3) || []
98
       })
92
       })
99
     })
93
     })
94
+    this.changeDailyMonth(0)
100
     getEchartDailyInfo('new').then(res => {
95
     getEchartDailyInfo('new').then(res => {
96
+      const arr = res.reverse()
101
       this.setState({
97
       this.setState({
102
-        chartInfo: res.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum }))
98
+        chartInfo: arr.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum }))
103
       })
99
       })
104
     })
100
     })
105
   }
101
   }
110
     if (inx == 0) {
106
     if (inx == 0) {
111
       if (params == 'new') {
107
       if (params == 'new') {
112
         getEchartDailyInfo(params).then(res => {
108
         getEchartDailyInfo(params).then(res => {
109
+          const arr = res.reverse()
113
           this.setState({
110
           this.setState({
114
-            chartInfo: res.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum })) || []
111
+            chartInfo: arr.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum })) || []
115
           })
112
           })
116
         })
113
         })
117
       } else if (params == 'follow') {
114
       } else if (params == 'follow') {
118
         getEchartDailyInfo(params).then(res => {
115
         getEchartDailyInfo(params).then(res => {
116
+          const arr2 = res.reverse()
119
           this.setState({
117
           this.setState({
120
-            chartInfo2: res.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum })) || []
118
+            chartInfo2: arr2.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum })) || []
121
           })
119
           })
122
         })
120
         })
123
       } else {
121
       } else {
124
         getEchartDailyInfo(params).then(res => {
122
         getEchartDailyInfo(params).then(res => {
123
+          const arr3 = res.reverse()
125
           this.setState({
124
           this.setState({
126
-            chartInfo3: res.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum })) || []
125
+            chartInfo3: arr3.map(x => ({ name: `${dayjs(x.day).format('MM月DD日')}`, value: x.customerNum })) || []
127
           })
126
           })
128
         })
127
         })
129
       }
128
       }
130
     } else {
129
     } else {
131
       if (params == 'new') {
130
       if (params == 'new') {
132
         getEchartMonthInfo(params).then(res => {
131
         getEchartMonthInfo(params).then(res => {
132
+          const arr = res.reverse()
133
           this.setState({
133
           this.setState({
134
-            chartInfo: res.map(x => ({ name: `${x.month.substr(4)}月`, value: x.customerNum })) || []
134
+            chartInfo: arr.map(x => ({ name: `${x.month.substr(4)}月`, value: x.customerNum })) || []
135
           })
135
           })
136
         })
136
         })
137
       } else if (params == 'follow') {
137
       } else if (params == 'follow') {
138
+        const arr2 = res.reverse()
138
         getEchartMonthInfo(params).then(res => {
139
         getEchartMonthInfo(params).then(res => {
139
           this.setState({
140
           this.setState({
140
-            chartInfo2: res.map(x => ({ name: `${x.month.substr(4)}月`, value: x.customerNum })) || []
141
+            chartInfo2: arr2.map(x => ({ name: `${x.month.substr(4)}月`, value: x.customerNum })) || []
141
           })
142
           })
142
         })
143
         })
143
       } else {
144
       } else {
144
         getEchartMonthInfo(params).then(res => {
145
         getEchartMonthInfo(params).then(res => {
145
-
146
+          const arr3 = res.reverse()
146
           this.setState({
147
           this.setState({
147
-            chartInfo3: res.map(x => ({ name: `${x.month.substr(4)}月`, value: x.customerNum })) || []
148
+            chartInfo3: arr3.map(x => ({ name: `${x.month.substr(4)}月`, value: x.customerNum })) || []
148
           })
149
           })
149
         })
150
         })
150
       }
151
       }
163
 
164
 
164
     return (
165
     return (
165
       <View>
166
       <View>
166
-        <AtTabs className="tab-bar" current={current} tabList={tabList} onClick={this.handleClick.bind(this)} swipeable="false">
167
+        <AtTabs className="tab-bar" current={current} tabList={tabList} onClick={this.handleClick.bind(this)} swipeable={false}>
167
           <AtTabsPane current={current} index={0} >
168
           <AtTabsPane current={current} index={0} >
168
             <View>
169
             <View>
169
               <View style="height:40rpx;position: relative;margin-top:20rpx">
170
               <View style="height:40rpx;position: relative;margin-top:20rpx">
179
               {
180
               {
180
                 chartInfo.length &&
181
                 chartInfo.length &&
181
 
182
 
182
-
183
-                // <View style="width:100vw;height:530rpx;position: relative;">
184
                 <LineChart source={chartInfo} />
183
                 <LineChart source={chartInfo} />
185
-                // </View>
186
 
184
 
187
               }
185
               }
188
               {
186
               {
224
                 </View>
222
                 </View>
225
               </View>
223
               </View>
226
               {chartInfo2.length &&
224
               {chartInfo2.length &&
227
-                <View style="width:100vw;height:530rpx;position: relative;">
228
-                  <LineChart source={chartInfo2} />
229
-                </View>
225
+
226
+                <LineChart source={chartInfo2} />
227
+
230
               }
228
               }
231
               {
229
               {
232
                 !chartInfo2.length &&
230
                 !chartInfo2.length &&
267
               </View>
265
               </View>
268
               {
266
               {
269
                 chartInfo3.length &&
267
                 chartInfo3.length &&
270
-                <View style="width:100vw;height:530rpx;position: relative;">
271
-                  <LineChart source={chartInfo3} />
272
-                </View>
268
+                <LineChart source={chartInfo3} />
273
               }
269
               }
274
               {
270
               {
275
                 !chartInfo3.length &&
271
                 !chartInfo3.length &&

+ 1
- 1
src/pages/person/customerAnalysis/index.js 查看文件

62
     const tabList = [{ title: '客户分析' }, { title: '我的客户' }]
62
     const tabList = [{ title: '客户分析' }, { title: '我的客户' }]
63
     const { customerNum, current } = this.state
63
     const { customerNum, current } = this.state
64
     return (
64
     return (
65
-      <AtTabs className="tab-box" current={current} tabList={tabList} onClick={this.handleClick.bind(this)}>
65
+      <AtTabs className="tab-box" current={current} tabList={tabList} onClick={this.handleClick.bind(this)} swipeable={false}>
66
         <AtTabsPane current={current} index={0} >
66
         <AtTabsPane current={current} index={0} >
67
           <View >
67
           <View >
68
             {
68
             {

+ 4
- 1
src/pages/person/customerAnalysis/index.scss 查看文件

164
     left:320px;
164
     left:320px;
165
     display: flex;
165
     display: flex;
166
     align-items: center;
166
     align-items: center;
167
-    max-width: 200px;
167
+    .text{
168
+      max-width: 300px;
169
+      @include text-ellipsis;
170
+    }
168
   }
171
   }
169
   .user__left__phone{
172
   .user__left__phone{
170
     font-size:32px;
173
     font-size:32px;

+ 10
- 6
src/pages/person/customerAnalysis/myCustomer.js 查看文件

3
 import ListView from '@components/ListView'
3
 import ListView from '@components/ListView'
4
 import "taro-ui/dist/style/components/tabs.scss"
4
 import "taro-ui/dist/style/components/tabs.scss"
5
 import { savePoint, updatePoint } from '@services/common'
5
 import { savePoint, updatePoint } from '@services/common'
6
-import { getCustomerDetail, getVisitRecord, getActivityList, getFollowRecord, addFollowRecord, commitCustomerInfo } from '@services/person'
6
+import { getCustomerDetail, getVisitRecord, getActivityList, getFollowRecord, addFollowRecord, commitCustomerInfo,getBuildingType } from '@services/person'
7
 import { connect } from '@tarojs/redux'
7
 import { connect } from '@tarojs/redux'
8
 import './index.scss'
8
 import './index.scss'
9
 import ActivityItem from './item'
9
 import ActivityItem from './item'
29
     baseVisible: false,
29
     baseVisible: false,
30
     followValue: '', //跟进内容
30
     followValue: '', //跟进内容
31
     desc: '', //客户描述
31
     desc: '', //客户描述
32
-    selector: ['高层', '别墅', '公寓'],
32
+    selector: [],
33
     sexSelector: ['男', '女'],
33
     sexSelector: ['男', '女'],
34
     customerDetail: {},
34
     customerDetail: {},
35
     followRecord: [],
35
     followRecord: [],
184
       followVisible: true,
184
       followVisible: true,
185
     })
185
     })
186
   }
186
   }
187
-  addFollowRecord
187
+
188
   followSaveBtn() {
188
   followSaveBtn() {
189
     if (this.state.followValue == "") {
189
     if (this.state.followValue == "") {
190
       Taro.showToast({
190
       Taro.showToast({
258
     )
258
     )
259
   }
259
   }
260
   perfectInformation() {
260
   perfectInformation() {
261
+    const {customerDetail} = this.state
261
     this.setState({
262
     this.setState({
262
       baseVisible: true,
263
       baseVisible: true,
263
-      baseInfo: this.state.customerDetail,
264
+      baseInfo: customerDetail,
265
+    })
266
+    getBuildingType(customerDetail.buildingId).then(res=>{
267
+      console.log(res,"1111111111")
264
     })
268
     })
265
   }
269
   }
266
   // 保存
270
   // 保存
450
           <Image className="bg" src={getThumbnail('https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/images/shop/background.jpg')} ></Image>
454
           <Image className="bg" src={getThumbnail('https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/images/shop/background.jpg')} ></Image>
451
           <Image className="user__left__headimg" src={customerDetail.picture || require('@assets/default-avatar.png')} />
455
           <Image className="user__left__headimg" src={customerDetail.picture || require('@assets/default-avatar.png')} />
452
           <View className='user__left__name'>
456
           <View className='user__left__name'>
453
-            {customerDetail.name}
457
+            <View className="text">{customerDetail.name}的数据哈酒好多次客户方</View>
454
             {
458
             {
455
               customerDetail.sex == '1' && <Image style="width:36rpx;height:38rpx;margin-left:10rpx" src={maleImg} />
459
               customerDetail.sex == '1' && <Image style="width:36rpx;height:38rpx;margin-left:10rpx" src={maleImg} />
456
             }
460
             }
547
                 <View className="list">
551
                 <View className="list">
548
                   {followRecord.length && followRecord.map(item => (
552
                   {followRecord.length && followRecord.map(item => (
549
                     <View key={item.followUpRecordId + 'follow'}>
553
                     <View key={item.followUpRecordId + 'follow'}>
550
-                      <View style=" display:flex;justify-content: space-between;align-items: center;color: #333;font-size: 16px; margin-bottom:20rpx;">
554
+                      <View style=" display:flex;justify-content: space-between;align-items: center;color: #333;font-size: 34rpx; margin-bottom:24rpx;">
551
                         <View style=" display: flex;align-items: center;"><View style="width:8px;height:8px;margin-right:20rpx;display:inline-block;background:rgba(246,182,29,1);border-radius: 50%;"></View>{item.recordType}</View>
555
                         <View style=" display: flex;align-items: center;"><View style="width:8px;height:8px;margin-right:20rpx;display:inline-block;background:rgba(246,182,29,1);border-radius: 50%;"></View>{item.recordType}</View>
552
                         <View classNam="time" style=" font-size: 26rpx;color: #999;">{dayjs(item.createDate).format('YYYY年MM月DD日 HH:mm:ss') || ' '}</View>
556
                         <View classNam="time" style=" font-size: 26rpx;color: #999;">{dayjs(item.createDate).format('YYYY年MM月DD日 HH:mm:ss') || ' '}</View>
553
                       </View>
557
                       </View>

+ 4
- 1
src/pages/project/detail/Around/Pannel.js 查看文件

5
 const posIcon = require('@assets/icons/amap/position.png')
5
 const posIcon = require('@assets/icons/amap/position.png')
6
 
6
 
7
 export default function Pannel(props) {
7
 export default function Pannel(props) {
8
+  console.log(props.dataset,"props.datasetprops.datasetprops.datasetprops.dataset")
8
   const { data = [], manualData = [] } = props.dataset || {}
9
   const { data = [], manualData = [] } = props.dataset || {}
9
   const activeKey = props.active
10
   const activeKey = props.active
10
 
11
 
12
+  const ty = Object.prototype.toString
13
+  
11
   return (
14
   return (
12
     <View className="around-pannel">
15
     <View className="around-pannel">
13
       {
16
       {
14
-        data.map((item, index) => {
17
+        (ty.call(data) === '[object String]' ? JSON.parse(data) : []).map((item, index) => {
15
           const { id, name, distance } = item || {}
18
           const { id, name, distance } = item || {}
16
           const dist = distance >= 1000 ? `${Number(distance / 1000).toFixed(1)}km` : `${distance}m`
19
           const dist = distance >= 1000 ? `${Number(distance / 1000).toFixed(1)}km` : `${distance}m`
17
           const active = activeKey === id
20
           const active = activeKey === id

+ 4
- 2
src/pages/project/detail/Around/index.js 查看文件

7
 
7
 
8
 export default function Around(props) {
8
 export default function Around(props) {
9
   const detail = props.building || {}
9
   const detail = props.building || {}
10
+  console.log(detail,"detaildetaildetaildetail")
10
   const [lat, lng] = (detail.coordinate || '').split(',')
11
   const [lat, lng] = (detail.coordinate || '').split(',')
11
   const poiDatas = detail.mapJson ? JSON.parse(detail.mapJson) : []
12
   const poiDatas = detail.mapJson ? JSON.parse(detail.mapJson) : []
12
 
13
 
22
     }
23
     }
23
   })
24
   })
24
 
25
 
26
+  
25
   // 所有的 markers
27
   // 所有的 markers
26
   const markersList = dataList.map((item) => {
28
   const markersList = dataList.map((item) => {
27
-    
28
-    return (item.data || []).map((it) => {
29
+    const mapJson = JSON.parse(item.data) 
30
+    return (mapJson || []).map((it) => {
29
       const [longitude, latitude] = it.location.split(',')
31
       const [longitude, latitude] = it.location.split(',')
30
 
32
 
31
       return {
33
       return {

+ 64
- 45
src/pages/project/detail/index.js 查看文件

58
     videoPlayShow: 'flex',
58
     videoPlayShow: 'flex',
59
   }
59
   }
60
 
60
 
61
-  componentWillMount () {
61
+  componentWillMount() {
62
     // const { id = '78c3dd489791dc1d29472fa344b08c45' } = this.$router.params
62
     // const { id = '78c3dd489791dc1d29472fa344b08c45' } = this.$router.params
63
 
63
 
64
     ready.queue(() => {
64
     ready.queue(() => {
92
     })
92
     })
93
   }
93
   }
94
 
94
 
95
-  componentWillUnmount () {
95
+  componentWillUnmount() {
96
     const { recordId } = this.state
96
     const { recordId } = this.state
97
     recordId && updatePoint(recordId)
97
     recordId && updatePoint(recordId)
98
   }
98
   }
99
 
99
 
100
-  loadHelpGroupList () {
100
+  loadHelpGroupList() {
101
     const { buildingId } = this.state
101
     const { buildingId } = this.state
102
 
102
 
103
     queryHelpGroup({ buildingId: buildingId }).then(res => {
103
     queryHelpGroup({ buildingId: buildingId }).then(res => {
119
     )
119
     )
120
   }
120
   }
121
 
121
 
122
-  loadDetail () {
122
+  loadDetail() {
123
     const { buildingId } = this.state
123
     const { buildingId } = this.state
124
     const { dispatchProjectDetail } = this.props
124
     const { dispatchProjectDetail } = this.props
125
     this.setState({
125
     this.setState({
147
     })
147
     })
148
   }
148
   }
149
 
149
 
150
-  loadActivityData () {
150
+  loadActivityData() {
151
     const { buildingId } = this.state
151
     const { buildingId } = this.state
152
     const payload = { pageSize: 999, pageNumber: 1, buildingId }
152
     const payload = { pageSize: 999, pageNumber: 1, buildingId }
153
     queryActivityList(payload).then(res => {
153
     queryActivityList(payload).then(res => {
157
     })
157
     })
158
   }
158
   }
159
 
159
 
160
-  loadNewsData () {
160
+  loadNewsData() {
161
     const { buildingId } = this.state
161
     const { buildingId } = this.state
162
     const payload = { pageSize: 2, pageNumber: 1, buildingId }
162
     const payload = { pageSize: 2, pageNumber: 1, buildingId }
163
     queryNewsList(payload).then(res => {
163
     queryNewsList(payload).then(res => {
167
     })
167
     })
168
   }
168
   }
169
 
169
 
170
-  navigateTo (url) {
170
+  navigateTo(url) {
171
     Taro.navigateTo({ url: url })
171
     Taro.navigateTo({ url: url })
172
   }
172
   }
173
   // 海报预览图
173
   // 海报预览图
174
-  previewImage (arr) {
174
+  previewImage(arr) {
175
     // console.log('arr:' + arr)
175
     // console.log('arr:' + arr)
176
     if (arr[0].length > 1) {
176
     if (arr[0].length > 1) {
177
       Taro.previewImage({
177
       Taro.previewImage({
198
     })
198
     })
199
   }
199
   }
200
 
200
 
201
-  openMap () {
201
+  openMap() {
202
     const {
202
     const {
203
       buildingName,
203
       buildingName,
204
       address,
204
       address,
225
     })
225
     })
226
   }
226
   }
227
 
227
 
228
-  toViewAlbum () {
228
+  toViewAlbum() {
229
     const { buildingId } = this.state
229
     const { buildingId } = this.state
230
     this.navigateTo(`/pages/project/album/index?id=${buildingId}`)
230
     this.navigateTo(`/pages/project/album/index?id=${buildingId}`)
231
   }
231
   }
232
 
232
 
233
-  onViewFans () {
233
+  onViewFans() {
234
     const { buildingId } = this.state
234
     const { buildingId } = this.state
235
     this.navigateTo('/pages/card/fans/index?type=item&id=' + buildingId)
235
     this.navigateTo('/pages/card/fans/index?type=item&id=' + buildingId)
236
   }
236
   }
259
     }
259
     }
260
   }
260
   }
261
 
261
 
262
-  getPhoneNumber (e, item) {
262
+  getPhoneNumber(e, item) {
263
     getUserPhone(e, (phoneNumber) => {
263
     getUserPhone(e, (phoneNumber) => {
264
       const { userInfo: { person: { personId, nickname, name } } } = this.props
264
       const { userInfo: { person: { personId, nickname, name } } } = this.props
265
       Taro.navigateTo({
265
       Taro.navigateTo({
268
     })
268
     })
269
   }
269
   }
270
 
270
 
271
-  getPosterData () {
271
+  getPosterData() {
272
     return new Promise(resolve => {
272
     return new Promise(resolve => {
273
       const { posterData } = this.state
273
       const { posterData } = this.state
274
       if (posterData.qrcode) {
274
       if (posterData.qrcode) {
339
     })
339
     })
340
   }
340
   }
341
 
341
 
342
-  handleTelClick (item, e) {
342
+  handleTelClick(item, e) {
343
     e.stopPropagation()
343
     e.stopPropagation()
344
     Taro.makePhoneCall({
344
     Taro.makePhoneCall({
345
       phoneNumber: item.phone
345
       phoneNumber: item.phone
346
     })
346
     })
347
   }
347
   }
348
 
348
 
349
-  handleChatClick (item, e) {
349
+  handleChatClick(item, e) {
350
     e.stopPropagation()
350
     e.stopPropagation()
351
     const { userInfo: { person: { personId, nickname, name } } } = this.props
351
     const { userInfo: { person: { personId, nickname, name } } } = this.props
352
     Taro.navigateTo({
352
     Taro.navigateTo({
354
     })
354
     })
355
   }
355
   }
356
 
356
 
357
-  handleConsuItemClick (item) {
357
+  handleConsuItemClick(item) {
358
     Taro.navigateTo({
358
     Taro.navigateTo({
359
       url: `/pages/card/index?id=${item.id}`
359
       url: `/pages/card/index?id=${item.id}`
360
     })
360
     })
361
   }
361
   }
362
 
362
 
363
-  handleMoreClick () {
363
+  handleMoreClick() {
364
     // App.zhuge.track('查看置业顾问列表')
364
     // App.zhuge.track('查看置业顾问列表')
365
     Taro.navigateTo({
365
     Taro.navigateTo({
366
       url: `/pages/card/list/index?buildingId=${this.state.buildingId}`
366
       url: `/pages/card/list/index?buildingId=${this.state.buildingId}`
367
     })
367
     })
368
   }
368
   }
369
 
369
 
370
-  handleStopPropagation (e) {
370
+  handleStopPropagation(e) {
371
     e.stopPropagation()
371
     e.stopPropagation()
372
   }
372
   }
373
 
373
 
374
-  toRecomonedPage () {
374
+  toRecomonedPage() {
375
     const {
375
     const {
376
       userInfo: { person: { personType } }
376
       userInfo: { person: { personType } }
377
     } = this.props
377
     } = this.props
387
     }
387
     }
388
   }
388
   }
389
 
389
 
390
-  toHome () {
390
+  toHome() {
391
     Taro.switchTab({
391
     Taro.switchTab({
392
       url: `/pages/project/index`
392
       url: `/pages/project/index`
393
     })
393
     })
394
   }
394
   }
395
 
395
 
396
-  HandleCircumTabClick (id) {
396
+  HandleCircumTabClick(id) {
397
     this.setState({
397
     this.setState({
398
       curTab: id
398
       curTab: id
399
     })
399
     })
400
   }
400
   }
401
 
401
 
402
-  handleNewsMoreClick () {
402
+  handleNewsMoreClick() {
403
     Taro.navigateTo({
403
     Taro.navigateTo({
404
       url: `/pages/news/index?buildingId=` + this.state.buildingId
404
       url: `/pages/news/index?buildingId=` + this.state.buildingId
405
     })
405
     })
406
   }
406
   }
407
 
407
 
408
-  handNewsItemClick (id) {
408
+  handNewsItemClick(id) {
409
     Taro.navigateTo({
409
     Taro.navigateTo({
410
       url: '/pages/news/detail/index?id=' + id
410
       url: '/pages/news/detail/index?id=' + id
411
     })
411
     })
412
   }
412
   }
413
 
413
 
414
-  handleActivityMoreClick () {
414
+  handleActivityMoreClick() {
415
     Taro.navigateTo({
415
     Taro.navigateTo({
416
       url: `/pages/activity/index?buildingId=` + this.state.buildingId
416
       url: `/pages/activity/index?buildingId=` + this.state.buildingId
417
     })
417
     })
423
     })
423
     })
424
   }
424
   }
425
 
425
 
426
-  handlePreviewHxImage (current, urls) {
426
+  handlePreviewHxImage(current, urls) {
427
     Taro.previewImage({
427
     Taro.previewImage({
428
       current,
428
       current,
429
       urls
429
       urls
430
     })
430
     })
431
   }
431
   }
432
 
432
 
433
-  handleFavor () {
433
+  handleFavor() {
434
     const { buildingId, isSaved } = this.state
434
     const { buildingId, isSaved } = this.state
435
     if (isSaved) {
435
     if (isSaved) {
436
       cancelFavorProject(buildingId).then(res => {
436
       cancelFavorProject(buildingId).then(res => {
460
       console.log('活动项目收藏')
460
       console.log('活动项目收藏')
461
     })
461
     })
462
   }
462
   }
463
-  handleToolsClick () {
463
+  handleToolsClick() {
464
     Taro.navigateTo({
464
     Taro.navigateTo({
465
       url: `/pages/toolKit/index`
465
       url: `/pages/toolKit/index`
466
     })
466
     })
467
   }
467
   }
468
-  moreFloor () {
468
+  moreFloor() {
469
     Taro.navigateTo({
469
     Taro.navigateTo({
470
       url: `/pages/project/floor/index`
470
       url: `/pages/project/floor/index`
471
     })
471
     })
472
   }
472
   }
473
 
473
 
474
-  renderBottomMenu () {
474
+  renderBottomMenu() {
475
     const { userInfo: { person: { personType } } } = this.props
475
     const { userInfo: { person: { personType } } } = this.props
476
     const { posterShow } = this.state
476
     const { posterShow } = this.state
477
     return (
477
     return (
506
     )
506
     )
507
   }
507
   }
508
 
508
 
509
-  previewHouseImage (current, urls) {
509
+  previewHouseImage(current, urls) {
510
     Taro.previewImage({
510
     Taro.previewImage({
511
       current,
511
       current,
512
       urls
512
       urls
513
     })
513
     })
514
   }
514
   }
515
 
515
 
516
-  renderBuildingProjectTypeList () {
516
+  renderBuildingProjectTypeList() {
517
     const { statusOpts } = this.state
517
     const { statusOpts } = this.state
518
     const { projectDetail: { buildingProjectType = [], status, marketStatus } } = this.props
518
     const { projectDetail: { buildingProjectType = [], status, marketStatus } } = this.props
519
     return (
519
     return (
573
   }
573
   }
574
 
574
 
575
 
575
 
576
-  renderPhotoAlbum () {
576
+  renderPhotoAlbum() {
577
     const { projectDetail: { buildingApartment } } = this.props
577
     const { projectDetail: { buildingApartment } } = this.props
578
     const list = buildingApartment.filter(item => item.apartmentType === 'photo')
578
     const list = buildingApartment.filter(item => item.apartmentType === 'photo')
579
     // const imgList = list.reduce((prev, cur) => {
579
     // const imgList = list.reduce((prev, cur) => {
633
       </Block>
633
       </Block>
634
     )
634
     )
635
   }
635
   }
636
-  rendercircum () {
636
+  rendercircum() {
637
     const building = {
637
     const building = {
638
       ...this.props.projectDetail
638
       ...this.props.projectDetail
639
     }
639
     }
650
     )
650
     )
651
   }
651
   }
652
 
652
 
653
-  renderConsuler () {
653
+  renderConsuler() {
654
     const { userInfo: { person: { phone } } } = this.props
654
     const { userInfo: { person: { phone } } } = this.props
655
     const { projectDetail: { consultants = [] } } = this.props
655
     const { projectDetail: { consultants = [] } } = this.props
656
     return (
656
     return (
659
           consultants.length > 0 && (
659
           consultants.length > 0 && (
660
             <View className="section counselor">
660
             <View className="section counselor">
661
               <View className="section-head">
661
               <View className="section-head">
662
-                <Text className="section-head__title">推荐经纪人</Text>
662
+                <Text className="section-head__title">置业顾问</Text>
663
                 <View className="section-head__more" onClick={() => { this.handleMoreClick() }}>
663
                 <View className="section-head__more" onClick={() => { this.handleMoreClick() }}>
664
                   更多<Text className="iconfont icon-more"></Text>
664
                   更多<Text className="iconfont icon-more"></Text>
665
                 </View>
665
                 </View>
666
               </View>
666
               </View>
667
+              <View style="display:flex;align-items:center;justify-content:space-between;margin-top:30rpx">
668
+
669
+                <View style="display:flex;align-items:center;font-size: 26rpx;color: #999;">
670
+                  <Image style="width:30rpx;height:30rpx;margin-right:10rpx" src={require('@assets/icons/baozhang.png')} />
671
+                  官方保障
672
+                </View>
673
+                <View style="display:flex;align-items:center;font-size: 26rpx;color: #999;">
674
+                  <Image style="width:30rpx;height:30rpx;margin-right:10rpx" src={require('@assets/icons/zixun.png')} />
675
+                  免费咨询
676
+                </View>
677
+                <View style="display:flex;align-items:center;font-size: 26rpx;color: #999;">
678
+                  <Image style="width:30rpx;height:30rpx;margin-right:10rpx" src={require('@assets/icons/jiedu.png')} />
679
+                  户型解读
680
+                </View>
681
+                <View style="display:flex;align-items:center;font-size: 26rpx;color: #999;">
682
+                  <Image style="width:30rpx;height:30rpx;margin-right:10rpx" src={require('@assets/icons/fuwu.png')} />
683
+                  贴心服务
684
+                </View>
685
+              </View>
667
               <View className="section-content">
686
               <View className="section-content">
668
                 {
687
                 {
669
                   consultants.slice(0, 3).map(item => (
688
                   consultants.slice(0, 3).map(item => (
704
     )
723
     )
705
   }
724
   }
706
 
725
 
707
-  renderStatement () {
726
+  renderStatement() {
708
     return (
727
     return (
709
       <View className='statement'>
728
       <View className='statement'>
710
         免责条款:以上价格仅供参考,具体一房一价的信息以售楼处展示为准。本网显示房屋位置、交通、医疗、教育、商业等配套信息,来源于第三方网络数据,不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。<br></br>本平台对项目周边文化教育的介绍旨在提供相关信息,并不意味着信息发布方对就学安排作出承诺。相关教育资源就学信息存在调整的可能,应以政府教育主管部门及办学颁布的政策规定为准。
729
         免责条款:以上价格仅供参考,具体一房一价的信息以售楼处展示为准。本网显示房屋位置、交通、医疗、教育、商业等配套信息,来源于第三方网络数据,不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。<br></br>本平台对项目周边文化教育的介绍旨在提供相关信息,并不意味着信息发布方对就学安排作出承诺。相关教育资源就学信息存在调整的可能,应以政府教育主管部门及办学颁布的政策规定为准。
713
   }
732
   }
714
 
733
 
715
 
734
 
716
-  renderHelp () {
735
+  renderHelp() {
717
     const { helpList } = this.state
736
     const { helpList } = this.state
718
     return (
737
     return (
719
       <Block>
738
       <Block>
734
     )
753
     )
735
   }
754
   }
736
 
755
 
737
-  handleHelpClick (item) {
756
+  handleHelpClick(item) {
738
     Taro.navigateTo({
757
     Taro.navigateTo({
739
       url: '/pages/activity/detail/assistance?id=' + item.activityId
758
       url: '/pages/activity/detail/assistance?id=' + item.activityId
740
     })
759
     })
741
   }
760
   }
742
-  handleGroupClick (item) {
761
+  handleGroupClick(item) {
743
     Taro.navigateTo({
762
     Taro.navigateTo({
744
       url: '/pages/activity/detail/assemble?id=' + item.activityId
763
       url: '/pages/activity/detail/assemble?id=' + item.activityId
745
     })
764
     })
746
   }
765
   }
747
-  renderGroup () {
766
+  renderGroup() {
748
     const { groupList } = this.state
767
     const { groupList } = this.state
749
     return (
768
     return (
750
       <Block>
769
       <Block>
767
     )
786
     )
768
   }
787
   }
769
 
788
 
770
-  renderHouseTypeList () {
789
+  renderHouseTypeList() {
771
     const { statusOpts } = this.state
790
     const { statusOpts } = this.state
772
     const { projectDetail: { buildingApartment } } = this.props
791
     const { projectDetail: { buildingApartment } } = this.props
773
     const list = buildingApartment.filter(item => item.apartmentType === 'apart')
792
     const list = buildingApartment.filter(item => item.apartmentType === 'apart')
885
       </Block>
904
       </Block>
886
     )
905
     )
887
   }
906
   }
888
-  renderNews () {
907
+  renderNews() {
889
     const { newsList } = this.state
908
     const { newsList } = this.state
890
     return (
909
     return (
891
       <Block>
910
       <Block>
940
   // }
959
   // }
941
 
960
 
942
 
961
 
943
-  renderVideo () {
962
+  renderVideo() {
944
     const { videoPlayShow } = this.state
963
     const { videoPlayShow } = this.state
945
     const { projectDetail } = this.props
964
     const { projectDetail } = this.props
946
     const { videoImage } = projectDetail
965
     const { videoImage } = projectDetail
989
     )
1008
     )
990
   }
1009
   }
991
 
1010
 
992
-  changeCurrent (current) {
1011
+  changeCurrent(current) {
993
     this.setState({
1012
     this.setState({
994
       current: current + 1
1013
       current: current + 1
995
     })
1014
     })
996
   }
1015
   }
997
 
1016
 
998
-  render () {
1017
+  render() {
999
     const { posterStatus, posterData, loaded, btnstate } = this.state
1018
     const { posterStatus, posterData, loaded, btnstate } = this.state
1000
     const { projectDetail } = this.props
1019
     const { projectDetail } = this.props
1001
     const { uvList = {} } = projectDetail
1020
     const { uvList = {} } = projectDetail

+ 1
- 1
src/pages/project/detail/index.scss 查看文件

102
   }
102
   }
103
 
103
 
104
   &-content {
104
   &-content {
105
-    margin-top: 40px;
105
+    margin-top: 20px;
106
   }
106
   }
107
 }
107
 }
108
 
108
 

+ 7
- 1
src/services/person.js 查看文件

8
   API_FOLLOW_LIST,
8
   API_FOLLOW_LIST,
9
   API_SEX_INFO,
9
   API_SEX_INFO,
10
   API_ECHERTS_DAILY,
10
   API_ECHERTS_DAILY,
11
-  API_ECHERTS_MONTH
11
+  API_ECHERTS_MONTH,
12
+  API_BUILDING_TYPE,
12
 } from '@constants/api'
13
 } from '@constants/api'
13
 
14
 
14
 
15
 
39
  * @param {*} type  
40
  * @param {*} type  
40
  */
41
  */
41
 export const queryCustomerList = (type, payload) => fetch({ url: `${API_CUSTOMER_LIST}/${type}`, payload })
42
 export const queryCustomerList = (type, payload) => fetch({ url: `${API_CUSTOMER_LIST}/${type}`, payload })
43
+/**
44
+ * 获取项目类型
45
+ * @param {*} buildingId 
46
+ */
47
+export const getBuildingType = (customerId, payload) => fetch({ url: `${API_BUILDING_TYPE}/${buildingId}`, payload })
42
 /**
48
 /**
43
  * 获取客户详情
49
  * 获取客户详情
44
  * @param {*} customerId  
50
  * @param {*} customerId  

+ 5
- 2
src/utils/request.js 查看文件

71
         }
71
         }
72
       }
72
       }
73
       console.error(res.data)
73
       console.error(res.data)
74
-      throw new Error(data)
74
+      Taro.showToast({
75
+        title: message,
76
+        icon: 'none'
77
+      })
75
     }
78
     }
76
   }).catch((err) => {
79
   }).catch((err) => {
77
-    console.error(err)
80
+    console.error(err, "444")
78
 
81
 
79
     let errMessage = `请求失败: ${err.errMsg}`
82
     let errMessage = `请求失败: ${err.errMsg}`
80
     if (err.errMsg === 'request:fail timeout') {
83
     if (err.errMsg === 'request:fail timeout') {

二進制
xiangsong.zip 查看文件