|
@@ -26,8 +26,8 @@
|
|
|
<p class="p1" @click="openMte('polygonAdd', {obj: polygon, index})">{{polygon.text}}</p>
|
|
|
<p class="more">
|
|
|
<span v-if="polygon.editable" class="d d2" @click="textAdd(polygon)">标点</span>
|
|
|
- <span v-if="polygon.editable" class="d d1" @click="Deal(index, 'polygons')">编辑</span>
|
|
|
- <span v-else class="d d3" @click="Deal(index, 'polygons')">只读</span>
|
|
|
+ <span v-if="polygon.editable" class="d d1" @click="mapIsEdit(index, 'polygons')">编辑</span>
|
|
|
+ <span v-else class="d d3" @click="mapIsEdit(index, 'polygons')">只读</span>
|
|
|
<span class="d d4" @click="mapDel(index, 'polygons')">删除</span>
|
|
|
</p>
|
|
|
</div>
|
|
@@ -39,7 +39,7 @@
|
|
|
<div class="op" v-for="(t, index) in markerData" :key="index">
|
|
|
<p class="p1" @click="openMte('textAdd', {obj: t, index})">({{curMarkersIndex + 1}}){{t.content}}</p>
|
|
|
<p class="more">
|
|
|
- <span v-if="t.draggable" class="d d1" @click="Deal(index, 'markerData')">编辑</span>
|
|
|
+ <span v-if="t.draggable" class="d d1" @click="mapIsEdit(index, 'markerData')">编辑</span>
|
|
|
<span v-else class="d d3" @click="mapIsEdit(index, 'markerData')">只读</span>
|
|
|
<span class="d d4" @click="mapDel(index, 'markerData')">删除</span>
|
|
|
</p>
|
|
@@ -58,27 +58,31 @@
|
|
|
:events="mapEvents"
|
|
|
:plugin="plugin"
|
|
|
>
|
|
|
- <el-amap-marker class="scoped-m-box" v-for="(marker, index) in {...schoolList}" :key="3000 + index"
|
|
|
- icon="https://img2.honglounews.com/20220110041435-6276.png"
|
|
|
- :position="marker.position"
|
|
|
- :events="schoolEvents"
|
|
|
- :title="marker.school_name"
|
|
|
- :label="{content: marker.school_name, offset: [0, -20]}"
|
|
|
- :extData="{id: marker.id}"
|
|
|
- >
|
|
|
- </el-amap-marker>
|
|
|
- <el-amap-marker class="scoped-m-box" v-for="(marker, index) in {...estateList}" :key="2000 + index"
|
|
|
- icon="https://img2.honglounews.com/20220110041411-6675.png"
|
|
|
- :position="marker.position"
|
|
|
- :events="estateEvents"
|
|
|
- :title="marker.estate_name"
|
|
|
- :label="{content: marker.estate_name, offset: [0, -20]}"
|
|
|
- :extData="{id: marker.id}"
|
|
|
- >
|
|
|
- <!-- https://img2.honglounews.com/20220110041534-8330.png -->
|
|
|
- <!-- https://img2.honglounews.com/20220110041411-6675.png -->
|
|
|
- </el-amap-marker>
|
|
|
- <template v-if="mapDiyObj.zoom > 3">
|
|
|
+ <template v-if="mapDiyObj.zoom > 13">
|
|
|
+ <template v-if="mapDiyObj.isSchoolShow === '1'">
|
|
|
+ <el-amap-marker class="scoped-m-box" v-for="(marker, index) in {...schoolList}" :key="3000 + index"
|
|
|
+ icon="https://img2.honglounews.com/20220110041435-6276.png"
|
|
|
+ :position="marker.position"
|
|
|
+ :events="schoolEvents"
|
|
|
+ :title="marker.school_name"
|
|
|
+ :label="{content: marker.school_name, offset: [0, -20]}"
|
|
|
+ :extData="{id: marker.id}"
|
|
|
+ >
|
|
|
+ </el-amap-marker>
|
|
|
+ </template>
|
|
|
+ <template v-if="mapDiyObj.isEstateShow === '1'">
|
|
|
+ <el-amap-marker class="scoped-m-box" v-for="(marker, index) in {...estateList}" :key="2000 + index"
|
|
|
+ icon="https://img2.honglounews.com/20220110041411-6675.png"
|
|
|
+ :position="marker.position"
|
|
|
+ :events="estateEvents"
|
|
|
+ :title="marker.estate_name"
|
|
|
+ :label="{content: marker.estate_name, offset: [0, -20]}"
|
|
|
+ :extData="{id: marker.id}"
|
|
|
+ >
|
|
|
+ <!-- https://img2.honglounews.com/20220110041534-8330.png -->
|
|
|
+ <!-- https://img2.honglounews.com/20220110041411-6675.png -->
|
|
|
+ </el-amap-marker>
|
|
|
+ </template>
|
|
|
<el-amap-marker v-for="(marker, index) in markerData" :key="1000 + index"
|
|
|
:position="marker.position"
|
|
|
:draggable="marker.draggable"
|
|
@@ -88,6 +92,23 @@
|
|
|
<div class="scoped-marker-text" :style="`color: ${marker.color}`">{{marker.content}}</div>
|
|
|
</el-amap-marker>
|
|
|
</template>
|
|
|
+ <template v-else>
|
|
|
+ <template v-if="mapDiyObj.isAreaShow === '1'">
|
|
|
+ <el-amap-marker class="scoped-m-box" v-for="(marker, index) in {...areaList}" :key="4000 + index"
|
|
|
+ icon="https://img2.honglounews.com/20220110041435-6276.png"
|
|
|
+ :position="marker.position"
|
|
|
+ :events="areaEvents"
|
|
|
+ :offset="[-40, -40]"
|
|
|
+ :extData="{areaName: marker.areaName, areaType: marker.area_type}"
|
|
|
+ >
|
|
|
+ <div class="scoped-marker-area">
|
|
|
+ <div class="p1">{{marker.areaName}}</div>
|
|
|
+ <div class="p2">楼盘:{{marker.estate_total}}</div>
|
|
|
+ <div class="p2">学校:{{marker.school_total}}</div>
|
|
|
+ </div>
|
|
|
+ </el-amap-marker>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
<el-amap-polygon
|
|
|
v-for="(polygon, index) in polygons"
|
|
|
:key="index"
|
|
@@ -125,6 +146,7 @@ export default {
|
|
|
return {
|
|
|
estateList: [],
|
|
|
schoolList: [],
|
|
|
+ areaList: [],
|
|
|
isDbShow: true,
|
|
|
isMapSetShow: false,
|
|
|
formData: [],
|
|
@@ -222,6 +244,12 @@ export default {
|
|
|
wx.miniProgram.navigateTo({url: `/pagesSchool/indexDtl?id=${eData.id}`})
|
|
|
},
|
|
|
},
|
|
|
+ areaEvents: {
|
|
|
+ click(e) {
|
|
|
+ const eData = e.target.getExtData()
|
|
|
+ wx.miniProgram.navigateTo({url: `/pagesSchool/index?areaName=${eData.areaName}&areaType=${eData.areaType}`})
|
|
|
+ },
|
|
|
+ },
|
|
|
curMarkersIndex: 0,
|
|
|
plugin: [{
|
|
|
pName: 'MouseTool',
|
|
@@ -261,6 +289,13 @@ export default {
|
|
|
item.position = [item.longitude, item.latitude]
|
|
|
})
|
|
|
this.schoolList = [...schoolList]
|
|
|
+ let areaList = res.area_total || []
|
|
|
+ areaList.map(item => {
|
|
|
+ let lnglatArr = arrToObj(this.$dictData.map_area_lnglat)[item.area_type].split(',')
|
|
|
+ item.position = [lnglatArr[0], lnglatArr[1]]
|
|
|
+ item.areaName = arrToObj(this.$dictData.area_type)[item.area_type]
|
|
|
+ })
|
|
|
+ this.areaList = [...areaList]
|
|
|
})
|
|
|
},
|
|
|
mounted() {},
|
|
@@ -294,6 +329,9 @@ export default {
|
|
|
{ label: '默认级别', key: 'zoom', rules: 1},
|
|
|
{ label: '最小3+', key: 'zoom1', rules: 1},
|
|
|
{ label: '最大19-', key: 'zoom2', rules: 1},
|
|
|
+ { label: '展示楼盘', key: 'isEstateShow', type: 'select', rules: 1, options: this.$dictData.sys_yesno},
|
|
|
+ { label: '展示学校', key: 'isSchoolShow', type: 'select', rules: 1, options: this.$dictData.sys_yesno},
|
|
|
+ { label: '展示区域', key: 'isAreaShow', type: 'select', rules: 1, options: this.$dictData.sys_yesno},
|
|
|
]
|
|
|
this.setDefaultValue(params)
|
|
|
// this.setCurFeatures(params.features)
|
|
@@ -321,6 +359,9 @@ export default {
|
|
|
zoom: 17,
|
|
|
zooms: [15, 19],
|
|
|
center: [115.852386, 28.684076],
|
|
|
+ isEstateShow: '1',
|
|
|
+ isSchoolShow: '1',
|
|
|
+ isAreaShow: '1',
|
|
|
title: res.title,
|
|
|
features: ['road']
|
|
|
}
|
|
@@ -339,6 +380,9 @@ export default {
|
|
|
mapDiyObj.title = newForm.title
|
|
|
mapDiyObj.mapStyle = newForm.mapStyle
|
|
|
mapDiyObj.features = newForm.features
|
|
|
+ mapDiyObj.isEstateShow = newForm.isEstateShow
|
|
|
+ mapDiyObj.isSchoolShow = newForm.isSchoolShow
|
|
|
+ mapDiyObj.isAreaShow = newForm.isAreaShow
|
|
|
this.mapDiyObj = {...mapDiyObj}
|
|
|
this.setCurFeatures(newForm.features)
|
|
|
this.isMapSetShow = false
|
|
@@ -674,4 +718,18 @@ export default {
|
|
|
box-shadow: 0 0 3px #ccc;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+.scoped-marker-area {
|
|
|
+ background: #369af7;
|
|
|
+ box-shadow: 0 0 5px #369af7;
|
|
|
+ color: #fff;
|
|
|
+ width: 80px;
|
|
|
+ height: 80px;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 12px;
|
|
|
+ border-radius: 50%;
|
|
|
+ padding-top: 20px;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+
|
|
|
</style>
|