Browse Source

[修改]修改初验需求,差异对比功能和导入gis功能

zhuzhou
邵佳豪 4 years ago
parent
commit
cc0fcb59ce
  1. 8
      src/app/key-unit/fire-fighting-device-look/fire-fighting-device.component.html
  2. 2
      src/app/key-unit/fire-fighting-device-look/fire-fighting-device.component.scss
  3. 6
      src/app/key-unit/fire-fighting-device/fire-fighting-device.component.html
  4. 2
      src/app/key-unit/fire-fighting-device/fire-fighting-device.component.scss
  5. 36
      src/app/key-unit/key-unit-management/key-unit-management.component.html
  6. 15
      src/app/pipes/boolean.pipe.ts
  7. 3
      src/app/plan-audit/plan-audit.module.ts
  8. 298
      src/app/plan-audit/wait-examineer/wait-examineer.component.html
  9. 60
      src/app/plan-audit/wait-examineer/wait-examineer.component.scss
  10. 87
      src/app/plan-audit/wait-examineer/wait-examineer.component.ts
  11. 36
      src/app/plan-management/entry-plan/entry-plan.component.html
  12. 36
      src/app/plan-management/maintain-up/maintain-up.component.html
  13. 60
      src/app/tabbar/tabbar.component.html
  14. 2
      src/app/tabbar/tabbar.component.scss
  15. 10
      src/app/ui/collection-tools-plan/addPlaneFigure.html
  16. 212
      src/app/ui/collection-tools-plan/collection-tools.component.html
  17. 260
      src/app/ui/collection-tools-plan/collection-tools.component.ts
  18. 33
      src/app/ui/collection-tools-plan/leftFunctionalDomain.ts
  19. 4
      src/app/ui/collection-tools-plan/panel.scss
  20. 4
      src/app/ui/collection-tools/collection-tools.component.html
  21. 11
      src/styles.scss

8
src/app/key-unit/fire-fighting-device-look/fire-fighting-device.component.html

@ -1,4 +1,4 @@
<div class="content"> <div class="content" id="firefightingdevicelook">
<mat-tab-group> <mat-tab-group>
<!-- <!--
<mat-tab label="单位消防设施"> <mat-tab label="单位消防设施">
@ -115,7 +115,7 @@
</mat-expansion-panel> </mat-expansion-panel>
<mat-expansion-panel *ngFor="let items of item.facilityItems" disabled [expanded]=items.expanded> <mat-expansion-panel *ngFor="let items of item.facilityItems" disabled [expanded]=items.expanded>
<mat-expansion-panel-header> <mat-expansion-panel-header class="expansionheader">
<label class="firstContent"> <label class="firstContent">
<mat-checkbox (change)='checkedCompany($event,item,items)' [disabled]='items.isBuiltin'></mat-checkbox> <mat-checkbox (change)='checkedCompany($event,item,items)' [disabled]='items.isBuiltin'></mat-checkbox>
</label> </label>
@ -124,10 +124,10 @@
<label class="totalContent">{{items.total ? items.total : '总数: 0'}}</label> <label class="totalContent">{{items.total ? items.total : '总数: 0'}}</label>
<label class="lastTextContent"> <label class="lastTextContent">
<textarea readonly maxlength="250" [(ngModel)]="items.details" style="width: 80%;"></textarea> <textarea readonly maxlength="250" [(ngModel)]="items.details" style="width:98%;"></textarea>
</label> </label>
<label><mat-icon (click)='SwitchBuildingBoard(newItem,items)' *ngIf="items.isBuiltin">keyboard_arrow_down</mat-icon></label> <!-- <label><mat-icon (click)='SwitchBuildingBoard(newItem,items)' *ngIf="items.isBuiltin">keyboard_arrow_down</mat-icon></label> -->
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div class="overflowTable"> <div class="overflowTable">

2
src/app/key-unit/fire-fighting-device-look/fire-fighting-device.component.scss

@ -38,7 +38,7 @@
color: black; color: black;
text-align: center; text-align: center;
white-space: pre-line; white-space: pre-line;
max-height: 48px; // max-height: 48px;
overflow-y: auto; overflow-y: auto;
} }
.lastTextContent { //textarea多行文本 .lastTextContent { //textarea多行文本

6
src/app/key-unit/fire-fighting-device/fire-fighting-device.component.html

@ -1,4 +1,4 @@
<div class="content"> <div class="content" id="firefightingdevice">
<mat-tab-group (selectedIndexChange)="selectedChange($event)"> <mat-tab-group (selectedIndexChange)="selectedChange($event)">
<!-- <mat-tab style="display: none;" label="单位消防设施"> <!-- <mat-tab style="display: none;" label="单位消防设施">
@ -119,7 +119,7 @@
</mat-expansion-panel> </mat-expansion-panel>
<mat-expansion-panel *ngFor="let items of item.facilityItems" disabled [expanded]=items.expanded> <mat-expansion-panel *ngFor="let items of item.facilityItems" disabled [expanded]=items.expanded>
<mat-expansion-panel-header> <mat-expansion-panel-header class="expansionheader">
<label class="firstContent"> <label class="firstContent">
<mat-checkbox (change)='checkedCompany($event,item,items)' [disabled]='items.isBuiltin'></mat-checkbox> <mat-checkbox (change)='checkedCompany($event,item,items)' [disabled]='items.isBuiltin'></mat-checkbox>
</label> </label>
@ -236,7 +236,7 @@
<textarea maxlength="250" [(ngModel)]="items.details" style="width: 80%;" *ngIf="!((item.name == '消防水系统' && items.name == '供水管网') || (item.name == '消防水系统' && items.name == '自动喷水灭火系统') || (item.name == '消防灭火给水系统' && items.name == '自动喷水灭火系统') || (item.name == '消防灭火给水系统' && items.name == '气体自动灭火系统') || (item.name == '消防灭火给水系统' && items.name == '消防泵房') || (item.name == '其它' && items.name == '排烟系统') || (item.name == '其它' && items.name == '灭火器') || (item.name == '其它' && items.name == '气体灭火') || (item.name == '其它' && items.name == '消防通信') || (item.name == '消防设施' && items.name == '自动报警系统') || (item.name == '消防设施' && items.name == '消防泵') || (item.name == '消火栓系统' && items.name == '灭火剂') || (item.name == '消火栓系统' && items.name == '报警设施') || (item.name == '消火栓系统' && items.name == '消防管网') || (item.name == '其它设施' && items.name == '优先广播') || (item.name == '其它设施' && items.name == 'VI检测仪') || (item.name == '其它设施' && items.name == '泡沫水喷雾系统') || (item.name == '自动消防设施' && items.name == '喷水灭火系统') || (item.name == '自动消防设施' && items.name == '自动报警系统') || (item.name == '自动消防设施' && items.name == '防排烟系统') || (item.name == '自动消防设施' && items.name == '水幕系统') || (item.name == '自动消防设施' && items.name == '消防泵') || (item.name == '消防水源' && items.name == '消防水池'))"></textarea> <textarea maxlength="250" [(ngModel)]="items.details" style="width: 80%;" *ngIf="!((item.name == '消防水系统' && items.name == '供水管网') || (item.name == '消防水系统' && items.name == '自动喷水灭火系统') || (item.name == '消防灭火给水系统' && items.name == '自动喷水灭火系统') || (item.name == '消防灭火给水系统' && items.name == '气体自动灭火系统') || (item.name == '消防灭火给水系统' && items.name == '消防泵房') || (item.name == '其它' && items.name == '排烟系统') || (item.name == '其它' && items.name == '灭火器') || (item.name == '其它' && items.name == '气体灭火') || (item.name == '其它' && items.name == '消防通信') || (item.name == '消防设施' && items.name == '自动报警系统') || (item.name == '消防设施' && items.name == '消防泵') || (item.name == '消火栓系统' && items.name == '灭火剂') || (item.name == '消火栓系统' && items.name == '报警设施') || (item.name == '消火栓系统' && items.name == '消防管网') || (item.name == '其它设施' && items.name == '优先广播') || (item.name == '其它设施' && items.name == 'VI检测仪') || (item.name == '其它设施' && items.name == '泡沫水喷雾系统') || (item.name == '自动消防设施' && items.name == '喷水灭火系统') || (item.name == '自动消防设施' && items.name == '自动报警系统') || (item.name == '自动消防设施' && items.name == '防排烟系统') || (item.name == '自动消防设施' && items.name == '水幕系统') || (item.name == '自动消防设施' && items.name == '消防泵') || (item.name == '消防水源' && items.name == '消防水池'))"></textarea>
</label> </label>
<label><mat-icon (click)='SwitchBuildingBoard(newItem,items)' *ngIf="items.isBuiltin">keyboard_arrow_down</mat-icon></label> <!-- <label><mat-icon (click)='SwitchBuildingBoard(newItem,items)' *ngIf="items.isBuiltin">keyboard_arrow_down</mat-icon></label> -->
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div class="overflowTable"> <div class="overflowTable">

2
src/app/key-unit/fire-fighting-device/fire-fighting-device.component.scss

@ -38,7 +38,7 @@
color: black; color: black;
text-align: center; text-align: center;
white-space: pre-line; white-space: pre-line;
max-height: 48px; // max-height: 48px;
overflow-y: auto; overflow-y: auto;
} }
.lastTextContent { //textarea多行文本 .lastTextContent { //textarea多行文本

36
src/app/key-unit/key-unit-management/key-unit-management.component.html

@ -160,9 +160,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}%</span>
</div> </div>
<div class="number">5</div> <div class="number">5%</div>
</li> </li>
<li> <li>
<div class="name">建筑信息</div> <div class="name">建筑信息</div>
@ -170,9 +170,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">平面图</div> <div class="name">平面图</div>
@ -180,9 +180,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.planImageScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.planImageScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">四周毗邻</div> <div class="name">四周毗邻</div>
@ -190,9 +190,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.adjoinScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.adjoinScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">消防设施</div> <div class="name">消防设施</div>
@ -200,9 +200,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.facilityScore * 25).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.facilityScore * 25).toFixed(1)}}%</span>
</div> </div>
<div class="number">25</div> <div class="number">25%</div>
</li> </li>
<li> <li>
<div class="name">重点部位</div> <div class="name">重点部位</div>
@ -210,9 +210,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">功能分区</div> <div class="name">功能分区</div>
@ -220,9 +220,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">实景图</div> <div class="name">实景图</div>
@ -230,9 +230,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.realityImageScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.realityImageScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">CAD上传</div> <div class="name">CAD上传</div>
@ -240,9 +240,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.cadScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.cadScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
</ul> </ul>
</div> </div>

15
src/app/pipes/boolean.pipe.ts

@ -45,3 +45,18 @@ export class state implements PipeTransform {
} }
} }
} }
@Pipe({name: 'differentContentTitle'})
export class differentContentTitle implements PipeTransform {
transform(value: string): string {
console.log(666,typeof(value))
if(typeof(value) == 'boolean' && value){
return '是'
}else if(typeof(value) == 'boolean' && !value){
return '否'
}else{
return value
}
}
}

3
src/app/plan-audit/plan-audit.module.ts

