Commit c56948d5 authored by danfuman's avatar danfuman

修改

parent 609878a7
......@@ -85,6 +85,14 @@ export function regional(param) {
data: param
})
}
//地区经济-获取当前位置
export function location(param) {
return request({
url: '/economic/location',
method: 'POST',
data: param
})
}
//地区经济-主要指标列表
export function regionalList(param) {
return request({
......@@ -94,5 +102,79 @@ export function regionalList(param) {
})
}
//产业结构-按年份选择 各个项目类型项目总数
export function bidGroupCountByProjectType(param) {
return request({
url: '/marketAnalysis/bidGroupCountByProjectType',
method: 'POST',
data: param
})
}
//产业结构-近两年各个项目类型项目总数及金额占比
export function bidMoneyGroupByProjectType(param) {
return request({
url: '/marketAnalysis/bidMoneyGroupByProjectType',
method: 'POST',
data: param
})
}
//对比经济
export function regionalCompare(param) {
return request({
url: '/economic/regional/compare',
method: 'POST',
data: param
})
}
//区域专项债-项目类别统计
export function statistics(param) {
return request({
url: '/specialPurposeBonds/bond/statistics',
method: 'POST',
data: param
})
}
//区域专项债-专项债项目分页列表
export function projectsPage(param) {
return request({
url: '/specialPurposeBonds/projects/page',
method: 'POST',
data: param
})
}
//区域专项债-专项债项目详情
export function details(param) {
return request({
url: '/specialPurposeBonds/details',
method: 'POST',
data: param
})
}
//区域专项债-专项债项目详情-专项债分页列表
export function bondPage(param) {
return request({
url: '/specialPurposeBonds/bond/page',
method: 'POST',
data: param
})
}
//区域企业
export function enterprise(param) {
return request({
url: '/enterprise/page',
method: 'POST',
data: param
})
}
......@@ -116,7 +116,7 @@ export const constantRoutes = [
]
},
{
path: '/financing',
path: '/financingDetails',
component: Layout,
hidden: true,
redirect: 'noredirect',
......@@ -227,9 +227,9 @@ export const constantRoutes = [
}
]
},
]
// 动态路由,基于用户权限动态去加载
......
......@@ -83,6 +83,7 @@
<el-table
:data="getValues"
:show-header="false"
:cell-style="rowStyle"
border
>
<el-table-column
......@@ -100,7 +101,7 @@
<script>
import dataRegion from '@/assets/json/dataRegion'
import { nationalPage,getYears } from '@/api/macro/macro'
import { regionalCompare,getYears } from '@/api/macro/macro'
export default {
name: 'comparison',
props:{
......@@ -112,18 +113,8 @@ export default {
year: '',
},
yearOptions: [],
tableData: [
{index:0},
{index:1},
{index:2},
{index:3},
{index:4},
],
tableData: [{},{},{},{},{}],
headers: [
{
prop: 'year',
label: '指标',
},
{
prop: 'name',
label: '经济',
......@@ -190,7 +181,7 @@ export default {
},
{
prop: 'gbrGrowth',
label: '般公共预算收入增速',
label: '一般公共预算收入增速(%)',
},
{
prop: 'taxIncome',
......@@ -254,23 +245,23 @@ export default {
},
{
prop: 'fiscalSelfSufficiencyRate',
label: '财政自给率',
label: '财政自给率(%)',
},
{
prop: 'govDebtToGdpRate',
label: '负债率',
label: '负债率(%)',
},
{
prop: 'govDebtToGdpRateWild',
label: '负债率-宽口径',
label: '负债率(宽口径)(%)',
},
{
prop: 'govDebtRate',
label: '债务率',
label: '债务率(%)',
},
{
prop: 'govDebtRateWild',
label: '债务率-宽口径',
label: '债务率(宽口径)(%)',
},
],
props: {
......@@ -293,6 +284,7 @@ export default {
value3Flag:false,
value4Flag:false,
value5Flag:false,
regionData:[]
}
},
created() {
......@@ -314,10 +306,13 @@ export default {
}
},
methods: {
getData(params){
nationalPage(params).then(res => {
console.log(res.data)
// this.tableData = res.data.list
getData(params,index){
if(this.dataQuery.id){
params.id=this.dataQuery.id
}
regionalCompare(params).then(res => {
this.tableData.splice(index-1,1,res.data)
this.$forceUpdate();
})
},
//地区
......@@ -392,7 +387,22 @@ export default {
this.value5Flag=true
break;
}
const params = { pageNum: this.pageIndex, pageSize: this.pageSize, year: this.queryParams.year,type:3 }
let code=[];
for (var i in this.regionData) {
code=this.regionData[i].path
}
if(code.length >= 1){
params.provinceId=code[0]
}
if(code.length >= 2){
params.cityId=code[1]
}
if(code.length >= 3){
params.areaId=code[2]
}
this.getData(params,index)
}
},
handleChange(index) {
......@@ -435,29 +445,42 @@ export default {
}
}
const params = { pageNum: this.pageIndex, pageSize: this.pageSize, year: this.queryParams.year,type:3 }
let provinceCode = [],cityCode = [],countyCode = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && cityCode.push(arr[i].value);
!arr[i].hasChildren && countyCode.push(arr[i].value);
}
} else {
provinceCode.push(arr[i].value)
}
}
if(provinceCode.length > 0){
params.provinceIds=provinceCode
}
if(cityCode.length > 0){
params.cityIds=cityCode
}
if(countyCode.length > 0){
params.areaIds=countyCode
}
this.regionData=arr;
// const params = { pageNum: this.pageIndex, pageSize: this.pageSize, year: this.queryParams.year,type:3 }
// let provinceCode = [],cityCode = [],countyCode = [];
// let code=[];
// for (var i in arr) {
// code=arr[i].path
// if (arr[i].parent) {
// if (!arr[i].parent.checked) {
// arr[i].hasChildren && cityCode.push(arr[i].value);
// !arr[i].hasChildren && countyCode.push(arr[i].value);
// }
// } else {
// provinceCode.push(arr[i].value)
// }
// }
// if(provinceCode.length > 0){
// params.provinceIds=provinceCode
// }
// if(cityCode.length > 0){
// params.cityIds=cityCode
// }
// if(countyCode.length > 0){
// params.areaIds=countyCode
// }
// if(code.length >= 1){
// params.provinceId=code[0]
// }
// if(code.length >= 2){
// params.cityId=code[1]
// }
// if(code.length >= 3){
// params.areaId=code[2]
// }
this.getData(params)
// this.getData(params)
},
handleDelete(index){
......@@ -479,6 +502,22 @@ export default {
break;
}
},
formatStatus: function(row, column, cellValue) {
if(row.title === '经济'||row.title === '财政'||row.title === '债务'){
return cellValue
}else {
return cellValue? cellValue : '-'
}
},
rowStyle(row){
if (row.row.title === '经济'||row.row.title === '财政'||row.row.title === '债务'){
return {
// background: '#FAF5EB',
color:'#232323',
fontWeight: 'bold'
}
}
}
}
}
</script>
......
......@@ -5,7 +5,7 @@
<span class="common-title">主要指标</span>
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="year">
<el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择年度">
<el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择年度" @change="getGroupCount">
<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.year" :value="item.year" />
</el-select>
</el-form-item>
......@@ -29,16 +29,16 @@
highlight-current-row
>
<el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="产业类型" prop="type"></el-table-column>
<el-table-column label="2022年">
<el-table-column prop="je" label="金额(亿元)"> </el-table-column>
<el-table-column prop="zb" label="占比" sortable> </el-table-column>
<el-table-column label="产业类型" prop="projectType"></el-table-column>
<el-table-column :label="oneYear">
<el-table-column prop="money" label="金额(亿元)"> </el-table-column>
<el-table-column prop="rate" label="占比"> </el-table-column>
</el-table-column>
<el-table-column label="2021年">
<el-table-column prop="province" label="金额(亿元)" sortable> </el-table-column>
<el-table-column prop="province" label="占比" sortable > </el-table-column>
<el-table-column :label="twoYear">
<el-table-column prop="lastMoney" label="金额(亿元)"> </el-table-column>
<el-table-column prop="lastRate" label="占比" > </el-table-column>
</el-table-column>
</el-table>
</div>
......@@ -48,11 +48,14 @@
<script>
import * as echarts from 'echarts';
import { nationalPage,getYears } from '@/api/macro/macro'
import { bidGroupCountByProjectType,bidMoneyGroupByProjectType,getYears } from '@/api/macro/macro'
export default {
name: 'industrialStructure',
props:{
dataQuery:{}
dataQuery: {
type: Object,
default: {}
},
},
data() {
return {
......@@ -61,46 +64,11 @@ export default {
address: ''
},
yearOptions: [],
tableData:[
{
type:'房建工程',
je:'29,175.61',
zb:'26%'
},
{
type:'市政工程',
je:'29,175.61',
zb:'26%'
},
{
type:'公路工程',
je:'29,175.61',
zb:'26%'
},
{
type:'机电工程',
je:'29,175.61',
zb:'26%'
},
],
tableData:[],
tableLoading: false,
pageIndex: 1,
pageSize: 10,
tableDataTotal: 0,
data:[
{
name: '房建工程',
value: 11
},
{
name: '市政工程',
value: 22
},
{
name: '公路工程',
value: 33
}
]
data:[],
oneYear:'',
twoYear:'',
}
},
created() {
......@@ -108,14 +76,60 @@ export default {
this.yearOptions=res.data.reverse();
this.queryParams.year = this.yearOptions[0].year;
})
this.getData()
this.getGroupCount()
this.$nextTick(()=>{
this.initChart()
})
},
methods: {
handleClick() {
getData(){
let mydate=new Date();
var startTime, endTime, Year
Year = mydate.getFullYear();
startTime=mydate.getFullYear()-2+'-01-01';
endTime=mydate.getFullYear()-1+'-12-31';
this.oneYear=mydate.getFullYear()-1+'年';
this.twoYear=mydate.getFullYear()-2+'年';
let params={startDate:startTime,endDate:endTime,province:this.dataQuery.provinceId}
bidMoneyGroupByProjectType(params).then(res => {
let list=res.data[1].type
for (let i=0; i<res.data[0].type.length; i++){
for (let j=0; j<list.length; j++){
if(res.data[0].type[i].projectType === list[j].projectType){
list[j].lastMoney=res.data[0].type[i].money;
list[j].lastRate=res.data[0].type[i].rate;
}
}
}
this.tableData=list.reverse()
})
},
getGroupCount(){
let mydate=new Date();
let startTime=''
let endTime=''
if(!this.queryParams.year){
startTime=mydate.getFullYear()-1+'-01-01';
endTime=mydate.getFullYear()-1+'-12-31';
}else {
startTime=this.queryParams.year+'-01-01';
endTime=this.queryParams.year+'-12-31';
}
bidGroupCountByProjectType({startDate:startTime,endDate:endTime}).then(res => {
let list=[]
for(let i=0; i<res.data.length; i++){
let item={};
item.name=res.data[i].type
item.value=res.data[i].count
list.push(item);
}
this.data=list;
this.initChart()
})
},
initChart() {
let myChart = echarts.init(document.getElementById("echarts"))
let option ={
......@@ -134,7 +148,7 @@ export default {
},
//鼠标悬停时显示的样式
tooltip: {
extraCssText:'width:100px!important;',
extraCssText:'width:120px!important;',
formatter: function (params){
var result = ''
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.name +'</p>'
......@@ -157,7 +171,8 @@ export default {
]
}
myChart.setOption(option);
}
},
}
}
</script>
......
......@@ -52,7 +52,10 @@
export default {
name: 'localEconomy',
props:{
dataQuery:{}
dataQuery: {
type: Object,
default: {}
},
},
data() {
return {
......
......@@ -4,45 +4,71 @@
<div class="common-title">经济数据</div>
<div class="content-box">
<div class="item">
<div class="item-title"><i style="background: #4E8EFF;"></i>2022年GDP</div>
<div class="item-count"><span>29,129.03 </span>亿<img src="@/assets/images/economies/icon_up.png"></div>
<div class="item-title"><i style="background: #4E8EFF;"></i>{{recentlyYear.year}}年GDP</div>
<div class="item-count">
<span>{{recentlyYear.gdp}}</span>亿
<img v-if="recentlyYear.gdpGrowth > 0" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsGDP" style="height: 75px;"></div>
<div class="item-text up">较2021年上升<span>26.7%</span></div>
<div class="item-text up" v-if="recentlyYear.gdpGrowth > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowth}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpGrowth).toString().substring(1)}}%</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #718AFF;"></i>2022年GDP增速</div>
<div class="item-count"><span>29,129.03 </span>亿<img src="@/assets/images/economies/icon_down.png"></div>
<div class="item-title"><i style="background: #718AFF;"></i>{{recentlyYear.year}}年GDP增速</div>
<div class="item-count">
<span>{{recentlyYear.gdpGrowth}}</span>%
<img v-if="(recentlyYear.gdpGrowth-nextYearMap.gdpGrowth) > 0" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsZS" style="height: 75px;"></div>
<div class="item-text down">较2021年下降<span>26.7%</span></div>
<div class="item-text up" v-if="(recentlyYear.gdpGrowth-nextYearMap.gdpGrowth) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowth-nextYearMap.gdpGrowth}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{(this.recentlyYear.gdpGrowth-this.nextYearMap.gdpGrowth).toFixed(2).toString().substring(1)}}%</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #3AD0D1;"></i>2022年人口</div>
<div class="item-count"><span>29,129.03 </span>亿<img src="@/assets/images/economies/icon_down.png"></div>
<div class="item-title"><i style="background: #3AD0D1;"></i>{{recentlyYear.year}}年人口</div>
<div class="item-count">
<span>{{recentlyYear.population}}</span>
<img v-if="recentlyYear.populationGrowthRate > 0" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsRK" style="height: 75px;"></div>
<div class="item-text down">较2021年下降<span>26.7%</span></div>
<div class="item-text up" v-if="recentlyYear.populationGrowthRate > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.populationGrowthRate}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{recentlyYear.populationGrowthRate}}%</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #FFBE5D;"></i>2022年一般公共预算收入</div>
<div class="item-count"><span>29,129.03 </span>亿<img src="@/assets/images/economies/icon_up.png"></div>
<div class="item-title"><i style="background: #FFBE5D;"></i>{{recentlyYear.year}}年一般公共预算收入</div>
<div class="item-count">
<span>{{recentlyYear.gbr}}</span>亿
<img v-if="recentlyYear.gbrGrowth > 0" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsSR" style="height: 75px;"></div>
<div class="item-text up">较2021年上升<span>26.7%</span></div>
<div class="item-text up" v-if="recentlyYear.gbrGrowth > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gbrGrowth}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gbrGrowth).toString().substring(1)}}%</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #FF8935;"></i>2000年地方政府债务余额</div>
<div class="item-count"><span>29,129.03 </span>亿<img src="@/assets/images/economies/icon_up.png"></div>
<div class="item-title"><i style="background: #FF8935;"></i>{{recentlyYear.year}}年地方政府债务余额</div>
<div class="item-count">
<span>{{recentlyYear.govDebtBalance}}</span>亿
<img v-if="recentlyYear.govDebtBalance > nextYearMap.govDebtBalance" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsYE" style="height: 75px;"></div>
<div class="item-text up">较2021年上升<span>26.7%</span></div>
<div class="item-text up" v-if="recentlyYear.govDebtBalance > nextYearMap.govDebtBalance">
{{nextYearMap.year}}年上升<span>{{((recentlyYear.govDebtBalance - nextYearMap.govDebtBalance)/nextYearMap.govDebtBalance*100).toFixed(2)}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{((recentlyYear.govDebtBalance - nextYearMap.govDebtBalance)/nextYearMap.govDebtBalance*100).toFixed(2).toString().substring(1)}}%</span></div>
</div>
</div>
</div>
<div class="content content2">
<div class="common-title">经济信息</div>
<div class="content-box">
<span><img src="@/assets/images/economies/icon_1.png">下属辖区 <label>38</label><i></i></span>
<span><img src="@/assets/images/economies/icon_2.png">地方债余额 <label>10,567.32</label><i>亿</i></span>
<span><img src="@/assets/images/economies/icon_3.png">专项债项目 <label>10</label><i></i></span>
<span><img src="@/assets/images/economies/icon_4.png">城投平台 <label>17</label><i></i></span>
<span><img src="@/assets/images/economies/icon_5.png">城投平台有息债务 <label>17,710.19</label><i>亿</i></span>
<span><img src="@/assets/images/economies/icon_1.png">下属辖区 <label>{{recentlyYear.subordinateJurisdiction}}<i></i></label></span>
<span><img src="@/assets/images/economies/icon_2.png">城投平台 <label>{{recentlyYear.urbanInvestmentPlatform}}<i>亿</i></label></span>
<span><img src="@/assets/images/economies/icon_3.png">城投平台授信余额 <label>{{recentlyYear.creditBalance}}<i></i></label></span>
<span><img src="@/assets/images/economies/icon_4.png">城投平台营收账款 <label>{{recentlyYear.accountsReceivable}}<i></i></label></span>
<span><img src="@/assets/images/economies/icon_5.png">城投平台有息债务 <label>{{recentlyYear.uipInterestBearingDebt}}<i>亿</i></label></span>
</div>
</div>
<div class="content content3">
......@@ -77,15 +103,17 @@
<script>
import * as echarts from 'echarts';
import { regional,regionalList } from '@/api/macro/macro'
import { regional,regionalList,location } from '@/api/macro/macro'
export default {
name: 'regionalEconomy',
props:{
dataQuery:{}
dataQuery: {
type: Object,
default: {}
},
},
data() {
return {
activeName: 'first',
tableData: [],
headers: [
{
......@@ -158,7 +186,7 @@ export default {
},
{
prop: 'gbrGrowth',
label: '般公共预算收入增速',
label: '一般公共预算收入增速(%)',
},
{
prop: 'taxIncome',
......@@ -222,23 +250,23 @@ export default {
},
{
prop: 'fiscalSelfSufficiencyRate',
label: '财政自给率',
label: '财政自给率(%)',
},
{
prop: 'govDebtToGdpRate',
label: '负债率',
label: '负债率(%)',
},
{
prop: 'govDebtToGdpRateWild',
label: '负债率-宽口径',
label: '负债率(宽口径)(%)',
},
{
prop: 'govDebtRate',
label: '债务率',
label: '债务率(%)',
},
{
prop: 'govDebtRateWild',
label: '债务率-宽口径',
label: '债务率(宽口径)(%)',
},
],
tableLoading: false,
......@@ -246,18 +274,19 @@ export default {
pageSize: 10,
tableDataTotal: 0,
labelData:[2021,2022],
valData:[23201,35201]
valData:[],
valData1:[],
valData2:[],
valData3:[],
valData4:[],
recentlyYear:{},
nextYearMap:{},
}
},
created() {
console.log(this.dataQuery)
this.getData()
this.$nextTick(()=>{
this.initChart()
this.initChart1()
this.initChart2()
this.initChart3()
this.initChart4()
})
},
computed: {
......@@ -280,7 +309,18 @@ export default {
params.provinceId=this.dataQuery.provinceId
}
regional(params).then(res => {
console.log(res.data)
this.recentlyYear=res.data[0].recentlyYear;
this.nextYearMap=res.data[0].nextYearMap;
this.valData=[this.nextYearMap.gdp,this.recentlyYear.gdp]
this.valData1=[this.nextYearMap.gdpGrowth,this.recentlyYear.gdpGrowth]
this.valData2=[this.nextYearMap.population,this.recentlyYear.population]
this.valData3=[this.nextYearMap.gbr,this.recentlyYear.gbr]
this.valData4=[this.nextYearMap.govDebtBalance,this.recentlyYear.govDebtBalance]
this.initChart()
this.initChart1()
this.initChart2()
this.initChart3()
this.initChart4()
})
regionalList(params).then(res => {
this.tableData=res.data;
......@@ -369,7 +409,7 @@ export default {
},
series: [
{
data: this.valData,
data: this.valData1,
type: 'line',
smooth: true,
emphasis: {
......@@ -428,7 +468,7 @@ export default {
},
series: [
{
data: this.valData,
data: this.valData2,
type: 'line',
smooth: true,
emphasis: {
......@@ -487,7 +527,7 @@ export default {
},
series: [
{
data: this.valData,
data: this.valData3,
type: 'line',
smooth: true,
emphasis: {
......@@ -546,7 +586,7 @@ export default {
},
series: [
{
data: this.valData,
data: this.valData4,
type: 'line',
smooth: true,
emphasis: {
......@@ -671,6 +711,8 @@ export default {
color: rgba(35,35,35,0.8);
font-size: 12px;
padding-left: 16px;
width: 20%;
line-height: 26px;
img{
width: 12px;
height: 12px;
......@@ -682,12 +724,15 @@ export default {
color: #232323;
font-size: 20px;
margin-left: 12px;
float: right;
}
i{
color: #232323;
margin-right: 16px;
font-style: normal;
margin-left: 4px;
font-weight: 400;
font-size: 12px;
}
}
span:last-child{
......
......@@ -7,12 +7,12 @@
<el-tab-pane label="产业结构" name="third"></el-tab-pane>
<el-tab-pane label="地区经济对比" name="four"></el-tab-pane>
</el-tabs>
<div class="location"><i class="el-icon-location"></i>重庆市</div>
<div class="location"><i class="el-icon-location"></i>{{province}}</div>
</div>
<RegionalEconomy v-if="activeName === 'first'" :dataQuery="dataQuery"></RegionalEconomy>
<LocalEconomy v-if="activeName === 'second'" :dataQuery="dataQuery"></LocalEconomy>
<IndustrialStructure v-if="activeName === 'third'" :dataQuery="dataQuery"></IndustrialStructure>
<Comparison v-if="activeName === 'four'" :dataQuery="dataQuery"></Comparison>
<RegionalEconomy v-if="activeName === 'first' && province" :dataQuery="dataQuery"></RegionalEconomy>
<LocalEconomy v-if="activeName === 'second' && province" :dataQuery="dataQuery"></LocalEconomy>
<IndustrialStructure v-if="activeName === 'third' && province" :dataQuery="dataQuery"></IndustrialStructure>
<Comparison v-if="activeName === 'four' && province" :dataQuery="dataQuery"></Comparison>
</div>
</template>
......@@ -21,6 +21,7 @@
import LocalEconomy from './component/localEconomy'
import Comparison from './component/comparison'
import IndustrialStructure from './component/industrialStructure'
import { location } from '@/api/macro/macro'
export default {
name: 'Economies',
components: {
......@@ -31,12 +32,20 @@ export default {
},
data() {
return {
activeName: 'third',
dataQuery:{}
activeName: 'four',
dataQuery:{},
province:''
}
},
created() {
this.dataQuery=this.$route.query
this.dataQuery=this.$route.query;
location({provinceId:'500000'}).then(res => {
this.province=res.data.currentProvince.regionName;
this.provinceId=res.data.currentProvince.id;
if(!this.dataQuery.provinceId){
this.dataQuery.provinceId=this.provinceId
}
})
// let name = sessionStorage.getItem('currentTab')
// if (name != "undefined" && name){
// this.activeName = name;
......
<template>
<div class="localEnterprises">
<div class="content">
<div class="search">
<el-cascader
ref="address"
:options="aptitudeCodeList"
:props="props"
v-model="queryParams.codeStr"
placeholder="资质资格"
collapse-tags
clearable></el-cascader>
<el-input placeholder="输入企业名称关键词" v-model="queryParams.key">
<el-button slot="append">搜索</el-button>
</el-input>
<span class="total">{{tableDataTotal}}</span>
</div>
<div class="table-item">
<el-table
v-loading="tableLoading"
:data="tableData"
element-loading-text="Loading"
border
fit
highlight-current-row
>
<el-table-column label="序号" width="50" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="公司名称" align="left" width="300">
<template slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.name}}</router-link>
</template>
</el-table-column>
<el-table-column label="注册地区" prop="address" width="80"/>
<el-table-column label="资质资格" prop="aptitudeCountNew" sortable width="120" align="right" />
<el-table-column label="专业人员" prop="persionCount" sortable width="130" align="right" />
<el-table-column label="中标业绩" prop="recentlyCount" sortable width="130" align="right" />
<el-table-column label="最大中标金额(万元)" prop="cgfs" sortable width="160" align="right" />
<el-table-column label="中标总金额(万元)" prop="cgfs" sortable width="160" align="right" />
<el-table-column label="四库业绩" prop="skyCount" sortable width="130" align="right" />
<el-table-column label="公路业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="水利业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="常合作业主" prop="cgfs" width="280" align="right" />
<el-table-column label="客户(个)" prop="customerCount" sortable width="130" align="right" />
<el-table-column label="供应商(个)" prop="supplierCount" sortable width="130" align="right" />
<el-table-column label="常合作供应商" prop="cgfs" width="280" align="right" />
</el-table>
</div>
<div class="pagination-box">
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts';
import aptitudeCode from '@/assets/json/aptitudeCode'
import { countGroupByMonth,countGroupByProvince,getYear } from '@/api/macro/macro'
export default {
name: 'localEnterprises',
data() {
return {
queryParams:{
key:'',
codeStr:''
},
props: {
value: 'id',
multiple: true,
// checkStrictly:true,
label:'name',
children:'list',
expandTrigger:'hover'
},
tableData: [
{
dataId:'1',
cgrssqy:'100',
cgfs:'200',
address:'江北区',
name:'重庆市江北区国有资本投资运营管理集团有限公司'
}
],
tableLoading: false,
pageIndex: 1,
pageSize: 10,
tableDataTotal: 1,
aptitudeCodeList:[],
}
},
created() {
this.aptitudeCode()
this.querySubmit()
},
methods: {
//资质Json
async aptitudeCode() {
// await axios.post("https://files.jiansheku.com/file/json/common/aptitudeCode.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
this.aptitudeCodeList=aptitudeCode
},
async querySubmit(){
const params = { pageNum: this.pageIndex, pageSize: this.pageSize}
if(this.queryParams.field){
params.field=this.queryParams.field
}
if(this.queryParams.order){
params.order=this.queryParams.order
}
enterprise(params).then(res => {
console.log(res.data)
})
},
// 重置页数
handleSizeChange(val) {
this.pageIndex = 1
this.pageSize = val
this.querySubmit()
},
// 跳转指定页数
handleCurrentChange(val) {
this.pageIndex = val
this.querySubmit()
},
}
}
</script>
<style lang="scss" scoped>
.localEnterprises{
.content{
background: #FFFFFF;
border-radius: 4px;
margin-top: 12px;
padding: 16px;
.search{
::v-deep .el-cascader{
width: 180px;
margin-right: 12px;
height: 32px;
.el-input{
width: 100%;
height: 32px;
.el-input__inner{
height: 32px !important;
}
}
.el-cascader__tags{
flex-wrap: inherit;
.el-tag{
max-width: 100px;
margin: 5px 0 2px 6px;
}
}
}
::v-deep .el-input{
width: 250px;
height: 32px;
.el-input__inner{
height: 32px;
}
.el-input-group__append{
width: 59px;
background: #F5F5F5;
color:#0081FF;
border-left: 0;
}
}
.total{
float: right;
color: #3D3D3D;
font-size: 12px;
line-height: 36px;
}
}
.table-item{
margin-top: 14px;
}
}
}
</style>
<template>
<div class="offsite">
<div class="content">
<div class="search">
<el-cascader
ref="address"
:options="aptitudeCodeList"
:props="props"
v-model="queryParams.codeStr"
placeholder="资质资格"
collapse-tags
clearable></el-cascader>
<el-input placeholder="输入企业名称关键词" v-model="queryParams.key">
<el-button slot="append">搜索</el-button>
</el-input>
<span class="total">{{tableDataTotal}}</span>
</div>
<div class="table-item">
<el-table
v-loading="tableLoading"
:data="tableData"
element-loading-text="Loading"
border
fit
highlight-current-row
>
<el-table-column label="序号" width="50" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="公司名称" align="left" width="300">
<template slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.name}}</router-link>
</template>
</el-table-column>
<el-table-column label="注册地区" prop="address" width="80"/>
<el-table-column label="资质资格" prop="aptitudeCountNew" sortable width="120" align="right" />
<el-table-column label="专业人员" prop="persionCount" sortable width="130" align="right" />
<el-table-column label="中标业绩" prop="recentlyCount" sortable width="130" align="right" />
<el-table-column label="最大中标金额(万元)" prop="cgfs" sortable width="160" align="right" />
<el-table-column label="中标总金额(万元)" prop="cgfs" sortable width="160" align="right" />
<el-table-column label="四库业绩" prop="skyCount" sortable width="130" align="right" />
<el-table-column label="公路业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="水利业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="常合作业主" prop="cgfs" width="280" align="right" />
<el-table-column label="客户(个)" prop="customerCount" sortable width="130" align="right" />
<el-table-column label="供应商(个)" prop="supplierCount" sortable width="130" align="right" />
<el-table-column label="常合作供应商" prop="cgfs" width="280" align="right" />
</el-table>
</div>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts';
import aptitudeCode from '@/assets/json/aptitudeCode'
import { countGroupByMonth,countGroupByProvince,getYear } from '@/api/macro/macro'
export default {
name: 'offsite',
data() {
return {
queryParams:{
key:'',
codeStr:''
},
props: {
value: 'id',
multiple: true,
// checkStrictly:true,
label:'name',
children:'list',
expandTrigger:'hover'
},
tableData: [
{
dataId:'1',
cgrssqy:'100',
cgfs:'200',
address:'江北区',
name:'重庆市江北区国有资本投资运营管理集团有限公司'
}
],
tableLoading: false,
pageIndex: 1,
pageSize: 10,
tableDataTotal: 1,
aptitudeCodeList:[],
}
},
created() {
this.aptitudeCode()
this.querySubmit()
},
methods: {
//资质Json
async aptitudeCode() {
// await axios.post("https://files.jiansheku.com/file/json/common/aptitudeCode.json", {}, {
// headers: {
// 'Content-Type': 'application/json'
// }
// }).then(res => {
// if (res.data.code == 200) {
// console.log(res.data.data)
// }
// })
this.aptitudeCodeList=aptitudeCode
},
async querySubmit(){
const params = { pageNum: this.pageIndex, pageSize: this.pageSize}
if(this.queryParams.field){
params.field=this.queryParams.field
}
if(this.queryParams.order){
params.order=this.queryParams.order
}
enterprise(params).then(res => {
console.log(res.data)
})
}
}
}
</script>
<style lang="scss" scoped>
.offsite{
.content{
background: #FFFFFF;
border-radius: 4px;
margin-top: 12px;
padding: 16px;
.search{
::v-deep .el-cascader{
width: 180px;
margin-right: 12px;
height: 32px;
.el-input{
width: 100%;
height: 32px;
.el-input__inner{
height: 32px !important;
}
}
.el-cascader__tags{
flex-wrap: inherit;
.el-tag{
max-width: 100px;
margin: 5px 0 2px 6px;
}
}
}
::v-deep .el-input{
width: 250px;
height: 32px;
.el-input__inner{
height: 32px;
}
.el-input-group__append{
width: 59px;
background: #F5F5F5;
color:#0081FF;
border-left: 0;
}
}
.total{
float: right;
color: #3D3D3D;
font-size: 12px;
line-height: 36px;
}
}
.table-item{
margin-top: 14px;
}
}
}
</style>
......@@ -40,28 +40,38 @@
</template>
</el-table-column>
<el-table-column label="注册地区" prop="address" width="80"/>
<el-table-column label="资质资格" prop="cgfs" sortable width="120" align="right" />
<el-table-column label="专业人员" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="中标业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="资质资格" prop="aptitudeCountNew" sortable width="120" align="right" />
<el-table-column label="专业人员" prop="persionCount" sortable width="130" align="right" />
<el-table-column label="中标业绩" prop="recentlyCount" sortable width="130" align="right" />
<el-table-column label="最大中标金额(万元)" prop="cgfs" sortable width="160" align="right" />
<el-table-column label="中标总金额(万元)" prop="cgfs" sortable width="160" align="right" />
<el-table-column label="四库业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="四库业绩" prop="skyCount" sortable width="130" align="right" />
<el-table-column label="公路业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="水利业绩" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="常合作业主" prop="cgfs" width="280" align="right" />
<el-table-column label="客户(个)" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="供应商(个)" prop="cgfs" sortable width="130" align="right" />
<el-table-column label="客户(个)" prop="customerCount" sortable width="130" align="right" />
<el-table-column label="供应商(个)" prop="supplierCount" sortable width="130" align="right" />
<el-table-column label="常合作供应商" prop="cgfs" width="280" align="right" />
</el-table>
</div>
<div class="pagination-box">
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div>
</div>
<!--<LocalEnterprises v-if="activeName === 'first'"></LocalEnterprises>-->
<!--<Offsite v-if="activeName === 'second'"></Offsite>-->
</div>
</template>
<script>
// import LocalEnterprises from './component/localEnterprises'
// import Offsite from './component/offsite'
import aptitudeCode from '@/assets/json/aptitudeCode'
import { countGroupByMonth,countGroupByProvince,getYear } from '@/api/macro/macro'
export default {
name: 'Enterprises',
// components: {LocalEnterprises,Offsite},
data() {
return {
activeName: 'first',
......@@ -72,7 +82,7 @@ export default {
props: {
value: 'id',
multiple: true,
checkStrictly:true,
// checkStrictly:true,
label:'name',
children:'list',
expandTrigger:'hover'
......@@ -90,14 +100,15 @@ export default {
pageIndex: 1,
pageSize: 10,
tableDataTotal: 1,
aptitudeCodeList:[]
aptitudeCodeList:[],
}
},
created() {
this.aptitudeCode()
this.querySubmit()
},
methods: {
//资质Json
//资质Json
async aptitudeCode() {
// await axios.post("https://files.jiansheku.com/file/json/common/aptitudeCode.json", {}, {
// headers: {
......@@ -108,9 +119,30 @@ export default {
// console.log(res.data.data)
// }
// })
console.log(aptitudeCode)
this.aptitudeCodeList=aptitudeCode
},
async querySubmit(){
const params = { pageNum: this.pageIndex, pageSize: this.pageSize}
if(this.queryParams.field){
params.field=this.queryParams.field
}
if(this.queryParams.order){
params.order=this.queryParams.order
}
enterprise(params).then(res => {
console.log(res.data)
})
},
// 重置页数
handleSizeChange(val) {
this.pageIndex = 1
this.pageSize = val
this.querySubmit()
},
// 跳转指定页数
handleCurrentChange(val) {
this.pageIndex = val
this.querySubmit()
},
}
}
......
......@@ -13,12 +13,13 @@
border
height="360"
fit
@sort-change="sortChange"
highlight-current-row
>
<el-table-column prop="name" label="项目关系" width="150" />
<el-table-column prop="value" label="项目个数" width="140" />
<el-table-column prop="tz" label="投资额(亿元)" width="140" />
<el-table-column prop="bl" label="比例" width="140" />
<el-table-column prop="name" label="项目类型" width="150" />
<el-table-column prop="value" label="项目个数" sortable="custom" width="140" />
<el-table-column prop="totalInvestment" label="投资额(亿元)" sortable="custom" width="140" />
<el-table-column prop="proportion" label="比例" width="140" sortable="custom" />
</el-table>
</div>
</div>
......@@ -33,6 +34,7 @@
</div>
<div class="table-item">
<el-table
v-loading="tableLoading"
:data="listData"
element-loading-text="Loading"
border
......@@ -42,138 +44,108 @@
<el-table-column label="序号" width="55" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column prop="name" label="项目名称" width="290">
<el-table-column prop="projectName" label="项目名称">
<template slot-scope="scope">
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.name}}</router-link>
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link>
</template>
</el-table-column>
<el-table-column prop="tz" label="项目总投资(亿)" sortable width="155" />
<el-table-column prop="bj" label="项目资本金(亿)" sortable width="155" />
<el-table-column prop="sy" label="项目收益倍数(倍)" width="150" />
<el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" sortable width="155" />
<el-table-column prop="projectCapital" label="项目资本金(亿)" sortable width="155" />
<el-table-column prop="econData007" label="项目收益倍数(倍)" width="150" />
<el-table-column prop="zxz" label="专项债金额(亿)" width="150" />
<el-table-column prop="zxzzj" label="专项债用作资本金(亿)" width="170" />
<el-table-column prop="xmzt" label="项目主体"/>
<el-table-column prop="specialCapital" label="专项债用作资本金(亿)" width="170" />
<el-table-column prop="projectEntity" label="项目主体">
<!--<template slot-scope="scope">-->
<!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>-->
<!--</template>-->
</el-table-column>
</el-table>
</div>
<div class="pagination-box">
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts';
import { statistics,projectsPage } from '@/api/macro/macro'
export default {
name: 'Financing',
data() {
return {
tableData:[
{
name:'农业农村',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'乡村振兴',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'农林水利',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'交通',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'轨道交通',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'政府收费公路',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'其他交通基础设施',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'铁路',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'养老',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'生态环保',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'职业教育',
value:'2',
tz:'50.01',
bl:'0.19%'
},
{
name:'能源',
value:'2',
tz:'50.01',
bl:'0.19%'
},
],
listData:[
{
id:1,
name:'涪陵高新产业园区总和配套项目',
tz:'535.00',
bj:'235.00',
sy:'3',
zxz:'230',
zxzzj:'423',
xmzt:'重庆市涪陵区新城区开发 (集团) 有限公司',
},
{
id:2,
name:'涪陵高新产业园区总和配套项目',
tz:'235.00',
bj:'435.00',
sy:'6',
zxz:'530',
zxzzj:'323',
xmzt:'重庆市涪陵区新城区开发 (集团) 有限公司',
}
],
queryParams:{},
tableParams:{},
tableData:[],
listData:[],
tableLoading: false,
pageIndex: 1,
pageSize: 10,
tableDataTotal: 120
tableDataTotal: 0
}
},
created() {
this.getStatistics()
this.getData()
this.$nextTick(()=>{
this.initChart()
})
},
methods: {
initChart() {
getData(){
this.tableLoading = true
let params={ pageNum: this.pageIndex, pageSize: this.pageSize}
if(this.tableParams.field){
params.field=this.tableParams.field
}
if(this.tableParams.order){
params.order=this.tableParams.order
}
projectsPage(params).then(res => {
this.tableLoading = false
this.listData=res.data.list;
this.tableDataTotal = res.data.totalCount
})
// 延迟关闭加载效果
// setTimeout(() => {
// this.tableLoading = false
// }, 200)
},
getStatistics(){
let params={};
if(this.queryParams.field){
params.field=this.queryParams.field
}
if(this.queryParams.order){
params.order=this.queryParams.order
}
statistics(params).then(res => {
var list=[];
for(var i=0;i<res.data.length;i++){
var obj={};
obj.name=res.data[i].projectType;
obj.value=res.data[i].count;
obj.totalInvestment=res.data[i].totalInvestment;
obj.proportion=res.data[i].proportion;
list.push(obj)
}
this.tableData=list;
let arr=this.tableData.sort((old,New)=>{
return New.value - old.value
})
let data=[]
for(let i=0; i<10; i++){
data.push(arr[i])
}
console.log(arr)
console.log(data)
this.initChart(data)
})
},
initChart(data) {
let myChart = echarts.init(document.getElementById("echarts"))
let option ={
......@@ -185,8 +157,8 @@ export default {
var result = ''
result+='<h3 style="color: #232226;padding: 0 0 5px 0;margin: 0;">'+ params.data.name +'</h3>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.value +'个</p>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.tz +'亿元</p>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.bl +'%</p>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.totalInvestment +'亿元</p>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.proportion +'%</p>'
return result;
},
extraCssText:'width:150px!important;',
......@@ -194,8 +166,8 @@ export default {
legend: {
type: 'scroll',
orient: 'horizontal',
bottom: 20,
data: this.tableData,
bottom: 0,
data: data,
pageButtonPosition: 'end',
},
series: [
......@@ -203,7 +175,7 @@ export default {
type: 'pie',
radius: '55%',
center: ['50%', '40%'],
data: this.tableData,
data: data,
emphasis: {
itemStyle: {
shadowBlur: 10,
......@@ -215,7 +187,52 @@ export default {
]
}
myChart.setOption(option);
}
},
sortChange({ column, prop, order }){
if(prop === 'value'){
this.queryParams.field = 'count'
}else {
this.queryParams.field = prop
}
if(column.order === "ascending"){
this.queryParams.order = 'asc'
}else if(column.order === "descending"){
this.queryParams.order = 'desc'
}else {
this.queryParams.order=''
this.queryParams.field=''
}
let params={
field:this.queryParams.field,
order:this.queryParams.order
};
statistics(params).then(res => {
var list=[];
for(var i=0;i<res.data.length;i++){
var obj={};
obj.name=res.data[i].projectType;
obj.value=res.data[i].count;
obj.totalInvestment=res.data[i].totalInvestment;
obj.proportion=res.data[i].proportion;
list.push(obj)
}
this.tableData=list;
})
},
// 重置页数
handleSizeChange(val) {
this.pageIndex = 1
this.pageSize = val
this.getData()
},
// 跳转指定页数
handleCurrentChange(val) {
this.pageIndex = val
this.getData()
},
}
}
</script>
......
......@@ -201,7 +201,7 @@
},
// 查询提交
async querySubmit() {
// this.tableLoading = true
this.tableLoading = true
const params = { pageNum: this.pageIndex, pageSize: this.pageSize, year: this.queryParams.year,type:1 }
if(this.queryParams.address){
let arr = this.$refs.address.getCheckedNodes();
......@@ -235,13 +235,14 @@
}
nationalPage(params).then(res => {
this.tableData = res.data.list
this.tableLoading = false
this.tableData = res.data.list;
this.tableDataTotal = res.data.totalCount
})
// 延迟关闭加载效果
setTimeout(() => {
this.tableLoading = false
}, 200)
// setTimeout(() => {
// this.tableLoading = false
// }, 200)
},
// 明细
handleDetail(row) {
......
......@@ -139,69 +139,6 @@ export default {
name: 'NationalEconomies',
data() {
return {
tableData:[
{
area:'1月',
number:'123',
zb:'0.19%'
},
{
area:'2月',
number:'156',
zb:'0.29%'
},
{
area:'3月',
number:'236',
zb:'0.34%'
},
{
area:'4月',
number:'426',
zb:'0.34%'
},
{
area:'5月',
number:'412',
zb:'0.34%'
},
{
area:'6月',
number:'231',
zb:'0.34%'
},
{
area:'7月',
number:'96',
zb:'0.34%'
},
{
area:'8月',
number:'105',
zb:'0.34%'
},
{
area:'9月',
number:'210',
zb:'0.34%'
},
{
area:'10月',
number:'420',
zb:'0.34%'
},
{
area:'11月',
number:'213',
zb:'0.34%'
},
{
area:'12月',
number:'213',
zb:'0.34%'
},
],
typeIndex:0,
glData:[],
jzglData:[],
......
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