From ea52386a7c7b3ef91784280e3033f190ac39caee Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期三, 14 十二月 2022 17:41:25 +0800 Subject: [PATCH] 综合展示,导入导出,三维截面分析,影像对比分析 --- src/views/datamanage/metadataManage.vue | 126 +++++++----- src/api/api.js | 11 + src/views/Archive/index.vue | 358 +++++++++++++++-------------------- public/config/config.js | 6 src/views/Synthesis/LeftMenu.vue | 43 ++++ src/components/mapsdk.vue | 56 ++--- 6 files changed, 305 insertions(+), 295 deletions(-) diff --git a/public/config/config.js b/public/config/config.js index 3893467..71aea58 100644 --- a/public/config/config.js +++ b/public/config/config.js @@ -7,6 +7,8 @@ var wnsUrl = 'http://192.168.20.39:9055/gisserver/wnsserver/beijingdaohang_wns'; //gisserver var gisServerUrl = 'http://192.168.20.39:9055/gisserver'; +//妯″瀷鍔犺浇鍦板潃 +var modelUrl = 'http://183.162.245.49:8099/pcdata/JC_MAX_MX/SN/tileset.json'; //缁煎悎灞曠ず window.sceneConfig = { // sdk璁稿彲 @@ -15,7 +17,7 @@ baseURL: 'http://183.162.245.49:8888/', positionBtn: [], mpt: { - url: 'http://183.162.245.49:82/SG/Elevation', - name: 'zhufeng.397336.mpt', + url: 'http://192.168.20.39/SG/Elevation', + name: 'china_5m.Ei.402586.mpt', }, }; diff --git a/src/api/api.js b/src/api/api.js index d1d2f49..bdb7a34 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -442,7 +442,7 @@ //鏁版嵁鍏ュ簱=>鏌ヨ瀛楁淇℃伅 export function meta_selectFields(params) { - return request.get('/meta/selectFields', { params: params }); + return request.get('/meta/selectTabFields', { params: params }); } //鏁版嵁鍏ュ簱=>鏌ヨ琛ㄤ腑鏁版嵁 export function meta_selectByPageForUpload(params) { @@ -603,6 +603,15 @@ // return request.post('/dataUpload/insertFiles', params); // } +//璧勬枡棣�=>鏌ヨ鎵�鏈夎〃鏍� +export function dataLib_selectTabs(params) { + return request.get('/dataLib/selectTabs', { params: params }); +} +//璧勬枡棣�=>鏌ヨ鎵�鏈夎〃鏍� +export function dataLib_selectTabFields(params) { + return request.get('/dataLib/selectTabs', { params: params }); +} + //璇锋眰绔欏満鐐瑰唴瀹� export function querySitePoint(size, index, name) { return service.get( diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue index 41a8d33..eabb42f 100644 --- a/src/components/mapsdk.vue +++ b/src/components/mapsdk.vue @@ -122,10 +122,11 @@ </div> <div class="box-body"> <el-form ref="form" :model="pathFrom" label-width="50px"> - <el-form-item label="缁忓害:"> + <el-form-item label="璧风偣:"> <el-input - style="width: 300px" + style="width: 250px" v-model="pathFrom.lon" + :disabled="true" ></el-input> <el-link :underline="false" @@ -134,10 +135,11 @@ ><i style="color: white" class="el-icon-plus"></i ></el-link> </el-form-item> - <el-form-item label="绾害:"> + <el-form-item label="缁堢偣:"> <el-input - style="width: 300px" + style="width: 250px" v-model="pathFrom.lat" + :disabled="true" ></el-input> <el-link :underline="false" @@ -197,8 +199,8 @@ showPathAnalysisBoxDialog: false, comprehensive: {}, pathFrom: { - lon: '116.086746,39.937314', - lat: '116.086000,39.936289', + lon: ' ', + lat: ' ', }, bufFrom: { val: 50, @@ -340,21 +342,6 @@ }) ); - // sgworld.Navigate.jumpTo({ - // //璺宠浆瑙嗚 - // destination: { - // x: 311837.3471863137, - // y: 5628280.936629815, - // z: 2992581.921482893, - // }, - // orientation: { - // heading: 2.5028896264234364, - // pitch: -0.2201285642360813, - // roll: 0.0, - // }, - // }); - - // Viewer.scene.globe.depthTestAgainstTerrain = true; Viewer._enableInfoOrSelection = false; //鏄剧ずfps Viewer.scene.debugShowFramesPerSecond = false; @@ -362,20 +349,21 @@ window.sgworld.navControl('nav', false); //姣斾緥灏� window.sgworld.navControl('scale', false); - + //寮�鍚繁搴︽娴� + sgworld.Analysis.depthTestAgainstTerrain(true); //褰卞儚瀵规瘮璁剧疆 - var base = { - url: 'https://a.tile.openstreetmap.org/', - }; - window.openStreetMap = sgworld.Creator.createImageryProvider( - 'OpenStreetMap', - 'OpenStreetMap', - base, - '0', - undefined, - true, - '' - ); + // var base = { + // url: 'https://a.tile.openstreetmap.org/', + // }; + // window.openStreetMap = sgworld.Creator.createImageryProvider( + // 'OpenStreetMap', + // 'OpenStreetMap', + // base, + // '0', + // undefined, + // true, + // '' + // ); openStreetMap.item.show = false; //mpt鍔犺浇 var option = { diff --git a/src/views/Archive/index.vue b/src/views/Archive/index.vue index 05e63bb..6a7a69a 100644 --- a/src/views/Archive/index.vue +++ b/src/views/Archive/index.vue @@ -1,240 +1,190 @@ <template> <div class="archive"> - <div class="left_active"> - <el-card class="arch_card"> - <div class="title_active">{{ $t('archive.name') }}</div> - <el-divider /> - <el-tree - :data="tree" - :props="defaultProps" - show-checkbox - default-expand-all="true" - /> - </el-card> - </div> - <div class="right_active"> - <el-card class="arch_card"> - <el-row :gutter="20"> - <el-col :span="6"></el-col> - <el-col :span="4" - ><div style="text-align: right; margin-top: 6px"> - {{ $t('archive.keyword') }}: - </div> - </el-col> - <el-col :span="4"> + <div class="top_header"> + <div class="top_left"> + <label>{{ $t('synthesis.synthesis') }}</label> + <span>/</span> + <label>{{ $t('synthesis.archive') }}</label> + </div> + <div class="top_right"> + <el-form :inline="true" :model="formInline" class="demo-form-inline"> + <el-form-item> <el-input - v-model="input" - style="color: #fff" + v-model="formInline.user" + suffix-icon="el-icon-search" :placeholder="$t('common.pleaseInput')" - /></el-col> - <el-col :span="4" - ><el-button class="primary">{{ $t('common.iquery') }}</el-button> - <el-button v-if="archStatus.download" type="success">{{ - $t('common.download') - }}</el-button> - </el-col> - <el-col :span="6"> </el-col> - </el-row> - <el-divider /> - <el-card shadow="never" class="middle_card"> - <el-table :data="tableData" style="width: 10000px" stripe> - <el-table-column - prop="name" - :label="$t('archive.uname')" - width="180" - /> - <el-table-column - prop="type" - sortable - :label="$t('archive.type')" - width="180" - /> - <el-table-column - prop="count" - sortable - :label="$t('archive.modifications')" - width="180" - /> - <el-table-column - prop="timer" - sortable - :label="$t('archive.creationtime')" - /> - <el-table-column - prop="state" - :label="$t('archive.state')" - width="180" - /> - </el-table> - </el-card> - <el-divider /> - - <el-pagination - :currentPage="currentPage4" - :page-size="pageSize4" - :page-sizes="[10, 20, 50, 100]" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="400" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </el-card> + ></el-input> + </el-form-item> + <el-form-item> + <el-button class="primaries">{{ $t('common.iquery') }}</el-button> + </el-form-item> + <el-form-item> + <el-button class="primaries">{{ $t('common.download') }}</el-button> + </el-form-item> + <el-form-item> + <el-button class="primaries">{{ $t('common.iquery') }}</el-button> + </el-form-item> + </el-form> + </div> + </div> + <div class="bottom_content"> + <div class="left_bottom"> + <div class="left_tree"> + <el-tree + :data="tree" + :props="defaultProps" + :default-expanded-keys="[1]" + node-key="id" + @node-click="handleNodeClick" + ></el-tree> + </div> + </div> + <div class="right_bottom"></div> </div> </div> </template> <script> +import { dataLib_selectTabs, dataLib_selectTabFields } from '../../api/api'; + +import MyBread from '../../components/MyBread.vue'; export default { + components: { + MyBread, + }, data() { return { - input: '', + listdata: { + name: null, + pageSize: 10, + pageIndex: 1, + }, + count: 0, + formInline: {}, tree: [ { - label: '鏂囩尞', - children: [ - { - label: '绠¢亾鏍囧噯鏂囩尞', - url: '', - }, - { - label: '宸ヤ笟绠¢亾宸ョ▼鏂藉伐鍙婇獙鏀惰鑼�', - url: '', - }, - { - label: '缁煎悎绠$嚎璁捐鏍囧噯', - url: '', - }, - ], + tabDesc: '鍩虹鏁版嵁', + label: '鍩虹鏁版嵁', + value: 'BD', + children: [], }, { - label: '鍥剧焊', //label瀵瑰簲鐖剁骇鏍囩 - children: [ - { - label: 'XXX绠$嚎璁捐鍥剧焊', - url: ' ', - }, - { - label: 'XXXXXX绠$嚎璁捐鍥�', - url: ' ', - }, - { - label: 'XXXXX绠$嚎璁捐鍥�', - url: ' ', - }, - ], - }, - { - label: '鏁版嵁', //label瀵瑰簲鐖剁骇鏍囩 - children: [ - { - label: '绠¢亾', - url: ' ', - }, - { - label: '闃�闂�', - url: ' ', - }, - { - label: '娑堣垂璁惧', - url: ' ', - }, - ], + tabDesc: '涓氬姟鏁版嵁', + label: '涓氬姟鏁版嵁', + value: 'BS', + children: [], }, ], defaultProps: { - chilren: 'children', //"children"鍐呯殑姣忎釜瀵硅薄瑙f瀽涓轰竴涓瓙椤�; - label: 'label', //鎵�鏈�"label"鎵�鍦ㄧ殑瀵硅薄瑙f瀽涓轰竴涓埗椤� - }, - tableData: [], - archStatus: { - download: false, + children: 'children', + label: 'label', }, }; }, methods: { - showArchMenu(res) { - switch (res.tag) { - case '/download': - this.archStatus.download = true; - break; + //鏍戣妭鐐圭偣鍑讳簨浠� + handleNodeClick(data) { + if (data.children != null) return; + this.listData.name = data.entity; //瑕佹煡璇㈣〃鏍肩被鍨嬶紱 + this.filedsLayer = this.getDataLibSelectTabFields(data); //鑾峰彇姣忎釜琛ㄥ瓧娈靛悕绉板強闃堝�� + }, + async getDataLibSelectTabFields(res) { + const data = await dataLib_selectTabFields({ + ns: res.ns, + tab: res.entity, + }); + if (data.code != 200) { + this.$message.error('鍒楄〃璋冪敤澶辫触'); + return; + } + debugger; + }, + //鑾峰彇鎵�鏈夎〃鏍兼暟鎹� + async getDataLibSelectTabs() { + const data = await dataLib_selectTabs(); + if (data.code != 200) { + this.$message.error('鍒楄〃璋冪敤澶辫触'); + return; + } + var option = data.result; + for (var i in option) { + var val_Data = option[i]; + val_Data.id = '1' + i; + val_Data.label = val_Data.tabDesc + '(' + val_Data.tab + ')'; + if (option[i].ns == 'bd') { + this.tree[0].children.push(val_Data); + } else { + this.tree[1].children.push(val_Data); + } } }, }, - created() { - var val = this.$store.state.currentPerms; - var permsEntity = this.$store.state.permsEntity; - for (var i = 0; i < permsEntity.length; i++) { - if (permsEntity[i].perms == val) { - // this.showMenuChange(permsEntity[i], permsEntity); - this.showArchMenu(permsEntity[i]); - } - } + mounted() { + this.getDataLibSelectTabs(); }, }; </script> -<style> +<style lang="less" scoped> .archive { width: 100%; height: 100%; - position: relative; -} -.archive .left_active { - width: 21%; - height: 100%; - float: left; -} + margin: 0; + overflow: hidden; + background: black; + .top_header { + width: calc(100% - 60px); + height: 70px; + background: #353539; + display: flex; + padding: 0 30px; + justify-content: space-between; -.archive .right_active { - width: 78.5%; - height: 100%; - float: right; -} -.archive .arch_card { - width: 100%; - height: 100%; - background: #303030; -} -.archive .arch_card .el-card__body { - padding: 10px; -} -.archive .el-divider--horizontal { - margin: 10px 0 !important; -} -.archive .left_active .title_active { - font-size: 22px; - font-family: Microsoft YaHei; - font-weight: bold; - color: #3b4d6e; -} -.archive .middle_div { - border: 1px solid red; -} -.archive .middle_card { - width: 100%; - height: 81vh; - border: transparent; - background: #303030; -} - -.archive .el-table .warning-row { - --el-table-tr-bg-color: var(--el-color-warning-light-9); -} -.el-form-item__label { - color: white; -} - -.el-input__inner { - background-color: transparent !important ; - - border: 1px solid; -} -.primary { - background: #409eff; - border: #409eff; - color: white; + label { + font-size: 21px; + font-family: Source Han Sans SC; + font-weight: 400; + color: #009cff; + line-height: 70px; + } + span { + color: gray; + margin: 0 5px; + } + /deep/.el-form--inline .el-form-item__content { + line-height: 70px; + } + /deep/.el-form--inline .el-form-item__label { + line-height: 70px; + } + } + .bottom_content { + width: 100%; + height: calc(100% - 70px); + display: flex; + justify-content: space-between; + .left_bottom { + width: 224px; + height: calc(100% - 64px); + background: #303030; + padding: 32px 23px; + .left_tree { + width: 100%; + height: 100%; + overflow: auto; + } + } + .right_bottom { + width: calc(100% - 20px); + height: calc(100% - 20px); + padding: 10px; + } + } + .primaries { + background: linear-gradient(180deg, #002992, #080472); + border: 1px solid #000000; + box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.21); + color: white; + } } </style> diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue index 9cf6a13..80fcdf7 100644 --- a/src/views/Synthesis/LeftMenu.vue +++ b/src/views/Synthesis/LeftMenu.vue @@ -309,6 +309,7 @@ isNaviget: false, isolineFlag: false, isslopeFlag: false, + isContrastFlag: false, }; }, methods: { @@ -320,6 +321,10 @@ this.$store.state.mapPopBoolean = false; this.$store.state.mapPopBoxFlag = null; var val = res.id[0]; + if (window.model != null) { + window.model.deleteObject(); + window.model = null; + } switch (val) { case 'a': //鍥惧眰绠$悊 this.setCoverage(res.id); @@ -386,6 +391,7 @@ break; case 'h7': sgworld.Creator.SimpleGraphic.clear(); + break; } }, @@ -434,7 +440,6 @@ let files = evt.target.files; if (files.length > 0) { let file = evt.target.files[0]; - let fileReader = new FileReader(); fileReader.readAsDataURL(file); fileReader.onload = () => { @@ -693,6 +698,30 @@ } ); break; + case 'd7': + var that = this; + window.model = sgworld.Creator.create3DTilesets( + '', + modelUrl, + {}, + {}, + '0', + true, + (data) => { + sgworld.Navigate.flyToObj(data); + that.setclippingModel(); + } + ); + break; + case 'd8': + if (this.isContrastFlag == false) { + this.isContrastFlag = true; + sgworld.Analysis.createCurtainContrast(2, 1); + } else { + this.isContrastFlag = false; + sgworld.Analysis.clearCurtainContrast(); + } + break; case 'd10': if (window.TerrainFlattening) { window.TerrainFlattening.remove(); @@ -731,6 +760,18 @@ break; } }, + setclippingModel() { + if (window.model) { + setTimeout(() => { + window.model.clippingModel({ + direction: 'z', + }); + }, 1000); + // window.model.clippingModel({ + // direction: 'z', + // }); + } + }, clear(res) { switch (res) { case 'd4': diff --git a/src/views/datamanage/metadataManage.vue b/src/views/datamanage/metadataManage.vue index 894843b..379bdcb 100644 --- a/src/views/datamanage/metadataManage.vue +++ b/src/views/datamanage/metadataManage.vue @@ -330,7 +330,7 @@ border style="width: 100%" > - <el-table-column width="60" type="index" :label="$t('common.index')" /> + <el-table-column width="60" align="center" type="index" :label="$t('common.index')" /> <el-table-column v-for="(item, index) in attributeData" :key="index" @@ -338,6 +338,7 @@ :prop="item.field" show-overflow-tooltip align="center" + ></el-table-column> </el-table> <div style="margin-top: 10px" class="pagination_box"> @@ -463,7 +464,7 @@ ], }, tableData: [], - dbTableData:[], + dbTableData: [], count: 0, currentPage: 1, pageSize: 10, @@ -489,14 +490,14 @@ checkStrictly: true, emitPath: false, }, - dialogVisible:false, - listLoader:{ - id:null, - pageSize:1, - pageSize:10, + dialogVisible: false, + listLoader: { + id: null, + pageSize: 1, + pageSize: 10, }, - count1:0, - attributeData:[], + count1: 0, + attributeData: [], }; }, created() { @@ -508,53 +509,72 @@ }, methods: { - async detail(res){ + async detail(res) { var val = res.tab.split("."); const data = await meta_selectFields({ - ns:val[0], - tab:val[1] + ns: val[0], + tab: val[1] }) - if(data.code != 200){ - this.$message.error('瀛楁鍒楄〃璋冪敤澶辫触'); + + if (data.code != 200) { + this.$message.error('瀛楁鍒楄〃璋冪敤澶辫触'); return } + this.dialogVisible = true; - this.attributeData =data.result; - this.listLoader={ - id:res.id, - pageIndex:1, - pageSize:10, + this.attributeData = data.result; + + this.listLoader = { + id: res.id, + pageIndex: 1, + pageSize: 10, } - this.getDataLoaderSelectDbData(); + this.getDataLoaderSelectDbData(); }, - async getDataLoaderSelectDbData (){ - const data1 = await meta_selectByPageForUpload(this.listLoader); - if(data1.code != 200){ - this.$message.error('瀛楁鍒楄〃璋冪敤澶辫触'); + async getDataLoaderSelectDbData() { + const data1 = await meta_selectByPageForUpload(this.listLoader); + if (data1.code != 200) { + this.$message.error('瀛楁鍒楄〃璋冪敤澶辫触'); return } - this.dbTableData =data1.result; - this.count1 = data1.count; - }, - handleLoaderSizeChange(val){ - this.listLoader.pageIndex= 1; - this.listLoader.pageSize =val; - this.getDataLoaderSelectDbData(); - }, -handleLoaderCurrentChange(val){ - this.listLoader.pageIndex= val; - this.getDataLoaderSelectDbData(); -}, - - async signGetPublicKey(){ - const res = await sign_getPublicKey(); - if (res && res.code == 200) { - window.encrypt = new JSEncrypt(); - encrypt.setPublicKey(res.result); + debugger + var option = data1.result; + for (var i in option) { + option[i].dirid = option[i].dirName; + option[i].depid = option[i].depName; + option[i].createuser = option[i].createName; + option[i].updateuser = option[i].updateName; + option[i].verid = option[i].verName; + if (option[i].createtime != null) { + option[i].createtime = this.setInfoBoxTime(option[i].createtime) } + if (option[i].updatetime != null) { + option[i].updatetime = this.setInfoBoxTime(option[i].updatetime) + } + + } + this.dbTableData = data1.result; + this.count1 = data1.count; + }, + handleLoaderSizeChange(val) { + this.listLoader.pageIndex = 1; + this.listLoader.pageSize = val; + this.getDataLoaderSelectDbData(); + }, + handleLoaderCurrentChange(val) { + this.listLoader.pageIndex = val; + this.getDataLoaderSelectDbData(); + }, + + async signGetPublicKey() { + const res = await sign_getPublicKey(); + if (res && res.code == 200) { + window.encrypt = new JSEncrypt(); + encrypt.setPublicKey(res.result); + } }, //鍗曚綅鍒楄〃鑾峰彇 async getQueryDepTree() { @@ -863,25 +883,25 @@ pwd: encrypt.encrypt(this.codeForm.repassword), ids: std }; - const res = await meta_downloadReq(JSON.stringify(obj)) + const res = await meta_downloadReq(JSON.stringify(obj)) - if(res.code!=200){ + if (res.code != 200) { this.$message.error('涓嬭浇璇锋眰澶辫触'); return - } + } - var downObj={ - guid :res.result, - pwd :encodeURIComponent(encrypt.encrypt(this.codeForm.repassword)) - } + var downObj = { + guid: res.result, + pwd: encodeURIComponent(encrypt.encrypt(this.codeForm.repassword)) + } const data = await meta_selectDownloadFile(downObj) - if(data.code !=200){ + if (data.code != 200) { this.$message.error('涓嬭浇璇锋眰澶辫触'); return - } - var token = getToken() - var url = BASE_URL+"/meta/downloadFile?token=" +token+ "&guid=" + res.result + "&pwd=" +encodeURIComponent(encrypt.encrypt(this.codeForm.repassword)); + } + var token = getToken() + var url = BASE_URL + "/meta/downloadFile?token=" + token + "&guid=" + res.result + "&pwd=" + encodeURIComponent(encrypt.encrypt(this.codeForm.repassword)); $("#downFrame").attr("src", url).click(); this.closeDown(); -- Gitblit v1.9.3