|
@@ -3,30 +3,32 @@ import { View } from '@tarojs/components'
|
3
|
3
|
import PoiAround from '@components/amap/PoiAround'
|
4
|
4
|
import Tab from './Tab'
|
5
|
5
|
import Pannel from './Pannel'
|
|
6
|
+import { POI_TYPES } from '@utils/amap'
|
6
|
7
|
import './style.scss'
|
7
|
8
|
|
8
|
9
|
export default function Around(props) {
|
9
|
10
|
const detail = props.building || {}
|
10
|
11
|
|
11
|
12
|
const [lat, lng] = (detail.coordinate || '').split(',')
|
12
|
|
- const poiDatas = detail.mapJson ? JSON.parse(detail.mapJson) : []
|
13
|
|
- const ty = Object.prototype.toString
|
|
13
|
+ const poiDatas = typeof detail.mapJson === 'string' ? JSON.parse(detail.mapJson) : []
|
14
|
14
|
|
15
|
15
|
// 展示内容数组
|
16
|
|
- const dataList = poiDatas.map((item) => {
|
17
|
|
- const key = item.key
|
18
|
|
- const manualData = (detail[`building${key}`] === '' ? [] : (detail[`building${key}`] || '').split(','))
|
19
|
|
-
|
|
16
|
+ const dataList = POI_TYPES.map((poi) => {
|
|
17
|
+ const jsonData = poiDatas.filter(x => x.key === poi.key)[0] || {}
|
|
18
|
+ const data = JSON.parse(jsonData.data || '[]')
|
|
19
|
+ const manualData = (detail[`building${poi.key}`] === '' ? [] : (detail[`building${poi.key}`] || '').split(','))
|
|
20
|
+
|
20
|
21
|
return {
|
21
|
|
- ...item,
|
|
22
|
+ ...poi,
|
|
23
|
+ data,
|
22
|
24
|
manualData,
|
23
|
|
- num: (ty.call(item.data) === '[object String]' ? JSON.parse(item.data) : []).length + manualData.length,
|
|
25
|
+ num: data.length + manualData.length,
|
24
|
26
|
}
|
25
|
27
|
}).filter(x => x.num)
|
26
|
|
-
|
|
28
|
+
|
27
|
29
|
// 所有的 markers
|
28
|
30
|
const markersList = dataList.map((item) => {
|
29
|
|
- const mapJson = JSON.parse(item.data)
|
|
31
|
+ const mapJson = item.data || '[]'
|
30
|
32
|
return (mapJson || []).map((it) => {
|
31
|
33
|
const [longitude, latitude] = (it.location || '').split(',')
|
32
|
34
|
|