Browse Source

新增地图资源定点

feature
战立标 2 years ago
parent
commit
9070b8e35f
  1. BIN
      src/assets/images/overview/resources01.png
  2. BIN
      src/assets/images/overview/resources02.png
  3. BIN
      src/assets/images/overview/resources03.png
  4. BIN
      src/assets/images/overview/resources04.png
  5. BIN
      src/assets/images/overview/resources05.png
  6. 44
      src/views/dataBoard/cpts/sjkb-map/index.vue
  7. 18
      src/views/dataBoard/overview/components/MapDialog/index.vue
  8. 2
      src/views/dataBoard/overview/components/MapResourceInfo.vue
  9. 2
      src/views/dataBoard/overview/components/ResourceInfo.vue
  10. 240
      src/views/dataBoard/overview/index.vue

BIN
src/assets/images/overview/resources01.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
src/assets/images/overview/resources02.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/assets/images/overview/resources03.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/assets/images/overview/resources04.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/assets/images/overview/resources05.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

44
src/views/dataBoard/cpts/sjkb-map/index.vue

@ -36,6 +36,7 @@ let pointMarker;
let numPointMarker;
let numPointMarker2;
let numPointMarker1;
let ResourcesPoint;
export default {
name: "l7",
@ -944,7 +945,7 @@ export default {
}
})
.shape('type', (type) => {
console.log(type,'type')
console.log(type, 'type')
return type
})
.size(36);
@ -969,11 +970,50 @@ export default {
scene.addLayer(numPointMarker2);
numPointMarker1.on("click", (e) => {
console.log(e, 'imageLayer')
this.$emit('showMapDialog',e.feature)
this.$emit('showMapDialog', e.feature)
})
// scene.addMarkerLayer(numPointMarker);
},
removeResourcesPoint() {
if (ResourcesPoint) {
scene.removeLayer(ResourcesPoint);
}
},
setResourcesPoint(data) {
this.removeResourcesPoint()
console.log(data, 'mapData')
if (!scene.hasImage('resources01')) {
scene.addImage('resources01', require('@/assets/images/overview/resources01.png'));
scene.addImage('resources02', require('@/assets/images/overview/resources02.png'));
scene.addImage('resources03', require('@/assets/images/overview/resources03.png'));
scene.addImage('resources04', require('@/assets/images/overview/resources04.png'));
scene.addImage('resources05', require('@/assets/images/overview/resources05.png'));
}
console.log(data, 'pointData')
ResourcesPoint = new PointLayer({
name: 'ResourcesPoint',
zIndex: 22,
})
.source(data, {
parser: {
type: 'json',
x: 'longitude',
y: 'latitude'
}
})
.shape('dataClass', (dataClass) => {
console.log(dataClass, 'dataClass')
return 'resources0' + dataClass
})
.size(18);
scene.addLayer(ResourcesPoint);
ResourcesPoint.on("click", (e) => {
console.log(e, 'ResourcesPoint')
this.$emit('resourcesPointClick', e.feature)
})
},
async setDotMarker(item, posArr) {
this.removeDotMarker();
this.drawSearchBg(...posArr);

18
src/views/dataBoard/overview/components/MapDialog/index.vue

@ -120,11 +120,7 @@ export default {
ResourceDispatch
},
props: {
type: {
type: String,
default: '',
required: true
}
},
data() {
return {
@ -156,19 +152,20 @@ export default {
catValSub: '',
catLabel: '',
totalCount: [],
currentLevelData: {}
currentLevelData: {},
type: ''
};
},
methods: {
handleClose(done) {
this.dialogVisible = false;
},
open(data) {
open(data,type) {
this.dialogVisible = true;
this.currentLevelData = data
this.getDetail(data);
this.type = type
this.$nextTick(() => {
this.$refs.tree.setCurrentKey(this.catVal)
this.getDetail(data);
})
},
getDetail({orgId}) {
@ -198,6 +195,7 @@ export default {
item.label = item.label + '(' + data.filter(item2 => item2.markType === item.value)[0].total + ')'
})
this.njjwtqkTree = njjwtqkTree
this.$refs.tree.setCurrentKey(this.catVal)
})
}
if (this.type === 'xqwwcqk') {
@ -218,6 +216,7 @@ export default {
})
}
})
this.$refs.tree.setCurrentKey(this.catVal)
})
}
},
@ -235,6 +234,7 @@ export default {
}
});
this.xqwwcqkTree = this.xqwwcqkTree.filter(item => item.value)
this.$refs.tree.setCurrentKey(this.catVal)
this.catLabel = this.xqwwcqkTree[0].label;
})
.catch(() => {

2
src/views/dataBoard/overview/components/MapResourceInfo.vue

@ -104,7 +104,7 @@
<div class="items">
<div class="label">所在位置</div>
<div class="value">{{ detail.houseInfo.homeName }}</div>
<div class="value">{{ detail.houseInfo? detail.houseInfo.homeName: '' }}</div>
</div>
<div class="items">
<div class="label">兴趣爱好</div>

2
src/views/dataBoard/overview/components/ResourceInfo.vue

@ -126,7 +126,7 @@ import Title from "@/views/dataBoard/satisfactionEval/components/Title";
import CallPhone from "@/views/dataBoard/cpts/CallPhone";
export default {
name: "MapResourceInfo",
name: "ResourceInfo",
components: {Title, CallPhone},
props: {
currentLevelData: {

240
src/views/dataBoard/overview/index.vue

@ -16,10 +16,6 @@
<title-box text="需求清单"/>
<RequirementList :currentLevelData="currentLevelData"/>
</div>
<!-- <div class="m-box">
<title-box :text="`${currentLevel === 'district' ? '区' : currentLevel === 'street' ? '街道' : currentLevel === 'community' ? '社区' : currentLevel === 'grid' ? '网格' : ''}图谱画像`" />
<jdtphx :currentLevelData="currentLevelData" :id="orgId" />
</div> -->
</div>
<div class="g-center">
<div :class="listShow ? 'm-map' : 'g-center-open'" style="overflow: hidden">
@ -28,9 +24,15 @@
<div v-if="breadList.length > 1" class="go-back" @click="goBackMap">
<img src="~@/assets/images/shuju/overview/go-back.png"/>
</div>
<grid-map ref="map" :level="currentLevel" :peopleType="peopleType" :srcGridData="orgData"
@clickAgency="clickAgencyItem" @clickDotBtn="handleClickDotBtn"
@showMapDialog="showMapDialog"
<grid-map
ref="map"
:level="currentLevel"
:peopleType="peopleType"
:srcGridData="orgData"
@clickAgency="clickAgencyItem"
@clickDotBtn="handleClickDotBtn"
@resourcesPointClick="resourcesPointClick"
@showMapDialog="showMapDialog"
/>
<div class="map-legend">
<div class="legend-title">
@ -52,17 +54,7 @@
</div>
</div>
</div>
<!-- <div class="m-box m-rybox">
<title-box :text="`${customerName}${peopleList[peopleType]}`">
<div class="up-style" style="width: 51%">
<div>
<img v-if="listShow" @click="upDownShow" src="~@/assets/images/overview/down-icon.png" />
<img v-else @click="upDownShow" src="~@/assets/images/overview/up-icon.png" />
</div>
</div>
</title-box>
<jdwgy v-show="listShow" :peopleType="peopleType" :currentLevelData="currentLevelData" :level="currentLevel" @setNum="setNum" @setPoint="setPoint" />
</div> -->
</div>
<div class="g-right">
@ -72,62 +64,6 @@
<wtqd v-if="eventType === 1" :currentLevelData="currentLevelData" :date="sjhfDate"/>
</div>
<!-- <div class="m-box">
<title-box text="人房数据统计" />
<rfsjtj :currentLevelData="currentLevelData" />
</div> -->
<!-- 街道概览 -->
<!-- <div v-if="currentLevel === 'street' || currentLevel === 'district'" class="m-box">
<title-box text="各社区人房数据更新排行">
<span class="date-span">
<el-date-picker popper-class="date-current-weiyi" :append-to-body="false" v-model="rfphDate" format="yyyy-MM" value-format="yyyy-MM" @change="changeDate" type="month" :clearable="false" placeholder="选择月"> </el-date-picker>
</span>
</title-box>
<sqrfph :currentLevelData="currentLevelData" :date="rfphDate" />
</div> -->
<!-- <div v-if="currentLevel === 'street' || currentLevel === 'district'" class="m-box">
<title-box text="各社区12345投诉事件统计">
<span class="date-span">
<el-date-picker popper-class="date-current-weiyi" :append-to-body="false" v-model="sq12345Date" format="yyyy-MM" value-format="yyyy-MM" type="month" :clearable="false" placeholder="选择月" />
</span>
</title-box>
<sq12345 :currentLevelData="currentLevelData" :date="sq12345Date" />
</div> -->
<!-- 社区&网格-->
<!-- <div v-if="currentLevel === 'community' || currentLevel === 'grid'" class="m-box">
<title-box text="人房数据动态更新" />
<Tabs v-model="dynamicType" :list="dynamicTypeList" v-if="currentLevel === 'community'" @changeVal="dynamicTypeChange" />
<DynamicHumanRoomData :currentLevelData="currentLevelData" :currentLevel="currentLevel" v-if="dynamicType === 1" />
<GridUpdateRanking :currentLevelData="currentLevelData" :currentLevel="currentLevel" v-if="dynamicType === 2" />
</div> -->
<!-- 社区概览-->
<!-- <div v-if="currentLevel === 'community'" class="m-box">
<title-box text="社区满意度自查结果">
<span class="date-span">
<el-date-picker popper-class="date-current-weiyi" :append-to-body="false" v-model="sqzcDate" format="yyyy-MM" value-format="yyyy-MM" type="month" :clearable="false" placeholder="选择月" />
</span>
</title-box>
<CommunityResult :currentLevelData="currentLevelData" :date="sqzcDate" />
</div> -->
<!-- <div class="m-box">
<title-box text="事件&回访">
<span class="date-span">
<el-date-picker popper-class="date-current-weiyi" :append-to-body="false" v-model="sjhfDate" format="yyyy-MM" value-format="yyyy-MM" @change="changeDate" type="month" :clearable="false" placeholder="选择月" />
</span>
</title-box>
<Tabs v-model="eventType" :list="eventTypeList" @changeVal="eventTypeChange" />
<EventAndFollowUp :currentLevelData="currentLevelData" :date="sjhfDate" v-if="eventType === 1" />
<FollowUp :currentLevelData="currentLevelData" :date="sjhfDate" v-if="eventType === 2" />
</div> -->
<!-- 网格 -->
<!-- <div v-if="currentLevel === 'grid'" class="m-box">
<title-box text="社区网格数据更新排行">
<span class="date-span">
<el-date-picker popper-class="date-current-weiyi" :append-to-body="false" v-model="sqwggxDate" format="yyyy-MM" value-format="yyyy-MM" @change="changeDate" type="month" :clearable="false" placeholder="选择月" />
</span>
</title-box>
<RankingGridData :currentLevelData="currentLevelData" :date="sqwggxDate" />
</div> -->
</div>
</div>
<!--
@ -139,6 +75,7 @@
-->
<MapDialog ref="MapDialog" :type="mapType"/>
<cpt-loading v-show="false"/>
<MapResourceInfo ref="MapResourceInfo" :currentLevelData="currentLevelData"/>
</div>
</template>
<script>
@ -169,6 +106,7 @@ import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue";
import {requestPostBi} from "@/js/dai/request-bipass";
import {requestPost} from "@/js/dai/request";
import {spliceIntoChunks} from "@/utils/index";
import MapResourceInfo from "@/views/dataBoard/overview/components/MapResourceInfo.vue";
export default {
name: "renfang",
@ -194,7 +132,8 @@ export default {
Tabs,
wtqd,
RequirementList,
MapDialog
MapDialog,
MapResourceInfo
},
data() {
@ -463,94 +402,111 @@ export default {
};
console.log(this.currentLevelData, 'this.currentLevelData 33210')
this.peopleType = this.currentLevel === "grid" ? "unit" : "staffAgency";
this.$refs.map.removeResourcesPoint();
// console.log(level,'level',orgId ,level === 'agency ' || level === 'community' || level === 'grid')
if (level === 'agency' || level === 'community' || level === 'grid') {
this.setResourcesPoint({agencyId: orgId})
}
this.getMapCount()
});
},
showMapDialog(data) {
if (data.type === "resources") {
this.setResourcesPoint()
this.clickAgencyItem(data)
} else {
// -- njjwtqk =
// -- bmysxqk =
// -- xqwwcqk =
if (data.type === "events") {
this.mapType = "xqwwcqk";
}
if (data.type === "services") {
this.mapType = "bmysxqk";
}
if (data.type === 'problems') {
this.mapType = "njjwtqk";
switch (data.type) {
case 'events':
this.mapType = "xqwwcqk";
break;
case 'services':
this.mapType = "bmysxqk";
break;
case 'problems':
this.mapType = "njjwtqk";
break;
}
this.$refs.MapDialog.open({
orgId: data.agencyId,
level: data.level
})
orgLevel: data.level
}, this.mapType)
}
},
setResourcesPoint() {
resourcesPointClick(data) {
this.$refs.MapResourceInfo.open(data.id, data.dataClass)
},
setResourcesPoint({agencyId}) {
this.$http.get('/actual/base/dataBoard/resource/search?keyword=&agencyId=' + agencyId).then(res => {
let data = res.data.data;
data = data.filter(item => item.latitude && item.longitude)
data = data.map(item => {
return {
...item,
latitude: item.latitude * 1,
longitude: item.longitude * 1
}
})
this.$refs.map.setResourcesPoint(data)
})
},
getMapCount() {
this.$http.get('/governance/icEvent/statOrgResourceAndEventCount?agencyId=' + this.orgId).then(res => {
let countData = res.data.data
countData.forEach(item2 => {
this.orgData.children.forEach(item => {
if (item2.agencyId === item.id) {
item2.coordinates = item.coordinates
item2.level = item.level
item2.latitude = item.latitude
item2.longitude = item.longitude
}
})
})
let orgDataids = this.orgData.children.map(item => item.id)
countData.forEach(item => {
console.log(item.data)
item.data.forEach(item3 => {
let coordinates = spliceIntoChunks(item.coordinates.split(",").map((item) => parseFloat(item)), 2)
let coordinates2 = coordinates.map(item3 => {
return [{
lat: item3[1],
lng: item3[0]
}]
let orgDataIndex = orgDataids.indexOf(item.agencyId)
if (orgDataIndex > -1) {
let curOrgData = this.orgData.children[orgDataIndex];
item.data = item.data.map(item2 => {
return {
...curOrgData,
...item2,
agencyId: item.agencyId
}
})
let centerLngLat = this.getCenterPoint(coordinates2)
if (item3.hasOwnProperty("services")) {
item3.type = 'services'
item3.num = item3.services;
item3.offsets = [50, 50];
item3.latitude = centerLngLat.lat
item3.longitude = centerLngLat.lng
}
if (item3.hasOwnProperty("resources")) {
item3.type = 'resources'
item3.num = item3.resources;
item3.offsets = [-50, 50];
item3.latitude = centerLngLat.lat + 0.0012
item3.longitude = centerLngLat.lng
}
if (item3.hasOwnProperty("problems")) {
item3.type = 'problems'
item3.num = item3.problems;
item3.offsets = [50, -50];
item3.latitude = centerLngLat.lat
item3.longitude = centerLngLat.lng + .0012
}
if (item3.hasOwnProperty("events")) {
item3.type = 'events'
item3.num = item3.events;
item3.offsets = [-50, -50];
item3.latitude = centerLngLat.lat + .0012
item3.longitude = centerLngLat.lng + .0012
}
// item3.latitude = item3.lat * 1
// item3.longitude = item3.lon * 1
item3.id = item.agencyId + item3.type
item3.agencyId = item.agencyId
item3.level = item.level
})
item.data.forEach(item3 => {
let coordinates = spliceIntoChunks(item3.coordinates.split(",").map((coordinatesItem) => parseFloat(coordinatesItem)), 2)
let coordinates2 = coordinates.map(item4 => {
return [{
lat: item4[1],
lng: item4[0]
}]
})
let centerLngLat = this.getCenterPoint(coordinates2)
if (item3.hasOwnProperty("services")) {
item3.type = 'services'
item3.num = item3.services;
item3.offsets = [50, 50];
item3.latitude = centerLngLat.lat
item3.longitude = centerLngLat.lng
}
if (item3.hasOwnProperty("resources")) {
item3.type = 'resources'
item3.num = item3.resources;
item3.offsets = [-50, 50];
item3.latitude = centerLngLat.lat + 0.0012
item3.longitude = centerLngLat.lng
}
if (item3.hasOwnProperty("problems")) {
item3.type = 'problems'
item3.num = item3.problems;
item3.offsets = [50, -50];
item3.latitude = centerLngLat.lat
item3.longitude = centerLngLat.lng + .0012
}
if (item3.hasOwnProperty("events")) {
item3.type = 'events'
item3.num = item3.events;
item3.offsets = [-50, -50];
item3.latitude = centerLngLat.lat + .0012
item3.longitude = centerLngLat.lng + .0012
}
})
}
})
console.log(countData, 'countData')
this.$refs.map.setNumpoint(countData)

Loading…
Cancel
Save