+
-
+
+
+
+
+
+ 关键字:
+
+
+
+
+
+ 完整度:
+
+
+ 请选择
+ {{item.name}}
+
+
+
+ search 搜索
+
+
+
+
+
+
+ 地址
+ 完整度
+
+
+
+
+ {{item.address}}
+
+
+ {{accMul(item.integrityScore.toFixed(3),100,1)}}%
+
+
+
+
+ highlight_off
+
+
+
+
+
+
+
-
+
+ {{item.name}}
+
+
+
+
+
+
+ 消火栓
+ 消防水池
+ 天然水源
+
+
+
+ save 保存
+ open_in_browser 提交审核
+
+
+
+
\ No newline at end of file
diff --git a/src/app/data-collection/water-collection/water-collection.component.scss b/src/app/data-collection/water-collection/water-collection.component.scss
index ef03c8d..debc2c4 100644
--- a/src/app/data-collection/water-collection/water-collection.component.scss
+++ b/src/app/data-collection/water-collection/water-collection.component.scss
@@ -5,14 +5,373 @@
display: flex;
box-sizing: border-box;
padding: 10px;
+ font-size: 16px;
+ font-family: Source Han Sans CN;
+ font-weight: 400;
+ color: #000000;
}
.listbox{
width: 400px;
height: 100%;
background-color: #fff;
+ display: flex;
+ flex-direction: column;
+ .topbox{
+ max-height: 200px;
+ box-sizing: border-box;
+ padding: 10px 22px 22px;
+ .add{
+ height: 36px;
+ line-height: 36px;
+ display: flex;
+ justify-content: space-between;
+ }
+ .searchbox{
+ .inputbox{
+ width: 100%;
+ height: 36px;
+ font-size: 14px;
+ line-height: 36px;
+ margin: 10px 0;
+ display: flex;
+ span{
+ margin-right: 5px;
+ }
+ select,input{
+ flex: 1;
+ background-color: #F2F4F6;
+ border: 0;
+ border-radius: 5px;
+ box-sizing: border-box;
+ padding:0 8px;
+
+ }
+ .gray{
+ color: gray;
+ }
+ // input::-moz-placeholder {
+ // color: rgba(90, 83, 83, 0.89);
+ // opacity: 1;
+ // }
+ // input:-ms-input-placeholder {
+ // color: rgba(90, 83, 83, 0.89);;
+ // }
+ // input::-webkit-input-placeholder {
+ // color: rgba(90, 83, 83, 0.89);;
+ // }
+ }
+ }
+ }
+ .contantbox{
+ flex: 1;
+ overflow-y: auto;
+ display: flex;
+ flex-direction: column;
+ .title{
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+ box-sizing: border-box;
+ padding: 0 33px 0 22px;
+ height: 36px;
+ line-height: 36px;
+ span{
+ font-size: 14px;
+ font-weight: 500;
+ }
+ }
+ .waterList{
+ flex: 1;
+ overflow-y: auto;
+ li{
+ cursor: pointer;
+ width: 100%;
+ height: 36px;
+ line-height: 36px;
+ display: flex;
+ align-items: center;
+ font-size: 14px;
+ div{
+ float: left;
+ box-sizing: border-box;
+ }
+ .address{
+ text-align: left;
+ width: 60%;
+ padding-left: 22px;
+ white-space:nowrap;
+ overflow:hidden;
+ text-overflow:ellipsis;
+ }
+ .integrity{
+ height: 58%;
+ width: 32%;
+ position: relative;
+ background-color: #F2F4F6;
+ .integrityNum{
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ color: black;
+ font-size: 13px;
+ cursor: default;
+ }
+ .integrityColorDiv{
+ height: 100%;
+ }
+ }
+ .deletebtn{
+ flex: 1;
+ text-align: center;
+ mat-icon{
+ width: 20px;
+ height: 20px;
+ cursor: pointer;
+ font-size: 20px;
+ vertical-align: text-top;
+ color: rgba(49, 46, 46, 0.144);
+ }
+ mat-icon:hover{
+ color: #000;
+ }
+ }
+ }
+ li:hover{
+ background-color: #b3d3ee;
+ }
+ .selectedLi{
+ background-color: #b3d3ee;
+ }
+ }
+ .paginator{
+ height: 56px;
+ width: 100%;
+ }
+ }
}
.mapbox{
flex: 1;
margin-left: 10px;
background-color: #fff;
+ display: flex;
+ flex-direction: column;
+ .mapcheckbox{
+ width: 100%;
+ height: 50px;
+ line-height: 50px;
+ mat-checkbox{
+ margin-right:60px;
+ font-size: 15px;
+ }
+ mat-checkbox:nth-child(1){
+ margin-left: 20px;
+ }
+ }
+ #map{
+ flex: 1;
+ position: relative;
+ #container{
+ width: 100%;
+ height: 100%;
+ }
+ .gistopbox{
+ position: absolute;
+ box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
+ border-radius: 5px;
+ top: 3px;
+ width: 30%;
+ height:40px;
+ background: #FFFFFF;
+ display: flex;
+ align-items: center;
+ cursor: default;;
+ .inputBox{
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-sizing: border-box;
+ font-size: 14px;
+ .positionInput{
+ border: 0;
+ border-radius: 6px;
+ width: 80%;
+ height: 28px;
+ background: #F2F2F2;
+ margin-left: 8px;
+ box-sizing: border-box;
+ padding-left: 10px;
+ }
+ }
+
+ }
+ .hidden{
+ opacity: 0;
+ z-index: -1;
+ }
+ .show{
+ opacity: 1;
+ z-index: 1;
+ }
+ }
+ .detailsbox{
+ width: 100%;
+ height:500px;
+ .tabsbox{
+ width: 100%;
+ height: 40px;
+ line-height: 40px;
+ display: flex;
+ justify-content: space-between;
+ font-size: 15px;
+ .tabs{
+ div{
+ float: left;
+ width: 120px;
+ text-align: center;
+ cursor: pointer;
+ color: #000000;
+ opacity: 0.4;
+ border-right: 1px solid #F2F4F6;
+ }
+ .selectedBtn{
+ background-color: #2196F3;
+ color: #fff;
+ opacity: 1;
+ }
+ }
+ .btnbox{
+ span{
+ cursor: pointer;
+ color: #2196F3;
+ mat-icon{
+ vertical-align: text-top;
+ font-size: 20px;
+ width: 20px;
+ height: 20px;
+ }
+ }
+ span:hover{
+ text-decoration: underline;
+ }
+ .submitAudit{
+ margin: 0 30px;
+ }
+ }
+ }
+ .contant{
+ width: 100%;
+ height:480px;
+ overflow-y: auto;
+ p{
+ color: #2196F3;
+ background-color: #F2F4F6;
+ height: 33px;
+ line-height: 33px;
+ box-sizing: border-box;
+ padding-left: 20px;
+ font-size: 15px;
+ }
+ span{
+ font-size: 15px;
+ }
+ input,select{
+ height: 30px;
+ line-height: 30px;
+ box-sizing: border-box;
+ padding: 0 12px;
+ width: 60%;
+ margin-left: 5px;
+ border: 1px solid #EBEBEB;
+ border-radius: 5px;
+ }
+ textarea{
+ width: 89%;
+ margin-left: 5px;
+ height: 85%;
+ border: 1px solid #EBEBEB;
+ border-radius: 5px;
+ }
+ .longinput{
+ width: 74%;
+ }
+ .unitDiv{
+ width: 60%;
+ position: relative;
+ input,select{
+ width: 100%;
+ box-sizing: border-box;
+ padding-right: 50px;
+ }
+ .unit{
+ position: absolute;
+ right: 13px;
+ top: 4px;
+ color: #000000;
+ opacity: 0.4;
+ }
+ }
+ }
+ }
+}
+
+.addWaterBox{
+ width: 260px;
+ height: 284px;
+ display: flex;
+ flex-direction: column;
+ .topbox{
+ width: 100%;
+ height: 40px;
+ line-height: 40px;
+ background-color: #2196F3;
+ text-align: center;
+ color: #FFFFFF;
+ font-size: 15px;
+ }
+ .contant{
+ flex: 1;
+ box-sizing: border-box;
+ padding: 0 30px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-around;
+ div{
+ width: 100%;
+ height: 36px;
+ line-height: 36px;
+ text-align: center;
+ background-color: #F2F4F6;
+ font-size: 14px;
+ cursor: pointer;
+ border: 1px solid #fff;
+ border-radius: 4px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ img{
+ margin-right: 3px;
+ }
+ }
+ .selectedDiv{
+ background-color: #2196F3;
+ color: #fff;
+ border: 1px solid #2196F3;
+ }
+ }
+ .btnbox{
+ width: 100%;
+ height: 50px;
+ box-sizing: border-box;
+ padding: 0px 30px;
+ display: flex;
+ align-items: flex-start;;
+ justify-content: space-between;
+ button{
+ width: 80px;
+ height: 36px;
+ line-height: 36px;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/app/data-collection/water-collection/water-collection.component.ts b/src/app/data-collection/water-collection/water-collection.component.ts
index 18998f1..17dd475 100644
--- a/src/app/data-collection/water-collection/water-collection.component.ts
+++ b/src/app/data-collection/water-collection/water-collection.component.ts
@@ -1,4 +1,10 @@
+import { HttpClient } from '@angular/common/http';
+import { Inject, Renderer2 } from '@angular/core';
+import { ElementRef } from '@angular/core';
import { Component, OnInit } from '@angular/core';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
+declare var AMap: any;
@Component({
selector: 'app-water-collection',
@@ -7,9 +13,489 @@ import { Component, OnInit } from '@angular/core';
})
export class WaterCollectionComponent implements OnInit {
- constructor() { }
+ constructor(public snackBar: MatSnackBar,private http:HttpClient,private elementRef: ElementRef,public renderer2: Renderer2,public dialog: MatDialog) { }
+ isCheckedOfSearchDiv:boolean = true//列表过滤滑块
+ slideChange(e){
+ this.isCheckedOfSearchDiv = e.checked
+ }
+ searchForm:any = {
+ name:'',
+ integrityNum:''
+ }
+ listIntegrityNum:any[] = [
+ {id:-1,name:'全部'},
+ {id:0,name:'<=50%'},
+ {id:1,name:'50%-60%'},
+ {id:2,name:'60%-70%'},
+ {id:3,name:'70%-80%'},
+ {id:4,name:'80%-90%'},
+ {id:5,name:'90%-100%'}
+ ]
+ checkBoxList:any[] = [
+ {id:0,name:'消火栓'},
+ {id:1,name:'消防水池'},
+ {id:2,name:'天然水源'}
+ ]
ngOnInit(): void {
+ this.getAllWaterData()
+ setTimeout(() => {
+ this.createMap()
+ }, 0);
+ }
+ //获得所有水源
+ addWaterListData:any
+ dataLength:any //获取的数据一共多少条
+ PageNumber:any = 1 //当前第几页
+ getAllWaterData(){
+ let MinIntegrity = 0
+ let MaxIntegrity = 1.1
+ if(this.searchForm.integrityNum == '0'){
+ MinIntegrity = 0
+ MaxIntegrity = 0.5
+ }else if(this.searchForm.integrityNum == '1'){
+ MinIntegrity = 0.5
+ MaxIntegrity = 0.6
+ }else if(this.searchForm.integrityNum == '2'){
+ MinIntegrity = 0.6
+ MaxIntegrity = 0.7
+ }else if(this.searchForm.integrityNum == '3'){
+ MinIntegrity = 0.7
+ MaxIntegrity = 0.8
+ }else if(this.searchForm.integrityNum == '4'){
+ MinIntegrity = 0.8
+ MaxIntegrity = 0.9
+ }else if(this.searchForm.integrityNum == '5'){
+ MinIntegrity = 0.9
+ MaxIntegrity = 1.1
+ }else if(this.searchForm.integrityNum == '-1'){
+ MinIntegrity = 0
+ MaxIntegrity = 1.1
+ }
+ let params:any = {
+ Keyword : this.searchForm.name,
+ PageSize : 30,
+ PageNumber : this.PageNumber,
+ MinIntegrity : MinIntegrity,
+ MaxIntegrity : MaxIntegrity
+ }
+ this.http.get('/api/WaterSources',{params:params}).subscribe((data:any) => {
+ this.addWaterListData = data
+ this.dataLength = data.totalCount
+ console.log('所有水源',data)
+ })
+ }
+ //搜索
+ searchList(){
+ console.log(this.searchForm)
+ this.getAllWaterData()
+ }
+ //分页事件
+ chagePage(e){
+ this.PageNumber = e.pageIndex+1
+ this.getAllWaterData()
+ }
+ //js乘法
+ accMul(arg1,arg2,fix) {
+ if(!parseInt(fix)==fix)
+ {
+ return;
+ }
+ var m=0,s1=arg1.toString(),s2=arg2.toString();
+ try{m+=s1.split(".")[1].length}catch(e){}
+ try{m+=s2.split(".")[1].length}catch(e){}
+ if(m>fix){
+ return (Math.round(Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m-fix))/Math.pow(10,fix));
+ }else if(m<=fix){
+ return (Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)).toFixed(fix);
+ }else{
+ return (arg1*arg2).toFixed(fix).toString();
+ }
+ }
+ //点击水源列表
+ selectedLiIndex:any
+ clickWaterLi(item,index){
+ console.log(item)
+ if(this.selectedLiIndex != index){
+ this.selectedLiIndex = index
+ this.clearData()
+ this.selectedWaterTypeIndex = item.waterSourceType//点击的水源类型
+ this.waterData = item
+ item.waterSourceType == 0 && item.detailData ? this.fireCockData = JSON.parse(item.detailData) : null
+ item.waterSourceType == 1 && item.detailData ? this.poolData = JSON.parse(item.detailData) : null
+ item.waterSourceType == 2 && item.detailData ? this.naturalWaterData = JSON.parse(item.detailData) : null
+ this.positionLngLat = item.location
+ if(this.newPositionMarker){
+ this.map.remove(this.newPositionMarker);
+ }
+ if(item.location.x){//如果已经标注单位坐标
+ console.log('开始标注')
+
+ this.map.setCenter([item.location.x,item.location.y]);
+ this.newPositionMarker = new AMap.Marker({
+ position: [item.location.x,item.location.y],
+ content: this.newPositionMarkerContent,
+ offset: new AMap.Pixel(-15, -18)
+ })
+ // 将 markers 添加到地图
+ this.map.add(this.newPositionMarker);
+ }
+ }
+ }
+ //完整度颜色
+ integrity(width){
+ let _this = this
+ let style:any = {}
+ style.width = width +'%';
+ if(width < 30){
+ style.background = '#FF5D4A'
+ }
+ if(width >= 30 && width < 60){
+ style.background = '#FFDD00'
+ }
+ if(width >= 60){
+ style.background = '#5CD64E'
+ }
+ return style
+ }
+ //删除某条水源
+ deleteWater(item,e){
+ e.stopPropagation()
+ let isDelete = window.confirm('确定要删除此条水源信息吗')
+ if(isDelete){
+ this.http.delete(`/api/WaterSources/${item.id}`).subscribe(data => {
+ const config = new MatSnackBarConfig();
+ config.verticalPosition = 'top';
+ config.duration = 3000
+ this.addWaterListData.items = this.addWaterListData.items.filter(x => {
+ return item.id != x.id
+ })
+ this.dataLength = this.dataLength - 1
+ // this.getAllWaterData()
+ this.snackBar.open('删除成功','确定',config);
+ })
+ }
+ }
+ waterData:any = {
+ id:null,
+ name:'',
+ administrativeRegion:'',//行政区
+ governmentLevel:'',//水源归属
+ village:'',//所属单位(小区)
+ address:'',
+ location:{x:'',y:''},
+ detailData:'',//详细信息
+ createTime:'',
+ creatorId:''
+ }
+ //消火栓详细信息
+ fireCockData:any = [
+ {PropertyName :'可用状态',PropertyValue:''},
+ {PropertyName :'放置形式',PropertyValue:''},
+ {PropertyName :'管网形式',PropertyValue:''},
+ {PropertyName :'管网直径',PropertyValue:''},
+ {PropertyName :'管网压力类型',PropertyValue:''},
+ {PropertyName :'管网压力范围',PropertyValue:''},
+ {PropertyName :'接口形式',PropertyValue:''},
+ {PropertyName :'接口口径',PropertyValue:''},
+ {PropertyName :'最大流量',PropertyValue:''},
+ {PropertyName :'供水单位',PropertyValue:''},
+ {PropertyName :'联系方式',PropertyValue:''},
+ {PropertyName :'备注',PropertyValue:''}
+ ]
+ //消防水池详细信息
+ poolData:any = [
+ {PropertyName :'可用状态',PropertyValue:''},
+ {PropertyName :'储水量',PropertyValue:''},
+ {PropertyName :'取水最大流量',PropertyValue:''},
+ {PropertyName :'进水流量',PropertyValue:''},
+ {PropertyName :'同时取水车辆数',PropertyValue:''},
+ {PropertyName :'水源标高差',PropertyValue:''},
+ {PropertyName :'补水时间',PropertyValue:''},
+ {PropertyName :'管网形式',PropertyValue:''},
+ {PropertyName :'供水单位',PropertyValue:''},
+ {PropertyName :'联系方式',PropertyValue:''},
+ {PropertyName :'备注',PropertyValue:''}
+ ]
+ //天然水源详细信息
+ naturalWaterData:any = [
+ {PropertyName :'可用状态',PropertyValue:''},
+ {PropertyName :'天然水源类型',PropertyValue:''},
+ {PropertyName :'有无消防码头',PropertyValue:''},
+ {PropertyName :'水质',PropertyValue:''},
+ {PropertyName :'同时取水车辆数',PropertyValue:''},
+ {PropertyName :'水源标高差',PropertyValue:''},
+ {PropertyName :'有无枯水期',PropertyValue:''},
+ {PropertyName :'枯水期时间',PropertyValue:''},
+ {PropertyName :'供水单位',PropertyValue:''},
+ {PropertyName :'联系方式',PropertyValue:''},
+ {PropertyName :'备注',PropertyValue:''}
+ ]
+ //清空表单数据
+ clearData(){
+ this.waterData = {
+ id:null,
+ name:'',
+ administrativeRegion:'',//行政区
+ governmentLevel:'',//水源归属
+ village:'',//所属单位(小区)
+ address:'',
+ location:{x:'',y:''},
+ detailData:'',//详细信息
+ createTime:'',
+ creatorId:''
+ }
+ this.fireCockData = [
+ {PropertyName :'可用状态',PropertyValue:''},
+ {PropertyName :'放置形式',PropertyValue:''},
+ {PropertyName :'管网形式',PropertyValue:''},
+ {PropertyName :'管网直径',PropertyValue:''},
+ {PropertyName :'管网压力类型',PropertyValue:''},
+ {PropertyName :'管网压力范围',PropertyValue:''},
+ {PropertyName :'接口形式',PropertyValue:''},
+ {PropertyName :'接口口径',PropertyValue:''},
+ {PropertyName :'最大流量',PropertyValue:''},
+ {PropertyName :'供水单位',PropertyValue:''},
+ {PropertyName :'联系方式',PropertyValue:''},
+ {PropertyName :'备注',PropertyValue:''}
+ ]
+
+ this.poolData = [
+ {PropertyName :'可用状态',PropertyValue:''},
+ {PropertyName :'储水量',PropertyValue:''},
+ {PropertyName :'取水最大流量',PropertyValue:''},
+ {PropertyName :'进水流量',PropertyValue:''},
+ {PropertyName :'同时取水车辆数',PropertyValue:''},
+ {PropertyName :'水源标高差',PropertyValue:''},
+ {PropertyName :'补水时间',PropertyValue:''},
+ {PropertyName :'管网形式',PropertyValue:''},
+ {PropertyName :'供水单位',PropertyValue:''},
+ {PropertyName :'联系方式',PropertyValue:''},
+ {PropertyName :'备注',PropertyValue:''}
+ ]
+ this.naturalWaterData = [
+ {PropertyName :'可用状态',PropertyValue:''},
+ {PropertyName :'天然水源类型',PropertyValue:''},
+ {PropertyName :'有无消防码头',PropertyValue:''},
+ {PropertyName :'水质',PropertyValue:''},
+ {PropertyName :'同时取水车辆数',PropertyValue:''},
+ {PropertyName :'水源标高差',PropertyValue:''},
+ {PropertyName :'有无枯水期',PropertyValue:''},
+ {PropertyName :'枯水期时间',PropertyValue:''},
+ {PropertyName :'供水单位',PropertyValue:''},
+ {PropertyName :'联系方式',PropertyValue:''},
+ {PropertyName :'备注',PropertyValue:''}
+ ]
+ }
+ //新增水源
+ selectedWaterTypeIndex:any//新增水源类型
+ addWater(){
+ const dialogRef = this.dialog.open(AddWater, {
+ data: {},
+ id:'addWater'
+ });
+ dialogRef.afterClosed().subscribe(
+ data=>{
+ if(typeof data === 'number' && !isNaN(data)){
+ this.selectedWaterTypeIndex = data
+ this.newPositionMarker ? this.map.remove(this.newPositionMarker) : null
+ this.positionLngLat.x = 0
+ this.positionLngLat.y = 0
+ this.map.setCity('上海市');
+ this.clearData()
+ }
+ }
+ );
+ }
+ //保存水源
+ save(){
+ if(!this.waterData.name){
+ alert('名称必填')
+ return
+ }
+ this.selectedWaterTypeIndex == '0' ? this.waterData.detailData = JSON.stringify(this.fireCockData) : null
+ this.selectedWaterTypeIndex == '1' ? this.waterData.detailData = JSON.stringify(this.poolData) : null
+ this.selectedWaterTypeIndex == '2' ? this.waterData.detailData = JSON.stringify(this.naturalWaterData) : null
+ this.waterData.waterSourceType = Number(this.selectedWaterTypeIndex)
+
+ this.waterData.createTime = new Date()
+
+
+ if(this.waterData.id){
+ if(this.atLastPositionLngLat.x){
+ this.waterData.location.x = this.atLastPositionLngLat.x
+ this.waterData.location.y = this.atLastPositionLngLat.y
+ }
+ this.http.put(`/api/WaterSources/${this.waterData.id}`,this.waterData).subscribe(data => {
+ const config = new MatSnackBarConfig();
+ config.verticalPosition = 'top';
+ config.duration = 3000
+ this.snackBar.open('修改成功','确定',config);
+ this.selectedLiIndex = 0
+ this.getAllWaterData()
+ })
+ }else{
+ this.waterData.location.x = this.atLastPositionLngLat.x
+ this.waterData.location.y = this.atLastPositionLngLat.y
+ this.http.post('/api/WaterSources',this.waterData).subscribe(data => {
+ const config = new MatSnackBarConfig();
+ config.verticalPosition = 'top';
+ config.duration = 3000
+ this.snackBar.open('保存成功','确定',config);
+ this.selectedLiIndex = 0
+ this.waterData = data
+ this.getAllWaterData()
+ })
+ }
+
+ }
+
+ map:any
+ placeSearch:any//构造地点查询类
+ isMapLabel:boolean = false //是否已经标记坐标
+ newPositionMarkerContent:any =
+ '
' +
+ '
' +
+ '
'
+ newPositionMarkerContentBtn:any =
+ '
'
+ //创建地图
+ newPositionMarker:any//坐标实例
+ createMap(){
+ this.map = new AMap.Map('container', {
+ zoom:12
+ })
+ this.map.setCity('上海市');
+ //输入提示
+ var autoOptions = {
+ input: "tipinput"
+ };
+ AMap.plugin(['AMap.PlaceSearch','AMap.AutoComplete'], ()=>{
+ let auto = new AMap.AutoComplete(autoOptions);
+ this.placeSearch = new AMap.PlaceSearch(); //构造地点查询类
+ auto.on("select", (e)=>{
+ this.newPositionMarker.setPosition([e.poi.location.lng,e.poi.location.lat])
+ this.positionLngLat = {x: e.poi.location.lng, y: e.poi.location.lat}
+ this.map.setCenter([e.poi.location.lng,e.poi.location.lat]); //设置地图中心点
+ });//注册监听,当选中某条记录时会触发
+
+ });
+
+ if(this.isMapLabel){//如果已经标注单位坐标
+ console.log('已标注单位位置')
+ // this.map.setCenter([this.unitinfo.location.x,this.unitinfo.location.y]);
+ // this.oldPositionMarker = new AMap.Marker({
+ // position: [this.unitinfo.location.x,this.unitinfo.location.y],
+ // content: this.newPositionMarkerContent,
+ // offset: new AMap.Pixel(-15, -18)
+ // })
+ // // 将 markers 添加到地图
+ // this.map.add(this.oldPositionMarker);
+ }else{
+ console.log('未标注单位位置')
+ // this.map.setCity('上海市');
+ }
+ }
+ //点击位置
+ isGisTopBox:boolean = false //
+ searchTitle:any = ''//
+
+ positionLngLat:any = {}//临时坐标点
+ atLastPositionLngLat:any = {}//最终坐标点
+ setPosition(){
+ if(!this.isGisTopBox){
+ this.isGisTopBox = true
+ this.newPositionMarker ? this.map.remove(this.newPositionMarker) : null
+ let center
+ if(this.newPositionMarker && this.atLastPositionLngLat.x){//如果已经标注单位坐标
+ console.log(1)
+ center = [this.atLastPositionLngLat.x, this.atLastPositionLngLat.y]
+ }else if(this.newPositionMarker && !this.atLastPositionLngLat.x && this.waterData.location.x){
+ console.log(2)
+ center = [this.waterData.location.x, this.waterData.location.y]
+ }else{
+ console.log(3)
+ center = this.map.getCenter(); //获取当前地图中心位置
+ }
+ this.newPositionMarker = new AMap.Marker({
+ draggable: true,
+ position: center,
+ content: this.newPositionMarkerContentBtn,
+ offset: new AMap.Pixel(-15, -18)
+ });
+ this.positionLngLat = {x: center.lng || center[0], y: center.lat || center[1]}
+ this.map.add(this.newPositionMarker);
+ this.isMapLabel = true
+ this.newPositionMarker.on('dragend', (e)=>{
+ this.positionLngLat = {x: e.lnglat.lng, y: e.lnglat.lat}
+ })
+ //点击确定
+ this.renderer2.listen(this.elementRef.nativeElement.querySelector('#setPositionOk'),'click',(event)=>{
+ this.isGisTopBox = false
+ this.map.remove(this.newPositionMarker)
+ this.newPositionMarker = new AMap.Marker({
+ position: [this.positionLngLat.x,this.positionLngLat.y],
+ content: this.newPositionMarkerContent,
+ offset: new AMap.Pixel(-15, -18)
+ });
+ this.atLastPositionLngLat = JSON.parse(JSON.stringify(this.positionLngLat))
+ this.map.add(this.newPositionMarker);
+ this.positionLngLat = this.atLastPositionLngLat
+ })
+ this.renderer2.listen(this.elementRef.nativeElement.querySelector('#setPositionClose'),'click',(event)=>{
+ this.isGisTopBox = false
+ this.map.remove(this.newPositionMarker)
+ if(this.positionLngLat.x && this.positionLngLat.x != 0 && !this.atLastPositionLngLat.x){//直接取消
+ this.map.remove(this.newPositionMarker)
+ this.positionLngLat = {}
+ this.atLastPositionLngLat = {}
+ }else{
+ this.newPositionMarker = new AMap.Marker({
+ position: [this.atLastPositionLngLat.x,this.atLastPositionLngLat.y],
+ content: this.newPositionMarkerContent,
+ offset: new AMap.Pixel(-15, -18)
+ });
+ this.map.setCenter([this.atLastPositionLngLat.x,this.atLastPositionLngLat.y]); //设置地图中心点
+ this.map.add(this.newPositionMarker);
+ this.positionLngLat = this.atLastPositionLngLat
+ }
+ })//取消
+ }
+
+ }
+}
+
+
+//新增水源弹出框
+@Component({
+ selector: 'addwater',
+ templateUrl: './addWater.html',
+ styleUrls: ['./water-collection.component.scss']
+})
+export class AddWater {
+
+ constructor(private http: HttpClient,public dialogRef: MatDialogRef
,@Inject(MAT_DIALOG_DATA) public data,public snackBar: MatSnackBar) {}
+
+
+ addList:any = [
+ {name:'消火栓',src:'/assets/images/市政消火栓.png'},
+ {name:'消防水池',src:'/assets/images/方形储水池.png'},
+ {name:'天然水源',src:'/assets/images/天然水源.png'}
+ ]
+ selectedWaterTypeIndex:any = 0
+ selecteAddType(item,key){
+ this.selectedWaterTypeIndex = key
+ }
+ ngOnInit(): void {
+
+ }
+
+ confirm(){
+ console.log(this.selectedWaterTypeIndex)
+ this.dialogRef.close(this.selectedWaterTypeIndex)
}
}
diff --git a/src/app/gis-management/gis-labeling/gis-labeling.component.ts b/src/app/gis-management/gis-labeling/gis-labeling.component.ts
index f2438e7..faa2a67 100644
--- a/src/app/gis-management/gis-labeling/gis-labeling.component.ts
+++ b/src/app/gis-management/gis-labeling/gis-labeling.component.ts
@@ -20,8 +20,8 @@ export class GisLabelingComponent implements OnInit {
titleList = [ {name:'重点单位',iconImg:'/assets/images/uniticon.png'},
{name:'水源',iconImg:'/assets/images/watericon.png'},
{name:'测量工具',iconImg:'/assets/images/distanceicon.png'},
- /* {name:'测面积',iconImg:'/assets/images/areaicon.png'}, */
- {name:'图层选择',iconImg:'/assets/images/coverageicon.png'}]
+ {name:'图层选择',iconImg:'/assets/images/coverageicon.png'}
+ ]
keyUnitList:any = []
waterList = [
{id:'0',name:'消火栓',selected:false},
@@ -312,7 +312,7 @@ export class GisLabelingComponent implements OnInit {
导航
全景漫游
三维场景
- 查看预案
+ 查看预案
分享