| | |
| | | // BASE_API: '"http://10.142.119.232:8100"', |
| | | // IMG_API: '"http://10.142.119.232:8100/upload/"', |
| | | |
| | | // BASE_API: '"http://222.92.213.22:8006/zhongtai"', |
| | | // IMG_API: '"http://222.92.213.22:8006/zhongtai/upload/"', |
| | | BASE_API: '"http://222.92.213.22:8006/zhongtai"', |
| | | IMG_API: '"http://222.92.213.22:8006/zhongtai/upload/"', |
| | | // |
| | | // BASE_API: '"https://sinanoaq.cn:8100"', |
| | | // BASE_API: '"http://127.0.0.1:8100"', |
| | |
| | | NANO_API: '"http://127.0.0.1:8081/zhongtaiexam"', |
| | | // BASE_API: '"http://220.171.99.118:4101/api"', |
| | | // IMG_API: '"http://220.171.99.118:4101/api/upload/"', |
| | | BASE_API: '"http://112.86.23.31:8006"', |
| | | IMG_API: '"http://112.86.23.31:8006/upload/"', |
| | | // BASE_API: '"http://112.86.23.31:8006"', |
| | | // IMG_API: '"http://112.86.23.31:8006/upload/"', |
| | | }; |
| | |
| | | execDepartment:'', |
| | | inspectionTaskVisible:false, |
| | | inspectionTaskFormRules:{ |
| | | hazardDep: [{ required: true, message: '责任部门不能为空', trigger: 'change' }], |
| | | hazardLiablePerson: [{ required: true, message: '责任人不能为空', trigger: 'blur' }], |
| | | hazardCode: [{ required: true, message: '安全风险分析对象编码不能为空', trigger: 'blur' }], |
| | | riskUnitName: [{ required: true, message: '安全风险分析单元名称不能为空', trigger: 'blur' }], |
| | | title: [{ required: true, message: '任务名称不能为空', trigger: 'blur' }], |
| | | type: [{ required: true, message: '检查类型不能为空', trigger: 'change' }], |
| | | intervalSeconds: [{ required: true, message: '检查频次不能为空', trigger: 'change' }], |
| | | noticeSeconds: [{ required: true, message: '提前通知时间不能为空', trigger: 'change' }], |
| | | startTime: [{ required: true, message: '周期开始时间不能为空', trigger: 'change' }], |
| | | effectSeconds: [{ required: true, message: '任务有效时间不能为空', trigger: 'change' }], |
| | | noticeUid: [{ required: true, message: '异常通知人员不能为空', trigger: 'change' }], |
| | | execUid: [{ required: true, message: '执行巡检人员不能为空', trigger: 'change' }], |
| | | }, |
| | | inspectionTaskForm:{ |
| | | type:null, |
| | |
| | | type:'warning', |
| | | message:'任务持续时间不能大于检查频次' |
| | | }) |
| | | }else if(this.justifyTime(this.inspectionTaskForm.startTime,this.inspectionTaskForm.noticeSeconds)){ |
| | | this.$message({ |
| | | type:'warning', |
| | | message:'周期开始时间减去当前时间和提前通知时间要大于等于半小时' |
| | | }) |
| | | }else{ |
| | | if(this.title === '新建巡检计划设定'){ |
| | | addInspectionTask(this.inspectionTaskForm).then((res)=>{ |
| | |
| | | }) |
| | | |
| | | }, |
| | | justifyTime(time,interval) { |
| | | debugger |
| | | let timeStr = new Date(time.replace(/-/g,'/')) |
| | | let date = parseInt(timeStr.getTime()/1000) |
| | | let newTimeStr = new Date() |
| | | let newDate = parseInt(newTimeStr.getTime()/1000) |
| | | if(date - newDate - interval - 1800 >= 0){ |
| | | return false |
| | | }else{ |
| | | return true |
| | | } |
| | | }, |
| | | deleteById(val){ |
| | | this.$confirm('删除此条信息,是否继续','提示',{ |
| | | confirmButtonText:'确定', |
对比新文件 |
| | |
| | | <template> |
| | | |
| | | <div class="map-layout"> |
| | | <Map @init="init" :option="option" v-if="option" /> |
| | | <Tab v-if="loaded" /> |
| | | </div> |
| | | |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import Map from '../../../../../components/Map'; |
| | | import Tab from '../../../../../components/Tab'; |
| | | import { global } from '../../../../../global'; |
| | | import { |
| | | getCatesian3FromPX, |
| | | Cartesian3_to_WGS84, |
| | | } from '../../../../../components/Map/libs/Point'; |
| | | |
| | | export default { |
| | | name: 'App', |
| | | components: { |
| | | Map, |
| | | Tab, |
| | | }, |
| | | data() { |
| | | return { |
| | | activeName:'first', |
| | | loaded: false, |
| | | map: null, |
| | | option: null, |
| | | heatLayer: null, |
| | | shineishiwai: true, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | // 地图配置初始化 |
| | | this.option = { |
| | | // 初始化视图中心点 |
| | | viewpoint: { |
| | | y: 31.254992, |
| | | x: 120.727592, |
| | | z: 289.24, |
| | | heading: 13.8, |
| | | pitch: -37.3, |
| | | roll: 360, |
| | | }, |
| | | |
| | | // 显示位置初始化按钮 |
| | | homeButton: true, |
| | | |
| | | // 当前时间 |
| | | currentTime: '08:30:00', |
| | | |
| | | // 影像底图 |
| | | imageryProvider: new Cesium.WebMapTileServiceImageryProvider({ |
| | | url: |
| | | 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer', |
| | | layer: '', |
| | | style: 'default', |
| | | tileMatrixSetID: 'w', |
| | | format: 'tiles', |
| | | maximumLevel: 18, |
| | | }), |
| | | }; |
| | | window.sss = this; |
| | | }, |
| | | methods: { |
| | | init(map) { |
| | | this.loaded = true; |
| | | |
| | | map.addModel({ |
| | | link: 'http://222.92.213.22:8006/b3dm130/tileset.json', |
| | | name: '商业园区', |
| | | callback: tileset => { |
| | | var boundingSphere = tileset.boundingSphere; |
| | | var cartographic = Cesium.Cartographic.fromCartesian( |
| | | boundingSphere.center |
| | | ); |
| | | var surface = Cesium.Cartesian3.fromRadians( |
| | | cartographic.longitude, |
| | | cartographic.latitude, |
| | | 0.0 |
| | | ); |
| | | var offset = Cesium.Cartesian3.fromRadians( |
| | | cartographic.longitude, |
| | | cartographic.latitude, |
| | | 102 |
| | | ); |
| | | var translation = Cesium.Cartesian3.subtract( |
| | | offset, |
| | | surface, |
| | | new Cesium.Cartesian3() |
| | | ); |
| | | tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); |
| | | }, |
| | | }); |
| | | |
| | | map.viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString( |
| | | '#050F1F' |
| | | ); |
| | | map.viewer.scene.logarithmicDepthBuffer = false; |
| | | map.viewer.scene.globe.enableLighting = true; |
| | | map.viewer.scene.sun.show = false; |
| | | map.viewer.scene.moon.show = false; |
| | | map.viewer.scene.fog.enabled = false; |
| | | map.viewer.scene.skyBox = null; |
| | | |
| | | // 初始化事件 |
| | | this.initEvent(map); |
| | | |
| | | this.testLoadedData(); |
| | | }, |
| | | // 加载测试数据 |
| | | testLoadedData() { |
| | | const map = global.map; |
| | | if (!map) return; |
| | | $.get('./public/data/plots_namisuo.geojson', res => { |
| | | map.loadGeoJSON(res); |
| | | }); |
| | | }, |
| | | initEvent(map) { |
| | | let popup = null; |
| | | const _this = this; |
| | | map.on( |
| | | 'click', |
| | | ({ |
| | | position, |
| | | cartesian3, |
| | | latLngPositionGlobe, |
| | | latLngPosition, |
| | | entity, |
| | | attr, |
| | | }) => { |
| | | if (popup) { |
| | | popup.destroy(); |
| | | popup = null; |
| | | } |
| | | let type = entity && entity.attribute && entity.attribute.type; |
| | | if (type) { |
| | | popup = new wutu3d.DivPoint(map.viewer, { |
| | | html: |
| | | "<div class='popup-wrapper'>" + |
| | | attr.name + |
| | | '<br/><br/>XXXXXXXX</div>', |
| | | position: cartesian3, |
| | | anchor: [-170, -80], |
| | | }); |
| | | popup.visible = true; |
| | | } |
| | | if (attr.name && attr.name === '含内景大楼') { |
| | | _this.changeModel(!_this.shineishiwai); |
| | | _this.shineishiwai = !_this.shineishiwai; |
| | | } |
| | | |
| | | const pos = getCatesian3FromPX(position, map.viewer); |
| | | const pos1 = Cartesian3_to_WGS84(pos); |
| | | console.log(pos1); |
| | | |
| | | var pt = turf.point([Number(pos1.lng), Number(pos1.lat)]); |
| | | var poly = turf.polygon([ |
| | | [ |
| | | [120.159277, 30.227512], |
| | | [120.158919, 30.227569], |
| | | [120.158777, 30.227431], |
| | | [120.158904, 30.227151], |
| | | [120.15911, 30.227119], |
| | | [120.159339, 30.227347], |
| | | [120.159277, 30.227512], |
| | | ], |
| | | ]); |
| | | |
| | | const inPoly = turf.booleanPointInPolygon(pt, poly); |
| | | |
| | | if ( |
| | | //自己测量对应建筑的空间范围 |
| | | inPoly && |
| | | pos1.alt > 0 && //20.562718744748462 |
| | | pos1.alt < 121.7 |
| | | ) { |
| | | _this.changeModel(!_this.shineishiwai); |
| | | _this.shineishiwai = !_this.shineishiwai; |
| | | } |
| | | } |
| | | ); |
| | | // map.on( |
| | | // 'mousemove', |
| | | // ({ cartesian3, latLngPositionGlobe, latLngPosition, entity, attr }) => { |
| | | // if (popup) { |
| | | // popup.destroy(); |
| | | // popup = null; |
| | | // } |
| | | // let type = entity && entity.attribute && entity.attribute.type; |
| | | // if (type) { |
| | | // popup = new wutu3d.DivPoint(map.viewer, { |
| | | // html: |
| | | // "<div class='popup-wrapper'>信息内容<br/><br/>XXXXXXXX</div>", |
| | | // position: cartesian3, |
| | | // anchor: [-170, -80], |
| | | // }); |
| | | // popup.visible = true; |
| | | // } |
| | | // } |
| | | // ); |
| | | }, |
| | | changeModel(val) { |
| | | console.log(val); |
| | | if (!val) { |
| | | global.map.models.map(model => { |
| | | if (model.name === '室内') { |
| | | global.map.setModelVisible(model.id, true); |
| | | global.map.flyToModel(model.id); |
| | | } else { |
| | | global.map.setModelVisible(model.id, false); |
| | | } |
| | | }); |
| | | |
| | | let viewer = global.map.viewer; |
| | | viewer.scene.skyBox = null; |
| | | viewer.scene.sun.show = false; |
| | | viewer.scene.moon.show = false; |
| | | viewer.scene.globe.show = false; |
| | | viewer.scene.logarithmicDepthBuffer = false; |
| | | viewer.scene.skyAtmosphere.show = false; |
| | | viewer.scene.backgroundColor = Cesium.Color.fromCssColorString( |
| | | 'rgba(0,0,0, 1)' |
| | | ); |
| | | } else { |
| | | global.map.models.map(model => { |
| | | if (model.name === '室内') { |
| | | global.map.setModelVisible(model.id, false); |
| | | } else { |
| | | global.map.setModelVisible(model.id, true); |
| | | } |
| | | }); |
| | | |
| | | global.map.setViewpoint( |
| | | { |
| | | y: 30.231104, |
| | | x: 120.157372, |
| | | z: 298.45, |
| | | heading: 173, |
| | | pitch: -28.8, |
| | | roll: 6.2, |
| | | }, |
| | | { duration: 1.5 } |
| | | ); |
| | | |
| | | let viewer = global.map.viewer; |
| | | viewer.scene.skyBox = null; |
| | | viewer.scene.sun.show = true; |
| | | viewer.scene.moon.show = true; |
| | | viewer.scene.globe.show = true; |
| | | viewer.scene.logarithmicDepthBuffer = true; |
| | | viewer.scene.skyAtmosphere.show = true; |
| | | viewer.scene.backgroundColor = Cesium.Color.fromCssColorString( |
| | | 'rgba(0,0,0, 1)' |
| | | ); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .map-layout { |
| | | height: 920px;; |
| | | position: relative; |
| | | } |
| | | |
| | | .tool-btns { |
| | | position: absolute; |
| | | z-index: 999; |
| | | top: 10px; |
| | | left: 500px; |
| | | } |
| | | .sn-tool { |
| | | position: absolute; |
| | | bottom: 10px; |
| | | right: 10px; |
| | | z-index: 1; |
| | | padding: 3px; |
| | | background: #fff; |
| | | } |
| | | .left-switch { |
| | | margin-right: 10px; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | |
| | | <div class="map-layout"> |
| | | <Map @init="init" :option="option" v-if="option" /> |
| | | <Tab v-if="loaded" /> |
| | | </div> |
| | | |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import Map from '../../../../../components/Map'; |
| | | import Tab from '../../../../../components/Tab'; |
| | | import { global } from '../../../../../global'; |
| | | import { |
| | | getCatesian3FromPX, |
| | | Cartesian3_to_WGS84, |
| | | } from '../../../../../components/Map/libs/Point'; |
| | | |
| | | export default { |
| | | name: 'App', |
| | | components: { |
| | | Map, |
| | | Tab, |
| | | }, |
| | | data() { |
| | | return { |
| | | activeName:'first', |
| | | loaded: false, |
| | | map: null, |
| | | option: null, |
| | | heatLayer: null, |
| | | shineishiwai: true, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | // 地图配置初始化 |
| | | this.option = { |
| | | // 初始化视图中心点 |
| | | viewpoint: { |
| | | y: 31.254992, |
| | | x: 120.727592, |
| | | z: 289.24, |
| | | heading: 13.8, |
| | | pitch: -37.3, |
| | | roll: 360, |
| | | }, |
| | | |
| | | // 显示位置初始化按钮 |
| | | homeButton: true, |
| | | |
| | | // 当前时间 |
| | | currentTime: '08:30:00', |
| | | |
| | | // 影像底图 |
| | | imageryProvider: new Cesium.WebMapTileServiceImageryProvider({ |
| | | url: |
| | | 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer', |
| | | layer: '', |
| | | style: 'default', |
| | | tileMatrixSetID: 'w', |
| | | format: 'tiles', |
| | | maximumLevel: 18, |
| | | }), |
| | | }; |
| | | window.sss = this; |
| | | }, |
| | | methods: { |
| | | init(map) { |
| | | this.loaded = true; |
| | | |
| | | map.addModel({ |
| | | link: 'http://222.92.213.22:8006/b3dm60/tileset.json', |
| | | name: '商业园区', |
| | | callback: tileset => { |
| | | var boundingSphere = tileset.boundingSphere; |
| | | var cartographic = Cesium.Cartographic.fromCartesian( |
| | | boundingSphere.center |
| | | ); |
| | | var surface = Cesium.Cartesian3.fromRadians( |
| | | cartographic.longitude, |
| | | cartographic.latitude, |
| | | 0.0 |
| | | ); |
| | | var offset = Cesium.Cartesian3.fromRadians( |
| | | cartographic.longitude, |
| | | cartographic.latitude, |
| | | 102 |
| | | ); |
| | | var translation = Cesium.Cartesian3.subtract( |
| | | offset, |
| | | surface, |
| | | new Cesium.Cartesian3() |
| | | ); |
| | | tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); |
| | | }, |
| | | }); |
| | | |
| | | map.viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString( |
| | | '#050F1F' |
| | | ); |
| | | map.viewer.scene.logarithmicDepthBuffer = false; |
| | | map.viewer.scene.globe.enableLighting = true; |
| | | map.viewer.scene.sun.show = false; |
| | | map.viewer.scene.moon.show = false; |
| | | map.viewer.scene.fog.enabled = false; |
| | | map.viewer.scene.skyBox = null; |
| | | |
| | | // 初始化事件 |
| | | this.initEvent(map); |
| | | |
| | | this.testLoadedData(); |
| | | }, |
| | | // 加载测试数据 |
| | | testLoadedData() { |
| | | const map = global.map; |
| | | if (!map) return; |
| | | $.get('./public/data/plots_namisuo.geojson', res => { |
| | | map.loadGeoJSON(res); |
| | | }); |
| | | }, |
| | | initEvent(map) { |
| | | let popup = null; |
| | | const _this = this; |
| | | map.on( |
| | | 'click', |
| | | ({ |
| | | position, |
| | | cartesian3, |
| | | latLngPositionGlobe, |
| | | latLngPosition, |
| | | entity, |
| | | attr, |
| | | }) => { |
| | | if (popup) { |
| | | popup.destroy(); |
| | | popup = null; |
| | | } |
| | | let type = entity && entity.attribute && entity.attribute.type; |
| | | if (type) { |
| | | popup = new wutu3d.DivPoint(map.viewer, { |
| | | html: |
| | | "<div class='popup-wrapper'>" + |
| | | attr.name + |
| | | '<br/><br/>XXXXXXXX</div>', |
| | | position: cartesian3, |
| | | anchor: [-170, -80], |
| | | }); |
| | | popup.visible = true; |
| | | } |
| | | if (attr.name && attr.name === '含内景大楼') { |
| | | _this.changeModel(!_this.shineishiwai); |
| | | _this.shineishiwai = !_this.shineishiwai; |
| | | } |
| | | |
| | | const pos = getCatesian3FromPX(position, map.viewer); |
| | | const pos1 = Cartesian3_to_WGS84(pos); |
| | | console.log(pos1); |
| | | |
| | | var pt = turf.point([Number(pos1.lng), Number(pos1.lat)]); |
| | | var poly = turf.polygon([ |
| | | [ |
| | | [120.159277, 30.227512], |
| | | [120.158919, 30.227569], |
| | | [120.158777, 30.227431], |
| | | [120.158904, 30.227151], |
| | | [120.15911, 30.227119], |
| | | [120.159339, 30.227347], |
| | | [120.159277, 30.227512], |
| | | ], |
| | | ]); |
| | | |
| | | const inPoly = turf.booleanPointInPolygon(pt, poly); |
| | | |
| | | if ( |
| | | //自己测量对应建筑的空间范围 |
| | | inPoly && |
| | | pos1.alt > 0 && //20.562718744748462 |
| | | pos1.alt < 121.7 |
| | | ) { |
| | | _this.changeModel(!_this.shineishiwai); |
| | | _this.shineishiwai = !_this.shineishiwai; |
| | | } |
| | | } |
| | | ); |
| | | // map.on( |
| | | // 'mousemove', |
| | | // ({ cartesian3, latLngPositionGlobe, latLngPosition, entity, attr }) => { |
| | | // if (popup) { |
| | | // popup.destroy(); |
| | | // popup = null; |
| | | // } |
| | | // let type = entity && entity.attribute && entity.attribute.type; |
| | | // if (type) { |
| | | // popup = new wutu3d.DivPoint(map.viewer, { |
| | | // html: |
| | | // "<div class='popup-wrapper'>信息内容<br/><br/>XXXXXXXX</div>", |
| | | // position: cartesian3, |
| | | // anchor: [-170, -80], |
| | | // }); |
| | | // popup.visible = true; |
| | | // } |
| | | // } |
| | | // ); |
| | | }, |
| | | changeModel(val) { |
| | | console.log(val); |
| | | if (!val) { |
| | | global.map.models.map(model => { |
| | | if (model.name === '室内') { |
| | | global.map.setModelVisible(model.id, true); |
| | | global.map.flyToModel(model.id); |
| | | } else { |
| | | global.map.setModelVisible(model.id, false); |
| | | } |
| | | }); |
| | | |
| | | let viewer = global.map.viewer; |
| | | viewer.scene.skyBox = null; |
| | | viewer.scene.sun.show = false; |
| | | viewer.scene.moon.show = false; |
| | | viewer.scene.globe.show = false; |
| | | viewer.scene.logarithmicDepthBuffer = false; |
| | | viewer.scene.skyAtmosphere.show = false; |
| | | viewer.scene.backgroundColor = Cesium.Color.fromCssColorString( |
| | | 'rgba(0,0,0, 1)' |
| | | ); |
| | | } else { |
| | | global.map.models.map(model => { |
| | | if (model.name === '室内') { |
| | | global.map.setModelVisible(model.id, false); |
| | | } else { |
| | | global.map.setModelVisible(model.id, true); |
| | | } |
| | | }); |
| | | |
| | | global.map.setViewpoint( |
| | | { |
| | | y: 30.231104, |
| | | x: 120.157372, |
| | | z: 298.45, |
| | | heading: 173, |
| | | pitch: -28.8, |
| | | roll: 6.2, |
| | | }, |
| | | { duration: 1.5 } |
| | | ); |
| | | |
| | | let viewer = global.map.viewer; |
| | | viewer.scene.skyBox = null; |
| | | viewer.scene.sun.show = true; |
| | | viewer.scene.moon.show = true; |
| | | viewer.scene.globe.show = true; |
| | | viewer.scene.logarithmicDepthBuffer = true; |
| | | viewer.scene.skyAtmosphere.show = true; |
| | | viewer.scene.backgroundColor = Cesium.Color.fromCssColorString( |
| | | 'rgba(0,0,0, 1)' |
| | | ); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .map-layout { |
| | | height: 920px;; |
| | | position: relative; |
| | | } |
| | | |
| | | .tool-btns { |
| | | position: absolute; |
| | | z-index: 999; |
| | | top: 10px; |
| | | left: 500px; |
| | | } |
| | | .sn-tool { |
| | | position: absolute; |
| | | bottom: 10px; |
| | | right: 10px; |
| | | z-index: 1; |
| | | padding: 3px; |
| | | background: #fff; |
| | | } |
| | | .left-switch { |
| | | margin-right: 10px; |
| | | } |
| | | </style> |
| | |
| | | <div style="height:1000px;width:100%;background:#FFFFFF;padding:20px"> |
| | | <el-tabs v-model="activeName"> |
| | | <el-tab-pane label="60万吨" name="first"> |
| | | <div class="map-layout"> |
| | | <Map @init="init" :option="option" v-if="option" /> |
| | | <Tab v-if="loaded" /> |
| | | </div></el-tab-pane> |
| | | <sixty></sixty> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="130万吨" name="second"> |
| | | |
| | | <oneHundredAndThirty></oneHundredAndThirty> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import tileset from '../../../../assets/tileset.json' |
| | | import sixty from './components/sixty.vue' |
| | | import oneHundredAndThirty from './components/oneHundredAndThirty.vue' |
| | | import Map from '../../../../components/Map'; |
| | | import Tab from '../../../../components/Tab'; |
| | | import { global } from '../../../../global'; |
| | |
| | | components: { |
| | | Map, |
| | | Tab, |
| | | oneHundredAndThirty, |
| | | sixty |
| | | }, |
| | | data() { |
| | | return { |