chenjingyu 4 years ago
parent
commit
d4713cefdf
  1. 357
      src/app/ui/collection-tools-building/collection-tools.component.html
  2. 6
      src/app/ui/collection-tools-plan/collection-tools.component.html
  3. 29
      src/app/ui/collection-tools-plan/collection-tools.component.ts
  4. 440
      src/app/ui/collection-tools/collection-tools.component.html

357
src/app/ui/collection-tools-building/collection-tools.component.html

@ -8,7 +8,7 @@
<mat-icon style="vertical-align: middle; color: #279FFF;">list</mat-icon> <mat-icon style="vertical-align: middle; color: #279FFF;">list</mat-icon>
</button> </button>
<span [ngClass]="{'icongray': !basicInfo}" title="基本信息名称显示/隐藏" class="marginLeftRight" (click)="basicInfoClick()"> <span [ngClass]="{'icongray': !basicInfo}" title="基本信息名称显示/隐藏" class="marginLeftRight" (click)="basicInfoClick()">
基本信息名称 基本信息名称
<mat-icon>visibility</mat-icon> <mat-icon>visibility</mat-icon>
</span> </span>
@ -17,10 +17,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">
@ -43,14 +45,16 @@
<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>
<!-- 头部操作栏 --> <!-- 头部操作栏 -->
<div class="headerOperate"> <div class="headerOperate">
<button mat-button *ngFor="let item of allBuildings;let key = index" (click)="checkedBuilding(item,key)" class="bigeditdeletebtn" <button mat-button *ngFor="let item of allBuildings;let key = index" (click)="checkedBuilding(item,key)"
[ngClass]="{'buildingbtnchecked': checkedBuildingIndex==key}"> class="bigeditdeletebtn" [ngClass]="{'buildingbtnchecked': checkedBuildingIndex==key}">
<span>{{item.name}}</span> <span>{{item.name}}</span>
<span class="editdeletebtn" *ngIf="isEditPattern && pattern"> <span class="editdeletebtn" *ngIf="isEditPattern && pattern">
<mat-icon (click)="editBuilding($event,item)" <mat-icon (click)="editBuilding($event,item)"
@ -71,8 +75,9 @@
<!-- H5Canvas --> <!-- H5Canvas -->
<app-working-area #canvas [init]='this'></app-working-area> <app-working-area #canvas [init]='this'></app-working-area>
<!-- 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'
<div class="leftDragDiv" (mousedown)="leftDivMouseDown($event)"></div> [ngClass]="{'togglePanel': toggleExpandPanel==true,'scenarioAssignment': !pattern}" style="user-select: none;">
<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;">
<div class="planarGraphHeader" (click)='togglePlanarGraph()'> <div class="planarGraphHeader" (click)='togglePlanarGraph()'>
@ -80,30 +85,38 @@
<mat-icon *ngIf="!togglePlane">keyboard_arrow_down</mat-icon> <mat-icon *ngIf="!togglePlane">keyboard_arrow_down</mat-icon>
<label class="overflowText" style="font-weight: 550;">平面图</label> <label class="overflowText" style="font-weight: 550;">平面图</label>
<label class="hover" *ngIf="isEditPattern && pattern" (click)='foundPanel($event)'> <label class="hover" *ngIf="isEditPattern && pattern" (click)='foundPanel($event)'>
<mat-icon >add</mat-icon> <mat-icon>add</mat-icon>
</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"
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>
@ -114,7 +127,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>
<!-- 右边定位操作栏 --> <!-- 右边定位操作栏 -->
@ -133,8 +147,9 @@
<div> <div>
<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>
@ -146,7 +161,7 @@
<mat-expansion-panel-header> <mat-expansion-panel-header>
<label class="text">{{item.name}}</label> <label class="text">{{item.name}}</label>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<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"
(click)='selectImg(item,items,key)' (click)='selectImg(item,items,key)'
@ -155,7 +170,7 @@
<p class="overflowText">{{items.name}}</p> <p class="overflowText">{{items.name}}</p>
</div> </div>
</div> </div>
</mat-expansion-panel> </mat-expansion-panel>
</mat-accordion> </mat-accordion>
</ng-container> </ng-container>
@ -165,18 +180,22 @@
</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: 50%;background-color: white;"> <div [ngClass]="{'forbidden': !isEditPattern}" id="property" class="property"
style="height: 50%;background-color: white;">
<div class="title"> <div class="title">
<div> <div>
<span style="user-select: none">属性</span> <span style="user-select: none">属性</span>
</div> </div>
</div> </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>
@ -185,20 +204,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>
<!-- 如果是多点连线 --> <!-- 如果是多点连线 -->
@ -206,17 +230,19 @@
<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 class="input" [(ngModel)]="isHighLight" type="checkbox" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> <input 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">
<div class="colorBigTemplateDiv"> <div class="colorBigTemplateDiv">
<span>颜色</span> <span>颜色</span>
@ -224,49 +250,69 @@
</div> </div>
</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="position: relative;;width: 89%;border:1px solid rgb(208, 211, 214);height: 100px;margin: 6px auto;" class="swiper-container"> <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 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>
@ -275,63 +321,77 @@
<!-- 方向 --> <!-- 方向 -->
<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)"
<option value ="0" [selected]="item.PropertyValue =='0'"></option> [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<option value ="1" [selected]="item.PropertyValue =='1'">西</option> <option value="0" [selected]="item.PropertyValue =='0'"></option>
<option value ="2" [selected]="item.PropertyValue =='2'"></option> <option value="1" [selected]="item.PropertyValue =='1'">西</option>
<option value ="3" [selected]="item.PropertyValue =='3'"></option> <option value="2" [selected]="item.PropertyValue =='2'"></option>
<option value ="4" [selected]="item.PropertyValue =='4'">东南</option> <option value="3" [selected]="item.PropertyValue =='3'"></option>
<option value ="5" [selected]="item.PropertyValue =='5'">西南</option> <option value="4" [selected]="item.PropertyValue =='4'">东南</option>
<option value ="6" [selected]="item.PropertyValue =='6'">东北</option> <option value="5" [selected]="item.PropertyValue =='5'">西南</option>
<option value ="7" [selected]="item.PropertyValue =='7'">西北</option> <option value="6" [selected]="item.PropertyValue =='6'">东北</option>
<option value="7" [selected]="item.PropertyValue =='7'">西北</option>
</select> </select>
</div> </div>
<!-- 布尔值 是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)"
<option value ="0" [selected]="item.PropertyValue =='0'">全部</option> [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<option value ="1" [selected]="item.PropertyValue =='1'">高区</option> <option value="0" [selected]="item.PropertyValue =='0'">全部</option>
<option value ="2" [selected]="item.PropertyValue =='2'">中区</option> <option value="1" [selected]="item.PropertyValue =='1'">高区</option>
<option value ="3" [selected]="item.PropertyValue =='3'">低区</option> <option value="2" [selected]="item.PropertyValue =='2'">中区</option>
<option value ="4" [selected]="item.PropertyValue =='4'">高中区</option> <option value="3" [selected]="item.PropertyValue =='3'">低区</option>
<option value ="5" [selected]="item.PropertyValue =='5'">高低区</option> <option value="4" [selected]="item.PropertyValue =='4'">高中区</option>
<option value ="6" [selected]="item.PropertyValue =='6'">中低区</option> <option value="5" [selected]="item.PropertyValue =='5'">高低区</option>
<option value="6" [selected]="item.PropertyValue =='6'">中低区</option>
</select> </select>
</div> </div>
<!-- 供给类型 --> <!-- 供给类型 -->
<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"
<option value ="0" [selected]="item.PropertyValue =='0'">消火栓</option> [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<option value ="1" [selected]="item.PropertyValue =='1'">喷淋</option> <option value="0" [selected]="item.PropertyValue =='0'">消火栓</option>
<option value ="2" [selected]="item.PropertyValue =='2'">水幕</option> <option value="1" [selected]="item.PropertyValue =='1'">喷淋</option>
<option value ="3" [selected]="item.PropertyValue =='3'">泡沫</option> <option value="2" [selected]="item.PropertyValue =='2'">水幕</option>
<option value ="4" [selected]="item.PropertyValue =='4'">消防</option> <option value="3" [selected]="item.PropertyValue =='3'">泡沫</option>
<option value="4" [selected]="item.PropertyValue =='4'">消防</option>
</select> </select>
</div> </div>
</div> </div>
</div> </div>
<!-- 框选多个素材属性 --> <!-- 框选多个素材属性 -->
<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>
<!-- 如果是多点连线 --> <!-- 如果是多点连线 -->
@ -339,9 +399,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">
@ -351,31 +414,43 @@
</div> </div>
</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">
@ -394,31 +469,37 @@
<!-- 布尔值 是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)"
<option value ="0">全部</option> [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<option value ="1">高区</option> <option value="0">全部</option>
<option value ="2">中区</option> <option value="1">高区</option>
<option value ="3">低区</option> <option value="2">中区</option>
<option value ="4">高中区</option> <option value="3">低区</option>
<option value ="5">高低区</option> <option value="4">高中区</option>
<option value ="6">中低区</option> <option value="5">高低区</option>
<option value="6">中低区</option>
</select> </select>
</div> </div>
<!-- 供给类型 --> <!-- 供给类型 -->
<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)"
<option value ="0">消火栓</option> [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<option value ="1">喷淋</option> <option value="0">消火栓</option>
<option value ="2">水幕</option> <option value="1">喷淋</option>
<option value ="3">泡沫</option> <option value="2">水幕</option>
<option value ="4">消防</option> <option value="3">泡沫</option>
<option value="4">消防</option>
</select> </select>
</div> </div>
</div> </div>
@ -427,8 +508,9 @@
<!-- 消防要素 --> <!-- 消防要素 -->
<div id="firecategories" class="firecategories" style="height: 50%;"> <div id="firecategories" class="firecategories" style="height: 50%;">
<!-- 素材属性div鼠标拖动div --> <!-- 素材属性div鼠标拖动div -->
<div style="height:3px;width: 100%;position: absolute;top: 0;cursor: n-resize;z-index: 1000;" (mousedown)="firecategoriesDivMouseDown($event)"></div> <div style="height:3px;width: 100%;position: absolute;top: 0;cursor: n-resize;z-index: 1000;"
(mousedown)="firecategoriesDivMouseDown($event)"></div>
<div class="title"> <div class="title">
<div> <div>
<span style="user-select: none">消防要素</span> <span style="user-select: none">消防要素</span>
@ -436,35 +518,44 @@
</div> </div>
<div class="firecategoriesTree"> <div class="firecategoriesTree">
<div class="hideAllTreeNode" (click)='toggoleAllTreenode()' *ngIf="allFireElements.length"><label>全部显示/隐藏</label><mat-icon [ngClass]="{'icongray': hideAllTreenode == false}">visibility</mat-icon></div> <div class="hideAllTreeNode" (click)='toggoleAllTreenode()' *ngIf="allFireElements.length">
<label>全部显示/隐藏</label>
<mat-icon [ngClass]="{'icongray': hideAllTreenode == false}">visibility</mat-icon>
</div>
<!-- 消防列表树写在这里 --> <!-- 消防列表树写在这里 -->
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl"> <mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<mat-tree-node [ngClass]="{'isLookPattern': !node.isLookPattern && !isEditPattern}" *matTreeNodeDef="let node;" matTreeNodePadding cdkTreeNodePaddingIndent='26' (click)="clickTreeNode(node)" class="treeNode"> <mat-tree-node [ngClass]="{'isLookPattern': !node.isLookPattern && !isEditPattern}"
*matTreeNodeDef="let node;" matTreeNodePadding cdkTreeNodePaddingIndent='26'
(click)="clickTreeNode(node)" class="treeNode">
<button mat-icon-button disabled></button> <button mat-icon-button disabled></button>
<span title="{{node.name}}" [ngClass]="{'treeText': !node.isTemplate}"> <span title="{{node.name}}" [ngClass]="{'treeText': !node.isTemplate}">
{{node.name}} {{node.name}}
</span> </span>
<span *ngIf="node.isTemplate">({{node.children.length}})</span> <span *ngIf="node.isTemplate">({{node.children.length}})</span>
<span class="isLookCss" (click)="clickLookItem(node)"><mat-icon [ngClass]="{'icongray': node.isLook == false}">visibility</mat-icon></span> <span class="isLookCss" (click)="clickLookItem(node)">
<mat-icon [ngClass]="{'icongray': node.isLook == false}">visibility</mat-icon>
</span>
</mat-tree-node> </mat-tree-node>
<mat-tree-node [ngClass]="{'isLookPattern': !node.isLookPattern && !isEditPattern}" *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding (click)="clickTreeNode(node)"class="treeNode" > <mat-tree-node [ngClass]="{'isLookPattern': !node.isLookPattern && !isEditPattern}"
<button mat-icon-button *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding (click)="clickTreeNode(node)"
matTreeNodeToggle class="treeNode">
[attr.aria-label]="'toggle ' + node.name"> <button mat-icon-button matTreeNodeToggle [attr.aria-label]="'toggle ' + node.name">
<mat-icon class="mat-icon-rtl-mirror"> <mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}} {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon> </mat-icon>
</button> </button>
<span title="{{node.name}}" [ngClass]="{'treeText': !node.isTemplate}"> <span title="{{node.name}}" [ngClass]="{'treeText': !node.isTemplate}">
{{node.name}} {{node.name}}
</span> </span>
<span *ngIf="node.isTemplate && node.isNewElement">({{node.children.length}})</span> <span *ngIf="node.isTemplate && node.isNewElement">({{node.children.length}})</span>
<span class="isLookCss" (click)="clickLookItem(node)"><mat-icon [ngClass]="{'icongray': node.isLook == false}">visibility</mat-icon></span> <span class="isLookCss" (click)="clickLookItem(node)">
<mat-icon [ngClass]="{'icongray': node.isLook == false}">visibility</mat-icon>
</span>
</mat-tree-node> </mat-tree-node>
</mat-tree> </mat-tree>
</div> </div>
</div> </div>
@ -481,8 +572,10 @@
</div> </div>
</div> </div>
<div class="body"> <div class="body">
<textarea [disabled]="!isEditPattern" *ngIf="detailsAndattentBtn" name="" id="" rows="10" [(ngModel)]="canvasData.selectPanelPointBaseData.description"></textarea> <textarea [disabled]="!isEditPattern" *ngIf="detailsAndattentBtn" name="" id="" rows="10"
<textarea [disabled]="!isEditPattern" *ngIf="!detailsAndattentBtn" name="" id="" rows="10" [(ngModel)]="canvasData.selectPanelPointBaseData.notes"></textarea> [(ngModel)]="canvasData.selectPanelPointBaseData.description"></textarea>
<textarea [disabled]="!isEditPattern" *ngIf="!detailsAndattentBtn" name="" id="" rows="10"
[(ngModel)]="canvasData.selectPanelPointBaseData.notes"></textarea>
</div> </div>
</div> </div>
</div> </div>

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

@ -7,7 +7,7 @@
<button mat-button (click)="toggle2()"> <button mat-button (click)="toggle2()">
<mat-icon style="vertical-align: middle; color: #279FFF;">list</mat-icon> <mat-icon style="vertical-align: middle; color: #279FFF;">list</mat-icon>
</button> </button>
<span [ngClass]="{'icongray': !basicInfo}" title="基本信息名称显示/隐藏" class="marginLeftRight" (click)="basicInfoClick()"> <span [ngClass]="{'icongray': !basicInfo}" title="基本信息名称显示/隐藏" class="marginLeftRight" (click)="basicInfoClick()">
基本信息名称 基本信息名称
<mat-icon>visibility</mat-icon> <mat-icon>visibility</mat-icon>
</span> </span>
@ -217,12 +217,12 @@
</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" <input (change)="assetHighLightIunput()" class="input" [(ngModel)]="isHighLight" type="checkbox"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> [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 && !isGis"> <div class="colorBigDiv" *ngIf="canvasAssetObj.FillMode == 0 && !isGis">
<div class="colorBigTemplateDiv"> <div class="colorBigTemplateDiv">
<span>颜色</span> <span>颜色</span>

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

@ -800,17 +800,25 @@ export class CollectionToolsPlanComponent implements OnInit {
//如果是单位 总平面图 //如果是单位 总平面图
if (this.checkedBuildingIndex == -1) { if (this.checkedBuildingIndex == -1) {
if(this.isGis){ if (this.isGis) {
let data = JSON.parse(JSON.stringify(this.selectingSitePlan)) let data = JSON.parse(JSON.stringify(this.selectingSitePlan))
data.zoomLevel = this.map.getZoom(), data.zoomLevel = this.map.getZoom(),
data.defaultCenter = {x:this.map.getCenter().lng,y:this.map.getCenter().lat} data.defaultCenter = { x: this.map.getCenter().lng, y: this.map.getCenter().lat }
delete data.userId delete data.userId
delete data.userName delete data.userName
delete data.sitePlanDataInfo delete data.sitePlanDataInfo
console.log('gisselectingSitePlan',this.selectingSitePlan) this.http.put(`/api/SitePlans/${this.selectingSitePlan.id}`, data).subscribe(data => {
this.sitePlanData.forEach(element => {
this.http.put(`/api/SitePlans/${this.selectingSitePlan.id}`,data).subscribe(data=>{ if (element.id == this.selectingSitePlan.id) {
console.log('保存中心点成功') element.zoomLevel = this.map.getZoom()
element.defaultCenter = { x: this.map.getCenter().lng, y: this.map.getCenter().lat }
}
});
}, err => {
let config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('gis保存当前视角失败', '确定', config);
}) })
} }
@ -1406,19 +1414,18 @@ export class CollectionToolsPlanComponent implements OnInit {
map: any map: any
toLoadGis() { toLoadGis() {
console.log(666666, this.selectingSitePlan) console.log(666666, this.selectingSitePlan)
this.map = new AMap.Map('planContainer', { this.map = new AMap.Map('planContainer', {
viewMode: '2D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D', viewMode: '2D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
zoom: 11, //初始化地图层级 zoom: 11, //初始化地图层级
}); });
if(this.selectingSitePlan.defaultCenter){ if (this.selectingSitePlan.defaultCenter) {
console.log('设置了吗')
this.map.setZoom(this.selectingSitePlan.zoomLevel); //设置地图层级 this.map.setZoom(this.selectingSitePlan.zoomLevel); //设置地图层级
this.map.setCenter([this.selectingSitePlan.defaultCenter.x, this.selectingSitePlan.defaultCenter.y]) this.map.setCenter([this.selectingSitePlan.defaultCenter.x, this.selectingSitePlan.defaultCenter.y])
}else{ } else {
this.map.setCity('上海市'); this.map.setCity('上海市');
} }
this.map.on('click', (e) => { this.map.on('click', (e) => {
this.showInfoClick(e) this.showInfoClick(e)
}); });

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

@ -8,10 +8,12 @@
<mat-icon style="vertical-align: middle; color: #279FFF;">list</mat-icon> <mat-icon style="vertical-align: middle; color: #279FFF;">list</mat-icon>
</button> </button>
<span [ngClass]="{'icongray': !basicInfo}" *ngIf="pattern" title="基本信息名称显示/隐藏" class="marginLeftRight" (click)="basicInfoClick()"> <span [ngClass]="{'icongray': !basicInfo}" *ngIf="pattern" title="基本信息名称显示/隐藏" class="marginLeftRight"
(click)="basicInfoClick()">
基本信息名称<mat-icon>visibility</mat-icon> 基本信息名称<mat-icon>visibility</mat-icon>
</span> </span>
<span [ngClass]="{'icongray': !wantToWork}" *ngIf="!pattern" title="想定作业名称显示/隐藏" class="marginLeftRight" (click)="wantToWorkClick()"> <span [ngClass]="{'icongray': !wantToWork}" *ngIf="!pattern" title="想定作业名称显示/隐藏" class="marginLeftRight"
(click)="wantToWorkClick()">
想定作业名称<mat-icon>visibility</mat-icon> 想定作业名称<mat-icon>visibility</mat-icon>
</span> </span>
@ -19,16 +21,17 @@
<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="复制" *ngIf="isEditPattern"> <button (click)="copyAsset()" class="copytobutn marginLeftRight" mat-button title="复制" *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">
粘贴<mat-icon>screen_share</mat-icon> 粘贴<mat-icon>screen_share</mat-icon>
</button> </button>
<span title="适应缩放" class="zoom" (click)="adaptZoom()"> <span title="适应缩放" class="zoom" (click)="adaptZoom()">
<img src="/assets/images/sysf.png" alt=""> <img src="/assets/images/sysf.png" alt="">
适应缩放 适应缩放
@ -44,37 +47,41 @@
<div class="bigBox"> <div class="bigBox">
<div class="weatherBox" [ngClass]="{'opened': weatherBtn,'close': !weatherBtn}"> <div class="weatherBox" [ngClass]="{'opened': weatherBtn,'close': !weatherBtn}">
<span class="name">天气</span> <span class="name">天气</span>
<input class="weatherInput" [(ngModel)]="canvasData.selectPanelPointBaseData.weather" type="text" placeholder="最多输入10字节" maxlength="10"> <input class="weatherInput" [(ngModel)]="canvasData.selectPanelPointBaseData.weather" type="text"
placeholder="最多输入10字节" maxlength="10">
<span class="name">气温</span> <span class="name">气温</span>
<div style="display: inline-block;position: relative;"> <div style="display: inline-block;position: relative;">
<input [(ngModel)]="canvasData.selectPanelPointBaseData.airTemperature" style="width: 60px;" type="number" value="0" oninput="if(value.length>2)value=value.slice(0,2)"> <input [(ngModel)]="canvasData.selectPanelPointBaseData.airTemperature" style="width: 60px;" type="number"
value="0" oninput="if(value.length>2)value=value.slice(0,2)">
<span style="position: absolute;right: 20px;top: 10px;color: #9c9fa5;"></span> <span style="position: absolute;right: 20px;top: 10px;color: #9c9fa5;"></span>
</div> </div>
<span class="name">风力</span> <span class="name">风力</span>
<select class="weatherSelect" [(ngModel)]="canvasData.selectPanelPointBaseData.windScale"> <select class="weatherSelect" [(ngModel)]="canvasData.selectPanelPointBaseData.windScale">
<option value ="0">0(无风)</option> <option value="0">0(无风)</option>
<option value ="1">1(软风)</option> <option value="1">1(软风)</option>
<option value ="2">2(轻风)</option> <option value="2">2(轻风)</option>
<option value ="3">3(微风)</option> <option value="3">3(微风)</option>
<option value ="4">4(和风)</option> <option value="4">4(和风)</option>
<option value ="5">5(清风)</option> <option value="5">5(清风)</option>
<option value ="6">6(强风)</option> <option value="6">6(强风)</option>
</select> </select>
<span class="name">风向</span> <span class="name">风向</span>
<select class="weatherSelect" [(ngModel)]="canvasData.selectPanelPointBaseData.windDirection"> <select class="weatherSelect" [(ngModel)]="canvasData.selectPanelPointBaseData.windDirection">
<option value ="0"></option> <option value="0"></option>
<option value ="1">西</option> <option value="1">西</option>
<option value ="2"></option> <option value="2"></option>
<option value ="3"></option> <option value="3"></option>
<option value ="4">东南</option> <option value="4">东南</option>
<option value ="5">西南</option> <option value="5">西南</option>
<option value ="6">东北</option> <option value="6">东北</option>
<option value ="7">西北</option> <option value="7">西北</option>
</select> </select>
</div> </div>
</div> </div>
<label title="保存" (click)="saveSite()" class="rightSave" *ngIf="isEditPattern"><mat-icon style="vertical-align: sub;">description</mat-icon>保存</label> <label title="保存" (click)="saveSite()" class="rightSave" *ngIf="isEditPattern">
<mat-icon style="vertical-align: sub;">description</mat-icon>保存
</label>
</div> </div>
<!--功能区 --> <!--功能区 -->
@ -95,13 +102,18 @@
<mat-icon *ngIf="!beforeOneCheckedBuildingIsShow">keyboard_arrow_down</mat-icon> <mat-icon *ngIf="!beforeOneCheckedBuildingIsShow">keyboard_arrow_down</mat-icon>
</label> </label>
<a href="javascript:;" class="fireForce" *ngIf="isEditPattern && !pattern"> <a href="javascript:;" class="fireForce" *ngIf="isEditPattern && !pattern">
<img src="../../../assets/images/fire.png" *ngIf="beforeOneCheckedBuilding.fire && beforeOneCheckedBuilding.fire==2"> <img src="../../../assets/images/fire.png"
<img src="../../../assets/images/noFire.png" *ngIf="beforeOneCheckedBuilding.fire && beforeOneCheckedBuilding.fire==1"> *ngIf="beforeOneCheckedBuilding.fire && beforeOneCheckedBuilding.fire==2">
<img src="../../../assets/images/force.png" *ngIf="beforeOneCheckedBuilding.force && beforeOneCheckedBuilding.force==2"> <img src="../../../assets/images/noFire.png"
<img src="../../../assets/images/noForce.png" *ngIf="beforeOneCheckedBuilding.force && beforeOneCheckedBuilding.force==1"> *ngIf="beforeOneCheckedBuilding.fire && beforeOneCheckedBuilding.fire==1">
<img src="../../../assets/images/force.png"
*ngIf="beforeOneCheckedBuilding.force && beforeOneCheckedBuilding.force==2">
<img src="../../../assets/images/noForce.png"
*ngIf="beforeOneCheckedBuilding.force && beforeOneCheckedBuilding.force==1">
</a> </a>
</div> </div>
<div class="everyTotal overflowText" *ngFor="let item of sitePlanData;let key = index" [ngClass]="{'selectSitePlan': selectSitePlanIndex==key}" (click)='selectSitePlan(item,key)'> <div class="everyTotal overflowText" *ngFor="let item of sitePlanData;let key = index"
[ngClass]="{'selectSitePlan': selectSitePlanIndex==key}" (click)='selectSitePlan(item,key)'>
{{item.name}} {{item.name}}
<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">
@ -113,16 +125,19 @@
</div> </div>
<div style="width: 5px;height: 100%;opacity: 0;" [hidden]="!beforeOneCheckedBuildingIsShow"></div> <div style="width: 5px;height: 100%;opacity: 0;" [hidden]="!beforeOneCheckedBuildingIsShow"></div>
<div class="centerTotal" [hidden]="!beforeOneCheckedBuildingIsShow"> <div class="centerTotal" [hidden]="!beforeOneCheckedBuildingIsShow">
<div class="everyTotal" (click)="checkedBuilding({name:'总平面图'},-1)" [ngClass]="{'buildingbtnchecked': checkedBuildingIndex==-1}">总平面图</div> <div class="everyTotal" (click)="checkedBuilding({name:'总平面图'},-1)"
<div class="everyTotal overflowText" *ngFor="let item of allBuildings;let key = index" (click)="checkedBuilding(item,key)"[ngClass]="{'buildingbtnchecked': checkedBuildingIndex==key}"> [ngClass]="{'buildingbtnchecked': checkedBuildingIndex==-1}">总平面图</div>
<div class="everyTotal overflowText" *ngFor="let item of allBuildings;let key = index"
(click)="checkedBuilding(item,key)" [ngClass]="{'buildingbtnchecked': checkedBuildingIndex==key}">
{{item.name}} {{item.name}}
</div> </div>
</div> </div>
</div> </div>
<!-- 中间建筑+楼层 --> <!-- 中间建筑+楼层 -->
<!-- 左侧操作栏 --> <!-- 左侧操作栏 -->
<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'
<div class="leftDragDiv" (mousedown)="leftDivMouseDown($event)"></div> [ngClass]="{'togglePanel': toggleExpandPanel==true,'scenarioAssignment': !pattern}" style="user-select: none;">
<div class="leftDragDiv" (mousedown)="leftDivMouseDown($event)"></div>
<!-- 处置预案 --> <!-- 处置预案 -->
<div class="handlePlan" *ngIf="!pattern"> <div class="handlePlan" *ngIf="!pattern">
<div class="planarGraphHeader" (click)='toggleHandlePlan()'> <div class="planarGraphHeader" (click)='toggleHandlePlan()'>
@ -131,21 +146,26 @@
<label class="overflowText" style="font-weight: 550;">处置预案</label> <label class="overflowText" style="font-weight: 550;">处置预案</label>
<label class="btnlabel" style="margin-left: 20px;" *ngIf="isEditPattern"> <label class="btnlabel" style="margin-left: 20px;" *ngIf="isEditPattern">
<mat-icon style="color: #c2a40ce8;" title="计算差异" (click)='countValue($event)'>flash_on</mat-icon> <mat-icon style="color: #c2a40ce8;" title="计算差异" (click)='countValue($event)'>flash_on</mat-icon>
<mat-icon style="margin: 0 3px;" title="新建空节点" (click)='addPanelPoint($event,null,treeData)'>add</mat-icon> <mat-icon style="margin: 0 3px;" title="新建空节点" (click)='addPanelPoint($event,null,treeData)'>add
</mat-icon>
<mat-icon class="matIcons" (click)='addBGCPanelPoint($event)'>photo_size_select_actual</mat-icon> <mat-icon class="matIcons" (click)='addBGCPanelPoint($event)'>photo_size_select_actual</mat-icon>
</label> </label>
</div> </div>
<div [hidden]="!toggleHandlePlans"> <div [hidden]="!toggleHandlePlans">
<nz-tree #nzTreeComponent [nzData]="treeData" nzBlockNode nzDraggable (nzOnDrop)="nzEvent($event)" [nzTreeTemplate]="nzTreeTemplate" [nzBeforeDrop]="beforeDrop" [nzExpandedKeys]="defaultExpandedKeys"></nz-tree> <nz-tree #nzTreeComponent [nzData]="treeData" nzBlockNode nzDraggable (nzOnDrop)="nzEvent($event)"
[nzTreeTemplate]="nzTreeTemplate" [nzBeforeDrop]="beforeDrop" [nzExpandedKeys]="defaultExpandedKeys">
</nz-tree>
<ng-template #nzTreeTemplate let-node let-origin="origin"> <ng-template #nzTreeTemplate let-node let-origin="origin">
<div id="terrNodePublic" (click)='selectanelPoint(node.origin)' <div id="terrNodePublic" (click)='selectanelPoint(node.origin)'
[ngClass]="{'selectanelPoint': selectDisposalNode==node.origin.id,'selectanelPointData': canvasData.selectPanelPoint.DisposalNodeId==node.origin.id}"> [ngClass]="{'selectanelPoint': selectDisposalNode==node.origin.id,'selectanelPointData': canvasData.selectPanelPoint.DisposalNodeId==node.origin.id}">
<label title="{{node.title}}" class="overflowText textNode">{{node.title}}</label> <label title="{{node.title}}" class="overflowText textNode">{{node.title}}</label>
<div class="scoreDiv" *ngIf="isEditPattern"> <div class="scoreDiv" *ngIf="isEditPattern">
<mat-icon *ngIf="!node.origin.sitePlanId && !node.origin.buildingAreaId" (click)='editPanelPoint($event,node)'>edit</mat-icon> <mat-icon *ngIf="!node.origin.sitePlanId && !node.origin.buildingAreaId"
(click)='editPanelPoint($event,node)'>edit</mat-icon>
<mat-icon *ngIf="node.level===0" (click)='addPanelPoint($event,node.origin,null)'>add</mat-icon> <mat-icon *ngIf="node.level===0" (click)='addPanelPoint($event,node.origin,null)'>add</mat-icon>
<mat-icon *ngIf="!node.origin.sitePlanId && !node.origin.buildingAreaId" (click)='copyPanelPoint($event,node,treeData)'>library_books</mat-icon> <mat-icon *ngIf="!node.origin.sitePlanId && !node.origin.buildingAreaId"
(click)='copyPanelPoint($event,node,treeData)'>library_books</mat-icon>
<mat-icon (click)='deletePanelPoint($event,node.origin)'>delete_forever</mat-icon> <mat-icon (click)='deletePanelPoint($event,node.origin)'>delete_forever</mat-icon>
</div> </div>
</div> </div>
@ -165,21 +185,29 @@
<mat-icon (click)='foundPanel($event)'>add</mat-icon> <mat-icon (click)='foundPanel($event)'>add</mat-icon>
</label> </label>
</div> </div>
<div [hidden]="!togglePlane" > <div [hidden]="!togglePlane">
<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" [title]="item.name" style="display:inline-block; max-width: 145px;"><mat-icon *ngIf="!item.imageUrl" class="matIcons">broken_image</mat-icon>{{item.name}}</label> [ngClass]="{'isRefugeStorey':item.isRefugeStorey==true,'selectSitePlan': selectSitePlanIndex==key}"
<a href="javascript:;" class="a-upload" *ngIf="selectSitePlanIndex==key && isEditPattern && pattern" title="替换底图" > (click)='selectSitePlan(item,key)'>
<label class="overflowText" [title]="item.name" style="display:inline-block; max-width: 145px;">
<mat-icon *ngIf="!item.imageUrl" class="matIcons">broken_image</mat-icon>{{item.name}}
</label>
<a href="javascript:;" class="a-upload" *ngIf="selectSitePlanIndex==key && isEditPattern && pattern"
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>
@ -190,7 +218,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>
<!-- 右边定位操作栏 --> <!-- 右边定位操作栏 -->
@ -209,8 +238,9 @@
<div> <div>
<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>
@ -222,7 +252,7 @@
<mat-expansion-panel-header> <mat-expansion-panel-header>
<label class="text">{{item.name}}</label> <label class="text">{{item.name}}</label>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<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"
(click)='selectImg(item,items,key)' (click)='selectImg(item,items,key)'
@ -231,7 +261,7 @@
<p class="overflowText">{{items.name}}</p> <p class="overflowText">{{items.name}}</p>
</div> </div>
</div> </div>
</mat-expansion-panel> </mat-expansion-panel>
</mat-accordion> </mat-accordion>
</ng-container> </ng-container>
@ -241,18 +271,22 @@
</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: 50%;background-color: white;"> <div [ngClass]="{'forbidden': !isEditPattern}" id="property" class="property"
style="height: 50%;background-color: white;">
<div class="title"> <div class="title">
<div> <div>
<span style="user-select: none">属性</span> <span style="user-select: none">属性</span>
</div> </div>
</div> </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>
@ -261,20 +295,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>
<!-- 如果是多点连线 或者 矢量图--> <!-- 如果是多点连线 或者 矢量图-->
@ -282,17 +321,19 @@
<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 class="input" [(ngModel)]="isHighLight" type="checkbox" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> <input 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">
<div class="colorBigTemplateDiv"> <div class="colorBigTemplateDiv">
<span>颜色</span> <span>颜色</span>
@ -300,58 +341,81 @@
</div> </div>
</div> </div>
<div class="colorDiv" *ngIf="isEditPattern"> <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>
</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 && item.PropertyName != '所属单位'"> <div *ngIf="item.PropertyType == 0 && item.PropertyName != '所属单位'">
<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.PropertyName == '所属单位'"> <div *ngIf="item.PropertyName == '所属单位'">
<p>{{item.PropertyName}}<span style="font-size: 14px;" *ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p> <p>{{item.PropertyName}}<span style="font-size: 14px;"
*ngIf="item.PhysicalUnit">({{item.PhysicalUnit}})</span></p>
<div class="orInput"> <div class="orInput">
<input readonly type="text" class="biginput" [value]="item.PropertyValue" [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)"> <input readonly type="text" class="biginput" [value]="item.PropertyValue"
<div [hidden]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)" class="changeOr" (click)="changeOr()"> [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<div [hidden]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)" class="changeOr"
(click)="changeOr()">
更换 更换
</div> </div>
</div> </div>
</div> </div>
<!-- 多行文本 --> <!-- 多行文本 -->
<div *ngIf="item.PropertyType == 1 && item.PropertyName != '所属单位'"> <div *ngIf="item.PropertyType == 1 && item.PropertyName != '所属单位'">
<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 && item.PropertyName != '所属单位'"> <div *ngIf="item.PropertyType == 2 && item.PropertyName != '所属单位'">
<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="position: relative;;width: 89%;border:1px solid rgb(208, 211, 214);height: 100px;margin: 6px auto;" class="swiper-container"> <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 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>
@ -360,45 +424,52 @@
<!-- 方向 --> <!-- 方向 -->
<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)"
<option value ="0" [selected]="item.PropertyValue =='0'"></option> [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<option value ="1" [selected]="item.PropertyValue =='1'">西</option> <option value="0" [selected]="item.PropertyValue =='0'"></option>
<option value ="2" [selected]="item.PropertyValue =='2'"></option> <option value="1" [selected]="item.PropertyValue =='1'">西</option>
<option value ="3" [selected]="item.PropertyValue =='3'"></option> <option value="2" [selected]="item.PropertyValue =='2'"></option>
<option value ="4" [selected]="item.PropertyValue =='4'">东南</option> <option value="3" [selected]="item.PropertyValue =='3'"></option>
<option value ="5" [selected]="item.PropertyValue =='5'">西南</option> <option value="4" [selected]="item.PropertyValue =='4'">东南</option>
<option value ="6" [selected]="item.PropertyValue =='6'">东北</option> <option value="5" [selected]="item.PropertyValue =='5'">西南</option>
<option value ="7" [selected]="item.PropertyValue =='7'">西北</option> <option value="6" [selected]="item.PropertyValue =='6'">东北</option>
<option value="7" [selected]="item.PropertyValue =='7'">西北</option>
</select> </select>
</div> </div>
<!-- 布尔值 是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)"
<option value ="0" [selected]="item.PropertyValue =='0'">全部</option> [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<option value ="1" [selected]="item.PropertyValue =='1'">高区</option> <option value="0" [selected]="item.PropertyValue =='0'">全部</option>
<option value ="2" [selected]="item.PropertyValue =='2'">中区</option> <option value="1" [selected]="item.PropertyValue =='1'">高区</option>
<option value ="3" [selected]="item.PropertyValue =='3'">低区</option> <option value="2" [selected]="item.PropertyValue =='2'">中区</option>
<option value ="4" [selected]="item.PropertyValue =='4'">高中区</option> <option value="3" [selected]="item.PropertyValue =='3'">低区</option>
<option value ="5" [selected]="item.PropertyValue =='5'">高低区</option> <option value="4" [selected]="item.PropertyValue =='4'">高中区</option>
<option value ="6" [selected]="item.PropertyValue =='6'">中低区</option> <option value="5" [selected]="item.PropertyValue =='5'">高低区</option>
<option value="6" [selected]="item.PropertyValue =='6'">中低区</option>
</select> </select>
</div> </div>
<!-- 供给类型 --> <!-- 供给类型 -->
<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"
<option value ="0" [selected]="item.PropertyValue =='0'">消火栓</option> [disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<option value ="1" [selected]="item.PropertyValue =='1'">喷淋</option> <option value="0" [selected]="item.PropertyValue =='0'">消火栓</option>
<option value ="2" [selected]="item.PropertyValue =='2'">水幕</option> <option value="1" [selected]="item.PropertyValue =='1'">喷淋</option>
<option value ="3" [selected]="item.PropertyValue =='3'">泡沫</option> <option value="2" [selected]="item.PropertyValue =='2'">水幕</option>
<option value ="4" [selected]="item.PropertyValue =='4'">消防</option> <option value="3" [selected]="item.PropertyValue =='3'">泡沫</option>
<option value="4" [selected]="item.PropertyValue =='4'">消防</option>
</select> </select>
</div> </div>
</div> </div>
@ -407,15 +478,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>
<!-- 如果是多点连线 --> <!-- 如果是多点连线 -->
@ -423,9 +501,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">
@ -435,31 +516,43 @@
</div> </div>
</div> </div>
<div class="colorDiv" *ngIf="isEditPattern && 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>
</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">
@ -478,31 +571,37 @@
<!-- 布尔值 是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)"
<option value ="0">全部</option> [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<option value ="1">高区</option> <option value="0">全部</option>
<option value ="2">中区</option> <option value="1">高区</option>
<option value ="3">低区</option> <option value="2">中区</option>
<option value ="4">高中区</option> <option value="3">低区</option>
<option value ="5">高低区</option> <option value="4">高中区</option>
<option value ="6">中低区</option> <option value="5">高低区</option>
<option value="6">中低区</option>
</select> </select>
</div> </div>
<!-- 供给类型 --> <!-- 供给类型 -->
<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)"
<option value ="0">消火栓</option> [disabled]="!isEditPattern || (firstMultipleAssetData.assetData.GameMode == 0 && !pattern)">
<option value ="1">喷淋</option> <option value="0">消火栓</option>
<option value ="2">水幕</option> <option value="1">喷淋</option>
<option value ="3">泡沫</option> <option value="2">水幕</option>
<option value ="4">消防</option> <option value="3">泡沫</option>
<option value="4">消防</option>
</select> </select>
</div> </div>
</div> </div>
@ -511,8 +610,9 @@
<!-- 消防要素 --> <!-- 消防要素 -->
<div id="firecategories" class="firecategories" style="height: 50%;background-color: white;"> <div id="firecategories" class="firecategories" style="height: 50%;background-color: white;">
<!-- 素材属性div鼠标拖动div --> <!-- 素材属性div鼠标拖动div -->
<div style="height:3px;width: 100%;position: absolute;top: 0;cursor: n-resize;z-index: 1000;" (mousedown)="firecategoriesDivMouseDown($event)"></div> <div style="height:3px;width: 100%;position: absolute;top: 0;cursor: n-resize;z-index: 1000;"
(mousedown)="firecategoriesDivMouseDown($event)"></div>
<div class="title"> <div class="title">
<div> <div>
<span style="user-select: none">消防要素</span> <span style="user-select: none">消防要素</span>
@ -520,41 +620,51 @@
</div> </div>
<div class="firecategoriesTree"> <div class="firecategoriesTree">
<div class="hideAllTreeNode" (click)='toggoleAllTreenode()' *ngIf="allFireElements.length"><label>全部显示/隐藏</label><mat-icon [ngClass]="{'icongray': hideAllTreenode == false}">visibility</mat-icon></div> <div class="hideAllTreeNode" (click)='toggoleAllTreenode()' *ngIf="allFireElements.length">
<label>全部显示/隐藏</label>
<mat-icon [ngClass]="{'icongray': hideAllTreenode == false}">visibility</mat-icon>
</div>
<!-- 消防列表树写在这里 --> <!-- 消防列表树写在这里 -->
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl"> <mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<mat-tree-node [ngClass]="{'isLookPattern': !node.isLookPattern && !isEditPattern}" *matTreeNodeDef="let node;" matTreeNodePadding cdkTreeNodePaddingIndent='26' (click)="clickTreeNode(node)" class="treeNode"> <mat-tree-node [ngClass]="{'isLookPattern': !node.isLookPattern && !isEditPattern}"
*matTreeNodeDef="let node;" matTreeNodePadding cdkTreeNodePaddingIndent='26'
(click)="clickTreeNode(node)" class="treeNode">
<button mat-icon-button disabled></button> <button mat-icon-button disabled></button>
<span title="{{node.name}}" [ngClass]="{'treeText': !node.isTemplate}"> <span title="{{node.name}}" [ngClass]="{'treeText': !node.isTemplate}">
{{node.name}} {{node.name}}
</span> </span>
<span *ngIf="node.isTemplate">({{node.children.length}})</span> <span *ngIf="node.isTemplate">({{node.children.length}})</span>
<span class="isLookCss" (click)="clickLookItem(node)"><mat-icon [ngClass]="{'icongray': node.isLook == false}">visibility</mat-icon></span> <span class="isLookCss" (click)="clickLookItem(node)">
<mat-icon [ngClass]="{'icongray': node.isLook == false}">visibility</mat-icon>
</span>
</mat-tree-node> </mat-tree-node>
<mat-tree-node [ngClass]="{'isLookPattern': !node.isLookPattern && !isEditPattern}" *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding (click)="clickTreeNode(node)"class="treeNode" > <mat-tree-node [ngClass]="{'isLookPattern': !node.isLookPattern && !isEditPattern}"
<button mat-icon-button *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding (click)="clickTreeNode(node)"
matTreeNodeToggle class="treeNode">
[attr.aria-label]="'toggle ' + node.name"> <button mat-icon-button matTreeNodeToggle [attr.aria-label]="'toggle ' + node.name">
<mat-icon class="mat-icon-rtl-mirror"> <mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}} {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon> </mat-icon>
</button> </button>
<span title="{{node.name}}" [ngClass]="{'treeText': !node.isTemplate}"> <span title="{{node.name}}" [ngClass]="{'treeText': !node.isTemplate}">
{{node.name}} {{node.name}}
</span> </span>
<span *ngIf="node.isTemplate && node.isNewElement">({{node.children.length}})</span> <span *ngIf="node.isTemplate && node.isNewElement">({{node.children.length}})</span>
<span class="isLookCss" (click)="clickLookItem(node)"><mat-icon [ngClass]="{'icongray': node.isLook == false}">visibility</mat-icon></span> <span class="isLookCss" (click)="clickLookItem(node)">
<mat-icon [ngClass]="{'icongray': node.isLook == false}">visibility</mat-icon>
</span>
</mat-tree-node> </mat-tree-node>
</mat-tree> </mat-tree>
</div> </div>
</div> </div>
</div> </div>
<div id="bottomDiv" (mousewheel)="$event.stopPropagation()" [ngClass]="{'togglePanel3': toggleExpandPanel==true}" class="bottomCss" *ngIf="!pattern"> <div id="bottomDiv" (mousewheel)="$event.stopPropagation()" [ngClass]="{'togglePanel3': toggleExpandPanel==true}"
class="bottomCss" *ngIf="!pattern">
<div class="dragDiv" (mousedown)="bottomDivMouseDown($event)"></div> <div class="dragDiv" (mousedown)="bottomDivMouseDown($event)"></div>
<div class="title"> <div class="title">
<div (click)="details()" [ngClass]="{'detailsAndattentBtn': detailsAndattentBtn}"> <div (click)="details()" [ngClass]="{'detailsAndattentBtn': detailsAndattentBtn}">
@ -565,8 +675,10 @@
</div> </div>
</div> </div>
<div class="body"> <div class="body">
<textarea [disabled]="!isEditPattern" *ngIf="detailsAndattentBtn" name="" id="" rows="10" [(ngModel)]="canvasData.selectPanelPointBaseData.description"></textarea> <textarea [disabled]="!isEditPattern" *ngIf="detailsAndattentBtn" name="" id="" rows="10"
<textarea [disabled]="!isEditPattern" *ngIf="!detailsAndattentBtn" name="" id="" rows="10" [(ngModel)]="canvasData.selectPanelPointBaseData.notes"></textarea> [(ngModel)]="canvasData.selectPanelPointBaseData.description"></textarea>
<textarea [disabled]="!isEditPattern" *ngIf="!detailsAndattentBtn" name="" id="" rows="10"
[(ngModel)]="canvasData.selectPanelPointBaseData.notes"></textarea>
</div> </div>
</div> </div>
</div> </div>

Loading…
Cancel
Save