From b3a47bd65a345355f6685cfcc8da59478cdd2352 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 21 二月 2023 10:33:19 +0800 Subject: [PATCH] 数据统计页面添加 --- src/api/api.js | 17 ++ src/assets/css/config.css | 2 src/views/userManage/userAuditing.vue | 1 src/views/datamanage/dataController.vue | 5 src/views/datamanage/addStyle.vue | 2 src/components/mapsdk.vue | 70 +++++---- src/views/Archive/dataApplication.vue | 2 src/views/userManage/userInfoManage.vue | 1 src/views/datamanage/dataStatistics.vue | 295 ++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 354 insertions(+), 41 deletions(-) diff --git a/src/api/api.js b/src/api/api.js index 365999d..28856c3 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -797,7 +797,7 @@ } //妯℃澘绠$悊=>鍒犻櫎澶氭潯鏁版嵁 export function report_deletes(params) { - return request.get('/report/deletes',{ params: params }); + return request.get('/report/deletes', { params: params }); } //妯℃澘绠$悊=>鎻掑叆涓�鏉℃暟鎹� export function report_insert(params) { @@ -809,8 +809,21 @@ } //绛惧悕绠$悊=>鎻掑叆鎿嶄綔鏃ュ織 export function sign_insertOpLog(params) { - return request.get('/sign/insertOpLog',{ params: params }); + return request.get('/sign/insertOpLog', { params: params }); } +//鏁版嵁缁熻=>鍒嗛〉鏌ヨ骞惰繑鍥炶褰曟暟 +export function dataCount_selectByPageAndCount(params) { + return request.get('/dataCount/selectByPageAndCount', { params: params }); +} +//鏁版嵁缁熻=>鏌ヨ鐢ㄦ埛娴侀噺缁熻 +export function dataCount_selectCountOperates(params) { + return request.get('/dataCount/selectCountOperates', { params: params }); +} + + + + + //璇锋眰绔欏満鐐瑰唴瀹� export function querySitePoint(size, index, name) { diff --git a/src/assets/css/config.css b/src/assets/css/config.css index b46b764..949b4ea 100644 --- a/src/assets/css/config.css +++ b/src/assets/css/config.css @@ -477,7 +477,7 @@ background: url("../../assets/img/synthesis/妞渾 3 鎷疯礉 23.png") no-repeat center; } -.twoMenu_imge85 { +.Black_theme .twoMenu_imge85 { background: url("../../assets/img/synthesis/瀵煎叆.png") no-repeat center; } diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue index cf8375c..8aaf44a 100644 --- a/src/components/mapsdk.vue +++ b/src/components/mapsdk.vue @@ -62,10 +62,7 @@ v-if="showCoordLocalBoxDialog" > <el-card class="box-card"> - <div - slot="header" - - > + <div slot="header"> <span>鍧愭爣瀹氫綅</span> <div style="float: right; cursor: pointer"> <i @@ -166,10 +163,7 @@ > </el-table-column> </el-table> - <div - style="margin-top: 10px" - class="pagination_box" - > + <div class="pagination_box"> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" @@ -358,7 +352,9 @@ pathStart: null, pathEnd: null, pathData: null, - + layer1: null, + layer2: null, + layer3: null, isActive: false, isMenuLayer: true, selFrom: {}, @@ -401,18 +397,18 @@ destination: Cesium.Cartesian3.fromDegrees(110, 33, 8000000), }); - Viewer.imageryLayers.addImageryProvider( + this.layer1 = Viewer.imageryLayers.addImageryProvider( new Cesium.UrlTemplateImageryProvider({ url: gaoDeBaseUrl[0].url, }) ) - Viewer.imageryLayers.addImageryProvider( + this.layer2 = Viewer.imageryLayers.addImageryProvider( new Cesium.UrlTemplateImageryProvider({ url: gaoDeBaseUrl[1].url, }) ) - Viewer.imageryLayers.addImageryProvider( + this.layer3 = Viewer.imageryLayers.addImageryProvider( new Cesium.UrlTemplateImageryProvider({ url: gaoDeBaseUrl[2].url, }) @@ -437,7 +433,8 @@ //姣斾緥灏� window.sgworld.navControl("scale", false) //寮�鍚繁搴︽娴� - sgworld.Analysis.depthTestAgainstTerrain(true) + // sgworld.Analysis.depthTestAgainstTerrain(true) + Viewer.scene.globe.depthTestAgainstTerrain = true; //褰卞儚瀵规瘮璁剧疆 // var base = { // url: 'https://a.tile.openstreetmap.org/', @@ -453,15 +450,15 @@ // ); // openStreetMap.item.show = false; - Viewer.terrainProvider = new Cesium.CesiumTerrainProvider({ - url: demLayer, - }) - // var option = { - // url: window.sceneConfig.SGUrl, - // layerName: window.sceneConfig.mptName, - // requestVertexNormals: true - // } - // sgworld.Creator.sfsterrainprovider("", option, "", true, ""); + // Viewer.terrainProvider = new Cesium.CesiumTerrainProvider({ + // url: demLayer, + // }) + var option = { + url: window.sceneConfig.SGUrl, + layerName: window.sceneConfig.mptName, + requestVertexNormals: true + } + sgworld.Creator.sfsterrainprovider("", option, "", true, ""); window.elevationTool = new SmartEarth.ElevationTool(window.sgworld) elevationTool.setContourColor("#F1D487") @@ -484,13 +481,21 @@ }, setLayerVisible() { if (this.isActive == true) { - Viewer.imageryLayers._layers[1].show = true - Viewer.imageryLayers._layers[2].show = false - Viewer.imageryLayers._layers[3].show = false + // Viewer.imageryLayers._layers[1].show = true + // Viewer.imageryLayers._layers[2].show = false + // Viewer.imageryLayers._layers[3].show = false + + Viewer.imageryLayers.lower(this.layer2); + Viewer.imageryLayers.lower(this.layer3); + } else { - Viewer.imageryLayers._layers[1].show = false - Viewer.imageryLayers._layers[2].show = true - Viewer.imageryLayers._layers[3].show = true + + Viewer.imageryLayers.raise(this.layer3); + Viewer.imageryLayers.raise(this.layer2); + + // Viewer.imageryLayers._layers[1].show = false + // Viewer.imageryLayers._layers[2].show = true + // Viewer.imageryLayers._layers[3].show = true } }, //鏄剧ず寮圭獥 @@ -665,7 +670,7 @@ return false } }) - this.clearPathAll(3) + this.clearPathAll(3) var start = this.pathFrom.lon.split(",") var end = this.pathFrom.lat.split(",") var startData = { @@ -674,7 +679,7 @@ x2: parseFloat(end[0]), y2: parseFloat(end[1]), } - + const data = await comprehensive_selectRoute(startData) if (data.code != 200) { return this.$message.error("鏁版嵁璇锋眰澶辫触") @@ -896,15 +901,12 @@ right: 1%; bottom: 1%; } - + .box-card { - opacity: 0.85; border: 1px solid rgba(32, 160, 255, 0.6); - } .menu_Top { - opacity: 0.85; width: 100%; padding: 1%; diff --git a/src/views/Archive/dataApplication.vue b/src/views/Archive/dataApplication.vue index 0174136..3f9b927 100644 --- a/src/views/Archive/dataApplication.vue +++ b/src/views/Archive/dataApplication.vue @@ -156,7 +156,7 @@ </el-table> <div - style="margin-top: 40px" + class="pagination_box" > <el-pagination diff --git a/src/views/datamanage/addStyle.vue b/src/views/datamanage/addStyle.vue index 6416537..70a1472 100644 --- a/src/views/datamanage/addStyle.vue +++ b/src/views/datamanage/addStyle.vue @@ -164,7 +164,7 @@ </div> <div class="pagination_box" - style="margin-top: 20px; margin-left: 400px" + style=" margin-left: 400px" > <el-pagination @size-change="handleSizeChange" diff --git a/src/views/datamanage/dataController.vue b/src/views/datamanage/dataController.vue index e8a9134..c7797ce 100644 --- a/src/views/datamanage/dataController.vue +++ b/src/views/datamanage/dataController.vue @@ -33,6 +33,7 @@ <data-loader v-if="setMenuFlag == 'dataLoader'"></data-loader> <down-loader v-if="setMenuFlag == 'downLoader'"></down-loader> <project-manage v-if="setMenuFlag == 'projectManage'"></project-manage> + <data-statistics v-if="setMenuFlag == 'dataStatistics'"></data-statistics> </div> </div> @@ -54,6 +55,8 @@ import dataLoader from '@/views/datamanage/dataLoader.vue'; //鏁版嵁绠$悊-鏁版嵁鍏ュ簱 import downLoader from '@/views/datamanage/downLoader.vue'; //鏁版嵁绠$悊-鏁版嵁涓嬭浇 import projectManage from '@/views/datamanage/projectManage.vue'; //椤圭洰绠$悊 +import dataStatistics from '@/views/datamanage/dataStatistics.vue'; //鏁版嵁缁熻 + export default { components: { customElMenu, @@ -68,6 +71,8 @@ dataLoader, downLoader, projectManage, + dataStatistics, + }, data() { return { diff --git a/src/views/datamanage/dataStatistics.vue b/src/views/datamanage/dataStatistics.vue new file mode 100644 index 0000000..2faf051 --- /dev/null +++ b/src/views/datamanage/dataStatistics.vue @@ -0,0 +1,295 @@ +<template> + <div class="dataStatistics"> + <My-bread :list="[ + `${$t('dataManage.dataManage')}`, + `${$t('dataManage.projectManage')}`, + ]"></My-bread> + <el-divider /> + <div class="contentBox "> + <div class="content_Left subpage_Div"> + <el-tree + :data="treeData" + @node-click="handleNodeClick" + node-key="id" + ref="tree" + highlight-current + :props="defaultProps" + > + </el-tree> + </div> + <div class="content_Right subpage_Div"> + <div> + <el-button + icon="el-icon-c-scale-to-original" + @click="setCountFlagChange(1)" + ></el-button> + <el-button + icon="el-icon-pie-chart" + @click="setCountFlagChange(2)" + ></el-button> + <el-divider /> + </div> + <div + class="contentTable" + v-show="setCountFlag" + > + <el-table + :data="tableData" + style="width: 100%" + height="calc(100% - 50px)" + > + <el-table-column + prop="m1" + label="涓�绾фā鍧�" + > + </el-table-column> + <el-table-column + prop="m2" + label="浜岀骇妯″潡" + > + </el-table-column> + <el-table-column + prop="count" + label="缁熻鏁伴噺" + > + </el-table-column> + </el-table> + <!-- <div class="pagination_box"> + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="listData.pageIndex" + :page-sizes="[10, 20, 50, 100]" + :page-size="listData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="listData.count" + > + </el-pagination> + </div> --> + </div> + <div + + class="contentTable" + v-show="!setCountFlag" + > + <div id="countEchart" style = "width:100%;height:100%;border:1px solid red"> + + </div> + + + + </div> + + </div> + + </div> + </div> +</template> + +<script> +import * as echarts from 'echarts'; +import MyBread from "../../components/MyBread.vue"; +import { dataCount_selectByPageAndCount, dataCount_selectCountOperates } from '../../api/api.js' +export default { + name: "DataStatistics", + components: { MyBread }, + data() { + return { + treeData: [{ + id: 1, + label: '鏈嶅姟璋冪敤閲忕粺璁�', + value: 'countServices', + children: [] + }, { + id: 2, + label: '鏁版嵁閲忕粺璁�', + value: 'countSizes', + children: [] + }, { + id: 3, + label: '鐢ㄦ埛娴侀噺缁熻', + value: 'countOperates', + children: [] + }], + + defaultProps: { + children: 'children', + label: 'label' + }, + listData: { + pageIndex: 1, + pageSize: 10, + code: '', + name: '', + count: 0, + }, + tableData: [], + queryData: null, + setCountFlag: true, + + } + }, + mounted() { + this.setStartDataCount(); + }, + methods: { + //Echart鍥捐〃鏄剧ず + showCountEchart(){ + + var chartDom = document.getElementById('countEchart'); +var myChart = echarts.init(chartDom); +var option; + var dataAxis=[]; + var data=[]; + var yMax =0; + let dataShadow = []; + for(var i in this.tableData){ + if( this.tableData[i].count >yMax){ + yMax= this.tableData[i].count + } + data.push(this.tableData[i].count) + } + yMax = yMax+100; +for (let i = 0; i < data.length; i++) { + dataShadow.push(yMax); +} +option = { + + xAxis: { + data: dataAxis, + axisLabel: { + color: '#000000' + }, + + axisLine: { + show: true + }, + z: 10 + }, + yAxis: { + axisLine: { + show: false + }, + axisTick: { + show: false + }, + axisLabel: { + color: '#999' + } + }, + dataZoom: [ + { + type: 'inside' + } + ], + series: [ + { + type: 'bar', + showBackground: true, + itemStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: '#83bff6' }, + { offset: 0.5, color: '#188df0' }, + { offset: 1, color: '#188df0' } + ]) + }, + emphasis: { + itemStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: '#2378f7' }, + { offset: 0.7, color: '#2378f7' }, + { offset: 1, color: '#83bff6' } + ]) + } + }, + data: data + } + ] +}; +// Enable data zoom when user click bar. +const zoomSize = 6; +myChart.on('click', function (params) { + + myChart.dispatchAction({ + type: 'dataZoom', + startValue: dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)], + endValue: + dataAxis[Math.min(params.dataIndex + zoomSize / 2, data.length - 1)] + }); +}); + + }, + //缁熻鍒囨崲 + setCountFlagChange(res) { + switch (res) { + case 1: + this.setCountFlag = true; + break; + case 2: + this.setCountFlag = false; + this.showCountEchart(); + break; + } + }, + //绯荤粺鍒濆鍖� + setStartDataCount() { + this.queryData = this.treeData[0]; + this.$nextTick(() => { + this.$refs.tree.setCurrentKey(this.queryData.id) // 榛樿閫変腑鑺傜偣绗竴涓� + }); + this.listData.code = this.queryData.value; + this.setQueryCountData(); + }, + //鏍戠偣鍑讳簨浠� + handleNodeClick(data, node, prop) { + this.setCountFlag = true; + this.queryData = data; + this.listData.code = data.value; + this.listData.pageIndex = 1; + this.listData.pageSize = 10; + this.setQueryCountData(); + }, + //鏌ヨ缁熻淇℃伅 + async setQueryCountData() { + const data = await dataCount_selectCountOperates(); + if (data.code != 200) { + return + } + this.tableData = data.result; + this.listData.count = data.count + + }, + + } +} +</script> + +<style lang="less" scoped> +.dataStatistics { + height: 98%; + width: 98%; + padding: 1%; + .contentBox { + height: calc(98% - 63px); + width: 100%; + display: flex; + justify-content: space-around; + .content_Left { + width: 18%; + height: calc(95% - 2px); + border-radius: 5px; + padding: 1%; + } + .content_Right { + width: 77%; + height: calc(95% - 2px); + border-radius: 5px; + padding: 1%; + .contentTable { + width: 100%; + height: 88%; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/userManage/userAuditing.vue b/src/views/userManage/userAuditing.vue index 27e59db..d79e983 100644 --- a/src/views/userManage/userAuditing.vue +++ b/src/views/userManage/userAuditing.vue @@ -59,7 +59,6 @@ <div class="table_box"> <el-table :data="tableData" - stripe style="width: 100%" height="99%" @selection-change="handleSelectionChange" diff --git a/src/views/userManage/userInfoManage.vue b/src/views/userManage/userInfoManage.vue index 984bfd6..99a0273 100644 --- a/src/views/userManage/userInfoManage.vue +++ b/src/views/userManage/userInfoManage.vue @@ -85,7 +85,6 @@ <div class="table_box"> <el-table :data="tableData" - stripe border style="width: 100%" height="99%" -- Gitblit v1.9.3