Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
house-type
Project
Project
Details
Activity
Releases
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
wangjiankun
house-type
Commits
52325ffe
Commit
52325ffe
authored
Jul 02, 2020
by
wangjiankun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 楼盘详情除土拍信息和房屋信息的两个图表其他已变为动态
fix: 地图覆盖物鼠标移入移出的样式 多级表头数据不存在时显示---
parent
e906af89
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
434 additions
and
348 deletions
+434
-348
.env
.env
+1
-1
.env.production
.env.production
+2
-2
unitManage.js
src/assets/js/api/unitManage.js
+11
-0
index.js
src/assets/js/public/index.js
+42
-0
index.vue
src/components/Layout/index.vue
+0
-1
index.vue
src/components/asyncSearch/index.vue
+0
-6
index.vue
src/components/bannerDetail/index.vue
+1
-1
index.vue
src/components/mapOverlay/index.vue
+9
-4
index.vue
src/components/multilHeaderTable/index.vue
+40
-35
index.vue
src/views/ProductAnalysis/index.vue
+47
-11
tableHeader.js
src/views/ProductAnalysis/tableHeader.js
+4
-35
demoData.js
src/views/RegionalPlate/demoData.js
+20
-20
index.vue
src/views/RegionalPlate/index.vue
+60
-59
index.vue
src/views/plateSupplyData/index.vue
+11
-4
index.vue
src/views/propertiesDetail/index.vue
+186
-169
No files found.
.env
View file @
52325ffe
...
@@ -2,5 +2,5 @@ NODE_ENV = "development"
...
@@ -2,5 +2,5 @@ NODE_ENV = "development"
BASE_URL = "./"
BASE_URL = "./"
VUE_APP_PUBLIC_PATH = "./"
VUE_APP_PUBLIC_PATH = "./"
VUE_APP_API = "http://10.96.
7.150:8080
/api/v1/"
VUE_APP_API = "http://10.96.
4.28:9393
/api/v1/"
VUE_APP_OSS_SRC = "https://ss1.bdstatic.com"
VUE_APP_OSS_SRC = "https://ss1.bdstatic.com"
.env.production
View file @
52325ffe
...
@@ -2,7 +2,7 @@ NODE_ENV = 'production'
...
@@ -2,7 +2,7 @@ NODE_ENV = 'production'
BASE_URL = 'https://prod.breaker93.com/'
BASE_URL = 'https://prod.breaker93.com/'
VUE_APP_PUBLIC_PATH = './'
VUE_APP_PUBLIC_PATH = './'
VUE_APP_API = 'http
s://prod.breaker93.com/api
'
VUE_APP_API = 'http
://106.2.11.235:38091/api/v1/
'
VUE_APP_OSS_SRC = ''
VUE_APP_OSS_SRC = ''
ACCESS_KEY_ID = 'xxxxxxxxxxxxx'
ACCESS_KEY_ID = 'xxxxxxxxxxxxx'
...
@@ -11,4 +11,4 @@ REGION = 'oss-cn-hangzhou'
...
@@ -11,4 +11,4 @@ REGION = 'oss-cn-hangzhou'
BUCKET = 'staven-prod'
BUCKET = 'staven-prod'
PREFIX = 'staven-blog'
PREFIX = 'staven-blog'
outputDir = 'prod'
outputDir = 'prod'
\ No newline at end of file
src/assets/js/api/unitManage.js
View file @
52325ffe
...
@@ -18,3 +18,14 @@ export function queryAllRegions() {
...
@@ -18,3 +18,14 @@ export function queryAllRegions() {
export
function
queryPlateByRegion
(
param
)
{
export
function
queryPlateByRegion
(
param
)
{
return
xhr
.
get
(
'/bnsregion/bns-region/RegionAndProjectSize'
,
param
)
return
xhr
.
get
(
'/bnsregion/bns-region/RegionAndProjectSize'
,
param
)
}
}
// 楼盘详情查询
export
function
queryPropertyDetail
(
id
)
{
console
.
log
(
id
)
return
xhr
.
get
(
'/bnsproject/bns-project/withProjectAndProduct/selectDetils/'
+
id
)
}
// 根据楼盘Id查询楼盘销售信息---供求数据
export
function
queryPropertySupplyData
(
projectId
)
{
return
xhr
.
get
(
'/bnssale/bns-sale/selectProject'
,
{
projectId
})
}
src/assets/js/public/index.js
0 → 100644
View file @
52325ffe
const
map
=
{
'nxmk'
:
'南向面宽'
,
'qjsmk'
:
'起居室面宽'
,
'zwmk'
:
'主卧面宽'
,
'kwmk'
:
'客卧面宽'
}
// 处理板块数据分析中的 房屋面宽数据 使之对应图表数据结构
export
function
dealHouseData
(
data
)
{
let
Arr
=
[]
let
columArr
=
[
'roomInfo'
]
Object
.
keys
(
map
).
forEach
(
key
=>
{
let
save
=
{}
data
.
forEach
(
item
=>
{
if
(
columArr
.
length
-
1
!==
data
.
length
)
{
columArr
.
push
(
item
.
production
)
}
if
(
!
save
.
roomInfo
)
{
save
.
roomInfo
=
map
[
key
]
}
save
[
item
.
production
]
=
item
[
key
]
})
Arr
.
push
(
save
)
return
{
cloum
:
columArr
,
rows
:
Arr
}
})
}
// 平均化经纬度坐标并返回
export
function
averagePosition
(
array
)
{
let
lng
=
0
let
lat
=
0
array
.
forEach
(
item
=>
{
lng
+=
item
.
longitude
lat
+=
item
.
latitude
})
return
{
longitude
:
(
lng
/
array
.
length
).
toFixed
(
6
),
latitude
:
(
lat
/
array
.
length
).
toFixed
(
6
)
}
}
src/components/Layout/index.vue
View file @
52325ffe
...
@@ -96,7 +96,6 @@ export default {
...
@@ -96,7 +96,6 @@ export default {
},
},
computed
:
{
computed
:
{
routes
()
{
routes
()
{
console
.
log
(
this
.
$router
.
options
.
routes
)
return
this
.
$router
.
options
.
routes
;
return
this
.
$router
.
options
.
routes
;
},
},
},
},
...
...
src/components/asyncSearch/index.vue
View file @
52325ffe
...
@@ -75,14 +75,8 @@
...
@@ -75,14 +75,8 @@
let
result
let
result
if
(
res
.
data
.
flag
===
'plateRegion'
)
{
if
(
res
.
data
.
flag
===
'plateRegion'
)
{
result
=
res
.
data
.
regionByNames
[
0
]
result
=
res
.
data
.
regionByNames
[
0
]
result
.
lng
=
result
.
longitude
result
.
lat
=
result
.
latitude
}
else
{
}
else
{
result
=
res
.
data
.
projectByName
result
=
res
.
data
.
projectByName
result
.
forEach
(
item
=>
{
item
.
lng
=
item
.
longitude
item
.
lat
=
item
.
latitude
})
}
}
window
.
eventBus
.
$emit
(
'searchParamChange'
,
{
window
.
eventBus
.
$emit
(
'searchParamChange'
,
{
type
:
res
.
data
.
flag
,
type
:
res
.
data
.
flag
,
...
...
src/components/bannerDetail/index.vue
View file @
52325ffe
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<el-carousel
:interval=
"5000"
arrow=
"always"
indicator-position=
"outside"
@
change=
"bannerChange"
>
<el-carousel
:interval=
"5000"
arrow=
"always"
indicator-position=
"outside"
@
change=
"bannerChange"
>
<el-carousel-item
class=
"carouselCenter"
v-for=
"(item, index) in bannerData"
:key=
"index"
>
<el-carousel-item
class=
"carouselCenter"
v-for=
"(item, index) in bannerData"
:key=
"index"
>
<viewer
:images=
"[]"
:style=
"
{ width: imgWidth + '%', height: '100%', margin: '0 auto' }">
<viewer
:images=
"[]"
:style=
"
{ width: imgWidth + '%', height: '100%', margin: '0 auto' }">
<img
:src=
"item.
bannerSrc
"
:style=
"
{ width: '100%', height: '100%' }">
<img
:src=
"item.
filePath
"
:style=
"
{ width: '100%', height: '100%' }">
</viewer>
</viewer>
</el-carousel-item>
</el-carousel-item>
</el-carousel>
</el-carousel>
...
...
src/components/mapOverlay/index.vue
View file @
52325ffe
...
@@ -2,8 +2,10 @@
...
@@ -2,8 +2,10 @@
<bm-overlay
<bm-overlay
ref=
"customOverlay"
ref=
"customOverlay"
pane=
"labelPane"
pane=
"labelPane"
@
mouseenter
.
native=
"active = true"
@
mouseleave
.
native=
"active = false"
:class=
"
{'flex': true}"
:class=
"
{'flex': true}"
:style="backGroundType === '
image' ? {} : { width: width + 'px', height: height + 'px', color: textColor, backgroundColor: bgColor
, borderRadius: circle }"
:style="backGroundType === '
waterDrop' ? {} : { width: width + 'px', height: height + 'px', color: textColor, backgroundColor: active ? activeColor : bgColor
, borderRadius: circle }"
@draw="draw">
@draw="draw">
<div
<div
:style=
"
{fontSize: fontSize, fontFamily: 'Arial', textAlign: 'center', fontWeight: 'normal'}"
:style=
"
{fontSize: fontSize, fontFamily: 'Arial', textAlign: 'center', fontWeight: 'normal'}"
...
@@ -19,7 +21,12 @@
...
@@ -19,7 +21,12 @@
<
script
>
<
script
>
export
default
{
export
default
{
name
:
'overlay'
,
name
:
'overlay'
,
props
:
[
'text'
,
'position'
,
'backGroundType'
,
'textColor'
,
'bgColor'
,
'circle'
,
'width'
,
'height'
,
'num'
,
'fontSize'
],
props
:
[
'text'
,
'position'
,
'backGroundType'
,
'textColor'
,
'bgColor'
,
'circle'
,
'width'
,
'height'
,
'num'
,
'fontSize'
,
'activeColor'
],
data
()
{
return
{
active
:
false
}
},
watch
:
{
watch
:
{
position
:
{
position
:
{
handler
()
{
handler
()
{
...
@@ -50,10 +57,8 @@
...
@@ -50,10 +57,8 @@
justify-content: center;
justify-content: center;
align-items: center;
align-items: center;
cursor: pointer;
cursor: pointer;
filter: grayscale(0%)
}
}
.flex:hover{
.flex:hover{
filter: grayscale(50%)
z-index: 9999;
z-index: 9999;
}
}
.centerImage{
.centerImage{
...
...
src/components/multilHeaderTable/index.vue
View file @
52325ffe
...
@@ -28,12 +28,13 @@
...
@@ -28,12 +28,13 @@
<el-row
:class=
"
{'dataCell':true, 'prodName': index
<
2
}"
>
{{
item
.
productionName
}}
</el-row>
<el-row
:class=
"
{'dataCell':true, 'prodName': index
<
2
}"
>
{{
item
.
productionName
}}
</el-row>
<el-col
class=
"productionDetail"
:span=
"12"
v-for=
"(item2,index) in item.productionProperties"
:key=
"index"
>
<el-col
class=
"productionDetail"
:span=
"12"
v-for=
"(item2,index) in item.productionProperties"
:key=
"index"
>
<el-row
v-for=
"(value, key) in dataMap"
:key=
"key"
:class=
"
{ 'dataCell': true, 'imgHeigth': value === 'img'}">
<el-row
v-for=
"(value, key) in dataMap"
:key=
"key"
:class=
"
{ 'dataCell': true, 'imgHeigth': value === 'img'}">
<div
v-if=
"value === 'string'"
>
{{
item2
[
key
]
||
'
无
'
}}
<span
v-if=
"key === 'area'"
>
m
<sup>
2
</sup></span>
</div>
<div
v-if=
"value === 'string'"
>
{{
item2
[
key
]
||
'
--
'
}}
<span
v-if=
"key === 'area'"
>
m
<sup>
2
</sup></span>
</div>
<viewer
:images=
"[]"
v-else-if=
"value === 'img'"
>
<viewer
:images=
"[]"
v-else-if=
"value === 'img'"
>
<img
:src=
"item2[key]"
alt=
""
width=
"50%"
height=
"80"
style=
"cursor:pointer;"
>
<img
:src=
"item2[key]"
alt=
""
width=
"50%"
height=
"80"
style=
"cursor:pointer;"
>
</viewer>
</viewer>
<div
v-else-if=
"value === 'boolean' && item2[key] == 1"
class=
"circle block"
></div>
<div
v-else-if=
"value === 'boolean' && item2[key] == 1"
class=
"circle block"
></div>
<div
v-else-if=
"value === 'boolean' && item2[key] == 0"
class=
"circle hollow"
></div>
<div
v-else-if=
"value === 'boolean' && item2[key] == 0"
class=
"circle hollow"
></div>
<div
v-else-if=
"value === 'boolean' && item2[key] == undefined"
class=
"circle hollow"
></div>
</el-row>
</el-row>
</el-col>
</el-col>
</el-col>
</el-col>
...
@@ -42,12 +43,13 @@
...
@@ -42,12 +43,13 @@
<div
class=
"table_body"
v-else
:style=
"
{ width: bodyWidth + '%'}">
<div
class=
"table_body"
v-else
:style=
"
{ width: bodyWidth + '%'}">
<el-col
:span=
"24"
style=
"min-width: 120px"
>
<el-col
:span=
"24"
style=
"min-width: 120px"
>
<el-row
v-for=
"(value, key) in dataMap"
:key=
"key"
:class=
"
{ 'dataCell': true, 'imgHeigth': value === 'img' }">
<el-row
v-for=
"(value, key) in dataMap"
:key=
"key"
:class=
"
{ 'dataCell': true, 'imgHeigth': value === 'img' }">
<div
v-if=
"value === 'string'"
>
{{
tableData
[
key
]
||
'
无
'
}}
</div>
<div
v-if=
"value === 'string'"
>
{{
tableData
[
key
]
||
'
--
'
}}
</div>
<viewer
:images=
"[]"
v-else-if=
"value === 'img'"
>
<viewer
:images=
"[]"
v-else-if=
"value === 'img'"
>
<img
:src=
"tableData[key] ? tableData[key] : tableData['bannerSrc']"
alt=
""
width=
"30%"
height=
"80"
style=
"cursor:pointer;"
>
<img
:src=
"tableData[key] ? tableData[key] : tableData['bannerSrc']"
alt=
""
width=
"30%"
height=
"80"
style=
"cursor:pointer;"
>
</viewer>
</viewer>
<div
v-else-if=
"value === 'boolean' && tableData[key] == 1"
class=
"circle block"
></div>
<div
v-else-if=
"value === 'boolean' && tableData[key] == 1"
class=
"circle block"
></div>
<div
v-else-if=
"value === 'boolean' && tableData[key] == 0"
class=
"circle hollow"
></div>
<div
v-else-if=
"value === 'boolean' && tableData[key] == 0"
class=
"circle hollow"
></div>
<div
v-else-if=
"value === 'boolean' && tableData[key] == undefined"
>
--
</div>
</el-row>
</el-row>
</el-col>
</el-col>
</div>
</div>
...
@@ -78,38 +80,41 @@
...
@@ -78,38 +80,41 @@
data
()
{
data
()
{
return
{
return
{
dataMap
:{
dataMap
:{
area
:
'string'
,
'unitArea'
:
'string'
,
hxImg
:
'img'
,
'filePath'
:
'img'
,
kj
:
'string'
,
'bayNumber'
:
'string'
,
js
:
'string'
,
'roomNumber'
:
'string'
,
ting
:
'string'
,
'hallNumber'
:
'string'
,
wsj
:
'string'
,
'toiletNumber'
:
'string'
,
nxmk
:
'string'
,
'southWidth'
:
'string'
,
qjsmk
:
'string'
,
'liveRoomWidth'
:
'string'
,
zwmk
:
'string'
,
'masterRoomWidth'
:
'string'
,
kwmk
:
'string'
,
'guestRoomWidth'
:
'string'
,
QJSDGHT
:
'boolean'
,
'liveRoom-largeHorizontalHall'
:
'boolean'
,
// 起居室
QJSWSYT
:
'boolean'
,
'liveRoom-balcony'
:
'boolean'
,
QJSLDK
:
'boolean'
,
'liveRoom-LDK'
:
'boolean'
,
ZWZW
:
'boolean'
,
'masterRoom-masterBathRoom'
:
'boolean'
,
// 主卧
ZWYMJ
:
'boolean'
,
'masterRoom-cloakRoom'
:
'boolean'
,
KWKW
:
'boolean'
,
'masterRoom-brightBathRoom'
:
'boolean'
,
CFLDK
:
'boolean'
,
'masterRoom-dryWetDepart'
:
'boolean'
,
CFZXCFL
:
'boolean'
,
'masterRoom-function'
:
'string'
,
CFDLDX
:
'boolean'
,
'guestRoom-guestBathRoom'
:
'boolean'
,
// 客卧
CFXS
:
'string'
,
'kitchen-LDK'
:
'boolean'
,
// 厨房
CTLDK
:
'boolean'
,
'kitchen-SCWesternCook'
:
'boolean'
,
CTDLKC
:
'boolean'
,
'kitchen-hallwayCFDX'
:
'boolean'
,
SF
:
'string'
,
'kitchen-kitchenStyle'
:
'string'
,
WSJMW
:
'boolean'
,
'restaurant-LDK'
:
'boolean'
,
// 餐厅
WSJGSFL
:
'boolean'
,
'restaurant-independentWindow'
:
'boolean'
,
WSJGN
:
'string'
,
'bookRoom-wideHallSingleGuard'
:
'string'
,
// 书房
YT
:
'boolean'
,
'restRoom-masterBathRoom'
:
'boolean'
,
// 卫生间
YTWZ
:
'string'
,
'restRoom-dryWetDepart'
:
'boolean'
,
CCJ
:
'boolean'
,
'restRoom-function'
:
'string'
,
JZJ
:
'boolean'
,
'balcony-designHalcony'
:
'boolean'
,
// 阳台
XG
:
'boolean'
,
'balcony-location'
:
'string'
,
XGCFDX
:
'boolean'
'storeRoom-designStoreRoom'
:
'boolean'
,
//储藏间
'houseSpace-designHouseSpace'
:
'boolean'
,
// 家政间
'hallway-designHallway'
:
'boolean'
,
// 玄关
'hallway-designHallwayCFDX'
:
'boolean'
}
}
}
}
}
}
...
@@ -160,7 +165,7 @@
...
@@ -160,7 +165,7 @@
line-height 85px
line-height 85px
}
}
.dealHeigth{
.dealHeigth{
line-height 3
4
px
line-height 3
2
px
}
}
}
}
.table_body {
.table_body {
...
...
src/views/ProductAnalysis/index.vue
View file @
52325ffe
...
@@ -3,12 +3,12 @@
...
@@ -3,12 +3,12 @@
<section
class=
"ProductAnalysis"
>
<section
class=
"ProductAnalysis"
>
<div
class=
"header"
>
<div
class=
"header"
>
<el-col
:span=
"4"
>
<el-col
:span=
"4"
>
<el-select
v-model=
"regionVal"
placeholder=
"行政区"
>
<el-select
v-model=
"regionVal"
@
change=
"changePlateForRegion"
placeholder=
"行政区"
>
<el-option
<el-option
v-for=
"item in regionOptions"
v-for=
"item in regionOptions"
:key=
"item.
value
"
:key=
"item.
adminRegionId
"
:label=
"item.
label
"
:label=
"item.
adminRegionName
"
:value=
"item.
valu
e"
>
:value=
"item.
adminRegionNam
e"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-col>
</el-col>
...
@@ -16,9 +16,9 @@
...
@@ -16,9 +16,9 @@
<el-select
v-model=
"plateVal"
placeholder=
"板块名"
>
<el-select
v-model=
"plateVal"
placeholder=
"板块名"
>
<el-option
<el-option
v-for=
"item in plateOptions"
v-for=
"item in plateOptions"
:key=
"item.
value
"
:key=
"item.
regionId
"
:label=
"item.
label
"
:label=
"item.
regionName
"
:value=
"item.
valu
e"
>
:value=
"item.
regionNam
e"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-col>
</el-col>
...
@@ -143,6 +143,7 @@
...
@@ -143,6 +143,7 @@
import
tableHeader
from
"./tableHeader"
;
import
tableHeader
from
"./tableHeader"
;
import
multiHeaderTable
from
'@comp/multilHeaderTable'
import
multiHeaderTable
from
'@comp/multilHeaderTable'
import
{
demoData
}
from
"./tableHeader"
;
import
{
demoData
}
from
"./tableHeader"
;
import
{
getRegionPlate
}
from
"../../assets/js/api/plateSupplyManage"
;
export
default
{
export
default
{
name
:
"ProductAnalysis"
,
name
:
"ProductAnalysis"
,
components
:{
components
:{
...
@@ -218,21 +219,34 @@
...
@@ -218,21 +219,34 @@
plateOptions
:
[],
plateOptions
:
[],
plateVal
:
''
,
plateVal
:
''
,
timeOptions
:
[],
timeOptions
:
[],
timeVal
:
''
,
timeVal
:
2020
,
houseTypeOptions
:
[],
houseTypeOptions
:
[],
houseTypeVal
:
''
,
houseTypeVal
:
''
,
areaInterval
:
''
,
areaInterval
:
''
,
areaIntervalData
:
[],
areaIntervalData
:
[],
showMode
:
0
,
showMode
:
0
,
colorsArr
:
colors
,
colorsArr
:
colors
,
headerTable
:
tableHeader
headerTable
:
tableHeader
,
plateMap
:
{
}
}
},
methods
:
{
changePlateForRegion
(
region
)
{
this
.
plateVal
=
''
if
(
this
.
plateMap
[
region
]
&&
this
.
plateMap
[
region
].
length
>
0
)
{
this
.
plateOptions
=
this
.
plateMap
[
region
]
}
else
{
this
.
plateOptions
=
[]
}
}
}
},
},
created
()
{
created
()
{
window
.
eventBus
.
$on
(
'searchParamChange'
,
(
houseData
)
=>
{
window
.
eventBus
.
$on
(
'searchParamChange'
,
(
searchResult
)
=>
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/regionalPlate'
,
path
:
'/regionalPlate'
,
query
:
houseData
query
:
searchResult
})
})
})
})
},
},
...
@@ -240,7 +254,29 @@
...
@@ -240,7 +254,29 @@
demo
()
{
demo
()
{
return
demoData
return
demoData
}
}
},
beforeMount
()
{
for
(
let
i
=
2000
;
i
<=
2020
;
i
++
)
{
this
.
timeOptions
.
push
({
value
:
i
,
label
:
i
+
'年'
})
}
getRegionPlate
().
then
(
res
=>
{
this
.
regionOptions
=
res
.
data
res
.
data
.
forEach
(
item
=>
{
if
(
!
this
.
plateMap
[
item
.
adminRegionName
])
{
this
.
plateMap
[
item
.
adminRegionName
]
=
item
.
resultRegionDTOS
}
if
(
item
.
resultRegionDTOS
&&
item
.
resultRegionDTOS
.
length
>
0
&&
!
this
.
regionVal
&&
!
this
.
plateVal
)
{
this
.
plateOptions
=
item
.
resultRegionDTOS
this
.
regionVal
=
item
.
adminRegionName
this
.
plateVal
=
item
.
resultRegionDTOS
[
0
].
regionName
}
})
})
}
}
}
}
</
script
>
</
script
>
...
...
src/views/ProductAnalysis/tableHeader.js
View file @
52325ffe
...
@@ -50,7 +50,10 @@ export default [
...
@@ -50,7 +50,10 @@ export default [
trName
:
'主卧'
,
trName
:
'主卧'
,
children
:
[
children
:
[
{
trName
:
'主卫'
},
{
trName
:
'主卫'
},
{
trName
:
'衣帽间'
}
{
trName
:
'衣帽间'
},
{
trName
:
'明卫'
},
{
trName
:
'是否干湿分离'
},
{
trName
:
'功能'
},
]
]
},
},
{
{
...
@@ -340,37 +343,3 @@ export const demoData = [
...
@@ -340,37 +343,3 @@ export const demoData = [
]
]
},
},
]
]
export
const
demoDataObject
=
{
area
:
'100'
,
hxImg
:
require
(
'@assets/img/zlhx.png'
),
kj
:
'3'
,
js
:
'3'
,
ting
:
'3'
,
wsj
:
'3'
,
nxmk
:
'3'
,
qjsmk
:
'3'
,
zwmk
:
'3'
,
kwmk
:
'3'
,
QJSDGHT
:
1
,
QJSWSYT
:
1
,
QJSLDK
:
0
,
ZWZW
:
0
,
ZWYMJ
:
0
,
KWKW
:
1
,
CFLDK
:
0
,
CFZXCFL
:
1
,
CFDLDX
:
1
,
CFXS
:
'L型'
,
CTLDK
:
1
,
CTDLKC
:
1
,
SF
:
'大宽厅'
,
WSJMW
:
1
,
WSJGSFL
:
1
,
WSJGN
:
'三件套'
,
YT
:
1
,
YTWZ
:
'起居室'
,
CCJ
:
1
,
JZJ
:
1
,
XG
:
1
,
XGCFDX
:
1
}
src/views/RegionalPlate/demoData.js
View file @
52325ffe
export
const
regionData
=
[
export
const
regionData
=
[
{
{
l
ng
:
117.200
,
l
ongitude
:
117.200
,
lat
:
39.133
,
lat
itude
:
39.133
,
text
:
'西青区'
,
text
:
'西青区'
,
number
:
0
number
:
0
},
},
{
{
l
ng
:
117.100
,
l
ongitude
:
117.100
,
lat
:
39.233
,
lat
itude
:
39.233
,
text
:
'行政区2'
,
text
:
'行政区2'
,
number
:
5
,
number
:
5
,
children
:
[
children
:
[
{
{
l
ng
:
117.107
,
l
ongitude
:
117.107
,
lat
:
39.228
,
lat
itude
:
39.228
,
text
:
'第一板块'
,
text
:
'第一板块'
,
number
:
2
,
number
:
2
,
radius
:
1500
,
radius
:
1500
,
children
:
[
resultBnsProjectDTOS
:
[
{
{
l
ng
:
117.106
,
l
ongitude
:
117.106
,
lat
:
39.2281
,
lat
itude
:
39.2281
,
text
:
'楼盘1'
,
text
:
'楼盘1'
,
state
:
0
state
:
0
},
},
{
{
l
ng
:
117.1074
,
l
ongitude
:
117.1074
,
lat
:
39.2286
,
lat
itude
:
39.2286
,
text
:
'楼盘2'
,
text
:
'楼盘2'
,
state
:
1
state
:
1
}
}
]
]
},
},
{
{
l
ng
:
117.104
,
l
ongitude
:
117.104
,
lat
:
39.217
,
lat
itude
:
39.217
,
text
:
'第二板块'
,
text
:
'第二板块'
,
number
:
2
,
number
:
2
,
radius
:
1500
,
radius
:
1500
,
children
:
[
resultBnsProjectDTOS
:
[
{
{
l
ng
:
117.1048
,
l
ongitude
:
117.1048
,
lat
:
39.2168
,
lat
itude
:
39.2168
,
text
:
'楼盘1'
,
text
:
'楼盘1'
,
state
:
1
state
:
1
},
},
{
{
l
ng
:
117.105
,
l
ongitude
:
117.105
,
lat
:
39.2167
,
lat
itude
:
39.2167
,
text
:
'楼盘2'
,
text
:
'楼盘2'
,
state
:
1
state
:
1
}
}
...
@@ -56,8 +56,8 @@ export const regionData = [
...
@@ -56,8 +56,8 @@ export const regionData = [
]
]
},
},
{
{
l
ng
:
117.300
,
l
ongitude
:
117.300
,
lat
:
39.333
,
lat
itude
:
39.333
,
text
:
'行政区3'
,
text
:
'行政区3'
,
number
:
0
number
:
0
}
}
...
...
src/views/RegionalPlate/index.vue
View file @
52325ffe
...
@@ -15,13 +15,14 @@
...
@@ -15,13 +15,14 @@
@
click
.
native
.
stop=
"setShowToPlate(item)"
@
click
.
native
.
stop=
"setShowToPlate(item)"
:key=
"index + 'region'"
:key=
"index + 'region'"
v-for=
"(item,index) in dataType.region"
v-for=
"(item,index) in dataType.region"
:position=
"
{lng: item.l
ng, lat: item.lat
}"
:position=
"
{lng: item.l
ongitude, lat: item.latitude
}"
:back-ground-type="'color'"
:back-ground-type="'color'"
:text="item.text"
:text="item.text"
:num="item.number"
:num="item.number"
:text-color="'#ffffff'"
:text-color="'#ffffff'"
:fontSize="16"
:fontSize="16"
:bg-color="'rgb(25,124,230)'"
:bg-color="'rgba(25,124,230, 0.6)'"
:active-color="'rgba(25,124,230,1)'"
:bg-img-url="null"
:bg-img-url="null"
:circle="'50%'"
:circle="'50%'"
:width="90"
:width="90"
...
@@ -33,40 +34,31 @@
...
@@ -33,40 +34,31 @@
@
click
.
native
.
stop=
"setShowToPlateRegion(item, 'plateRegion')"
@
click
.
native
.
stop=
"setShowToPlateRegion(item, 'plateRegion')"
:key=
"index + 'plate'"
:key=
"index + 'plate'"
v-for=
"(item,index) in dataType.plate"
v-for=
"(item,index) in dataType.plate"
:position=
"
{lng: item.l
ng, lat: item.lat
}"
:position=
"
{lng: item.l
ongitude, lat: item.latitude
}"
:back-ground-type="'color'"
:back-ground-type="'color'"
:text="item.text"
:text="item.text"
:num="item.number"
:num="item.number"
:fontSize="14"
:fontSize="14"
:text-color="'#ffffff'"
:text-color="'#ffffff'"
:bg-color="'rgb(25,124,230)'"
:bg-color="'rgba(25,124,230,0.6)'"
:active-color="'rgba(25,124,230,1)'"
:bg-img-url="null"
:bg-img-url="null"
:circle="'50%'"
:circle="'50%'"
:width="70"
:width="70"
:height="70"
:height="70"
>
</my-overlay>
>
</my-overlay>
<!-- 蓝色圆形组件=======楼盘-->
<bm-circle
:fill-color=
"'rgb(224,234,244)'"
:stroke-color=
"'rgb(43,115,175)'"
v-show=
"showType === 'plateRegion'"
:center=
"circleCenter"
:radius=
"radius"
stroke-color=
"blue"
:stroke-opacity=
"1"
:fill-opacity=
"0"
:stroke-weight=
"1"
></bm-circle>
<my-overlay
<my-overlay
v-show=
"showType === 'plateRegion' && state !== '' ? ( state === 'all' ? true : ( state == item.state ? true : false ) ) : false"
v-show=
"showType === 'plateRegion' && state !== '' ? ( state === 'all' ? true : ( state == item.state ? true : false ) ) : false"
@
click
.
native=
"ShowInfo(item)"
@
click
.
native=
"ShowInfo(item)"
:key=
"index + 'plateRegion'"
:key=
"index + 'plateRegion'"
v-for=
"(item,index) in dataType.plateRegion.resultBnsProjectDTOS"
v-for=
"(item,index) in dataType.plateRegion.resultBnsProjectDTOS"
:position=
"
{lng: item.l
ng, lat: item.lat
}"
:position=
"
{lng: item.l
ongitude, lat: item.latitude
}"
:back-ground-type="'color'"
:back-ground-type="'color'"
:text="item.text"
:text="item.text"
:fontSize="12"
:fontSize="12"
:text-color="'#ffffff'"
:text-color="'#ffffff'"
:bg-color="item.state === 0 ? 'rgb(25,124,230)' : 'rgb(169,209,142)'"
:bg-color="item.state === 0 ? 'rgb(25,124,230,0.6)' : 'rgb(169,209,142,0.6)'"
:active-color="item.state === 0 ? 'rgb(25,124,230,1)' : 'rgb(169,209,142,1)'"
:bg-img-url="null"
:bg-img-url="null"
:circle="'10px'"
:circle="'10px'"
:width="80"
:width="80"
...
@@ -82,7 +74,7 @@
...
@@ -82,7 +74,7 @@
@
click
.
native=
"showTowerInfo(item)"
@
click
.
native=
"showTowerInfo(item)"
:key=
"index + 'property'"
:key=
"index + 'property'"
v-for=
"(item,index) in dataType.property"
v-for=
"(item,index) in dataType.property"
:position=
"
{lng: item.l
ng, lat: item.lat
}"
:position=
"
{lng: item.l
ongitude, lat: item.latitude
}"
:back-ground-type="'waterDrop'"
:back-ground-type="'waterDrop'"
:text="item.name"
:text="item.name"
:text-color="'#ffffff'"
:text-color="'#ffffff'"
...
@@ -110,7 +102,7 @@
...
@@ -110,7 +102,7 @@
{{
item
.
title
}}
{{
item
.
title
}}
</div>
</div>
<div
:class=
"
{'plateRegionDetailShowContainer': true }">
<div
:class=
"
{'plateRegionDetailShowContainer': true }">
{{
dataType
.
plateRegion
[
item
.
prop
]
||
'
无
'
}}
{{
dataType
.
plateRegion
[
item
.
prop
]
||
'
---
'
}}
</div>
</div>
</el-col>
</el-col>
</div>
</div>
...
@@ -153,13 +145,13 @@
...
@@ -153,13 +145,13 @@
<div
v-else-if=
"showType === 'property'"
class=
"dealWidth"
>
<div
v-else-if=
"showType === 'property'"
class=
"dealWidth"
>
<div
class=
"searchDetailFlex"
>
<div
class=
"searchDetailFlex"
>
<img
style=
"cursor: pointer"
@
click=
"toPropertyDetail"
height=
"200"
:src=
"require('@assets/img/loupan.png')"
alt=
""
>
<img
style=
"cursor: pointer"
@
click=
"toPropertyDetail"
height=
"200"
:src=
"require('@assets/img/loupan.png')"
alt=
""
>
<p
@
click=
"toPropertyDetail"
class=
"propertyName"
>
{{
propertyDetailData
.
name
||
'
楼房名称
'
}}
</p>
<p
@
click=
"toPropertyDetail"
class=
"propertyName"
>
{{
propertyDetailData
.
name
||
'
---
'
}}
</p>
<p
class=
"propertyDetail"
v-html=
"'价格'+':' + propertyDetailData.price + '/m
<sup>
2
</sup>
'">
</p>
<p
class=
"propertyDetail"
v-html=
"'价格'+':' + propertyDetailData.price + '/m
<sup>
2
</sup>
'">
</p>
<p
class=
"propertyDetail"
>
{{
'产品类型'
+
':'
+
propertyDetailData
.
productType
}}
</p>
<p
class=
"propertyDetail"
>
{{
'产品类型'
+
':'
+
propertyDetailData
.
productType
}}
</p>
<p
class=
"propertyDetail"
<p
class=
"propertyDetail"
v-for=
"(val, key, index) in propertyDetailDataMap"
v-for=
"(val, key, index) in propertyDetailDataMap"
:key=
"index"
:key=
"index"
v-html=
"val
+ ':' +propertyDetailData[key]
"
>
v-html=
"val
.name + ':' + (propertyDetailData[key] || '---') + val.defaultSetting
"
>
</p>
</p>
</div>
</div>
</div>
</div>
...
@@ -178,6 +170,7 @@
...
@@ -178,6 +170,7 @@
import
MyOverlay
from
'@comp/mapOverlay'
import
MyOverlay
from
'@comp/mapOverlay'
import
propertyControll
from
'@comp/propertyControll'
import
propertyControll
from
'@comp/propertyControll'
import
{
queryAllRegions
}
from
"../../assets/js/api/unitManage"
;
import
{
queryAllRegions
}
from
"../../assets/js/api/unitManage"
;
import
{
averagePosition
}
from
"../../assets/js/public"
;
export
default
{
export
default
{
name
:
'RegionalPlate'
,
name
:
'RegionalPlate'
,
components
:
{
components
:
{
...
@@ -203,11 +196,6 @@
...
@@ -203,11 +196,6 @@
},
// 四种的楼房显示类型 数据预览
},
// 四种的楼房显示类型 数据预览
allData
:
[],
allData
:
[],
showType
:
'region'
,
// 控制楼房显示的变量
showType
:
'region'
,
// 控制楼房显示的变量
circleCenter
:
{
lng
:
0
,
lat
:
0
},
// 若为板块区域详情,圆环的坐标点中心
radius
:
1000
,
// 若为板块区域详情、圆环的半径
zoomType
:
{
zoomType
:
{
region
:
11
,
region
:
11
,
plate
:
12
,
plate
:
12
,
...
@@ -225,10 +213,22 @@
...
@@ -225,10 +213,22 @@
propertyDetailData
:
{
propertyDetailData
:
{
},
// 搜索后点击楼盘 展示详情数据
},
// 搜索后点击楼盘 展示详情数据
propertyDetailDataMap
:
{
propertyDetailDataMap
:
{
landArea
:
'占地面积'
,
landArea
:
{
totalArea
:
'建筑面积'
,
name
:
'占地面积'
,
plotRatio
:
'容积率'
,
defaultSetting
:
'm<sup>2</sup>'
openTime
:
'开盘时间'
},
totalArea
:
{
name
:
'建筑面积'
,
defaultSetting
:
'm<sup>2</sup>'
},
plotRatio
:
{
name
:
'容积率'
,
defaultSetting
:
''
},
openTime
:
{
name
:
'开盘时间'
,
defaultSetting
:
''
}
}
// key/value 对应
}
// key/value 对应
}
}
},
},
...
@@ -242,13 +242,13 @@
...
@@ -242,13 +242,13 @@
ShowInfo
(
item
)
{
ShowInfo
(
item
)
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/propertiesDetail'
,
path
:
'/propertiesDetail'
,
query
:
item
query
:
{
propertyId
:
item
.
businessId
}
})
})
},
},
toPropertyDetail
()
{
toPropertyDetail
()
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/propertiesDetail'
,
path
:
'/propertiesDetail'
,
query
:
this
.
propertyDetailData
query
:
{
propertyId
:
this
.
propertyDetailData
.
businessId
}
})
})
},
},
showTowerInfo
(
item
)
{
showTowerInfo
(
item
)
{
...
@@ -265,19 +265,18 @@
...
@@ -265,19 +265,18 @@
return
return
}
}
this
.
showType
=
'plate'
this
.
showType
=
'plate'
this
.
map
.
center
.
lng
=
item
.
l
ng
this
.
map
.
center
.
lng
=
item
.
l
ongitude
this
.
map
.
center
.
lat
=
item
.
lat
this
.
map
.
center
.
lat
=
item
.
lat
itude
this
.
map
.
setZoom
=
this
.
zoomType
[
'plate'
]
this
.
map
.
setZoom
=
this
.
zoomType
[
'plate'
]
this
.
dataType
[
'plate'
]
=
item
.
children
?
item
.
children
:
[]
this
.
dataType
[
'plate'
]
=
item
.
children
?
item
.
children
:
[]
},
},
setShowToPlateRegion
(
item
)
{
setShowToPlateRegion
(
item
)
{
console
.
log
(
item
)
this
.
showType
=
'plateRegion'
this
.
showType
=
'plateRegion'
this
.
map
.
center
.
lng
=
item
.
l
ng
this
.
map
.
center
.
lng
=
item
.
l
ongitude
this
.
map
.
center
.
lat
=
item
.
lat
this
.
map
.
center
.
lat
=
item
.
lat
itude
this
.
map
.
setZoom
=
this
.
zoomType
[
'plateRegion'
]
this
.
map
.
setZoom
=
this
.
zoomType
[
'plateRegion'
]
this
.
dataType
[
'plateRegion'
]
=
item
.
children
?
item
.
children
:
[]
this
.
dataType
[
'plateRegion'
].
resultBnsProjectDTOS
=
item
.
resultBnsProjectDTOS
?
item
.
resultBnsProjectDTOS
:
[]
this
.
circleCenter
=
{
lng
:
item
.
lng
,
lat
:
item
.
lat
}
this
.
radius
=
item
.
radius
?
item
.
radius
:
1000
this
.
detailShow
=
true
this
.
detailShow
=
true
},
},
zoomChanged
({
type
,
target
})
{
zoomChanged
({
type
,
target
})
{
...
@@ -294,26 +293,30 @@
...
@@ -294,26 +293,30 @@
return
type
return
type
},
},
mapLoaded
()
{
mapLoaded
()
{
if
(
this
.
$router
.
query
)
{
if
(
this
.
$route
.
query
)
{
console
.
log
(
this
.
$router
.
query
)
const
searchResult
=
this
.
$route
.
query
if
(
searchResult
.
type
===
'plateRegion'
)
{
this
.
showType
=
'plateRegion'
this
.
map
.
center
.
lng
=
searchResult
.
data
.
longitude
this
.
map
.
center
.
lat
=
searchResult
.
data
.
latitude
this
.
map
.
setZoom
=
this
.
zoomType
.
plateRegion
this
.
dataType
.
plateRegion
=
searchResult
.
data
console
.
log
(
this
.
dataType
.
plateRegion
)
}
else
{
this
.
showType
=
'property'
this
.
map
.
center
.
lng
=
averagePosition
(
searchResult
.
data
).
longitude
this
.
map
.
center
.
lat
=
averagePosition
(
searchResult
.
data
).
latitude
this
.
map
.
setZoom
=
this
.
zoomType
.
property
this
.
dataType
.
property
=
searchResult
.
data
this
.
propertyDetailData
=
this
.
dataType
.
property
[
0
]
console
.
log
(
this
.
propertyDetailData
)
}
}
else
{
}
else
{
// 若无传递值 则查询全部行政区及其下属数目信息
// 若无传递值 则查询全部行政区及其下属数目信息
queryAllRegions
().
then
(
res
=>
{
queryAllRegions
().
then
(
res
=>
{
console
.
log
(
res
)
console
.
log
(
res
)
})
})
}
}
},
average
(
array
)
{
let
lng
=
0
let
lat
=
0
array
.
forEach
(
item
=>
{
lng
+=
item
.
lng
lat
+=
item
.
lat
})
return
{
lng
:
(
lng
/
array
.
length
).
toFixed
(
6
),
lat
:
(
lat
/
array
.
length
).
toFixed
(
6
)
}
}
}
},
},
mounted
()
{
mounted
()
{
...
@@ -326,17 +329,15 @@
...
@@ -326,17 +329,15 @@
window
.
eventBus
.
$on
(
'searchParamChange'
,
(
searchResult
)
=>
{
window
.
eventBus
.
$on
(
'searchParamChange'
,
(
searchResult
)
=>
{
if
(
searchResult
.
type
===
'plateRegion'
)
{
if
(
searchResult
.
type
===
'plateRegion'
)
{
this
.
showType
=
'plateRegion'
this
.
showType
=
'plateRegion'
this
.
map
.
center
.
lng
=
searchResult
.
data
.
lng
this
.
map
.
center
.
lng
=
searchResult
.
data
.
longitude
this
.
map
.
center
.
lat
=
searchResult
.
data
.
lat
this
.
map
.
center
.
lat
=
searchResult
.
data
.
latitude
this
.
circleCenter
=
{
lng
:
searchResult
.
data
.
lng
,
lat
:
searchResult
.
data
.
lat
}
this
.
circle
=
1000
this
.
map
.
setZoom
=
this
.
zoomType
.
plateRegion
this
.
map
.
setZoom
=
this
.
zoomType
.
plateRegion
this
.
dataType
.
plateRegion
=
searchResult
.
data
this
.
dataType
.
plateRegion
=
searchResult
.
data
console
.
log
(
this
.
dataType
.
plateRegion
)
console
.
log
(
this
.
dataType
.
plateRegion
)
}
else
{
}
else
{
this
.
showType
=
'property'
this
.
showType
=
'property'
this
.
map
.
center
.
lng
=
this
.
average
(
searchResult
.
data
).
lng
this
.
map
.
center
.
lng
=
averagePosition
(
searchResult
.
data
).
longitude
this
.
map
.
center
.
lat
=
this
.
average
(
searchResult
.
data
).
lat
this
.
map
.
center
.
lat
=
averagePosition
(
searchResult
.
data
).
latitude
this
.
map
.
setZoom
=
this
.
zoomType
.
property
this
.
map
.
setZoom
=
this
.
zoomType
.
property
this
.
dataType
.
property
=
searchResult
.
data
this
.
dataType
.
property
=
searchResult
.
data
this
.
propertyDetailData
=
this
.
dataType
.
property
[
0
]
this
.
propertyDetailData
=
this
.
dataType
.
property
[
0
]
...
...
src/views/plateSupplyData/index.vue
View file @
52325ffe
...
@@ -124,7 +124,7 @@
...
@@ -124,7 +124,7 @@
colorArr
:
colors
,
colorArr
:
colors
,
plateMap
:
{
plateMap
:
{
}
}
// 行政区名称对应
}
}
},
},
methods
:
{
methods
:
{
...
@@ -153,8 +153,7 @@
...
@@ -153,8 +153,7 @@
this
.
plateVal
=
''
this
.
plateVal
=
''
if
(
this
.
plateMap
[
region
]
&&
this
.
plateMap
[
region
].
length
>
0
)
{
if
(
this
.
plateMap
[
region
]
&&
this
.
plateMap
[
region
].
length
>
0
)
{
this
.
plateOptions
=
this
.
plateMap
[
region
]
this
.
plateOptions
=
this
.
plateMap
[
region
]
}
}
else
{
else
{
this
.
plateOptions
=
[]
this
.
plateOptions
=
[]
}
}
}
}
...
@@ -180,7 +179,15 @@
...
@@ -180,7 +179,15 @@
})
})
this
.
getSupplyData
()
this
.
getSupplyData
()
})
})
}
},
created
()
{
window
.
eventBus
.
$on
(
'searchParamChange'
,
(
searchResult
)
=>
{
this
.
$router
.
push
({
path
:
'/regionalPlate'
,
query
:
searchResult
})
})
},
}
}
</
script
>
</
script
>
...
...
src/views/propertiesDetail/index.vue
View file @
52325ffe
This diff is collapsed.
Click to expand it.
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