一张图图层控制修改,发布管理添加表格双击复制功能,发布管理页面模型附件管理页面修改,在线制图修改
| | |
| | | var Detect = { |
| | | ieVer: 9.0, |
| | | |
| | | teVer: 7.4, |
| | | teVer: 7.0, |
| | | |
| | | sgVer: "66", |
| | | |
| | |
| | | :props="defaultProps" |
| | | ref="tree" |
| | | class="el-tree" |
| | | @check-change="handleCheckChange" |
| | | @check="handleCheckChange" |
| | | :filter-node-method="filterNode" |
| | | > |
| | | <div |
| | |
| | | var std = [] |
| | | var layer_list = [] |
| | | var layer_groups = [] |
| | | var layerData = []; |
| | | for (var i in data.result) { |
| | | if (data.result[i].type == 1) { |
| | | layer_groups.push({ |
| | |
| | | layer_list.push(layer_entity) |
| | | if (data.result[i].isShow == 1) { |
| | | std.push(data.result[i].id) |
| | | this.setAddImageLayer(layer_entity) |
| | | layerData.push(data.result[i]) |
| | | // this.setAddImageLayer(layer_entity) |
| | | } |
| | | } |
| | | } |
| | |
| | | this.treeData = layer_groups |
| | | |
| | | this.$refs.tree.setCheckedKeys(std) |
| | | this.setShowImageLayer(layerData) |
| | | }, |
| | | handleCheckChange(data, checked, indeterminate) { |
| | | if (data.children != null) return |
| | | var std = [] |
| | | for (var i = 0; i < Viewer.imageryLayers._layers.length; i++) { |
| | | var val_id = Viewer.imageryLayers._layers[i].imageryProvider.name |
| | | if (val_id == data.label) { |
| | | std.push(data.label) |
| | | const img_layer = Viewer.imageryLayers._layers[i] |
| | | img_layer.show = checked |
| | | // if (data.children != null) return |
| | | // var std = [] |
| | | // for (var i = 0; i < Viewer.imageryLayers._layers.length; i++) { |
| | | // var val_id = Viewer.imageryLayers._layers[i].imageryProvider.name |
| | | // if (val_id == data.label) { |
| | | // std.push(data.label) |
| | | // const img_layer = Viewer.imageryLayers._layers[i] |
| | | // img_layer.show = checked |
| | | // } |
| | | // } |
| | | // if (std.length == 0 && checked == true) { |
| | | // this.setAddImageLayer(data) |
| | | // } |
| | | this.setClearWmsLayer() |
| | | var value = this.$refs.tree.getCheckedNodes(); |
| | | var url = []; |
| | | for (var i in value) { |
| | | if (value[i].resource && value[i].type == 2) { |
| | | |
| | | url.push(value[i].resource) |
| | | } |
| | | } |
| | | if (std.length == 0 && checked == true) { |
| | | this.setAddImageLayer(data) |
| | | url = url.reverse(); |
| | | this.setAddImageLayer(url) |
| | | }, |
| | | |
| | | setShowImageLayer(res) { |
| | | this.setClearWmsLayer() |
| | | var url = []; |
| | | for (var i in res) { |
| | | url.push(res[i].enName) |
| | | } |
| | | url = url.reverse(); |
| | | this.setAddImageLayer(url) |
| | | }, |
| | | setClearWmsLayer() { |
| | | for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) { |
| | | var val_id = window.Viewer.imageryLayers._layers[i].imageryProvider.name; |
| | | if (val_id == "Wms_Layer") { |
| | | window.Viewer.imageryLayers.remove( |
| | | window.Viewer.imageryLayers._layers[i] |
| | | ); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | |
| | | setAddImageLayer(res) { |
| | | let layerWMS = new Cesium.WebMapServiceImageryProvider({ |
| | | var layerWMS = new Cesium.WebMapServiceImageryProvider({ |
| | | url: geoServerURl, |
| | | layers: res.resource, |
| | | layers: res.toString(), |
| | | parameters: { |
| | | transparent: true, |
| | | format: "image/png", |
| | | srs: "EPSG:4490", |
| | | styles: "", |
| | | }, |
| | | }) |
| | | layerWMS.name = res.label |
| | | Viewer.imageryLayers.addImageryProvider(layerWMS) |
| | | tileWidth: 512, |
| | | tileHeight: 512, |
| | | }); |
| | | layerWMS.name = "Wms_Layer"; |
| | | window.Viewer.scene.imageryLayers.addImageryProvider(layerWMS); |
| | | }, |
| | | changeMenulayer() { |
| | | this.isActive = !this.isActive |
| | |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <!-- <div style="display: flex;">--> |
| | | <!-- <div style="display: flex;">--> |
| | | <div |
| | | class="changeTerrain" |
| | | @click="changeTerrainLayer" |
| | | > |
| | | <div |
| | | class="changeTerrain" |
| | | @click="changeTerrainLayer" |
| | | > |
| | | <div |
| | | title="å°å½¢åæ¢" |
| | | id="cenBg" |
| | | class="mapTerrain" |
| | | ></div> |
| | | </div> |
| | | <!-- class="center CenDiv"--> |
| | | title="å°å½¢åæ¢" |
| | | id="cenBg" |
| | | class="mapTerrain" |
| | | ></div> |
| | | </div> |
| | | <!-- class="center CenDiv"--> |
| | | <div |
| | | @click="changeMenulayer" |
| | | class="changeLayer" |
| | | > |
| | | <div |
| | | @click="changeMenulayer" |
| | | class="changeLayer" |
| | | > |
| | | <div |
| | | title="åºå¾åæ¢" |
| | | id="cenBg" |
| | | class="mapBaseMap" |
| | | ></div> |
| | | </div> |
| | | title="åºå¾åæ¢" |
| | | id="cenBg" |
| | | class="mapBaseMap" |
| | | ></div> |
| | | </div> |
| | | |
| | | <div |
| | | @click="changeMapType" |
| | | class="changeMapType" |
| | | > |
| | | <div |
| | | @click="changeMapType" |
| | | class="changeMapType" |
| | | > |
| | | <div |
| | | title="2/3ç»´åæ¢" |
| | | id="cenBg" |
| | | :class="show2DMap ? 'mapTypeTwo' : 'mapTypeThree'" |
| | | ></div> |
| | | </div> |
| | | <!-- </div>--> |
| | | title="2/3ç»´åæ¢" |
| | | id="cenBg" |
| | | :class="show2DMap ? 'mapTypeTwo' : 'mapTypeThree'" |
| | | ></div> |
| | | </div> |
| | | <!-- </div>--> |
| | | <!-- å¡åº¦åæå¼¹çª--> |
| | | <div |
| | | class="lengend" |
| | |
| | | v-if="dialog.isJpg" |
| | | class="pdfClass" |
| | | > |
| | | <img |
| | | style="width:100%; height:100%;" |
| | | <el-image |
| | | style="width:100%; height:100%" |
| | | :src="dialog.src" |
| | | alt="" |
| | | /> |
| | | :preview-src-list="[dialog.src]" |
| | | > |
| | | </el-image> |
| | | |
| | | </div> |
| | | </el-dialog> |
| | | <!-- <div--> |
| | |
| | | <!-- </div>--> |
| | | |
| | | </div> |
| | | <model-property ref='modelProperty'></model-property> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import $ from "jquery"; |
| | | import mapMenuTop from "./MapView/mapMenuTop.vue"; |
| | | import mapSpaceTop from "./MapView/mapSpaceTop.vue"; |
| | | |
| | | import ModelProperty from '../views/Tools/ModelProperty.vue' |
| | | import { |
| | | select_Comprehensive_ByPageAndCount, |
| | | select_Comprehensive_SelectWktById, |
| | |
| | | components: { |
| | | mapMenuTop, |
| | | mapSpaceTop, |
| | | ModelProperty |
| | | |
| | | }, |
| | | data() { |
| | |
| | | window.pickedColor = window.pickedFeature.color |
| | | window.pickedFeature.color = Cesium.Color.RED.withAlpha(0.3); |
| | | |
| | | this.$store.state.catModel = true; |
| | | this.$store.state.catModelInfo = { |
| | | // this.$store.state.catModel = true; |
| | | that.$store.state.catModelInfo = { |
| | | id: pickedFeature.getProperty("id"), |
| | | name: pickedFeature.getProperty("name"), |
| | | layerId: pickedFeature.primitive.layerId, |
| | | layerName: pickedFeature.primitive.id |
| | | }; |
| | | that.$refs && that.$refs.modelProperty && that.$refs.modelProperty.open(); |
| | | } |
| | | } |
| | | } |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | cursor: pointer; |
| | | border: 1px solid rgba(255,255,255,.5); |
| | | border: 1px solid rgba(255, 255, 255, 0.5); |
| | | } |
| | | .changeLayer{ |
| | | .changeLayer { |
| | | position: absolute; |
| | | bottom: 116px; |
| | | right: 46px; |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | cursor: pointer; |
| | | border: 1px solid rgba(255,255,255,.5); |
| | | border: 1px solid rgba(255, 255, 255, 0.5); |
| | | } |
| | | .changeMapType { |
| | | position: absolute; |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | cursor: pointer; |
| | | border: 1px solid rgba(255,255,255,.5); |
| | | border: 1px solid rgba(255, 255, 255, 0.5); |
| | | } |
| | | //.changeTerrain { |
| | | // position: absolute; |
| | |
| | | > |
| | | </el-tree> |
| | | </div> |
| | | <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 |
| | | size="small" |
| | | @click="pickupCoords" |
| | | >æ¾å</el-button> |
| | | <el-button |
| | | size="small" |
| | | @click="reload" |
| | | > |
| | | éè½½ |
| | | </el-button> |
| | | <el-button |
| | | size="small" |
| | | @click="resave" |
| | | >ä¿å</el-button> |
| | | </el-form-item> |
| | | <el-form-item label="ç»åº¦:"> |
| | | <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="纬度:"> |
| | | <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="é«åº¦:"> |
| | | <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="è§åº¦:"> |
| | | <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-form-item> |
| | | </el-form> |
| | | </div> |
| | | |
| | | <el-dialog |
| | | :title="formInline.title" |
| | |
| | | v-if="dialog.isJpg" |
| | | class="pdfClass" |
| | | > |
| | | <img |
| | | |
| | | <el-image |
| | | style="width:100%; height:100%" |
| | | :src="dialog.src" |
| | | alt="" |
| | | /> |
| | | :preview-src-list="[dialog.src]" |
| | | > |
| | | </el-image> |
| | | |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | comprehensive_insertModel, |
| | | comprehensive_updateModel, |
| | | comprehensive_selectFiles, |
| | | dataQuery_deletes |
| | | dataQuery_deletes, |
| | | publish_update, |
| | | comprehensive_selectPubById |
| | | } from '../api/api.js'; |
| | | import { getToken } from '@/utils/auth'; |
| | | export default { |
| | |
| | | isJpg: false, |
| | | src: '' |
| | | }, |
| | | modelType: ['ifc', 'fbx', 'rvt', '3dml'], |
| | | editModelFlag: false, |
| | | modelForm: { |
| | | lon: 119, |
| | | lat: 39, |
| | | height: 0, |
| | | yaw: 0, |
| | | alpha: 1 |
| | | }, |
| | | app: { |
| | | tileset: null, |
| | | isBusy: false, |
| | | under: false, |
| | | handler: null |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | }, |
| | | async EditData() { |
| | | const data = await comprehensive_updateModel(this.formInline) |
| | | |
| | | |
| | | if (data.code != 200) { |
| | | this.$message.error('ä¿®æ¹å¤±è´¥'); |
| | | } else { |
| | | this.$message({ |
| | | message: 'ä¿®æ¹æå', |
| | | type: 'success' |
| | | }); |
| | | return |
| | | } |
| | | this.startModelData(); |
| | | |
| | | |
| | | this.$message({ |
| | | message: 'ä¿®æ¹æå', |
| | | type: 'success' |
| | | }); |
| | | |
| | | var that = this; |
| | | that.dialogVisible = false; |
| | | this.formInline.title = this.formInline.name |
| | | that.dialogVisible = true; |
| | | |
| | | |
| | | }, |
| | | async InsertData() { |
| | | var std = { |
| | |
| | | const data = await comprehensive_insertModel(std) |
| | | if (data.code != 200) { |
| | | this.$message.error('æ·»å 失败'); |
| | | } else { |
| | | this.$message({ |
| | | message: 'æ·»å æå', |
| | | type: 'success' |
| | | }); |
| | | } |
| | | this.startModelData(); |
| | | this.$message({ |
| | | message: 'æ·»å æå', |
| | | type: 'success' |
| | | }); |
| | | |
| | | var that = this; |
| | | that.dialogVisible = false; |
| | | this.formInline.title = this.formInline.name |
| | | that.dialogVisible = true; |
| | | |
| | | |
| | | |
| | | |
| | | }, |
| | | handleClose() { |
| | |
| | | skipLevelOfDetail: true, // å¨éåæ¶åè·³è¿è¯¦æ
ï¼false |
| | | }) |
| | | ); |
| | | var that = this; |
| | | tileset.readyPromise.then((tileset) => { |
| | | tileset.id = res.cnName; |
| | | tileset.layerId = res.id; |
| | | this.tileSet(tileset, parseFloat(res.elev)) |
| | | Viewer.flyTo(tileset); |
| | | that.getArgsTileset(tileset, res); |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | async getArgsTileset(tileset, res) { |
| | | |
| | | if (res.pubid > 0) { |
| | | const data = await comprehensive_selectPubById({ id: res.pubid }) |
| | | |
| | | if (data.code != 200) { |
| | | |
| | | } else { |
| | | this.reloadTile(tileset, data.result.json) |
| | | } |
| | | } else { |
| | | this.tileSet(tileset, parseFloat(res.elev)) |
| | | |
| | | } |
| | | }, |
| | | tileSet(tileset, height) { |
| | | //3dtile模åçè¾¹ççä½ |
| | | var boundingSphere = tileset.boundingSphere; |
| | | //迪å¡å°ç©ºé´ç´è§åæ =>å°çåæ ï¼å¼§åº¦å¶ï¼ |
| | | var cartographic_original = Cesium.Cartographic.fromCartesian(boundingSphere.center); |
| | | //å°çåæ ï¼å¼§åº¦å¶ï¼=>迪å¡å°ç©ºé´ç´è§åæ |
| | | var Cartesian3_original = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, cartographic_original.height); |
| | | var Cartesian3_offset = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, height); |
| | | //è·å¾å°é¢åoffsetçè½¬æ¢ |
| | | var translation = Cesium.Cartesian3.subtract(Cartesian3_offset, Cartesian3_original, new Cesium.Cartesian3()); |
| | | //ä¿®æ¹æ¨¡åç©éµ |
| | | tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); |
| | | Viewer.flyTo(tileset); |
| | | }, |
| | | reloadTile(tileset, res) { |
| | | var vm = JSON.parse(res) |
| | | var pos = Cesium.Cartesian3.fromDegrees(vm.lon, vm.lat, vm.height); |
| | | var converter = Cesium.Transforms.eastNorthUpToFixedFrame; |
| | | var hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(vm.yaw), 0, 0); |
| | | var matrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr, Cesium.Ellipsoid.WGS84, converter); |
| | | tileset._root.transform = matrix; |
| | | Viewer.flyTo(tileset); |
| | | }, |
| | | |
| | | |
| | | |
| | | handleCheckChange(data, checked, indeterminate) { |
| | | if (data.type == 1) { |
| | | this.getchilds(data); |
| | |
| | | init3DMap() { |
| | | //å°å¾åå§å |
| | | window.sgworld = new SmartEarth.SGWorld("mapdiv", { |
| | | |
| | | licenseServer: window.sceneConfig.licenseServer, |
| | | }); |
| | | |
| | | window.Viewer = window.sgworld._Viewer; |
| | | |
| | | // Viewer.camera.flyTo({ |
| | | // destination: Cesium.Cartesian3.fromDegrees(110, 33, 8000000), |
| | | // }); |
| | | |
| | | |
| | | Viewer._enableInfoOrSelection = false; |
| | | //æ¾ç¤ºfps |
| | | Viewer.scene.debugShowFramesPerSecond = false; |
| | |
| | | //å¼å¯æ·±åº¦æ£æµ |
| | | // sg.Analysis.depthTestAgainstTerrain(true) |
| | | Viewer.scene.globe.depthTestAgainstTerrain = true; |
| | | |
| | | |
| | | // window.elevationTool = new SmartEarth.ElevationTool(window.sg); |
| | | // elevationTool.setContourColor("#F1D487"); |
| | | var option = { |
| | | url: window.sceneConfig.SGUrl, |
| | | layerName: window.sceneConfig.mptName, |
| | | requestVertexNormals: true, |
| | | }; |
| | | window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, ""); |
| | | |
| | | |
| | | |
| | | if (this.$store.state.previewLayer) { |
| | | var res = this.$store.state.previewLayer; |
| | | |
| | | var type = res.type; |
| | | if (res.url.indexOf('.png') != -1) { |
| | | var wkt = this.$wkt.parse(res.geom); |
| | | var height = this.getHeight(wkt.coordinates[2]) |
| | |
| | | url: res.url, |
| | | maximumLevel: 18 |
| | | }) |
| | | |
| | | ); |
| | | Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], height), |
| | | }); |
| | | } else if (res.url.indexOf('.json') != -1) { |
| | | var tileset = Viewer.scene.primitives.add( |
| | | new Cesium.Cesium3DTileset({ |
| | | url: res.url, //192.168.20.106,to4 |
| | | maximumScreenSpaceError: 64, // æå¤§å±å¹ç©ºé´é误ï¼16 |
| | | maximumMemoryUsage: 768, // æå¤§å
åï¼512 |
| | | dynamicScreenSpaceError: true, // åå°ç¦»ç¸æºè¾è¿çå±å¹ç©ºé´é误ï¼false |
| | | skipLevelOfDetail: true, // å¨éåæ¶åè·³è¿è¯¦æ
ï¼false |
| | | }) |
| | | ); |
| | | tileset.readyPromise.then((tileset) => { |
| | | tileset.id = res.cnName; |
| | | tileset.layerId = res.id; |
| | | this.tileSet(tileset, 50) |
| | | Viewer.flyTo(tileset); |
| | | }); |
| | | } else if (res.url.indexOf('.mpt') != -1) { |
| | | if (this.app.tileset) viewer.scene.primitives.remove(this.app.tileset); |
| | | this.app.tileset = this.createTileset(res); |
| | | var that = this; |
| | | Viewer.scene.primitives.add(this.app.tileset).readyPromise.then(function (ts) { |
| | | |
| | | that.setModleLocatin() |
| | | Viewer.flyTo(ts); |
| | | }); |
| | | |
| | | } else if (res.url.indexOf('.mpt') != -1) { |
| | | Viewer.imageryLayers.removeAll(); |
| | | var url = res.url.split(';') |
| | | |
| | | |
| | | sgworld.Creator.createImageryProvider('mptå½±å', "wms", { |
| | | url: url[0], |
| | | layers: url[1] |
| | | }, "0", undefined, true, ""); |
| | | |
| | | } else if (res.url.indexOf('menuLayer') != -1) { |
| | | this.setShowModelLayer(); |
| | | } |
| | | } |
| | | }, |
| | | async resave() { |
| | | this.$store.state.previewLayer.json = JSON.stringify(this.modelForm); |
| | | |
| | | const data = await publish_update(this.$store.state.previewLayer); |
| | | if (data.code != 200) { |
| | | this.$message.error('æ°æ®ä¿å失败'); |
| | | } else { |
| | | this.$message({ |
| | | message: 'æ°æ®ä¿åæå', |
| | | type: 'success' |
| | | }); |
| | | } |
| | | this.reload(); |
| | | }, |
| | | reload() { |
| | | var json = JSON.stringify(this.modelForm); |
| | | var url = this.$store.state.previewLayer.url; |
| | | if (!url) return; |
| | | if (this.app.tileset) Viewer.scene.primitives.remove(this.app.tileset); |
| | | |
| | | this.app.isBusy = true; |
| | | this.app.tileset = this.createTileset(this.$store.state.previewLayer); |
| | | var that = this; |
| | | Viewer.scene.primitives.add(this.app.tileset).readyPromise.then(function (ts) { |
| | | that.modelForm = JSON.parse(json); |
| | | var pos = Cesium.Cartesian3.fromDegrees(parseFloat(that.modelForm.lon), parseFloat(that.modelForm.lat), parseFloat(that.modelForm.height)); |
| | | |
| | | |
| | | var converter = Cesium.Transforms.eastNorthUpToFixedFrame; |
| | | var hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(parseFloat(that.modelForm.yaw)), 0, 0); |
| | | var matrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr, Cesium.Ellipsoid.WGS84, converter); |
| | | that.app.tileset._root.transform = matrix; |
| | | Viewer.flyTo(ts); |
| | | that.app.isBusy = false; |
| | | }); |
| | | }, |
| | | |
| | | //æ¾å |
| | | pickupCoords() { |
| | | if (this.app.handler) { |
| | | this.app.handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | this.app.handler = undefined; |
| | | return; |
| | | } |
| | | var that = this; |
| | | this.app.handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | this.app.handler.setInputAction(function (event) { |
| | | |
| | | var ray = Viewer.camera.getPickRay(event.position); |
| | | var cartesian = Viewer.scene.globe.pick(ray, Viewer.scene); |
| | | var cartographic = Cesium.Cartographic.fromCartesian(cartesian); |
| | | var x = that.toFixed(Cesium.Math.toDegrees(cartographic.longitude), 7); |
| | | var y = that.toFixed(Cesium.Math.toDegrees(cartographic.latitude), 7); |
| | | var z = that.toFixed(cartographic.height, 3); |
| | | |
| | | that.modelForm.lon = x; |
| | | that.modelForm.lat = y; |
| | | that.modelForm.height = z; |
| | | that.pickupCoords(); |
| | | }, Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | // ä¿çå°æ°ä½ |
| | | toFixed(d, n) { |
| | | var p = Math.pow(10, n); |
| | | |
| | | return Math.round(d * p) / p; |
| | | }, |
| | | update() { |
| | | this.setTilesetArgs(this.modelForm); |
| | | sgworld.Analysis.UndergroundMode(this.app.under, this.modelForm.alpha) |
| | | }, |
| | | setTilesetArgs(f) { |
| | | |
| | | if (!this.app.tileset || this.app.isBusy) return; |
| | | |
| | | var pos = Cesium.Cartesian3.fromDegrees(parseFloat(f.lon), parseFloat(f.lat), parseFloat(f.height)); |
| | | |
| | | var converter = Cesium.Transforms.eastNorthUpToFixedFrame; |
| | | var hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(parseFloat(f.yaw)), 0, 0); |
| | | var matrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr, Cesium.Ellipsoid.WGS84, converter); |
| | | var model = this.app.tileset |
| | | model._root.transform = matrix; |
| | | }, |
| | | //å°ä¸ |
| | | underground() { |
| | | this.app.under = !this.app.under; |
| | | sgworld.Analysis.UndergroundMode(this.app.under, this.modelForm.alpha) |
| | | }, |
| | | //æ¾é |
| | | showTileset() { |
| | | if (!this.app.tileset) return; |
| | | this.app.tileset.show = !this.app.tileset.show; |
| | | }, |
| | | //å®ä½ |
| | | locateTo() { |
| | | if (!this.app.tileset) return; |
| | | Viewer.flyTo(this.app.tileset); |
| | | }, |
| | | createTileset(res) { |
| | | return new Cesium.Cesium3DTileset({ |
| | | url: res.url, |
| | | name: 'tsTest', |
| | | skipLevelOfDetail: true, // å¨éåæ¶åè·³è¿è¯¦æ
ï¼false |
| | | baseScreenSpaceError: 1024, |
| | | maximumScreenSpaceError: 64, // æå¤§å±å¹ç©ºé´é误ï¼16ï¼æ°å¼å 大è½è®©æç»æå忍¡ç³ |
| | | skipScreenSpaceErrorFactor: 16, |
| | | skipLevels: 1, |
| | | immediatelyLoadDesiredLevelOfDetail: false, |
| | | loadSiblings: true, // èªå¨ä»ä¸å¿å¼å§è¶
æ¸
忍¡åï¼false |
| | | cullWithChildrenBounds: true, // 使ç¨å项边çä½ç§¯ç并鿥åé¤å¾åï¼true |
| | | cullRequestsWhileMoving: true, |
| | | cullRequestsWhileMovingMultiplier: 10, // å¼è¶å°è½å¤æ´å¿«çåé¤ï¼60 |
| | | preloadWhenHidden: true, |
| | | preferLeaves: true, // é¢è£
åèç¹ï¼false |
| | | maximumMemoryUsage: 256, // å
ååé
åå°æå©äºå
ååæ¶ï¼æåæ§è½ä½éª |
| | | progressiveResolutionHeightFraction: 0.5, // æ°å¼åäº0è½å¤è®©åå§å è½½å徿¨¡ç³ |
| | | dynamicScreenSpaceErrorDensity: 0.5, // æ°å¼å 大ï¼è½è®©å¨è¾¹å è½½åå¿« |
| | | dynamicScreenSpaceErrorFactor: 2, // 卿å±å¹ç©ºé´è¯¯å·®çç³»æ° |
| | | dynamicScreenSpaceError: true // åå°ç¦»ç¸æºè¾è¿çå±å¹ç©ºé´é误ï¼falseï¼å
¨å±å è½½å®ä¹åææ¸
æ°åæ¿å± |
| | | }); |
| | | }, |
| | | setEditModelLayer(res) { |
| | | this.editModelFlag = true; |
| | | if (res.json) { |
| | | var json = JSON.parse(res.json) |
| | | this.modelForm = json; |
| | | this.reload(); |
| | | } else { |
| | | this.getTilesetArgs(); |
| | | } |
| | | |
| | | }, |
| | | setModleLocatin() { |
| | | var res = this.$store.state.previewLayer; |
| | | var type = res.type; |
| | | if (this.modelType.indexOf(type) != -1) { |
| | | this.setEditModelLayer(res) |
| | | } |
| | | }, |
| | | getTilesetArgs() { |
| | | this.app.isBusy = true; |
| | | var cm = this.app.tileset._root.transform; |
| | | var cartesian = new Cesium.Cartesian3(cm[12], cm[13], cm[14]); |
| | | var carto = Cesium.Cartographic.fromCartesian(cartesian); |
| | | this.modelForm.lon = Cesium.Math.toDegrees(carto.longitude).toFixed(7); |
| | | this.modelForm.lat = Cesium.Math.toDegrees(carto.latitude).toFixed(7); |
| | | this.modelForm.height = carto.height.toFixed(3); |
| | | this.app.isBusy = false; |
| | | }, |
| | | |
| | | async setShowModelLayer() { |
| | | const data = await perms_selectLayers(); |
| | | if (data.code != 200) { |
| | |
| | | window.pickedColor = window.pickedFeature.color |
| | | window.pickedFeature.color = Cesium.Color.RED.withAlpha(0.3); |
| | | that.setShowModelInfo(pickedFeature); |
| | | // this.$store.state.catModel = true; |
| | | // this.$store.state.catModelInfo = { |
| | | // id: pickedFeature.getProperty("id"), |
| | | // name: pickedFeature.getProperty("name"), |
| | | // layerId: pickedFeature.primitive.layerId, |
| | | // layerName: pickedFeature.primitive.id |
| | | // }; |
| | | } |
| | | } |
| | | } |
| | | }, Cesium.ScreenSpaceEventType.LEFT_CLICK) |
| | | |
| | | |
| | | } |
| | | }, |
| | | setTreeData(source) { |
| | |
| | | return father.pid == 430; // è¿åä¸çº§èå |
| | | }); |
| | | }, |
| | | tileSet(tileset, height) { |
| | | //3dtile模åçè¾¹ççä½ |
| | | var boundingSphere = tileset.boundingSphere; |
| | | //迪å¡å°ç©ºé´ç´è§åæ =>å°çåæ ï¼å¼§åº¦å¶ï¼ |
| | | var cartographic_original = Cesium.Cartographic.fromCartesian(boundingSphere.center); |
| | | //å°çåæ ï¼å¼§åº¦å¶ï¼=>迪å¡å°ç©ºé´ç´è§åæ |
| | | var Cartesian3_original = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, cartographic_original.height); |
| | | var Cartesian3_offset = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, height); |
| | | //è·å¾å°é¢åoffsetçè½¬æ¢ |
| | | var translation = Cesium.Cartesian3.subtract(Cartesian3_offset, Cartesian3_original, new Cesium.Cartesian3()); |
| | | //ä¿®æ¹æ¨¡åç©éµ |
| | | tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); |
| | | }, |
| | | // tileSet(tileset, height) { |
| | | // //3dtile模åçè¾¹ççä½ |
| | | // var boundingSphere = tileset.boundingSphere; |
| | | // //迪å¡å°ç©ºé´ç´è§åæ =>å°çåæ ï¼å¼§åº¦å¶ï¼ |
| | | // var cartographic_original = Cesium.Cartographic.fromCartesian(boundingSphere.center); |
| | | // //å°çåæ ï¼å¼§åº¦å¶ï¼=>迪å¡å°ç©ºé´ç´è§åæ |
| | | // var Cartesian3_original = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, cartographic_original.height); |
| | | // var Cartesian3_offset = Cesium.Cartesian3.fromRadians(cartographic_original.longitude, cartographic_original.latitude, height); |
| | | // //è·å¾å°é¢åoffsetçè½¬æ¢ |
| | | // var translation = Cesium.Cartesian3.subtract(Cartesian3_offset, Cartesian3_original, new Cesium.Cartesian3()); |
| | | // //ä¿®æ¹æ¨¡åç©éµ |
| | | // tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); |
| | | // }, |
| | | getHeight(level) { |
| | | if (level > 0 && level < 23) { |
| | | return this.levelArray[level] |
| | |
| | | |
| | | border: 1px solid #409eff; |
| | | margin: 10px; |
| | | max-height: 300px; |
| | | max-height: 600px; |
| | | overflow: auto; |
| | | } |
| | | .pdfClass { |
| | |
| | | import '@/assets/css/content.css' |
| | | import '@/assets/css/configure.css' |
| | | import '@/assets/css/config.css' |
| | | import 'animate.css'; |
| | | // import 'animate.css'; |
| | | import VueParticles from 'vue-particles' |
| | | import dataV from '@jiaminghi/data-view' |
| | | import directive from '@/directive/index.js' // directive |
| | |
| | | import elDragDialog from './utils/diaLog.js' |
| | | Vue.directive('el-drag-dialog', elDragDialog); |
| | | ElementUI.Dialog.props.closeOnClickModal.default = false; |
| | | |
| | | |
| | | Vue.use(directive) |
| | | Vue.use(dataV) |
| | | Vue.use(VueParticles) |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table |
| | | @cell-dblclick="copyText" |
| | | :data="tableAttach" |
| | | ref="filterTable" |
| | | height="calc(100% - 130px)" |
| | |
| | | </el-form> |
| | | <el-divider /> |
| | | <el-table |
| | | @cell-dblclick="copyText" |
| | | ref="filterTable" |
| | | :data="tableData" |
| | | border |
| | |
| | | <div class="downloadBox"> |
| | | <div class="archdowntop"> |
| | | <el-table |
| | | @cell-dblclick="copyText" |
| | | :data="downloadTableData" |
| | | style="width: 100%" |
| | | height="calc(100% - 5px)" |
| | |
| | | <div style="height: 65vh; width: 100%"> |
| | | |
| | | <el-table |
| | | @cell-dblclick="copyText" |
| | | ref="filterTable" |
| | | :data="metaDataTable1" |
| | | style="width: 100%" |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table |
| | | @cell-dblclick="copyText" |
| | | ref="filterTable" |
| | | :data="metaDataTable" |
| | | style="width: 100%" |
| | |
| | | v-if="dialog.isJpg" |
| | | class="pdfClass" |
| | | > |
| | | <img |
| | | <el-image |
| | | style="width:100%; height:100%" |
| | | :src="dialog.src" |
| | | alt="" |
| | | /> |
| | | :preview-src-list="[dialog.src]" |
| | | > |
| | | </el-image> |
| | | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | |
| | | this.signGetPublicKey(); |
| | | }, |
| | | methods: { |
| | | copyText(row, column, cell, event) { |
| | | // åå»å¤å¶ |
| | | let save = function (e) { |
| | | e.clipboardData.setData('text/plain', event.target.innerText); |
| | | e.preventDefault(); //黿¢é»è®¤è¡ä¸º |
| | | } |
| | | document.addEventListener('copy', save);//æ·»å ä¸ä¸ªcopyäºä»¶ |
| | | document.execCommand("copy");//æ§è¡copyæ¹æ³ |
| | | this.$message({ message: 'å¤å¶æå', type: 'success' })//æç¤º |
| | | }, |
| | | //æ¹éä¸è½½å¤éæ¡chagne |
| | | handleCheckedDataTypeChange(res) { |
| | | var std = 0; |
| | |
| | | v-if="dialog.isJpg" |
| | | class="pdfClass" |
| | | > |
| | | <img |
| | | |
| | | <el-image |
| | | style="width:100%; height:100%" |
| | | :src="dialog.src" |
| | | alt="" |
| | | /> |
| | | :preview-src-list="[dialog.src]" |
| | | > |
| | | </el-image> |
| | | |
| | | </div> |
| | | </el-dialog> |
| | | <div style="height:63vh"> |
| | |
| | | } else { |
| | | url = modelUrl + "/" + res.url |
| | | } |
| | | |
| | | var tileset = Viewer.scene.primitives.add( |
| | | new Cesium.Cesium3DTileset({ |
| | | name: res.cnName, |
| | |
| | | skipLevelOfDetail: true, // å¨éåæ¶åè·³è¿è¯¦æ
ï¼false |
| | | }) |
| | | ); |
| | | |
| | | tileset.readyPromise.then((tileset) => { |
| | | tileset.id = res.cnName; |
| | | tileset.layerId = res.id; |
| | | this.tileSet(tileset, parseFloat(res.elev)) |
| | | Viewer.flyTo(tileset); |
| | | this.getTilesetArgs(tileset, res); |
| | | // |
| | | |
| | | }); |
| | | window.model = tileset |
| | | } else if (res.serveType == "TMS") { |
| | |
| | | } |
| | | |
| | | }, |
| | | async getTilesetArgs(tileset, res) { |
| | | if (res.pubid > 0) { |
| | | const data = await comprehensive_selectPubById({ id: res.pubid }) |
| | | if (data.code != 200) { |
| | | |
| | | } else { |
| | | this.reload(tileset, data.result.json) |
| | | } |
| | | } else { |
| | | this.tileSet(tileset, parseFloat(res.elev)) |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | }, |
| | | async setQueryPubid(res) { |
| | | const data = await comprehensive_selectPubById({ id: res.pubid }) |
| | | if (data.code != 200) { |
| | |
| | | this.setChangeWMS(); |
| | | } |
| | | }, |
| | | |
| | | reload(tileset, res) { |
| | | var vm = JSON.parse(res) |
| | | var pos = Cesium.Cartesian3.fromDegrees(vm.lon, vm.lat, vm.height); |
| | | var converter = Cesium.Transforms.eastNorthUpToFixedFrame; |
| | | var hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(vm.yaw), 0, 0); |
| | | var matrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr, Cesium.Ellipsoid.WGS84, converter); |
| | | tileset._root.transform = matrix; |
| | | Viewer.flyTo(tileset); |
| | | }, |
| | | tileSet(tileset, height) { |
| | | //3dtile模åçè¾¹ççä½ |
| | | var boundingSphere = tileset.boundingSphere; |
| | |
| | | var translation = Cesium.Cartesian3.subtract(Cartesian3_offset, Cartesian3_original, new Cesium.Cartesian3()); |
| | | //ä¿®æ¹æ¨¡åç©éµ |
| | | tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); |
| | | Viewer.flyTo(tileset); |
| | | }, |
| | | setTreeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ°æ®æ·±åº¦å
é |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <Popup |
| | | ref="pop" |
| | | :title="title" |
| | | @close="close(true)" |
| | | width="400px" |
| | | @cancel="close(false)" |
| | | top="0vh" |
| | | left="30vh" |
| | | > |
| | | <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')"> |
| | | |
| | | {{formInline.name}} |
| | | </el-form-item> |
| | | <el-form-item :label="$t('common.type')"> |
| | | |
| | | {{formInline.type}} |
| | | </el-form-item> |
| | | |
| | | <el-form-item :label="$t('common.bak')"> |
| | | |
| | | {{formInline.bak}} |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | |
| | | </el-tab-pane> |
| | | <el-tab-pane |
| | | label="éä»¶" |
| | | name="second" |
| | | > |
| | | |
| | | <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" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-link |
| | | v-if="matchState(scope, /[]/)" |
| | | @click="setAttatchDetail(scope.$index, scope.row)" |
| | | class="elLink" |
| | | >{{ $t('common.see') }}</el-link> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </el-tab-pane> |
| | | |
| | | </el-tabs> |
| | | <el-dialog |
| | | title="é¢è§" |
| | | :append-to-body="false" |
| | | :visible.sync="dialog.dialogVisible" |
| | | width="70%" |
| | | :modal="false" |
| | | :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" |
| | | > |
| | | |
| | | <el-image |
| | | style="width:100%; height:100%" |
| | | :src="dialog.src" |
| | | :preview-src-list="[dialog.src]" |
| | | > |
| | | </el-image> |
| | | |
| | | </div> |
| | | </el-dialog> |
| | | </Popup> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import Popup from "./Popup"; |
| | | import { comprehensive_selectFiles } from '../../api/api.js' |
| | | import { getToken } from "@/utils/auth"; |
| | | |
| | | export default { |
| | | name: "ModelProperty", |
| | | components: { |
| | | Popup, |
| | | }, |
| | | mixins: [], |
| | | data() { |
| | | return { |
| | | title: "å¨çº¿å°å¾", |
| | | left: undefined, |
| | | tokne: "", |
| | | data: { |
| | | |
| | | }, |
| | | mapCollection: undefined, |
| | | formInline: { |
| | | title: '', |
| | | file: '', |
| | | name: '', |
| | | type: '', |
| | | info: '', |
| | | icon: '', |
| | | bak: '' |
| | | }, |
| | | activeName: 'first', |
| | | tableData: [], |
| | | dialog: { |
| | | dialogVisible: false, |
| | | isPdf: false, |
| | | isJpg: false, |
| | | src: '' |
| | | }, |
| | | attacgSelection: [] |
| | | }; |
| | | }, |
| | | computed: { |
| | | |
| | | }, |
| | | methods: { |
| | | |
| | | // å
³éå¼¹çª |
| | | close(isCloseBtn, removeLayer = true) { |
| | | // removeLayer && this.removeImageLayer(); |
| | | |
| | | // éç½®dataå¼ |
| | | Object.assign(this.$data, this.$options.data()); |
| | | !isCloseBtn && this.$refs.pop.close(); |
| | | }, |
| | | // æå¼å¼¹çª |
| | | open() { |
| | | |
| | | this.close(true); |
| | | this.$refs.pop.open(); |
| | | this.title = this.$store.state.catModelInfo.name; |
| | | this.formInline = this.$store.state.catModelInfo; |
| | | }, |
| | | // changeToken(token) { |
| | | // this.mapCollection.tokne = token; |
| | | // }, |
| | | // éä»¶=>è¡¨æ ¼éæ© |
| | | handleAttatchChange(val) { |
| | | this.attacgSelection = val; |
| | | }, |
| | | statSizeChange(row, column) { |
| | | return this.stateFormatSizes(row.sizes) |
| | | }, |
| | | stateFormatSizes(res) { |
| | | if (res >= 1024) { |
| | | const val = parseFloat(res / 1024).toFixed(3); |
| | | return val + ' GB'; |
| | | } else { |
| | | return res + ' MB'; |
| | | } |
| | | }, |
| | | matchState(state = "", reg) { |
| | | var row = state.row; |
| | | var name = row.name; |
| | | if (name.indexOf('.pdf') != -1 || name.indexOf('.jpg') != -1 || name.indexOf('.gif') != -1 || name.indexOf('.png') != -1 || name.indexOf('.jpeg') != -1) { |
| | | return true; |
| | | } |
| | | return false; |
| | | }, |
| | | handleClick(tab, event) { |
| | | if (tab.name == "second") { |
| | | this.getAttacthFlieList(); |
| | | } |
| | | }, |
| | | |
| | | //éä»¶å表æ¥è¯¢ |
| | | async getAttacthFlieList() { |
| | | var obj = { |
| | | eventid: this.$store.state.catModelInfo.id, |
| | | tabName: "lf.sys_style" |
| | | }; |
| | | const res = await comprehensive_selectFiles(obj); |
| | | if (res.code != 200) { |
| | | this.$message.error('å表è°ç¨å¤±è´¥'); |
| | | return |
| | | } |
| | | this.tableData = res.result; |
| | | }, |
| | | |
| | | //éä»¶æ¥ç |
| | | setAttatchDetail(index, row) { |
| | | this.refreshAttatchDetail() |
| | | var name = row.name; |
| | | if (name.indexOf('.pdf') != -1) { |
| | | this.dialog.dialogVisible = true; |
| | | this.dialog.isPdf = true; |
| | | var url = BASE_URL + "/comprehensive/downloadForView?guid=" + row.guid + "&token=" + getToken(); |
| | | this.dialog.src = url |
| | | } else if (name.indexOf('.jpg') != -1 || name.indexOf('.gif') != -1 || name.indexOf('.png') != -1 || name.indexOf('.jpeg') != -1) { |
| | | this.dialog.dialogVisible = true; |
| | | this.dialog.isJpg = true; |
| | | var url = BASE_URL + "/comprehensive/downloadForView?guid=" + row.guid + "&token=" + getToken(); |
| | | this.dialog.src = url |
| | | } |
| | | }, |
| | | refreshAttatchDetail() { |
| | | this.dialog.src = ""; |
| | | this.dialog.dialogVisible = false; |
| | | this.dialog.isPdf = false; |
| | | this.dialog.isJpg = false; |
| | | }, |
| | | }, |
| | | mounted() { |
| | | |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .pdfClass { |
| | | height: 63vh; |
| | | width: 100%; |
| | | } |
| | | </style> |
| | |
| | | v-if="dialog.isJpg" |
| | | class="pdfClass" |
| | | > |
| | | <img |
| | | <el-image |
| | | style="width:100%; height:100%" |
| | | :src="dialog.src" |
| | | alt="" |
| | | /> |
| | | :preview-src-list="[dialog.src]" |
| | | > |
| | | </el-image> |
| | | |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | |
| | | v-if="dialog.isJpg" |
| | | class="pdfClass" |
| | | > |
| | | <img |
| | | style="width: 100%; height: 100%" |
| | | <el-image |
| | | style="width:100%; height:100%" |
| | | :src="dialog.src" |
| | | alt="" |
| | | /> |
| | | :preview-src-list="[dialog.src]" |
| | | > |
| | | </el-image> |
| | | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%" |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | @cell-dblclick="copyText" |
| | | height="calc(100% - 1px)" |
| | | > |
| | | <el-table-column |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | copyText(row, column, cell, event) { |
| | | // åå»å¤å¶ |
| | | let save = function (e) { |
| | | e.clipboardData.setData('text/plain', event.target.innerText); |
| | | e.preventDefault(); //黿¢é»è®¤è¡ä¸º |
| | | } |
| | | document.addEventListener('copy', save);//æ·»å ä¸ä¸ªcopyäºä»¶ |
| | | document.execCommand("copy");//æ§è¡copyæ¹æ³ |
| | | this.$message({ message: 'å¤å¶æå', type: 'success' })//æç¤º |
| | | }, |
| | | setOptions() { |
| | | var std = []; |
| | | for (var i = 0; i < 21; i++) { |
| | |
| | | }, |
| | | //é¢è§å¼¹çªå
³é |
| | | handleClose() { |
| | | this.getTableData(); |
| | | this.dialogVisible = false; |
| | | this.showMapView = false; |
| | | |
| | |
| | | node-key="id" |
| | | :props="defaultProps" |
| | | :default-expanded-keys="[1]" |
| | | @check-change="handleTreeNodeClick" |
| | | @check="handleTreeNodeClick" |
| | | ref="tree" |
| | | > |
| | | </el-tree> |
| | |
| | | mounted() { |
| | | this.LayerStart() |
| | | this.initMap() |
| | | this.showMapLayer() |
| | | |
| | | }, |
| | | methods: { |
| | | setTreeData(source) { |
| | |
| | | |
| | | var val = []; |
| | | var std = []; |
| | | var layerWMS = []; |
| | | for (var i in res) { |
| | | var str = res[i]; |
| | | |
| | |
| | | if (str.isShow == 1) { |
| | | |
| | | std.push(str.id) |
| | | this.showMapLayer(str) |
| | | layerWMS.push(str) |
| | | this.tableData.push({ |
| | | name: str.cnName, |
| | | ename: str.enName, |
| | |
| | | var res = this.setTreeData(val); |
| | | this.treeData = res; |
| | | this.$refs.tree.setCheckedKeys(std) |
| | | this.showMapLayer(layerWMS); |
| | | |
| | | }, |
| | | setClearMap() { |
| | | var layers_ol = mapView.getAllLayers(); |
| | | for (var i in layers_ol) { |
| | | var layerOl = layers_ol[i]; |
| | | if (layerOl.values_.name == "Wms_Layer") { |
| | | mapView.removeLayer(layers_ol[i]); //æ¾ç¤ºå¾å± |
| | | } |
| | | } |
| | | }, |
| | | showMapLayer(val) { |
| | | if (val == undefined) return; |
| | | if (val.serveType == "WMS") { |
| | | if (val) { |
| | | this.setClearMap(); |
| | | var url = []; |
| | | for (var i in val) { |
| | | if (val[i].url) { |
| | | url.push(val[i].url) |
| | | } |
| | | |
| | | } |
| | | url = url.reverse() |
| | | console.log(url) |
| | | var layer2 = new Image({ |
| | | name: val.cnName, |
| | | name: "Wms_Layer", |
| | | source: new ImageWMS({ |
| | | crossOrigin: "anonymous", |
| | | url: geoServerURl, |
| | | |
| | | params: { |
| | | FORMAT: "image/png", |
| | | VERSION: "1.1.1", |
| | | LAYERS: val.url, |
| | | LAYERS: url.toString(), |
| | | }, |
| | | }), |
| | | }) |
| | | }); |
| | | mapView.addLayer(layer2) |
| | | } |
| | | |
| | |
| | | }, |
| | | handleClose() { }, |
| | | handleTreeNodeClick(data, nodes) { |
| | | if (data.children != null) return |
| | | var value = this.$refs.tree.getCheckedNodes(); |
| | | |
| | | var layers = mapView.getAllLayers() |
| | | for (var i in layers) { |
| | | var layer = layers[i] |
| | | var str = 0 |
| | | if (layer.values_.name == data.cnName) { |
| | | layer.setVisible(nodes) //æ¾ç¤ºå¾å± |
| | | if (nodes == true) { |
| | | str++ |
| | | this.tableData.push({ |
| | | name: data.cnName, |
| | | ename: data.enName |
| | | }) |
| | | } else { |
| | | this.tableData.some((item, i) => { |
| | | if (item.name === data.cnName) { |
| | | this.tableData.splice(i, 1) |
| | | } |
| | | }) |
| | | } |
| | | this.showMapLayer(value) |
| | | |
| | | var std = []; |
| | | for (var i in value) { |
| | | if (value[i].type == 2) { |
| | | var str = value[i] |
| | | std.push({ |
| | | name: str.cnName, |
| | | ename: str.enName, |
| | | }) |
| | | } |
| | | } |
| | | |
| | | if (str == 0 && nodes == true) { |
| | | this.showMapLayer(data) |
| | | // this.tableData.push({ |
| | | // name: data.cnName, |
| | | // ename: data.enName, |
| | | // }) |
| | | } |
| | | this.tableData = std; |
| | | // if (data.children != null) return |
| | | |
| | | // this.tableData = this.arrList |
| | | // var layers = mapView.getAllLayers() |
| | | // for (var i in layers) { |
| | | // var layer = layers[i] |
| | | // var str = 0 |
| | | // if (layer.values_.name == data.cnName) { |
| | | // layer.setVisible(nodes) //æ¾ç¤ºå¾å± |
| | | // if (nodes == true) { |
| | | // str++ |
| | | // this.tableData.push({ |
| | | // name: data.cnName, |
| | | // ename: data.enName |
| | | // }) |
| | | // } else { |
| | | // this.tableData.some((item, i) => { |
| | | // if (item.name === data.cnName) { |
| | | // this.tableData.splice(i, 1) |
| | | // } |
| | | // }) |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | // if (str == 0 && nodes == true) { |
| | | // this.showMapLayer(data) |
| | | // // this.tableData.push({ |
| | | // // name: data.cnName, |
| | | // // ename: data.enName, |
| | | // // }) |
| | | // } |
| | | |
| | | // // this.tableData = this.arrList |
| | | }, |
| | | setAddMapLayer() { |
| | | this.dialogVisible = false |
| | |
| | | width: 100%; |
| | | height: 70px; |
| | | padding-left: 20px; |
| | | margin: 0; |
| | | } |
| | | .left_Menu { |
| | | z-index: 40; |
| | |
| | | <template> |
| | | <div class="userInfo_box"> |
| | | <My-bread |
| | | :list="[ |
| | | <My-bread :list="[ |
| | | `${$t('userManage.userManage')}`, |
| | | `${$t('userManage.userInfoManage')}`, |
| | | ]" |
| | | ></My-bread> |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="inquire"> |
| | | <el-form ref="queryForm" :model="queryForm" :inline="true"> |
| | | <el-form-item prop="uname" :label="$t('userManage.userInfoObj.uname')"> |
| | | <el-form |
| | | ref="queryForm" |
| | | :model="queryForm" |
| | | :inline="true" |
| | | > |
| | | <el-form-item |
| | | prop="uname" |
| | | :label="$t('userManage.userInfoObj.uname')" |
| | | > |
| | | <el-input v-model="queryForm.uname" /> |
| | | </el-form-item> |
| | | <el-form-item |
| | |
| | | type="primary" |
| | | @click="queryInfo()" |
| | | icon="el-icon-search" |
| | | >{{ $t("operatManage.ELM.search") }} |
| | | >{{ $t("operatManage.ELM.search") }} |
| | | </el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | |
| | | size="small" |
| | | @click="editPwd" |
| | | icon="el-icon-unlock" |
| | | >éç½®å¯ç |
| | | >éç½®å¯ç |
| | | </el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | height="99%" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55" /> |
| | | <el-table-column |
| | | type="selection" |
| | | width="55" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | type="index" |
| | |
| | | :label="$t('userManage.userInfoObj.status')" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tag v-if="scope.row.status == 0" type="success">æ£å¸¸</el-tag> |
| | | <el-tag v-if="scope.row.status == 1" type="info">ç¦ç¨</el-tag> |
| | | <el-tag v-if="scope.row.status == 2" type="warning">å é¤</el-tag> |
| | | <el-tag |
| | | v-if="scope.row.status == 0" |
| | | type="success" |
| | | >æ£å¸¸</el-tag> |
| | | <el-tag |
| | | v-if="scope.row.status == 1" |
| | | type="info" |
| | | >ç¦ç¨</el-tag> |
| | | <el-tag |
| | | v-if="scope.row.status == 2" |
| | | type="warning" |
| | | >å é¤</el-tag> |
| | | <el-tag v-if="scope.row.status == 3">ç³è¯·</el-tag> |
| | | <el-tag v-if="scope.row.status == 4" type="danger">ææ¹</el-tag> |
| | | <el-tag |
| | | v-if="scope.row.status == 4" |
| | | type="danger" |
| | | >ææ¹</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | type="warning" |
| | | @click="editInfo(scope.row)" |
| | | size="mini" |
| | | >{{ $t("common.edit") }}</el-button |
| | | > |
| | | >{{ $t("common.edit") }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div style="margin-top: 25px" class="pagination_box"> |
| | | <div |
| | | style="margin-top: 25px" |
| | | class="pagination_box" |
| | | > |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | |
| | | v-if="behavior == 'æ°å¢ç¨æ·'" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="editForm.uid" autocomplete="off"></el-input> |
| | | <div class="isNewUser" v-if="isNewUser"> |
| | | <el-input |
| | | v-model="editForm.uid" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | <div |
| | | class="isNewUser" |
| | | v-if="isNewUser" |
| | | > |
| | | <img src="../../assets/img/success.png" /> |
| | | è´¦å·å¯ç¨ |
| | | </div> |
| | |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="pwd" label="å¯ç " :label-width="formLabelWidth"> |
| | | <el-form-item |
| | | prop="pwd" |
| | | label="å¯ç " |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input |
| | | type="password" |
| | | v-model="editForm.pwd" |
| | |
| | | label="ç¨æ·åç§°" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="editForm.uname" autocomplete="off"></el-input> |
| | | <el-input |
| | | v-model="editForm.uname" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="sex" label="æ§å«" :label-width="formLabelWidth"> |
| | | <el-select v-model="editForm.sex" clearable placeholder="è¯·éæ©"> |
| | | <el-form-item |
| | | prop="sex" |
| | | label="æ§å«" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-select |
| | | v-model="editForm.sex" |
| | | clearable |
| | | placeholder="è¯·éæ©" |
| | | > |
| | | <el-option |
| | | v-for="item in sexOpt" |
| | | :key="item.value" |
| | |
| | | label="ç±è´¯" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="editForm.natives" autocomplete="off"></el-input> |
| | | <el-input |
| | | v-model="editForm.natives" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | prop="depid" |
| | |
| | | label="è¯ä»¶å·" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="editForm.idcard" autocomplete="off"></el-input> |
| | | <el-input |
| | | v-model="editForm.idcard" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="width: 45%"> |
| | | <el-form-item prop="job" label="å·¥ä½" :label-width="formLabelWidth"> |
| | | <el-input v-model="editForm.job" autocomplete="off"></el-input> |
| | | <el-form-item |
| | | prop="job" |
| | | label="å·¥ä½" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input |
| | | v-model="editForm.job" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="edu" label="æè²" :label-width="formLabelWidth"> |
| | | <el-input v-model="editForm.edu" autocomplete="off"></el-input> |
| | | <el-form-item |
| | | prop="edu" |
| | | label="æè²" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input |
| | | v-model="editForm.edu" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="addr" label="å°å" :label-width="formLabelWidth"> |
| | | <el-input v-model="editForm.addr" autocomplete="off"></el-input> |
| | | <el-form-item |
| | | prop="addr" |
| | | label="å°å" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input |
| | | v-model="editForm.addr" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | prop="email" |
| | | label="çµåé®ä»¶" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="editForm.email" autocomplete="off"></el-input> |
| | | <el-input |
| | | v-model="editForm.email" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | prop="contact" |
| | | label="èç³»æ¹å¼" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="editForm.contact" autocomplete="off"></el-input> |
| | | <el-input |
| | | v-model="editForm.contact" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | prop="status" |
| | | label="ç¶æ" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-select v-model="editForm.status" clearable placeholder="è¯·éæ©"> |
| | | <el-select |
| | | v-model="editForm.status" |
| | | clearable |
| | | placeholder="è¯·éæ©" |
| | | > |
| | | <el-option |
| | | v-for="item in statusOpt" |
| | | :key="item.value" |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item prop="bak" label="夿³¨" :label-width="formLabelWidth"> |
| | | <el-input v-model="editForm.bak" autocomplete="off"></el-input> |
| | | <el-form-item |
| | | prop="bak" |
| | | label="夿³¨" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input |
| | | v-model="editForm.bak" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | <div v-if="behavior == 'ä¿®æ¹ä¿¡æ¯'" slot="footer" class="dialog-footer"> |
| | | <el-button size="medium" @click="cancelEdit()">éç½®</el-button> |
| | | <div |
| | | v-if="behavior == 'ä¿®æ¹ä¿¡æ¯'" |
| | | slot="footer" |
| | | class="dialog-footer" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | @click="cancelEdit()" |
| | | >éç½®</el-button> |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="sendEdit('editForm')" |
| | | v-loading.fullscreen.lock="fullscreenLoading" |
| | | >æäº¤</el-button |
| | | > |
| | | >æäº¤</el-button> |
| | | </div> |
| | | <div v-else slot="footer" class="dialog-footer"> |
| | | <el-button size="medium" @click="cancelAdd('editForm')">éç½®</el-button> |
| | | <div |
| | | v-else |
| | | slot="footer" |
| | | class="dialog-footer" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | @click="cancelAdd('editForm')" |
| | | >éç½®</el-button> |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="sendAdd('editForm')" |
| | | v-loading.fullscreen.lock="fullscreenLoading" |
| | | >æäº¤</el-button |
| | | > |
| | | >æäº¤</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | |
| | | :visible.sync="resetPwd" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-form :model="pwdForm" ref="pwdForm" :rules="rules"> |
| | | <el-form-item prop="adminPwd" label="管çåå¯ç " label-width="140px"> |
| | | <el-form |
| | | :model="pwdForm" |
| | | ref="pwdForm" |
| | | :rules="rules" |
| | | > |
| | | <el-form-item |
| | | prop="adminPwd" |
| | | label="管çåå¯ç " |
| | | label-width="140px" |
| | | > |
| | | <el-input |
| | | type="password" |
| | | v-model="pwdForm.adminPwd" |
| | |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="newPwd" label="æ°å¯ç " label-width="140px"> |
| | | <el-form-item |
| | | prop="newPwd" |
| | | label="æ°å¯ç " |
| | | label-width="140px" |
| | | > |
| | | <el-input |
| | | type="password" |
| | | v-model="pwdForm.newPwd" |
| | |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="checkPwd" label="确认å¯ç " label-width="140px"> |
| | | <el-form-item |
| | | prop="checkPwd" |
| | | label="确认å¯ç " |
| | | label-width="140px" |
| | | > |
| | | <el-input |
| | | type="password" |
| | | v-model="pwdForm.checkPwd" |
| | |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button size="medium" @click="cancelReset - 'pwdForm'" |
| | | >éç½®</el-button |
| | | > |
| | | <div |
| | | slot="footer" |
| | | class="dialog-footer" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | @click="cancelReset - 'pwdForm'" |
| | | >éç½®</el-button> |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="sendReset('pwdForm')" |
| | | v-loading.fullscreen.lock="fullscreenLoading" |
| | | >æäº¤</el-button |
| | | > |
| | | >æäº¤</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | }); |
| | | } |
| | | }) |
| | | .catch((res) => {}); |
| | | .catch((res) => { }); |
| | | |
| | | queryPageUser({ |
| | | pageIndex: 1, |
| | |
| | | }); |
| | | } |
| | | }) |
| | | .catch((res) => {}); |
| | | .catch((res) => { }); |
| | | }, |
| | | treeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ°æ®æ·±åº¦å
é |
| | |
| | | |
| | | done(); |
| | | }) |
| | | .catch((_) => {}); |
| | | .catch((_) => { }); |
| | | }, |
| | | //æäº¤ç¼è¾ |
| | | sendEdit(formName) { |
| | |
| | | }; |
| | | </script> |
| | | <style> |
| | | /deep/ .el-table__fixed-right { |
| | | height: 100% !important; |
| | | } |
| | | </style> |
| | | <style lang="less" scoped> |
| | | //@import url(); å¼å
¥å
Œ
±cssç±» |