From c46b552e0bf6bfeb0c9b4896225bf372f98f9a06 Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Wed, 23 Dec 2020 14:59:52 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E6=94=B9]=E4=BF=AE=E6=94=B9=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE;=E4=B8=8A=E4=BC=A0=E5=89=8D=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=BC=A9=E7=95=A5=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/ui/basicinfo/basicinfo.component.html | 28 ++- src/app/ui/basicinfo/basicinfo.component.scss | 47 +++- src/app/ui/basicinfo/basicinfo.component.ts | 204 +++++++++++++----- .../collection-tools.component.ts | 12 +- src/assets/images/close.png | Bin 0 -> 521 bytes src/assets/images/newposition.png | Bin 0 -> 1426 bytes src/assets/images/ok.png | Bin 0 -> 561 bytes src/assets/images/oldposition.png | Bin 0 -> 1197 bytes src/styles.scss | 44 +++- 9 files changed, 267 insertions(+), 68 deletions(-) create mode 100644 src/assets/images/close.png create mode 100644 src/assets/images/newposition.png create mode 100644 src/assets/images/ok.png create mode 100644 src/assets/images/oldposition.png diff --git a/src/app/ui/basicinfo/basicinfo.component.html b/src/app/ui/basicinfo/basicinfo.component.html index 7dcf0e6..1d678ec 100644 --- a/src/app/ui/basicinfo/basicinfo.component.html +++ b/src/app/ui/basicinfo/basicinfo.component.html @@ -118,15 +118,31 @@ -
+
-
-

请输入单位名称:

- -

(已标注)

-

(未标注)

