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
ea8971c0
Commit
ea8971c0
authored
Jul 01, 2020
by
wangjiankun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 异步查询搜索框与后台联动,在户型查询页面的搜索显示无问题、
fix: 覆盖物样式调整
parent
1156b46e
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
382 additions
and
127 deletions
+382
-127
unitManage.js
src/assets/js/api/unitManage.js
+20
-0
index.vue
src/components/asyncSearch/index.vue
+60
-9
index.vue
src/components/bannerDetail/index.vue
+7
-2
index.vue
src/components/mapOverlay/index.vue
+10
-21
index.vue
src/components/multilHeaderTable/index.vue
+1
-1
index.js
src/plugins/router/index.js
+1
-1
demoData.js
src/views/RegionalPlate/demoData.js
+1
-7
index.vue
src/views/RegionalPlate/index.vue
+107
-47
index.vue
src/views/plateSupplyData/index.vue
+1
-1
index.vue
src/views/propertiesDetail/index.vue
+169
-33
staticData.js
src/views/propertiesDetail/staticData.js
+5
-5
No files found.
src/assets/js/api/unitManage.js
0 → 100644
View file @
ea8971c0
import
xhr
from
'@utils/http'
// 查询全部板块与楼盘信息
export
function
asyncSearch
()
{
return
xhr
.
get
(
'/bnsregion/bns-region/mesName'
)
}
// 根据板块/楼盘名字查询指定板块/楼盘
export
function
queryDetailByName
(
name
)
{
return
xhr
.
get
(
'/bnsregion/bns-region/mesByName'
,
{
name
})
}
// 查询全部行政区及下属信息
export
function
queryAllRegions
()
{
return
xhr
.
get
(
'/bnsregion/bns-region/adminAndRegion'
)
}
// 根据行政区信息查询下属 楼盘/板块
export
function
queryPlateByRegion
(
param
)
{
return
xhr
.
get
(
'/bnsregion/bns-region/RegionAndProjectSize'
,
param
)
}
src/components/asyncSearch/index.vue
View file @
ea8971c0
...
...
@@ -9,8 +9,8 @@
placeholder=
"请输入内容"
@
select=
"handleSelect"
>
<template
slot-scope=
"
{ item }">
<div
style=
"float: left"
>
{{
item
.
text
}}
</div>
<span
style=
"float: right;font-size: 13px;color: #8492a6"
>
{{
item
.
t
ype
}}
</span>
<div
style=
"float: left"
>
{{
item
.
name
}}
</div>
<span
style=
"float: right;font-size: 13px;color: #8492a6"
>
{{
item
.
t
ips
}}
</span>
</
template
>
</el-autocomplete>
<el-button
type=
"primary"
@
click=
"searchEmit"
>
搜索
</el-button>
...
...
@@ -18,26 +18,77 @@
</template>
<
script
>
import
{
asyncSearch
,
queryDetailByName
}
from
"../../assets/js/api/unitManage"
;
export
default
{
name
:
"search"
,
data
()
{
return
{
search
:
''
,
selectData
:
''
selectData
:
''
,
dataMap
:
{
lng
:
''
,
lat
:
''
,
}
}
},
methods
:
{
querySearchAsync
(
queryString
,
cb
)
{
const
result
=
[
{
lng
:
117.200
,
lat
:
39.133
,
text
:
'好楼盘'
,
type
:
'楼盘'
},
{
lng
:
117.200
,
lat
:
39.133
,
text
:
'好楼盘2'
,
type
:
'板块'
}
]
cb
(
result
)
querySearchAsync
(
queryString
,
callback
)
{
console
.
log
(
queryString
)
asyncSearch
().
then
(
res
=>
{
let
property
=
[]
let
region
=
[]
res
.
data
.
projectName
.
forEach
(
item
=>
{
property
.
push
({
name
:
item
,
type
:
'property'
,
tips
:
'楼盘'
})
})
res
.
data
.
regionName
.
forEach
(
item
=>
{
region
.
push
({
name
:
item
,
type
:
'regionPlate'
,
tips
:
'板块'
})
})
const
result
=
new
Array
().
concat
(...
property
,
...
region
).
filter
(
item
=>
{
return
item
.
name
.
indexOf
(
queryString
)
!==
-
1
})
console
.
log
(
result
)
callback
(
result
)
})
},
handleSelect
(
item
)
{
this
.
selectData
=
item
this
.
search
=
item
.
name
},
searchEmit
()
{
if
(
this
.
selectData
)
{
window
.
eventBus
.
$emit
(
'searchParamChange'
,
this
.
selectData
)
if
(
this
.
search
)
{
queryDetailByName
(
this
.
search
).
then
(
res
=>
{
if
(
typeof
res
.
data
===
"string"
)
{
this
.
$message
({
type
:
'warning'
,
message
:
'无搜索结果'
})
return
}
let
result
if
(
res
.
data
.
flag
===
'plateRegion'
)
{
result
=
res
.
data
.
regionByNames
[
0
]
result
.
lng
=
result
.
longitude
result
.
lat
=
result
.
latitude
}
else
{
result
=
res
.
data
.
projectByName
result
.
forEach
(
item
=>
{
item
.
lng
=
item
.
longitude
item
.
lat
=
item
.
latitude
})
}
window
.
eventBus
.
$emit
(
'searchParamChange'
,
{
type
:
res
.
data
.
flag
,
data
:
result
})
})
}
}
}
...
...
src/components/bannerDetail/index.vue
View file @
ea8971c0
<
template
>
<div
class=
"bannerMap"
>
<el-carousel
:interval=
"5000"
arrow=
"always"
indicator-position=
"outside"
>
<el-carousel
:interval=
"5000"
arrow=
"always"
indicator-position=
"outside"
@
change=
"bannerChange"
>
<el-carousel-item
class=
"carouselCenter"
v-for=
"(item, index) in bannerData"
:key=
"index"
>
<viewer
:images=
"[]"
:style=
"
{ width: imgWidth + '%', height: '100%', margin: '0 auto' }">
<img
:src=
"item"
:style=
"
{ width: '100%', height: '100%' }">
<img
:src=
"item
.bannerSrc
"
:style=
"
{ width: '100%', height: '100%' }">
</viewer>
</el-carousel-item>
</el-carousel>
...
...
@@ -26,6 +26,11 @@
return
100
;
}
}
},
methods
:
{
bannerChange
(
index
)
{
this
.
$emit
(
'bannerChange'
,
this
.
bannerData
[
index
])
}
}
}
</
script
>
...
...
src/components/mapOverlay/index.vue
View file @
ea8971c0
...
...
@@ -2,8 +2,8 @@
<bm-overlay
ref=
"customOverlay"
pane=
"labelPane"
:class=
"
{'flex': true
, 'circle': circle
&&
width === height
}"
:style="backGroundType === 'image' ? {} : { width: width + 'px', height: height + 'px', color: textColor, backgroundColor: bgColor}"
:class=
"
{'flex': true}"
:style="backGroundType === 'image' ? {} : { width: width + 'px', height: height + 'px', color: textColor, backgroundColor: bgColor
, borderRadius: circle
}"
@draw="draw">
<div
:style=
"
{fontSize: fontSize, fontFamily: 'Arial', textAlign: 'center', fontWeight: 'normal'}"
...
...
@@ -11,10 +11,8 @@
{{
text
}}
<div
v-if=
"num"
style=
"font-weight: 600;height: 20px;line-height: 40px"
>
{{
num
}}
</div>
</div>
<div
v-if=
"backGroundType === 'waterDrop'"
class=
"flex-colum"
>
<div
style=
"transform: rotate(-45deg)"
>
{{
text
}}
</div>
<div
v-if=
"backGroundType === 'waterDrop'"
class=
"flex-colum"
:title=
"text"
>
<i
class=
"el-icon-location"
></i>
</div>
</bm-overlay>
</
template
>
...
...
@@ -42,7 +40,7 @@
}
</
script
>
<
style
scoped
>
<
style
scoped
lang=
"stylus"
>
.circle{
border-radius: 50%;
}
...
...
@@ -52,10 +50,11 @@
justify-content: center;
align-items: center;
cursor: pointer;
opacity
:
0.6
;
filter: grayscale(0%)
}
.flex:hover{
opacity
:
1
;
filter: grayscale(50%)
z-index: 9999;
}
.centerImage{
display: flex;
...
...
@@ -63,17 +62,7 @@
align-items: center;
}
.flex-colum{
width
:
70px
;
height
:
70px
;
line-height
:
70px
;
text-align
:
center
;
background-color
:
rgb
(
203
,
173
,
91
);
border-radius
:
70px
70px
0
;
-webkit-transform
:
rotate
(
45deg
);
-ms-transform
:
rotate
(
45deg
);
-o-transform
:
rotate
(
45deg
);
transform
:
rotate
(
45deg
);
color
:
#ffffff
;
writing-mode
:
vertical-lr
;
font-size 45px
color red
}
</
style
>
src/components/multilHeaderTable/index.vue
View file @
ea8971c0
...
...
@@ -44,7 +44,7 @@
<el-row
v-for=
"(value, key) in dataMap"
:key=
"key"
:class=
"
{ 'dataCell': true, 'imgHeigth': value === 'img' }">
<div
v-if=
"value === 'string'"
>
{{
tableData
[
key
]
||
'无'
}}
</div>
<viewer
:images=
"[]"
v-else-if=
"value === 'img'"
>
<img
:src=
"tableData[key]
"
alt=
""
width=
"5
0%"
height=
"80"
style=
"cursor:pointer;"
>
<img
:src=
"tableData[key]
? tableData[key] : tableData['bannerSrc']"
alt=
""
width=
"3
0%"
height=
"80"
style=
"cursor:pointer;"
>
</viewer>
<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>
...
...
src/plugins/router/index.js
View file @
ea8971c0
...
...
@@ -5,7 +5,7 @@ import { getToken } from '@assets/js/auth'
const
whiteList
=
[
'/login'
,
'/test'
]
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
if
(
!
getToken
())
{
if
(
getToken
())
{
// 拥有访问权限
if
(
to
.
path
===
'/login'
)
{
// 访问登录页时,重定向至首页(已具备访问权限)
...
...
src/views/RegionalPlate/demoData.js
View file @
ea8971c0
...
...
@@ -55,16 +55,10 @@ export const regionData = [
}
]
},
{
lng
:
117.250
,
lat
:
39.183
,
text
:
'西青区'
,
number
:
0
},
{
lng
:
117.300
,
lat
:
39.333
,
text
:
'行政区3'
,
number
:
5
number
:
0
}
]
src/views/RegionalPlate/index.vue
View file @
ea8971c0
...
...
@@ -23,7 +23,7 @@
:fontSize="16"
:bg-color="'rgb(25,124,230)'"
:bg-img-url="null"
:circle="
true
"
:circle="
'50%'
"
:width="90"
:height="90"
>
</my-overlay>
...
...
@@ -41,7 +41,7 @@
:text-color="'#ffffff'"
:bg-color="'rgb(25,124,230)'"
:bg-img-url="null"
:circle="
true
"
:circle="
'50%'
"
:width="70"
:height="70"
>
</my-overlay>
...
...
@@ -60,7 +60,7 @@
v-show=
"showType === 'plateRegion' && state !== '' ? ( state === 'all' ? true : ( state == item.state ? true : false ) ) : false"
@
click
.
native=
"ShowInfo(item)"
:key=
"index + 'plateRegion'"
v-for=
"(item,index) in dataType.plateRegion"
v-for=
"(item,index) in dataType.plateRegion
.resultBnsProjectDTOS
"
:position=
"
{lng: item.lng, lat: item.lat}"
:back-ground-type="'color'"
:text="item.text"
...
...
@@ -68,7 +68,7 @@
:text-color="'#ffffff'"
:bg-color="item.state === 0 ? 'rgb(25,124,230)' : 'rgb(169,209,142)'"
:bg-img-url="null"
:circle="
false
"
:circle="
'10px'
"
:width="80"
:height="30">
</my-overlay>
<bm-control
anchor=
"BMAP_ANCHOR_BOTTOM_LEFT"
v-show=
"showType === 'plateRegion'"
>
...
...
@@ -84,9 +84,9 @@
v-for=
"(item,index) in dataType.property"
:position=
"
{lng: item.lng, lat: item.lat}"
:back-ground-type="'waterDrop'"
:text="item.
text
"
:text="item.
name
"
:text-color="'#ffffff'"
:circle="
true
"
:circle="
'none'
"
:width="80"
:height="20"
>
</my-overlay>
...
...
@@ -110,26 +110,42 @@
{{
item
.
title
}}
</div>
<div
:class=
"
{'plateRegionDetailShowContainer': true }">
{{
item
.
prop
}}
{{
dataType
.
plateRegion
[
item
.
prop
]
||
'无'
}}
</div>
</el-col>
</div>
<div
v-if=
"infotType === 1"
style=
"margin-top: 10px"
>
<div
v-if=
"infotType === 1"
style=
"margin-top: 10px
;"
class=
"soildInfo
"
>
<el-collapse
v-model=
"soildInfoChange"
class=
"sys-collapse"
>
<el-card
:body-style=
"
{padding: '0'}" class="box-card">
<el-collapse-item
:title=
"'你好'"
:name=
"0"
>
你好我是
<el-card
:body-style=
"
{padding: '0'}" class="box-card" v-for="(item,index) in dataType.plateRegion.resultBnsLandDTOS" :key="index">
<el-collapse-item
:title=
"item.name"
:name=
"index"
>
<p>
行政分区:
{{
dataType
.
plateRegion
.
adminRegionName
}}
</p>
<p>
所属板块:
{{
dataType
.
plateRegion
.
name
}}
</p>
<p>
土地面积:
{{
item
.
landArea
}}
m
<sup>
2
</sup></p>
<p>
容积率:
{{
item
.
plotRatio
}}
%
</p>
<p>
建筑面积:
{{
item
.
builtArea
}}
m
<sup>
2
</sup></p>
<p>
建筑密度:
{{
item
.
builtDensity
}}
%
</p>
<p>
楼面价:
{{
item
.
floorPrice
}}
/m
<sup>
2
</sup></p>
<p>
成交日期:
{{
item
.
dealDate
}}
</p>
<p>
成交价:
{{
item
.
dealPrice
}}
亿元
</p>
<p>
溢价率:
{{
item
.
premium
}}
%
</p>
<p>
受让方:
{{
item
.
assignee
}}
</p>
</el-collapse-item>
</el-card>
</el-collapse>
</div>
<div
v-if=
"infotType === 2"
style=
"margin-top: 10px;text-align: left"
>
<el-card
v-for=
"
i in 5"
class=
"box-card distanceCard"
:key=
"i
"
:body-style=
"
{ padding: '0'}">
<el-card
v-for=
"
(item, index) in dataType.plateRegion.resultBnsProjectDTOS"
class=
"box-card distanceCard"
:key=
"index
"
:body-style=
"
{ padding: '0'}">
<div
class=
"imgContainer"
>
<img
width=
"1
60"
height=
"100"
:src=
"require('@assets/img/demoPng.jpg')
"
alt=
""
>
<img
width=
"1
50"
height=
"120"
:src=
"item.fileSrc
"
alt=
""
>
</div>
<div
class=
"infomationContainer"
>
<div
class=
"propertyListName"
style=
"color: #1482f0"
>
{{
item
.
name
}}
</div>
<p>
价格:
{{
item
.
price
}}
/m
<sup>
2
</sup></p>
<p>
产品类型:
{{
item
.
productType
}}
</p>
<p>
占地面积:
{{
item
.
landArea
}}
<sup>
2
</sup></p>
<p>
建筑面积:
{{
item
.
totalArea
}}
<sup>
2
</sup></p>
<p>
容积率:
{{
item
.
plotRatio
}}
</p>
<p>
开盘时间:
{{
item
.
openTime
}}
</p>
</div>
</el-card>
</div>
...
...
@@ -137,9 +153,13 @@
<div
v-else-if=
"showType === 'property'"
class=
"dealWidth"
>
<div
class=
"searchDetailFlex"
>
<img
height=
"200"
:src=
"require('@assets/img/loupan.png')"
alt=
""
>
<p
class=
"propertyName"
>
楼房名称
</p>
<p
class=
"propertyDetail"
v-for=
"(val, key, index) in propertyDetailDataMap"
:key=
"index"
>
{{
`${val
}
:${propertyDetailData[key]
}
`
}}
<p
class=
"propertyName"
>
{{
propertyDetailData
.
name
||
'楼房名称'
}}
</p>
<p
class=
"propertyDetail"
v-html=
"'价格'+':' + propertyDetailData.price + '/m
<sup>
2
</sup>
'">
</p>
<p
class=
"propertyDetail"
>
{{
'产品类型'
+
':'
+
propertyDetailData
.
productType
}}
</p>
<p
class=
"propertyDetail"
v-for=
"(val, key, index) in propertyDetailDataMap"
:key=
"index"
v-html=
"val + ':' +propertyDetailData[key]"
>
</p>
</div>
</div>
...
...
@@ -157,6 +177,7 @@
import
{
plateRegionDetail
}
from
"../propertiesDetail/staticData"
;
import
MyOverlay
from
'@comp/mapOverlay'
import
propertyControll
from
'@comp/propertyControll'
import
{
queryAllRegions
}
from
"../../assets/js/api/unitManage"
;
export
default
{
name
:
'RegionalPlate'
,
components
:
{
...
...
@@ -175,7 +196,9 @@
dataType
:
{
region
:
[],
plate
:
[],
plateRegion
:
[],
plateRegion
:
{
},
property
:
[]
},
// 四种的楼房显示类型 数据预览
allData
:
[],
...
...
@@ -187,7 +210,7 @@
radius
:
1000
,
// 若为板块区域详情、圆环的半径
zoomType
:
{
region
:
11
,
plate
:
1
3
,
plate
:
1
2
,
plateRegion
:
15
,
property
:
15
},
// 根据行政区、板块、楼盘控制地图放大倍数
...
...
@@ -199,13 +222,12 @@
mapTool
:
null
,
// map类
BMapTool
:
null
,
// BMap类
soildInfoChange
:
''
,
// 土拍信息 折叠面板绑定变量
propertyDetailData
:
{
}
,
// 搜索后点击楼盘 展示详情数据
propertyDetailData
:
{
},
// 搜索后点击楼盘 展示详情数据
propertyDetailDataMap
:
{
price
:
'价格'
,
productionType
:
'产品类型'
,
footprint
:
'占地面积'
,
constructionArea
:
'建筑面积'
,
volumeRate
:
'容积率'
,
landArea
:
'占地面积'
,
totalArea
:
'建筑面积'
,
plotRatio
:
'容积率'
,
openTime
:
'开盘时间'
}
// key/value 对应
}
...
...
@@ -225,13 +247,6 @@
},
showTowerInfo
(
item
)
{
console
.
log
(
item
)
item
.
propertyName
=
'家园'
item
.
price
=
'1123213'
item
.
productionType
=
'楼盘'
item
.
footprint
=
'1万平方米'
item
.
constructionArea
=
'2万平方米'
item
.
volumeRate
=
'2.0'
item
.
openTime
=
'2016年11月14日'
this
.
propertyDetailData
=
JSON
.
parse
(
JSON
.
stringify
(
item
))
this
.
detailShow
=
true
},
...
...
@@ -274,16 +289,25 @@
},
mapLoaded
()
{
if
(
this
.
$router
.
query
)
{
console
.
log
(
'111111111111111111111111'
,
this
.
$router
.
query
)
const
houseData
=
this
.
$route
.
query
this
.
showType
=
'property'
this
.
map
.
center
.
lng
=
houseData
.
lng
this
.
map
.
center
.
lat
=
houseData
.
lat
this
.
map
.
setZoom
=
this
.
zoomType
.
property
this
.
dataType
.
property
=
[
houseData
]
this
.
propertyDetailData
=
houseData
console
.
log
(
this
.
$router
.
query
)
}
else
{
// 若无传递值 则查询全部行政区及其下属数目信息
queryAllRegions
().
then
(
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
()
{
...
...
@@ -293,12 +317,25 @@
// 请求所有楼盘、行政区、板块的所有信息
},
created
()
{
window
.
eventBus
.
$on
(
'searchParamChange'
,
(
houseData
)
=>
{
this
.
showType
=
'property'
this
.
map
.
center
.
lng
=
houseData
.
lng
this
.
map
.
center
.
lat
=
houseData
.
lat
this
.
map
.
setZoom
=
this
.
zoomType
.
property
this
.
dataType
.
property
=
[
houseData
]
window
.
eventBus
.
$on
(
'searchParamChange'
,
(
searchResult
)
=>
{
if
(
searchResult
.
type
===
'plateRegion'
)
{
this
.
showType
=
'plateRegion'
this
.
map
.
center
.
lng
=
searchResult
.
data
.
lng
this
.
map
.
center
.
lat
=
searchResult
.
data
.
lat
this
.
circleCenter
=
{
lng
:
searchResult
.
data
.
lng
,
lat
:
searchResult
.
data
.
lat
}
this
.
circle
=
1000
this
.
map
.
setZoom
=
this
.
zoomType
.
plateRegion
this
.
dataType
.
plateRegion
=
searchResult
.
data
console
.
log
(
this
.
dataType
.
plateRegion
)
}
else
{
this
.
showType
=
'property'
this
.
map
.
center
.
lng
=
this
.
average
(
searchResult
.
data
).
lng
this
.
map
.
center
.
lat
=
this
.
average
(
searchResult
.
data
).
lat
this
.
map
.
setZoom
=
this
.
zoomType
.
property
this
.
dataType
.
property
=
searchResult
.
data
this
.
propertyDetailData
=
this
.
dataType
.
property
[
0
]
console
.
log
(
this
.
propertyDetailData
)
}
})
},
computed
:
{
...
...
@@ -421,6 +458,29 @@
}
.distanceCard{
margin 10px 0
.el-card__body{
display flex
flex-direction row
.imgContainer{
padding 8px 0
cursor pointer
}
.propertyListName{
font-size 15px
text-align: left;
font-family: "Arial Black";
font-weight: bolder;
margin: 5px 0;
cursor: pointer;
}
.infomationContainer{
margin-left 20px
p {
margin 5px 0
font-size 12px
}
}
}
}
.distanceCard:nth-child(1) {
margin-top 0
...
...
src/views/plateSupplyData/index.vue
View file @
ea8971c0
...
...
@@ -67,7 +67,7 @@
chartData
:
{
columns
:
[
'areaRange'
,
'supplyProportion'
,
'dealProportion'
],
rows
:
[
{
areaRange
:
'面积区间'
,
supplyProportion
:
'供应套数比例'
,
dealProportion
:
'成交套数比例'
,
supplyNum
:
'供应套数数量'
,
dealNum
:
'成交套数数量'
,
rate
:
'供求比'
}
]
},
chartSettings
:
{
...
...
src/views/propertiesDetail/index.vue
View file @
ea8971c0
...
...
@@ -5,7 +5,7 @@
<el-link
type=
"primary"
>
返回
</el-link>
</div>
<div
class=
"name"
>
{{
'家园'
}}
{{
propertyData
.
propertyName
}}
</div>
<div
class=
"bannerOptions"
>
<el-radio-group
v-model=
"bannerType"
>
...
...
@@ -19,13 +19,13 @@
<!-- banner图划分-->
<div
class=
"banner"
>
<div
v-if=
"bannerType === 0"
>
<banner
:banner-data=
"
[require('@assets/img/zt.png'), require('@assets/img/zt.png'), require('@assets/img/zt.png')]
"
/>
<banner
:banner-data=
"
propertyData.propertyBanner.ztBanner
"
/>
</div>
<div
v-if=
"bannerType === 1"
>
<banner
:banner-data=
"
[require('@assets/img/lm.png'), require('@assets/img/lm.png'), require('@assets/img/lm.png'), require('@assets/img/lm.png')]
"
/>
<banner
:banner-data=
"
propertyData.propertyBanner.lmBanner
"
/>
</div>
<div
v-if=
"bannerType === 2"
>
<banner
:img-width=
"20"
:banner-data=
"[require('@assets/img/zlhx.png'), require('@assets/img/zlhx.png'), require('@assets/img/zlhx.png')]
"
/>
<banner
:img-width=
"20"
@
bannerChange=
"saleingChange"
:banner-data=
"propertyData.propertyBanner.hxBanner
"
/>
</div>
</div>
<!-- 户型信息 只在banner类型为户型时才显示-->
...
...
@@ -39,17 +39,17 @@
<div
class=
"planningInformation"
>
<div
class=
"title"
>
规划信息
</div>
<div
class=
"container"
>
<el-tag
:key=
"i
"
v-for=
"i in 10"
type=
"info"
class=
"tagsInfo"
>
{{
'我也不知道吖'
}}
</el-tag>
<el-tag
:key=
"i
ndex"
effect=
"dark"
v-for=
"(item,index) in propertyData.propertyPlaningInfo"
type=
"info"
v-html=
"item.title"
class=
"tagsInfo"
>
</el-tag>
</div>
</div>
<!-- 土拍信息-->
<div
class=
"soilPhotoInformation"
>
<div
class=
"title"
>
土拍信息
</div>
<div
class=
"container"
v-for=
"
i in 2
"
>
<div
class=
"singleTitle"
>
{{
'天津市西青区天津南站附近'
}}
</div>
<div
class=
"container"
v-for=
"
(item,index) in propertyData.propertySoildInfo"
:key=
"index
"
>
<div
class=
"singleTitle"
>
{{
item
.
soildName
}}
</div>
<div
class=
"singleData"
>
<el-table
:data=
"
soil
Data"
:data=
"
item.soildTable
Data"
border
style=
"width: 100%"
>
<el-table-column
...
...
@@ -60,6 +60,7 @@
</el-table-column>
</el-table>
</div>
<div
style=
"margin: 10px"
v-if=
"item.tips"
>
{{
`*注:${item.tips
}
`
}}
<
/div
>
<
/div
>
<
/div
>
...
...
@@ -104,14 +105,14 @@
<
table
cellspacing
=
"0"
cellpadding
=
"0"
class
=
"table"
>
<
tr
>
<
th
>
产品类型
<
/th
>
<t
d>
产品供应数量
</td
>
<t
d>
开间数
</td
>
<t
d>
居室数
</td
>
<t
d>
厅数
</td
>
<t
d>
卫生间数
</td
>
<
t
h
>
产品供应数量
<
/th
>
<
t
h
>
开间数
<
/th
>
<
t
h
>
居室数
<
/th
>
<
t
h
>
厅数
<
/th
>
<
t
h
>
卫生间数
<
/th
>
<
/tr
>
<
tr
v
-
for
=
"item in supplyData.rows"
>
<t
h>
{{
item
.
production
}}
</th
>
<
t
d
>
{{
item
.
production
}}
<
/td
>
<
td
>
{{
item
.
supplication
}}
<
/td
>
<
td
>
{{
item
.
kjNum
}}
<
/td
>
<
td
>
{{
item
.
jsNum
}}
<
/td
>
...
...
@@ -155,28 +156,12 @@
import
html2canvas
from
"html2canvas"
import
multiHeaderTable
from
'@comp/multilHeaderTable'
import
tableHeader
from
"../ProductAnalysis/tableHeader"
import
{
demoDataObject
}
from
"../ProductAnalysis/tableHeader"
;
export
default
{
name
:
"propertiesDetail"
,
components
:
{
banner
,
multiHeaderTable
}
,
data
()
{
return
{
bannerType
:
0
,
soilData
:
[
{
region
:
'西青区'
,
area
:
'所属区域'
,
landArea
:
'土地面积'
,
lotRatio
:
'容积率'
,
builtArea
:
'建筑面积'
,
floorPrice
:
'楼面价元'
,
buildingDensity
:
'建筑密度'
,
closingDate
:
'成交日期'
,
totalPrice
:
'成交价'
,
premium
:
'溢价'
,
transferee
:
'受让方'
,
}
],
supplySaleData
:
{
columns
:
[
'areaRange'
,
'supplyProportion'
,
'dealProportion'
],
rows
:
[
...
...
@@ -281,7 +266,148 @@
{
production
:
'143平'
,
nxmk
:
10.1
,
qjsmk
:
10.5
,
zwmk
:
15
,
kwmk
:
13
}
,
],
colorArr
:
colors
,
hxObjectData
:
demoDataObject
hxObjectData
:
[],
propertyData
:
{
propertyName
:
'这里为楼盘名字'
,
propertyBanner
:
{
ztBanner
:
[
{
name
:
'123'
,
bannerSrc
:
require
(
'@assets/img/zt.png'
)
}
,
{
name
:
'233'
,
bannerSrc
:
require
(
'@assets/img/zt.png'
)
}
],
lmBanner
:
[
{
name
:
'122'
,
bannerSrc
:
require
(
'@assets/img/lm.png'
)
}
,
{
name
:
'122'
,
bannerSrc
:
require
(
'@assets/img/lm.png'
)
}
,
{
name
:
'122'
,
bannerSrc
:
require
(
'@assets/img/lm.png'
)
}
],
hxBanner
:
[
{
area
:
'100'
,
bannerSrc
:
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
}
,
{
area
:
'123'
,
bannerSrc
:
require
(
'@assets/img/zlhx.png'
),
kj
:
'3'
,
js
:
'2'
,
ting
:
'2'
,
wsj
:
'2'
,
nxmk
:
'2'
,
qjsmk
:
'2'
,
zwmk
:
'3'
,
kwmk
:
'1'
,
QJSDGHT
:
0
,
QJSWSYT
:
1
,
QJSLDK
:
1
,
ZWZW
:
1
,
ZWYMJ
:
1
,
KWKW
:
1
,
CFLDK
:
0
,
CFZXCFL
:
0
,
CFDLDX
:
0
,
CFXS
:
'S型'
,
CTLDK
:
1
,
CTDLKC
:
1
,
SF
:
'客卫'
,
WSJMW
:
1
,
WSJGSFL
:
1
,
WSJGN
:
'两件套'
,
YT
:
1
,
YTWZ
:
'主卧'
,
CCJ
:
0
,
JZJ
:
1
,
XG
:
0
,
XGCFDX
:
1
}
]
}
,
propertyPlaningInfo
:
[
{
title
:
'总面积100000m<sup>2</sup>'
}
,
{
title
:
'地铁站附近'
}
],
propertySoildInfo
:
[
{
soildName
:
'永红桥附近'
,
soildTableData
:
[{
region
:
'西青区'
,
area
:
'所属区域'
,
landArea
:
'土地面积'
,
lotRatio
:
'容积率'
,
builtArea
:
'建筑面积'
,
floorPrice
:
'楼面价元'
,
buildingDensity
:
'建筑密度'
,
closingDate
:
'成交日期'
,
totalPrice
:
'成交价'
,
premium
:
'溢价'
,
transferee
:
'受让方'
,
}
]
}
,
{
soildName
:
'南站附近'
,
soildTableData
:
[{
region
:
'西青区'
,
area
:
'所属区域'
,
landArea
:
'土地面积'
,
lotRatio
:
'容积率'
,
builtArea
:
'建筑面积'
,
floorPrice
:
'楼面价元'
,
buildingDensity
:
'建筑密度'
,
closingDate
:
'成交日期'
,
totalPrice
:
'成交价'
,
premium
:
'溢价'
,
transferee
:
'受让方'
,
}
]
}
]
}
}
}
,
methods
:
{
...
...
@@ -309,6 +435,9 @@
u8arr
[
n
]
=
bstr
.
charCodeAt
(
n
);
}
return
new
Blob
([
u8arr
],
{
type
:
mime
}
);
}
,
saleingChange
(
item
)
{
this
.
hxObjectData
=
item
}
}
,
computed
:
{
...
...
@@ -320,6 +449,9 @@
table
.
splice
(
0
,
1
)
return
table
}
}
,
mounted
()
{
this
.
hxObjectData
=
this
.
propertyData
.
propertyBanner
.
hxBanner
[
0
]
}
}
<
/script
>
...
...
@@ -360,9 +492,13 @@
border
2
px
solid
rgb
(
222
,
235
,
247
)
.
container
{
margin
-
top
10
px
padding-left 20px
.
tagsInfo
{
margin-right 10px
margin
-
right
15
px
height
40
px
line
-
height
40
px
padding
0
15
px
font
-
size
16
px
font
-
family
"sans-serif"
}
}
}
...
...
src/views/propertiesDetail/staticData.js
View file @
ea8971c0
...
...
@@ -3,7 +3,7 @@ export const plateRegionDetail = [
{
title
:
'区域定位'
,
flex
:
24
,
prop
:
'region
Lca
tion'
prop
:
'region
Posi
tion'
},
{
title
:
'产品类型'
,
...
...
@@ -13,22 +13,22 @@ export const plateRegionDetail = [
{
title
:
'区域优势'
,
flex
:
24
,
prop
:
'regionAdvantage
s
'
prop
:
'regionAdvantage'
},
{
title
:
'已有楼盘'
,
flex
:
24
,
prop
:
'exist
ingProperty
'
prop
:
'exist
Project
'
},
{
title
:
'置业均价'
,
flex
:
12
,
prop
:
'
averageEstat
e'
prop
:
'
businessAveragePric
e'
},
{
title
:
'楼面均价'
,
flex
:
12
,
prop
:
'
averageFool
'
prop
:
'
projectAveragePrice
'
},
{
title
:
'区域发展'
,
...
...
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