From 307aad8273b6419d4f339744908d51f4459ecce3 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 21 二月 2023 18:34:02 +0800 Subject: [PATCH] 数据统计页面下载,三维叠加wms地图服务修改,数据上传,源数据管理添加元数据查询功能及界面 --- src/assets/img/synthesis/images/通视分析.png | 0 src/views/datamanage/metadataManage.vue | 195 ++++++++++++ src/assets/img/synthesis/images/2.png | 0 src/assets/img/synthesis/images/z_03.png | 0 src/assets/img/synthesis/images/高程测量.png | 0 src/assets/img/synthesis/images/文字标注.png | 0 src/views/AuthorizationManagement/roleResAuthorization.vue | 2 src/assets/css/configure.css | 6 src/views/AuthorizationManagement/roleMenuAuthorization.vue | 2 src/assets/img/synthesis/images/3d视域分析.png | 0 src/views/datamanage/dataUpdata.vue | 206 ++++++++++++ src/api/api.js | 30 + src/assets/img/synthesis/images/1.png | 0 src/assets/lang/zh.js | 6 src/views/Tools/LayerTree.vue | 11 src/assets/img/synthesis/images/视域分析.png | 0 src/assets/css/config.css | 6 src/assets/lang/en.js | 6 src/views/datamanage/dataStatistics.vue | 455 +++++++++++++++++++-------- 19 files changed, 762 insertions(+), 163 deletions(-) diff --git a/src/api/api.js b/src/api/api.js index 28856c3..c00c634 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -74,6 +74,11 @@ //璇锋眰鍦板潃 return request.get('/meta/selectVerByDirid', { params: params }); } +//鍏冩暟鎹�=>鏍规嵁鐖禝D鍒嗛〉鏌ヨ骞惰繑鍥炶褰曟暟 +export function meta_selectPageAndCountByPid(params) { + //璇锋眰鍦板潃 + return request.get('/meta/selectPageAndCountByPid', { params: params }); +} //缁勭粐鏈烘瀯鏍规嵁id鏌ヨ @@ -588,6 +593,14 @@ } +//鏁版嵁涓婁紶=鏍规嵁鐖禝D鍒嗛〉鏌ヨ骞惰繑鍥炶褰曟暟 +export function dataUpload_selectPageAndCountByPid(params) { + return request.get('/dataUpload/selectPageAndCountByPid', { params: params }); +} + + + + //鏁版嵁涓婁紶=鍒犻櫎鏁版嵁 export function dataUpload_deleteMetas(params) { return request.get('/dataUpload/deleteMetas', { params: params }); @@ -820,9 +833,20 @@ return request.get('/dataCount/selectCountOperates', { params: params }); } - - - +//鏁版嵁缁熻=>鏌ヨ鏈嶅姟璋冪敤閲忕粺璁� +export function dataCount_selectCountServices(params) { + return request.get('/dataCount/selectCountServices', { params: params }); +} +//鏁版嵁缁熻=>鏌ヨ鏁版嵁閲忕粺璁� +export function dataCount_selectCountSizes(params) { + return request.get('/dataCount/selectCountSizes', { params: params }); +} +//鏁版嵁缁熻=>涓嬭浇鎶ュ憡 +export function dataCount_downloadReport(params) { + return request.get('/dataCount/downloadReport', { params: params }); +} + + //璇锋眰绔欏満鐐瑰唴瀹� diff --git a/src/assets/css/config.css b/src/assets/css/config.css index 949b4ea..9550d3b 100644 --- a/src/assets/css/config.css +++ b/src/assets/css/config.css @@ -396,15 +396,15 @@ /* // 閫氳鍒嗘瀽銆佽鍩熷垎鏋� 棰勭暀 */ .Black_theme .twoMenu_imge412 { - background: url("../../assets/img/synthesis/鐭╁舰 14 鎷疯礉 7.png") no-repeat center; + background: url("../../assets/img/synthesis/images/閫氳鍒嗘瀽.png") no-repeat center; } .Black_theme .twoMenu_imge413 { - background: url("../../assets/img/synthesis/鐭╁舰 14 鎷疯礉 7.png") no-repeat center; + background: url("../../assets/img/synthesis/images/瑙嗗煙鍒嗘瀽.png") no-repeat center; } .Black_theme .twoMenu_imge414 { - background: url("../../assets/img/synthesis/鐭╁舰 14 鎷疯礉 7.png") no-repeat center; + background: url("../../assets/img/synthesis/images/3d瑙嗗煙鍒嗘瀽.png") no-repeat center; } diff --git a/src/assets/css/configure.css b/src/assets/css/configure.css index af5c77c..4250793 100644 --- a/src/assets/css/configure.css +++ b/src/assets/css/configure.css @@ -228,15 +228,15 @@ /* // 閫氳鍒嗘瀽銆佽鍩熷垎鏋� 棰勭暀 */ .twoMenu_imge412 { - background: url("../../assets/img/synthesis/鐭╁舰 14 鎷疯礉 7.png") no-repeat center; + background: url("../../assets/img/synthesis/images/3鐧藉簳_159.png") no-repeat center; } .twoMenu_imge413 { - background: url("../../assets/img/synthesis/鐭╁舰 14 鎷疯礉 7.png") no-repeat center; + background: url("../../assets/img/synthesis/images/3鐧藉簳_164.png") no-repeat center; } .twoMenu_imge414 { - background: url("../../assets/img/synthesis/鐭╁舰 14 鎷疯礉 7.png") no-repeat center; + background: url("../../assets/img/synthesis/images/3鐧藉簳_162.png") no-repeat center; } diff --git a/src/assets/img/synthesis/images/1.png b/src/assets/img/synthesis/images/1.png new file mode 100644 index 0000000..19c8884 --- /dev/null +++ b/src/assets/img/synthesis/images/1.png Binary files differ diff --git a/src/assets/img/synthesis/images/2.png b/src/assets/img/synthesis/images/2.png new file mode 100644 index 0000000..1481662 --- /dev/null +++ b/src/assets/img/synthesis/images/2.png Binary files differ diff --git "a/src/assets/img/synthesis/images/3d\350\247\206\345\237\237\345\210\206\346\236\220.png" "b/src/assets/img/synthesis/images/3d\350\247\206\345\237\237\345\210\206\346\236\220.png" new file mode 100644 index 0000000..a73eb91 --- /dev/null +++ "b/src/assets/img/synthesis/images/3d\350\247\206\345\237\237\345\210\206\346\236\220.png" Binary files differ diff --git a/src/assets/img/synthesis/images/z_03.png b/src/assets/img/synthesis/images/z_03.png new file mode 100644 index 0000000..e517f7a --- /dev/null +++ b/src/assets/img/synthesis/images/z_03.png Binary files differ diff --git "a/src/assets/img/synthesis/images/\346\226\207\345\255\227\346\240\207\346\263\250.png" "b/src/assets/img/synthesis/images/\346\226\207\345\255\227\346\240\207\346\263\250.png" new file mode 100644 index 0000000..544ddf2 --- /dev/null +++ "b/src/assets/img/synthesis/images/\346\226\207\345\255\227\346\240\207\346\263\250.png" Binary files differ diff --git "a/src/assets/img/synthesis/images/\350\247\206\345\237\237\345\210\206\346\236\220.png" "b/src/assets/img/synthesis/images/\350\247\206\345\237\237\345\210\206\346\236\220.png" new file mode 100644 index 0000000..ffd86b4 --- /dev/null +++ "b/src/assets/img/synthesis/images/\350\247\206\345\237\237\345\210\206\346\236\220.png" Binary files differ diff --git "a/src/assets/img/synthesis/images/\351\200\232\350\247\206\345\210\206\346\236\220.png" "b/src/assets/img/synthesis/images/\351\200\232\350\247\206\345\210\206\346\236\220.png" new file mode 100644 index 0000000..0dd8ed4 --- /dev/null +++ "b/src/assets/img/synthesis/images/\351\200\232\350\247\206\345\210\206\346\236\220.png" Binary files differ diff --git "a/src/assets/img/synthesis/images/\351\253\230\347\250\213\346\265\213\351\207\217.png" "b/src/assets/img/synthesis/images/\351\253\230\347\250\213\346\265\213\351\207\217.png" new file mode 100644 index 0000000..f770a7c --- /dev/null +++ "b/src/assets/img/synthesis/images/\351\253\230\347\250\213\346\265\213\351\207\217.png" Binary files differ diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index 228e3d1..b97f009 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -59,6 +59,12 @@ dataRetrieval: 'data retrieval', dataDownload: 'Data download', projectManage: 'project management', + dataStatistics:'data Statistics', + dataStaticObj:{ + type1:'Primary module', + type2:'Secondary module', + type3:'Statistical data', + }, projectObj: { projname: 'Project Name', projtype: 'Project Type', diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index 44bc28f..9f4b326 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -58,6 +58,12 @@ dataRetrieval: '鏁版嵁妫�绱�', dataDownload: '鏁版嵁涓嬭浇', projectManage: '椤圭洰绠$悊', + dataStatistics:'鏁版嵁缁熻', + dataStaticObj:{ + type1:'涓�绾фā鍧�', + type2:'浜岀骇妯″潡', + type3:'缁熻鏁版嵁', + }, projectObj: { projname: '椤圭洰鍚嶇О', projtype: '椤圭洰绫诲瀷', diff --git a/src/views/AuthorizationManagement/roleMenuAuthorization.vue b/src/views/AuthorizationManagement/roleMenuAuthorization.vue index 1221f5a..68141db 100644 --- a/src/views/AuthorizationManagement/roleMenuAuthorization.vue +++ b/src/views/AuthorizationManagement/roleMenuAuthorization.vue @@ -148,7 +148,7 @@ <el-divider class="divider" /> <el-table :data="menuTableData" - stripe + style="width: 100%" height="calc(100% - 124px)" @selection-change="handleSelectionChange" diff --git a/src/views/AuthorizationManagement/roleResAuthorization.vue b/src/views/AuthorizationManagement/roleResAuthorization.vue index 6a75c3b..db58563 100644 --- a/src/views/AuthorizationManagement/roleResAuthorization.vue +++ b/src/views/AuthorizationManagement/roleResAuthorization.vue @@ -125,7 +125,7 @@ <el-table :data="usertableData" - stripe + style="width: 100%" height="calc(100% - 124px)" @selection-change="handleSelectionChange" diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue index c924ce0..0f0db2b 100644 --- a/src/views/Tools/LayerTree.vue +++ b/src/views/Tools/LayerTree.vue @@ -490,14 +490,21 @@ if (res.url != null && res.url != undefined) { url = res.url } + var width = $("#mapdiv").width() +5 ; + var height = $("#mapdiv").height()+5 ; + var imageryLayers = window.Viewer.scene.imageryLayers; let layerWMS = new Cesium.WebMapServiceImageryProvider({ url: url, layers: res.resource, parameters: { - transparent: true, - format: 'image/png', + transparent: true, + format: "image/png", + srs: "EPSG:4490", + styles: "", }, + tileWidth: width, + tileHeight: height }); layerWMS.name = res.label; //閫忔槑搴� diff --git a/src/views/datamanage/dataStatistics.vue b/src/views/datamanage/dataStatistics.vue index 92e16ae..e1df49b 100644 --- a/src/views/datamanage/dataStatistics.vue +++ b/src/views/datamanage/dataStatistics.vue @@ -1,11 +1,13 @@ <template> <div class="dataStatistics"> - <My-bread :list="[ + <My-bread + :list="[ `${$t('dataManage.dataManage')}`, - `${$t('dataManage.projectManage')}`, - ]"></My-bread> + `${$t('dataManage.dataStatistics')}`, + ]" + ></My-bread> <el-divider /> - <div class="contentBox "> + <div class="contentBox"> <div class="content_Left subpage_Div"> <el-tree :data="treeData" @@ -27,12 +29,13 @@ icon="el-icon-pie-chart" @click="setCountFlagChange(2)" ></el-button> + <el-button + icon="el-icon-download" + @click="setCountFlagChange(3)" + ></el-button> <el-divider /> </div> - <div - class="contentTable" - v-show="setCountFlag" - > + <div class="contentTable" v-show="setCountFlag"> <el-table :data="tableData" style="width: 100%" @@ -40,17 +43,20 @@ > <el-table-column prop="m1" - label="涓�绾фā鍧�" + align="center" + :label="$t('dataManage.dataStaticObj.type1')" > </el-table-column> <el-table-column prop="m2" - label="浜岀骇妯″潡" + align="center" + :label="$t('dataManage.dataStaticObj.type2')" > </el-table-column> <el-table-column prop="count" - label="缁熻鏁伴噺" + align="center" + :label="$t('dataManage.dataStaticObj.type3')" > </el-table-column> </el-table> @@ -67,157 +73,156 @@ </el-pagination> </div> --> </div> - <div - - class="contentTable" - v-show="!setCountFlag" - > - <div id="countEchart" style = "width:100%;height:100%; "> - - </div> - - - + <div id="contentEchart" class="contentTable" v-show="!setCountFlag"> + <div id="chart_11"></div> </div> - </div> - </div> + <el-dialog + title="妯℃澘" + :visible.sync="showDownLoadFlag" + width="50%" + :before-close="handleClose" + > + <div style="height: 50vh"> + <el-table + ref="singleTable" + :data="modelData" + height="calc(100% - 10px)" + style="width: 100%" + > + <el-table-column + type="index" + :label="$t('common.index')" + align="center" + width="70" + > + </el-table-column> + <el-table-column + align="center" + property="fname" + :label="$t('common.fileNme')" + > + </el-table-column> + <el-table-column + property="type" + :label="$t('common.format')" + align="center" + :formatter="showFormat" + > + </el-table-column> + <el-table-column width="120" :label="$t('common.operate')"> + <template slot-scope="scope"> + <el-button @click="setDownLoadRow(scope.row)" size="small"> + {{ $t("common.download") }} + </el-button> + </template> + </el-table-column> + </el-table> + </div> + </el-dialog> + <iframe + id="Iframe1" + src="" + style="display: none; border: 0; padding: 0; height: 0; width: 0" + ></iframe> </div> </template> <script> -import * as echarts from 'echarts'; +import $ from "jquery"; +import * as echarts from "echarts"; import MyBread from "../../components/MyBread.vue"; -import { dataCount_selectByPageAndCount, dataCount_selectCountOperates } from '../../api/api.js' +import { getToken } from "@/utils/auth"; +import { + dataCount_selectByPageAndCount, + dataCount_selectCountOperates, + dataCount_selectCountServices, + dataCount_selectCountSizes, + dataCount_downloadReport, +} 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: [] - }], + treeData: [ + { + id: 1, + label: "鏈嶅姟璋冪敤閲忕粺璁�", + value: "countServices", + children: [], + }, + { + id: 2, + label: "鏁版嵁閲忕粺璁�", + value: "countSizes", + children: [], + }, + { + id: 3, + label: "鐢ㄦ埛娴侀噺缁熻", + value: "countOperates", + children: [], + }, + ], defaultProps: { - children: 'children', - label: 'label' + children: "children", + label: "label", }, listData: { pageIndex: 1, pageSize: 10, - code: '', - name: '', + code: "", + name: "", count: 0, }, tableData: [], + modelData: [], queryData: null, setCountFlag: true, - - } + option: null, + showDownLoadFlag: false, + }; }, 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)] - }); -}); + setDownLoadRow(rows) { + var url = + BASE_URL + + "/dataCount/downloadReport?token=" + + getToken() + + "&id=" + + rows.id; + $("#Iframe1").attr("src", url).click(); + }, + showFormat(row, column, cellValue, index) { + if (cellValue) { + switch (cellValue) { + case "1": + return "World"; + break; + case "2": + return "Excel"; + break; + } + } + return " "; + }, + handleClose() { + this.$confirm("纭鍏抽棴锛�") + .then((_) => { + this.closeDownLoadFlag(); + done(); + }) + .catch((_) => {}); + }, + closeDownLoadFlag() { + this.showDownLoadFlag = false; }, //缁熻鍒囨崲 setCountFlagChange(res) { @@ -228,14 +233,167 @@ case 2: this.setCountFlag = false; this.showCountEchart(); - break; + break; + case 3: + this.showDownLoadFlag = true; + this.getQueryDownloadData(); + break; } }, + async getQueryDownloadData() { + this.listData = { + pageIndex: 1, + pageSize: 10, + code: this.queryData.value, + name: "", + count: 0, + }; + const data = await dataCount_selectByPageAndCount(this.listData); + if (data.code != 200) { + return; + } + + this.modelData = data.result; + this.listData.count = data.count; + }, + //Echart鍥捐〃鏄剧ず + showCountEchart() { + var dom = document.getElementById("chart_11"); + if (this.option != null) { + dom.removeAttribute("_echarts_instance_"); // 绉婚櫎瀹瑰櫒涓婄殑 _echarts_instance + } + var resizeMainContainer = function () { + dom.style.width = window.innerWidth * 0.65 + "px"; + dom.style.height = window.innerHeight * 0.6 + "px"; + }; + //璁剧疆div瀹瑰櫒楂樺 + resizeMainContainer(); + var myChart = echarts.init(dom, null, { + renderer: "canvas", + useDirtyRect: false, + }); + + var app = {}; + let dataAxis = []; + + let data = []; + let yMax = 0; + for (var i in this.tableData) { + if (this.tableData[i].count > yMax) { + yMax = this.tableData[i].count; + } + + data.push(this.tableData[i].count); + var m1 = this.tableData[i].m1; + if (this.tableData[i].m2 != null) { + m1 += "_" + this.tableData[i].m2; + } + dataAxis.push(m1); + } + + yMax = yMax + 10; + let dataShadow = []; + for (let i = 0; i < data.length; i++) { + dataShadow.push(yMax); + } + this.option = { + grid: { + left: "5%", + right: "5%", + bottom: "5%", + top: "10px", + }, + tooltip: { + //鎻愮ず妗嗙粍浠� + trigger: "axis", //鍧愭爣杞磋Е鍙戯紝涓昏鍦ㄦ煴鐘跺浘锛屾姌绾垮浘绛変細浣跨敤绫荤洰杞寸殑鍥捐〃涓娇鐢� + axisPointer: { animation: false }, + axisPointer: { + // 鍧愭爣杞存寚绀哄櫒锛屽潗鏍囪酱瑙﹀彂鏈夋晥 + type: "line", // 榛樿涓虹洿绾匡紝鍙�変负锛�'line' | 'shadow' + }, + + formatter: " {b} : <br/>缁熻閲� : {c}", + }, + xAxis: { + data: dataAxis, + axisLabel: { + inside: false, + color: "#999", + }, + axisTick: { + show: false, + }, + axisLine: { + show: false, + }, + 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) { + console.log(dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)]); + myChart.dispatchAction({ + type: "dataZoom", + startValue: dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)], + endValue: + dataAxis[ + Math.min(params.dataIndex + zoomSize / 2, data.length - 1) + ], + }); + }); + + if (this.option && typeof this.option === "object") { + myChart.setOption(this.option); + } + + window.addEventListener("resize", myChart.resize); + }, + //绯荤粺鍒濆鍖� setStartDataCount() { this.queryData = this.treeData[0]; this.$nextTick(() => { - this.$refs.tree.setCurrentKey(this.queryData.id) // 榛樿閫変腑鑺傜偣绗竴涓� + this.$refs.tree.setCurrentKey(this.queryData.id); // 榛樿閫変腑鑺傜偣绗竴涓� }); this.listData.code = this.queryData.value; this.setQueryCountData(); @@ -251,17 +409,28 @@ }, //鏌ヨ缁熻淇℃伅 async setQueryCountData() { - const data = await dataCount_selectCountOperates(); + var data; + if (this.queryData.value == "countServices") { + data = await dataCount_selectCountServices(); + } else if (this.queryData.value == "countSizes") { + data = await dataCount_selectCountSizes(); + } else if (this.queryData.value == "countOperates") { + data = await dataCount_selectCountOperates(); + } if (data.code != 200) { - return + return; + } + + if (this.queryData.value == "countSizes") { + for (var i in data.result) { + data.result[i].count = data.result[i].sizes; + } } this.tableData = data.result; - this.listData.count = data.count - + // this.listData.count = data.count; }, - - } -} + }, +}; </script> <style lang="less" scoped> @@ -287,9 +456,9 @@ padding: 1%; .contentTable { width: 100%; - height: 88%; + height: 84%; } } } } -</style> \ No newline at end of file +</style> diff --git a/src/views/datamanage/dataUpdata.vue b/src/views/datamanage/dataUpdata.vue index 58e7da8..6f683da 100644 --- a/src/views/datamanage/dataUpdata.vue +++ b/src/views/datamanage/dataUpdata.vue @@ -462,10 +462,19 @@ ></el-table-column> <el-table-column align="center" - prop="name" + :label="$t('common.name')" - width="100" - /> + + width="120" + > + <template slot-scope="scope"> + <span v-if="scope.row.ismeta > 0 "> + <el-link title="鍏冩暟鎹煡璇�" @click="setQueryMetaData(scope.row)" target="_blank">{{ scope.row.name }}</el-link> + + </span> + <span v-else>{{ scope.row.name }}</span> + </template> + </el-table-column> <el-table-column align="center" prop="dirName" @@ -1056,6 +1065,117 @@ >缁х画</el-button> </span> </el-dialog> + <el-dialog + :title="fromQueryMeta.title" + :visible.sync="queryMetaFlag" + width="70%" + + > + <div style="height:65vh;width:100%; "> + <el-form :inline="true" :model="fromQueryMeta" class="demo-form-inline"> + <el-form-item > + <el-input size="small" v-model="fromQueryMeta.name" ></el-input> + </el-form-item> + + <el-form-item> + <el-button type="primary" size="small" @click="setSearchMetaData()">鏌ヨ</el-button> + <el-button type="info" size="small" @click="setRestMetaData()" >閲嶇疆</el-button> + </el-form-item> +</el-form> + <el-table + ref="filterTable" + :data="metaDataTable" + style="width: 100%" + height="calc(100% - 100px)" + + > + + <el-table-column + align="center" + type="index" + :label="$t('common.index')" + width="70px" + ></el-table-column> + <el-table-column + align="center" + prop="name" + :label="$t('common.name')" + + width="120" + > + + + </el-table-column> + <el-table-column + align="center" + prop="dirName" + :label="$t('dataManage.dataUpObj.catalogue')" + width="300" + /> + <el-table-column + align="center" + prop="depName" + :label="$t('dataManage.dataUpObj.company')" + width="200" + /> + <el-table-column + align="center" + prop="verName" + :label="$t('dataManage.dataUpObj.versionNo')" + /> + <el-table-column + align="center" + prop="type" + :label="$t('common.type')" + /> + <el-table-column + align="center" + prop="sizes" + :label="$t('common.size')" + :formatter="changeSizeFile" + /> + <el-table-column + align="center" + :label="$t('dataManage.dataUpObj.tableName')" + > + <template slot-scope="scope"> + <a + class="scopeRowColor" + @click="detail(scope.row)" + >{{ scope.row.tab }}</a> + </template> + </el-table-column> + <el-table-column + align="center" + prop="rows" + :label="$t('common.lineNuber')" + /> + <el-table-column + align="center" + prop="desc" + :label="$t('dataManage.dataUpObj.describe')" + /> + + + </el-table> + <div + + class="pagination_box" + > + <el-pagination + @size-change="handleMetaSizeChange" + @current-change="handMetaCurrentChange" + :current-page="listMetaData.pageIndex" + :page-sizes="[10, 20, 50, 100]" + :page-size="listMetaData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="listMetaData.count" + > + </el-pagination> + </div> + </div> + + </el-dialog> <input name="file1" :accept="'.zip'" @@ -1089,6 +1209,7 @@ dataUpload_insertFiles, dataUpload_selectFields, dataUpload_selectDbData, + dataUpload_selectPageAndCountByPid } from "../../api/api"; export default { name: "dataUpdata", @@ -1277,6 +1398,20 @@ styleVar1: { height: "calc(100% - 109px)", }, + metaFileData:[], + listMetaData:{ + metaid:0, + name:'', + pageIndex:1, + pageSize:10, + count:0, + }, + queryMetaFlag:false, + fromQueryMeta:{ + title:'', + name:'' + }, + metaDataTable:[], }; }, @@ -1300,6 +1435,54 @@ }, watch: {}, methods: { + setRestMetaData(){ + this.fromQueryMeta.name=""; + this.listMetaData.name =this.fromQueryMeta.name; + this.listMetaData.pageIndex = 1 + this.listMetaData.pageSize = 10 + + this.startQueryMetaData(); + }, + setSearchMetaData(){ + this.listMetaData.name =this.fromQueryMeta.name; + this.listMetaData.pageIndex = 1 + this.listMetaData.pageSize = 10 + + this.startQueryMetaData(); + }, + //鍏冩暟鎹〉闈㈠垏鎹� + handleMetaSizeChange(val){ + this.listMetaData.pageIndex = 1; + this.listMetaData.pageSize = val; + this.startQueryMetaData(); + }, + //鍏冩暟鎹〉闈㈠垏鎹� + handMetaCurrentChange(val){ + this.listMetaData.pageIndex = val; + this.startQueryMetaData(); + }, + //鍏冩暟鎹煡璇� + setQueryMetaData(row){ + this.fromQueryMeta.title = row.name + this.listMetaData = { + metaid:row.id, + name:'', + pageIndex:1, + pageSize:10, + count:0, + } +this.startQueryMetaData(); +this.queryMetaFlag=true; +}, +async startQueryMetaData(){ +const data = await dataUpload_selectPageAndCountByPid(this.listMetaData); + if(data.code != 200){ + return; + } + this.metaDataTable= data.result; + this.listMetaData.count = data.count; +}, + onResize() { this.timer && clearTimeout(this.timer); this.timer = setTimeout(() => { @@ -1310,8 +1493,7 @@ this.$nextTick(() => { const rect = this.$refs.container.getBoundingClientRect(); const rect1 = this.$refs.container1.getBoundingClientRect(); - console.log(rect) - console.log(rect1) + this.tableHeight = `${rect.height + 40}px`; this.styleVar["height"] = `calc(100% - ${rect.height + 40}px)`; this.styleVar1["height"] = `calc(100% - ${rect1.height + 40}px)`; @@ -1543,7 +1725,14 @@ } } } - + for(var i in this.metaFileData){ + this.insertWareList.filter((res)=>{ + if(res.name == this.metaFileData[i]){ + res.isMeta = true; + } + }) + } + this.loading = true; const res = await dataUpload_insertFiles( JSON.stringify(this.insertWareList) @@ -1695,6 +1884,7 @@ } } } + var obj = { dirid: this.formInline.dirid, epsgCode: this.formInline.coordinateId, @@ -2397,6 +2587,7 @@ std.push(f.name); } this.formInline.metaData = std.toString(); + this.metaFileData= std; }, //From琛ㄥ崟鍒濆鍖� @@ -2567,6 +2758,9 @@ overflow: auto; } } + /deeep/.el-loading-mask{ + z-index:9999 + } } .inquire { padding: 8px; diff --git a/src/views/datamanage/metadataManage.vue b/src/views/datamanage/metadataManage.vue index ff7d664..9c4f250 100644 --- a/src/views/datamanage/metadataManage.vue +++ b/src/views/datamanage/metadataManage.vue @@ -200,7 +200,15 @@ width="50" > </el-table-column> - <el-table-column prop="name" :label="$t('dataManage.vmobj.name')" /> + <el-table-column :label="$t('dataManage.vmobj.name')" > + <template slot-scope="scope"> + <span v-if="scope.row.ismeta > 0 "> + <el-link title="鍏冩暟鎹煡璇�" @click="setQueryMetaData(scope.row)" target="_blank">{{ scope.row.name }}</el-link> + </span> + <span v-else>{{ scope.row.name }}</span> + </template> + </el-table-column> + <el-table-column prop="type" :label="$t('dataManage.vmobj.format')" /> <el-table-column prop="sizes" @@ -538,7 +546,117 @@ </el-form-item> </el-form> </div> + <el-dialog + :title="fromQueryMeta.title" + :visible.sync="queryMetaFlag" + width="70%" + + > + <div style="height:65vh;width:100%; "> + <el-form :inline="true" :model="fromQueryMeta" class="demo-form-inline"> + <el-form-item > + <el-input size="small" v-model="fromQueryMeta.name" ></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" size="small" @click="setSearchMetaData()">鏌ヨ</el-button> + <el-button type="info" size="small" @click="setRestMetaData()" >閲嶇疆</el-button> + </el-form-item> +</el-form> + <el-table + ref="filterTable" + :data="metaDataTable" + style="width: 100%" + height="calc(100% - 100px)" + + > + + <el-table-column + align="center" + type="index" + :label="$t('common.index')" + width="70px" + ></el-table-column> + <el-table-column + align="center" + prop="name" + :label="$t('common.name')" + + width="120" + > + + + </el-table-column> + <el-table-column + align="center" + prop="dirName" + :label="$t('dataManage.dataUpObj.catalogue')" + width="300" + /> + <el-table-column + align="center" + prop="depName" + :label="$t('dataManage.dataUpObj.company')" + width="200" + /> + <el-table-column + align="center" + prop="verName" + :label="$t('dataManage.dataUpObj.versionNo')" + /> + <el-table-column + align="center" + prop="type" + :label="$t('common.type')" + /> + <el-table-column + align="center" + prop="sizes" + :label="$t('common.size')" + :formatter="changeSizeFile" + /> + <el-table-column + align="center" + :label="$t('dataManage.dataUpObj.tableName')" + > + <template slot-scope="scope"> + <a + class="scopeRowColor" + @click="detail(scope.row)" + >{{ scope.row.tab }}</a> + </template> + </el-table-column> + <el-table-column + align="center" + prop="rows" + :label="$t('common.lineNuber')" + /> + <el-table-column + align="center" + prop="desc" + :label="$t('dataManage.dataUpObj.describe')" + /> + + + </el-table> + <div + + class="pagination_box" + > + <el-pagination + @size-change="handleMetaSizeChange" + @current-change="handMetaCurrentChange" + :current-page="listMetaData.pageIndex" + :page-sizes="[10, 20, 50, 100]" + :page-size="listMetaData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="listMetaData.count" + > + </el-pagination> + </div> + </div> + + </el-dialog> <iframe id="downFrame" src="" @@ -565,6 +683,7 @@ meta_selectFields, meta_selectByPageForUpload, meta_selectVerByDirid, + meta_selectPageAndCountByPid } from "../../api/api"; import MyBread from "../../components/MyBread.vue"; @@ -673,6 +792,19 @@ styleVar: { height: "calc(100% - 109px)", }, + listMetaData:{ + metaid:0, + name:'', + pageIndex:1, + pageSize:10, + count:0, + }, + queryMetaFlag:false, + fromQueryMeta:{ + title:'', + name:'' + }, + metaDataTable:[], }; }, created() { @@ -691,6 +823,67 @@ this.calHeight(); }, methods: { + //澶у皬鍊兼敼鍙� + changeSizeFile(row, column, cellValue, index) { + if (cellValue >= 1024) { + return parseFloat(cellValue / 1204).toFixed(3) + "GB"; + } else { + return cellValue + "MB"; + } + }, +setRestMetaData(){ + this.fromQueryMeta.name=""; + this.listMetaData.name =this.fromQueryMeta.name; + this.listMetaData.pageIndex = 1 + this.listMetaData.pageSize = 10 + + this.startQueryMetaData(); + }, + setSearchMetaData(){ + this.listMetaData.name =this.fromQueryMeta.name; + this.listMetaData.pageIndex = 1 + this.listMetaData.pageSize = 10 + + this.startQueryMetaData(); + }, + //鍏冩暟鎹〉闈㈠垏鎹� + handleMetaSizeChange(val){ + this.listMetaData.pageIndex = 1; + this.listMetaData.pageSize = val; + this.startQueryMetaData(); + }, + //鍏冩暟鎹〉闈㈠垏鎹� + handMetaCurrentChange(val){ + this.listMetaData.pageIndex = val; + this.startQueryMetaData(); + }, + //鍏冩暟鎹煡璇� + setQueryMetaData(row){ + this.fromQueryMeta.title = row.name + this.listMetaData = { + metaid:row.id, + name:'', + pageIndex:1, + pageSize:10, + count:0, + } +this.startQueryMetaData(); +this.queryMetaFlag=true; +}, +async startQueryMetaData(){ +const data = await meta_selectPageAndCountByPid(this.listMetaData); + if(data.code != 200){ + return; + } + this.metaDataTable= data.result; + this.listMetaData.count = data.count; +}, + + + + + + onResize() { this.timer && clearTimeout(this.timer); this.timer = setTimeout(() => { -- Gitblit v1.9.3