|
@@ -76,6 +76,17 @@
|
|
|
</div>
|
|
|
<div class="box-close"></div>
|
|
|
</div>
|
|
|
+ <el-dialog v-model="detailDialogVisible" title="项目列表" width="60%" @close="handleDialogClose" align-center draggable overflow>
|
|
|
+ <common-table size="large" :tableData="tableData" :columns="columns" :stripe="true" :border="true" height="400">
|
|
|
+ <template #projectstatus="{ row }">
|
|
|
+ <span>{{ returnProgressLabel(row.projectstatus) }}</span>
|
|
|
+ </template>
|
|
|
+ <template #actions="{ row }">
|
|
|
+ <span style="color: #427fb3" @click="imgPreview(row)">查看图片</span>
|
|
|
+ </template>
|
|
|
+ </common-table>
|
|
|
+ <pagination v-show="total > 0" v-model:page="pageNum" v-model:limit="pageSize" :total="total" @pagination="showDetail" />
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -84,12 +95,16 @@ import Map from '@/views/map/Map.vue';
|
|
|
import { ref } from 'vue';
|
|
|
import {
|
|
|
AddSingleLayer_Achieve,
|
|
|
- AddSingleLayer_Common,
|
|
|
+ AddSingleLayer_Common, AddSingleLayer_GHQ,
|
|
|
AddSingleLayer_Plan,
|
|
|
SetAreaLocation
|
|
|
} from '@/utils/map/AddLayer';
|
|
|
import WaterAccumulationPointJson from '@/assets/json/waterAccumulationPoint.json';
|
|
|
+import { buildingQuery } from '@/api/system/cityStatistics/regionalAreaDistribution/types';
|
|
|
+import { projectMenuShowInfo, projectSortList } from '@/api/system/cityStatistics/regionalAreaDistribution';
|
|
|
+import { homePieOption, xmlxOption } from '@/utils/echart/echartOption';
|
|
|
import { findOrgList } from '@/api/common';
|
|
|
+import Pagination from '@/components/Pagination/index.vue';
|
|
|
import { regionalAssessmentList, selectProjectAreaSummary } from '@/api/system/cityStatistics/cityStatistics';
|
|
|
import { cityStatisticsQuery } from '@/api/system/cityStatistics/cityStatistics/types';
|
|
|
let allTypeVisible = ref(true);
|
|
@@ -117,6 +132,147 @@ const queryParams = ref<cityStatisticsQuery>({
|
|
|
|
|
|
let planState = ref(true);
|
|
|
let qualifyState = ref(true);
|
|
|
+let planGeometry = []; //规划区
|
|
|
+let achieveGeometry = []; //达成区
|
|
|
+
|
|
|
+let detailDialogVisible = ref(false);
|
|
|
+const progressList = ref([
|
|
|
+ {
|
|
|
+ value: 0,
|
|
|
+ color: '#B50D0E',
|
|
|
+ bgShadow: '0 0 0 2px #fff, 0 0 0 3px #B50D0E',
|
|
|
+ name: '新增'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 1,
|
|
|
+ color: '#ff6600',
|
|
|
+ bgShadow: '0 0 0 2px #fff, 0 0 0 3px #ff6600',
|
|
|
+ name: '立项'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 2,
|
|
|
+ color: '#ffea00',
|
|
|
+ bgShadow: '0 0 0 2px #fff, 0 0 0 3px #ffea00',
|
|
|
+ name: '选项'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 3,
|
|
|
+ color: '#c6ff00',
|
|
|
+ bgShadow: '0 0 0 2px #fff, 0 0 0 3px #c6ff00',
|
|
|
+ name: '用地'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 4,
|
|
|
+ color: '#00ff48',
|
|
|
+ bgShadow: '0 0 0 2px #fff, 0 0 0 3px #00ff48',
|
|
|
+ name: '工程'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 5,
|
|
|
+ color: '#00c0ff',
|
|
|
+ bgShadow: '0 0 0 2px #fff, 0 0 0 3px #00c0ff',
|
|
|
+ name: '施工'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 6,
|
|
|
+ color: '#2244a0',
|
|
|
+ bgShadow: '0 0 0 2px #fff, 0 0 0 3px #2244a0',
|
|
|
+ name: '验收'
|
|
|
+ }
|
|
|
+]);
|
|
|
+let xgList = ref([]);
|
|
|
+let id = null; //区县编码
|
|
|
+let projectSort = null; //新建-规划编码
|
|
|
+const gzzbRef = ref(null);
|
|
|
+const xmlxRef = ref(null);
|
|
|
+let xjPercent = ref(null);
|
|
|
+let gzPercent = ref(null);
|
|
|
+let tableData = ref([]);
|
|
|
+let total = ref(0);
|
|
|
+let pageNum = ref(1);
|
|
|
+let pageSize = ref(10);
|
|
|
+let columns = ref([
|
|
|
+ { prop: 'rowNum', label: '序号', width: '80' },
|
|
|
+ { prop: 'projectname', label: '项目名称', width: '350' },
|
|
|
+ { prop: 'projectTypeName', label: '项目类型', width: '150' },
|
|
|
+ { prop: 'subregionName', label: '行政区', width: '120' },
|
|
|
+ { prop: 'araeName', label: '所属区域', width: '250' },
|
|
|
+ { label: '项目进度', slot: 'projectstatus', width: '100' },
|
|
|
+ { label: '操作', slot: 'actions' }
|
|
|
+]);
|
|
|
+
|
|
|
+function imgPreview(row) {}
|
|
|
+
|
|
|
+function handleDialogClose() {
|
|
|
+ detailDialogVisible.value = false;
|
|
|
+ pageNum.value = 1;
|
|
|
+ pageSize.value = 10;
|
|
|
+ total.value = 0;
|
|
|
+ tableData.value = [];
|
|
|
+}
|
|
|
+
|
|
|
+function returnProgressLabel(value) {
|
|
|
+ return progressList.value.find((item) => item.value == value).name;
|
|
|
+}
|
|
|
+
|
|
|
+function changeProjectSort(key) {
|
|
|
+ projectSort = key;
|
|
|
+ detailDialogVisible.value = true;
|
|
|
+ showDetail();
|
|
|
+}
|
|
|
+
|
|
|
+function showDetail() {
|
|
|
+ queryParams.value.subregion = id;
|
|
|
+ queryParams.value.projectSort = projectSort;
|
|
|
+ queryParams.value.pageNum = pageNum.value;
|
|
|
+ queryParams.value.pageSize = pageSize.value;
|
|
|
+
|
|
|
+ projectSortList(queryParams.value).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ tableData.value = res.data.rows;
|
|
|
+ total.value = res.data.total;
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+function ProjectMenuShowInfo(id) {
|
|
|
+ queryParams.value.subregion = id;
|
|
|
+ projectMenuShowInfo(queryParams.value).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ let data = res.data;
|
|
|
+ xgList.value = data.projectSortList;
|
|
|
+ let totalDataCount = data.projectSortList[0].count * 1 + data.projectSortList[1].count * 1;
|
|
|
+ data.projectSortList.forEach((item) => {
|
|
|
+ if (item.dataValue == '新建') {
|
|
|
+ xjPercent.value = ((item.count * 100) / totalDataCount).toFixed(2);
|
|
|
+ } else {
|
|
|
+ gzPercent.value = ((item.count * 100) / totalDataCount).toFixed(2);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ nextTick(() => {
|
|
|
+ let totalData = 0;
|
|
|
+ let useData = [
|
|
|
+ { value: 0, name: '新建', itemStyle: { color: '#4a90cd' } },
|
|
|
+ { value: 0, name: '改造', itemStyle: { color: '#15ced5' } }
|
|
|
+ ];
|
|
|
+ data.projectSortList.forEach((item) => {
|
|
|
+ totalData += item.count * 1;
|
|
|
+ if (item.dataValue == '新建') {
|
|
|
+ useData[0].value = item.count * 1;
|
|
|
+ } else {
|
|
|
+ useData[1].value = item.count * 1;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ homePieOption(gzzbRef.value, useData, totalData);
|
|
|
+
|
|
|
+ let xData = data.projectTypeList.map((item) => item.projectTypeName);
|
|
|
+ let yData = data.projectTypeList.map((item) => item.count);
|
|
|
+
|
|
|
+ xmlxOption(xmlxRef.value, xData, yData);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
|
|
|
function FindOriginList() {
|
|
|
findOrgList().then((res) => {
|
|
@@ -142,7 +298,9 @@ function showProjectInfo() {
|
|
|
visible: item.visible,
|
|
|
url: item.ADDRESS,
|
|
|
title: item.label,
|
|
|
- wkid: item.COORDINATE_SYSTEM
|
|
|
+ wkid: item.COORDINATE_SYSTEM,
|
|
|
+ color: item.color,
|
|
|
+ borderColor: item.borderColor
|
|
|
});
|
|
|
});
|
|
|
}
|
|
@@ -173,22 +331,26 @@ function SelectProjectAreaSummary() {
|
|
|
let data = res.data;
|
|
|
footprintSum.value = data.footprintSum;
|
|
|
footprintCount.value = data.dataList.length;
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
- showArea();
|
|
|
+ //添加规划区筛选
|
|
|
+ //showPlan();
|
|
|
|
|
|
queryParams.value.subregion = form.value.region;
|
|
|
queryParams.value.dateArray = form.value.startYear + ',' + form.value.endYear;
|
|
|
//获取图斑数据
|
|
|
regionalAssessmentList(queryParams).then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
+ planGeometry = res.data.rows;
|
|
|
+ achieveGeometry = res.data.data.rows;
|
|
|
console.log();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-function showArea() {
|
|
|
+function showPlan() {
|
|
|
let where = '1=1';
|
|
|
if (form.value.startYear && form.value.endYear) {
|
|
|
where += ' and 规划年限 in(';
|
|
@@ -206,22 +368,20 @@ function showArea() {
|
|
|
where += " and 区管委会='" + currentArea.datavalue + "'";
|
|
|
}
|
|
|
}
|
|
|
- AddSingleLayer_Plan({
|
|
|
+ AddSingleLayer_GHQ({
|
|
|
where: where,
|
|
|
visible: planState.value
|
|
|
});
|
|
|
- AddSingleLayer_Achieve({
|
|
|
- where: where,
|
|
|
- visible: qualifyState.value
|
|
|
- });
|
|
|
}
|
|
|
|
|
|
onMounted(() => {
|
|
|
+ id = '';
|
|
|
FindOriginList();
|
|
|
+ ProjectMenuShowInfo(id);
|
|
|
nextTick(() => {
|
|
|
layerList.value = WaterAccumulationPointJson.planLayer;
|
|
|
SelectProjectAreaSummary();
|
|
|
- showArea();
|
|
|
+ //showPlan();
|
|
|
showAllType(true);
|
|
|
});
|
|
|
});
|