|
|
|
<template>
|
|
|
|
<div class="g-cpt">
|
|
|
|
<div class="g-l">
|
|
|
|
<div class="m-people">
|
|
|
|
<cpt-card>
|
|
|
|
<div class="title">
|
|
|
|
<img src="@/assets/img/shuju/title-tip.png" />
|
|
|
|
<span>人员情况</span>
|
|
|
|
</div>
|
|
|
|
<div class="ren">
|
|
|
|
<img class="pic-ren" src="@/assets/img/shuju/people/ren.png" />
|
|
|
|
<div class="ren-prop">
|
|
|
|
<img class="pic-ren" src="@/assets/img/shuju/people/ren-prop-1.png" />
|
|
|
|
<span>所属网格</span>
|
|
|
|
|
|
|
|
<div class="ren-cnt">
|
|
|
|
<p>所属网格</p>
|
|
|
|
<p>惺惺惜惺惺</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</cpt-card>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="g-r"></div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import { Loading } from 'element-ui'; //引入Loading服务
|
|
|
|
import { requestPost } from "@/js/dai/request";
|
|
|
|
import cptCard from "@/views/modules/visual/cpts/card";
|
|
|
|
|
|
|
|
export default {
|
|
|
|
name: 'HomeMap',
|
|
|
|
data () {
|
|
|
|
return {
|
|
|
|
centerPoint: [],//中心点位置
|
|
|
|
zoom: 14,//缩放范围:区14
|
|
|
|
minZoom: 1,//最小缩放
|
|
|
|
|
|
|
|
orgData: {},//当前组织对象
|
|
|
|
orgId: '',
|
|
|
|
orgLevel: '',
|
|
|
|
|
|
|
|
subAgencyArray: [],//下拉框数据
|
|
|
|
|
|
|
|
selPolygonId: '',//选择的多边形id
|
|
|
|
selPolygon: {},
|
|
|
|
|
|
|
|
//右侧列表
|
|
|
|
name: "",
|
|
|
|
|
|
|
|
//下钻层级记录
|
|
|
|
runNum: 0,
|
|
|
|
runAgency: [],
|
|
|
|
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
props: {
|
|
|
|
|
|
|
|
vueFlag: {
|
|
|
|
type: String,
|
|
|
|
default: "alarm"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
|
|
|
|
mapHeight () {
|
|
|
|
|
|
|
|
return this.clientHeight - 120;
|
|
|
|
|
|
|
|
},
|
|
|
|
// zoom: {
|
|
|
|
// get () {
|
|
|
|
// //根据不同屏幕分辨率,控制zoom大小
|
|
|
|
// if (this.clientHeight < 900) {
|
|
|
|
// return 2.3
|
|
|
|
// } else {
|
|
|
|
// return 2.8
|
|
|
|
// }
|
|
|
|
// },
|
|
|
|
// set (value) {
|
|
|
|
// }
|
|
|
|
// },
|
|
|
|
|
|
|
|
},
|
|
|
|
components: {
|
|
|
|
cptCard
|
|
|
|
},
|
|
|
|
async mounted () {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
handleSearch () {
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
//加载组织数据
|
|
|
|
async loadOrgData () {
|
|
|
|
const url = "/gov/org/agency/maporg"
|
|
|
|
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/agency/maporg"
|
|
|
|
let params = {
|
|
|
|
orgId: this.orgId,
|
|
|
|
level: this.orgLevel
|
|
|
|
}
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, params)
|
|
|
|
|
|
|
|
if (code === 0) {
|
|
|
|
this.orgData = data
|
|
|
|
this.runAgency.push(data)
|
|
|
|
|
|
|
|
if (data.children && data.children.length > 0) {
|
|
|
|
this.subAgencyArray = data.children
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
this.$message.error(msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
//加载当前园区的标注
|
|
|
|
loadPolygon (subAgencyArray) {
|
|
|
|
polygonSource.clear()//清空变电站标注
|
|
|
|
|
|
|
|
let featureData = []//标注数据
|
|
|
|
if (subAgencyArray && subAgencyArray.length > 0) {//判断是否存在下级标注
|
|
|
|
let oneData = {}
|
|
|
|
|
|
|
|
subAgencyArray.forEach(agencyItem => {
|
|
|
|
|
|
|
|
if (agencyItem.coordinates && agencyItem.coordinates !== '') {//如果有坐标
|
|
|
|
oneData = {
|
|
|
|
type: 'Feature',
|
|
|
|
id: agencyItem.id,
|
|
|
|
properties: {
|
|
|
|
id: agencyItem.id,
|
|
|
|
level: agencyItem.level,
|
|
|
|
name: agencyItem.name
|
|
|
|
},
|
|
|
|
geometry: {
|
|
|
|
type: 'Polygon',
|
|
|
|
coordinates: [],
|
|
|
|
},
|
|
|
|
}
|
|
|
|
let coorArray = agencyItem.coordinates.split(',')//坐标数组
|
|
|
|
|
|
|
|
let itemArray = []//单个点位的[lon,lat],数组
|
|
|
|
let polygonArray = []//整个多边形的[[lon,lat],[lon,lat],[lon,lat]]数组
|
|
|
|
|
|
|
|
coorArray.forEach((item, index) => {
|
|
|
|
itemArray.push(item)
|
|
|
|
if (index % 2 == 0) {//偶
|
|
|
|
|
|
|
|
} else {//奇
|
|
|
|
polygonArray.push(itemArray)
|
|
|
|
itemArray = []
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
oneData.geometry.coordinates.push(polygonArray)
|
|
|
|
featureData.push(oneData)
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (featureData && featureData.length > 0) {
|
|
|
|
var geojsonObject = {
|
|
|
|
'type': 'FeatureCollection',
|
|
|
|
'features': featureData
|
|
|
|
};
|
|
|
|
let feature = (new GeoJSON()).readFeatures(geojsonObject)
|
|
|
|
polygonSource.addFeatures(feature)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
}
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" src="@/assets/scss/people.scss" scoped></style>
|
|
|
|
|