发布管理添加OSGB,LAS数据类型发布;综合展示页面属性查询,转空柱状图添加按项目分类查询
| | |
| | | labe11: 'Please enter the minimum level (0 to 22)', |
| | | labe12: 'Please enter the maximum level (0 to 22)', |
| | | labe13: 'Please enter a name', |
| | | labe14: 'Remove invalid values' |
| | | labe14: 'Remove invalid values', |
| | | heightOffset: 'Height offset', |
| | | coordinateSystemID: 'Coordinate System', |
| | | label1: 'Please enter the height offset (-10000~10000)', |
| | | label2: 'Please select a coordinate system' |
| | | }, |
| | | dictionaryManage: 'dictionaryManage', |
| | | dictionaryManageObj: { |
| | |
| | | labe11: '请输入最小级别(0 ~ 22)', |
| | | labe12: '请输入最大级别(0 ~ 22)', |
| | | labe13: '请输入名称', |
| | | labe14: '去除无效值' |
| | | labe14: '去除无效值', |
| | | heightOffset: '高度偏移量', |
| | | coordinateSystemID: '坐标系', |
| | | label1: '请输入高度偏移量(-10000 ~ 10000 )', |
| | | label2: '请选择坐标系' |
| | | }, |
| | | dictionaryManage: '字典管理', |
| | | dictionaryManageObj: { |
| | |
| | | this.formInline.region = this.options[0].value |
| | | }, |
| | | setListDataStart() { |
| | | this.listdata.pageSize = 10 |
| | | this.listdata.pageIndex = 1 |
| | | this.listdata = { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | name: null, |
| | | srid: 4326, |
| | | wkt: null, |
| | | filter: null, |
| | | } |
| | | this.tableData = [] |
| | | }, |
| | | //初始化查询条件 |
| | |
| | | } else { |
| | | this.listdata.filter = null; |
| | | } |
| | | if (this.$store.state.pigCode) { |
| | | this.listdata.dirs = this.$store.state.pigCode; |
| | | |
| | | } |
| | | |
| | | const data = await dataQuerySelectByPage(this.listdata) |
| | | if (data.code != 200) { |
| | |
| | | new Cesium.Cesium3DTileset({ |
| | | name: res.cnName, |
| | | url: url, //192.168.20.106,to4 |
| | | maximumScreenSpaceError: 64, // 最大屏幕空间错误:16 |
| | | maximumScreenSpaceError: url.indexOf("/pnts/") > -1 ? 16 : 64, // 最大屏幕空间错误:16 |
| | | maximumMemoryUsage: 768, // 最大内存:512 |
| | | dynamicScreenSpaceError: true, // 减少离相机较远的屏幕空间错误:false |
| | | skipLevelOfDetail: true, // 在遍历时候跳过详情:false |
| | |
| | | new Cesium.Cesium3DTileset({ |
| | | name: rs.cnName, |
| | | url: url, //192.168.20.106,to4 |
| | | maximumScreenSpaceError: 64, // 最大屏幕空间错误:16 |
| | | maximumScreenSpaceError: url.indexOf("/pnts/") > -1 ? 16 : 64, // 最大屏幕空间错误:16 |
| | | maximumMemoryUsage: 768, // 最大内存:512 |
| | | dynamicScreenSpaceError: true, // 减少离相机较远的屏幕空间错误:false |
| | | skipLevelOfDetail: true, // 在遍历时候跳过详情:false |
| | |
| | | var res = this.$store.state.previewLayer; |
| | | var type = res.type; |
| | | res.ulr = res.url.replace("{host}", iisHost); |
| | | |
| | | if (type == 'DEM') { |
| | | window.terrainLayer.deleteObject(); |
| | | // Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider(); |
| | |
| | | Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], height), |
| | | }); |
| | | } else if (type == '3dml' || type == 'fbx' || type == 'ifc' || type == 'rvt' || type == 'cpt') { |
| | | } else if (type == '3dml' || type == 'fbx' || type == 'ifc' || type == 'rvt' |
| | | || type == 'cpt' || type == 'osgb' || type == 'las' || type == 'laz') { |
| | | if (this.app.tileset) viewer.scene.primitives.remove(this.app.tileset); |
| | | |
| | | this.app.tileset = this.createTileset(res); |
| | | var that = this; |
| | | |
| | | this.editModelFlag = true; |
| | | Viewer.scene.primitives.add(this.app.tileset).readyPromise.then(function (ts) { |
| | | |
| | | that.setModleLocatin() |
| | |
| | | }, |
| | | //显隐 |
| | | showTileset() { |
| | | |
| | | if (!this.app.tileset) return; |
| | | this.app.tileset.show = !this.app.tileset.show; |
| | | }, |
| | |
| | | name: 'tsTest', |
| | | skipLevelOfDetail: true, // 在遍历时候跳过详情:false |
| | | baseScreenSpaceError: 1024, |
| | | maximumScreenSpaceError: 64, // 最大屏幕空间错误:16,数值加大能让最终成像变模糊 |
| | | maximumScreenSpaceError: res.url.indexOf("/pnts/") > -1 ? 16 : 64, // 最大屏幕空间错误:16,数值加大能让最终成像变模糊 |
| | | skipScreenSpaceErrorFactor: 16, |
| | | skipLevels: 1, |
| | | immediatelyLoadDesiredLevelOfDetail: false, |
| | |
| | | }); |
| | | }, |
| | | setEditModelLayer(res) { |
| | | this.editModelFlag = true; |
| | | |
| | | if (res.json) { |
| | | var json = JSON.parse(res.json) |
| | | this.modelForm = json; |
| | |
| | | new Cesium.Cesium3DTileset({ |
| | | name: res.cnName, |
| | | url: modelUrl + "/tileset/m/SN/tileset.json", |
| | | maximumScreenSpaceError: 64, // 最大屏幕空间错误:16 |
| | | maximumScreenSpaceError: modelUrl.indexOf("/pnts/") > -1 ? 16 : 64, // 最大屏幕空间错误:16 |
| | | maximumMemoryUsage: 768, // 最大内存:512 |
| | | dynamicScreenSpaceError: true, // 减少离相机较远的屏幕空间错误:false |
| | | skipLevelOfDetail: true, // 在遍历时候跳过详情:false |
| | |
| | | <div class="lalala tree-container"> |
| | | <el-form ref="form"> |
| | | <el-form-item> |
| | | <el-select v-model="$store.state.pigCode" clearable filterable style="width :100%" @change="prjChanged" |
| | | placeholder="请选择项目"> |
| | | <el-option v-for="item in menus" :key="item.code" :label="item.name" :value="item.code"> |
| | | <el-select |
| | | v-model="$store.state.pigCode" |
| | | clearable |
| | | filterable |
| | | style="width :100%" |
| | | @change="prjChanged" |
| | | placeholder="请选择项目" |
| | | > |
| | | <el-option |
| | | v-for="item in menus" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-input placeholder="输入关键字进行过滤" v-model="filterText" class="search"> |
| | | <el-input |
| | | placeholder="输入关键字进行过滤" |
| | | v-model="filterText" |
| | | class="search" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-tree ref="tree" :data="treeData" node-key="id" show-checkbox :props="defaultProps" @node-click="handleLeftclick" |
| | | @node-contextmenu="rightClick" @check="handleCheckChange" :default-checked-keys="handleTreeCheck" |
| | | :expand-on-click-node="false" :filter-node-method="filterNode" draggable> |
| | | <span class="slot-t-node" |
| | | slot-scope="{ node, data }"> |
| | | <el-tree |
| | | ref="tree" |
| | | :data="treeData" |
| | | node-key="id" |
| | | show-checkbox |
| | | :props="defaultProps" |
| | | @node-click="handleLeftclick" |
| | | @node-contextmenu="rightClick" |
| | | @check="handleCheckChange" |
| | | :default-checked-keys="handleTreeCheck" |
| | | :expand-on-click-node="false" |
| | | :filter-node-method="filterNode" |
| | | draggable |
| | | > |
| | | <span |
| | | class="slot-t-node" |
| | | slot-scope="{ node, data }" |
| | | > |
| | | <span v-show="!data.isEdit"> |
| | | <span :class="[data.id >= 99 ? 'slot-t-node--label' : '']">{{ |
| | | node.label |
| | | }}</span> |
| | | </span> |
| | | <span v-show="data.isEdit"> |
| | | <el-input class="slot-t-input" |
| | | <el-input |
| | | class="slot-t-input" |
| | | size="mini" |
| | | autofocus |
| | | v-model="data.label" |
| | | :ref="'slotTreeInput' + data.id" |
| | | @blur.stop="nodeBlur(node, data)" |
| | | @keydown.native.enter="nodeBlur(node, data)"></el-input> |
| | | @keydown.native.enter="nodeBlur(node, data)" |
| | | ></el-input> |
| | | </span> |
| | | </span> |
| | | </el-tree> |
| | | <el-card class="box-card" ref="card" :style="{ ...rightClickMenuStyle }" v-show="menuVisible"> |
| | | <div class="edit" @click="showLayerAttribute()" v-if="showProp && !shwoHistogram"> |
| | | <el-card |
| | | class="box-card" |
| | | ref="card" |
| | | :style="{ ...rightClickMenuStyle }" |
| | | v-show="menuVisible" |
| | | > |
| | | <div |
| | | class="edit" |
| | | @click="showLayerAttribute()" |
| | | v-if="showProp && !shwoHistogram" |
| | | > |
| | | <i class="el-icon-tickets"></i> 属性 |
| | | </div> |
| | | <div class="edit" @click="positioning()" v-if="showLocal"> |
| | | <div |
| | | class="edit" |
| | | @click="positioning()" |
| | | v-if="showLocal" |
| | | > |
| | | <i class="el-icon-tickets"></i> 定位 |
| | | </div> |
| | | <div class="edit" @click="pellucidity()" v-if="showOpacity"> |
| | | <div |
| | | class="edit" |
| | | @click="pellucidity()" |
| | | v-if="showOpacity" |
| | | > |
| | | <i class="el-icon-tickets"></i> 透明度 |
| | | </div> |
| | | <div class="edit" @click="histogram()" v-show="shwoHistogram"> |
| | | <div |
| | | class="edit" |
| | | @click="histogram()" |
| | | v-show="shwoHistogram" |
| | | > |
| | | <i class="el-icon-tickets"></i> 钻孔柱状图 |
| | | </div> |
| | | <div class="edit" v-show="shwoTileDown" @click="tileDownload()"> |
| | | <div |
| | | class="edit" |
| | | v-show="shwoTileDown" |
| | | @click="tileDownload()" |
| | | > |
| | | <i class="el-icon-download"></i> 瓦片下载 |
| | | </div> |
| | | </el-card> |
| | |
| | | }, |
| | | // 切换项目 |
| | | prjChanged (code) { |
| | | |
| | | this.$store.state.pigCode = code; |
| | | |
| | | //if (code) { |
| | | this.isBusy = true; |
| | | let checkedLayers = this.getCheckedLayersByCode(code); |
| | |
| | | z-index: 8; |
| | | } |
| | | |
| | | .tree-container /deep/ .el-tree-node .el-tree-node__children .el-tree-node__content::before { |
| | | .tree-container |
| | | /deep/ |
| | | .el-tree-node |
| | | .el-tree-node__children |
| | | .el-tree-node__content::before { |
| | | border-left: 0px dashed #ccc; |
| | | height: 100%; |
| | | top: 0; |
| | |
| | | } |
| | | } |
| | | |
| | | .tree-container /deep/ .el-tree-node .el-tree-node__children .el-tree-node__content::after { |
| | | .tree-container |
| | | /deep/ |
| | | .el-tree-node |
| | | .el-tree-node__children |
| | | .el-tree-node__content::after { |
| | | border-top: 0px dashed #ccc; |
| | | } |
| | | |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- OSGB LAS --> |
| | | <el-dialog |
| | | :title="$t('common.publish')" |
| | | :visible.sync="insertOsgbVisible" |
| | | width="25%" |
| | | :close-on-click-modal="false" |
| | | :show-close="false" |
| | | > |
| | | <div style="width:100%; "> |
| | | <el-form |
| | | :model="osgbLasLayer" |
| | | label-width="160px" |
| | | > |
| | | <el-form-item :label="$t('dataManage.vmobj.heightOffset')"> |
| | | <el-input |
| | | :placeholder="$t('dataManage.vmobj.label1')" |
| | | v-model="osgbLasLayer.z" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-if="formInline.type == 'LAS'" |
| | | :label="$t('dataManage.vmobj.coordinateSystemID')" |
| | | > |
| | | <el-select |
| | | v-model="osgbLasLayer.strid" |
| | | :placeholder="$t('dataManage.vmobj.label2')" |
| | | style="width: 100%;" |
| | | > |
| | | <el-option |
| | | v-for="item in stridOption" |
| | | :key="item.id" |
| | | :label="item.coordinate" |
| | | :value="item.epsgcode" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div style="display: flex; justify-content: end;margin-top:10px;"> |
| | | <el-button |
| | | size="small" |
| | | type="primary" |
| | | @click="setOsgbInsert" |
| | | >{{$t('common.submit')}}</el-button> |
| | | <el-button |
| | | size="small" |
| | | type="info" |
| | | @click="setOsgbCanel" |
| | | >{{$t('common.cancel')}}</el-button> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | <div |
| | | class="loadBox" |
| | | v-if="loadDialogVisible" |
| | |
| | | publish_deletes, |
| | | publish_update, |
| | | publish_insert, |
| | | dataUpload_selectCoords |
| | | } from '../../api/api.js' |
| | | import { conditions } from '../Archive/Archive'; |
| | | |
| | |
| | | value: 'MPT', |
| | | label: '场景数据(.mpt)' |
| | | }, { |
| | | value: 'OSGB', |
| | | label: '倾斜数据(.osgb)' |
| | | }, { |
| | | value: 'LAS', |
| | | label: '点云数据(.las, .laz)' |
| | | }, { |
| | | value: 'CPT', |
| | | label: '点云数据(.cpt)' |
| | | }, { |
| | |
| | | loadDialogVisible: false, |
| | | options: [], |
| | | isFullscreen: false, |
| | | |
| | | insertOsgbVisible: false, |
| | | osgbLasLayer: { |
| | | z: '0', |
| | | strid: '' |
| | | }, |
| | | stridOption: [], |
| | | } |
| | | }, |
| | | methods: { |
| | | setOsgbCanel() { |
| | | this.insertOsgbVisible = false; |
| | | this.osgbLasLayer = { |
| | | z: '0', |
| | | strid: '' |
| | | } |
| | | }, |
| | | async setOsgbInsert() { |
| | | |
| | | var ids = []; |
| | | for (var i in this.multipleSelection) { |
| | | ids.push(this.multipleSelection[i].id) |
| | | } |
| | | var strid; |
| | | |
| | | if (this.formInline.type == 'LAS') { |
| | | if (!this.osgbLasLayer.strid) { |
| | | return this.$message('请选择发布数据的坐标系'); |
| | | } else { |
| | | strid = this.osgbLasLayer.strid.replace('EPSG:', '') |
| | | } |
| | | } |
| | | var obj = { |
| | | dircode: this.formInline.dirid, |
| | | depcode: this.formInline.depid, |
| | | min: null, |
| | | max: null, |
| | | name: null, |
| | | type: this.formInline.type, |
| | | noData: null, |
| | | ids: ids, |
| | | models: null, |
| | | srid: parseInt(strid), |
| | | z: parseFloat(parseFloat(this.osgbLasLayer.z).toFixed(3)) |
| | | } |
| | | this.loadDialogVisible = true |
| | | this.setOsgbCanel(); |
| | | const data = await publish_insert(obj); |
| | | |
| | | if (data.code == 200 && data.result > 0) { |
| | | this.$message({ |
| | | message: '数据发布成功', |
| | | type: 'success' |
| | | }); |
| | | } else { |
| | | this.$message.error("数据发布失败") |
| | | } |
| | | this.loadDialogVisible = false |
| | | this.getTableData(); |
| | | |
| | | }, |
| | | setModelCanel() { |
| | | this.insertModelVisible = false; |
| | | this.modelOptions = []; |
| | |
| | | val[i].isModel = null |
| | | } |
| | | this.modelOptions = val; |
| | | |
| | | this.insertModelVisible = true; |
| | | } else if (this.formInline.type == "OSGB") { |
| | | this.insertOsgbVisible = true; |
| | | } else if (this.formInline.type == "LAS") { |
| | | const data = await dataUpload_selectCoords(); |
| | | if (data.code != 200) { |
| | | this.$message('坐标系数据获取失败'); |
| | | } |
| | | this.stridOption = data.result; |
| | | |
| | | |
| | | |
| | | this.insertOsgbVisible = true; |
| | | } else { |
| | | var std = []; |
| | | for (var i in this.multipleSelection) { |
| | |
| | | var that = this |
| | | this.$confirm('确定是否删除所选内容?') |
| | | .then(_ => { |
| | | done(); |
| | | that.deletePage() |
| | | }) |
| | | .catch(_ => { |
| | | that.deletePage() |
| | | |
| | | }); |
| | | } |
| | | }, |