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 @@
-
+
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-rlOMF2kI8p%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
+