@ -72,11 +72,12 @@ import { previewImg3 } from './realistic-picture-look/realistic-picture.componen
import { show3D } from './wait-examineer/wait-examineer.component'; import { show3D } from './wait-examineer/wait-examineer.component';
import { recordshow3D } from './plan-record/plan-record.component' import { recordshow3D } from './plan-record/plan-record.component'
import { ViewDetailsComponent } from './view-details/view-details.component' import { ViewDetailsComponent } from './view-details/view-details.component'
import { differentContentTitle } from '../pipes/boolean.pipe';
@NgModule({ @NgModule({
declarations: [DetachmentLevelComponent, PlanAuditComponent, PlanPassComponent,PlanOpen, PlanRecordComponent, BasicInfoComponent, declarations: [DetachmentLevelComponent, PlanAuditComponent, PlanPassComponent,PlanOpen, PlanRecordComponent, BasicInfoComponent,
WaitExamineerComponent,AllaroundComponent,ImgDetails,FireFacilitiesComponent,ImagesData2,previewBigImg2,PlanListComponent,OpenPlanToolDialog, WaitExamineerComponent,AllaroundComponent,ImgDetails,FireFacilitiesComponent,ImagesData2,previewBigImg2,PlanListComponent,OpenPlanToolDialog,
KeySiteLookComponent,KeySiteImgs2,FunctionPartitionComponent,CadDrawComponent,RealisticPictureLookComponent,previewImg3,show3D, WaterAuditComponent, KeySiteLookComponent,KeySiteImgs2,FunctionPartitionComponent,CadDrawComponent,RealisticPictureLookComponent,previewImg3,show3D, WaterAuditComponent,
FireforceAuditComponent, LinkageforcesAuditComponent, ViewDetailsComponent,recordshow3D,remark], FireforceAuditComponent, LinkageforcesAuditComponent, ViewDetailsComponent,recordshow3D,remark,differentContentTitle],
imports: [ imports: [
CommonModule, CommonModule,
PlanAuditRoutingModule, PlanAuditRoutingModule,

298
src/app/plan-audit/wait-examineer/wait-examineer.component.html

@ -4,10 +4,6 @@
<form (ngSubmit)="onSubmit(form.value)" #form="ngForm"> <form (ngSubmit)="onSubmit(form.value)" #form="ngForm">
<div class="headdiv" style="margin-top: 30px;"> <div class="headdiv" style="margin-top: 30px;">
<span>操作类型:</span> <span>操作类型:</span>
<!-- <div></div>
<div></div>
<div></div>
<div></div> -->
<input type="radio" name="level" value="" [(ngModel)]="level"><span>全部</span> <input type="radio" name="level" value="" [(ngModel)]="level"><span>全部</span>
<input type="radio" name="level" value="1" [(ngModel)]="level"><span>更新</span> <input type="radio" name="level" value="1" [(ngModel)]="level"><span>更新</span>
<input type="radio" name="level" value="0" [(ngModel)]="level"><span>新增</span> <input type="radio" name="level" value="0" [(ngModel)]="level"><span>新增</span>
@ -15,7 +11,6 @@
<div class="count"> <div class="count">
<span>共计:{{count}}条</span> <span>共计:{{count}}条</span>
</div> </div>
</div> </div>
<div class="headthree"> <div class="headthree">
<span>类型:</span> <span>类型:</span>
@ -42,7 +37,8 @@
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<button mat-raised-button color="primary" type="submit">查询</button> <button mat-raised-button color="primary" type="submit">查询</button>
<button mat-raised-button color="primary" (click)='record()'><img src="../../../assets/images/refresh.png" > 重置</button> <button mat-raised-button color="primary" (click)='record()'><img src="../../../assets/images/refresh.png">
重置</button>
</div> </div>
</form> </form>
@ -60,16 +56,24 @@
</table> </table>
<div class="tbodycss" id="tbodydiv"> <div class="tbodycss" id="tbodydiv">
<table cellspacing="0" cellpadding="0" id="table"> <table cellspacing="0" cellpadding="0" id="table">
<tr [ngClass]="{'selectedTr': item.id == id}" *ngFor="let item of tableDate;let key = index" (click)='radioClick($event,item)'> <tr [ngClass]="{'selectedTr': item.id == id}" *ngFor="let item of tableDate;let key = index"
(click)='radioClick($event,item)'>
<td style="width: 15%;"> <td style="width: 15%;">
<mat-checkbox color="primary" (change)='radioClick($event,item)'style="float: left;margin-top:'2px'"></mat-checkbox> <mat-checkbox color="primary" (change)='radioClick($event,item)' style="float: left;margin-top:'2px'">
</mat-checkbox>
{{item.contentType=='1'?'Ⅰ级预案':item.contentType=='2'?'Ⅱ级预案':item.contentType=='3'?'Ⅲ级预案':item.contentType=='4'?'Ⅳ级预案':item.contentType=='5'? {{item.contentType=='1'?'Ⅰ级预案':item.contentType=='2'?'Ⅱ级预案':item.contentType=='3'?'Ⅲ级预案':item.contentType=='4'?'Ⅳ级预案':item.contentType=='5'?
'Ⅴ级预案':item.contentType=='6'?'应急预案(国家级)':item.contentType=='7'?'应急预案(市级)':item.contentType=='8'?'类型预案':item.contentType=='11'?'重点单位':item.contentType=='12'?'水源':item.contentType=='13'?'消防力量':item.contentType=='14'?'联动力量':'未知'}}</td> 'Ⅴ级预案':item.contentType=='6'?'应急预案(国家级)':item.contentType=='7'?'应急预案(市级)':item.contentType=='8'?'类型预案':item.contentType=='11'?'重点单位':item.contentType=='12'?'水源':item.contentType=='13'?'消防力量':item.contentType=='14'?'联动力量':'未知'}}
</td>
<td style="width: 15%;">{{item.title}}</td> <td style="width: 15%;">{{item.title}}</td>
<td style="width: 10%;" [ngClass]="{'green': item.operation == '1','red':item.operation == '2','blue':item.operation == '0'}">{{item.operation=='0'?'新增':item.operation=='1'?'更新':'删除'}}</td> <td style="width: 10%;"
[ngClass]="{'green': item.operation == '1','red':item.operation == '2','blue':item.operation == '0'}">
{{item.operation=='0'?'新增':item.operation=='1'?'更新':'删除'}}</td>
<td style="width: 15%;">{{item.organizationName}}</td> <td style="width: 15%;">{{item.organizationName}}</td>
<td style="width: 15%;" [ngClass]="{'green': item.verifyState == '1'||item.verifyState == '4','red':item.verifyState == '2'||item.verifyState == '5'}">{{item.verifyState=='0'?'待初审':item.verifyState=='1'? <td style="width: 15%;"
'初审通过':item.verifyState=='2'?'初审驳回':item.verifyState=='3'?'待终审':item.verifyState=='4'?'终审通过':'终审驳回'}}</td> [ngClass]="{'green': item.verifyState == '1'||item.verifyState == '4','red':item.verifyState == '2'||item.verifyState == '5'}">
{{item.verifyState=='0'?'待初审':item.verifyState=='1'?
'初审通过':item.verifyState=='2'?'初审驳回':item.verifyState=='3'?'待终审':item.verifyState=='4'?'终审通过':'终审驳回'}}
</td>
<td style="width: 15%;">{{item.creatorName}}</td> <td style="width: 15%;">{{item.creatorName}}</td>
<td style="width: 25%;">{{item.createTime|date:'yyyy-MM-dd'}}</td> <td style="width: 25%;">{{item.createTime|date:'yyyy-MM-dd'}}</td>
</tr> </tr>
@ -81,75 +85,33 @@
</div> </div>
</div> </div>
<div class="boxright">
<div class="righthead">
<div class="boxright" id="waitexamineergis">
<!-- 头部按钮栏 -->
<div class="righthead">
<div class="rightheadtwo"> <div class="rightheadtwo">
<button mat-raised-button color="primary" style="float: right;" (click)='lookNew()' *ngIf="showtype == 0">查看详情</button> <button mat-raised-button color="primary" style="float: right;" (click)='lookNew()'
<button mat-raised-button style="color: #FFFFFF;background-color: #FF7161;float: right;" (click)='refuse()'>拒绝</button> *ngIf="showtype == 0">查看详情</button>
<button mat-raised-button style="color: #FFFFFF;background-color: #38D984;float: right;" (click)='agree()'>同意</button> <button mat-raised-button style="color: #FFFFFF;background-color: #FF7161;float: right;"
(click)='refuse()'>拒绝</button>
<button mat-raised-button style="color: #FFFFFF;background-color: #38D984;float: right;"
(click)='agree()'>同意</button>
</div>
<!-- <div class="rightheadone" style="display: block;">
<button mat-raised-button color="primary" (click)="buttonChange()">{{isallDate?'显示变更数据':'显示完整数据'}} </button>
<button mat-raised-button *ngIf="isallDate" style="background-color: #FFCC00; color: #FFFFFF;"
(click)="preview()"><img src="../../../assets/images/change.png" style="margin-bottom: 2px;"> 预览得分</button>
</div> -->
</div> </div>
<div class="rightheadone" style="display: none;">
<button mat-raised-button color="primary" (click)="buttonChange()"><img src="../../../assets/images/preview.png" style="margin-right: 3px;margin-bottom: 3px;display: none;">{{isallDate?'显示变更数据':'显示完整数据'}} </button>
<button mat-raised-button *ngIf="isallDate" style="background-color: #FFCC00; color: #FFFFFF;" (click)="preview()"><img src="../../../assets/images/change.png" style="margin-bottom: 2px;" > 预览得分</button>
</div>
</div> <!-- 数据变更div -->
<div id="company"> <div *ngIf="!isallDate" style="flex: 1;overflow-y: auto;">
<mat-tab-group *ngIf="showtype == 3" class="company" [selectedIndex]="selected.value" (selectedIndexChange)="selectedIndexChange($event)"> <div *ngIf="showtype == 3" id="firefacilities" style="margin: 10px;">
<mat-tab label="基本信息"> <mat-accordion class="tableContent" multi>
<ng-template matTabContent> <!-- 基本信息 -->
<app-basic-info></app-basic-info> <mat-expansion-panel *ngIf="this.differentContentOfUnitInfo[0].childrens.length != 0" expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
</ng-template> <mat-expansion-panel-header collapsedHeight='40px' expandedHeight='40px' class="panelhead"
</mat-tab> style="background-color: #2196F3;">
<mat-tab label="总平面图">
<ng-template matTabContent>
<app-plan-list [planType]="planTypeIndex"></app-plan-list>
</ng-template>
</mat-tab>
<mat-tab label="层平面图">
<ng-template matTabContent>
<app-plan-list [planType]="planTypeIndex"></app-plan-list>
</ng-template>
</mat-tab>
<mat-tab label="四周毗邻">
<ng-template matTabContent>
<app-allaround></app-allaround>
</ng-template>
</mat-tab>
<mat-tab label="消防设施">
<ng-template matTabContent>
<app-fire-facilities></app-fire-facilities>
</ng-template>
</mat-tab>
<mat-tab label="重点部位">
<ng-template matTabContent>
<app-key-site-look></app-key-site-look>
</ng-template>
</mat-tab>
<mat-tab label="功能分区">
<ng-template matTabContent>
<app-function-partition></app-function-partition>
</ng-template>
</mat-tab>
<mat-tab label="实景图">
<ng-template matTabContent>
<app-realistic-picture-look></app-realistic-picture-look>
</ng-template>
</mat-tab>
<mat-tab label="CAD">
<ng-template matTabContent>
<app-cad-draw></app-cad-draw>
</ng-template>
</mat-tab>
</mat-tab-group>
</div>
<div id="firefacilities" *ngIf="showtype == 3 && !isallDate" style="margin: 10px;">
<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" style="background-color: #2196F3;">
<mat-panel-title style="font-size: 16px;color: #FFFFFF;"> <mat-panel-title style="font-size: 16px;color: #FFFFFF;">
基本信息 基本信息
</mat-panel-title> </mat-panel-title>
@ -159,104 +121,111 @@
<mat-expansion-panel expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;"> <mat-expansion-panel expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight='30px' expandedHeight='30px' class="panelhead"> <mat-expansion-panel-header collapsedHeight='30px' expandedHeight='30px' class="panelhead">
<mat-panel-title style="font-size: 16px;color:#2196F3;"> <mat-panel-title style="font-size: 16px;color:#2196F3;">
<img src="../../../assets/images/update.png"><span>修改-沃尔玛(上海)职业发展有限公司</span> <mat-icon style="font-size: 18px;width: 18px;height: 18px;">border_color</mat-icon>
<span>修改-{{selectedItem.title}}</span>
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<table> <table>
<tr> <tr *ngFor="let i of this.differentContentOfUnitInfo[0].childrens">
<th>单位地址 :</th> <th>{{i.displayName}} :</th>
<td><span style="margin-left: 7px;"></span> <span style="color: #2196F3;">上海市上海市黄浦区武胜路333号</span>变更为 <ng-container *ngIf="i.propertyName == 'imageUrl'; else elseTemplate">
<span style="color: #2196F3;">上海市上海市黄浦区金陵西路28号</span></td> <td>
</tr> <span class="spantext" style="vertical-align: top;"></span>
<tr> <img class="spantext" style="width: 150px;height: 105px;" [src]="i.oldValue" alt="">
<th>联系电话 :</th> <span class="spantext" style="vertical-align: top;">变更为</span>
<td><span style="margin-left: 7px;"></span><span style="color: #2196F3;">15069853369</span>变更为 <img class="spantext" style="width: 150px;height: 105px;" [src]="i.newValue" alt="">
<span style="color: #2196F3;">13869877764</span></td> </td>
</tr> </ng-container>
<tr> <ng-template #elseTemplate>
<th>始建于(年):</th> <td>
<td><span style="margin-left: 7px;"></span><span style="color: #2196F3;">1991</span>变更为 <span class="spantext"></span>
<span style="color: #2196F3;">2003</span></td> <span class="spantext buleColor">{{i.oldValue}}</span>
<span class="spantext">变更为</span>
<span class="spantext buleColor">{{i.newValue}}</span>
</td>
</ng-template>
</tr> </tr>
</table> </table>
</mat-expansion-panel> </mat-expansion-panel>
</mat-accordion> </mat-accordion>
</div> </div>
</mat-expansion-panel> </mat-expansion-panel>
</mat-accordion> <!-- 建筑信息 -->
<mat-accordion class="tableContent" > <mat-expansion-panel *ngIf="this.differentContentOfBuildingsInfo.childrens.length != 0" expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<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" style="background-color: #2196F3;"> style="background-color: #2196F3;">
<mat-panel-title style="font-size: 16px;color: #FFFFFF;"> <mat-panel-title style="font-size: 16px;color: #FFFFFF;">
基本信息 建筑信息
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div class="accordingin"> <div class="accordingin">
<mat-accordion> <mat-accordion *ngFor="let item of this.differentContentOfBuildingsInfo.childrens">
<mat-expansion-panel expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;"> <mat-expansion-panel *ngIf="item.childrens.length != 0" expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight='30px' expandedHeight='30px' class="panelhead"> <mat-expansion-panel-header collapsedHeight='30px' expandedHeight='30px' class="panelhead">
<mat-panel-title style="font-size: 16px;color:#2196F3;"> <mat-panel-title style="font-size: 16px;color:#2196F3;">
<img src="../../../assets/images/update.png"><span>修改-沃尔玛(上海)职业发展有限公司</span> <mat-icon style="font-size: 18px;width: 18px;height: 18px;">border_color</mat-icon>
<span>{{item.propertyName}}</span>
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<table> <table>
<tr> <tr *ngFor="let i of item.childrens">
<th>单位地址 :</th> <th>{{i.displayName}} :</th>
<td><span style="margin-left: 7px;"></span> <span style="color: #2196F3;">上海市上海市黄浦区武胜路333号</span>变更为 <td>
<span style="color: #2196F3;">上海市上海市黄浦区金陵西路28号</span></td> <span class="spantext"></span>
</tr> <span class="spantext buleColor">{{i.oldValue | differentContentTitle}}</span>
<tr> <span class="spantext">变更为</span>
<th>联系电话 :</th> <span class="spantext buleColor">{{i.newValue | differentContentTitle}}</span>
<td><span style="margin-left: 7px;"></span><span style="color: #2196F3;">15069853369</span>变更为 </td>
<span style="color: #2196F3;">13869877764</span></td>
</tr>
<tr>
<th>始建于(年):</th>
<td><span style="margin-left: 7px;"></span><span style="color: #2196F3;">1991</span>变更为
<span style="color: #2196F3;">2003</span></td>
</tr> </tr>
</table> </table>
</mat-expansion-panel> </mat-expansion-panel>
</mat-accordion> </mat-accordion>
</div> </div>
</mat-expansion-panel> </mat-expansion-panel>
</mat-accordion> <!-- 功能分区 -->
<mat-accordion class="tableContent" > <mat-expansion-panel *ngIf="this.differentContentOfFunction.length != 0" expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel *ngIf="!isallDate" 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" style="background-color: #2196F3;"> style="background-color: #2196F3;">
<mat-panel-title style="font-size: 16px;color: #FFFFFF;"> <mat-panel-title style="font-size: 16px;color: #FFFFFF;">
四周毗邻 功能分区
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div class="accordingin"> <div class="accordingin">
<mat-accordion> <mat-accordion *ngFor="let item of this.differentContentOfFunction">
<mat-expansion-panel style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;"> <mat-expansion-panel *ngIf="item.childrens.length != 0" expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight='30px' expandedHeight='30px' class="panelhead"> <mat-expansion-panel-header collapsedHeight='30px' expandedHeight='30px' class="panelhead">
<mat-panel-title style="font-size: 16px;color:#2196F3;"> <mat-panel-title style="font-size: 16px;color:#2196F3;">
<img src="../../../assets/images/update.png"><span>一号建筑</span> <mat-icon style="font-size: 18px;width: 18px;height: 18px;">border_color</mat-icon>
<span>{{item.propertyName}}</span>
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div class="onebuilding"> <table>
<div class="accordingleft"> <tr *ngFor="let i of item.childrens[0].childrens">
<span>一号建筑:</span> <th>{{i.displayName}} :</th>
</div> <td>
<div class="accordingright"> <span class="spantext"></span>
<span></span><img src="../../../assets/images/chatchange.png"> <span class="spantext buleColor">{{i.oldValue | differentContentTitle}}</span>
<span>变更为</span><img src="../../../assets/images/chatchange.png"> <span class="spantext">变更为</span>
</div> <span class="spantext buleColor">{{i.newValue | differentContentTitle}}</span>
</div> </td>
</tr>
</table>
</mat-expansion-panel> </mat-expansion-panel>
</mat-accordion> </mat-accordion>
</div> </div>
</mat-expansion-panel> </mat-expansion-panel>
<!-- 实景图 -->
</mat-accordion> </mat-accordion>
</div> </div>
</div>
<!-- 点击每条表格右边显示内容 -->
<div *ngIf="isallDate">
<!-- word文档 -->
<div class="word" *ngIf="showtype == 0"> <div class="word" *ngIf="showtype == 0">
<iframe [src]='iframeSrc'></iframe> <iframe [src]='iframeSrc'></iframe>
</div> </div>
<!-- 全景图 -->
<div id="viewer" *ngIf="showtype == 1"></div> <div id="viewer" *ngIf="showtype == 1"></div>
<div class="twoD" *ngIf="showtype == 2"> <div class="twoD" *ngIf="showtype == 2">
<div class="planBox"> <div class="planBox">
@ -279,6 +248,57 @@
<span style="color: #2196F3;cursor:pointer;" (click)='oopen3Dshow()'>查看详情</span> <span style="color: #2196F3;cursor:pointer;" (click)='oopen3Dshow()'>查看详情</span>
</div> </div>
</div> </div>
<!-- 重点单位 -->
<div id="company" *ngIf="showtype == 3">
<mat-tab-group class="company" [selectedIndex]="selected.value"
(selectedIndexChange)="selectedIndexChange($event)">
<mat-tab label="基本信息">
<ng-template matTabContent>
<app-basic-info></app-basic-info>
</ng-template>
</mat-tab>
<mat-tab label="总平面图">
<ng-template matTabContent>
<app-plan-list [planType]="planTypeIndex"></app-plan-list>
</ng-template>
</mat-tab>
<mat-tab label="层平面图">
<ng-template matTabContent>
<app-plan-list [planType]="planTypeIndex"></app-plan-list>
</ng-template>
</mat-tab>
<mat-tab label="四周毗邻">
<ng-template matTabContent>
<app-allaround></app-allaround>
</ng-template>
</mat-tab>
<mat-tab label="消防设施">
<ng-template matTabContent>
<app-fire-facilities></app-fire-facilities>
</ng-template>
</mat-tab>
<mat-tab label="重点部位">
<ng-template matTabContent>
<app-key-site-look></app-key-site-look>
</ng-template>
</mat-tab>
<mat-tab label="功能分区">
<ng-template matTabContent>
<app-function-partition></app-function-partition>
</ng-template>
</mat-tab>
<mat-tab label="实景图">
<ng-template matTabContent>
<app-realistic-picture-look></app-realistic-picture-look>
</ng-template>
</mat-tab>
<mat-tab label="CAD">
<ng-template matTabContent>
<app-cad-draw></app-cad-draw>
</ng-template>
</mat-tab>
</mat-tab-group>
</div>
<!-- 水源审核 --> <!-- 水源审核 -->
<div class="waterAudit" *ngIf="showtype == 12"> <div class="waterAudit" *ngIf="showtype == 12">
<app-water-audit [waterData]="waterData"></app-water-audit> <app-water-audit [waterData]="waterData"></app-water-audit>
@ -287,16 +307,18 @@
<div class="fireForceAudit" *ngIf="showtype == 13"> <div class="fireForceAudit" *ngIf="showtype == 13">
<app-fireforce-audit [FireForceDetailInfo]="fireForceDetailInfo" [level]="postlevel"></app-fireforce-audit> <app-fireforce-audit [FireForceDetailInfo]="fireForceDetailInfo" [level]="postlevel"></app-fireforce-audit>
</div> </div>
<div class="emptyContent" *ngIf="showtype == 666">
<span>该提交内容为空,从未保存过,请驳回该审核</span>
</div>
<!-- 联动力量审核 --> <!-- 联动力量审核 -->
<div class="LinkageForcesAudit" *ngIf="showtype == 14"> <div class="LinkageForcesAudit" *ngIf="showtype == 14">
<app-linkageforces-audit [LinkageForceDetailInfo]="LinkageForceDetailInfo"></app-linkageforces-audit> <app-linkageforces-audit [LinkageForceDetailInfo]="LinkageForceDetailInfo"></app-linkageforces-audit>
</div> </div>
<div class="emptyContent" *ngIf="showtype == 666">
<span>该提交内容为空,从未保存过,请驳回该审核</span>
</div>
</div> </div>
</div> </div>
<div class="echarts" *ngIf="previewshow" ><!-- [style.display]="previewshow==true?'block':'none'" --> </div>
<div class="echarts" *ngIf="previewshow">
<div class="bar" id="indexbar"></div> <div class="bar" id="indexbar"></div>
<div class="zhu" id="zhu"></div> <div class="zhu" id="zhu"></div>
</div> </div>

60
src/app/plan-audit/wait-examineer/wait-examineer.component.scss

@ -5,7 +5,7 @@
.boxleft { .boxleft {
height: 100%; height: 100%;
width: 45%; width: 45%;
background-color: #FFFFFF; background-color: #ffffff;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: auto; overflow: auto;
@ -54,7 +54,6 @@
margin-left: 8px; margin-left: 8px;
top: 6px; top: 6px;
} }
} }
.count { .count {
@media screen and (min-device-width: 1400px) { @media screen and (min-device-width: 1400px) {
@ -92,7 +91,6 @@
} }
button { button {
@media screen and (min-device-width: 1400px) { @media screen and (min-device-width: 1400px) {
margin-left: 30px; margin-left: 30px;
font-size: 16px; font-size: 16px;
@ -102,7 +100,6 @@
@media screen and (max-device-width: 1400px) { @media screen and (max-device-width: 1400px) {
margin-left: 90px; margin-left: 90px;
font-size: 14px; font-size: 14px;
} }
} }
img { img {
@ -114,9 +111,7 @@
height: 12px; height: 12px;
width: 12px; width: 12px;
} }
} }
} }
} }
.tablediv { .tablediv {
@ -149,8 +144,8 @@
//margin-bottom: 10px; //margin-bottom: 10px;
thead { thead {
height: 48px; height: 48px;
color: #FFFFFF; color: #ffffff;
background-color: #2196F3; background-color: #2196f3;
//font-size: 10px; //font-size: 10px;
th { th {
font-weight: 10; font-weight: 10;
@ -164,19 +159,20 @@
} }
tr:nth-child(odd) { tr:nth-child(odd) {
background: #FAFAFA; background: #fafafa;
} }
} }
} }
} }
.boxright { .boxright {
height: 100%; height: 100%;
width: 53%;
@media screen and (max-device-width: 1400px) { @media screen and (max-device-width: 1400px) {
overflow-y: auto; overflow-y: auto;
} }
width: 53%;
flex: 1; flex: 1;
background-color: #FFFFFF; background-color: #ffffff;
margin-left: 10px; margin-left: 10px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -208,6 +204,7 @@
margin-right: 2%; margin-right: 2%;
} }
} }
.word { .word {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -224,7 +221,9 @@
width: 97%; width: 97%;
height: 93%; height: 93%;
} }
.waterAudit,.fireForceAudit,.LinkageForcesAudit{ .waterAudit,
.fireForceAudit,
.LinkageForcesAudit {
flex: 1; flex: 1;
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -236,8 +235,9 @@
} }
} }
} }
th,td{ th,
height:48px; td {
height: 43px;
@media screen and (min-device-width: 1400px) { @media screen and (min-device-width: 1400px) {
font-size: 16px; font-size: 16px;
} }
@ -247,14 +247,20 @@ th,td{
text-align: center; text-align: center;
//white-space: nowrap; //white-space: nowrap;
} }
.green{color: #00C756;} .green {
.red{color: #FF4D4D;} color: #00c756;
.blue{color: #2196F3;} }
.red {
color: #ff4d4d;
}
.blue {
color: #2196f3;
}
.accordingin { .accordingin {
margin: 5px; margin: 5px;
.panelhead { .panelhead {
background-color:#E8F4FE; background-color: #e8f4fe;
color: #2196F3; color: #2196f3;
font-size: 16px; font-size: 16px;
span { span {
margin-left: 10px; margin-left: 10px;
@ -264,7 +270,7 @@ th,td{
margin: 5px 0; margin: 5px 0;
width: 100%; width: 100%;
th { th {
background-color: #FAFAFA; background-color: #fafafa;
width: 30%; width: 30%;
font-size: 16px; font-size: 16px;
text-align: right; text-align: right;
@ -273,6 +279,12 @@ th,td{
text-align: left; text-align: left;
font-size: 16px; font-size: 16px;
margin-left: 3px; margin-left: 3px;
.spantext{
margin-left: 7px;
}
.buleColor{
color: #2196f3;
}
} }
} }
.onebuilding { .onebuilding {
@ -280,7 +292,7 @@ th,td{
margin: 5px 0; margin: 5px 0;
width: 100%; width: 100%;
.accordingleft { .accordingleft {
background-color: #FAFAFA; background-color: #fafafa;
width: 30%; width: 30%;
height: 120px; height: 120px;
font-size: 16px; font-size: 16px;
@ -335,7 +347,9 @@ th,td{
.planBox { .planBox {
margin: 30px 30px; margin: 30px 30px;
color: black; color: black;
:first-child {margin-right: 10px;} :first-child {
margin-right: 10px;
}
} }
} }
@ -345,7 +359,7 @@ th,td{
background-color: white; background-color: white;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
background-color: #2196F3; background-color: #2196f3;
} }
.remarkbox { .remarkbox {

87
src/app/plan-audit/wait-examineer/wait-examineer.component.ts

@ -26,10 +26,11 @@ export class WaitExamineerComponent implements OnInit {
constructor(private http: HttpClient, public snackBar: MatSnackBar, private sanitizer: DomSanitizer, public dialog: MatDialog) { constructor(private http: HttpClient, public snackBar: MatSnackBar, private sanitizer: DomSanitizer, public dialog: MatDialog) {
} }
preparelevels: any//编制级别下拉框
ngOnInit(): void { ngOnInit(): void {
sessionStorage.setItem('gisplan', 'look') sessionStorage.setItem('gisplan', 'look')
let level = sessionStorage.getItem("level"); let level = sessionStorage.getItem("level");
//编制级别下拉框
if (level == "0") {//如果是总队 if (level == "0") {//如果是总队
this.preparelevels = [ this.preparelevels = [
{ name: "总队", value: "0" }, { name: "总队", value: "0" },
@ -37,7 +38,6 @@ export class WaitExamineerComponent implements OnInit {
{ name: "大队", value: "2" }, { name: "大队", value: "2" },
{ name: "中队", value: "3" } { name: "中队", value: "3" }
] ]
//this.PlanLevel=0
} }
if (level == "1") {//如果是支队 if (level == "1") {//如果是支队
this.preparelevels = [ this.preparelevels = [
@ -45,60 +45,39 @@ export class WaitExamineerComponent implements OnInit {
{ name: "大队", value: "2" }, { name: "大队", value: "2" },
{ name: "中队", value: "3" } { name: "中队", value: "3" }
] ]
//this.PlanLevel=1
} }
if (level == "2") {//如果是大队 if (level == "2") {//如果是大队
this.preparelevels = [ this.preparelevels = [
{ name: "大队", value: "2" }, { name: "大队", value: "2" },
{ name: "中队", value: "3" } { name: "中队", value: "3" }
] ]
//this.PlanLevel=2
} }
if (level == "3") {//如果是中队 if (level == "3") {//如果是中队
this.preparelevels = [ this.preparelevels = [
{ name: "中队", value: "3" } { name: "中队", value: "3" }
] ]
//this.PlanLevel=3
}
var scrollflaga = true;
var win=document.getElementById('tbodydiv')
/* window.setTimeout(()=>{
var a = document.getElementById("table").offsetTop;
window.onscroll=function(){
if(scrollflaga){
if(a>=win.scrollTop&&a<(win.scrollTop+win.offsetHeight)){
scrollflaga=false
this.getAlltabledate()
}
}
} }
}) */
this.getAlltabledate() this.getAlltabledate()
this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src); // this.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(this.src);
} }
planTypeIndex //平面图类型 是总平面图还是层平面图 planTypeIndex //平面图类型 选择是总平面图还是层平面图
selectedIndexChange(e) { selectedIndexChange(e) {
this.selected.setValue(e) this.selected.setValue(e)
// console.log(6666,e)
if (e == 1) { if (e == 1) {
this.planTypeIndex = 'zong' this.planTypeIndex = 'zong'
} else if (e == 2) { } else if (e == 2) {
this.planTypeIndex = 'ceng' this.planTypeIndex = 'ceng'
} }
} }
ngOnDestroy () {
/* this.indexbar.clear()
this.indexbar.dispose() */
} src: any //毕生word文档地址
iframeSrc: any //毕生word文档地址 ---> 主要转成frame安全链接
iframeSrc
src=''
preparelevels:any
selected = new FormControl(0); //选项卡 实例 selected = new FormControl(0); //选项卡 实例
level = ''//操作类型 level = ''//操作类型
js//组织机构 js//组织机构
addtime//时间 addtime//时间
@ -150,13 +129,53 @@ export class WaitExamineerComponent implements OnInit {
let level = sessionStorage.getItem("level"); let level = sessionStorage.getItem("level");
this.getAlltabledate() this.getAlltabledate()
} }
//radio点击事件 //radio点击事件
viewer//全景图对象 viewer//全景图对象
waterData: any//需要传递给子组件的水源信息 waterData: any//需要传递给子组件的水源信息
LinkageForceDetailInfo: any//需要传递给子组件的联动力量信息 LinkageForceDetailInfo: any//需要传递给子组件的联动力量信息
fireForceDetailInfo: any//需要传递给子组件的消防力量信息 fireForceDetailInfo: any//需要传递给子组件的消防力量信息
postlevel: any postlevel: any
selectedItem: any
differentContent: any//当前单位变更数据
differentContentOfUnitInfo: any//当前单位变更数据 之 单位信息
differentContentOfBuildingsInfo: any//当前单位变更数据 之 建筑信息
differentContentOfFunction: any = []//当前单位变更数据 之 功能分区
differentContentOfPicture: any//当前单位变更数据 之 实景图
radioClick(e, item) { radioClick(e, item) {
this.selectedItem = item
// console.log('当前选择的单位',this.selectedItem)
// console.log('当前选择的信息',JSON.parse(this.selectedItem.differentContent) )
let differentContent = JSON.parse(this.selectedItem.differentContent)
// 单位信息
this.differentContentOfUnitInfo = differentContent.filter(item => item.propertyName == 'basicInfo')
// 实景图
this.differentContentOfPicture = differentContent.filter(item => item.propertyName == 'realityImageGroups')
//建筑信息
this.differentContentOfBuildingsInfo = JSON.parse(JSON.stringify(differentContent.filter(item => item.propertyName == 'buildings')[0]))
this.differentContentOfBuildingsInfo.childrens.forEach(element => {
element.childrens = element.childrens.filter(item => item.isObj == false)
});
//功能分区
let differentContentOfFunction = JSON.parse(JSON.stringify(differentContent.filter(item => item.propertyName == 'buildings')[0]))
this.differentContentOfFunction = []
differentContentOfFunction.childrens.forEach(item => {
item.childrens.forEach(i => {
if (i.propertyName == "buildingFunctionalDivisions") {
i.propertyName = item.propertyName
this.differentContentOfFunction.push(i)
}
});
});
console.log('功能分区', this.differentContentOfFunction)
this.showtype = -1 this.showtype = -1
this.organizationName = '' this.organizationName = ''
this.itemid = item.itemId this.itemid = item.itemId
@ -241,8 +260,6 @@ export class WaitExamineerComponent implements OnInit {
}) })
} }
if (e.checked) { if (e.checked) {
this.shenheTable.push(item) this.shenheTable.push(item)
} }
@ -254,8 +271,6 @@ export class WaitExamineerComponent implements OnInit {
} }
} }
this.radioid = item.itemId this.radioid = item.itemId
/* this.chuorzhong=item.verifyState
this.radioid=item.itemId */
} }
//毕升 //毕升
@ -291,7 +306,6 @@ export class WaitExamineerComponent implements OnInit {
var base64 = CryptoJS.enc.Base64.stringify(wordArray); var base64 = CryptoJS.enc.Base64.stringify(wordArray);
this.src = `http://121.5.10.84:80/apps/editor/openPreview?data=${base64}` this.src = `http://121.5.10.84:80/apps/editor/openPreview?data=${base64}`
this.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(this.src); this.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(this.src);
//window.open(`http://121.5.10.84:80/apps/editor/openPreview?data=${base64}`)
}) })
} }
//查看按钮跳转 //查看按钮跳转
@ -344,11 +358,16 @@ export class WaitExamineerComponent implements OnInit {
oopen3Dshow() { oopen3Dshow() {
this.dialog.open(show3D, { width: '1650px', height: '850px', data: { url: this.thirdPartyURL, twoOrthree: this.twoOrthree, radioid: this.radioid } }); this.dialog.open(show3D, { width: '1650px', height: '850px', data: { url: this.thirdPartyURL, twoOrthree: this.twoOrthree, radioid: this.radioid } });
} }
//变更数据和全部数据切换按钮 //变更数据和全部数据切换按钮
buttonChange() { buttonChange() {
this.isallDate = !this.isallDate this.isallDate = !this.isallDate
this.previewshow = false this.previewshow = false
} }
//同意操作 //同意操作
agree() { agree() {
var agreeList = [] var agreeList = []

36
src/app/plan-management/entry-plan/entry-plan.component.html

@ -160,9 +160,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div> <div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div>
</div> </div>
<span>{{(element.company.companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}</span> <span>{{(element.company.companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}%</span>
</div> </div>
<div class="number">5</div> <div class="number">5%</div>
</li> </li>
<li> <li>
<div class="name">建筑信息</div> <div class="name">建筑信息</div>
@ -170,9 +170,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.company.companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}</span> <span>{{(element.company.companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">平面图</div> <div class="name">平面图</div>
@ -180,9 +180,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.company.companyIntegrityScore.planImageScore * 10).toFixed(1)}}</span> <span>{{(element.company.companyIntegrityScore.planImageScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">四周毗邻</div> <div class="name">四周毗邻</div>
@ -190,9 +190,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.company.companyIntegrityScore.adjoinScore * 10).toFixed(1)}}</span> <span>{{(element.company.companyIntegrityScore.adjoinScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">消防设施</div> <div class="name">消防设施</div>
@ -200,9 +200,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div> <div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div>
</div> </div>
<span>{{(element.company.companyIntegrityScore.facilityScore * 25).toFixed(1)}}</span> <span>{{(element.company.companyIntegrityScore.facilityScore * 25).toFixed(1)}}%</span>
</div> </div>
<div class="number">25</div> <div class="number">25%</div>
</li> </li>
<li> <li>
<div class="name">重点部位</div> <div class="name">重点部位</div>
@ -210,9 +210,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.company.companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}</span> <span>{{(element.company.companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">功能分区</div> <div class="name">功能分区</div>
@ -220,9 +220,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.company.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}</span> <span>{{(element.company.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">实景图</div> <div class="name">实景图</div>
@ -230,9 +230,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.company.companyIntegrityScore.realityImageScore * 10).toFixed(1)}}</span> <span>{{(element.company.companyIntegrityScore.realityImageScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">CAD上传</div> <div class="name">CAD上传</div>
@ -240,9 +240,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.company.companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.company.companyIntegrityScore.cadScore * 10).toFixed(1)}}</span> <span>{{(element.company.companyIntegrityScore.cadScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
</ul> </ul>
</div> </div>

36
src/app/plan-management/maintain-up/maintain-up.component.html

@ -156,9 +156,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}%</span>
</div> </div>
<div class="number">5</div> <div class="number">5%</div>
</li> </li>
<li> <li>
<div class="name">建筑信息</div> <div class="name">建筑信息</div>
@ -166,9 +166,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">平面图</div> <div class="name">平面图</div>
@ -176,9 +176,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.planImageScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.planImageScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">四周毗邻</div> <div class="name">四周毗邻</div>
@ -186,9 +186,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.adjoinScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.adjoinScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">消防设施</div> <div class="name">消防设施</div>
@ -196,9 +196,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.facilityScore * 25).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.facilityScore * 25).toFixed(1)}}%</span>
</div> </div>
<div class="number">25</div> <div class="number">25%</div>
</li> </li>
<li> <li>
<div class="name">重点部位</div> <div class="name">重点部位</div>
@ -206,9 +206,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">功能分区</div> <div class="name">功能分区</div>
@ -216,9 +216,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">实景图</div> <div class="name">实景图</div>
@ -226,9 +226,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.realityImageScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.realityImageScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">CAD上传</div> <div class="name">CAD上传</div>
@ -236,9 +236,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(element.companyIntegrityScore.cadScore * 10).toFixed(1)}}</span> <span>{{(element.companyIntegrityScore.cadScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
</ul> </ul>
</div> </div>

60
src/app/tabbar/tabbar.component.html

@ -20,9 +20,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div> <div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div>
</div> </div>
<span>{{(companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}</span> <span>{{(companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}%</span>
</div> </div>
<div class="number">5</div> <div class="number">5%</div>
</li> </li>
<li> <li>
<div class="name">建筑信息</div> <div class="name">建筑信息</div>
@ -30,9 +30,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}</span> <span>{{(companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">平面图</div> <div class="name">平面图</div>
@ -40,9 +40,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(companyIntegrityScore.planImageScore * 10).toFixed(1)}}</span> <span>{{(companyIntegrityScore.planImageScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">四周毗邻</div> <div class="name">四周毗邻</div>
@ -50,9 +50,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(companyIntegrityScore.adjoinScore * 10).toFixed(1)}}</span> <span>{{(companyIntegrityScore.adjoinScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">消防设施</div> <div class="name">消防设施</div>
@ -60,9 +60,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div> <div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div>
</div> </div>
<span>{{(companyIntegrityScore.facilityScore * 25).toFixed(1)}}</span> <span>{{(companyIntegrityScore.facilityScore * 25).toFixed(1)}}%</span>
</div> </div>
<div class="number">25</div> <div class="number">25%</div>
</li> </li>
<li> <li>
<div class="name">重点部位</div> <div class="name">重点部位</div>
@ -70,9 +70,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}</span> <span>{{(companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">功能分区</div> <div class="name">功能分区</div>
@ -80,9 +80,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}</span> <span>{{(companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">实景图</div> <div class="name">实景图</div>
@ -90,9 +90,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(companyIntegrityScore.realityImageScore * 10).toFixed(1)}}</span> <span>{{(companyIntegrityScore.realityImageScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
<li> <li>
<div class="name">CAD上传</div> <div class="name">CAD上传</div>
@ -100,9 +100,9 @@
<div class="colorDivBac"> <div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div> <div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div>
</div> </div>
<span>{{(companyIntegrityScore.cadScore * 10).toFixed(1)}}</span> <span>{{(companyIntegrityScore.cadScore * 10).toFixed(1)}}%</span>
</div> </div>
<div class="number">10</div> <div class="number">10%</div>
</li> </li>
</ul> </ul>
</div> </div>
@ -117,12 +117,12 @@
<div class="scoringRule" *ngIf="companyIntegrityScore"> <div class="scoringRule" *ngIf="companyIntegrityScore">
<span class="name" (click)="scoringRule()"> <span class="name" (click)="scoringRule()">
计分规则 信息完整度规则
</span> </span>
<div class="scoringRuleImg" *ngIf="scoringRuleImg"> <div class="scoringRuleImg" *ngIf="scoringRuleImg">
<div class="topbox"> <div class="topbox">
<span style="font-size: 18px;margin-left: 20px;font-weight: 600;">计分规则 &nbsp;</span> <span style="font-size: 18px;margin-left: 20px;font-weight: 600;">信息完整度规则 &nbsp;</span>
<span style="font-size: 12px;">单位基本信息部分共计100分</span> <!-- <span style="font-size: 12px;">单位基本信息部分共计100分</span> -->
<span class="imgbox"> <span class="imgbox">
<img src="../../assets/images/ruletopimg.png" alt=""> <img src="../../assets/images/ruletopimg.png" alt="">
</span> </span>
@ -139,47 +139,47 @@
</tr> </tr>
<tr> <tr>
<td>单位名称</td> <td>单位名称</td>
<td class="bulecolor">5</td> <td class="bulecolor">5%</td>
<td>按填录入内容评判</td> <td>按填录入内容评判</td>
</tr> </tr>
<tr> <tr>
<td>建筑信息</td> <td>建筑信息</td>
<td class="bulecolor">10</td> <td class="bulecolor">10%</td>
<td>根据创建的建筑个数平分该分值,每个建筑根据实际填写的完整度再进行评判</td> <td>根据创建的建筑个数平分该分值,每个建筑根据实际填写的完整度再进行评判</td>
</tr> </tr>
<tr> <tr>
<td>四周毗邻</td> <td>四周毗邻</td>
<td class="bulecolor">10</td> <td class="bulecolor">10%</td>
<td><span class="bulecolor">4</span>个方向均分,每个方向的属性信息要填写完整才能得分</td> <td><span class="bulecolor">4</span>个方向均分,每个方向的属性信息要填写完整才能得分</td>
</tr> </tr>
<tr> <tr>
<td>消防设施</td> <td>消防设施</td>
<td class="bulecolor">25</td> <td class="bulecolor">25%</td>
<td>消防水源占<span class="bulecolor">30%</span> &nbsp;&nbsp;&nbsp; 安全疏散占<span class="bulecolor">30%</span> <br> 消防水系统占<span class="bulecolor">30%</span> &nbsp;&nbsp;&nbsp; 内部消防力量占<span class="bulecolor">10%</span></td> <td>消防水源占<span class="bulecolor">30%</span> &nbsp;&nbsp;&nbsp; 安全疏散占<span class="bulecolor">30%</span> <br> 消防水系统占<span class="bulecolor">30%</span> &nbsp;&nbsp;&nbsp; 内部消防力量占<span class="bulecolor">10%</span></td>
</tr> </tr>
<tr> <tr>
<td>重点部位</td> <td>重点部位</td>
<td class="bulecolor">10</td> <td class="bulecolor">10%</td>
<td><span>根据耐火等级做区分</span>:一级:添加<span class="bulecolor">3</span>个重点部位(1个50%,2个80%,3个满分)<span class="bulecolor">二级</span>:添加<span class="bulecolor">2</span>个重点部位(一个占50%)<span class="bulecolor">三级</span> 添加<span class="bulecolor">1</span>个重点部位 其它:填写重点提示自动满分</td> <td><span>根据耐火等级做区分</span>:一级:添加<span class="bulecolor">3</span>个重点部位(1个50%,2个80%,3个满分)<span class="bulecolor">二级</span>:添加<span class="bulecolor">2</span>个重点部位(一个占50%)<span class="bulecolor">三级</span> 添加<span class="bulecolor">1</span>个重点部位 其它:填写重点提示自动满分</td>
</tr> </tr>
<tr> <tr>
<td>功能分区</td> <td>功能分区</td>
<td class="bulecolor">10</td> <td class="bulecolor">10%</td>
<td>创建<span class="bulecolor">2</span>条并填写完整得满分</td> <td>创建<span class="bulecolor">2</span>条并填写完整得满分</td>
</tr> </tr>
<tr> <tr>
<td>实景图</td> <td>实景图</td>
<td class="bulecolor">10</td> <td class="bulecolor">10%</td>
<td>外观,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">30%</span>); 室内,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">30%</span>);安全出口,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">40%</span></td> <td>外观,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">30%</span>); 室内,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">30%</span>);安全出口,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">40%</span></td>
</tr> </tr>
<tr> <tr>
<td>CAD上传</td> <td>CAD上传</td>
<td class="bulecolor">10</td> <td class="bulecolor">10%</td>
<td>上传<span class="bulecolor">2</span>个cad文件</td> <td>上传<span class="bulecolor">2</span>个cad文件</td>
</tr> </tr>
<tr> <tr>
<td>平面图</td> <td>平面图</td>
<td class="bulecolor">10</td> <td class="bulecolor">10%</td>
<td>总平面图<span class="bulecolor">1</span>张,建筑平面图<span class="bulecolor">1</span></td> <td>总平面图<span class="bulecolor">1</span>张,建筑平面图<span class="bulecolor">1</span></td>
</tr> </tr>
</table> </table>

2
src/app/tabbar/tabbar.component.scss

@ -196,7 +196,7 @@ mat-icon{
border-radius: 6px; border-radius: 6px;
color: #2196F3; color: #2196F3;
display: inline-block; display: inline-block;
width: 100px; width: 128px;
height:36px; height:36px;
text-align: center; text-align: center;
line-height: 36px; line-height: 36px;

10
src/app/ui/collection-tools-plan/addPlaneFigure.html

@ -12,13 +12,13 @@
</mat-form-field> </mat-form-field>
</div> </div>
<div class="keyMargin"> <!-- <div class="keyMargin">
<a href="javascript:;" class="uploadBackGround" (click)='toGIS()'>导入GIS地图</a> <a href="javascript:;" class="uploadBackGround" (click)='toGIS()' [ngClass]="{'uploadBackGroundSelected': selectedType == 'gis'}">导入GIS地图</a>
</div> </div> -->
<div class="keyMargin"> <div class="keyMargin">
<a href="javascript:;" class="uploadBackGround"> <a href="javascript:;" class="uploadBackGround" [ngClass]="{'uploadBackGroundSelected': selectedType == 'image'}">
<input type="file" (change)='selectFile($event)' accept="image/*">上传本地图片 <input id="uploadFile" type="file" (change)='selectFile($event)' accept="image/*">上传本地图片
</a> </a>
<p *ngIf="file" style="font-size: 14px; text-align: left;">选择文件: {{file.name}}</p> <p *ngIf="file" style="font-size: 14px; text-align: left;">选择文件: {{file.name}}</p>
</div> </div>

212
src/app/ui/collection-tools-plan/collection-tools.component.html

@ -12,10 +12,12 @@
<mat-checkbox color="primary" [(ngModel)]="isMultiSelect" (change)='changeMultiSelect($event)'></mat-checkbox> 多选 <mat-checkbox color="primary" [(ngModel)]="isMultiSelect" (change)='changeMultiSelect($event)'></mat-checkbox> 多选
</span> </span>
<span class="marginLeftRight"> <span class="marginLeftRight">
<mat-checkbox color="primary" [(ngModel)]="isShowLegend" (change)='changeLegend($event)' [disabled]='this.canvasData.selectPanelPoint.BackgroundImageUrl'></mat-checkbox> 显示图例 <mat-checkbox color="primary" [(ngModel)]="isShowLegend" (change)='changeLegend($event)'
[disabled]='this.canvasData.selectPanelPoint.BackgroundImageUrl'></mat-checkbox> 显示图例
</span> </span>
<button (click)="copyAsset()" class="copytobutn marginLeftRight" mat-button title="复制" style="margin:0 5px;" *ngIf="isEditPattern"> <button (click)="copyAsset()" class="copytobutn marginLeftRight" mat-button title="复制" style="margin:0 5px;"
*ngIf="isEditPattern">
复制<mat-icon>library_books</mat-icon> 复制<mat-icon>library_books</mat-icon>
</button> </button>
<button (click)="pasteAsset()" class="copytobutn marginLeftRight" mat-button title="粘贴" *ngIf="isEditPattern"> <button (click)="pasteAsset()" class="copytobutn marginLeftRight" mat-button title="粘贴" *ngIf="isEditPattern">
@ -37,7 +39,9 @@
<span class="rightSave"> <span class="rightSave">
<!-- <mat-icon title="查看/编辑模式" (click)="lookpat()" *ngIf="isEditPattern">tv</mat-icon> <!-- <mat-icon title="查看/编辑模式" (click)="lookpat()" *ngIf="isEditPattern">tv</mat-icon>
<mat-icon title="查看/编辑模式" (click)="editpat()" *ngIf="!isEditPattern && isediticon">create</mat-icon> --> <mat-icon title="查看/编辑模式" (click)="editpat()" *ngIf="!isEditPattern && isediticon">create</mat-icon> -->
<label title="保存" (click)="saveSite()" *ngIf="isEditPattern"><mat-icon>description</mat-icon>保存</label> <label title="保存" (click)="saveSite()" *ngIf="isEditPattern">
<mat-icon>description</mat-icon>保存
</label>
</span> </span>
</div> </div>
@ -46,9 +50,13 @@
<div class='functionalDomainContent' id="functionalDomainContent"> <div class='functionalDomainContent' id="functionalDomainContent">
<!-- H5Canvas --> <!-- H5Canvas -->
<app-working-area #canvas [init]='this'></app-working-area> <app-working-area *ngIf="!isGis" #canvas [init]='this'></app-working-area>
<!-- gis -->
<div *ngIf="isGis" id="container" style="width: 100%;height: 100%;"></div>
<!-- H5Canvas --> <!-- H5Canvas -->
<div id="leftDiv" (mousewheel)="$event.stopPropagation()" class='functionalDomainLeft publicCss' [ngClass]="{'togglePanel': toggleExpandPanel==true,'scenarioAssignment': !pattern}" style="user-select: none;"> <div id="leftDiv" (mousewheel)="$event.stopPropagation()" class='functionalDomainLeft publicCss'
[ngClass]="{'togglePanel': toggleExpandPanel==true,'scenarioAssignment': !pattern}" style="user-select: none;">
<div class="leftDragDiv" (mousedown)="leftDivMouseDown($event)"></div> <div class="leftDragDiv" (mousedown)="leftDivMouseDown($event)"></div>
<!-- 平面图 --> <!-- 平面图 -->
<div class="planarGraph" style="display: flex;flex-direction: column;"> <div class="planarGraph" style="display: flex;flex-direction: column;">
@ -61,26 +69,34 @@
</label> </label>
</div> </div>
<div [hidden]="!togglePlane" style="flex: 1;"> <div [hidden]="!togglePlane" style="flex: 1;">
<div class="sitePlanContent" *ngFor="let item of sitePlanData;let key = index" [ngClass]="{'isRefugeStorey':item.isRefugeStorey==true,'selectSitePlan': selectSitePlanIndex==key}" (click)='selectSitePlan(item,key)'> <div class="sitePlanContent" *ngFor="let item of sitePlanData;let key = index"
<label class="overflowText" style="display:inline-block; max-width: 160px;"><mat-icon *ngIf="!item.imageUrl" class="matIcons">broken_image</mat-icon>{{item.name}}</label> [ngClass]="{'isRefugeStorey':item.isRefugeStorey==true,'selectSitePlan': selectSitePlanIndex==key}"
(click)='selectSitePlan(item,key)'>
<label class="overflowText" style="display:inline-block; max-width: 160px;">
<mat-icon *ngIf="!item.imageUrl" class="matIcons">broken_image</mat-icon>{{item.name}}
</label>
<a href="javascript:;" class="fireForce" *ngIf="isEditPattern && !pattern"> <a href="javascript:;" class="fireForce" *ngIf="isEditPattern && !pattern">
<img src="../../../assets/images/fire.png" *ngIf="item.fire && item.fire==2"> <img src="../../../assets/images/fire.png" *ngIf="item.fire && item.fire==2">
<img src="../../../assets/images/noFire.png" *ngIf="item.fire && item.fire==1"> <img src="../../../assets/images/noFire.png" *ngIf="item.fire && item.fire==1">
<img src="../../../assets/images/force.png" *ngIf="item.force && item.force==2"> <img src="../../../assets/images/force.png" *ngIf="item.force && item.force==2">
<img src="../../../assets/images/noForce.png" *ngIf="item.force && item.force==1"> <img src="../../../assets/images/noForce.png" *ngIf="item.force && item.force==1">
</a> </a>
<a href="javascript:;" class="a-upload" *ngIf="selectSitePlanIndex==key && isEditPattern && pattern" title="替换底图" > <a href="javascript:;" class="a-upload" *ngIf="selectSitePlanIndex==key && isEditPattern && pattern && !item.isGis"
title="替换底图">
<input type="file" (change)='replaceBaseMap($event,item)' accept="image/*"> <input type="file" (change)='replaceBaseMap($event,item)' accept="image/*">
<mat-icon class="matIcons">photo_size_select_actual</mat-icon> <mat-icon class="matIcons">photo_size_select_actual</mat-icon>
</a> </a>
<a href="javascript:;" id="a-uploadImg" *ngIf="selectSitePlanIndex==key && !item.imageUrl && isEditPattern" title="上传底图" > <a href="javascript:;" id="a-uploadImg"
*ngIf="selectSitePlanIndex==key && !item.imageUrl && isEditPattern" title="上传底图">
<input type="file" (change)='replaceBaseMap($event,item)' accept="image/*"> <input type="file" (change)='replaceBaseMap($event,item)' accept="image/*">
<img src="../../../assets/images/upload.jpg"> <img src="../../../assets/images/upload.jpg">
</a> </a>
<!-- 右边定位操作栏 --> <!-- 右边定位操作栏 -->
<div id="rightOperate" *ngIf="selectSitePlanIndex==key && item.imageUrl && isEditPattern" (click)="$event.stopPropagation();"> <div id="rightOperate" *ngIf="selectSitePlanIndex==key && item.imageUrl && isEditPattern"
(click)="$event.stopPropagation();">
<p class="functionButton"> <p class="functionButton">
<mat-icon class="functionIcon bigFunctionIcon" title="上移" (click)='moveUp(item,key)'>keyboard_arrow_up</mat-icon> <mat-icon class="functionIcon bigFunctionIcon" title="上移" (click)='moveUp(item,key)'>keyboard_arrow_up
</mat-icon>
</p> </p>
<p class="functionButton"> <p class="functionButton">
<mat-icon class="functionIcon" title="编辑属性" (click)='editPlaneData(item)'>edit</mat-icon> <mat-icon class="functionIcon" title="编辑属性" (click)='editPlaneData(item)'>edit</mat-icon>
@ -91,7 +107,8 @@
<mat-icon class="functionIcon" title="复制" (click)="duplicateLayer(item)">library_books</mat-icon> <mat-icon class="functionIcon" title="复制" (click)="duplicateLayer(item)">library_books</mat-icon>
</p> </p>
<p class="functionButton"> <p class="functionButton">
<mat-icon class="functionIcon bigFunctionIcon" title="下移" (click)='moveDown(item,key)'>keyboard_arrow_down</mat-icon> <mat-icon class="functionIcon bigFunctionIcon" title="下移" (click)='moveDown(item,key)'>
keyboard_arrow_down</mat-icon>
</p> </p>
</div> </div>
<!-- 右边定位操作栏 --> <!-- 右边定位操作栏 -->
@ -111,7 +128,8 @@
<input type="text" class="searchLibrary" [(ngModel)]="searchInput" (ngModelChange)="libraryChange()"> <input type="text" class="searchLibrary" [(ngModel)]="searchInput" (ngModelChange)="libraryChange()">
<div class="panelLibraryFlex" *ngIf="searchLibrary.length"> <div class="panelLibraryFlex" *ngIf="searchLibrary.length">
<div class="imgBox" *ngFor="let items of searchLibrary;let key = index" [title]="items.name" <div class="imgBox" *ngFor="let items of searchLibrary;let key = index" [title]="items.name"
[ngClass]="{'selectImg': selectLibrary=='搜索' && selectImageIndex==key}" (click)='selectImg({name:"搜索"},items,key)'> [ngClass]="{'selectImg': selectLibrary=='搜索' && selectImageIndex==key}"
(click)='selectImg({name:"搜索"},items,key)'>
<img [src]="items.imageUrl" onerror="javascript:this.src='../../../assets/images/noImg.png'"> <img [src]="items.imageUrl" onerror="javascript:this.src='../../../assets/images/noImg.png'">
<p class="overflowText">{{items.name}}</p> <p class="overflowText">{{items.name}}</p>
</div> </div>
@ -126,7 +144,8 @@
<div class="panelLibraryFlex"> <div class="panelLibraryFlex">
<div class="imgBox" *ngFor="let items of item.images;let key = index" [title]="items.name" <div class="imgBox" *ngFor="let items of item.images;let key = index" [title]="items.name"
[ngClass]="{'selectImg': selectLibrary==item.name && selectImageIndex==key}" (click)='selectImg(item,items,key)'> [ngClass]="{'selectImg': selectLibrary==item.name && selectImageIndex==key}"
(click)='selectImg(item,items,key)'>
<img [src]="items.imageUrl" onerror="javascript:this.src='../../../assets/images/noImg.png'"> <img [src]="items.imageUrl" onerror="javascript:this.src='../../../assets/images/noImg.png'">
<p class="overflowText">{{items.name}}</p> <p class="overflowText">{{items.name}}</p>
</div> </div>
@ -141,14 +160,18 @@
</div> </div>
<div id="rightDiv" (mousewheel)="$event.stopPropagation()" class="functionalDomainRight publicCss " [ngClass]="{'togglePanel2': toggleExpandPanelRight==true}" style="user-select: none;"> <div id="rightDiv" (mousewheel)="$event.stopPropagation()" class="functionalDomainRight publicCss "
[ngClass]="{'togglePanel2': toggleExpandPanelRight==true}" style="user-select: none;">
<!-- 右侧div鼠标拖动div --> <!-- 右侧div鼠标拖动div -->
<div style="width: 3px;height: 100%;position: absolute;left: 0;cursor: e-resize;z-index: 1000;" (mousedown)="rightDivMouseDown($event)"></div> <div style="width: 3px;height: 100%;position: absolute;left: 0;cursor: e-resize;z-index: 1000;"
(mousedown)="rightDivMouseDown($event)"></div>
<!-- 属性 --> <!-- 属性 -->
<div [ngClass]="{'forbidden': !isEditPattern}" id="property" class="property" style="height: 100%;background-color: white;"> <div [ngClass]="{'forbidden': !isEditPattern}" id="property" class="property"
style="height: 100%;background-color: white;">
<div class="rightTitle">属性</div> <div class="rightTitle">属性</div>
<!-- 平面图属性 --> <!-- 平面图属性 -->
<div class="siteproperty" style="user-select: none" *ngIf="isShowProperty && isShowAttribute && !isMultipleAsset"> <div class="siteproperty" style="user-select: none"
*ngIf="isShowProperty && isShowAttribute && !isMultipleAsset">
<p>面积(平方米)</p> <p>面积(平方米)</p>
<div class="siteproperty_size">{{canvasData.selectStorey.area}}</div> <div class="siteproperty_size">{{canvasData.selectStorey.area}}</div>
<p>详情</p> <p>详情</p>
@ -157,20 +180,25 @@
</div> </div>
</div> </div>
<!-- 素材属性 --> <!-- 素材属性 -->
<div class="assetsproperty" style="user-select: none" *ngIf="isShowProperty && !isShowAttribute && !isMultipleAsset"> <div class="assetsproperty" style="user-select: none"
*ngIf="isShowProperty && !isShowAttribute && !isMultipleAsset">
<h3 style="text-align: center;font-weight: 900;">{{assetName}}</h3> <h3 style="text-align: center;font-weight: 900;">{{assetName}}</h3>
<div *ngIf="canvasAssetObj.InteractiveMode == 0"> <div *ngIf="canvasAssetObj.InteractiveMode == 0">
<p>宽度(像素)</p> <p>宽度(像素)</p>
<input type="number" class="biginput" [(ngModel)]="assetWidth" (input)="assetWidthIunput()" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> <input type="number" class="biginput" [(ngModel)]="assetWidth" (input)="assetWidthIunput()"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<p>高度(像素)</p> <p>高度(像素)</p>
<input type="number" class="biginput" [(ngModel)]="assetHeight" (input)="assetHeightIunput()" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> <input type="number" class="biginput" [(ngModel)]="assetHeight" (input)="assetHeightIunput()"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<p>角度</p> <p>角度</p>
<div style="width: 100%;display: flex;vertical-align: top;height: 22px;"> <div style="width: 100%;display: flex;vertical-align: top;height: 22px;">
<input type="number" class="smallinput" [(ngModel)]="sliderValue" <input type="number" class="smallinput" [(ngModel)]="sliderValue"
oninput="if(value>360)value=360;if(value<0)value=0;" (input)="assetAngleIunput()" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> oninput="if(value>360)value=360;if(value<0)value=0;" (input)="assetAngleIunput()"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<mat-slider color="primary" min="0" max="360" step="1" style="bottom: 12px;left: 2px;width: 70%;" <mat-slider color="primary" min="0" max="360" step="1" style="bottom: 12px;left: 2px;width: 70%;"
[(ngModel)]="sliderValue" (change)="assetAngleIunput()" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"></mat-slider> [(ngModel)]="sliderValue" (change)="assetAngleIunput()"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"></mat-slider>
</div> </div>
</div> </div>
<!-- 如果是多点连线 --> <!-- 如果是多点连线 -->
@ -178,15 +206,18 @@
<p>厚度</p> <p>厚度</p>
<div style="width: 100%;display: flex;vertical-align: top;height: 22px;"> <div style="width: 100%;display: flex;vertical-align: top;height: 22px;">
<input type="number" class="smallinput" [(ngModel)]="sliderValueThickness" <input type="number" class="smallinput" [(ngModel)]="sliderValueThickness"
oninput="if(value>999)value=999;if(value<0)value=0;" (input)="assetThicknessIunput()" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> oninput="if(value>999)value=999;if(value<0)value=0;" (input)="assetThicknessIunput()"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<mat-slider color="primary" min="0" max="999" step="1" style="bottom: 12px;left: 2px;width: 70%;" <mat-slider color="primary" min="0" max="999" step="1" style="bottom: 12px;left: 2px;width: 70%;"
[(ngModel)]="sliderValueThickness" (change)="assetThicknessIunput()" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"></mat-slider> [(ngModel)]="sliderValueThickness" (change)="assetThicknessIunput()"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"></mat-slider>
</div> </div>
</div> </div>
<p style="margin-top: 4px;margin-bottom: 0px;">是否高亮</p> <p style="margin-top: 4px;margin-bottom: 0px;">是否高亮</p>
<div> <div>
<input (change)="assetHighLightIunput()" class="input" [(ngModel)]="isHighLight" type="checkbox" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> <input (change)="assetHighLightIunput()" class="input" [(ngModel)]="isHighLight" type="checkbox"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<span style="font-size: 14px;">选中高亮</span> <span style="font-size: 14px;">选中高亮</span>
</div> </div>
<div class="colorBigDiv" *ngIf="canvasAssetObj.FillMode == 0"> <div class="colorBigDiv" *ngIf="canvasAssetObj.FillMode == 0">
@ -198,47 +229,67 @@
</div> </div>
<div class="colorDiv" *ngIf="isEditPattern && pattern && canvasAssetObj.GameMode == 0"> <div class="colorDiv" *ngIf="isEditPattern && pattern && canvasAssetObj.GameMode == 0">
<ul> <ul>
<li (click)="selectcolor(item,key)" class="colorLi" *ngFor="let item of colors,let key=index" [style]="{'background-color':item}"></li> <li (click)="selectcolor(item,key)" class="colorLi" *ngFor="let item of colors,let key=index"
[style]="{'background-color':item}"></li>
</ul> </ul>
</div> </div>
<span style="color: #9c9fa5;font-size: 14px;">透明度</span> <span style="color: #9c9fa5;font-size: 14px;">透明度</span>
<mat-slider color="primary" min="0" max="100%" step="1" style="left: 1px; width: 55%;min-width: 90px;" <mat-slider color="primary" min="0" max="100%" step="1" style="left: 1px; width: 55%;min-width: 90px;"
[(ngModel)]="colorDivSliderValue" (change)="colorDivSliderChange()" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"></mat-slider> [(ngModel)]="colorDivSliderValue" (change)="colorDivSliderChange()"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"></mat-slider>
<span style="color: #9c9fa5;font-size: 12px;">{{colorDivSliderValue}}%</span> <span style="color: #9c9fa5;font-size: 12px;">{{colorDivSliderValue}}%</span>
</div> </div>
<div *ngFor="let item of PropertyInfos;index as key "> <div *ngFor="let item of PropertyInfos;index as key ">
<!-- 单行文本 --> <!-- 单行文本 -->
<div *ngIf="item.PropertyType == 0"> <div *ngIf="item.PropertyType == 0">
<p>{{item.PropertyName}}<span style="font-size: 14px;" *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p> <p>{{item.PropertyName}}<span style="font-size: 14px;"
<input type="text" class="biginput" [value]="item.PropertyValue" (input)="assetInputChange(item,$event)" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p>
<input type="text" class="biginput" [value]="item.PropertyValue" (input)="assetInputChange(item,$event)"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
</div> </div>
<!-- 多行文本 --> <!-- 多行文本 -->
<div *ngIf="item.PropertyType == 1"> <div *ngIf="item.PropertyType == 1">
<p>{{item.PropertyName}}<span style="font-size: 14px;" *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p> <p>{{item.PropertyName}}<span style="font-size: 14px;"
<textarea class="textarea" name="" id="" [value]="item.PropertyValue" (input)="assetInputChange(item,$event)" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"></textarea> *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p>
<textarea class="textarea" name="" id="" [value]="item.PropertyValue"
(input)="assetInputChange(item,$event)"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"></textarea>
</div> </div>
<!-- 数值 --> <!-- 数值 -->
<div *ngIf="item.PropertyType == 2"> <div *ngIf="item.PropertyType == 2">
<p>{{item.PropertyName}}<span style="font-size: 14px;" *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p> <p>{{item.PropertyName}}<span style="font-size: 14px;"
<input type="number" class="biginput" [value]="item.PropertyValue" (input)="assetInputChange(item,$event)" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p>
<input type="number" class="biginput" [value]="item.PropertyValue"
(input)="assetInputChange(item,$event)"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
</div> </div>
<!-- 图片数量 --> <!-- 图片数量 -->
<div *ngIf="item.PropertyType == 4" style="height: 140px;"> <div *ngIf="item.PropertyType == 4" style="height: 140px;">
<div style="position: relative;width: 100%;height: 21px;margin: 1px 0;"> <div style="position: relative;width: 100%;height: 21px;margin: 1px 0;">
<p style="width: 40%;display: inline-block;">{{item.PropertyName}}</p> <p style="width: 40%;display: inline-block;">{{item.PropertyName}}</p>
<span style="width: 26%;text-align:right;font-size: 13px;">{{imagesArr.length ? imagesArr.length : 0}} / {{item.PropertyValue}}</span> <span style="width: 26%;text-align:right;font-size: 13px;">{{imagesArr.length ? imagesArr.length : 0}}
<input [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)" *ngIf="isImgNumCss" accept="image/*" (change)="selectFile($event)" type="file" style="width: 33%;position: absolute;right: 10px;top: 1px;opacity: 0;z-index: 100;cursor: pointer;height: 21px;"> / {{item.PropertyValue}}</span>
<div style="width: 33%;height: 21px;line-height: 21px;text-align: center;position: absolute;right: 10px;top: 1px;z-index: 99;border: 1px solid rgb(208, 211, 214);border-radius: 2px;font-size: 13px;cursor: pointer;" (click)="imgNumBeyond()">添加</div> <input [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)" *ngIf="isImgNumCss"
accept="image/*" (change)="selectFile($event)" type="file"
style="width: 33%;position: absolute;right: 10px;top: 1px;opacity: 0;z-index: 100;cursor: pointer;height: 21px;">
<div
style="width: 33%;height: 21px;line-height: 21px;text-align: center;position: absolute;right: 10px;top: 1px;z-index: 99;border: 1px solid rgb(208, 211, 214);border-radius: 2px;font-size: 13px;cursor: pointer;"
(click)="imgNumBeyond()">添加</div>
<div style="position: relative;;width: 89%;border:1px solid rgb(208, 211, 214);height: 100px;margin: 6px auto;" class="swiper-container"> <div
style="position: relative;;width: 89%;border:1px solid rgb(208, 211, 214);height: 100px;margin: 6px auto;"
class="swiper-container">
<div id="viewerjs" class="swiper-wrapper" [ngClass]="{'noImgCss': imagesArr.length == 0}"> <div id="viewerjs" class="swiper-wrapper" [ngClass]="{'noImgCss': imagesArr.length == 0}">
<div class="swiper-slide" style="text-align: center;" *ngFor="let img of imagesArr"><img [src]="img.PropertyValue + '?x-oss-process=image/resize,m_fixed,h_100,w_100'" alt="" [attr.data-original]="img.PropertyValue"></div> <div class="swiper-slide" style="text-align: center;" *ngFor="let img of imagesArr"><img
[src]="img.PropertyValue + '?x-oss-process=image/resize,m_fixed,h_100,w_100'" alt=""
[attr.data-original]="img.PropertyValue"></div>
</div> </div>
<!-- 如果需要导航按钮 --> <!-- 如果需要导航按钮 -->
<div class="swiper-button-next"></div> <div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div> <div class="swiper-button-prev"></div>
<span style="position: absolute;right: 2px;top: 2px;cursor: pointer;z-index: 200;" *ngIf="isEditPattern"> <span style="position: absolute;right: 2px;top: 2px;cursor: pointer;z-index: 200;"
*ngIf="isEditPattern">
<mat-icon class="hoverred" (click)="deleteImg()">delete</mat-icon> <mat-icon class="hoverred" (click)="deleteImg()">delete</mat-icon>
</span> </span>
</div> </div>
@ -247,7 +298,8 @@
<!-- 方向 --> <!-- 方向 -->
<div *ngIf="item.PropertyType == 5" class="selectDiv"> <div *ngIf="item.PropertyType == 5" class="selectDiv">
<p style="display: inline-block;">{{item.PropertyName}}</p> <p style="display: inline-block;">{{item.PropertyName}}</p>
<select (change)="direction(item,$event)" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> <select (change)="direction(item,$event)"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<option value="0" [selected]="item.PropertyValue =='0'"></option> <option value="0" [selected]="item.PropertyValue =='0'"></option>
<option value="1" [selected]="item.PropertyValue =='1'">西</option> <option value="1" [selected]="item.PropertyValue =='1'">西</option>
<option value="2" [selected]="item.PropertyValue =='2'"></option> <option value="2" [selected]="item.PropertyValue =='2'"></option>
@ -261,13 +313,18 @@
<!-- 布尔值 是1或否0 --> <!-- 布尔值 是1或否0 -->
<div *ngIf="item.PropertyType == 6"> <div *ngIf="item.PropertyType == 6">
<p>{{item.PropertyName}}</p> <p>{{item.PropertyName}}</p>
<input [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)" [checked]="item.PropertyValue == '1'" class="input" type="radio" name="radio" (click)="assetRadioChange(item,'1')"><span></span> <input [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"
<input [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)" [checked]="item.PropertyValue == '0'" class="input" type="radio" name="radio" (click)="assetRadioChange(item,'0')"><span></span> [checked]="item.PropertyValue == '1'" class="input" type="radio" name="radio"
(click)="assetRadioChange(item,'1')"><span></span>
<input [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"
[checked]="item.PropertyValue == '0'" class="input" type="radio" name="radio"
(click)="assetRadioChange(item,'0')"><span></span>
</div> </div>
<!-- 供给区域 --> <!-- 供给区域 -->
<div *ngIf="item.PropertyType == 7" class="selectDiv"> <div *ngIf="item.PropertyType == 7" class="selectDiv">
<p style="display: inline-block;">{{item.PropertyName}}</p> <p style="display: inline-block;">{{item.PropertyName}}</p>
<select (change)="supplyArea(item,$event)" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> <select (change)="supplyArea(item,$event)"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<option value="0" [selected]="item.PropertyValue =='0'">全部</option> <option value="0" [selected]="item.PropertyValue =='0'">全部</option>
<option value="1" [selected]="item.PropertyValue =='1'">高区</option> <option value="1" [selected]="item.PropertyValue =='1'">高区</option>
<option value="2" [selected]="item.PropertyValue =='2'">中区</option> <option value="2" [selected]="item.PropertyValue =='2'">中区</option>
@ -280,7 +337,8 @@
<!-- 供给类型 --> <!-- 供给类型 -->
<div *ngIf="item.PropertyType == 8" class="selectDiv"> <div *ngIf="item.PropertyType == 8" class="selectDiv">
<p style="display: inline-block;">{{item.PropertyName}}</p> <p style="display: inline-block;">{{item.PropertyName}}</p>
<select (change)="supplyType(item,$event)" value="4" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> <select (change)="supplyType(item,$event)" value="4"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<option value="0" [selected]="item.PropertyValue =='0'">消火栓</option> <option value="0" [selected]="item.PropertyValue =='0'">消火栓</option>
<option value="1" [selected]="item.PropertyValue =='1'">喷淋</option> <option value="1" [selected]="item.PropertyValue =='1'">喷淋</option>
<option value="2" [selected]="item.PropertyValue =='2'">水幕</option> <option value="2" [selected]="item.PropertyValue =='2'">水幕</option>
@ -294,15 +352,22 @@
<div class="assetsproperty" style="user-select: none" *ngIf="isShowProperty && isMultipleAsset"> <div class="assetsproperty" style="user-select: none" *ngIf="isShowProperty && isMultipleAsset">
<div *ngIf="multipleAsset.InteractiveMode == 0"> <div *ngIf="multipleAsset.InteractiveMode == 0">
<p>宽度(像素)</p> <p>宽度(像素)</p>
<input type="number" class="biginput" [(ngModel)]="multipleAsset.Width" (input)="multipleAssetWidthInput()" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"> <input type="number" class="biginput" [(ngModel)]="multipleAsset.Width"
(input)="multipleAssetWidthInput()"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<p>高度(像素)</p> <p>高度(像素)</p>
<input type="number" class="biginput" [(ngModel)]="multipleAsset.Height" (input)="multipleAssetHeightInput()" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"> <input type="number" class="biginput" [(ngModel)]="multipleAsset.Height"
(input)="multipleAssetHeightInput()"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<p>角度</p> <p>角度</p>
<div style="width: 100%;display: flex;vertical-align: top;height: 22px;"> <div style="width: 100%;display: flex;vertical-align: top;height: 22px;">
<input type="number" class="smallinput" [(ngModel)]="multipleAsset.Angle" <input type="number" class="smallinput" [(ngModel)]="multipleAsset.Angle"
oninput="if(value>360)value=360;if(value<0)value=0;" (input)="multipleAssetAngleInput()" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"> oninput="if(value>360)value=360;if(value<0)value=0;" (input)="multipleAssetAngleInput()"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<mat-slider color="primary" min="0" max="360" step="1" style="bottom: 12px;left: 2px;width: 70%;" <mat-slider color="primary" min="0" max="360" step="1" style="bottom: 12px;left: 2px;width: 70%;"
[(ngModel)]="multipleAsset.Angle" (change)="multipleAssetAngleInput()" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"></mat-slider> [(ngModel)]="multipleAsset.Angle" (change)="multipleAssetAngleInput()"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
</mat-slider>
</div> </div>
</div> </div>
<!-- 如果是多点连线 --> <!-- 如果是多点连线 -->
@ -310,9 +375,12 @@
<p>厚度</p> <p>厚度</p>
<div style="width: 100%;display: flex;vertical-align: top;height: 22px;"> <div style="width: 100%;display: flex;vertical-align: top;height: 22px;">
<input type="number" class="smallinput" [(ngModel)]="multipleAsset.Thickness" <input type="number" class="smallinput" [(ngModel)]="multipleAsset.Thickness"
oninput="if(value>999)value=999;if(value<0)value=0;" (input)="multipleAssetThicknessInput()" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"> oninput="if(value>999)value=999;if(value<0)value=0;" (input)="multipleAssetThicknessInput()"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<mat-slider color="primary" min="0" max="999" step="1" style="bottom: 12px;left: 2px;width: 70%;" <mat-slider color="primary" min="0" max="999" step="1" style="bottom: 12px;left: 2px;width: 70%;"
[(ngModel)]="multipleAsset.Thickness" (change)="multipleAssetThicknessInput()" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"></mat-slider> [(ngModel)]="multipleAsset.Thickness" (change)="multipleAssetThicknessInput()"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
</mat-slider>
</div> </div>
</div> </div>
<div class="colorBigDiv" *ngIf="multipleAsset.FillMode == 0"> <div class="colorBigDiv" *ngIf="multipleAsset.FillMode == 0">
@ -324,29 +392,41 @@
</div> </div>
<div class="colorDiv" *ngIf="isEditPattern && pattern && firstMultipleAssetData.assetData.GameMode == 0"> <div class="colorDiv" *ngIf="isEditPattern && pattern && firstMultipleAssetData.assetData.GameMode == 0">
<ul> <ul>
<li (click)="multipleAssetSelectcolor(item,key)" class="colorLi" *ngFor="let item of colors,let key=index" [style]="{'background-color':item}"></li> <li (click)="multipleAssetSelectcolor(item,key)" class="colorLi"
*ngFor="let item of colors,let key=index" [style]="{'background-color':item}"></li>
</ul> </ul>
</div> </div>
<span style="color: #9c9fa5;font-size: 14px;">透明度</span> <span style="color: #9c9fa5;font-size: 14px;">透明度</span>
<mat-slider color="primary" min="0" max="100%" step="1" style="left: 1px; width: 55%;min-width: 90px;" <mat-slider color="primary" min="0" max="100%" step="1" style="left: 1px; width: 55%;min-width: 90px;"
[(ngModel)]="colorDivSliderValue" (change)="multipleColorDivSliderChange()" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"></mat-slider> [(ngModel)]="colorDivSliderValue" (change)="multipleColorDivSliderChange()"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
</mat-slider>
<span style="color: #9c9fa5;font-size: 12px;">{{colorDivSliderValue}}%</span> <span style="color: #9c9fa5;font-size: 12px;">{{colorDivSliderValue}}%</span>
</div> </div>
<div *ngFor="let item of multipleAsset.PropertyInfos;index as key "> <div *ngFor="let item of multipleAsset.PropertyInfos;index as key ">
<!-- 单行文本 --> <!-- 单行文本 -->
<div *ngIf="item.PropertyType == 0"> <div *ngIf="item.PropertyType == 0">
<p>{{item.PropertyName}}<span style="font-size: 14px;" *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p> <p>{{item.PropertyName}}<span style="font-size: 14px;"
<input type="text" class="biginput" [name]="item.PropertyName" [(ngModel)]="item.PropertyValue" (input)="multipleAssetInputChange(item,$event)" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"> *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p>
<input type="text" class="biginput" [name]="item.PropertyName" [(ngModel)]="item.PropertyValue"
(input)="multipleAssetInputChange(item,$event)"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
</div> </div>
<!-- 多行文本 --> <!-- 多行文本 -->
<div *ngIf="item.PropertyType == 1"> <div *ngIf="item.PropertyType == 1">
<p>{{item.PropertyName}}<span style="font-size: 14px;" *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p> <p>{{item.PropertyName}}<span style="font-size: 14px;"
<textarea class="textarea" name="" id="" [(ngModel)]="item.PropertyValue" (input)="multipleAssetInputChange(item,$event)" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"></textarea> *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p>
<textarea class="textarea" name="" id="" [(ngModel)]="item.PropertyValue"
(input)="multipleAssetInputChange(item,$event)"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"></textarea>
</div> </div>
<!-- 数值 --> <!-- 数值 -->
<div *ngIf="item.PropertyType == 2"> <div *ngIf="item.PropertyType == 2">
<p>{{item.PropertyName}}<span style="font-size: 14px;" *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p> <p>{{item.PropertyName}}<span style="font-size: 14px;"
<input type="number" class="biginput" [(ngModel)]="item.PropertyValue" (input)="multipleAssetInputChange(item,$event)" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"> *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p>
<input type="number" class="biginput" [(ngModel)]="item.PropertyValue"
(input)="multipleAssetInputChange(item,$event)"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
</div> </div>
<!-- 方向 --> <!-- 方向 -->
<!-- <div *ngIf="item.PropertyType == 5 " class="selectDiv"> <!-- <div *ngIf="item.PropertyType == 5 " class="selectDiv">
@ -365,13 +445,18 @@
<!-- 布尔值 是1或否0 --> <!-- 布尔值 是1或否0 -->
<div *ngIf="item.PropertyType == 6"> <div *ngIf="item.PropertyType == 6">
<p>{{item.PropertyName}}</p> <p>{{item.PropertyName}}</p>
<input value='1' [(ngModel)]="item.PropertyValue" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)" class="input" type="radio" name="radio" (click)="multipleAssetRadioChange(item,'1')"><span></span> <input value='1' [(ngModel)]="item.PropertyValue"
<input value='0' [(ngModel)]="item.PropertyValue" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)" class="input" type="radio" name="radio" (click)="multipleAssetRadioChange(item,'0')"><span></span> [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"
class="input" type="radio" name="radio" (click)="multipleAssetRadioChange(item,'1')"><span></span>
<input value='0' [(ngModel)]="item.PropertyValue"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"
class="input" type="radio" name="radio" (click)="multipleAssetRadioChange(item,'0')"><span></span>
</div> </div>
<!-- 供给区域 --> <!-- 供给区域 -->
<div *ngIf="item.PropertyType == 7" class="selectDiv"> <div *ngIf="item.PropertyType == 7" class="selectDiv">
<p style="display: inline-block;">{{item.PropertyName}}</p> <p style="display: inline-block;">{{item.PropertyName}}</p>
<select [(ngModel)]="item.PropertyValue" (change)="multipleSupplyArea(item,$event)" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"> <select [(ngModel)]="item.PropertyValue" (change)="multipleSupplyArea(item,$event)"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<option value="0">全部</option> <option value="0">全部</option>
<option value="1">高区</option> <option value="1">高区</option>
<option value="2">中区</option> <option value="2">中区</option>
@ -384,7 +469,8 @@
<!-- 供给类型 --> <!-- 供给类型 -->
<div *ngIf="item.PropertyType == 8" class="selectDiv"> <div *ngIf="item.PropertyType == 8" class="selectDiv">
<p style="display: inline-block;">{{item.PropertyName}}</p> <p style="display: inline-block;">{{item.PropertyName}}</p>
<select [(ngModel)]="item.PropertyValue" (change)="multipleSupplyArea(item,$event)" [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)"> <select [(ngModel)]="item.PropertyValue" (change)="multipleSupplyArea(item,$event)"
[disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<option value="0">消火栓</option> <option value="0">消火栓</option>
<option value="1">喷淋</option> <option value="1">喷淋</option>
<option value="2">水幕</option> <option value="2">水幕</option>

260
src/app/ui/collection-tools-plan/collection-tools.component.ts

@ -17,6 +17,8 @@ import { TabbarAndScoreService } from 'src/app/http-interceptors/tabbar-and-scor
import { MaskLayerService } from 'src/app/mask-layer.service'; import { MaskLayerService } from 'src/app/mask-layer.service';
import * as ObjectID from 'bson-objectid'; import * as ObjectID from 'bson-objectid';
import { AxMessageSystem } from 'src/app/working-area/model/axMessageSystem'; import { AxMessageSystem } from 'src/app/working-area/model/axMessageSystem';
declare var AMap:any
@Component({ @Component({
selector: 'app-collection-tools-plan', selector: 'app-collection-tools-plan',
templateUrl: './collection-tools.component.html', templateUrl: './collection-tools.component.html',
@ -24,7 +26,7 @@ import { AxMessageSystem } from 'src/app/working-area/model/axMessageSystem';
}) })
export class CollectionToolsPlanComponent implements OnInit { export class CollectionToolsPlanComponent implements OnInit {
@ViewChild('canvas', { static: true }) canvas: WorkingAreaComponent; //父组件中获得子组件的引用 @ViewChild('canvas') canvas: WorkingAreaComponent; //父组件中获得子组件的引用
constructor(public _ngZone: NgZone, private maskLayerService: MaskLayerService, private tabbarService: TabbarAndScoreService, private http: HttpClient, public dialog: MatDialog, public snackBar: MatSnackBar, private element: ElementRef, public canvasData: CanvasShareDataService, private router: Router, private route: ActivatedRoute) { } constructor(public _ngZone: NgZone, private maskLayerService: MaskLayerService, private tabbarService: TabbarAndScoreService, private http: HttpClient, public dialog: MatDialog, public snackBar: MatSnackBar, private element: ElementRef, public canvasData: CanvasShareDataService, private router: Router, private route: ActivatedRoute) { }
@ViewChild('nzTreeComponent', { static: false }) nzTreeComponent!: NzTreeComponent; @ViewChild('nzTreeComponent', { static: false }) nzTreeComponent!: NzTreeComponent;
@ -148,30 +150,6 @@ export class CollectionToolsPlanComponent implements OnInit {
} }
} }
pattern: boolean = true//默认为基本信息编辑 pattern: boolean = true//默认为基本信息编辑
//基本信息编辑模式
baseInfo() {
if (!this.pattern) {
this.pattern = true
this.canvasData.gameMode = GameMode.BasicInformation
this.canvasData.selectPanelPoint = new DisposalNodeData();
this.mateDeleteCustomize()
this.getAllLibrary()
this.checkedBuildingIndex = -1
this.getSitePlan() //总平面图一层
}
}
//想定作业编辑模式
wantWork() {
if (this.pattern) {
this.pattern = false
this.canvasData.gameMode = GameMode.Assignment
this.getAllLibrary('plan')
this.getDisposalNode()
}
}
//适应缩放 //适应缩放
adaptZoom() { adaptZoom() {
this.canvas.zoomFit() this.canvas.zoomFit()
@ -180,136 +158,7 @@ export class CollectionToolsPlanComponent implements OnInit {
resetZoom() { resetZoom() {
this.canvas.resetCamera2D() this.canvas.resetCamera2D()
} }
//ngzorro tree 拖拽
nzEvent(event: NzFormatEmitEvent): void {
if (this.isDrag) {
let parentId
if (this.pos == 0) {
parentId = event.node.key
} else {
if (event.node.level == 0) {
parentId = null
} else {
parentId = event.node.origin.parentId
}
}
let orders = {}
let originalData = JSON.parse(JSON.stringify(this.canvasData.allDisposalNode || [])) //tree原始数据
let targetNodeData = []//拖动移入节点的数据,用于遍历求出放在该数组的第几位
//找到需要重新排序的数组
if (this.pos == 0) {
originalData.forEach(item => {
if (item.parentId == event.node.key) {
targetNodeData.push(item)
}
})
} else {
if (event.node.origin.parentId) {//如果拖动目标为非一级节点
originalData.forEach(item => {
if (item.parentId == event.node.origin.parentId) {
targetNodeData.push(item)
}
})
} else {//如果拖动目标为一级节点
originalData.forEach(item => {
if (!item.parentId) {
targetNodeData.push(item)
}
})
}
}
let idArr = []
targetNodeData.forEach(i => {
idArr.push(i.id)
})
if (this.pos == 0 && event.node.origin.children.length == 1) {
let key = event.dragNode.key
orders[key] = 0
parentId = event.node.key
} else {
let array = []
targetNodeData.forEach(item => {
if (item.id != event.dragNode.key) { //将拖动项先移除掉
array.push(item)
}
})
if (event.dragNode.isEnd[event.dragNode.isEnd.length - 1]) { //如果移入到最后一个
array.push(event.dragNode.origin)
} else if (event.dragNode.isStart[event.dragNode.isStart.length - 1]) {//如果移入到第一个
array.unshift(event.dragNode.origin)
} else {//如果移入中间位置
array.splice(event.node.origin.order, 0, event.dragNode.origin)
}
array.forEach((item, key) => {
orders[item.id] = key
})
}
let obj = {
id: event.dragNode.origin.id,
parentId: parentId,
orders: orders
}
this.http.put("/api/DisposalNodes/Sort", obj).subscribe(data => {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('排序成功', '确定', config)
this.refurbishTreeData()
})
}
}
isDrag //是否可以拖动
pos//放置位置
beforeDrop = (arg: NzFormatBeforeDropEvent) => {
if (arg.dragNode.origin.isDataNode && arg.node.level === 0) {//如果为数据节点则不允许拖到一级节点
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('数据节点不允许拖拽到一级节点', '确定', config)
this.isDrag = false
return of(false);
} else if (!arg.dragNode.origin.isDataNode && arg.node.level === 2) {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('处置节点不允许拖拽到三级节点', '确定', config)
this.isDrag = false
return of(false);
} else {
this.isDrag = true
this.pos = arg.pos
return of(true)
}
}
//ngzorro tree 拖拽
//天气栏目
weatherBtn = true
weatherBtnShow() {
this.weatherBtn = !this.weatherBtn
}
weatherBtnHidden() {
this.weatherBtn = !this.weatherBtn
}
//底部切换按钮div
detailsAndattentBtn = true
//节点详情
details() {
this.detailsAndattentBtn = true
}
//注意事项
attent() {
this.detailsAndattentBtn = false
}
//消防要素div边框高度调节 //消防要素div边框高度调节
firecategoriesDivMouseDown(e) { firecategoriesDivMouseDown(e) {
@ -347,22 +196,6 @@ export class CollectionToolsPlanComponent implements OnInit {
} }
} }
//底部div高度调节
bottomDivMouseDown(e) {
document.onmousemove = (ev) => {
let bodyHeight = document.body.clientHeight //网页高度
let maxHeight = this.element.nativeElement.querySelector('#rightDiv').clientHeight //最大高度
if (bodyHeight - ev.clientY >= maxHeight) {
this.element.nativeElement.querySelector('#bottomDiv').style.height = maxHeight + 'px'
} else {
this.element.nativeElement.querySelector('#bottomDiv').style.height = (bodyHeight - ev.clientY) + 'px';
}
}
document.onmouseup = () => {
document.onmousemove = null;
document.onmouseup = null;
}
}
//右侧div边框宽度调节 //右侧div边框宽度调节
rightDivMouseDown(e) { rightDivMouseDown(e) {
@ -826,11 +659,6 @@ export class CollectionToolsPlanComponent implements OnInit {
if (this.router.url.indexOf("gis") == -1) { if (this.router.url.indexOf("gis") == -1) {
this.getSitePlan() this.getSitePlan()
} }
//监听数据变化后
this.canvas.on('canvasDataChanged', () => {
// 收到数据表示共享数据发生变化
// this.renovateTreeData(false)
});
} }
copyAssetData: any //存储用于复制的素材 copyAssetData: any //存储用于复制的素材
@ -895,7 +723,6 @@ export class CollectionToolsPlanComponent implements OnInit {
//更新用于统计的数据 //更新用于统计的数据
this.canvasData.updateBuildingData() this.canvasData.updateBuildingData()
if (this.selectingSitePlan && this.selectingSitePlan.id) { if (this.selectingSitePlan && this.selectingSitePlan.id) {
//打开遮罩层 //打开遮罩层
this.maskLayerService.sendMessage(true) this.maskLayerService.sendMessage(true)
@ -1209,13 +1036,6 @@ export class CollectionToolsPlanComponent implements OnInit {
}) })
} }
//拖拽tree
drop(e) {
// console.log(1111,e)
}
drop2(e) {
// console.log(222,e)
}
//创建建筑 //创建建筑
createBuilding() { createBuilding() {
@ -1337,7 +1157,6 @@ export class CollectionToolsPlanComponent implements OnInit {
} }
storeyData //将建筑素材和当前楼层素材合二为一 storeyData //将建筑素材和当前楼层素材合二为一
//处理 tree 数据结构 //处理 tree 数据结构
handleTreeData(storeyData) { handleTreeData(storeyData) {
@ -1478,35 +1297,11 @@ export class CollectionToolsPlanComponent implements OnInit {
this.canvas.setIconVisible(iconVisibleArr, !node.isLook) this.canvas.setIconVisible(iconVisibleArr, !node.isLook)
} }
//计算 可视区域内宽度, 是否缩放背景图
backGroundScale() {
// let that = this
// let dad = this.element.nativeElement.querySelector('.functionalDomainContent').clientWidth
// let dadHeight = this.element.nativeElement.querySelector('.functionalDomainContent').clientHeight
// let left = this.element.nativeElement.querySelector('.functionalDomainLeft').clientWidth
// let right = this.element.nativeElement.querySelector('.functionalDomainRight').clientWidth
// let imgWidth = dad - left - right//可视区域内 宽度
// let img = new Image()
// img.src = this.selectingSitePlan.imageUrl;
// img.onload = function(){
// if (img.height > dadHeight && img.width > imgWidth) {
// let width = imgWidth/img.width
// let height = dadHeight/img.height
// that.canvas.setBackgroundScale((width>height? height : width)-0.005)
// return
// } else if (img.height > dadHeight) {
// that.canvas.setBackgroundScale((dadHeight/img.height)-0.005)
// return
// } else if (img.width > imgWidth) {
// that.canvas.setBackgroundScale((imgWidth/img.width)-0.005)
// return
// }
// };
}
//封装 刷新 tree 数据 //封装 刷新 tree 数据
async renovateTreeData(isRefresh: boolean = true) { async renovateTreeData(isRefresh: boolean = true) {
// this.allFireElements[this.allFireElements.length-1].children = [] // this.allFireElements[this.allFireElements.length-1].children = []
if(!this.selectingSitePlan.isGis){
isRefresh ? await this.canvas.refresh() : null isRefresh ? await this.canvas.refresh() : null
this.canvas.setNameVisible(this.basicInfo, 0) this.canvas.setNameVisible(this.basicInfo, 0)
this.canvas.setNameVisible(this.wantToWork, 1) this.canvas.setNameVisible(this.wantToWork, 1)
@ -1514,6 +1309,10 @@ export class CollectionToolsPlanComponent implements OnInit {
isRefresh ? this.canvasData.isChange = false : null //服务中 数据是否改动 改为false isRefresh ? this.canvasData.isChange = false : null //服务中 数据是否改动 改为false
isRefresh ? this.isShowProperty = true : null isRefresh ? this.isShowProperty = true : null
isRefresh ? this.isShowAttribute = true : null isRefresh ? this.isShowAttribute = true : null
}else{
//加载高德地图
this.toLoadGis()
}
// let beforeOneId = this.selectingSitePlan.id || '' //当前 选中 平面图 楼层/区域 id // let beforeOneId = this.selectingSitePlan.id || '' //当前 选中 平面图 楼层/区域 id
// let companyBuildingData = JSON.parse(JSON.stringify( this.canvasData.originalcompanyBuildingData || {} )) // 当前 单位/建筑 数据 // let companyBuildingData = JSON.parse(JSON.stringify( this.canvasData.originalcompanyBuildingData || {} )) // 当前 单位/建筑 数据
@ -1532,6 +1331,19 @@ export class CollectionToolsPlanComponent implements OnInit {
// } // }
// this.handleTreeData(storeyData) //处理tree数据结构 // this.handleTreeData(storeyData) //处理tree数据结构
} }
map:any
toLoadGis(){
this.map = new AMap.Map('container', {
viewMode: '2D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
zoom:11, //初始化地图层级
center: [116.397428, 39.90923] //初始化地图中心点
});
}
@ -1582,6 +1394,11 @@ export class CollectionToolsPlanComponent implements OnInit {
this.sitePlanData = data this.sitePlanData = data
this.selectingSitePlan = this.sitePlanData[0] || {} this.selectingSitePlan = this.sitePlanData[0] || {}
this.canvasData.selectStorey = this.sitePlanData[0] || {} //服务中 存一份数据 this.canvasData.selectStorey = this.sitePlanData[0] || {} //服务中 存一份数据
if(this.sitePlanData.length != 0 && this.sitePlanData[0].isGis){
this.isGis = true
}else{
this.isGis = false
}
this.selectSitePlanIndex = 0 this.selectSitePlanIndex = 0
Promise.all([planData]).then((res) => { Promise.all([planData]).then((res) => {
@ -1591,7 +1408,7 @@ export class CollectionToolsPlanComponent implements OnInit {
}) })
} }
//获取建筑 楼层/区域 //获取建筑 楼层/区域 废弃
getBuildingSitePlan(item) { getBuildingSitePlan(item) {
let params = { buildingId: item.id } let params = { buildingId: item.id }
// let fireData = this.getFireElements(item.buildingTypes[0].id || '') //获取建筑下 消防要素 // let fireData = this.getFireElements(item.buildingTypes[0].id || '') //获取建筑下 消防要素
@ -1682,7 +1499,15 @@ export class CollectionToolsPlanComponent implements OnInit {
} }
//点击选中 平面图 楼层/区域 时 //点击选中 平面图 楼层/区域 时
isGis:boolean
selectSitePlan(item, index) { selectSitePlan(item, index) {
console.log('点击楼层',item)
if(item.isGis){
this.isGis = true
}else{
this.isGis = false
}
if (this.selectSitePlanIndex != index) { if (this.selectSitePlanIndex != index) {
this.canvasData.selectPanelPoint = new DisposalNodeData(); this.canvasData.selectPanelPoint = new DisposalNodeData();
if (this.canvasData.isChange) { //true 数据被改动 if (this.canvasData.isChange) { //true 数据被改动
@ -1829,6 +1654,13 @@ export class CollectionToolsPlanComponent implements OnInit {
//旋转底图 //旋转底图
revolveImg(item) { revolveImg(item) {
if(item.isGis){
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('gis底图不允许旋转', '确定', config);
return
}
item.imageAngle == 270 ? item.imageAngle = 0 : item.imageAngle = item.imageAngle + 90 item.imageAngle == 270 ? item.imageAngle = 0 : item.imageAngle = item.imageAngle + 90
if (this.checkedBuildingIndex == -1) { //总平面图 if (this.checkedBuildingIndex == -1) { //总平面图
this.http.put(`/api/SitePlans/${item.id}`, item).subscribe(data => { this.http.put(`/api/SitePlans/${item.id}`, item).subscribe(data => {
@ -1911,6 +1743,14 @@ export class CollectionToolsPlanComponent implements OnInit {
//复制图层 平面图 楼层/区域 //复制图层 平面图 楼层/区域
duplicateLayer(item) { duplicateLayer(item) {
if(item.isGis){
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('gis底图不允许复制', '确定', config);
return
}
let paramsData = JSON.parse(JSON.stringify(this.canvasData.originaleveryStoreyData.data || {})) let paramsData = JSON.parse(JSON.stringify(this.canvasData.originaleveryStoreyData.data || {}))
Object.keys(paramsData).forEach((key) => { Object.keys(paramsData).forEach((key) => {
if (key != '图例') { if (key != '图例') {

33
src/app/ui/collection-tools-plan/leftFunctionalDomain.ts

@ -34,6 +34,7 @@ export class leftFunctionalDomainComponentPlan implements OnInit {
let maxSize = 10*1024*1024 //10MB限制 let maxSize = 10*1024*1024 //10MB限制
if (e.target.files[0].size <= maxSize) { if (e.target.files[0].size <= maxSize) {
this.file = e.target.files[0] this.file = e.target.files[0]
this.selectedType = 'image'
} else { } else {
const config = new MatSnackBarConfig(); const config = new MatSnackBarConfig();
config.verticalPosition = 'top'; config.verticalPosition = 'top';
@ -43,17 +44,22 @@ export class leftFunctionalDomainComponentPlan implements OnInit {
} }
} }
selectedType:String //新建平面图的底图类型 gis/image
//导入GIS //导入GIS
toGIS () { toGIS () {
const config = new MatSnackBarConfig(); this.selectedType = 'gis';
config.verticalPosition = 'top'; this.file = null;
config.duration = 3000 (<HTMLInputElement>document.getElementById('uploadFile')).value = null; //清空input框缓存
this.snackBar.open('功能开发测试中,即将上线','确定',config); // const config = new MatSnackBarConfig();
// config.verticalPosition = 'top';
// config.duration = 3000
// this.snackBar.open('功能开发测试中,即将上线','确定',config);
} }
//提交表单创建平面图 //提交表单创建平面图
onSubmit (e) { onSubmit (e) {
if (this.file) { if (this.file && this.selectedType == 'image') {
this.maskLayerService.sendMessage(true) this.maskLayerService.sendMessage(true)
if (this.file.size<=5*1024*1024) { //小于5MB if (this.file.size<=5*1024*1024) { //小于5MB
let formData = new FormData() let formData = new FormData()
@ -145,6 +151,23 @@ export class leftFunctionalDomainComponentPlan implements OnInit {
} }
}) })
} }
} else if(this.selectedType == 'gis'){
let data = {
companyId: sessionStorage.getItem('companyId'),
name: e.name,
order: this.data.order,
area:Number(e.area),
details:e.details,
enabled: true,
modifiedTime: new Date(),
imageUrl: 'null',
imageWidth: 0,
imageHeight: 0,
isGis:true
}
this.http.post('/api/SitePlans',data).subscribe(data=>{
this.dialogRef.close('总平面图');
})
} else { } else {
const config = new MatSnackBarConfig(); const config = new MatSnackBarConfig();
config.verticalPosition = 'top'; config.verticalPosition = 'top';

4
src/app/ui/collection-tools-plan/panel.scss

@ -304,6 +304,10 @@
overflow: hidden; overflow: hidden;
display: inline-block; display: inline-block;
} }
.uploadBackGroundSelected{
background-color: #6BC2FF;
color: #fff;
}
.uploadBackGround input { .uploadBackGround input {
position: absolute; position: absolute;
width: 100%; width: 100%;

4
src/app/ui/collection-tools/collection-tools.component.html

@ -300,7 +300,7 @@
</div> </div>
</div> </div>
<div class="colorDiv" *ngIf="isEditPattern && pattern && canvasAssetObj.GameMode == 0"> <div class="colorDiv" *ngIf="isEditPattern">
<ul> <ul>
<li (click)="selectcolor(item,key)" class="colorLi" *ngFor="let item of colors,let key=index" [style]="{'background-color':item}"></li> <li (click)="selectcolor(item,key)" class="colorLi" *ngFor="let item of colors,let key=index" [style]="{'background-color':item}"></li>
</ul> </ul>
@ -435,7 +435,7 @@
</div> </div>
</div> </div>
<div class="colorDiv" *ngIf="isEditPattern && pattern && firstMultipleAssetData.assetData.GameMode == 0"> <div class="colorDiv" *ngIf="isEditPattern && firstMultipleAssetData.assetData.GameMode == 0">
<ul> <ul>
<li (click)="multipleAssetSelectcolor(item,key)" class="colorLi" *ngFor="let item of colors,let key=index" [style]="{'background-color':item}"></li> <li (click)="multipleAssetSelectcolor(item,key)" class="colorLi" *ngFor="let item of colors,let key=index" [style]="{'background-color':item}"></li>
</ul> </ul>

11
src/styles.scss

@ -113,6 +113,11 @@ table td.mat-footer-cell:last-of-type{
color: #333333; color: #333333;
} }
} }
#waitexamineergis{
.mat-expansion-indicator::after {
color: #fff;
}
}
//gis标点弹出框样式 //gis标点弹出框样式
#gispopupbox{ #gispopupbox{
.btn{ .btn{
@ -222,3 +227,9 @@ td{
height: 50px!important; height: 50px!important;
} }
} }
#firefightingdevicelook,#firefightingdevice{
.expansionheader{
height: auto!important;
}
}
Loading…
Cancel
Save