diff --git a/src/app/home/basic-info/unit-details/unit-details.component.html b/src/app/home/basic-info/unit-details/unit-details.component.html index 566f2f3..c5695c8 100644 --- a/src/app/home/basic-info/unit-details/unit-details.component.html +++ b/src/app/home/basic-info/unit-details/unit-details.component.html @@ -1,16 +1,24 @@
-
+
+
+ +
+
+ + +
+
-
+
单位信息
-
+ - 所属救援站 + 所属救援站 - - - - + + + + + + + + + + 所属大队 - - - - + + + + + + + + + + - 建筑类型 - - - + 单位类型 + + + @@ -84,7 +108,7 @@
-
+
@@ -369,7 +393,7 @@ style="font-family:宋体; font-size:9pt">)
无( --> - +

@@ -636,7 +660,7 @@ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:42.15pt">

+ [(ngModel)]="datas.KeyParts[0].keypartsposition" nz-input style="width:50px" type="text">

@@ -668,7 +694,8 @@ @@ -685,7 +712,8 @@ @@ -727,7 +758,8 @@ @@ -771,7 +803,8 @@

 

+ - + \ No newline at end of file diff --git a/src/app/home/basic-info/unit-details/unit-details.component.scss b/src/app/home/basic-info/unit-details/unit-details.component.scss index a318d01..85db2fa 100644 --- a/src/app/home/basic-info/unit-details/unit-details.component.scss +++ b/src/app/home/basic-info/unit-details/unit-details.component.scss @@ -3,15 +3,20 @@ text-align: left; box-sizing: 100%; - + .form{ + pointer-events: none; + } .top { text-align: left; margin: 20px; + display: flex; // border-bottom: 1px solid #eee; color: #000; - span { - color: #000D21; - margin-right: 16px; + div{ + width: 50%; + } + button{ + margin-right: 10px; } } .buttons{ diff --git a/src/app/home/basic-info/unit-details/unit-details.component.ts b/src/app/home/basic-info/unit-details/unit-details.component.ts index 339a99d..a883620 100644 --- a/src/app/home/basic-info/unit-details/unit-details.component.ts +++ b/src/app/home/basic-info/unit-details/unit-details.component.ts @@ -1,7 +1,9 @@ -import { Component, Renderer2, OnDestroy, AfterViewInit, ElementRef, OnInit, ViewChild } from '@angular/core'; +import { Component, Input, Renderer2, OnDestroy, AfterViewInit, ElementRef, OnInit, ViewChild } from '@angular/core'; import { CustomReuseStrategy } from 'src/app/CustomReuseStrategy'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { NzMessageService } from 'ng-zorro-antd/message'; import { Router } from '@angular/router'; +import { TreeService } from 'src/app/service/tree.service'; import { HttpClient } from '@angular/common/http'; import { asBlob } from 'html-docx-js-typescript' // 要保存这个docx文件推荐引入file-saver哦,你可以用npm i -D file-saver来安装 @@ -14,10 +16,11 @@ import { saveAs } from 'file-saver' export class UnitDetailsComponent implements OnInit { @ViewChild('box') box: ElementRef; - constructor(private router: Router,private fb: FormBuilder, private http: HttpClient, private renderer: Renderer2, private el: ElementRef) { - + constructor(private message:NzMessageService, private router: Router, private toTree: TreeService, private fb: FormBuilder, private http: HttpClient, private renderer: Renderer2, private el: ElementRef) { + } - datas= { + disableds=false + datas = { basicInfo: { name: "", addr: "", @@ -25,116 +28,121 @@ export class UnitDetailsComponent implements OnInit { total: "", height: "", layer: "", - structure:"", - coveredArea:"", - builtUpArea:"", - nature:"", - east:"", - south:"", - west:"", - north:"", - routeAndTime:"", + structure: "", + coveredArea: "", + builtUpArea: "", + nature: "", + east: "", + south: "", + west: "", + north: "", + routeAndTime: "", }, - facilities:{ - controlPosition:"", - poolNumbe:"", - poolPosition:"", - poolCapacity:"", - supplyMode:"", - waterSources:"", - waterSourcesPosition:"", - alarm:false, - spray:false, - broadcast:false, - smoke:false, - hydrantsNumber:"", - hydrantsPosition:"", - pumpNumber:"", - pumpRange:"", - pumpFlow:"", - pumpAdapter:"", - SprayPumpNumber:"", - SprayPumpRange:"", - SprayPumpFlow:"", - SprayPumpAdapter:"", - elevator:"", - stairs:"", - Export:"", - indoorHydrant:"", - standardIndoorHydrant:"" + facilities: { + controlPosition: "", + poolNumbe: "", + poolPosition: "", + poolCapacity: "", + supplyMode: "", + waterSources: "", + waterSourcesPosition: "", + system:{ + alarm: false, + spray: false, + broadcast: false, + smoke: false, + }, + hydrantsNumber: "", + hydrantsPosition: "", + pumpNumber: "", + pumpRange: "", + pumpFlow: "", + pumpAdapter: "", + SprayPumpNumber: "", + SprayPumpRange: "", + SprayPumpFlow: "", + SprayPumpAdapter: "", + elevator: "", + stairs: "", + Export: "", + indoorHydrant: "", + standardIndoorHydrant: "" }, - KeyParts:[ + KeyParts: [ { - keyparts:"222", - keypartsposition:"333", + keyparts: "", + keypartsposition: "", + buildingstructure: "", + useNature: "", + danger: "" }, { - keyparts:"222", - keypartsposition:"333", + keyparts: "", + keypartsposition: "", + buildingstructure: "", + useNature: "", + danger: "" } ], - tips:"" + tips: "" } - aaa = true - list={} validateForm!: FormGroup; - zhidui=[] - dadui=[] - jiuyuanzhan=[] - id="" + id = "" + integrity = 0 ngOnInit(): void { - console.log(this.datas.KeyParts); - - this.id=this.router['browserUrlTree'].queryParams.id - this.validateForm = this.fb.group({ - companyName: [null, [Validators.required]], - directorName: [null], - directorPhone: [null], - address: [null], - organizationId: [null], - relatedOrganizationId: [null], - useNature: [null], - buildingTypeId: [null] - }); - this.getAllOrganization() - this.getCompanies() + console.log(this.router); + this.id = this.router['browserUrlTree'].queryParams.id + if(this.router['browserUrlTree'].queryParams.pattern!="edit"){ + this.disableds=true + } + this.validateForm = this.fb.group({ + directorName: [null], + organizationId: [null, [Validators.required]], + relatedOrganizationId: [null], + buildingTypeId: [null] + + }); + console.log(this.validateForm); + this.getAllOrganization() + this.getCompanies() + this.getBuildingTypes() } listOfData: any[] = []; listOfData2: any[] = []; - - + + exportClick() { - let alarm="" - let spray="" - let broadcast="" - let smoke="" - if(this.datas.facilities.alarm){ - alarm="有" - }else{ - alarm="无" + let alarm = "" + let spray = "" + let broadcast = "" + let smoke = "" + if (this.datas.facilities.system.alarm) { + alarm = "有" + } else { + alarm = "无" } - if(this.datas.facilities.spray){ - spray="有" - }else{ - spray="无" + if (this.datas.facilities.system.spray) { + spray = "有" + } else { + spray = "无" } - if(this.datas.facilities.broadcast){ - broadcast="有" - }else{ - broadcast="无" + if (this.datas.facilities.system.broadcast) { + broadcast = "有" + } else { + broadcast = "无" } - if(this.datas.facilities.smoke){ - smoke="有" - }else{ - smoke="无" + if (this.datas.facilities.system.smoke) { + smoke = "有" + } else { + smoke = "无" } - let box=`

无( --> - +


无( --> - +


无( --> - +

@@ -646,7 +670,8 @@

钢结构

+ style="font-family:宋体; font-size:9pt">

@@ -656,7 +681,8 @@

存储漆类,油类

+ style="font-family:宋体; font-size:9pt">

油类,漆类易燃,有毒

+ style="font-family:宋体; font-size:9pt">

淬火油池

+ style="font-family:宋体; font-size:9pt">

@@ -695,7 +723,8 @@

厂区中部

+ style="font-family:宋体; font-size:9pt">

@@ -705,7 +734,8 @@

钢结构

+ style="font-family:宋体; font-size:9pt">

@@ -715,7 +745,8 @@

淬火

+ style="font-family:宋体; font-size:9pt">

高温

+ style="font-family:宋体; font-size:9pt">

+ let box = `
@@ -152,7 +160,7 @@ export class UnitDetailsComponent implements OnInit { @@ -183,7 +191,7 @@ export class UnitDetailsComponent implements OnInit { @@ -213,7 +221,7 @@ export class UnitDetailsComponent implements OnInit { @@ -255,22 +263,22 @@ export class UnitDetailsComponent implements OnInit { @@ -282,7 +290,7 @@ export class UnitDetailsComponent implements OnInit { @@ -303,7 +311,7 @@ export class UnitDetailsComponent implements OnInit { @@ -320,7 +328,7 @@ export class UnitDetailsComponent implements OnInit { @@ -362,7 +370,7 @@ export class UnitDetailsComponent implements OnInit { @@ -385,7 +393,7 @@ export class UnitDetailsComponent implements OnInit { @@ -431,7 +439,7 @@ export class UnitDetailsComponent implements OnInit { @@ -460,20 +468,20 @@ export class UnitDetailsComponent implements OnInit { style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:41.5pt">

数量:`+this.datas.facilities.pumpNumber+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.pumpNumber + `

@@ -503,20 +511,20 @@ export class UnitDetailsComponent implements OnInit { style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:41.5pt">

数量:`+this.datas.facilities.SprayPumpNumber+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.SprayPumpNumber + `

@@ -546,7 +554,7 @@ export class UnitDetailsComponent implements OnInit { @@ -583,7 +591,7 @@ export class UnitDetailsComponent implements OnInit { @@ -611,7 +619,7 @@ export class UnitDetailsComponent implements OnInit { @@ -653,7 +661,7 @@ export class UnitDetailsComponent implements OnInit { @@ -670,7 +678,7 @@ export class UnitDetailsComponent implements OnInit { @@ -712,7 +720,7 @@ export class UnitDetailsComponent implements OnInit { @@ -726,7 +734,7 @@ export class UnitDetailsComponent implements OnInit { @@ -774,51 +782,123 @@ export class UnitDetailsComponent implements OnInit { back() { window.history.back() } - getCompanies(){ + + edit() { + let num = 0 + let num2 = 0 + let num3 = 0 + console.log(this.validateForm.value); + for (const key in this.validateForm.value) { + if (Object.prototype.hasOwnProperty.call(this.validateForm.value, key)) { + const element = this.validateForm.value[key]; + if (element) { + num3 += 1 + } + } + } - this.http.get('/api/Companies/'+this.id).subscribe((data: any) => { + for (const key in this.datas) { + if (Object.prototype.hasOwnProperty.call(this.datas, key)) { + const element = this.datas[key]; + for (const key in element) { + if (Object.prototype.hasOwnProperty.call(element, key)) { + const element2 = element[key]; + if (element2) { + // console.log(element2); + num += 1 + } + } + } + } + } + for (const key in this.datas.KeyParts) { + if (Object.prototype.hasOwnProperty.call(this.datas.KeyParts, key)) { + const element = this.datas.KeyParts[key] + for (const key in element) { + if (Object.prototype.hasOwnProperty.call(element, key)) { + const element2 = element[key] + // console.log(element2); + if (element2) { + num2 += 1 + } + } + } + } + } + let num4=(num+num2+num3-1)/56 + this.integrity = Math.floor(num4*100)/100 + console.log(num,num2,num3,num4); + let body = { + id: this.id, + companyName: this.datas.basicInfo.name, + directorName: this.validateForm.value.directorName, + directorPhone: this.datas.basicInfo.phone, + address: this.datas.basicInfo.addr, + organizationId: this.validateForm.value.organizationId, + relatedOrganizationId: this.validateForm.value.relatedOrganizationId, + useNature: this.datas.basicInfo.nature, + buildingTypeId: this.validateForm.value.buildingTypeId, + integrity: this.integrity, + data:JSON.stringify(this.datas) + } + this.http.patch('/api/Companies/' + this.id, body).subscribe(data => { + console.log(data); + + this.message.create('success', '保存成功!'); + this.getCompanies() + + }) + } + BuildingTypes + getBuildingTypes() { + this.http.get('/api/BuildingTypes').subscribe((data: any) => { console.log(data); - this.datas=JSON.parse(data.data) - this.datas.basicInfo.name=data.companyName - this.datas.basicInfo.addr=data.address - this.datas.basicInfo.phone=data.directorPhone - this.datas.basicInfo.nature=data.useNature + + this.BuildingTypes = data + }) + } + getCompanies() { + + this.http.get('/api/Companies/' + this.id).subscribe((data: any) => { + console.log(data); + if(data.data){ + this.datas=JSON.parse(data.data) + } + this.datas.basicInfo.name = data.companyName + this.datas.basicInfo.addr = data.address + this.datas.basicInfo.phone = data.directorPhone + this.datas.basicInfo.nature = data.useNature + this.integrity = data.integrity this.validateForm.patchValue({ - companyName: [data.companyName, [Validators.required]], - directorName: [data.directorName], - directorPhone: [data.directorPhone], - address: [data.address], - organizationId: [data.organizationId], - relatedOrganizationId: [data.relatedOrganizationId], - useNature: [data.useNature], - buildingTypeId: [data.buildingTypeId]}) - + directorName: data.directorName, + organizationId: data.organizationId, + relatedOrganizationId: data.relatedOrganizationId, + buildingTypeId: data.buildingTypeId + }) + }) } nodes: any = [] - getAllOrganization(){ + getAllOrganization() { + let organizationId = JSON.parse(sessionStorage.getItem('userData')).organizationId let params = { - // OrganizationUnitId: OrganizationUnitId, - // IsContainsChildren: "true" - ContainsChildren: true, - pageSize: 9999 + OrganizationId: organizationId || '', + ContainsChildren: "true", + PageNumber: 1, + PageSize: 9999 } this.http.get('/api/Organizations', { params: params }).subscribe((data: any) => { - console.log(data); - for (let index = 0; index < data.items.length; index++) { - if(data.items[index].level==1){ - this.zhidui.push(data.items[index]) - }else if(data.items[index].level==2){ - this.dadui.push(data.items[index]) - }else{ - this.jiuyuanzhan.push(data.items[index]) + data.items.forEach(element => { + if (element.id == organizationId) { + element.parentId = null } - - } - console.log(this.dadui); - + element.key = element.id + element.title = element.name + }); + this.nodes = [...this.toTree.toTree(data.items)] + }) } }

`+this.datas.basicInfo.name+``+ this.datas.basicInfo.name + `基本情况

`+this.datas.basicInfo.name+`

+ style="font-family:宋体; font-size:9pt">`+ this.datas.basicInfo.name + `

@@ -162,7 +170,7 @@ export class UnitDetailsComponent implements OnInit {

`+this.datas.basicInfo.addr+` + style="font-family:宋体; font-size:9pt">`+ this.datas.basicInfo.addr + `

@@ -172,7 +180,7 @@ export class UnitDetailsComponent implements OnInit {

`+this.datas.basicInfo.phone+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.basicInfo.phone + `

-

`+this.datas.basicInfo.total+`

+

`+ this.datas.basicInfo.total + `

@@ -192,7 +200,7 @@ export class UnitDetailsComponent implements OnInit { -

`+this.datas.basicInfo.height+`

+

`+ this.datas.basicInfo.height + `

@@ -201,7 +209,7 @@ export class UnitDetailsComponent implements OnInit { -

`+this.datas.basicInfo.layer+`

+

`+ this.datas.basicInfo.layer + `

`+this.datas.basicInfo.structure+`

+ style="font-family:宋体; font-size:9pt">`+ this.datas.basicInfo.structure + `

@@ -223,7 +231,7 @@ export class UnitDetailsComponent implements OnInit {

`+this.datas.basicInfo.coveredArea+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.basicInfo.coveredArea + `

@@ -233,7 +241,7 @@ export class UnitDetailsComponent implements OnInit {

`+this.datas.basicInfo.builtUpArea+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.basicInfo.builtUpArea + `

@@ -243,7 +251,7 @@ export class UnitDetailsComponent implements OnInit {

`+this.datas.basicInfo.nature+`

+ style="font-family:宋体; font-size:9pt">`+ this.datas.basicInfo.nature + `

东:`+this.datas.basicInfo.east+`

+ style="font-family:宋体; font-size:9pt">东:`+ this.datas.basicInfo.east + `

南:`+this.datas.basicInfo.south+`

+ style="font-family:宋体; font-size:9pt">南:`+ this.datas.basicInfo.south + `

西:`+this.datas.basicInfo.west+`

+ style="font-family:宋体; font-size:9pt">西:`+ this.datas.basicInfo.west + `

北:`+this.datas.basicInfo.north+`

+ style="font-family:宋体; font-size:9pt">北:`+ this.datas.basicInfo.north + `

`+this.datas.basicInfo.routeAndTime+`

+ style="font-family:宋体; font-size:9pt">`+ this.datas.basicInfo.routeAndTime + `

-

`+this.datas.facilities.controlPosition+`

+

`+ this.datas.facilities.controlPosition + `

`+this.datas.facilities.poolNumbe+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.poolNumbe + `

@@ -330,7 +338,7 @@ export class UnitDetailsComponent implements OnInit {

`+this.datas.facilities.poolPosition+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.poolPosition + `

@@ -340,7 +348,7 @@ export class UnitDetailsComponent implements OnInit {

`+this.datas.facilities.poolCapacity+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.poolCapacity + `

@@ -350,7 +358,7 @@ export class UnitDetailsComponent implements OnInit {

+ style="font-family:'Times New Roman'; font-size:9pt"`+ this.datas.facilities.supplyMode + `

`+this.datas.facilities.waterSources+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.waterSources + `

@@ -372,7 +380,7 @@ export class UnitDetailsComponent implements OnInit {

`+this.datas.facilities.waterSourcesPosition+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.waterSourcesPosition + `

- `+alarm+` + `+ alarm + `

- `+spray+` + `+ spray + `

- `+broadcast+` + `+ broadcast + `

- `+smoke+` + `+ smoke + `

`+this.datas.facilities.hydrantsNumber+``+ this.datas.facilities.hydrantsNumber + `

`+this.datas.facilities.hydrantsPosition+`

+ style="font-family:宋体; font-size:9pt">`+ this.datas.facilities.hydrantsPosition + `

扬程:`+this.datas.facilities.pumpRange+``+ this.datas.facilities.pumpRange + `m

流量`+this.datas.facilities.pumpFlow+``+ this.datas.facilities.pumpFlow + `L/S

`+this.datas.facilities.pumpAdapter+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.pumpAdapter + `

扬程:`+this.datas.facilities.SprayPumpRange+``+ this.datas.facilities.SprayPumpRange + `m

流量:`+this.datas.facilities.SprayPumpFlow+``+ this.datas.facilities.SprayPumpFlow + `L/S

`+this.datas.facilities.SprayPumpAdapter+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.SprayPumpAdapter + `

-

`+this.datas.facilities.elevator+` +

`+ this.datas.facilities.elevator + `

`+this.datas.facilities.stairs+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.stairs + `

@@ -571,7 +579,7 @@ export class UnitDetailsComponent implements OnInit {

`+this.datas.facilities.Export+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.Export + `

`+this.datas.facilities.indoorHydrant+``+ this.datas.facilities.indoorHydrant + `

`+this.datas.facilities.standardIndoorHydrant+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.facilities.standardIndoorHydrant + `

物质存储仓库

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[0].keyparts+`

@@ -621,7 +629,7 @@ export class UnitDetailsComponent implements OnInit {

厂区东侧厂房

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[0].keypartsposition+`

@@ -631,7 +639,7 @@ export class UnitDetailsComponent implements OnInit {

钢结构

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[0].buildingstructure+`

@@ -641,7 +649,7 @@ export class UnitDetailsComponent implements OnInit {

存储漆类,油类

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[0].useNature+`

油类,漆类易燃,有毒

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[0].danger+`

淬火油池

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[1].keyparts+`

@@ -680,7 +688,7 @@ export class UnitDetailsComponent implements OnInit {

厂区中部

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[1].keypartsposition+`

@@ -690,7 +698,7 @@ export class UnitDetailsComponent implements OnInit {

钢结构

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[1].buildingstructure+`

@@ -700,7 +708,7 @@ export class UnitDetailsComponent implements OnInit {

淬火

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[1].useNature+`

高温

+ style="font-family:宋体; font-size:9pt">`+this.datas.KeyParts[1].danger+`

`+this.datas.tips+`

+ style="font-family:'Times New Roman'; font-size:9pt">`+ this.datas.tips + `