Commit e2fe0da5 authored by shilei's avatar shilei

Merge branch 'dev' of http://101.201.78.203/cfld-front/shuchengminipro into dev

parents c6f0e158 3854ab39
......@@ -30,4 +30,6 @@ export default {
queryFiltersList: '/postcard/api/sysDictData/listByCodes',
/** 登录 */
login: '/postcard/user/login',
/** 主导产业 */
queryIndustryList: '/postcard/api/parkInfo/v1.0/industryList',
}
......@@ -164,8 +164,7 @@ export default {
},
computed: {
popupBox() {
return `top : ${this.top + "rpx"};
border-radius: 0 0 ${this.radius} ${this.radius};`;
return `border-radius: 0 0 ${this.radius} ${this.radius};`;
},
scrollPopup() {
return `opacity: ${this.isShow ? 1 : 0};`;
......@@ -305,10 +304,10 @@ export default {
.popup-box {
width: 100%;
height: auto;
position: fixed;
position: relative;
overflow: hidden;
background-color: #ffffff;
z-index: 99999 !important;
z-index: 5001;
.scroll-popup {
width: 100%;
......@@ -385,7 +384,7 @@ export default {
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 99998 !important;
z-index: 5000 !important;
overflow: hidden;
}
</style>
......@@ -10,13 +10,13 @@
<template v-slot:rightMedia>
<view>
<div class="f24 flex right-footer">
<div style="width: 200rpx">
<span class="c80">级别:</span>
<span>{{ detail.levelName || "--" }}</span>
<div class="nowrap" style="width: 200rpx">
<span class="c80">产业园级别:</span>
<span>{{ parkInfo.levelName || "--" }}</span>
</div>
<div style="margin-left: 10rpx">
<span class="c80">面积:</span
>{{ detail.coverArea ? detail.coverArea + "亩" : "--" }}
<div class="nowrap" style="margin-left: 10rpx">
<span class="c80">占地面积:</span
>{{ parkInfo.coverArea ? parkInfo.coverArea + "亩" : "--" }}
</div>
</div>
</view>
......@@ -64,4 +64,7 @@ export default {
.c80 {
color: #808080;
}
.nowrap {
white-space: nowrap;
}
</style>
<!-- 走进园区 -->
<template>
<view class="container">
<view class="tab_bar">
<view
class="tab_item"
:class="{ active: activeBar === index }"
@click="changeTab(index)"
v-for="(tab, index) in tabBarList"
:key="index"
>
<p>{{ tab }}</p>
<span class="line" v-if="activeBar === index"></span>
<div class="top-cell">
<view class="tab_bar relative z-5001">
<view
class="tab_item"
:class="{ active: activeBar === index }"
@click="changeTab(index)"
v-for="(tab, index) in tabBarList"
:key="index"
>
<p>{{ tab }}</p>
<span class="line" v-if="activeBar === index"></span>
</view>
</view>
</view>
<div
class="flex align-center justify-between"
style="padding: 25rpx 23rpx;background: #fff;position: fixed;top: 60rpx;width: 100vw "
<div
class="flex align-center justify-between relative z-5001"
style="padding: 25rpx 23rpx;background: #fff;width: 100vw "
>
<div class="flex align-center">
<div class="search-input">
......@@ -48,27 +49,28 @@
</div>
</div>
</div>
<dropdown-vue
ref="dropDown"
:menuList="$u.deepClone(menuList[activeBar])"
:dataObj="$u.deepClone(filterList[activeBar])"
@change="change"
themeColor="#4374EF"
:top="166"
></dropdown-vue>
<div style="height: 246rpx"></div>
<div v-if="mode === 'list'">
<view class="tab-contant">
<view
class="media-card"
v-for="cardInfo in dataList"
:key="cardInfo.id"
@click="toDetail(cardInfo)"
>
<park-card-vue :key-words="keyWords" :detail="cardInfo" v-if="activeBar == 0"></park-card-vue>
<land-card-vue :key-words="keyword" :detail="cardInfo" v-if="activeBar == 1"></land-card-vue>
<carrier-card-vue :key-words="keyword" :detail="cardInfo" v-if="activeBar == 2"></carrier-card-vue>
</view>
<div v-show="activeBar !== 1">
<dropdown-vue
ref="dropDown"
:menuList="$u.deepClone(menuList[activeBar])"
:dataObj="$u.deepClone(filterList[activeBar])"
@change="change"
themeColor="#4374EF"
:top="166"
></dropdown-vue>
</div>
</div>
<view v-if="mode === 'list'" class="tab-contant content" :class="{'no-filter': activeBar === 1}">
<view
class="media-card"
v-for="cardInfo in dataList"
:key="cardInfo.id"
@click="toDetail(cardInfo)"
>
<park-card-vue :key-words="keyWords" :detail="cardInfo" v-if="activeBar == 0"></park-card-vue>
<land-card-vue :key-words="keyword" :detail="cardInfo" v-if="activeBar == 1"></land-card-vue>
<carrier-card-vue :key-words="keyword" :detail="cardInfo" v-if="activeBar == 2"></carrier-card-vue>
</view>
<u-loadmore
v-if="dataList.length && (!haveMore || isLoading)"
......@@ -92,8 +94,8 @@
marginTop="120"
>
</u-empty>
</div>
<div v-else>
</view>
<div v-else class="content z-100">
<map id="mapId" @markertap="handleMarkerClick" @callouttap="handleMarkerClick" :scale='10' style="width: 100%;height: calc(100vh - 246rpx)" latitude="31.464086" longitude="116.944909" class="map" :markers="markers">
</map>
<div v-if="activeInfo.id" :key="activeInfo.id" @click="toDetail(activeInfo)" style="position: fixed;padding: 0 30rpx;bottom: 30rpx;width: 100vw;z-index: 999;box-sizing: border-box;">
......@@ -133,7 +135,7 @@ export default {
[
{
id: 1,
name: "级别",
name: "主导产业",
isMultiple: false, //是否多选
showType: 3, //下拉框类型(1、2、3、4)
},
......@@ -146,18 +148,18 @@ export default {
},
],
[
{
id: 1,
name: "土地类型",
isMultiple: false, //是否多选
showType: 3, //下拉框类型(1、2、3、4)
},
{
id: 2,
name: "面积",
isMultiple: false, //是否多选
showType: 3, //下拉框类型(1、2、3、4)
},
// {
// id: 1,
// name: "土地类型",
// isMultiple: false, //是否多选
// showType: 3, //下拉框类型(1、2、3、4)
// },
// {
// id: 2,
// name: "面积",
// isMultiple: false, //是否多选
// showType: 3, //下拉框类型(1、2、3、4)
// },
],
[
{
......@@ -170,7 +172,7 @@ export default {
id: 2,
name: "建筑结构",
isMultiple: false, //是否多选
showType: 1, //下拉框类型(1、2、3、4)
showType: 3, //下拉框类型(1、2、3、4)
},
{
id: 3,
......@@ -205,25 +207,53 @@ export default {
},
mounted() {
this.getList();
store.dispatch('getFilterEnum').then(() => {
this.filterList = [
{
itemList1: this.filterEnum.park_level,
itemList2: this.filterEnum.park_area,
},
{
itemList1: this.filterEnum.land_type,
itemList2: this.filterEnum.land_area,
},
{
itemList1: this.filterEnum.carrier_type,
itemList2: this.filterEnum.carrier_construction,
itemList3: this.filterEnum.carrier_area,
}
]
})
this.initFilterList();
},
methods: {
initFilterList() {
const list = [this.initIndustryList(), store.dispatch('getFilterEnum')];
Promise.all(list).then(([industryList]) => {
this.filterList = [
{
itemList1: industryList.map((i) => ({ dictLabel: i, dictValue: i, dictType: 'primaryIndustry' })),
itemList2: this.filterEnum.park_area,
},
{
itemList1: this.filterEnum.land_type,
itemList2: this.filterEnum.land_area,
},
{
itemList1: this.filterEnum.carrier_type,
itemList2: this.filterEnum.carrier_construction,
itemList3: this.filterEnum.carrier_area,
}
]
})
},
initIndustryList() {
return this.$fetch({
url: API.queryIndustryList,
methods: "get",
data: {},
});
} ,
handleParams(params) {
const config = {
park_area: 'parkArea',
carrier_type: 'carrierType',
carrier_construction: 'carrierConstruction',
carrier_area: 'carrierArea',
}
const result = Object.entries(params).map(([key, value]) => {
const target = config[key];
if (target) {
return [target, value];
} else {
return [key, value];
}
});
return Object.fromEntries(result);
},
getList() {
if (!this.haveMore) return;
this.isLoading = true;
......@@ -240,6 +270,7 @@ export default {
}
}
searchCondition.name = this.searchKey
searchCondition = this.handleParams(searchCondition);
this.$fetch({
url: this.api,
methods: "post",
......@@ -385,8 +416,8 @@ export default {
padding: 0 10rpx;
padding-top: 15rpx;
background-color: #fff;
position: fixed;
top: 0;
// position: fixed;
// top: 0;
width: 100vw;
box-sizing: border-box;
}
......@@ -414,6 +445,12 @@ export default {
.tab-contant {
padding: 20rpx 30rpx;
}
.content {
padding-top: 250rpx + 20rpx;
&.no-filter {
padding-top: 250rpx + 20rpx - 80rpx;
}
}
.media-card {
margin-bottom: 15rpx;
}
......@@ -452,4 +489,21 @@ export default {
margin-right: 16rpx;
}
}
.top-cell {
position: fixed;
top: 0;
right: 0;
left: 0;;
background-color: white;
z-index: 101;
}
.z-5001 {
z-index: 5001;
}
.z-100 {
z-index: 100;
}
.relative {
position: relative;
}
</style>
......@@ -5,7 +5,7 @@
<p class="many-content" style="color: #606266;padding-left: 6rpx;">{{primaryIndustryList[pageId].titleIntroduce}}</p>
</div>
<div v-if="primaryIndustryList[pageId].parkList.length > 0">
<section-title title="相关载体">
<section-title title="相关产业园">
</section-title>
<div v-for="item in primaryIndustryList[pageId].parkList" :key="item.id" style="margin-bottom: 20rpx;" @click="toDetail(item)">
<park-card :detail="item"></park-card>
......
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