Commit b4ddafaf authored by 郭铭瑶's avatar 郭铭瑶 🤘

街镇懒加载数据

parent 8910fcab
import caolu from './caolu' // import caolu from './caolu'
// import caoluBuilding from './caolu-building' // // import caoluBuilding from './caolu-building'
import dongming from './dongming' // import dongming from './dongming'
// import dongmingBuilding from './dongming-building' // // import dongmingBuilding from './dongming-building'
import gaodong from './gaodong' // import gaodong from './gaodong'
// import gaodongBuilding from './gaodong-building' // // import gaodongBuilding from './gaodong-building'
import gaoxing from './gaoxing' // import gaoxing from './gaoxing'
// import gaoxingBuilding from './gaoxing-building' // // import gaoxingBuilding from './gaoxing-building'
import hangtou from './hangtou' // import hangtou from './hangtou'
// import hangtouBuilding from './hangtou-building' // // import hangtouBuilding from './hangtou-building'
import hudong from './hudong' // import hudong from './hudong'
// import hudongBuilding from './hudong-building' // // import hudongBuilding from './hudong-building'
import huamu from './huamu' // import huamu from './huamu'
// import huamuBuilding from './huamu-building' // // import huamuBuilding from './huamu-building'
import jinqiao from './jinqiao' // import jinqiao from './jinqiao'
// import jinqiaoBuilding from './jinqiao-building' // // import jinqiaoBuilding from './jinqiao-building'
import jinyang from './jinyang' // import jinyang from './jinyang'
// import jinyangBuilding from './jinyang-building' // // import jinyangBuilding from './jinyang-building'
import lujiazui from './lujiazui' // import lujiazui from './lujiazui'
// import lujiazuiBuilding from './lujiazui-building' // // import lujiazuiBuilding from './lujiazui-building'
import shuyuan from './shuyuan' // import shuyuan from './shuyuan'
// import shuyuanBuilding from './shuyuan-building' // // import shuyuanBuilding from './shuyuan-building'
import beicai from './beicai' // import beicai from './beicai'
// import beicaiBuilding from './beicai-building' // // import beicaiBuilding from './beicai-building'
import kangqiao from './kangqiao' // import kangqiao from './kangqiao'
// import kangqiaoBuilding from './kangqiao-building' // // import kangqiaoBuilding from './kangqiao-building'
import nanhui from './nanhui' // import nanhui from './nanhui'
// import nanhuiBuilding from './nanhui-building' // // import nanhuiBuilding from './nanhui-building'
import nanmatou from './nanmatou' // import nanmatou from './nanmatou'
// import nanmatouBuilding from './nanmatou-building' // // import nanmatouBuilding from './nanmatou-building'
import nicheng from './nicheng' // import nicheng from './nicheng'
// import nichengBuilding from './nicheng-building' // // import nichengBuilding from './nicheng-building'
import puxing from './puxing' // import puxing from './puxing'
// import puxingBuilding from './puxing-building' // // import puxingBuilding from './puxing-building'
import sanlin from './sanlin' // import sanlin from './sanlin'
// import sanlinBuilding from './sanlin-building' // // import sanlinBuilding from './sanlin-building'
import tangzhen from './tangzhen' // import tangzhen from './tangzhen'
// import tangzhenBuilding from './tangzhen-building' // // import tangzhenBuilding from './tangzhen-building'
import wanxiang from './wanxiang' // import wanxiang from './wanxiang'
// import wanxiangBuilding from './wanxiang-building' // // import wanxiangBuilding from './wanxiang-building'
import weifang from './weifang' // import weifang from './weifang'
// import weifangBuilding from './weifang-building' // // import weifangBuilding from './weifang-building'
import xinchang from './xinchang' // import xinchang from './xinchang'
// import xinchangBuilding from './xinchang-building' // // import xinchangBuilding from './xinchang-building'
import xuanqiao from './xuanqiao' // import xuanqiao from './xuanqiao'
// import xuanqiaoBuilding from './xuanqiao-building' // // import xuanqiaoBuilding from './xuanqiao-building'
import yangjing from './yangjing' // import yangjing from './yangjing'
// import yangjingBuilding from './yangjing-building' // // import yangjingBuilding from './yangjing-building'
import zhangjiang from './zhangjiang' // import zhangjiang from './zhangjiang'
// import zhangjiangBuilding from './zhangjiang-building' // // import zhangjiangBuilding from './zhangjiang-building'
import zhoupu from './zhoupu' // import zhoupu from './zhoupu'
// import zhoupuBuilding from './zhoupu-building' // // import zhoupuBuilding from './zhoupu-building'
import zhuqiao from './zhuqiao' // import zhuqiao from './zhuqiao'
// import zhuqiaoBuilding from './zhuqiao-building' // // import zhuqiaoBuilding from './zhuqiao-building'
import chuansha from './chuansha' // import chuansha from './chuansha'
// import chuanshaBuilding from './chuansha-building' // // import chuanshaBuilding from './chuansha-building'
import datuan from './datuan' // import datuan from './datuan'
// import datuanBuilding from './datuan-building' // // import datuanBuilding from './datuan-building'
import gaoqiao from './gaoqiao' // import gaoqiao from './gaoqiao'
// import gaoqiaoBuilding from './gaoqiao-building' // // import gaoqiaoBuilding from './gaoqiao-building'
import heqing from './heqing' // import heqing from './heqing'
// import heqingBuilding from './heqing-building' // // import heqingBuilding from './heqing-building'
import laogang from './laogang' // import laogang from './laogang'
// import laogangBuilding from './laogang-building' // // import laogangBuilding from './laogang-building'
import shanggang from './shanggang' // import shanggang from './shanggang'
// import shanggangBuilding from './shanggang-building' // // import shanggangBuilding from './shanggang-building'
import tangqiao from './tangqiao' // import tangqiao from './tangqiao'
// import tangqiaoBuilding from './tangqiao-building' // // import tangqiaoBuilding from './tangqiao-building'
import huinan from './huinan' // import huinan from './huinan'
// import huinanBuilding from './huinan-building' // // import huinanBuilding from './huinan-building'
export const mockCommunity = { // export const mockCommunity = {
caolu, // caolu,
dongming, // dongming,
gaodong, // gaodong,
gaoxing, // gaoxing,
hangtou, // hangtou,
hudong, // hudong,
huamu, // huamu,
jinqiao, // jinqiao,
jinyang, // jinyang,
lujiazui, // lujiazui,
shuyuan, // shuyuan,
beicai, // beicai,
kangqiao, // kangqiao,
nanhui, // nanhui,
nanmatou, // nanmatou,
nicheng, // nicheng,
puxing, // puxing,
sanlin, // sanlin,
tangzhen, // tangzhen,
wanxiang, // wanxiang,
weifang, // weifang,
xinchang, // xinchang,
xuanqiao, // xuanqiao,
yangjing, // yangjing,
zhangjiang, // zhangjiang,
zhoupu, // zhoupu,
zhuqiao, // zhuqiao,
chuansha, // chuansha,
datuan, // datuan,
gaoqiao, // gaoqiao,
heqing, // heqing,
laogang, // laogang,
shanggang, // shanggang,
tangqiao, // tangqiao,
huinan, // huinan,
}
// export const mockBuilding = {
// jinyangBuilding,
// yangjingBuilding,
// chuanshaBuilding,
// caoluBuilding,
// jinqiaoBuilding,
// sanlinBuilding,
// shanggangBuilding,
// laogangBuilding,
// tangqiaoBuilding,
// huinanBuilding,
// heqingBuilding,
// datuanBuilding,
// gaoqiaoBuilding,
// zhuqiaoBuilding,
// zhoupuBuilding,
// zhangjiangBuilding,
// tangzhenBuilding,
// xinchangBuilding,
// xuanqiaoBuilding,
// weifangBuilding,
// wanxiangBuilding,
// puxingBuilding,
// nichengBuilding,
// nanmatouBuilding,
// nanhuiBuilding,
// kangqiaoBuilding,
// beicaiBuilding,
// lujiazuiBuilding,
// hangtouBuilding,
// gaoxingBuilding,
// gaodongBuilding,
// hudongBuilding,
// dongmingBuilding,
// huamuBuilding,
// shuyuanBuilding,
// } // }
// // export const mockBuilding = {
// // jinyangBuilding,
// // yangjingBuilding,
// // chuanshaBuilding,
// // caoluBuilding,
// // jinqiaoBuilding,
// // sanlinBuilding,
// // shanggangBuilding,
// // laogangBuilding,
// // tangqiaoBuilding,
// // huinanBuilding,
// // heqingBuilding,
// // datuanBuilding,
// // gaoqiaoBuilding,
// // zhuqiaoBuilding,
// // zhoupuBuilding,
// // zhangjiangBuilding,
// // tangzhenBuilding,
// // xinchangBuilding,
// // xuanqiaoBuilding,
// // weifangBuilding,
// // wanxiangBuilding,
// // puxingBuilding,
// // nichengBuilding,
// // nanmatouBuilding,
// // nanhuiBuilding,
// // kangqiaoBuilding,
// // beicaiBuilding,
// // lujiazuiBuilding,
// // hangtouBuilding,
// // gaoxingBuilding,
// // gaodongBuilding,
// // hudongBuilding,
// // dongmingBuilding,
// // huamuBuilding,
// // shuyuanBuilding,
// // }
<template> <template>
<div id="container"> <div id="container">
<template v-if="curStreetData.name && curStreet">
<Collapse v-model="curStreet" @on-change="handleSelect" class="menu" accordion> <Collapse v-model="curStreet" @on-change="handleSelect" class="menu" accordion>
<Panel v-for="street in streetList" :key="street" :name="street"> <Panel v-for="street in streetList" :key="street" :name="street">
{{areaList[street].name}}小区列表 {{curStreetData.name}}小区列表
<div slot="content" class="community-list"> <div slot="content" class="community-list">
<div v-for="(item, index) in areaList[street].community" :key="item.name + index" style="display:flex;justify-content:space-between;"> <div v-for="(item, index) in curStreetData.community" :key="item.name + index" style="display:flex;justify-content:space-between;">
<Button <Button
@click="handleView(item)" @click="handleView(item)"
size="small" size="small"
...@@ -17,6 +18,7 @@ ...@@ -17,6 +18,7 @@
</div> </div>
</Panel> </Panel>
</Collapse> </Collapse>
</template>
<Modal v-model="detailModal" width="90%" :footer-hide="true"> <Modal v-model="detailModal" width="90%" :footer-hide="true">
<Table v-if="detailModal" :columns="columns" :data="detailData" size="small" :max-height="tableHeight"/> <Table v-if="detailModal" :columns="columns" :data="detailData" size="small" :max-height="tableHeight"/>
</Modal> </Modal>
...@@ -28,7 +30,8 @@ const {AMap} = window ...@@ -28,7 +30,8 @@ const {AMap} = window
const star1 = require('@/assets/images/star1.png') const star1 = require('@/assets/images/star1.png')
const star2 = require('@/assets/images/star2.png') const star2 = require('@/assets/images/star2.png')
const star3 = require('@/assets/images/star3.png') const star3 = require('@/assets/images/star3.png')
import {mockCommunity} from '@/mock/index.js' // import {mockCommunity} from '@/mock/index.js'
import axios from 'axios'
export default { export default {
name: 'Map3D', name: 'Map3D',
data() { data() {
...@@ -90,7 +93,6 @@ export default { ...@@ -90,7 +93,6 @@ export default {
// mapStyle:'amap://styles/light', // mapStyle:'amap://styles/light',
features:['bg','road'], features:['bg','road'],
}, },
areaList: mockCommunity,
streetList: [], streetList: [],
curStreetPolygon: null, curStreetPolygon: null,
curStreet: null, curStreet: null,
...@@ -209,6 +211,44 @@ export default { ...@@ -209,6 +211,44 @@ export default {
}, },
], ],
detailData: [], detailData: [],
refer: {
beicai: '北蔡',
caolu: '曹路',
chuansha: '川沙',
datuan: '大团',
dongming: '东明',
gaodong: '高东',
gaoqiao: '高桥',
gaoxing: '高行',
hangtou: '航头',
heqing: '合庆',
huamu: '花木',
hudong: '沪东',
huinan: '惠南',
jinqiao: '金桥',
jinyang: '金杨',
kangqiao: '康桥',
laogang: '老港',
lujiazui: '陆家嘴',
nanhui: '南汇新城',
nanmatou: '南码头',
nicheng: '泥城',
puxing: '浦兴',
sanlin: '三林',
shanggang: '上钢',
shuyuan: '书院',
tangqiao: '塘桥',
tangzhen: '唐镇',
wanxiang: '万祥',
weifang: '潍坊',
xinchang: '新场',
xuanqiao: '宣桥',
yangjing: '洋泾',
zhangjiang: '张江',
zhoupu: '周浦',
zhuqiao: '祝桥',
},
curStreetData: {},
} }
}, },
mounted() { mounted() {
...@@ -225,12 +265,12 @@ export default { ...@@ -225,12 +265,12 @@ export default {
this.initMenu() this.initMenu()
}, },
initMenu() { initMenu() {
const streets = Object.keys(this.areaList) const streets = Object.keys(this.refer)
if (this.$route.query && this.$route.query.name) { // 判断路由有街镇则显示该街镇列表,没街镇显示所有街镇列表 if (this.$route.query && this.$route.query.name) { // 判断路由有街镇则显示该街镇列表,没街镇显示所有街镇列表
const streetName = this.$route.query.name const streetName = this.$route.query.name
let result = null let result = null
streets.forEach(street => { streets.forEach(street => {
if (streetName.indexOf(this.areaList[street].name) >= 0) { if (streetName.indexOf(this.refer[street]) >= 0) {
result = street result = street
} }
}) })
...@@ -258,28 +298,36 @@ export default { ...@@ -258,28 +298,36 @@ export default {
}, },
handleSelect(key) { handleSelect(key) {
if (!key || key.length <= 0) return if (!key || key.length <= 0) return
this.map.setZoomAndCenter(15, this.areaList[key[0]].location) const streetData = require(`@/mock/${key[0]}.js`).default
this.curStreetData = streetData
this.map.setZoomAndCenter(15, streetData.location)
if (this.curStreetPolygon) { if (this.curStreetPolygon) {
// this.map.remove(this.curStreetPolygon) // 移除之前的街镇区域底色 // this.map.remove(this.curStreetPolygon) // 移除之前的街镇区域底色
this.map.clearMap() this.map.clearMap()
} }
this.initLayers(key) this.initLayers(key)
this.highlightArea(this.areaList[key[0]]) this.highlightArea(streetData)
}, },
initLayers(street = null) { // 添加基础图层和建筑物图层 initLayers(street = null) { // 添加基础图层和建筑物图层
const keys = Object.keys(this.areaList) // const keys = Object.keys(this.areaList)
if (keys.length <= 0) return // if (keys.length <= 0) return
const communityList = [] // const communityList = []
if (street) { // if (street) {
communityList.push(...this.areaList[street].community) // communityList.push(...this.areaList[street].community)
if (this.buildingData) { // if (this.buildingData) {
communityList.push(...this.buildingData.community) // 添加个别不同色的,手动上色的楼栋 // communityList.push(...this.buildingData.community) // 添加个别不同色的,手动上色的楼栋
} // }
} else { // } else {
keys.forEach(key => { // keys.forEach(key => {
communityList.push(...this.areaList[key].community) // communityList.push(...this.areaList[key].community)
}) // })
// }
if (!this.curStreetData.name) return
const communityList = [...this.curStreetData.community]
if (this.buildingData) {
communityList.push(...this.buildingData.community)
} }
const buildingOptions = { const buildingOptions = {
areas: communityList.map(item => { areas: communityList.map(item => {
if (item.type != 'building') { if (item.type != 'building') {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment