From feb63ee208e279e3eb3a38ff030c10c9641e0285 Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Fri, 8 Jan 2021 17:03:33 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E6=B0=B4=E6=BA=90=E9=87=87?= =?UTF-8?q?=E9=9B=86=E9=A1=B5=E9=9D=A2ui=20+=20=E7=BB=84=E7=BB=87=E6=9C=BA?= =?UTF-8?q?=E6=9E=84=E5=A2=9E=E5=8A=A0=E4=B8=8B=E5=B1=9E=E6=9C=BA=E5=85=B3?= =?UTF-8?q?=20+=20=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=B8=8B=E5=B1=9E=E6=9C=BA=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fire-force/fire-force.component.html | 184 +++++++++++++- .../fire-force/fire-force.component.scss | 162 ++++++++++++ .../fire-force/fire-force.component.ts | 48 ++++ .../water-collection.component.html | 230 +++++++++++++++++- .../water-collection.component.scss | 206 ++++++++++++++++ .../water-collection.component.ts | 146 ++++++++++- .../key-unit-management.component.html | 3 +- src/app/ui/organization/addOffices.html | 13 + .../createorganization.component.html | 11 +- src/app/ui/organization/editOffices.html | 13 + .../organization/organization.component.html | 94 ++++--- .../organization/organization.component.scss | 38 +++ .../ui/organization/organization.component.ts | 124 ++++++++++ src/app/ui/ui.module.ts | 4 +- src/app/ui/usermanagement/createUser.html | 14 +- src/app/ui/usermanagement/editUser.html | 14 +- .../usermanagement.component.html | 5 + .../usermanagement.component.scss | 21 +- .../usermanagement.component.ts | 53 +++- src/styles.scss | 18 +- 20 files changed, 1324 insertions(+), 77 deletions(-) create mode 100644 src/app/ui/organization/addOffices.html create mode 100644 src/app/ui/organization/editOffices.html diff --git a/src/app/data-collection/fire-force/fire-force.component.html b/src/app/data-collection/fire-force/fire-force.component.html index 413184e..a89a269 100644 --- a/src/app/data-collection/fire-force/fire-force.component.html +++ b/src/app/data-collection/fire-force/fire-force.component.html @@ -1,8 +1,188 @@
- +
+
+
+ 列表过滤 +
+
+ +
+
+ +
+
+
+
+ 消防队 + 完整度 +
+
- +
+ {{item.name}} +
+
+ +
+
+
+
+
{{item.name}}
+
+
+ save保存 + open_in_browser提交审核 +
+
+
+
+

基本信息

+ + +
+ + + + * + 队伍类型: + + + + + + * + 队伍名称: + + + + + + + 值班电话: + + + + + + 辖区面积: + + + + + + + + 备注: + + + + + +
+

位置信息

+

人员数量

+

联系方式

+
+
+
+ 车辆装备 +
+
+ 相关资料 +
+
\ No newline at end of file diff --git a/src/app/data-collection/fire-force/fire-force.component.scss b/src/app/data-collection/fire-force/fire-force.component.scss index ef03c8d..bddd39c 100644 --- a/src/app/data-collection/fire-force/fire-force.component.scss +++ b/src/app/data-collection/fire-force/fire-force.component.scss @@ -5,14 +5,176 @@ 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; + .topbox{ + 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{ + .title{ + display: flex; + justify-content: space-between; + width: 100%; + box-sizing: border-box; + padding: 0 22px; + height: 36px; + line-height: 36px; + span{ + font-size: 14px; + font-weight: 500; + } + } + } } .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; + } + .detailsbox{ + width: 100%; + height:520px; + .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: 63%; + margin-left: 5px; + border: 1px solid #EBEBEB; + border-radius: 5px; + } + textarea{ + width: 90%; + margin-left: 5px; + height: 85%; + border: 1px solid #EBEBEB; + border-radius: 5px; + } + + } + } } \ No newline at end of file diff --git a/src/app/data-collection/fire-force/fire-force.component.ts b/src/app/data-collection/fire-force/fire-force.component.ts index 07d8d8e..faeb044 100644 --- a/src/app/data-collection/fire-force/fire-force.component.ts +++ b/src/app/data-collection/fire-force/fire-force.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +declare var AMap: any; @Component({ selector: 'app-fire-force', @@ -9,7 +10,54 @@ export class FireForceComponent implements OnInit { constructor() { } + isCheckedOfSearchDiv:boolean = true//列表过滤滑块 + slideChange(e){ + this.isCheckedOfSearchDiv = e.checked + } + searchForm:any = { + name:'', + integrityNum:'' + } + listIntegrityNum:any[] = [ + {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:'大队'}, + {id:3,name:'中队 (消防站)'}, + {id:4,name:'其他消防队伍'} + ] ngOnInit(): void { + setTimeout(() => { + this.createMap() + }, 0); + } + //搜索 + searchList(){ + console.log(this.searchForm) + } + map:any + //创建地图 + createMap(){ + this.map = new AMap.Map('map', { + zoom:12 + }) + this.map.setCity('上海市'); } + tabsList:any[] = [ + {type:0,name:'详情'}, + {type:1,name:'车辆装备'}, + {type:2,name:'相关资料'}, + ] + selectedBtn:number = 0//选择的tabs + clickTab(typeNum){ + this.selectedBtn = typeNum + } } diff --git a/src/app/data-collection/water-collection/water-collection.component.html b/src/app/data-collection/water-collection/water-collection.component.html index 413184e..c3e7cc6 100644 --- a/src/app/data-collection/water-collection/water-collection.component.html +++ b/src/app/data-collection/water-collection/water-collection.component.html @@ -1,8 +1,232 @@ -
+
- +
+
+
+ 列表过滤 +
+
+ +
+
+ +
+
+
+
+ 消防队 + 完整度 +
+
- +
+ {{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..4dc2a6c 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,220 @@ 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; + .topbox{ + 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{ + .title{ + display: flex; + justify-content: space-between; + width: 100%; + box-sizing: border-box; + padding: 0 22px; + height: 36px; + line-height: 36px; + span{ + font-size: 14px; + font-weight: 500; + } + } + } } .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; + } + + } + } } \ 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..d013c7d 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,7 @@ +import { Renderer2 } from '@angular/core'; +import { ElementRef } from '@angular/core'; import { Component, OnInit } from '@angular/core'; +declare var AMap: any; @Component({ selector: 'app-water-collection', @@ -7,9 +10,150 @@ import { Component, OnInit } from '@angular/core'; }) export class WaterCollectionComponent implements OnInit { - constructor() { } + constructor(private elementRef: ElementRef,public renderer2: Renderer2) { } + isCheckedOfSearchDiv:boolean = true//列表过滤滑块 + slideChange(e){ + this.isCheckedOfSearchDiv = e.checked + } + searchForm:any = { + name:'', + integrityNum:'' + } + listIntegrityNum:any[] = [ + {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 { + setTimeout(() => { + this.createMap() + }, 0); + } + //搜索 + searchList(){ + console.log(this.searchForm) + } + 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){//如果已经标注单位坐标 + center = [this.atLastPositionLngLat.x, this.atLastPositionLngLat.y] + }else{ + 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 + } + })//取消 + } + + } } diff --git a/src/app/key-unit/key-unit-management/key-unit-management.component.html b/src/app/key-unit/key-unit-management/key-unit-management.component.html index 9b78ece..fa0d039 100644 --- a/src/app/key-unit/key-unit-management/key-unit-management.component.html +++ b/src/app/key-unit/key-unit-management/key-unit-management.component.html @@ -1,5 +1,4 @@ - -
+