+ +
+
+ + 经度 : + +
+ {{markerPosition.x || '暂未标注'}} +
+
+
+ + 纬度 : + +
+ {{markerPosition.y || '暂未标注'}} +
+
+
+ place 位置 +
diff --git a/src/app/ui/basicinfo/basicinfo.component.scss b/src/app/ui/basicinfo/basicinfo.component.scss index 585e67f..bff8fa3 100644 --- a/src/app/ui/basicinfo/basicinfo.component.scss +++ b/src/app/ui/basicinfo/basicinfo.component.scss @@ -84,10 +84,51 @@ position: absolute; left: 0; top: 0; - p{ - - } } + .gistopbox{ + position: absolute; + + box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16); + border-radius: 4px; + left: 5%; + top: 10px; + width: 90%; + height:46px; + background: #FFFFFF; + display: flex; + justify-content: space-around; + align-items: center; + cursor: default;; + .positionItem{ + width: 30%; + height: 35px; + display: flex; + align-items: center; + .itemNum{ + background: #F2F2F2; + box-sizing: border-box; + padding-left: 10px; + width: 80%; + height: 32px; + line-height: 32px; + margin-left: 5px; + border-radius: 4px; + } + } + .setPosition{ + cursor: pointer; + width: 15%; + height: 32px; + background: #2196F3; + color: #fff; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + } + + + } } } } diff --git a/src/app/ui/basicinfo/basicinfo.component.ts b/src/app/ui/basicinfo/basicinfo.component.ts index e3371b1..412ac0b 100644 --- a/src/app/ui/basicinfo/basicinfo.component.ts +++ b/src/app/ui/basicinfo/basicinfo.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, Inject ,ViewChild} from '@angular/core'; +import { Component, OnInit, Inject ,ViewChild, Renderer2, ElementRef} from '@angular/core'; import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; import { FlatTreeControl } from '@angular/cdk/tree'; import { HttpClient,HttpHeaders, HttpEventType } from '@angular/common/http'; @@ -84,74 +84,176 @@ export class BasicinfoComponent implements OnInit { buildingCustomData:any //存储当前建筑的自定义信息 allunittype: any //所有单位类型 allorganizing:any = [] //所有组织机构 - constructor(private http: HttpClient, private tree: TreeService, private sanitizer: DomSanitizer, public dialog: MatDialog,public snackBar: MatSnackBar) { } + constructor(private elementRef: ElementRef,public renderer2: Renderer2,private http: HttpClient, private tree: TreeService, private sanitizer: DomSanitizer, public dialog: MatDialog,public snackBar: MatSnackBar) { } - isMapLabel:boolean + ngOnInit(): void { this.getallunittype() this.getorganization() - // this.getunitinfo() this.getunitallbuilding() - - } - + + isMapLabel:boolean //地图标注位置 - marker:any//单位点标记 markerPosition:any = {x: 0, y: 0}//单位坐标 + map:any //地图实例 + isGisTopBox:boolean = false//点击位置按钮 + oldPositionMarker:any //旧位置marker实例 + newPositionMarker:any //新位置marker实例 + + newPositionMarkerContent:any = + '
' + + ' ' + + '
' + newPositionMarkerContentBtn:any = + '
' + + ' ' + + '
|
' + + '
' + oldPositionMarkerContent:any = + '
' + + ' ' + + '
' + //初始化地图 labelGis(){ - var map = new AMap.Map('container', { + this.map = new AMap.Map('container', { zoom:12 }) - if(this.isMapLabel){ - this.marker = new AMap.Marker({ - position: [this.unitinfo.location.x,this.unitinfo.location.y], // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9] - draggable: true - }); - map.add(this.marker); - map.setFitView(); - this.marker.on('dragging', (e)=>{ - this.markerPosition = {x: e.lnglat.lng, y: e.lnglat.lat} + this.map.on('complete', () => { + this.isGisTopBox = true + }); + 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('上海市'); } - - //输入提示 - var autoOptions = { - input: "tipinput" - }; - AMap.plugin(['AMap.PlaceSearch','AMap.AutoComplete'], () =>{ - var auto = new AMap.AutoComplete(autoOptions); - var placeSearch = new AMap.PlaceSearch({ - // map: map - // pageSize: 5, // 单页显示结果条数 - // pageIndex: 1 // 页码 - }); //构造地点查询类 - auto.on("select", (e)=>{ - placeSearch.search(e.poi.name, (status, result) => { - if(this.marker){ - map.remove(this.marker); - } - this.isMapLabel = true - // 查询成功时,result即对应匹配的POI信息 - var poi = result.poiList.pois[0]; - this.markerPosition = {x: poi.location.lng, y: poi.location.lat} - this.marker = new AMap.Marker({ - position: poi.location, // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9] - title: poi.name, - draggable: true - }); - map.add(this.marker); - map.setFitView(); - this.marker.on('dragend', (e)=>{ - this.markerPosition = {x: e.lnglat.lng, y: e.lnglat.lat} - }) + } + //点击位置按钮 + setPosition(){ + this.isGisTopBox = false + if(this.isMapLabel){//如果已经标注单位坐标 + console.log('已标注单位位置') + + if(this.oldPositionMarker){ + this.oldPositionMarker.setContent(this.oldPositionMarkerContent) + } + if(this.newPositionMarker){ + this.newPositionMarker.setContent(this.oldPositionMarkerContent) + } + + this.newPositionMarker = new AMap.Marker({ + draggable: true, + position: [this.markerPosition.x,this.markerPosition.y], + content: this.newPositionMarkerContentBtn, + offset: new AMap.Pixel(-15, -18) + }); + this.map.add(this.newPositionMarker); + + + let markerPosition + if(this.markerPosition.x && this.markerPosition.x != 0){ + markerPosition = {x: this.markerPosition.x,y: this.markerPosition.y} + }else{ + markerPosition = {x: this.map.getCenter().lng,y: this.map.getCenter().lat} //获取当前地图中心位置 + } + this.newPositionMarker.on('dragend', (e)=>{ + markerPosition = {x: e.lnglat.lng, y: e.lnglat.lat} + }) + //点击确定 + this.renderer2.listen(this.elementRef.nativeElement.querySelector('#setPositionOk'),'click',(event)=>{ + this.map.clearMap(); + this.isGisTopBox = true + this.newPositionMarker = new AMap.Marker({ + position: [markerPosition.x,markerPosition.y], + content: this.newPositionMarkerContent, + offset: new AMap.Pixel(-15, -18) + }); + this.markerPosition = markerPosition + this.map.add(this.newPositionMarker); + }) + //点击取消 + this.renderer2.listen(this.elementRef.nativeElement.querySelector('#setPositionClose'),'click',(event)=>{ + this.isGisTopBox = true + this.map.clearMap(); + this.newPositionMarker = new AMap.Marker({ + position: [this.markerPosition.x,this.markerPosition.y], + content: this.newPositionMarkerContent, + offset: new AMap.Pixel(-15, -18) }); - });//注册监听,当选中某条记录时会触发 + this.map.add(this.newPositionMarker); + }) + + }else{ + console.log('未标注单位位置') + if(this.newPositionMarker){ + this.newPositionMarker.setContent(this.oldPositionMarkerContent) + } + let center + if(this.markerPosition.x && this.markerPosition.x != 0){ + center = [this.markerPosition.x,this.markerPosition.y] + }else{ + center = this.map.getCenter(); //获取当前地图中心位置 + this.map.setCenter(center); + } + + this.newPositionMarker = new AMap.Marker({ + draggable: true, + position: center, + content: this.newPositionMarkerContentBtn, + offset: new AMap.Pixel(-15, -18) + }); + this.map.add(this.newPositionMarker); + + let markerPosition + if(this.markerPosition.x && this.markerPosition.x != 0){ + markerPosition = {x: this.markerPosition.x,y: this.markerPosition.y} + }else{ + markerPosition = {x: this.map.getCenter().lng,y: this.map.getCenter().lat} //获取当前地图中心位置 + } + this.newPositionMarker.on('dragend', (e)=>{ + markerPosition = {x: e.lnglat.lng, y: e.lnglat.lat} + }) + //点击确定 + this.renderer2.listen(this.elementRef.nativeElement.querySelector('#setPositionOk'),'click',(event)=>{ + this.isGisTopBox = true + this.markerPosition = markerPosition + this.map.clearMap(); + this.newPositionMarker = new AMap.Marker({ + position: [this.markerPosition.x,this.markerPosition.y], + content: this.newPositionMarkerContent, + offset: new AMap.Pixel(-15, -18) + }); + this.map.add(this.newPositionMarker); + }) + this.renderer2.listen(this.elementRef.nativeElement.querySelector('#setPositionClose'),'click',(event)=>{ + this.map.clearMap(); + this.isGisTopBox = true + if(this.markerPosition.x && this.markerPosition.x != 0){//说明之前标过点 + this.newPositionMarker = new AMap.Marker({ + position: [this.markerPosition.x,this.markerPosition.y], + content: this.newPositionMarkerContent, + offset: new AMap.Pixel(-15, -18) + }); + this.map.add(this.newPositionMarker); + } + })//取消 + } + - }); } + + //获得所有单位类型 getallunittype() { this.http.get("/api/BuildingTypes/Simple").subscribe(data => { diff --git a/src/app/ui/collection-tools/collection-tools.component.ts b/src/app/ui/collection-tools/collection-tools.component.ts index 2bb3e4c..40b34c7 100644 --- a/src/app/ui/collection-tools/collection-tools.component.ts +++ b/src/app/ui/collection-tools/collection-tools.component.ts @@ -284,7 +284,7 @@ export class CollectionToolsComponent implements OnInit { this.startUploading(imgFile) } objectName:any //上传对象名 - startUploading (imgFile) { + async startUploading (imgFile) { let _this = this let file = imgFile || null //获取上传的文件 let fileSize = file.size || null //上传文件的总大小 @@ -293,13 +293,21 @@ export class CollectionToolsComponent implements OnInit { if (file && fileSize <= shardSize) { //上传文件<=5MB时 let formData = new FormData() formData.append("file",file) + await new Promise((resolve,reject)=>{ + this.http.delete(`/api/Objects/WebPlan2D/${companyId}/${file.name}?x-oss-process=image/resize,m_fixed,h_100,w_100`).subscribe(data=>{ + console.log('删除缩略图成功') + resolve('删除缩略图成功') + }) + }) this.http.post(`api/Objects/WebPlan2D/${companyId}`,formData).subscribe((data:any)=>{ this.objectName = data.objectName const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 this.snackBar.open('上传成功','确定',config) - + // this.http.delete(`/api/Objects/WebPlan2D/${this.objectName}?x-oss-process=image/resize,m_fixed,h_100,w_100`).subscribe(data=>{ + // console.log('删除缩略图成功') + // }) //在原始素材对象和需要循环图片的对象中分别push最新上传的图片 let imgObj = { "Tag": null, diff --git a/src/assets/images/close.png b/src/assets/images/close.png new file mode 100644 index 0000000000000000000000000000000000000000..c33434e15b7e4463fd5b38ba5b9d2be791771102 GIT binary patch literal 521 zcmV+k0`~ohP)U1r1`v$#cO75(5C9m!|{DF(5sr8{s3%F1Z7`VIlJ5*sl5Si zly>g{8{w;}HMiUk5A2lqFMo?Hp?8i_CyS5ObE`{Pr7D`!GDb)~_)Ytl;HCKYIhh-0iD+km5 z@#!!L2U+#hWgFoS$cczq5*k@&BFrnYwyYBVMtYQM$QU#>56dbW9X7kT3+Q|1lzHH& z{IpRC;KY*cx$4KQLC+x3(_E-8`4&@*ciKB@#0Gd3DWfuxa;Ch0u|^?qF5WyogV8bs zi;VYd*i(qUL2#OhO=NHG6Kv=HuUms1H#^YB|N84Wb$dsRhZ+t$sx`Oc;owz1^!SRS zG|1ZSUkzAe%axfsU=t<}u7KA_uaGTa!z(~^FnISK#B@e1*z00000 LNkvXXu0mjfnb7Zt literal 0 HcmV?d00001 diff --git a/src/assets/images/newposition.png b/src/assets/images/newposition.png new file mode 100644 index 0000000000000000000000000000000000000000..98bf1bb148f1027506d408b138c181c46909a509 GIT binary patch literal 1426 zcmV;D1#S9?P)=Z@000G9NklymgFHJ2`F*Puj)tuQTrSVJX<`TCq#`u}3nYJ=h z%M??Xmr8AHc|~)QCRyIlIYo!2f;SXTdp-Z>fBpEOw!V$=pYy%vea?G1?|DB(ZJumB zfG~!j=ngyuv;pd)DMxV$%_(3TnmlHz@=z*OjRGz`4#+~$HI$+U?=@98C_s}#y4r8I zCO9-(#}dwJpl_{U!Gtu6P-K#>Zu!3sgu3)#;CmF!EaAr+LQ*s&c7U!ep=EvZru;Vi zUJjd2LHr zEgL{WYZ%_nY-n*YxDG<)T_5;4su;j5b=I2oKy!329P9<^$;&4i!{#J7b_Hhdg3{|X zJ31;7J{kxyO<`0%l=)hHglhVcp>Bv416`);QORKxon+XiG3-r&#lOMF2kI8p%s!CT z9r}Fh2i7ddsU~}%E}e;DzU9)L$?)BuzQFv^W={TsJ>z1bvI>4W0|Fi&3xo6gTwP59 z8LCK;s~Z64faaoXZUS^_4imQ;)ss4#|EZmzV{@3h$BfTaLci89p(8{$g^DT@_spH} z_Z?XCf(gyMeLh>N_LmvRo82I- z(2P%A^R-`MeBfnxdZmw>s|lyISh@yCktI{RK|(8deVea>iZn>x3|mX#+BBH59qNa{ z`vaiu7xpp#Y8dP*gJtdwyCo+oT>1oxXqnhF2EHzV^~Ze`6^w>ee;82ivkM;OZS% z{})WzVPwR`g%hCtmp(>p5U94MZoLJ~mcZ@mK$p$v38|e;yycMuv)ub!Ti8AhVwS^6 zuh>d)x$p)w`P4_>9)VU!@sVkN=%6;RakR(Mh%nC)D7pY$T9}yD5n3qFV?dm!_IK}t zjBaG&B2`2zU0DKo$Kj<|c%_T6+zx8v-qixl1I7#Bhq17t1lD>L067*Jy zSB-$(=RIfK9ocw+K8ZrE9*2K%5a@deAfQ*fcoHcq0cQ7wXVyVcS#YRLaX3plQKsPM z>Ysrj^3%Tz%AA0w_k_<6!|dIrfXs=9!~(N-E8%*7IWC$7S*U2rDECEhL)=G$H3 zn%mqXmP{qLnfnsAJmu0mP`C?UV7u~TsVU%>-K|y&X;)gARz+?fn|4LI#CbSXmWA={ zk+O9(;T!?vj(zw@Rwu>4$o7GaS@9)vap#{1Xi=>7B{ZT3Q`N)HDOfi+4aMTRB#y1D z^ue0`%v1-xWrFv;E?t1aU3LEhUNar1TIjDKICP zF+h>kJJpd~4D=7y-3Ml`zvcxxp8FK~CsvIc(40ZKzIRobom|ZyP_oLU6H#mg!b4gs zUvXg!WQMY7RE>tvPy>Dq#qtpH*U=2ZsSbtOTHV{6vfYRtA-)z7^2bv2BfBCWME)$r%EMQNKM3GGqAT(GcYhPv9L8L{Ra@SRMb>L z38(`@GBU6_u$93@X~r}|LB$t6r?K3`iLuA~@q72)cYPia@#!u7#!@!DMQBez+$V5b zg$eKzf^P!vCQdj|*i#jZ@iFBc1yOwVrh2sLC-qPonv*|rh z+nxy;cZ#>~_6Ftldizqj0-)s-s)=D&aDi0p)n+*WTHhaUL0C^z*~IXqsM@ExfaRN+ z6Ch@06Q@b{dX9A6v-3N&ei$Y^)RI&uK;@70U!|Bi2KX?@)nL(dj6)K|{{;U#$Ic_oKjhUm;i#< zujLy%C1*3YfVq|r)v#MzX}pbt`D+u|asb%OEok!_cE0gW9gyPO7l8MsjmB?z>ZM#k zRr0lJXAk;70WA{mBjYse{{DOUA!t43)=Z@000DZNkl=ujYolK?3Bp^dPg5XtP>12w=_)*|X z;B8^?<3x8{L1i12NOl6ZdjxY6d!Kw7MF~Sr<~UFpVikftKw(nYKNs>Ig4{Zou@wBX z4J+0QS3)qj9|pdF*q`b8B@wc?Uo7S~J0lHL26-4CO+Y{k`EsG?c_`d8ruYC1AA{H* zApDRu8*-LIZmlt>Z!4UC2jYV%49QspD}_a8;xGv+f8`cNX+@B&nf_uZ-49nH(DM?E zq!~LtoY`eC=XD5FK-U^$Sc-zgxIr|G@)+67VOIJ6mb4JII}7})UaGw92K&K911uK%+hzR zdj$ej@cVkBBEJFVz6GaB%(voCM8hXwV4vX@H$gN4e{Hr)9}pIGLWbD@`gwr=dblxY zLX*g0!DBFQ8$@!=`5>CP=VedD;#v)Mq7M!NpHt;PdGLRjDbc zhpx3LeUdj7sA^s2nN)O`ctJC?m)kwvt3YM)q-qFG7J?kk>}k9oWIR2* zzH8vpuJrJ#=5o_Hh~(KlZBd{DfTDO@a zW9a{EnhL2N3L4T2Db5QD^jY9t^JJceoSNx-GQ~UK@(*^b8}Er zM8+}~l3R0-bYf9v8h)5>^*W-+*#^BnnbLzW(go+9GRC;K!PkVv%LcTKwMh1AVO4Se zPs1M}i!xC~w*i&-2ot`lqivkG>OjrZl6??uhn^Q<nwTvrAUng%|4-iTxsnE{bk2iM-`zOER_&BD@Kr6%W&w2&-= zNKU;nObyTsj>5`pfO=bM>vOHDNkMgC1*yY_TJiiIob4sXouZnPnPfBmwIwdfFpmS< zolnf6xF5JnSo|`Xah^c6$6+=C+w?RVPXh?<6-ziW8K9@|+Lg!<4G4BPLOn>FTCq%5 zyC?GOsV&qG0&2CG0bD?^+N*~N9a9F?p$<_y_V2SnShRU^&nEN_eS6v-XHWc|00000 LNkvXXu0mjfH{dFy literal 0 HcmV?d00001 diff --git a/src/styles.scss b/src/styles.scss index cd579dc..909b61d 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -80,10 +80,42 @@ table td.mat-footer-cell:last-of-type{ ::-webkit-scrollbar-thumb{ background-color: #999; } -.amap-logo{ - display: none; - opacity:0 !important; + +#setPosition{ + .custom-content-marker { + position: relative; + width: 29px; + height: 36px; + } + + .custom-content-marker img { + width: 100%; + height: 100%; + } + + .custom-content-marker .btnbox { + position: absolute; + left: -20px; + bottom: -36px; + width: 68px; + height: 30px; + background:#FFFFFF; + border-radius: 60px; + color: #EBEBEB; + display: flex; + justify-content: space-around; + box-sizing: border-box; + padding: 0 5px; + align-items: center; + img{ + width: 20px; + height: 20px; + cursor: pointer; + } + } + + .custom-content-marker .close-btn:hover{ + background: #666; + } } -.amap-copyright { - opacity:0; -} \ No newline at end of file +