Browse Source

[完善]修改bug

tangshan
邵佳豪 3 years ago
parent
commit
f3b86a5f7c
  1. 22
      src/app/gis-management/fire-facilities/fire-facilities.component.html
  2. 25
      src/app/plan-audit/fire-facilities/fire-facilities.component.html
  3. 21
      src/app/plan-audit/function-partition/function-partition.component.html
  4. 146
      src/app/plan-audit/function-partition/function-partition.component.ts
  5. 22
      src/app/plan-audit/plan-list/plan-list.component.html
  6. 2
      src/app/plan-audit/plan-list/plan-list.component.ts
  7. 2
      src/app/plan-audit/plan-record/plan-record.component.html

22
src/app/gis-management/fire-facilities/fire-facilities.component.html

@ -9,13 +9,13 @@
<div class="content">
<div id="firefacilities" *ngFor="let item of companyBuiltInGrouping;let key = index" style="margin-top: 10px;">
<mat-accordion class="tableContent" >
<mat-accordion class="tableContent">
<mat-expansion-panel style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight ='40px' expandedHeight='40px' class="panelhead">
<mat-panel-title style="font-size: 14px;" >
<mat-expansion-panel-header collapsedHeight='40px' expandedHeight='40px' class="panelhead">
<mat-panel-title style="font-size: 14px;">
{{item.name}}
</mat-panel-title>
</mat-expansion-panel-header >
</mat-expansion-panel-header>
<div class="column" *ngFor="let items of item.facilityItems">
<div class="up">
<div class="left">
@ -29,24 +29,28 @@
<span style="margin-left: 25px;margin-top: 3%;">主要情况:{{items.details}}</span>
</div>
<div class="imgdown">
<span style="margin-left: 25px;color: #0080FF;"><a style="color: #0080FF;" href="javascript:void(0)" (click)='previewImg(items)'>查看图片</a></span>
<label style="float: right;margin-right: 10%;cursor:pointer" (click)='SwitchBoard(items)'><input style="margin-right: 5px;cursor:pointer" [(ngModel)]="items.expanded?down:open" readonly><img [src]="items.expanded?imgsrcdown:imgsrcopen" (click)='SwitchBoard(items)' ></label>
<span style="margin-left: 25px;color: #0080FF;"><a style="color: #0080FF;" href="javascript:void(0)"
(click)='previewImg(items)'>查看图片</a></span>
<label style="float: right;margin-right: 10%;cursor:pointer" (click)='SwitchBoard(items)'><input
style="margin-right: 5px;cursor:pointer" [(ngModel)]="items.expanded?down:open" readonly><img
[src]="items.expanded?imgsrcdown:imgsrcopen" (click)='SwitchBoard(items)'></label>
</div>
<div class="overflowTable" *ngIf="items.expanded">
<div class="detailsTable">
<table>
<tr *ngFor="let header of items.header">
<th >{{header}}</th>
<th>{{header}}</th>
<td *ngFor="let body of items.body">{{body[header]? body[header] : '暂无数据'}}</td>
</tr>
</table>
</div>
<div *ngFor="let tableMsg of items.loopTable" class="detailsTable">
<p style="text-align: center; font-size: 16px; margin: 5px 0;">楼层/区域名称: {{tableMsg.name? tableMsg.name: '暂无名称'}}</p>
<p style="text-align: center; font-size: 16px; margin: 5px 0;">楼层/区域名称: {{tableMsg.name? tableMsg.name:
'暂无名称'}}</p>
<table>
<tr *ngFor="let header of tableMsg.header">
<th >{{header}}</th>
<th>{{header}}</th>
<td *ngFor="let body of tableMsg.body">{{body[header]? body[header] : '暂无数据'}}</td>
</tr>
</table>

25
src/app/plan-audit/fire-facilities/fire-facilities.component.html

