You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

285 lines
9.4 KiB

4 months ago
<template>
4 months ago
<div class="container">
<div>
2 months ago
<div class="top">
<div class="title">整体项目情况</div>
<div class="importdiv">
<el-date-picker v-model="value3" type="year" placeholder="选择年份">
</el-date-picker>
<el-button icon="el-icon-upload2" style="background-color: #2B62F1;
color: #FFFFFF;">报告导出</el-button>
</div>
</div>
<!-- <table style="margin-top: .3rem;">
4 months ago
<thead>
<tr>
<th>项目总数</th>
<th>建筑面积(万平方米)</th>
<th>已建数量()</th>
<th>在建数量()</th>
<th>拟建数量()</th>
<th style="visibility: hidden;">拟建数量()</th>
</tr>
</thead>
<tbody>
<tr>
2 months ago
<td>
{{ projectData.allProject }}
</td>
3 months ago
<td>{{ projectData.allGrossArea }}</td>
<td>{{ projectData.allBuilding1 }}</td>
<td>{{ projectData.allBuilding2 }}</td>
<td>{{ projectData.allBuilding3 }}</td>
4 months ago
</tr>
</tbody>
2 months ago
</table> -->
<div class="mainarea">
<div class="itemone">
<img src="@/assets/images/icon-xmzs@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">项目总数</div>
<div class="number">{{ projectData.allProject }}</div>
</div>
</div>
<div class="itemone">
<img src="@/assets/images/icon-jzmj@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">建筑面积(万平方米)</div>
<div class="number">{{ projectData.allGrossArea }}</div>
</div>
</div>
<div class="itemone">
<img src="@/assets/images/icon-yjsl@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">已建数量()</div>
<div class="number">{{ projectData.allBuilding1 }}</div>
</div>
</div>
<div class="itemone">
<img src="@/assets/images/icon-yjsl@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">在建数量()</div>
<div class="number">{{ projectData.allBuilding2 }}</div>
</div>
</div>
<div class="itemone">
<img src="@/assets/images/icon-yjsl@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">拟建数量()</div>
<div class="number">{{ projectData.allBuilding3 }}</div>
</div>
</div>
</div>
4 months ago
</div>
<div>
3 months ago
<div class="title">当年项目情况</div>
2 months ago
<!-- <table>
4 months ago
<thead>
<tr>
<th>新开工项目数</th>
<th>建筑面积(万平方米)</th>
<th>已建数量()</th>
<th>在建数量()</th>
<th style="visibility: hidden;">拟建数量()</th>
<th style="visibility: hidden;">拟建数量()</th>
</tr>
</thead>
<tbody>
<tr>
3 months ago
<td>{{ currentYearData.currentYearProject }}</td>
<td>{{ currentYearData.currentYearGrossArea }}</td>
<td>{{ currentYearData.currentYearBuilding1 }}</td>
<td>{{ currentYearData.currentBuilding2 || 0 }}</td>
4 months ago
</tr>
</tbody>
2 months ago
</table> -->
<div class="mainarea">
<div class="itemone">
<img src="@/assets/images/icon-xkgxms@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">新开工项目数</div>
<div class="number">{{ currentYearData.currentYearProject }}</div>
</div>
</div>
<div class="itemone">
<img src="@/assets/images/icon-jzmj@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">建筑面积(万平方米)</div>
<div class="number">{{ currentYearData.currentYearGrossArea }}</div>
</div>
</div>
<div class="itemone">
<img src="@/assets/images/icon-yjsl@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">已建数量()</div>
<div class="number">{{ currentYearData.currentYearBuilding1 }}</div>
</div>
</div>
<div class="itemone">
<img src="@/assets/images/icon-yjsl@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">在建数量()</div>
<div class="number">{{ currentYearData.currentBuilding2 }}</div>
</div>
</div>
<div class="itemone">
<img src="@/assets/images/icon-yjsl@2x.png" alt="">
<div class="itemleft">
<div class="lefttitle">拟建数量()</div>
<div class="number">{{ currentYearData.currentBuilding2 }}</div>
</div>
</div>
</div>
4 months ago
</div>
</div>
4 months ago
</template>
<script>
3 months ago
import { allinformation } from '@/api/ManageApi';
4 months ago
export default {
data() {
return {
2 months ago
value3: '',
4 months ago
projectData: {
3 months ago
allProject: 0, // 项目总数
allGrossArea: 0, //建筑面积
allBuilding1: 0, // 已建
allBuilding2: 0, // 在建
allBuilding3: 0 // 拟建
},
currentYearData: {
currentYearProject: 0, //总数
currentYearGrossArea: 0, //面积
currentYearBuilding1: 0, // 已建
currentBuilding2: 0 // 在建
},
loading: false,
error: null
4 months ago
};
3 months ago
},
created() {
this.fetchProjectData();
},
methods: {
async fetchProjectData() {
this.loading = true;
try {
const response = await allinformation();
this.projectData = {
allProject: response.data.allProject || 0,
allGrossArea: response.data.allGrossArea || 0,
allBuilding1: response.data.allBuilding1 || 0,
allBuilding2: response.data.allBuilding2 || 0,
allBuilding3: response.data.allBuilding3 || 0
2 months ago
};
3 months ago
this.currentYearData = {
currentYearProject: response.data.currentYearProject || 0,
currentYearGrossArea: response.data.currentYearGrossArea || 0,
currentYearBuilding1: response.data.currentYearBuilding1 || 0,
currentBuilding2: response.data.currentBuilding2 || 0
};
}
finally {
this.loading = false;
}
}
4 months ago
}
};
</script>
<style scoped>
2 months ago
.importdiv {
display: flex;
gap: .5rem;
}
3 months ago
/* Your existing styles remain unchanged */
4 months ago
.container {
display: flex;
flex-direction: column;
2 months ago
gap: 2rem;
4 months ago
}
4 months ago
4 months ago
table {
width: 100%;
border-collapse: collapse;
}
4 months ago
4 months ago
th,
td {
border: none;
padding: 8px;
text-align: left;
}
4 months ago
4 months ago
th {
width: 7rem;
}
4 months ago
4 months ago
.title {
2 months ago
font-family: alibold;
4 months ago
font-weight: 600;
font-size: 1.25rem;
color: #3D424C;
line-height: 1.69rem;
text-align: left;
font-style: normal;
text-transform: none;
margin-bottom: .5rem;
margin-left: .4rem;
}
4 months ago
2 months ago
.lefttitle {
font-family: aliregular;
4 months ago
font-weight: 400;
font-size: 0.88rem;
color: #7B8599;
line-height: 1.19rem;
text-align: left;
font-style: normal;
text-transform: none;
}
2 months ago
.number {
font-family: DINbold;
4 months ago
font-weight: 600;
2 months ago
font-size: 1.25rem;
color: #3D424C;
line-height: 1.69rem;
4 months ago
text-align: left;
font-style: normal;
text-transform: none;
2 months ago
margin-left: .4rem;
}
.mainarea {
padding: .5rem;
height: auto;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 1rem;
}
.itemone {
width: 12rem;
height: 3rem;
/* background-color: lightblue; */
display: flex;
gap: .3rem;
}
.itemleft {
display: flex;
flex-direction: column;
margin-left: .5rem;
}
.top {
display: flex;
width: 100%;
justify-content: space-between;
4 months ago
}
4 months ago
</style>