From ce20ac0c6339fbde3d3f9f62c1b39327880b8ccc Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 09 五月 2023 10:13:28 +0800 Subject: [PATCH] 图层管理,发布管理修改 --- src/views/PackageTwo/WareInspection.vue | 41 +++++++--- src/views/datamanage/uploadmanage.vue | 10 ++ src/views/exportMap/index.vue | 62 ++++++++++++++- src/assets/lang/zh.js | 10 ++ src/components/preview_map.vue | 20 ++++ src/assets/lang/en.js | 11 ++ src/components/navMenu.vue | 4 + src/views/datamanage/layerManagement.vue | 60 +++++++++++--- 8 files changed, 184 insertions(+), 34 deletions(-) diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index daa2506..9088321 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -78,6 +78,8 @@ layerObj: { menuName: 'menu name', menuType: 'Menu Type', + menuName: 'Layer Name', + menuType: 'Layer Type', serviceName: 'service name', serviceType: 'service type', serviceAddress: 'Service Address', @@ -86,6 +88,15 @@ dataType: 'data type', istrue: 'true', isfalse: 'false', + enTableName: 'English Table Name', + prompt1: 'Please enter a layer name', + prompt2: 'Please select a layer type', + prompt3: 'Please select a service type', + prompt4: 'Please enter the service address', + + prompt6: 'Please enter the name of the English table (eg: m_geocontrollpoint)', + prompt7: 'Please enter note information', + prompt8: 'Please select a data type', }, dataStaticObj: { diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index 113301a..b800ebc 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -77,6 +77,8 @@ layerObj: { menuName: '鑿滃崟鍚嶇О', menuType: '鑿滃崟绫诲瀷', + menuName: '鍥惧眰鍚嶇О', + menuType: '鍥惧眰绫诲瀷', serviceName: '鏈嶅姟鍚嶇О', serviceType: '鏈嶅姟绫诲瀷', serviceAddress: '鏈嶅姟鍦板潃', @@ -85,7 +87,15 @@ dataType: '鏁版嵁绫诲瀷', istrue: '鏄�', isfalse: '鍚�', + enTableName: '鑻辨枃琛ㄥ悕绉�', + prompt1: '璇疯緭鍏ュ浘灞傚悕绉�', + prompt2: '璇烽�夋嫨鍥惧眰绫诲瀷', + prompt3: '璇烽�夋嫨鏈嶅姟绫诲瀷', + prompt4: '璇疯緭鍏ユ湇鍔″湴鍧�', + prompt6: '璇疯緭鍏ヨ嫳鏂囪〃鍚嶇О(濡�:m_geocontrolpoint)', + prompt7: '璇疯緭鍏ュ娉ㄤ俊鎭�', + prompt8: '璇烽�夋嫨鏁版嵁绫诲瀷', }, dataStaticObj: { type1: '鏈嶅姟鍚嶇О', diff --git a/src/components/navMenu.vue b/src/components/navMenu.vue index 7de5719..ee0583c 100644 --- a/src/components/navMenu.vue +++ b/src/components/navMenu.vue @@ -152,9 +152,13 @@ document.body.addEventListener('click', () => { this.showFlag = null; }, false); + }, computed: {}, methods: { + closeSecondMenu() { + this.showFlag = null + }, themeChange() { this.$store.state.themeflag = !this.$store.state.themeflag; if (this.$store.state.themeflag == true) { diff --git a/src/components/preview_map.vue b/src/components/preview_map.vue index 34eaa1d..c2a5c09 100644 --- a/src/components/preview_map.vue +++ b/src/components/preview_map.vue @@ -917,7 +917,23 @@ if (this.$store.state.previewLayer) { var res = this.$store.state.previewLayer; var type = res.type; - if (res.url.indexOf('.png') != -1) { + if (type == 'DEM') { + window.terrainLayer.deleteObject(); + window.terrainLayer = null; + window.terrainLayer = new Cesium.CesiumTerrainProvider({ + url: res.url + }); + Viewer.terrainProvider = window.terrainLayer + Viewer.camera.flyTo({ + destination: Cesium.Cartesian3.fromDegrees(113.229279, 31.215949, 1000), + orientation: { + heading: 6.08434611923462, + pitch: Cesium.Math.toRadians(-45.0), + roll: 0.0 + } + }); + + } else if (res.url.indexOf('.png') != -1) { var wkt = this.$wkt.parse(res.geom); var height = this.getHeight(wkt.coordinates[2]) window.BaseMapLayer = Viewer.imageryLayers.addImageryProvider( @@ -929,7 +945,7 @@ Viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], height), }); - } else if (res.url.indexOf('.json') != -1) { + } else if (type == '3dml') { if (this.app.tileset) viewer.scene.primitives.remove(this.app.tileset); this.app.tileset = this.createTileset(res); var that = this; diff --git a/src/views/PackageTwo/WareInspection.vue b/src/views/PackageTwo/WareInspection.vue index 32d3b85..c716574 100644 --- a/src/views/PackageTwo/WareInspection.vue +++ b/src/views/PackageTwo/WareInspection.vue @@ -1,8 +1,11 @@ <!--鍏ュ簱璐ㄦ---> <template> - <div class="wareBox"> + <div + class="wareBox" + id="wareBox" + > <iframe - id="ifream" + id="iframeContainer" style="border:none" width="100%" height="100%" @@ -10,7 +13,8 @@ ></iframe> </div> </template> - + + <script> import { getToken } from "@/utils/auth"; export default { @@ -38,15 +42,18 @@ } }, methods: { + closeNaveMenu() { + this.$bus.$emit('closeNaveMenu', true) + }, langreash(res) { - this.$router.push('/QualityInspection') + this.$router.push('/QualityInspection') }, refreash(res) { - this.$router.push('/QualityInspection') - + this.$router.push('/QualityInspection') + }, showChangeIfream(res) { // @@ -89,9 +96,9 @@ setLiClick(res, index) { var timer = setTimeout(function () { if (res.indexOf('http') != -1) { - this.$store.reporturl = res; - // sessionStorage.setItem('iframehttpurl', this.$store.reporturl) - this.$router.push('/QualityInspection'); + this.$store.reporturl = res; + // sessionStorage.setItem('iframehttpurl', this.$store.reporturl) + this.$router.push('/QualityInspection'); // if (location.href.indexOf('/WareInspection') == -1) { // this.$store.reporturl = res.url; // this.$router.push('/WareInspection'); @@ -114,10 +121,20 @@ }, }, mounted() { - // console.log(sessionStorage.getItem('iframehttpurl')) - // + + // var iframe = document.getElementById('iframeContainer'); + // iframe.onload = function (res) { + + // } + + // $('#iframeContainer').click = function () { + // console.log('鐐瑰嚮浜唅frame椤甸潰') + // // if (window.sessionStorage.getItem('xxxLastTime') !== null) { + // // window.sessionStorage.setItem('xxxLastTime', new Date().getTime()) + // // } + // }; if (sessionStorage.getItem('routerName') === '/WareInspection') { - + this.showChangeIfream(sessionStorage.getItem('iframehttpurl')) this.setLiClick(sessionStorage.getItem('iframehttpurl')) diff --git a/src/views/datamanage/layerManagement.vue b/src/views/datamanage/layerManagement.vue index 1da5a84..af264e5 100644 --- a/src/views/datamanage/layerManagement.vue +++ b/src/views/datamanage/layerManagement.vue @@ -12,7 +12,11 @@ style="border: 1px solid #dcdfe6;" > <div> - <el-input v-model="filterText"></el-input> + <el-input + v-model="filterText" + :placeholder="$t('dataManage.layerObj.prompt1')" + suffix-icon="el-icon-search" + ></el-input> <el-tree ref="tree" @@ -104,6 +108,7 @@ <!-- 鑿滃崟鍚嶇О --> <el-form-item :label="$t('dataManage.layerObj.menuName')"> <el-input + :placeholder="$t('dataManage.layerObj.prompt1')" style="width: 60%;" v-model="formInline.cnName" ></el-input> @@ -111,10 +116,10 @@ <!-- 鑿滃崟绫诲瀷 --> <el-form-item :label="$t('dataManage.layerObj.menuType')"> <el-select + :placeholder="$t('dataManage.layerObj.prompt2')" clearable style="width: 60%;" v-model="formInline.type" - placeholder=" " > <el-option label="鐩綍" @@ -135,7 +140,7 @@ clearable style="width: 60%;" v-model="formInline.serveType" - placeholder=" " + :placeholder="$t('dataManage.layerObj.prompt3')" > <el-option v-for="item in serveType" @@ -152,8 +157,20 @@ :label="$t('dataManage.layerObj.serviceAddress')" > <el-input + :placeholder="$t('dataManage.layerObj.prompt4')" style="width: 60%;" v-model="formInline.url" + ></el-input> + </el-form-item> + <!-- 鑻辨枃琛ㄥ悕 --> + <el-form-item + v-show="formInline.type == 2 && formInline.serveType =='WMS'" + :label="$t('dataManage.layerObj.enTableName')" + > + <el-input + :placeholder="$t('dataManage.layerObj.prompt6')" + style="width: 60%;" + v-model="formInline.enName" ></el-input> </el-form-item> <!-- 鏁版嵁绫诲瀷 --> @@ -162,7 +179,7 @@ clearable style="width: 60%;" v-model="formInline.dataType" - placeholder=" " + :placeholder="$t('dataManage.layerObj.prompt8')" > <el-option v-for="item in dataType" @@ -206,6 +223,7 @@ <el-input style="width: 60%;" v-model="formInline.bak" + :placeholder="$t('dataManage.layerObj.prompt7')" ></el-input> </el-form-item> <el-form-item v-show="menuStatus.update"> @@ -240,6 +258,7 @@ <el-input style="width: 80%;" v-model="insertData.cnName" + :placeholder="$t('dataManage.layerObj.prompt1')" ></el-input> </el-form-item> <!-- 鑿滃崟绫诲瀷 --> @@ -248,7 +267,7 @@ clearable style="width: 80%;" v-model="insertData.type" - placeholder=" " + :placeholder="$t('dataManage.layerObj.prompt2')" > <el-option label="鐩綍" @@ -269,7 +288,7 @@ clearable style="width: 80%;" v-model="insertData.serveType" - placeholder=" " + :placeholder="$t('dataManage.layerObj.prompt3')" > <el-option v-for="item in serveType" @@ -286,8 +305,20 @@ :label="$t('dataManage.layerObj.serviceAddress')" > <el-input + :placeholder="$t('dataManage.layerObj.prompt4')" style="width: 80%;" v-model="insertData.url" + ></el-input> + </el-form-item> + <!-- 鑻辨枃琛ㄥ悕 --> + <el-form-item + v-show="insertData.type == 2 && insertData.serveType =='WMS'" + :label="$t('dataManage.layerObj.enTableName')" + > + <el-input + :placeholder="$t('dataManage.layerObj.prompt6')" + style="width: 80%;" + v-model="insertData.enName" ></el-input> </el-form-item> <!-- 鏁版嵁绫诲瀷 --> @@ -296,7 +327,7 @@ clearable style="width: 80%;" v-model="insertData.dataType" - placeholder=" " + :placeholder="$t('dataManage.layerObj.prompt8')" > <el-option v-for="item in dataType" @@ -338,6 +369,7 @@ <!-- 鎻忚堪 --> <el-form-item :label="$t('common.bak')"> <el-input + :placeholder="$t('dataManage.layerObj.prompt7')" style="width: 80%;" v-model="insertData.bak" ></el-input> @@ -634,13 +666,13 @@ var val = JSON.parse(JSON.stringify(res)) var data = this.$refs.tree.getNode(val.id).data; - - this.backUpData = JSON.stringify(data) - this.currentData = JSON.stringify(data) - this.formInline = data; - this.formInline.type = data.type.toString(); - this.formInline.isShow = data.isShow.toString(); - this.formInline.isProject = data.isProject.toString(); + var result = JSON.parse(JSON.stringify(data)) + this.backUpData = JSON.stringify(result) + this.currentData = JSON.stringify(result) + this.formInline = result; + this.formInline.type = result.type.toString(); + this.formInline.isShow = result.isShow.toString(); + this.formInline.isProject = result.isProject.toString(); }, //鍥惧眰鍒楄〃鐐瑰嚮浜嬩欢 handleNodeClick(data, node) { diff --git a/src/views/datamanage/uploadmanage.vue b/src/views/datamanage/uploadmanage.vue index 5f2bf53..bff463a 100644 --- a/src/views/datamanage/uploadmanage.vue +++ b/src/views/datamanage/uploadmanage.vue @@ -458,7 +458,10 @@ v-model="insertLayer.number" ></el-input> </el-form-item> - <el-form-item :label="$t('dataManage.vmobj.labe14')"> + <el-form-item + :label="$t('dataManage.vmobj.labe14')" + v-show="formInline.type =='DOM'" + > <el-select style="width:100%" v-model="insertLayer.noData" @@ -598,6 +601,9 @@ value: 'DOM', label: '褰卞儚鏁版嵁(.tif, .img)' }, { + value: 'DEM', + label: '楂樼▼鏁版嵁(.tif)' + }, { value: 'MPT', label: '鍦烘櫙鏁版嵁(.mpt)' }, { @@ -726,7 +732,7 @@ this.$message("璇烽�夋嫨瑕佸彂甯冪殑鏁版嵁") return } - if (this.formInline.type == "DOM") { + if (this.formInline.type == "DOM" || this.formInline.type == "DEM") { this.insertLayer.name = this.formInline.dirName; this.insertLayer.number = this.multipleSelection.length this.insertLayer.noData = '0'; diff --git a/src/views/exportMap/index.vue b/src/views/exportMap/index.vue index ed7d7bc..6af9cac 100644 --- a/src/views/exportMap/index.vue +++ b/src/views/exportMap/index.vue @@ -36,7 +36,7 @@ <el-form-item> <el-link - @click="setMapAddDraw()" + @click="drawRegularPolygon()" :underline="false" ><i class="el-icon-edit-outline"></i>缁樺埗</el-link> </el-form-item> @@ -75,13 +75,13 @@ :underline="false" >鐭㈤噺</el-link> </el-form-item> - <el-form-item label="鏃嬭浆瑙掑害"> + <!-- <el-form-item label="鏃嬭浆瑙掑害"> <el-input v-model="formInline.role" placeholder="璇疯緭鍏ュ唴瀹�" @change="setMapRole" ></el-input> - </el-form-item> + </el-form-item> --> </el-form> </div> <div @@ -131,6 +131,12 @@ > <el-form-item label="鍑哄浘鍚嶇О"> <el-input v-model="form.name"></el-input> + </el-form-item> + <el-form-item label="鏃嬭浆瑙掑害"> + <el-input + v-model="formInline.role" + placeholder="璇疯緭鍏ユ棆杞搴�(0-360)" + ></el-input> </el-form-item> <el-form-item> <div style="padding: 1%; "> @@ -279,6 +285,8 @@ import TileLayer from "ol/layer/Tile" import { transform } from "ol/proj" import Draw, { createRegularPolygon, createBox } from "ol/interaction/Draw.js" + + import { OSM, Vector as VectorSource } from "ol/source" import { Vector as VectorLayer } from "ol/layer" import LayerVector from "ol/layer/Vector" @@ -500,7 +508,7 @@ resolution: "20绫�", date: this.getYMD(), layers: res.toString(), - rotation: 0, + rotation: this.form.role, xmin: this.layerExtent.xmin, ymin: this.layerExtent.ymin, xmax: this.layerExtent.xmax, @@ -548,7 +556,53 @@ } this.layerExtent = null }, + stopDraw() { + // if (this.draw !== null) { + // this.map.removeInteraction(this.draw) + // } + if (this.draw != null) { + mapView.removeLayer(this.vector) + } + this.layerExtent = null + }, + drawRegularPolygon() { + this.stopDraw(); + + this.source = new VectorSource({ wrapX: false }) + + this.vector = new VectorLayer({ + source: this.source, + }) + mapView.addLayer(this.vector) + + let type = 'Circle' + let geometryFunction2 = createRegularPolygon(4) + this.draw = new Draw({ + source: this.source, + type: type, + geometryFunction: geometryFunction2 + }) + mapView.addInteraction(this.draw) + this.draw.on("drawend", e => { + let feature = e.feature + let geom = feature.getGeometry() + var extent = geom.getExtent() + var a1 = transform([extent[0], extent[1]], "EPSG:3857", "EPSG:4326") + var a2 = transform([extent[2], extent[3]], "EPSG:3857", "EPSG:4326") + + this.layerExtent = { + xmin: a1[0], + ymin: a1[1], + xmax: a2[0], + ymax: a2[1], + } + + mapView.removeInteraction(this.draw) + }) + + }, + //缁樺埗鍥惧舰 setMapAddDraw() { this.setMapRemoveDraw() -- Gitblit v1.9.3