Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
P
pudong-elevator-map
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
郭铭瑶
pudong-elevator-map
Commits
b4ddafaf
Commit
b4ddafaf
authored
May 14, 2020
by
郭铭瑶
🤘
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
街镇懒加载数据
parent
8910fcab
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
212 additions
and
164 deletions
+212
-164
index.js
src/mock/index.js
+144
-144
main.vue
src/views/main.vue
+68
-20
No files found.
src/mock/index.js
View file @
b4ddafaf
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,
// // }
src/views/main.vue
View file @
b4ddafaf
<
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'
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment