Commit 183dee16 authored by danfuman's avatar danfuman

宏观市场

parent f9cd4881
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -5,7 +5,11 @@ ...@@ -5,7 +5,11 @@
<span class="province">{{province}}</span> <span class="province">{{province}}</span>
<span class="icon"> <span class="icon">
<i class="el-icon-location"></i>切换 <i class="el-icon-location"></i>切换
<el-cascader ref="address" class="cascader-region" popper-class='cascader-region-addd' <el-select v-if="key =='5'" v-model="address" class="cascader-region" @change="addressListbtn1">
<el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option>
</el-select>
<el-cascader v-else ref="address" class="cascader-region" popper-class='cascader-region-addd'
@change="addressListbtn" v-model="address" :options="addressList" :props="props" collapse-tags></el-cascader> @change="addressListbtn" v-model="address" :options="addressList" :props="props" collapse-tags></el-cascader>
</span> </span>
</div> </div>
...@@ -17,7 +21,7 @@ ...@@ -17,7 +21,7 @@
import dataRegion from '@/assets/json/dataRegion' import dataRegion from '@/assets/json/dataRegion'
export default { export default {
name:'region', name:'region',
props:['province','dataQuery'], props:['province','dataQuery','type'],
data(){ data(){
return { return {
props: { props: {
...@@ -28,7 +32,8 @@ ...@@ -28,7 +32,8 @@
addressList: [], addressList: [],
address:'', address:'',
provinceId:[], provinceId:[],
location:'' location:'',
key:'',
} }
}, },
watch: { watch: {
...@@ -39,10 +44,12 @@ ...@@ -39,10 +44,12 @@
created(){ created(){
this.dataRegion() this.dataRegion()
this.location=this.province this.location=this.province
this.key=this.type;
}, },
methods:{ methods:{
addressListbtn() { addressListbtn() {
let nodesObj = this.$refs.address.getCheckedNodes()[0]; let nodesObj = this.$refs.address.getCheckedNodes()[0];
this.location=nodesObj.pathLabels[nodesObj.pathLabels.length-1]; this.location=nodesObj.pathLabels[nodesObj.pathLabels.length-1];
this.provinceId=nodesObj.path; this.provinceId=nodesObj.path;
let data={} let data={}
...@@ -52,6 +59,18 @@ ...@@ -52,6 +59,18 @@
this.$parent.addressListbtn(data) this.$parent.addressListbtn(data)
localStorage.setItem('location', true) localStorage.setItem('location', true)
}, },
addressListbtn1() {
let obj = this.addressList.find((option) => option.id === this.address);
this.location=obj.label;
this.provinceId=[obj.id];
let data={}
data.province=this.location
data.provinceId=this.provinceId
data.provinces=[this.location]
console.log(data,"|||||||")
this.$parent.addressListbtn(data)
localStorage.setItem('location', true)
},
//地区 //地区
async dataRegion() { async dataRegion() {
// await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, { // await axios.post("https://files.jiansheku.com/file/json/common/dataRegion.json", {}, {
......
...@@ -376,7 +376,7 @@ export default { ...@@ -376,7 +376,7 @@ export default {
top: 46px; top: 46px;
} }
th{ th{
font-size: 12px !important; font-size: 13px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
v-loading="tableLoading" v-loading="tableLoading"
:data="tableData" :data="tableData"
border border
v-horizontal-scroll="'hover'"
highlight-current-row highlight-current-row
@sort-change="sortChange" @sort-change="sortChange"
:default-sort = "{prop: 'gdp', order: 'descending'}" :default-sort = "{prop: 'gdp', order: 'descending'}"
...@@ -36,7 +37,7 @@ ...@@ -36,7 +37,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="gdp" label="GDP(亿元)" sortable width="120" :formatter="formatStatus"/> <el-table-column prop="gdp" label="GDP(亿元)" sortable width="120" :formatter="formatStatus"/>
<el-table-column prop="gdpGrowth" label="GDP增速(%)" sortable width="120" :formatter="formatStatus"/> <el-table-column prop="gdpGrowth" label="GDP增速(%)" sortable width="130" :formatter="formatStatus"/>
<el-table-column prop="gdpPerCapita" label="人均GDP(元)" sortable width="130" :formatter="formatStatus"/> <el-table-column prop="gdpPerCapita" label="人均GDP(元)" sortable width="130" :formatter="formatStatus"/>
<el-table-column prop="population" label="人口(万人)" sortable width="120" :formatter="formatStatus"/> <el-table-column prop="population" label="人口(万人)" sortable width="120" :formatter="formatStatus"/>
<el-table-column prop="fixedInvestment" label="固定资产投资 (亿元) " sortable width="200" :formatter="formatStatus"/> <el-table-column prop="fixedInvestment" label="固定资产投资 (亿元) " sortable width="200" :formatter="formatStatus"/>
...@@ -111,10 +112,10 @@ export default { ...@@ -111,10 +112,10 @@ export default {
params.provinceIds=[this.provinceId[0]] params.provinceIds=[this.provinceId[0]]
} }
if(this.provinceId.length > 1){ if(this.provinceId.length > 1){
params.cityId=[this.provinceId[1]] params.cityIds=[this.provinceId[1]]
} }
if(this.provinceId.length > 2){ if(this.provinceId.length > 2){
params.areaId=[this.provinceId[2]] params.areaIds=[this.provinceId[2]]
} }
// params.provinceIds=[this.dataQuery.provinceId] // params.provinceIds=[this.dataQuery.provinceId]
// this.isSkeleton = true // this.isSkeleton = true
...@@ -226,7 +227,6 @@ export default { ...@@ -226,7 +227,6 @@ export default {
overflow-y: clip; overflow-y: clip;
} }
th{ th{
font-size: 12px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -333,9 +333,9 @@ export default { ...@@ -333,9 +333,9 @@ export default {
getData(){ getData(){
this.isSkeleton = true this.isSkeleton = true
let params={} let params={}
if(this.dataQuery.id){ // if(this.dataQuery.id){
params.id=this.dataQuery.id // params.id=this.dataQuery.id
} // }
if(this.provinceId.length >= 0){ if(this.provinceId.length >= 0){
params.provinceId=this.provinceId[0] params.provinceId=this.provinceId[0]
} }
...@@ -732,16 +732,6 @@ export default { ...@@ -732,16 +732,6 @@ export default {
this.$parent.handleClick('second', data); this.$parent.handleClick('second', data);
break; break;
case 2: case 2:
// this.$router.push({
// path: '/macro/urban',
// query:{
// provinceId:this.dataQuery.provinceId,
// province:this.dataQuery.province,
// }
// })
console.log(this.dataQuery.provinceId)
console.log(this.dataQuery.province)
// return
this.$router.push({name: 'Urban', this.$router.push({name: 'Urban',
params: { params: {
provinceId: this.dataQuery.provinceId, provinceId: this.dataQuery.provinceId,
...@@ -883,7 +873,7 @@ export default { ...@@ -883,7 +873,7 @@ export default {
::v-deep .el-table{ ::v-deep .el-table{
overflow:visible; overflow:visible;
th{ th{
font-size: 12px !important; font-size: 13px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -76,7 +76,13 @@ export default { ...@@ -76,7 +76,13 @@ export default {
if(Array.isArray(this.dataQuery.provinceId)){ if(Array.isArray(this.dataQuery.provinceId)){
this.provinceId=this.dataQuery.provinceId this.provinceId=this.dataQuery.provinceId
}else { }else {
this.provinceId.push(this.dataQuery.provinceId) if(this.dataQuery.cityId){
this.provinceId=[this.dataQuery.provinceId,this.dataQuery.cityId,this.dataQuery.areaId]
}else if(this.dataQuery.cityId){
this.provinceId=[this.dataQuery.provinceId,this.dataQuery.cityId]
}else {
this.provinceId=[this.dataQuery.provinceId]
}
} }
}else { }else {
location({}).then(res => { location({}).then(res => {
......
<template> <template>
<div class="app-container enterprises"> <div class="app-container enterprises">
<Region v-if="province" :province="province" :dataQuery="dataQuery" @addressListbtn="addressListbtn"></Region> <Region v-if="province" :province="province" :dataQuery="dataQuery" @addressListbtn="addressListbtn" :type="5"></Region>
<div class="flex-box eco-header"> <div class="flex-box eco-header">
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="本地企业" name="first"></el-tab-pane> <el-tab-pane label="本地企业" name="first"></el-tab-pane>
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
collapse-tags collapse-tags
clearable></el-cascader> clearable></el-cascader>
<el-input placeholder="输入关键词查询" v-model="queryParams.ename" clearable @clear="handleSearch()"> <el-input placeholder="输入关键词查询" v-model="queryParams.ename" clearable @clear="handleSearch()">
<i slot="prefix" class="el-icon-search"></i>
<el-button slot="append" @click="handleSearch()">搜索</el-button> <el-button slot="append" @click="handleSearch()">搜索</el-button>
</el-input> </el-input>
<span class="total">{{tableDataTotal}}</span> <span class="total">{{tableDataTotal}}</span>
...@@ -31,7 +32,7 @@ ...@@ -31,7 +32,7 @@
v-loading="tableLoading" v-loading="tableLoading"
border border
fit fit
max-height="640" v-horizontal-scroll="'hover'"
@sort-change="sortChange" @sort-change="sortChange"
highlight-current-row highlight-current-row
v-if="tableDataTotal > 0 && !isSkeleton" v-if="tableDataTotal > 0 && !isSkeleton"
...@@ -291,17 +292,8 @@ export default { ...@@ -291,17 +292,8 @@ export default {
this.dataQuery.province=data.provinces; this.dataQuery.province=data.provinces;
let params={} let params={}
if(data){ if(data){
if(this.provinceId.length > 0){ params.provinceId=this.provinceId
params.provinceId=this.provinceId[0]
} }
if(this.provinceId.length > 1){
params.cityId=this.provinceId[1]
}
if(this.provinceId.length > 2){
params.areaId=this.provinceId[2]
}
}
this.querySubmit() this.querySubmit()
location(params).then(res => { location(params).then(res => {
console.log(res.data) console.log(res.data)
...@@ -362,11 +354,13 @@ export default { ...@@ -362,11 +354,13 @@ export default {
width: 180px; width: 180px;
margin-right: 12px; margin-right: 12px;
height: 32px; height: 32px;
line-height: 32px !important;
.el-input{ .el-input{
width: 100%; width: 100%;
height: 32px; height: 32px;
.el-input__inner{ .el-input__inner{
height: 32px !important; height: 32px !important;
line-height: 32px !important;
} }
} }
.el-cascader__tags{ .el-cascader__tags{
...@@ -379,16 +373,29 @@ export default { ...@@ -379,16 +373,29 @@ export default {
} }
::v-deep .el-input.el-input-group{ ::v-deep .el-input.el-input-group{
width: 240px; width: 240px;
height: 32px; height: 30px;
border: 1px solid #e0e0e0;
.el-input__inner{ .el-input__inner{
height: 32px; height: 30px;
border-right: 0; border: 0;
} }
.el-input__suffix{ .el-input__suffix{
margin-top: -1px; margin-top: -1px;
} }
.el-icon-search{
font-size: 14px;
line-height: 32px;
color:#0081FF;
margin-left: 6px;
margin-right: 4px;
}
.el-input__inner:focus{ .el-input__inner:focus{
border-color: #e0e0e0; /*border-color: #0081FF;*/
}
.el-input__inner:focus ~.el-input-group__append{
/*border: 1px solid #0081FF;*/
color: #ffffff;
background: #0081FF;
} }
.el-input-group__append{ .el-input-group__append{
width: 60px; width: 60px;
...@@ -396,9 +403,12 @@ export default { ...@@ -396,9 +403,12 @@ export default {
text-align: center; text-align: center;
background: #F5F5F5; background: #F5F5F5;
color:#0081FF; color:#0081FF;
border-left: 0; border-radius:0 2px 2px 0;
border-radius: 0; border: 0;
border-right: 0; &:hover{
color: #ffffff;
background: #0081FF;
}
} }
} }
.total{ .total{
...@@ -448,7 +458,7 @@ export default { ...@@ -448,7 +458,7 @@ export default {
overflow-y: clip; overflow-y: clip;
} }
th{ th{
font-size: 12px !important; font-size: 13px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -437,7 +437,6 @@ export default { ...@@ -437,7 +437,6 @@ export default {
.content{ .content{
background: #ffffff; background: #ffffff;
padding: 16px; padding: 16px;
margin-bottom: 16px;
border-radius: 4px; border-radius: 4px;
} }
.common-title{ .common-title{
......
<template>
<div class="app-container">
大型甲方
</div>
</template>
<script>
export default {
name: 'FirstParty',
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div class="app-container">
地区榜单
</div>
</template>
<script>
export default {
name: 'List',
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div class="BIfx">
<el-tabs v-model="activeName">
<el-tab-pane label="宏观市场分析" name="first">
<img class="img" src="@/assets/images/BI/hgscfx.png"/>
</el-tab-pane>
<el-tab-pane label="立项设计" name="second">
<img class="img" src="@/assets/images/BI/lxsj.png"/>
</el-tab-pane>
<el-tab-pane label="专项债项目" name="third">
<img class="img" src="@/assets/images/BI/zxz.png"/>
</el-tab-pane>
<el-tab-pane label="中标公告" name="fourth">
<img class="img" src="@/assets/images/BI/zbgg.png"/>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
export default {
name: 'BI',
data() {
return {
activeName:'first'
}
}
}
</script>
<style lang="scss" scoped>
.BIfx{
background: #ffffff;
padding: 16px;
margin-top: 12px;
::v-deep .el-tabs{
.el-tabs__nav-wrap::after {
position: static !important;
}
.el-tabs__header{
margin: 0;
.el-tabs__item{
padding: 0 16px;
font-size: 16px;
}
.is-active{
font-weight: bold;
}
}
.el-tabs__content{
width: 100%;
}
}
.img{
width: 100%;
margin-top: 30px;
}
}
</style>
...@@ -225,10 +225,7 @@ ...@@ -225,10 +225,7 @@
} }
}, },
created() { created() {
setTimeout(() => { this.getAreaGroupByProvince()
this.isSkeleton=false;
this.getData()
}, 1000);
var date = new Date() var date = new Date()
var year = date.getFullYear() var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth()+ 1 var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth()+ 1
...@@ -274,9 +271,13 @@ ...@@ -274,9 +271,13 @@
total=total+this.jzglData[i].count total=total+this.jzglData[i].count
} }
this.total=total; this.total=total;
this.$nextTick(() => {
this.initChart() this.initChart()
}) })
})
},
getCertGroupByMajorProvinceLevel(){
certGroupByMajorProvinceLevel().then(res => { certGroupByMajorProvinceLevel().then(res => {
this.dqData=res.data; this.dqData=res.data;
let data=this.dqData[0].province; let data=this.dqData[0].province;
...@@ -305,9 +306,15 @@ ...@@ -305,9 +306,15 @@
list.push(item) list.push(item)
} }
this.jzdqData=list this.jzdqData=list
this.$nextTick(() => {
this.initChart1() this.initChart1()
}) })
})
},
getAreaGroupByProvince(){
areaGroupByProvince().then(res => { areaGroupByProvince().then(res => {
this.isSkeleton=false;
this.zbData=res.data; this.zbData=res.data;
//定义一个变量 保存数据 因为sort方法排序会改变原数组 使用JSON方法深拷贝 将原数值暂存 //定义一个变量 保存数据 因为sort方法排序会改变原数组 使用JSON方法深拷贝 将原数值暂存
// let dataArr = JSON.parse(JSON.stringify(res.data)) // let dataArr = JSON.parse(JSON.stringify(res.data))
...@@ -321,10 +328,15 @@ ...@@ -321,10 +328,15 @@
this.rankList=data; this.rankList=data;
//将原数组数据赋值回去 保持数据不变 //将原数组数据赋值回去 保持数据不变
// this.zbData = JSON.parse(JSON.stringify(dataArr)) // this.zbData = JSON.parse(JSON.stringify(dataArr))
this.$nextTick(() => {
this.initChart2() this.initChart2()
}) })
this.getData()
this.getCertGroupByMajorProvinceLevel()
})
}, },
initChart() { initChart() {
this.$nextTick(() => {
let myChart = echarts.init(document.getElementById("gl-echarts")) let myChart = echarts.init(document.getElementById("gl-echarts"))
let option ={ let option ={
tooltip: { tooltip: {
...@@ -382,8 +394,10 @@ ...@@ -382,8 +394,10 @@
window.addEventListener("resize", function () { window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度 myChart.resize();//图表跟随页面大小变化宽度
}); });
})
}, },
initChart1() { initChart1() {
this.$nextTick(() => {
let myChart = echarts.init(document.getElementById("jzqy-echarts")) let myChart = echarts.init(document.getElementById("jzqy-echarts"))
let option ={ let option ={
legend: { legend: {
...@@ -549,8 +563,11 @@ ...@@ -549,8 +563,11 @@
window.addEventListener("resize", function () { window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度 myChart.resize();//图表跟随页面大小变化宽度
}); });
})
}, },
initChart2() { initChart2() {
this.$nextTick(() => {
let myChart = echarts.init(document.getElementById("ba-echarts")) let myChart = echarts.init(document.getElementById("ba-echarts"))
let option ={ let option ={
tooltip: { tooltip: {
...@@ -615,6 +632,7 @@ ...@@ -615,6 +632,7 @@
window.addEventListener("resize", function () { window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度 myChart.resize();//图表跟随页面大小变化宽度
}); });
})
}, },
handleClick(type,index){ handleClick(type,index){
if(type === 1){ if(type === 1){
...@@ -848,7 +866,7 @@ ...@@ -848,7 +866,7 @@
} }
} }
th{ th{
font-size: 12px !important; font-size: 13px !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
.el-table__fixed-header-wrapper th{ .el-table__fixed-header-wrapper th{
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="gyflState"> <div class="content_box" v-if="gyfsList.length > 0 && !isSkeleton">
<div class="box-left"> <div class="box-left">
<div id="echarts1" style="height: 280px"></div> <div id="echarts1" style="height: 280px"></div>
</div> </div>
...@@ -36,12 +36,12 @@ ...@@ -36,12 +36,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!gyflState"> <div class="empty" v-if="gyfsList.length === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!tdytState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国土地交易项目土地用途</span> <span class="common-title">全国土地交易项目土地用途</span>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="tdytState"> <div class="content_box" v-if="tdytList.length > 0 && !tdytState">
<div class="box-left"> <div class="box-left">
<div id="echarts2" style="height: 280px"></div> <div id="echarts2" style="height: 280px"></div>
</div> </div>
...@@ -75,12 +75,12 @@ ...@@ -75,12 +75,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!tdytState"> <div class="empty" v-if="tdytList.length === 0 && !tdytState">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!topState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国土地交易项目地区Top10</span> <span class="common-title">全国土地交易项目地区Top10</span>
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="topList.length > 0 && !isSkeleton"> <div class="content_box" v-if="topList.length > 0 && !topState">
<div class="box-left" style="width: 60%;"> <div class="box-left" style="width: 60%;">
<div id="echarts3" style="height: 300px"></div> <div id="echarts3" style="height: 300px"></div>
</div> </div>
...@@ -117,18 +117,18 @@ ...@@ -117,18 +117,18 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="topList.length === 0 && !isSkeleton"> <div class="empty" v-if="topList.length === 0 && !topState">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!nftjState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国土地交易项目年份统计</span> <span class="common-title">全国土地交易项目年份统计</span>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="nftjList.length > 0 && !nftjState">
<div class="box-left" style="width: 60%;"> <div class="box-left" style="width: 60%;">
<div id="echarts4" style="height: 300px"></div> <div id="echarts4" style="height: 300px"></div>
</div> </div>
...@@ -187,6 +187,7 @@ export default { ...@@ -187,6 +187,7 @@ export default {
gyflState:true, gyflState:true,
tdytState:true, tdytState:true,
topState:true, topState:true,
nftjState:true,
// typeName:['住宅用地','工业用地','城镇住宅用地','其他商服用地','公共设施用地','公路用地','城镇村道路用地','公园与绿地', // typeName:['住宅用地','工业用地','城镇住宅用地','其他商服用地','公共设施用地','公路用地','城镇村道路用地','公园与绿地',
// '工矿仓储用地','零售商业用地','科研用地','街巷用地','机关团体用地','商服用地','商务金融用地'] // '工矿仓储用地','零售商业用地','科研用地','街巷用地','机关团体用地','商服用地','商务金融用地']
} }
...@@ -194,15 +195,16 @@ export default { ...@@ -194,15 +195,16 @@ export default {
created() { created() {
this.dataRegion() this.dataRegion()
this.yearsData() this.yearsData()
setTimeout(() => {
},
mounted() {
this.$nextTick(()=>{
this.getCountLandMarketByType() this.getCountLandMarketByType()
this.getCountLandMarketByTypeTd() this.getCountLandMarketByTypeTd()
this.getCountLandMarketByProvince() this.getCountLandMarketByProvince()
this.getCountLandMarketByYear() this.getCountLandMarketByYear()
this.isSkeleton=false; })
}, 1500);
},
mounted() {
}, },
beforeDestroy(){ beforeDestroy(){
...@@ -211,7 +213,8 @@ export default { ...@@ -211,7 +213,8 @@ export default {
getCountLandMarketByType(){ getCountLandMarketByType(){
// this.isSkeleton = true // this.isSkeleton = true
countLandMarketByType({type:'供应方式',yearStr:this.years.join(",")}).then(res => { countLandMarketByType({type:'供应方式',yearStr:this.years.join(",")}).then(res => {
// this.isSkeleton = false this.isSkeleton = false
this.gyflState = false
this.gyfsList=res.data.provinceDate; this.gyfsList=res.data.provinceDate;
var list=[]; var list=[];
for(var i=0;i<res.data.provinceDate.length;i++){ for(var i=0;i<res.data.provinceDate.length;i++){
...@@ -222,12 +225,9 @@ export default { ...@@ -222,12 +225,9 @@ export default {
list.push(obj) list.push(obj)
} }
if(list.length > 0){ if(list.length > 0){
this.gyflState=true
this.$nextTick(() => { this.$nextTick(() => {
this.initChart1(list) this.initChart1(list)
}) })
}else {
this.gyflState=false;
} }
}) })
}, },
...@@ -235,9 +235,9 @@ export default { ...@@ -235,9 +235,9 @@ export default {
// this.isSkeleton = true // this.isSkeleton = true
countLandMarketByType({type:'土地用途',yearStr:this.years1.join(",")}).then(res => { countLandMarketByType({type:'土地用途',yearStr:this.years1.join(",")}).then(res => {
// this.isSkeleton = false // this.isSkeleton = false
this.tdytState=false;
this.tdytList=res.data.provinceDate; this.tdytList=res.data.provinceDate;
if(res.data.provinceDate.length > 0){ if(res.data.provinceDate.length > 0){
this.tdytState=true
var list=[]; var list=[];
for(var i=0;i<10;i++){ for(var i=0;i<10;i++){
var obj={}; var obj={};
...@@ -251,10 +251,7 @@ export default { ...@@ -251,10 +251,7 @@ export default {
this.initChart2(list) this.initChart2(list)
}) })
} }
}else {
this.tdytState=false;
} }
}) })
}, },
getCountLandMarketByProvince(){ getCountLandMarketByProvince(){
...@@ -264,9 +261,8 @@ export default { ...@@ -264,9 +261,8 @@ export default {
if(this.address.length > 0){ if(this.address.length > 0){
params.provinceId=this.address.join(",") params.provinceId=this.address.join(",")
} }
// this.isSkeleton = true
countLandMarketByProvince(params).then(res => { countLandMarketByProvince(params).then(res => {
// this.isSkeleton = false this.topState = false
this.topList=res.data.provinceDate; this.topList=res.data.provinceDate;
var list=[]; var list=[];
if(res.data.provinceDate){ if(res.data.provinceDate){
...@@ -288,10 +284,10 @@ export default { ...@@ -288,10 +284,10 @@ export default {
}, },
getCountLandMarketByYear(){ getCountLandMarketByYear(){
countLandMarketByYear().then(res => { countLandMarketByYear().then(res => {
this.nftjState=false;
this.nftjList=res.data.yearDate; this.nftjList=res.data.yearDate;
var list=[]; var list=[];
if(res.data.yearDate){ if(res.data.yearDate){
this.topState=true
for(var i=0;i<res.data.yearDate.length;i++){ for(var i=0;i<res.data.yearDate.length;i++){
var obj={}; var obj={};
obj.type=res.data.yearDate[i].type; obj.type=res.data.yearDate[i].type;
...@@ -300,11 +296,11 @@ export default { ...@@ -300,11 +296,11 @@ export default {
obj.typeList=res.data.yearDate[i].typeList obj.typeList=res.data.yearDate[i].typeList
list.push(obj) list.push(obj)
} }
if(list.length > 0){
this.$nextTick(() => { this.$nextTick(() => {
this.initChart4(list) this.initChart4(list)
}) })
}else { }
this.topState=false;
} }
}) })
}, },
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="gyflState"> <div class="content_box" v-if="xmtjList.length > 0 && !isSkeleton">
<div class="box-left"> <div class="box-left">
<div id="echarts1" style="height: 280px"></div> <div id="echarts1" style="height: 280px"></div>
</div> </div>
...@@ -38,12 +38,12 @@ ...@@ -38,12 +38,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!gyflState"> <div class="empty" v-if="xmtjList.length === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!zbtjState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国各地区中标统计TOP10</span> <span class="common-title">全国各地区中标统计TOP10</span>
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="tdytState"> <div class="content_box" v-if="topList.length > 0 && !zbtjState">
<div class="box-left"> <div class="box-left">
<div id="echarts2" style="height: 280px"></div> <div id="echarts2" style="height: 280px"></div>
</div> </div>
...@@ -79,12 +79,12 @@ ...@@ -79,12 +79,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!tdytState"> <div class="empty" v-if="topList.length === 0 && !zbtjState">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!jefxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标金额分析</span> <span class="common-title">全国中标金额分析</span>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="tdytState"> <div class="content_box" v-if="zbjeList.length > 0 && !jefxState">
<div class="box-left"> <div class="box-left">
<div id="echarts3" style="height: 280px"></div> <div id="echarts3" style="height: 280px"></div>
</div> </div>
...@@ -118,18 +118,18 @@ ...@@ -118,18 +118,18 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!tdytState"> <div class="empty" v-if="zbjeList.length === 0 && !jefxState">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!qsfxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标趋势分析</span> <span class="common-title">全国中标趋势分析</span>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="zbqsList.length > 0 && !qsfxState">
<div class="box-left"> <div class="box-left">
<div id="echarts4" style="height: 300px"></div> <div id="echarts4" style="height: 300px"></div>
</div> </div>
...@@ -154,8 +154,12 @@ ...@@ -154,8 +154,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="zbqsList.length === 0 && !qsfxState">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!xflState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标下浮率分析</span> <span class="common-title">全国中标下浮率分析</span>
...@@ -164,7 +168,7 @@ ...@@ -164,7 +168,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="tdytState"> <div class="content_box" v-if="xflList.length > 0 && !xflState">
<div class="box-left"> <div class="box-left">
<div id="echarts5" style="height: 280px"></div> <div id="echarts5" style="height: 280px"></div>
</div> </div>
...@@ -189,17 +193,17 @@ ...@@ -189,17 +193,17 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!tdytState"> <div class="empty" v-if="xflList.length === 0 && !xflState">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!xmlxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标业绩项目类型下浮率</span> <span class="common-title">全国中标业绩项目类型下浮率</span>
<el-select @change="handleYears(6)" style="margin-right: 8px" v-model="address" collapse-tags filterable class="form-content-width" placeholder="地区筛选" :popper-append-to-body='false' size="small"> <el-select @change="handleYears(6)" style="margin-right: 8px" v-model="address" clearable collapse-tags filterable class="form-content-width" placeholder="地区筛选" :popper-append-to-body='false' size="small">
<el-option v-for="(item, index) in addressList" :key="index" :label="item.label" :value="item.id" /> <el-option v-for="(item, index) in addressList" :key="index" :label="item.label" :value="item.id" />
</el-select> </el-select>
<el-select v-model="years4" @change="handleYears(6)" collapse-tags filterable class="form-content-width" placeholder="请选择" :popper-append-to-body='false' size="small"> <el-select v-model="years4" @change="handleYears(6)" collapse-tags filterable class="form-content-width" placeholder="请选择" :popper-append-to-body='false' size="small">
...@@ -207,7 +211,7 @@ ...@@ -207,7 +211,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="topList.length > 0 && !isSkeleton"> <div class="content_box" v-if="xmxflList.length > 0 && !isSkeleton">
<div class="box-left"> <div class="box-left">
<div id="echarts6" style="height: 300px"></div> <div id="echarts6" style="height: 300px"></div>
</div> </div>
...@@ -233,7 +237,7 @@ ...@@ -233,7 +237,7 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="topList.length === 0 && !isSkeleton"> <div class="empty" v-if="xmxflList.length === 0 && !xmlxState">
<img class="img" src="@/assets/images/project/empty.png"> <img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div> <div class="p1">抱歉,暂无数据展示</div>
</div> </div>
...@@ -269,24 +273,24 @@ ...@@ -269,24 +273,24 @@
xflList :[], xflList :[],
xmxflList :[], xmxflList :[],
isSkeleton:true, isSkeleton:true,
gyflState:true, zbtjState:true,
tdytState:true, jefxState:true,
topState:true, qsfxState:true,
xflState:true,
xmlxState:true,
} }
}, },
created() { created() {
this.dataRegion() this.dataRegion()
this.yearsData() this.yearsData()
this.getCountBidByType() this.getCountBidByType()
this.$nextTick(() => {
})
setTimeout(() => {
this.getCountBidGroupByProvince() this.getCountBidGroupByProvince()
this.getRangeBidMoney() this.getRangeBidMoney()
this.getRangeBidFiveYears() this.getRangeBidFiveYears()
this.getLowerRateByYear() this.getLowerRateByYear()
this.getLowerRangeTenderType() this.getLowerRangeTenderType()
setTimeout(() => {
}, 1000); }, 1000);
}, },
mounted() { mounted() {
...@@ -322,6 +326,7 @@ ...@@ -322,6 +326,7 @@
yearStr:this.years1.join(",") yearStr:this.years1.join(",")
} }
countBidGroupByProvince(params).then(res => { countBidGroupByProvince(params).then(res => {
this.zbtjState=false;
this.topList=res.data; this.topList=res.data;
if(res.data){ if(res.data){
this.$nextTick(() => { this.$nextTick(() => {
...@@ -335,6 +340,7 @@ ...@@ -335,6 +340,7 @@
yearStr:this.years2.join(",") yearStr:this.years2.join(",")
} }
rangeBidMoney(params).then(res => { rangeBidMoney(params).then(res => {
this.jefxState=false;
this.zbjeList=res.data; this.zbjeList=res.data;
var list=[]; var list=[];
for(var i=0;i<res.data.length;i++){ for(var i=0;i<res.data.length;i++){
...@@ -353,6 +359,7 @@ ...@@ -353,6 +359,7 @@
}, },
getRangeBidFiveYears(){ getRangeBidFiveYears(){
rangeBidFiveYears().then(res => { rangeBidFiveYears().then(res => {
this.qsfxState=false;
this.zbqsList=res.data; this.zbqsList=res.data;
if(res.data){ if(res.data){
this.$nextTick(() => { this.$nextTick(() => {
...@@ -366,6 +373,7 @@ ...@@ -366,6 +373,7 @@
yearStr:this.years3 yearStr:this.years3
} }
lowerRateByYear(params).then(res => { lowerRateByYear(params).then(res => {
this.xflState=false;
for (var i=0; i<res.data.length; i++){ for (var i=0; i<res.data.length; i++){
res.data[i].rate=res.data[i].rate.toFixed(2) res.data[i].rate=res.data[i].rate.toFixed(2)
} }
...@@ -385,7 +393,7 @@ ...@@ -385,7 +393,7 @@
params.provinceId=this.address params.provinceId=this.address
} }
lowerRangeTenderType(params).then(res => { lowerRangeTenderType(params).then(res => {
this.xmlxState=false;
for (var i=0; i<res.data.length; i++){ for (var i=0; i<res.data.length; i++){
for (let j=0; j<res.data[i].typeList.length; j++){ for (let j=0; j<res.data[i].typeList.length; j++){
if(res.data[i].typeList[j].tenderType === '施工'){ if(res.data[i].typeList[j].tenderType === '施工'){
...@@ -526,7 +534,6 @@ ...@@ -526,7 +534,6 @@
}, },
initChart2(data) { initChart2(data) {
this.$nextTick(() => { this.$nextTick(() => {
// console.log(typeList)
let myChart = echarts.init(document.getElementById("echarts2")) let myChart = echarts.init(document.getElementById("echarts2"))
let seriesData=[] let seriesData=[]
let color=['#FCD68A', '#67B3FD', '#FFB8AD', '#FFD7AD', '#A9F1E5', '#D0FAB7', '#ADC0FF', '#BEECFF', '#81D5BC', '#FFE48A']; let color=['#FCD68A', '#67B3FD', '#FFB8AD', '#FFD7AD', '#A9F1E5', '#D0FAB7', '#ADC0FF', '#BEECFF', '#81D5BC', '#FFE48A'];
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<el-tab-pane label="全国商机项目分析" name="second"></el-tab-pane> <el-tab-pane label="全国商机项目分析" name="second"></el-tab-pane>
<el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane> <el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane>
<el-tab-pane label="全国建筑企业分析" name="fourth"></el-tab-pane> <el-tab-pane label="全国建筑企业分析" name="fourth"></el-tab-pane>
<el-tab-pane label="BI统计分析" name="five"></el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
...@@ -13,6 +14,7 @@ ...@@ -13,6 +14,7 @@
<Sjxmfx v-if="activeName === 'second'"></Sjxmfx> <Sjxmfx v-if="activeName === 'second'"></Sjxmfx>
<Zhongbiao v-if="activeName === 'third'"></Zhongbiao> <Zhongbiao v-if="activeName === 'third'"></Zhongbiao>
<Jzqyfx v-if="activeName === 'fourth'"></Jzqyfx> <Jzqyfx v-if="activeName === 'fourth'"></Jzqyfx>
<BI v-if="activeName === 'five'"></BI>
</div> </div>
</template> </template>
...@@ -21,10 +23,11 @@ ...@@ -21,10 +23,11 @@
import Sjxmfx from './component/sjxmfx' import Sjxmfx from './component/sjxmfx'
import Jzqyfx from './component/jzqyfx' import Jzqyfx from './component/jzqyfx'
import Zhongbiao from './component/zhongbiao' import Zhongbiao from './component/zhongbiao'
import BI from './component/BI'
export default { export default {
name: 'NationalEconomies', name: 'NationalEconomies',
components: { components: {
Economic,Sjxmfx,Jzqyfx,Zhongbiao Economic,Sjxmfx,Jzqyfx,Zhongbiao,BI
}, },
data() { data() {
return { return {
......
<template>
<div class="app-container">
区域资讯
</div>
</template>
<script>
export default {
name: 'Rmation',
data() {
return {
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
</style>
...@@ -35,9 +35,9 @@ module.exports = { ...@@ -35,9 +35,9 @@ module.exports = {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: `http://47.104.91.229:9099/prod-api`, // target: `http://47.104.91.229:9099/prod-api`,
target: `http://192.168.0.165:9098`,//施 // target: `http://192.168.0.165:9098`,//施
// target: `http://192.168.60.6:9098`,//谭 // target: `http://192.168.60.6:9098`,//谭
// target: `http://139.9.157.49:9099`,//测试 target: `http://139.9.157.49:9099/prod-api`,//测试
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: '' ['^' + process.env.VUE_APP_BASE_API]: ''
......
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