@ -9,13 +9,13 @@
<div class="content">
<div id="firefacilities" *ngFor="let item of companyBuiltInGrouping;let key = index" style="margin-top: 10px;">
<mat-accordion class="tableContent" >
<mat-accordion class="tableContent">
<mat-expansion-panel style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight ='40px' expandedHeight='40px' class="panelhead">
<mat-panel-title style="font-size: 14px;" >
<mat-expansion-panel-header collapsedHeight='40px' expandedHeight='40px' class="panelhead">
<mat-panel-title style="font-size: 14px;">
{{item.name}}
</mat-panel-title>
</mat-expansion-panel-header >
</mat-expansion-panel-header>
<div class="column" *ngFor="let items of item.facilityItems">
<div class="up">
<div class="left">
@ -29,24 +29,28 @@
<span style="margin-left: 25px;margin-top: 3%;">主要情况:{{items.details}}</span>
</div>
<div class="imgdown">
<span style="margin-left: 25px;color: #0080FF;"><a style="color: #0080FF;" href="javascript:void(0)" (click)='previewImg(items)'>查看图片</a></span>
<label style="float: right;margin-right: 10%;cursor:pointer" (click)='SwitchBoard(items)'><input style="margin-right: 5px;cursor:pointer" [(ngModel)]="items.expanded?down:open" readonly><img [src]="items.expanded?imgsrcdown:imgsrcopen" (click)='SwitchBoard(items)' ></label>
<span style="margin-left: 25px;color: #0080FF;"><a style="color: #0080FF;" href="javascript:void(0)"
(click)='previewImg(items)'>查看图片</a></span>
<label style="float: right;margin-right: 10%;cursor:pointer" (click)='SwitchBoard(items)'><input
style="margin-right: 5px;cursor:pointer" [(ngModel)]="items.expanded?down:open" readonly><img
[src]="items.expanded?imgsrcdown:imgsrcopen" (click)='SwitchBoard(items)'></label>
</div>
<div class="overflowTable" *ngIf="items.expanded">
<div class="detailsTable">
<table>
<tr *ngFor="let header of items.header">
<th >{{header}}</th>
<th>{{header}}</th>
<td *ngFor="let body of items.body">{{body[header]? body[header] : '暂无数据'}}</td>
</tr>
</table>
</div>
<div *ngFor="let tableMsg of items.loopTable" class="detailsTable">
<p style="text-align: center; font-size: 16px; margin: 5px 0;">楼层/区域名称: {{tableMsg.name? tableMsg.name: '暂无名称'}}</p>
<p style="text-align: center; font-size: 16px; margin: 5px 0;">楼层/区域名称: {{tableMsg.name? tableMsg.name:
'暂无名称'}}</p>
<table>
<tr *ngFor="let header of tableMsg.header">
<th >{{header}}</th>
<th>{{header}}</th>
<td *ngFor="let body of tableMsg.body">{{body[header]? body[header] : '暂无数据'}}</td>
</tr>
</table>
@ -54,9 +58,6 @@
</div>
</div>
</mat-expansion-panel>
</mat-accordion>
</div>

21
src/app/plan-audit/function-partition/function-partition.component.html

@ -9,11 +9,11 @@
<div class="content">
<div class="center" id="functionpartition">
<div class="center" id="functionpartition">
<div style="margin: 10px 0;">
<mat-accordion class="tableContent">
<mat-expansion-panel expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight ='40px' expandedHeight='40px' class="panelhead">
<mat-expansion-panel-header collapsedHeight='40px' expandedHeight='40px' class="panelhead">
<mat-panel-title style="font-size: 14px;">
单位功能分区
</mat-panel-title>
@ -34,31 +34,30 @@
</mat-accordion>
</div>
<div style="margin-bottom: 10px;" *ngFor="let item of allBuildingFunctionalZoning;let key = index">
<div style="margin-bottom: 10px;" *ngFor="let item of allBuilding;let key = index">
<mat-accordion class="tableContent">
<mat-expansion-panel >
<mat-expansion-panel expanded>
<mat-expansion-panel-header class="panelhead">
<mat-panel-title style="font-size: 14px;">
{{item.name}}
</mat-panel-title>
</mat-expansion-panel-header>
<div class="column" *ngFor="let item of companyFunctionalZoning">
<div class="column" *ngFor="let i of item.functionalZoning">
<div class="up">
<span style="color: #0080FF;">区域:{{item.region}}</span>
<span style="color: #0080FF;">区域:{{i.region}}</span>
</div>
<div class="areacenter">
<span>面积:{{item.area}}</span>
<span>面积:{{i.area}}</span>
</div>
<div class="down">
<span style="display: inline-block;">基本情况:{{item.details}}</span>
<span style="display: inline-block;">基本情况:{{i.details}}</span>
</div>
</div>
</mat-expansion-panel>
</mat-accordion>
</div>
</div>
</div>
</div>
</div>

146
src/app/plan-audit/function-partition/function-partition.component.ts

@ -2,7 +2,7 @@ import { Component, OnInit, Inject } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
import { Router,ActivatedRoute } from '@angular/router'
import { Router, ActivatedRoute } from '@angular/router'
@Component({
selector: 'app-function-partition',
@ -11,7 +11,7 @@ import { Router,ActivatedRoute } from '@angular/router'
})
export class FunctionPartitionComponent implements OnInit {
constructor(private router:Router,private route:ActivatedRoute,private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { }
constructor(private router: Router, private route: ActivatedRoute, private http: HttpClient, public dialog: MatDialog, public snackBar: MatSnackBar) { }
ngOnInit(): void {
this.companyId = this.unitId
@ -20,49 +20,54 @@ export class FunctionPartitionComponent implements OnInit {
}
displayedColumns: string[] = ['checked', 'region', 'measure', 'situation'];
unitId:any = sessionStorage.getItem('companyId')
unitId: any = sessionStorage.getItem('companyId')
companyId:any; //单位编号
companyFunctionalZoning:any=[]; //所有单位功能分区属性
selectFunctionalZoning:any=[]; //选中的单位功能分区属性
companyId: any; //单位编号
companyFunctionalZoning: any = []; //所有单位功能分区属性
selectFunctionalZoning: any = []; //选中的单位功能分区属性
//获得所有单位功能分区属性
getAllCompany () {
getAllCompany() {
let companyId = this.unitId
this.http.get('/api/CompanyFunctionalDivisions',{params:{
companyId:companyId
}}).subscribe((data:any)=>{
this.http.get('/api/CompanyFunctionalDivisions', {
params: {
companyId: companyId
}
}).subscribe((data: any) => {
this.companyFunctionalZoning = data
console.log(this.companyFunctionalZoning)
this.selectFunctionalZoning = []
})
}
//新建单位功能分区属性
addCompany () {
addCompany() {
let companyId = this.route.snapshot.queryParams.id
let data = {companyId:companyId, region:'', area:0, details:''}
let data = { companyId: companyId, region: '', area: 0, details: '' }
this.companyFunctionalZoning.push(data)
this.preservation()
}
//保存单位功能分区属性
preservation () {
preservation() {
let companyId = this.unitId
if (this.companyFunctionalZoning.length) {
this.http.post('/api/CompanyFunctionalDivisions/Batch',this.companyFunctionalZoning,{params:{
companyId:companyId
}}).subscribe(data=>{
this.http.post('/api/CompanyFunctionalDivisions/Batch', this.companyFunctionalZoning, {
params: {
companyId: companyId
}
}).subscribe(data => {
this.getAllCompany()
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('数据更新成功','确定',config);
this.snackBar.open('数据更新成功', '确定', config);
})
}
}
//单位功能分区checked选择
changeCompany (ele,e) {
changeCompany(ele, e) {
if (e.checked) {
this.selectFunctionalZoning.push(ele.id)
} else {
@ -71,23 +76,26 @@ export class FunctionPartitionComponent implements OnInit {
}
//删除单位功能分区属性
delete () {
delete() {
let companyId = this.unitId
if (this.selectFunctionalZoning.length) {
let isDelete = confirm('您确定要删除吗')
if (isDelete) {
this.http.post('/api/CompanyFunctionalDivisions/Batch',this.companyFunctionalZoning,{params:{
companyId:companyId
}}).subscribe(data=>{
this.http.post('/api/CompanyFunctionalDivisions/Batch', this.companyFunctionalZoning, {
params: {
companyId: companyId
}
}).subscribe(data => {
const options = {
headers: new HttpHeaders({'Content-Type': 'application/json',}),
body:this.selectFunctionalZoning}
this.http.delete(`/api/CompanyFunctionalDivisions/Batch`,options).subscribe(data=>{
headers: new HttpHeaders({ 'Content-Type': 'application/json', }),
body: this.selectFunctionalZoning
}
this.http.delete(`/api/CompanyFunctionalDivisions/Batch`, options).subscribe(data => {
this.getAllCompany()
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('数据更新成功','确定',config);
this.snackBar.open('数据更新成功', '确定', config);
})
})
}
@ -95,7 +103,7 @@ export class FunctionPartitionComponent implements OnInit {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请选择单位功能分区','确定',config);
this.snackBar.open('请选择单位功能分区', '确定', config);
}
}
@ -104,16 +112,18 @@ export class FunctionPartitionComponent implements OnInit {
//建筑功能分区↓
allBuilding:any = []; //所有建筑
allBuildingFunctionalZoning:any = []; //所有建筑的功能分区
selectBuildingFunctionalZoning:any = []; //选中的建筑的功能分区
allBuilding: any = []; //所有建筑
allBuildingFunctionalZoning: any = []; //所有建筑的功能分区
selectBuildingFunctionalZoning: any = []; //选中的建筑的功能分区
//获得所有建筑
getAllBuilding () {
getAllBuilding() {
let companyId = this.unitId
this.http.get(`/api/Buildings`,{params:{
companyId:companyId
}}).subscribe((data:any)=>{
this.http.get(`/api/Buildings`, {
params: {
companyId: companyId
}
}).subscribe((data: any) => {
if (data.length) {
this.allBuilding = data
this.allBuilding.forEach(element => { //为每个建筑添加一个 功能分区对象
@ -125,55 +135,57 @@ export class FunctionPartitionComponent implements OnInit {
}
//获得所有建筑的功能分区
getAllBuildingFunctionalZoning () {
getAllBuildingFunctionalZoning() {
this.selectBuildingFunctionalZoning = []
this.allBuildingFunctionalZoning = []
this.allBuilding.forEach(element => {
let data={buildingId: element.id}
this.http.get(`/api/BuildingFunctionalDivisions`,{params:data}).subscribe((data:any)=>{
let data = { buildingId: element.id }
this.http.get(`/api/BuildingFunctionalDivisions`, { params: data }).subscribe((data: any) => {
if (data.length) {
element.functionalZoning = data
this.selectBuildingFunctionalZoning.push([]) //拥有建筑功能分区的提前push空数组
this.allBuildingFunctionalZoning.push(element) }
this.allBuildingFunctionalZoning.push(element)
}
})
});
console.log(this.allBuilding)
}
//封装函数刷新当前建筑功能分区
updateCurrent (e,index) {
let data= {buildingId: e.id}
this.http.get(`/api/BuildingFunctionalDivisions`,{params:data}).subscribe((data:any)=>{
updateCurrent(e, index) {
let data = { buildingId: e.id }
this.http.get(`/api/BuildingFunctionalDivisions`, { params: data }).subscribe((data: any) => {
this.selectBuildingFunctionalZoning[index] = []
this.allBuildingFunctionalZoning[index].functionalZoning = data
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('数据更新成功','确定',config);
this.snackBar.open('数据更新成功', '确定', config);
})
}
//创建建筑功能分区
addPartition () {
addPartition() {
}
//创建建筑功能分区属性
addBuilding (e,index) {
let data = {buildingId:e.id, region:'', area:0, details:''}
this.http.post('/api/BuildingFunctionalDivisions',data).subscribe(data=>{
this.preservationBuilding(e,index)
addBuilding(e, index) {
let data = { buildingId: e.id, region: '', area: 0, details: '' }
this.http.post('/api/BuildingFunctionalDivisions', data).subscribe(data => {
this.preservationBuilding(e, index)
})
}
//保存建筑功能分区属性
preservationBuilding (e,index) {
let data ={buildingId:e.id}
this.http.post(`/api/BuildingFunctionalDivisions/Batch`,this.allBuildingFunctionalZoning[index].functionalZoning,{params:data}).subscribe(data=>{
this.updateCurrent(e,index)
preservationBuilding(e, index) {
let data = { buildingId: e.id }
this.http.post(`/api/BuildingFunctionalDivisions/Batch`, this.allBuildingFunctionalZoning[index].functionalZoning, { params: data }).subscribe(data => {
this.updateCurrent(e, index)
})
}
//建筑功能分区checked选择
changeBuilding (ele,e,index) {
changeBuilding(ele, e, index) {
if (e.checked) {
this.selectBuildingFunctionalZoning[index].push(ele.id)
} else {
@ -182,25 +194,27 @@ export class FunctionPartitionComponent implements OnInit {
}
//删除建筑功能分区
deleteBuilding (e,index) {
deleteBuilding(e, index) {
if (this.selectBuildingFunctionalZoning[index].length) {
let isDelete = confirm('您确定要删除吗')
if (isDelete) {
let data ={buildingId:e.id}
this.http.post(`/api/BuildingFunctionalDivisions/Batch`,this.allBuildingFunctionalZoning[index].functionalZoning,{params:data}).subscribe(data=>{
let data = { buildingId: e.id }
this.http.post(`/api/BuildingFunctionalDivisions/Batch`, this.allBuildingFunctionalZoning[index].functionalZoning, { params: data }).subscribe(data => {
const options = {
headers: new HttpHeaders({'Content-Type': 'application/json',}),
body:this.selectBuildingFunctionalZoning[index],
params:{buildingId:e.id}}
this.http.delete(`/api/BuildingFunctionalDivisions/Batch`,options).subscribe(data=>{
this.selectBuildingFunctionalZoning[index].forEach((element,newIndex) => {
this.allBuildingFunctionalZoning[index].functionalZoning.splice(this.allBuildingFunctionalZoning[index].functionalZoning.findIndex(item=>item.id==element),1)
if (newIndex==this.selectBuildingFunctionalZoning[index].length-1) {
headers: new HttpHeaders({ 'Content-Type': 'application/json', }),
body: this.selectBuildingFunctionalZoning[index],
params: { buildingId: e.id }
}
this.http.delete(`/api/BuildingFunctionalDivisions/Batch`, options).subscribe(data => {
this.selectBuildingFunctionalZoning[index].forEach((element, newIndex) => {
this.allBuildingFunctionalZoning[index].functionalZoning.splice(this.allBuildingFunctionalZoning[index].functionalZoning.findIndex(item => item.id == element), 1)
if (newIndex == this.selectBuildingFunctionalZoning[index].length - 1) {
if (this.allBuildingFunctionalZoning[index].functionalZoning.length) {
this.updateCurrent(e,index)
this.updateCurrent(e, index)
} else {
this.selectBuildingFunctionalZoning.splice(index,1)
this.allBuildingFunctionalZoning.splice(index,1)}
this.selectBuildingFunctionalZoning.splice(index, 1)
this.allBuildingFunctionalZoning.splice(index, 1)
}
}
});
@ -212,7 +226,7 @@ export class FunctionPartitionComponent implements OnInit {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请选择建筑功能分区','确定',config);
this.snackBar.open('请选择建筑功能分区', '确定', config);
}
}

22
src/app/plan-audit/plan-list/plan-list.component.html

@ -1,8 +1,9 @@
<div class="planlist" id="planlist">
<div style="margin: 10px 0;" *ngIf="planType == 'zong'">
<div style="margin: 10px 0;" *ngIf="planType == 'zong' ||planType == 'all'">
<mat-accordion>
<mat-expansion-panel expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight ='40px' expandedHeight='40px' style="position: relative;padding-left:20px;background: #F2F9FF;">
<mat-expansion-panel-header collapsedHeight='40px' expandedHeight='40px'
style="position: relative;padding-left:20px;background: #F2F9FF;">
<mat-panel-title>
总平面图
</mat-panel-title>
@ -10,7 +11,9 @@
<div class="contant">
<div class="contantitem" *ngFor="let item of sitePlanItems">
<div>
<img (click)="openPlan(item,-1)" [src]="item.imageUrl ? item.imageUrl+'?x-oss-process=image/resize,m_fill,h_110,w_110' : '../../../assets/images/noImg.png'" alt="">
<img (click)="openPlan(item,-1)"
[src]="item.imageUrl ? item.imageUrl+'?x-oss-process=image/resize,m_fill,h_110,w_110' : '../../../assets/images/noImg.png'"
alt="">
</div>
<p>{{item.name}}</p>
</div>
@ -18,11 +21,12 @@
</mat-expansion-panel>
</mat-accordion>
</div>
<div *ngIf="planType == 'ceng'">
<div *ngIf="planType == 'ceng' ||planType == 'all'">
<div *ngFor="let item of allBuildings;let key=index" style="margin-bottom: 10px;">
<mat-accordion >
<mat-expansion-panel style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight ='40px' expandedHeight='40px' style="position: relative;padding-left:20px;background: #F2F9FF;">
<mat-accordion>
<mat-expansion-panel expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight='40px' expandedHeight='40px'
style="position: relative;padding-left:20px;background: #F2F9FF;">
<mat-panel-title>
{{item.name}}
</mat-panel-title>
@ -31,7 +35,9 @@
<div class="contant">
<div class="contantitem" *ngFor="let i of item.plandata">
<div>
<img (click)="openPlan(i,key)" [src]="i.imageUrl ? i.imageUrl+'?x-oss-process=image/resize,m_fill,h_110,w_110' : '../../../assets/images/noImg.png'" alt="">
<img (click)="openPlan(i,key)"
[src]="i.imageUrl ? i.imageUrl+'?x-oss-process=image/resize,m_fill,h_110,w_110' : '../../../assets/images/noImg.png'"
alt="">
</div>
<p>{{i.name}}</p>
</div>

2
src/app/plan-audit/plan-list/plan-list.component.ts

@ -35,6 +35,7 @@ export class PlanListComponent implements OnInit {
})
})
this.allBuildings = data
console.log('所有的建筑物',this.allBuildings)
})
}
//获取总平面图
@ -44,6 +45,7 @@ export class PlanListComponent implements OnInit {
this.http.get('/api/SitePlans',{params:params}).subscribe(data=>{
this.sitePlanItems = data
})
console.log('总平面图',this.sitePlanItems)
}
//打开采集工具
openPlan(item,index){

2
src/app/plan-audit/plan-record/plan-record.component.html

@ -159,7 +159,7 @@
</mat-tab>
<mat-tab label="平面图">
<ng-template matTabContent>
<app-plan-list></app-plan-list>
<app-plan-list [planType]="'all'"></app-plan-list>
</ng-template>
</mat-tab>
<mat-tab label="四周毗邻">

Loading…
Cancel
Save