Commit 3591344e authored by huangjie's avatar huangjie

Merge branch 'dev20230707' of http://192.168.60.201/root/dsk-operate-sys into dev20230707

parents c218ac48 fad6a489
...@@ -85,8 +85,6 @@ export function countNewsBidByProvince(param) { ...@@ -85,8 +85,6 @@ export function countNewsBidByProvince(param) {
}) })
} }
//全国商机项目分析-全国公招项目统计 //全国商机项目分析-全国公招项目统计
export function countNewsBidByYear() { export function countNewsBidByYear() {
return request({ return request({
...@@ -94,18 +92,18 @@ export function countNewsBidByYear() { ...@@ -94,18 +92,18 @@ export function countNewsBidByYear() {
method: 'POST', method: 'POST',
}) })
} }
//全国商机项目分析-全国土地交易项目年份统计 //全国商机项目分析-全国各年度招标月份统计
export function countBidGroupByProvince(param) { export function countNewsBidByMonth(param) {
return request({ return request({
url: '/marketAnalysis/countBidGroupByProvince', url: '/marketAnalysis/countNewsBidByMonth',
method: 'POST', method: 'POST',
data: param data: param
}) })
} }
//全国商机项目分析-全国各年度招标月份统计 //全国商机项目分析-全国土地交易项目年份统计
export function countNewsBidByMonth(param) { export function countBidGroupByProvince(param) {
return request({ return request({
url: '/marketAnalysis/countNewsBidByMonth', url: '/marketAnalysis/countBidGroupByProvince',
method: 'POST', method: 'POST',
data: param data: param
}) })
......
...@@ -74,6 +74,19 @@ export const constantRoutes = [ ...@@ -74,6 +74,19 @@ export const constantRoutes = [
} }
] ]
}, },
{
path: '',
component: Layout,
redirect: 'urban',
children: [
{
path: '/macro/urban',
component: () => import('@/views/macro/urban'),
name: 'Urban',
meta: { title: '城投平台', icon: 'macro' }
}
]
},
{ {
path: '/user', path: '/user',
component: Layout, component: Layout,
......
...@@ -710,10 +710,16 @@ export default { ...@@ -710,10 +710,16 @@ export default {
this.$parent.handleClick('second', data); this.$parent.handleClick('second', data);
break; break;
case 2: case 2:
this.$router.push({ // this.$router.push({
path: '/macro/urban', // path: '/macro/urban',
query:{ // query:{
provinceId:this.dataQuery.provinceId, // provinceId:this.dataQuery.provinceId,
// province:this.dataQuery.province,
// }
// })
this.$router.push({name: 'Urban',
params: {
provinceId: this.dataQuery.provinceId,
province:this.dataQuery.province, province:this.dataQuery.province,
} }
}) })
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import { countGroupByMonth,countGroupByProvince,getYear } from '@/api/macro/macro' import { countGroupByMonth,countGroupByProvince,getYear } from '@/api/macro/macro'
import Tdjy from './tdjy' import Tdjy from './tdjy'
import Zhaobiao from './zhaobiao1' import Zhaobiao from './zhaobiao'
export default { export default {
name: 'NationalEconomies', name: 'NationalEconomies',
components: { components: {
......
<template> <template>
<div> <div class="tdjy">
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton" class="tdjy">
<p class="text_p">注:数据来源大司空建筑大数据平台,统计范围为全国公开的土地交易项目,未公开的不含在内</p> <p class="text_p">注:数据来源大司空建筑大数据平台,统计范围为全国公开的土地交易项目,未公开的不含在内</p>
<div class="td_content"> <skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton" 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>
...@@ -12,7 +11,7 @@ ...@@ -12,7 +11,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="gyfsList.length > 0">
<div class="box-left"> <div class="box-left">
<div id="echarts1" style="height: 280px"></div> <div id="echarts1" style="height: 280px"></div>
</div> </div>
...@@ -37,8 +36,12 @@ ...@@ -37,8 +36,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="gyfsList.length === 0">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div>
</div> </div>
<div class="td_content"> <div v-if="!isSkeleton" 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>
...@@ -47,7 +50,7 @@ ...@@ -47,7 +50,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="tdytList.length > 0 && !isSkeleton">
<div class="box-left"> <div class="box-left">
<div id="echarts2" style="height: 280px"></div> <div id="echarts2" style="height: 280px"></div>
</div> </div>
...@@ -72,8 +75,12 @@ ...@@ -72,8 +75,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="tdytList.length === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div>
</div> </div>
<div class="td_content"> <div v-if="!isSkeleton" 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>
...@@ -85,7 +92,7 @@ ...@@ -85,7 +92,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="topList.length > 0 && !isSkeleton">
<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>
...@@ -110,8 +117,12 @@ ...@@ -110,8 +117,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="topList.length === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div>
</div> </div>
<div class="td_content"> <div v-if="!isSkeleton" 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>
...@@ -144,7 +155,6 @@ ...@@ -144,7 +155,6 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
...@@ -182,12 +192,12 @@ export default { ...@@ -182,12 +192,12 @@ export default {
this.dataRegion() this.dataRegion()
this.yearsData() this.yearsData()
setTimeout(() => { setTimeout(() => {
this.isSkeleton=false;
this.getCountLandMarketByType() this.getCountLandMarketByType()
this.getCountLandMarketByTypeTd() this.getCountLandMarketByTypeTd()
this.getCountLandMarketByProvince() this.getCountLandMarketByProvince()
this.getCountLandMarketByYear() this.getCountLandMarketByYear()
}, 1000); this.isSkeleton=false;
}, 1500);
}, },
mounted() { mounted() {
}, },
...@@ -208,9 +218,11 @@ export default { ...@@ -208,9 +218,11 @@ export default {
obj.rate=res.data.provinceDate[i].rate; obj.rate=res.data.provinceDate[i].rate;
list.push(obj) list.push(obj)
} }
this.$nextTick(() => { if(list.length > 0){
this.initChart1(list) this.$nextTick(() => {
}) this.initChart1(list)
})
}
}) })
}, },
getCountLandMarketByTypeTd(){ getCountLandMarketByTypeTd(){
...@@ -218,17 +230,22 @@ export default { ...@@ -218,17 +230,22 @@ export default {
countLandMarketByType({type:'土地用途',yearStr:this.years1.join(",")}).then(res => { countLandMarketByType({type:'土地用途',yearStr:this.years1.join(",")}).then(res => {
// this.isSkeleton = false // this.isSkeleton = false
this.tdytList=res.data.provinceDate; this.tdytList=res.data.provinceDate;
var list=[]; if(res.data.provinceDate.length > 0){
for(var i=0;i<10;i++){ var list=[];
var obj={}; for(var i=0;i<10;i++){
obj.name=res.data.provinceDate[i].type; var obj={};
obj.value=res.data.provinceDate[i].count; obj.name=res.data.provinceDate[i].type;
obj.rate=res.data.provinceDate[i].rate; obj.value=res.data.provinceDate[i].count;
list.push(obj) obj.rate=res.data.provinceDate[i].rate;
list.push(obj)
}
if(list.length > 0){
this.$nextTick(() => {
this.initChart2(list)
})
}
} }
this.$nextTick(() => {
this.initChart2(list)
})
}) })
}, },
getCountLandMarketByProvince(){ getCountLandMarketByProvince(){
...@@ -252,9 +269,11 @@ export default { ...@@ -252,9 +269,11 @@ export default {
obj.typeList=res.data.provinceDate[i].typeList obj.typeList=res.data.provinceDate[i].typeList
list.push(obj) list.push(obj)
} }
this.$nextTick(() => { if(list.length > 0){
this.initChart3(list) this.$nextTick(() => {
}) this.initChart3(list)
})
}
} }
}) })
}, },
...@@ -710,7 +729,21 @@ export default { ...@@ -710,7 +729,21 @@ export default {
font-size: 14px; font-size: 14px;
margin: 0; margin: 0;
} }
.empty{
margin: 0 auto;
height: 300px;
text-align: center;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 70px;
}
.p1{
color: #333333;
font-size: 16px;
}
}
.query-params{ .query-params{
.common-title{ .common-title{
margin-right: 24px; margin-right: 24px;
......
<template> <template>
<div> <div class="tdjy">
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton" class="tdjy">
<p class="text_p">注:数据来源大司空建筑大数据平台,统计范围为全国公开的招标项目,未公开的不含在内</p> <p class="text_p">注:数据来源大司空建筑大数据平台,统计范围为全国公开的招标项目,未公开的不含在内</p>
<div class="td_content"> <skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton" 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>
...@@ -34,7 +33,7 @@ ...@@ -34,7 +33,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="td_content"> <div v-if="!isSkeleton" 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>
...@@ -46,7 +45,7 @@ ...@@ -46,7 +45,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="topList.length > 0 && !isSkeleton">
<div class="box-left" style="width: 60%;"> <div class="box-left" style="width: 60%;">
<div id="echarts2" style="height: 300px"></div> <div id="echarts2" style="height: 300px"></div>
</div> </div>
...@@ -71,8 +70,12 @@ ...@@ -71,8 +70,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="topList.length === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div>
</div> </div>
<div class="td_content"> <div v-if="!isSkeleton" 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>
...@@ -81,7 +84,7 @@ ...@@ -81,7 +84,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box"> <div class="content_box" v-if="zbyfList.length > 0 && !isSkeleton">
<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>
...@@ -105,16 +108,20 @@ ...@@ -105,16 +108,20 @@
<el-table-column prop="rate" label="占比(%)" align="right" :formatter="formatStatus" width="160" /> <el-table-column prop="rate" label="占比(%)" align="right" :formatter="formatStatus" width="160" />
</el-table> </el-table>
</div> </div>
</div>
<div class="empty" v-if="zbyfList.length === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,暂无数据展示</div>
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import dataRegion from '@/assets/json/dataRegion' import dataRegion from '@/assets/json/dataRegion'
import { countNewsBidByYear,countBidGroupByProvince,countNewsBidByMonth } from '@/api/macro/macro' import { countNewsBidByYear,countNewsBidByProvince,countNewsBidByMonth } from '@/api/macro/macro'
import skeleton from '../../component/skeleton' import skeleton from '../../component/skeleton'
export default { export default {
name: 'NationalEconomies', name: 'NationalEconomies',
...@@ -135,7 +142,7 @@ ...@@ -135,7 +142,7 @@
xmtjList:[], xmtjList:[],
topList:[], topList:[],
zbyfList:[], zbyfList:[],
isSkeleton:false, isSkeleton:true,
} }
}, },
created() { created() {
...@@ -144,9 +151,9 @@ ...@@ -144,9 +151,9 @@
setTimeout(() => { setTimeout(() => {
this.isSkeleton=false; this.isSkeleton=false;
this.getcountNewsBidByYear() this.getcountNewsBidByYear()
this.getCountBidGroupByProvince() this.getCountNewsBidByProvince()
this.getCountNewsBidByMonth() this.getCountNewsBidByMonth()
}, 1500); }, 1000);
}, },
mounted() { mounted() {
}, },
...@@ -162,7 +169,7 @@ ...@@ -162,7 +169,7 @@
}) })
}) })
}, },
getCountBidGroupByProvince(){ getCountNewsBidByProvince(){
let params={ let params={
yearStr:this.years1.join(",") yearStr:this.years1.join(",")
} }
...@@ -170,43 +177,24 @@ ...@@ -170,43 +177,24 @@
params.provinceId=this.address.join(",") params.provinceId=this.address.join(",")
} }
// this.isSkeleton = true // this.isSkeleton = true
countBidGroupByProvince(params).then(res => { countNewsBidByProvince(params).then(res => {
// this.isSkeleton = false // this.isSkeleton = false
this.topList=res.data; this.topList=res.data.provinceDate;
console.log(res.data) if(res.data.provinceDate.length > 0){
var list=[]; this.$nextTick(() => {
// if(res.data.provinceDate){ this.initChart2(res.data.provinceDate)
// for(var i=0;i<res.data.provinceDate.length;i++){ })
// var obj={}; }
// obj.province=res.data.provinceDate[i].province;
// obj.value=res.data.provinceDate[i].count;
// obj.rate=res.data.provinceDate[i].rate;
// obj.typeList=res.data.provinceDate[i].typeList
// list.push(obj)
// }
// this.$nextTick(() => {
// this.initChart3(list)
// })
// }
}) })
}, },
getCountNewsBidByMonth(){ getCountNewsBidByMonth(){
countNewsBidByMonth({yearStr:this.years2.join(",")}).then(res => { countNewsBidByMonth({yearStr:this.years2.join(",")}).then(res => {
this.zbyfList=res.data.monthDate; this.zbyfList=res.data.monthDate;
// var list=[]; if(res.data.monthDate.length > 0){
// if(res.data.yearDate){ this.$nextTick(() => {
// for(var i=0;i<res.data.yearDate.length;i++){ this.initChart3(res.data.monthDate)
// var obj={}; })
// obj.type=res.data.yearDate[i].type; }
// obj.value=res.data.yearDate[i].count;
// obj.rate=res.data.yearDate[i].rate;
// obj.typeList=res.data.yearDate[i].typeList
// list.push(obj)
// }
// this.$nextTick(() => {
// this.initChart4(list)
// })
// }
}) })
}, },
initChart1(data) { initChart1(data) {
...@@ -427,7 +415,7 @@ ...@@ -427,7 +415,7 @@
}, },
grid: { grid: {
top:30, top:30,
left:50, left:100,
right:20, right:20,
bottom:60, bottom:60,
}, },
...@@ -535,15 +523,15 @@ ...@@ -535,15 +523,15 @@
show: true, show: true,
interval: 0 interval: 0
}, },
data: data.map(item => item.type), data: data.map(item => item.label),
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
}, },
grid: { grid: {
top:30, top:30,
left:50, left:80,
right:20, right:40,
bottom:60, bottom:60,
}, },
color:['#FCD68A', '#FFE48A', '#FFB8AD', '#FFD7AD', '#A9F1E5', '#D0FAB7', '#ADC0FF', '#BEECFF', '#81D5BC', '#67B3FD', '#E9C8FF', '#56BFA1', '#6799FD'], color:['#FCD68A', '#FFE48A', '#FFB8AD', '#FFD7AD', '#A9F1E5', '#D0FAB7', '#ADC0FF', '#BEECFF', '#81D5BC', '#67B3FD', '#E9C8FF', '#56BFA1', '#6799FD'],
...@@ -576,7 +564,7 @@ ...@@ -576,7 +564,7 @@
handleYears(key){ handleYears(key){
switch (key) { switch (key) {
case 1: case 1:
this.getCountBidGroupByProvince() this.getCountNewsBidByProvince()
break; break;
case 2: case 2:
this.getCountNewsBidByMonth() this.getCountNewsBidByMonth()
...@@ -658,7 +646,21 @@ ...@@ -658,7 +646,21 @@
font-size: 14px; font-size: 14px;
margin: 0; margin: 0;
} }
.empty{
margin: 0 auto;
height: 300px;
text-align: center;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 70px;
}
.p1{
color: #333333;
font-size: 16px;
}
}
.query-params{ .query-params{
.common-title{ .common-title{
margin-right: 24px; margin-right: 24px;
......
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