From 2dee2fd0049aca6e2af948dabe19dbfecd889318 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 23 五月 2023 09:38:46 +0800 Subject: [PATCH] 1.合并代码 --- src/views/Tools/LayerTree.vue | 207 +++++--------- src/components/preview_map.vue | 604 +++++++++++++++++------------------------- 2 files changed, 320 insertions(+), 491 deletions(-) diff --git a/src/components/preview_map.vue b/src/components/preview_map.vue index 19f76d2..3eab5dd 100644 --- a/src/components/preview_map.vue +++ b/src/components/preview_map.vue @@ -1,205 +1,139 @@ <template> - <div - id="mapdiv" - class="previewBox" - > - <div - v-if="modelLayer" - class="modelLayer box_divm" - > + <div id="mapdiv" + class="previewBox"> + <div v-if="modelLayer" + class="modelLayer box_divm"> <div class="modelBox"> - <div - style="float:right" - :title="$t('synthesis.undergroundMode')" - @click="setUndergroundMode" - > + <div style="float:right" + :title="$t('synthesis.undergroundMode')" + @click="setUndergroundMode"> <i class="el-icon-sunrise "></i> </div> </div> <div class="modelBox"> - <el-tree - :data="treeData" - show-checkbox - node-key="id" - ref="tree" - :default-expanded-keys="[1]" - :props="defaultProps" - @node-click="handleNodeClick" - @check="handleCheckChange" - > + <el-tree :data="treeData" + show-checkbox + node-key="id" + ref="tree" + :default-expanded-keys="[1]" + :props="defaultProps" + @node-click="handleNodeClick" + @check="handleCheckChange"> </el-tree> </div> </div> - <div - v-if="editModelFlag" - class="modelLayer box_divm" - > - <el-form - ref="form" - :model="modelForm" - label-width="80px" - > + <div v-if="editModelFlag" + class="modelLayer box_divm"> + <el-form ref="form" + :model="modelForm" + label-width="80px"> <el-form-item> - <el-button - size="small" - @click="locateTo" - >瀹氫綅</el-button> - <el-button - size="small" - @click="showTileset" - >鏄鹃殣</el-button> - <el-button - size="small" - @click="underground" - >鍦颁笅</el-button> - <el-button - v-if="$store.state.previewLayer.type != '3dml'" - size="small" - @click="pickupCoords" - >鎷惧彇</el-button> - <el-button - v-if="$store.state.previewLayer.type != '3dml'" - size="small" - @click="reload" - > + <el-button size="small" + @click="locateTo">瀹氫綅</el-button> + <el-button size="small" + @click="showTileset">鏄鹃殣</el-button> + <el-button size="small" + @click="underground">鍦颁笅</el-button> + <el-button v-if="$store.state.previewLayer.type != '3dml'" + size="small" + @click="pickupCoords">鎷惧彇</el-button> + <el-button v-if="$store.state.previewLayer.type != '3dml'" + size="small" + @click="reload"> 閲嶈浇 </el-button> - <el-button - v-if="modelForm.modelid == null && $store.state.previewLayer.type != '3dml'" - size="small" - @click="getModeKeyId" - >妯″瀷涓婚敭</el-button> - <el-button - v-if="$store.state.previewLayer.type != '3dml'" - size="small" - @click="resave" - >淇濆瓨</el-button> + <el-button v-if="modelForm.modelid == null && $store.state.previewLayer.type != '3dml'" + size="small" + @click="getModeKeyId">妯″瀷涓婚敭</el-button> + <el-button v-if="$store.state.previewLayer.type != '3dml'" + size="small" + @click="resave">淇濆瓨</el-button> </el-form-item> - <el-form-item - label="缁忓害:" - v-if="$store.state.previewLayer.type != '3dml'" - > - <el-input - size="small" - v-model="modelForm.lon" - @input="update" - ></el-input> - <el-slider - v-model="modelForm.lon" - @input="update" - :min="73" - :step="0.001" - :max="135" - ></el-slider> + <el-form-item label="缁忓害:" + v-if="$store.state.previewLayer.type != '3dml'"> + <el-input size="small" + v-model="modelForm.lon" + @input="update"></el-input> + <el-slider v-model="modelForm.lon" + @input="update" + :min="73" + :step="0.001" + :max="135"></el-slider> </el-form-item> - <el-form-item - label="绾害:" - v-if="$store.state.previewLayer.type != '3dml'" - > - <el-input - size="small" - v-model="modelForm.lat" - @input="update" - ></el-input> - <el-slider - v-model="modelForm.lat" - @input="update" - :min="3" - :step="0.001" - :max="54" - ></el-slider> + <el-form-item label="绾害:" + v-if="$store.state.previewLayer.type != '3dml'"> + <el-input size="small" + v-model="modelForm.lat" + @input="update"></el-input> + <el-slider v-model="modelForm.lat" + @input="update" + :min="3" + :step="0.001" + :max="54"></el-slider> </el-form-item> - <el-form-item - label="楂樺害:" - v-if="$store.state.previewLayer.type != '3dml'" - > - <el-input - size="small" - v-model="modelForm.height" - @input="update" - ></el-input> - <el-slider - v-model="modelForm.height" - :min="-800" - :step="1" - @input="update" - :max="8800" - ></el-slider> + <el-form-item label="楂樺害:" + v-if="$store.state.previewLayer.type != '3dml'"> + <el-input size="small" + v-model="modelForm.height" + @input="update"></el-input> + <el-slider v-model="modelForm.height" + :min="-800" + :step="1" + @input="update" + :max="8800"></el-slider> </el-form-item> - <el-form-item - label="瑙掑害:" - v-if="$store.state.previewLayer.type != '3dml'" - > - <el-input - size="small" - v-model="modelForm.yaw" - @input="update" - ></el-input> - <el-slider - v-model="modelForm.yaw" - :min="0" - @input="update" - :step="0.1" - :max="360" - ></el-slider> + <el-form-item label="瑙掑害:" + v-if="$store.state.previewLayer.type != '3dml'"> + <el-input size="small" + v-model="modelForm.yaw" + @input="update"></el-input> + <el-slider v-model="modelForm.yaw" + :min="0" + @input="update" + :step="0.1" + :max="360"></el-slider> </el-form-item> <el-form-item label="閫忔槑搴�:"> - <el-input - size="small" - v-model="modelForm.alpha" - @input="update" - ></el-input> - <el-slider - v-model="modelForm.alpha" - @input="update" - :min="0" - :step="0.01" - :max="1" - ></el-slider> + <el-input size="small" + v-model="modelForm.alpha" + @input="update"></el-input> + <el-slider v-model="modelForm.alpha" + @input="update" + :min="0" + :step="0.01" + :max="1"></el-slider> </el-form-item> </el-form> </div> - <el-dialog - :title="formInline.title" - :visible.sync="dialogVisible" - :modal="false" - :modal-append-to-body="false" - :close-on-click-modal="false" - :before-close="handleClose" - width="30%" - > + <el-dialog :title="formInline.title" + :visible.sync="dialogVisible" + :modal="false" + :modal-append-to-body="false" + :close-on-click-modal="false" + :before-close="handleClose" + width="30%"> <div style="height:63vh"> - <el-tabs - v-model="activeName" - @tab-click="handleClick" - > - <el-tab-pane - label="灞炴��" - name="first" - > - <el-form - ref="form" - :model="formInline" - label-width="80px" - > + <el-tabs v-model="activeName" + @tab-click="handleClick"> + <el-tab-pane label="灞炴��" + name="first"> + <el-form ref="form" + :model="formInline" + label-width="80px"> <el-form-item :label="$t('common.name')"> <el-input v-model="formInline.name"></el-input> </el-form-item> <el-form-item :label="$t('common.type')"> - <el-select - v-model="formInline.type" - style="width:100%" - > - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-select v-model="formInline.type" + style="width:100%"> + <el-option v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value"> </el-option> </el-select> @@ -210,110 +144,78 @@ </el-form-item> <el-form-item> - <el-button - v-show="isShowModel" - type="success" - plain - size="small" - @click="InsertData" - >{{$t('common.increase')}}</el-button> - <el-button - v-show="!isShowModel" - type="info" - plain - size="small" - @click="EditData" - >{{$t('common.update')}}</el-button> + <el-button v-show="isShowModel" + type="success" + plain + size="small" + @click="InsertData">{{$t('common.increase')}}</el-button> + <el-button v-show="!isShowModel" + type="info" + plain + size="small" + @click="EditData">{{$t('common.update')}}</el-button> </el-form-item> </el-form> </el-tab-pane> - <el-tab-pane - label="闄勪欢" - name="second" - > - <el-form - :model="fromfile" - class="demo-form-inline" - > + <el-tab-pane label="闄勪欢" + name="second"> + <el-form :model="fromfile" + class="demo-form-inline"> <el-form-item> - <el-input - v-model="fromfile.file" - style="width: 300px; margin-right: 20px" - :placeholder="$t('common.choose')" - disabled - ></el-input> - <input - name="file1" - type="file" - id="insertFile" - multiple="multiple" - style="display: none" - @change="insertFile( )" - /> - <el-link - @click="getInsertFile( )" - :underline="false" - ><i class="el-icon-folder-opened"></i></el-link> + <el-input v-model="fromfile.file" + style="width: 300px; margin-right: 20px" + :placeholder="$t('common.choose')" + disabled></el-input> + <input name="file1" + type="file" + id="insertFile" + multiple="multiple" + style="display: none" + @change="insertFile( )" /> + <el-link @click="getInsertFile( )" + :underline="false"><i class="el-icon-folder-opened"></i></el-link> </el-form-item> <el-form-item> <el-row> <el-col :span="3"> - <el-link - class="elLink" - :underline="false" - @click="setAttachInsert" - >{{$t('common.append')}}</el-link> + <el-link class="elLink" + :underline="false" + @click="setAttachInsert">{{$t('common.append')}}</el-link> </el-col> <el-col :span="3"> - <el-link - class="elLink" - :underline="false" - @click="setAttachDel" - >{{$t('common.delete')}}</el-link> + <el-link class="elLink" + :underline="false" + @click="setAttachDel">{{$t('common.delete')}}</el-link> </el-col> </el-row> </el-form-item> </el-form> - <el-table - :data="tableData" - ref="filterTable" - height="calc(100% - 130px)" - border - style="width: 100%" - @selection-change="handleAttatchChange" - > - <el-table-column - type="selection" - width="70" - /> - <el-table-column - width="60" - type="index" - :label="$t('common.index')" - /> - <el-table-column - prop="name" - :label="$t('common.name')" - /> + <el-table :data="tableData" + ref="filterTable" + height="calc(100% - 130px)" + border + style="width: 100%" + @selection-change="handleAttatchChange"> + <el-table-column type="selection" + width="70" /> + <el-table-column width="60" + type="index" + :label="$t('common.index')" /> + <el-table-column prop="name" + :label="$t('common.name')" /> - <el-table-column - prop="sizes" - :label="$t('common.size')" - :formatter="statSizeChange" - /> - <el-table-column - align="center" - :label="$t('common.operate')" - min-width="100" - > + <el-table-column prop="sizes" + :label="$t('common.size')" + :formatter="statSizeChange" /> + <el-table-column align="center" + :label="$t('common.operate')" + min-width="100"> <template slot-scope="scope"> - <el-link - v-if="matchState(scope, /[]/)" - @click="setAttatchDetail(scope.$index, scope.row)" - class="elLink" - >{{ $t('common.see') }}</el-link> + <el-link v-if="matchState(scope, /[]/)" + @click="setAttatchDetail(scope.$index, scope.row)" + class="elLink">{{ $t('common.see') }}</el-link> </template> </el-table-column> @@ -336,66 +238,48 @@ <map-sdk v-if='showMapVisible'></map-sdk> </div> </el-dialog> --> - <el-dialog - title="棰勮" - :append-to-body="false" - :visible.sync="dialog.dialogVisible" - width="70%" - :close-on-click-modal="false" - > - <div - v-if="dialog.isPdf" - class="pdfClass" - > - <iframe - :src="dialog.src" - type="application/x-google-chrome-pdf" - width="100%" - height="100%" - > + <el-dialog title="棰勮" + :append-to-body="false" + :visible.sync="dialog.dialogVisible" + width="70%" + :close-on-click-modal="false"> + <div v-if="dialog.isPdf" + class="pdfClass"> + <iframe :src="dialog.src" + type="application/x-google-chrome-pdf" + width="100%" + height="100%"> </iframe> </div> - <div - v-if="dialog.isJpg" - class="pdfClass" - > + <div v-if="dialog.isJpg" + class="pdfClass"> - <el-image - style="width:100%; height:100%" - :src="dialog.src" - :preview-src-list="[dialog.src]" - > + <el-image style="width:100%; height:100%" + :src="dialog.src" + :preview-src-list="[dialog.src]"> </el-image> </div> </el-dialog> - <div - v-show="modelKeyFlag" - class="modelLayer box_divm" - v-drag - > - <el-form - ref="form" - :model="modelForm" - label-width="80px" - > + <div v-show="modelKeyFlag" + class="modelLayer box_divm" + v-drag> + <el-form ref="form" + :model="modelForm" + label-width="80px"> <el-form-item label="涓婚敭ID"> <el-select v-model="modelLayerId"> - <el-option - v-for="item in optionKey" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-option v-for="item in optionKey" + :key="item.value" + :label="item.label" + :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item> - <el-button - type="primary" - size="small" - @click="setSureKeyModelKey" - >{{$t('common.confirm')}}</el-button> + <el-button type="primary" + size="small" + @click="setSureKeyModelKey">{{$t('common.confirm')}}</el-button> </el-form-item> </el-form> </div> @@ -421,7 +305,7 @@ components: { undergroundModel }, - data() { + data () { return { levelArray: [ 0, 40000000, 20000000, 10000000, 5000000, 2000000, 1000000, 500000, @@ -500,11 +384,11 @@ modelKeyFlag: false, } }, - mounted() { + mounted () { this.init3DMap(); }, methods: { - setUndergroundMode() { + setUndergroundMode () { if (window.UndergroundMode) { this.$refs && this.$refs.undergroundModel && @@ -515,14 +399,14 @@ this.$refs.undergroundModel.open("鍦颁笅妯″紡", null,); } }, - refreshAttatchDetail() { + refreshAttatchDetail () { this.dialog.src = ""; this.dialog.dialogVisible = false; this.dialog.isPdf = false; this.dialog.isJpg = false; }, //闄勪欢鏌ョ湅 - setAttatchDetail(index, row) { + setAttatchDetail (index, row) { this.refreshAttatchDetail() var name = row.name; if (name.indexOf('.pdf') != -1 || name.indexOf('.PDF') != -1) { @@ -548,7 +432,7 @@ this.dialog.src = url } }, - async setAttachDel() { + async setAttachDel () { var std = []; for (var i in this.attacgSelection) { std.push(this.attacgSelection[i].id); @@ -559,7 +443,7 @@ } this.getAttacthFlieList(); }, - setAttachInsert() { + setAttachInsert () { var token = getToken(); var fs = document.getElementById("insertFile"); if (fs.files.length == 0) { @@ -603,15 +487,15 @@ ); }, //闄勪欢=>鏂囦欢閫夋嫨 - getInsertFile() { + getInsertFile () { $('#insertFile').click(); }, - insertFile() { + insertFile () { var val = document.getElementById('insertFile').files; if (!val || !val.length) return; this.fromfile.file = val[0].name; }, - matchState(state = "", reg) { + matchState (state = "", reg) { var row = state.row; var name = row.name; if ( @@ -633,10 +517,10 @@ return false; }, - statSizeChange(row, column) { + statSizeChange (row, column) { return this.stateFormatSizes(row.sizes) }, - stateFormatSizes(res) { + stateFormatSizes (res) { if (res >= 1024) { const val = parseFloat(res / 1024).toFixed(3); return val + ' GB'; @@ -645,11 +529,11 @@ } }, // 闄勪欢=>琛ㄦ牸閫夋嫨 - handleAttatchChange(val) { + handleAttatchChange (val) { this.attacgSelection = val; }, //闄勪欢鍒楄〃鏌ヨ - async getAttacthFlieList() { + async getAttacthFlieList () { var obj = { eventid: this.layerID, tabName: "lf.sys_style" @@ -661,12 +545,12 @@ } this.tableData = res.result; }, - handleClick() { + handleClick () { if (this.activeName == "second") { this.getAttacthFlieList(); } }, - async EditData() { + async EditData () { const data = await comprehensive_updateModel(this.formInline) @@ -688,7 +572,7 @@ this.startModelData(); }, - async InsertData() { + async InsertData () { var std = { "bak": this.formInline.bak, "guid": this.formInline.Id, @@ -715,7 +599,7 @@ }, - handleClose() { + handleClose () { this.dialogVisible = false; this.formInline = { title: '', @@ -730,7 +614,7 @@ this.activeName = "first" }, - async setShowModelInfo(result) { + async setShowModelInfo (result) { var modelKey = 'id'; if (result.tileset) { @@ -762,7 +646,7 @@ this.dialogVisible = true; }, - async startModelData() { + async startModelData () { var obj = { layerid: this.formInline.layerId, modelid: this.formInline.Id @@ -780,7 +664,7 @@ this.formInline.title = this.formInline.name; } }, - setChangeTileset(result) { + setChangeTileset (result) { var value = this.$refs.tree.getCheckedNodes(); var std = []; for (var i in value) { @@ -799,7 +683,7 @@ } } }, - setAddLayers(res) { + setAddLayers (res) { if (res.serveType == "Tileset" || res.serveType == "3DML") { var url; if (res.url.indexOf("{host}") != -1) { @@ -831,7 +715,7 @@ } }, - async getArgsTileset(tileset, res) { + async getArgsTileset (tileset, res) { if (res.pubid > 0) { const data = await comprehensive_selectPubById({ id: res.pubid }) @@ -853,7 +737,7 @@ } }, - tileSet(tileset, height) { + tileSet (tileset, height) { //3dtile妯″瀷鐨勮竟鐣岀悆浣� var boundingSphere = tileset.boundingSphere; //杩崱灏旂┖闂寸洿瑙掑潗鏍�=>鍦扮悊鍧愭爣锛堝姬搴﹀埗锛� @@ -867,7 +751,7 @@ tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); // Viewer.flyTo(tileset); }, - reloadTile(tileset, res) { + reloadTile (tileset, res) { var vm = JSON.parse(res) var pos = Cesium.Cartesian3.fromDegrees(vm.lon, vm.lat, vm.height); var converter = Cesium.Transforms.eastNorthUpToFixedFrame; @@ -879,7 +763,7 @@ - handleCheckChange(data, checked, indeterminate) { + handleCheckChange (data, checked, indeterminate) { if (data.type == 1) { this.getchilds(data); this.setChangeTileset(this.childOption, checked); @@ -887,7 +771,7 @@ this.setChangeTileset([data], checked); } }, - handleNodeClick(data) { + handleNodeClick (data) { if (data.type == 2) { this.currentData = data; for (var j in Viewer.scene.primitives._primitives) { @@ -897,7 +781,7 @@ } } }, - getchilds(source) { + getchilds (source) { if (source.children) { var child = source.children for (var i in child) { @@ -911,7 +795,7 @@ this.childOption.push(source) } }, - init3DMap() { + init3DMap () { //鍦板浘鍒濆鍖� window.sgworld = new SmartEarth.SGWorld("mapdiv", { licenseServer: window.sceneConfig.licenseServer, @@ -949,21 +833,25 @@ var type = res.type; if (type == 'DEM') { // window.terrainLayer.deleteObject(); - Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider(); - window.terrainLayer = null; + //Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider(); + //window.terrainLayer = null; window.terrainLayer = new Cesium.CesiumTerrainProvider({ url: res.url }); Viewer.terrainProvider = window.terrainLayer - Viewer.camera.flyTo({ + /*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 } + });*/ + var wkt = this.$wkt.parse(res.geom); + var height = this.getHeight(wkt.coordinates[2]); + Viewer.camera.flyTo({ + destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], height), }); - } else if (type == 'DOM') { var wkt = this.$wkt.parse(res.geom); var height = this.getHeight(wkt.coordinates[2]) @@ -997,7 +885,7 @@ } } }, - getModeKeyId() { + getModeKeyId () { window.ModeKeyIdHandler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); window.ModeKeyIdHandler.setInputAction((event) => { @@ -1016,7 +904,7 @@ }, Cesium.ScreenSpaceEventType.LEFT_CLICK) }, - async resave() { + async resave () { if (!this.modelForm.modelid) { return this.$message('鏈�夋嫨妯″瀷涓婚敭ID'); } @@ -1033,7 +921,7 @@ } this.reload(); }, - reload() { + reload () { var json = JSON.stringify(this.modelForm); var url = this.$store.state.previewLayer.url; if (!url) return; @@ -1059,7 +947,7 @@ }, //鎷惧彇 - pickupCoords() { + pickupCoords () { if (this.app.handler) { this.app.handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); this.app.handler = undefined; @@ -1083,12 +971,12 @@ }, Cesium.ScreenSpaceEventType.LEFT_CLICK); }, // 淇濈暀灏忔暟浣� - toFixed(d, n) { + toFixed (d, n) { var p = Math.pow(10, n); return Math.round(d * p) / p; }, - update() { + update () { if (!this.modelForm.lon || isNaN(this.modelForm.lon)) { var args = this.getEditTilesetArgs(); this.modelForm.lon = args.lon == null ? 0 : args.height; @@ -1122,7 +1010,7 @@ this.setTilesetArgs(this.modelForm); sgworld.Analysis.UndergroundMode(this.app.under, this.modelForm.alpha) }, - setTilesetArgs(f) { + setTilesetArgs (f) { if (!this.app.tileset || this.app.isBusy) return; @@ -1135,21 +1023,21 @@ model._root.transform = matrix; }, //鍦颁笅 - underground() { + underground () { this.app.under = !this.app.under; sgworld.Analysis.UndergroundMode(this.app.under, this.modelForm.alpha) }, //鏄鹃殣 - showTileset() { + showTileset () { if (!this.app.tileset) return; this.app.tileset.show = !this.app.tileset.show; }, //瀹氫綅 - locateTo() { + locateTo () { if (!this.app.tileset) return; Viewer.flyTo(this.app.tileset); }, - createTileset(res) { + createTileset (res) { return new Cesium.Cesium3DTileset({ url: res.url, name: 'tsTest', @@ -1172,7 +1060,7 @@ dynamicScreenSpaceError: true // 鍑忓皯绂荤浉鏈鸿緝杩滅殑灞忓箷绌洪棿閿欒锛歠alse锛屽叏灞忓姞杞藉畬涔嬪悗鎵嶆竻鏅板寲鎴垮眿 }); }, - setEditModelLayer(res) { + setEditModelLayer (res) { this.editModelFlag = true; if (res.json) { var json = JSON.parse(res.json) @@ -1182,7 +1070,7 @@ this.getTilesetArgs(); } }, - setModleLocatin() { + setModleLocatin () { var res = this.$store.state.previewLayer; var type = res.type; if (this.modelType.indexOf(type) != -1) { @@ -1195,7 +1083,7 @@ } }, - setModeLayerID(res) { + setModeLayerID (res) { var value = res.getPropertyNames(); var std = []; @@ -1209,12 +1097,12 @@ this.modelLayerId = this.optionKey[0].label; this.modelKeyFlag = true; }, - setSureKeyModelKey() { + setSureKeyModelKey () { this.modelKeyFlag = false; this.modelForm.modelid = this.modelLayerId window.ModeKeyIdHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); //绉婚櫎浜嬩欢 }, - getTilesetArgs() { + getTilesetArgs () { this.app.isBusy = true; var cm = this.app.tileset._root.transform; var cartesian = new Cesium.Cartesian3(cm[12], cm[13], cm[14]); @@ -1227,7 +1115,7 @@ } this.app.isBusy = false; }, - getEditTilesetArgs() { + getEditTilesetArgs () { this.app.isBusy = true; var std = { lon: 0, @@ -1250,7 +1138,7 @@ return std }, - async setShowModelLayer() { + async setShowModelLayer () { const data = await perms_selectLayers(); if (data.code != 200) { @@ -1299,7 +1187,7 @@ }, Cesium.ScreenSpaceEventType.LEFT_CLICK) } }, - setTreeData(source) { + setTreeData (source) { let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 return cloneData.filter((father) => { // 寰幆鎵�鏈夐」 @@ -1323,7 +1211,7 @@ // //淇敼妯″瀷鐭╅樀 // tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); // }, - getHeight(level) { + getHeight (level) { if (level > 0 && level < 23) { return this.levelArray[level] } diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue index 99ec7cd..7da5a56 100644 --- a/src/views/Tools/LayerTree.vue +++ b/src/views/Tools/LayerTree.vue @@ -58,18 +58,17 @@ v-show="menuVisible"> <div class="edit" @click="showLayerAttribute()" - v-if="!showlocal && !shwoHistogram" - v-show="!firstLevel"> + v-if="showProp && !shwoHistogram"> <i class="el-icon-tickets"></i> 灞炴�� </div> <div class="edit" @click="positioning()" - v-if="showlocal"> + v-if="showLocal"> <i class="el-icon-tickets"></i> 瀹氫綅 </div> <div class="edit" @click="pellucidity()" - v-if="showlocal"> + v-if="showOpacity"> <i class="el-icon-tickets"></i> 閫忔槑搴� </div> <div class="edit" @@ -95,13 +94,20 @@ components: { queryinfo }, data () { return { - shwoHistogram: false, - showlocal: false, + showProp: false, // 灞炴�� + shwoHistogram: false, // 閽诲瓟鏌辩姸鍥� + showLocal: false, // 瀹氫綅 + showOpacity: false, // 涓嶉�忔槑搴� + menuVisible: false, // 鑿滃崟 + levelArray: [ // 璋冭瘯鏁扮粍 + 0, 40000000, 20000000, 10000000, 5000000, 2000000, 1000000, 500000, + 250000, 200000, 100000, 50000, 17000, 9000, 5000, 2000, 1000, 500, 200, + 100, 50, 25, 10, 0, + ], eleId: "", isShow: false, currentData: "", currentNode: "", - menuVisible: false, firstLevel: false, filterText: "", appendNodetitle: "", @@ -193,7 +199,6 @@ let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁 branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛岄偅涔� a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛� - // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋� return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� }); }, @@ -215,48 +220,25 @@ // 瑕佸強鏃跺叧鎺夌洃鍚紝涓嶅叧鎺夌殑鏄竴涓潙锛屼笉淇′綘璇曡瘯锛岃櫧鐒跺墠鍙版樉绀虹殑鏃跺�欐病鏈夊暐姣涚梾锛屽姞涓�涓猘lert浣犲氨鐭ラ亾浜� document.removeEventListener("click", this.rmListener); }, - - - - //杞瓟鏌辩姸鍥� - async histogram () { - this.menuVisible = false - var layer = this.currentData.enName.replaceAll("_", ""); - this.$store.state.mapSpaceQueryLayer = layer; - this.$store.state.mapPopBoxFlag = "2"; - this.$store.state.showPopBoxFlag = true; + // 杩囨护鑺傜偣 + filterNode (value, data) { + if (!value) return true; + return data.cnName.indexOf(value) !== -1; }, // 榧犳爣鍙冲嚮浜嬩欢 - rightClick (event, object, Node, element) { - if (object.type == 1) { - return - } + rightClick (event, object, node, element) { + debugger + if (object.type == 1 || node.data.children != null) return; + + this.currentNode = node; this.currentData = object; - this.currentNode = Node; + this.$store.state.propertiesName = object; - this.$store.state.propertiesName = this.currentData; - if (this.currentData.serveType == "Tileset" || this.currentData.serveType == "3DML") { - this.showModelAttach = true; - } else { - this.showModelAttach = false; - } - if (this.currentData.enName == "s_explorationpoint") { - this.shwoHistogram = true; - } else { - this.shwoHistogram = false; - } - - if (Node.data.children == null) { - this.firstLevel = false; - } else { - this.firstLevel = true; - } - if (Node.data.children == null && Node.data.serveType == "Tileset" || Node.data.serveType == "3DML") { - this.showlocal = true; - } else if (Node.data.children == null && Node.data.serveType != "Tileset" || Node.data.serveType == "3DML") { - this.showlocal = false; - } - this.menuVisible = true; + this.showProp = object.serveType == "WMS"; // 灞炴�� + this.shwoHistogram = this.showProp && object.enName == "s_explorationpoint"; // 閽诲瓟鏌辩姸鍥� + this.showLocal = ["Tileset", "3DML", "Mpt", "TMS", "DOM", "DEM"].indexOf(object.serveType) > -1; // 瀹氫綅 + this.showOpacity = ["Tileset", "3DML"].indexOf(object.serveType) > -1; // 涓嶉�忔槑搴� + this.menuVisible = this.showProp || this.shwoHistogram || this.showLocal || this.showOpacity; // 鑿滃崟 this.$refs.card.$el.style.left = event.pageX + 20 + "px"; this.$refs.card.$el.style.top = event.pageY + "px"; @@ -264,14 +246,50 @@ // 灞炴�ф樉绀� showLayerAttribute (data) { this.rmListener(); - this.menuVisible = false this.currentData = data ? data : this.currentData; var layer = this.currentData.enName.replaceAll("_", ""); this.$store.state.mapSpaceQueryLayer = layer; this.$store.state.showPopBoxFlag = true; this.$store.state.mapPopBoxFlag = "2"; }, - // 妯″瀷璁剧疆閫忔槑搴� + // 瀹氫綅 + async positioning () { + this.menuVisible = false; + if (["Tileset", "3DML"].indexOf(this.currentData.serveType) > -1) { + for (var i in Viewer.scene.primitives._primitives) { + if (Viewer.scene.primitives._primitives[i].id == this.currentData.cnName) { + Viewer.flyTo(Viewer.scene.primitives._primitives[i]); + break; + } + } + return; + } + + if (["TMS", "DOM", "DEM"].indexOf(this.currentData.serveType) > -1 && this.currentData.pubid) { + var data = await comprehensive_selectPubById({ id: this.currentData.pubid }); + if (data.result && data.result.geom) { + var wkt = this.$wkt.parse(data.result.geom); + var height = this.getHeight(wkt.coordinates[2]); + Viewer.camera.flyTo({ + destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], height), // 2000 + }); + } + return; + } + + if ("Mpt" == this.currentData.serveType) { + viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(101.8, 37.9, 10000000.0) }); // 涓浗 + } + }, + // 閽诲瓟鏌辩姸鍥� + async histogram () { + this.menuVisible = false + var layer = this.currentData.enName.replaceAll("_", ""); + this.$store.state.mapSpaceQueryLayer = layer; + this.$store.state.mapPopBoxFlag = "2"; + this.$store.state.showPopBoxFlag = true; + }, + // 閫忔槑搴� pellucidity () { this.rmListener(); this.menuVisible = false @@ -284,82 +302,11 @@ } } }, - // 妯″瀷瀹氫綅 - positioning () { - this.menuVisible = false - for (var i in Viewer.scene.primitives._primitives) { - if ( - Viewer.scene.primitives._primitives[i].id == this.currentData.cnName - ) { - Viewer.flyTo(Viewer.scene.primitives._primitives[i]); - } - } - }, - // 缂栬緫鑺傜偣 - editNode (data) { - this.rmListener(); - this.menuVisible = false - this.currentData = data ? data : this.currentData; - if (!this.currentData.isEdit) { - this.$set(this.currentData, "isEdit", true); - } - // 鑾峰彇鐒︾偣 - this.$nextTick(() => { - this.$refs["slotTreeInput" + this.currentData.id].focus(); - }); - }, - menuMoveF (type) { - // 灏嗗彉鍔ㄤ箣鍓嶇殑node澶囦唤 - var node = this.currentNode; - var data = this.currentData; - let copyNode = this.currentNode; + // 鑾峰彇楂樺害 + getHeight (level) { + if (level > -1 && level < 23) return this.levelArray[level]; - let nodeData = {}; - if (type === "up") { - // 涓婄Щ - if (node.previousSibling) { - // 鍒犻櫎鍘熷厛鐨刵ode - this.$refs.tree.remove(node.data); - // 鎷垮埌copy鐨刵ode - // nodeData = CircularJSON.parse(window.sessionStorage.getItem('menuNode')) - // // 澶嶅埗璇ode鍒版寚瀹氫綅缃�(鍙傛暟锛�1. 瑕佸鍔犵殑鑺傜偣鐨� data 2. 瑕佸鍔犵殑鑺傜偣鐨勫悗涓�涓妭鐐圭殑 data銆乲ey 鎴栬�� node) - // this.$refs.tree.insertBefore(nodeData.data,nodeData.previousSibling.data) - window.sessionStorage.removeItem("menuNode"); - } else { - this.$message.warning("璇ヨ彍鍗曞凡缁忔槸褰撳墠灞傛渶涓婄骇"); - } - } else { - // 涓嬬Щ - if (node.nextSibling) { - this.$refs.tree.remove(node.data); - nodeData = CircularJSON.parse( - window.sessionStorage.getItem("menuNode") - ); - // 鍙傛暟锛�1. 瑕佸鍔犵殑鑺傜偣鐨� data 2. 瑕佸鍔犵殑鑺傜偣鐨勫墠涓�涓妭鐐圭殑 data銆乲ey 鎴栬�� node - this.$refs.tree.insertAfter(nodeData.data, nodeData.nextSibling.data); - window.sessionStorage.removeItem("menuNode"); - } else { - this.$message.warning("璇ヨ彍鍗曞凡缁忔槸褰撳墠灞傛渶涓嬬骇"); - } - } - }, - handleDragStart (node, ev) { - console.log("drag start", node); - }, - handleDragEnter (draggingNode, dropNode, ev) { - console.log("tree drag enter: ", dropNode.label); - }, - handleDragLeave (draggingNode, dropNode, ev) { - console.log("tree drag leave: ", dropNode.label); - }, - handleDragOver (draggingNode, dropNode, ev) { - console.log("tree drag over: ", dropNode.label); - }, - handleDragEnd (draggingNode, dropNode, dropType, ev) { - console.log("tree drag end: ", dropNode && dropNode.label, dropType); - }, - handleDrop (draggingNode, dropNode, dropType, ev) { - console.log("tree drop: ", dropNode.label, dropType); + return this.levelArray[this.levelArray.length - 1]; }, handleCheckChange (data, checked, indeterminate) { if (data.type == 1) { @@ -737,10 +684,10 @@ layer.name = res.cnName; if (data.result.geom) { - var wkt = this.$wkt.parse(data.result.geom); - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], 2000), - }); + // var wkt = this.$wkt.parse(data.result.geom); + // Viewer.camera.flyTo({ + // destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], 2000), + // }); } this.setChangeWMS(); } @@ -767,12 +714,6 @@ //淇敼妯″瀷鐭╅樀 tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); // Viewer.flyTo(tileset); - }, - // 鏌ヨ - filterNode (value, data) { - - if (!value) return true; - return data.cnName.indexOf(value) !== -1; }, async setproChange (res) { if (res) { -- Gitblit v1.9.3