邵佳豪 5 years ago
parent
commit
c3ed7dc9d2
  1. 2
      src/app/ui/allaround/allaround.component.scss
  2. 4
      src/app/ui/allaround/imgdetails.component.html
  3. 1
      src/app/ui/allaround/imgdetails.component.ts
  4. 16
      src/app/ui/fire-fighting-device/addGrouping.component.ts
  5. 18
      src/app/ui/fire-fighting-device/addGrouping.html
  6. 34
      src/app/ui/fire-fighting-device/fire-fighting-device.component.html
  7. 15
      src/app/ui/fire-fighting-device/fire-fighting-device.component.scss
  8. 82
      src/app/ui/fire-fighting-device/fire-fighting-device.component.ts
  9. 1
      src/app/ui/fire-fighting-device/imagesdata.component.ts
  10. 0
      src/app/ui/fire-fighting-device/imgsdatadetail.component.html
  11. 3
      src/app/ui/function-division/function-division.component.ts
  12. 5
      src/app/ui/key-site/keysiteimgs.component.html
  13. 7
      src/app/ui/realistic-picture/previewImg.html
  14. 7
      src/app/ui/realistic-picture/realistic-picture.component.ts
  15. 2
      src/app/ui/ui.module.ts
  16. 27
      src/app/ui/uploading-cad/uploading-cad.component.ts

2
src/app/ui/allaround/allaround.component.scss

@ -11,8 +11,6 @@
overflow-y: auto;
flex-direction: row;
flex-wrap: wrap;
align-items:center;
justify-content:center;
.imgBox{
width: 300px;
height: 250px;

4
src/app/ui/allaround/imgdetails.component.html

@ -2,7 +2,9 @@
<div class="swiper-container">
<div class="swiper-wrapper">
<div *ngFor="let item of allImages" class="swiper-slide previewImgBox">
<img [ngClass]="{'rotateA':rotationAngle==90,'rotateB':rotationAngle==180,'rotateC':rotationAngle==270}" [src]="item">
<img [ngClass]="{'rotateA':rotationAngle==90,'rotateB':rotationAngle==180,'rotateC':rotationAngle==270}" class="swiper-lazy"
[attr.data-src]="item">
<div class="swiper-lazy-preloader"></div>
</div>
</div>

1
src/app/ui/allaround/imgdetails.component.ts

@ -27,6 +27,7 @@ import Swiper from 'swiper';
ngAfterViewInit() {
this.testSwiper = new Swiper('.swiper-container', {
lazy: true,
direction: 'horizontal',
loop: false,

16
src/app/ui/fire-fighting-device/imgsdatadetail.component.ts → src/app/ui/fire-fighting-device/addGrouping.component.ts

@ -8,7 +8,7 @@ import Swiper from 'swiper';
@Component({
selector: 'imgsdatadetail',
templateUrl: './imgsdatadetail.component.html',
templateUrl: './addGrouping.html',
styleUrls: ['./fire-fighting-device.component.scss']
})
export class ImgsDataDetail {
@ -23,6 +23,20 @@ export class ImgsDataDetail {
}
//提交表单
onSubmit (e) {
let header = {groupId:this.data.id}
let msg = {
isBuiltin: false,
details: '',
name: e.name,
isEachFloor: false,
order: this.data.facilityItems.length? this.data.facilityItems[this.data.facilityItems.length-1].order+1 : 0}
this.http.post('/api/CompanyAccount/CompanyFacilityItems',msg,{params:header}).subscribe(data=>{
this.dialogRef.close(data);
})
}
}

18
src/app/ui/fire-fighting-device/addGrouping.html

@ -0,0 +1,18 @@
<div mat-dialog-title>创建消防设施内置项</div>
<div>
<form (ngSubmit)="onSubmit(form.value)" #form="ngForm" class="example-container">
<mat-form-field>
<input matInput placeholder="请输入消防设施内置项名称" required ngModel name="name" maxlength="30">
</mat-form-field>
<p style="font-size: 14px; color: red; margin-bottom: 15px;">*注: 该名称如果与当前分组内置项重名,会自动覆盖之前内置项</p>
<div mat-dialog-actions>
<button mat-raised-button color="primary" type="submit"
[disabled]="!form.form.valid">
确定
</button>
<button mat-raised-button mat-dialog-close>取消</button>
</div>
</form>
</div>

34
src/app/ui/fire-fighting-device/fire-fighting-device.component.html

@ -6,9 +6,9 @@
<div style="width: 100%;margin-top: 25px;" *ngFor="let item of companyBuiltInGrouping;let key = index">
<h3 style="text-align: center;font-weight: 550;">{{item.name}}</h3>
<div style="margin-bottom: 10px;">
<mat-icon title="创建">add_circle_outline</mat-icon>
<mat-icon title="保存" style="margin-left: 25px;">description</mat-icon>
<mat-icon title="删除" style="margin-left: 25px;">delete</mat-icon>
<mat-icon title="创建" (click)='addCompanyGrouping(item)'>add_circle_outline</mat-icon>
<mat-icon title="保存" style="margin-left: 25px;" (click)='editCompanyGrouping(item)'>description</mat-icon>
<mat-icon title="删除" style="margin-left: 25px;" (click)='deleteCompanyGrouping(item)'>delete</mat-icon>
</div>
<div>
<mat-accordion multi>
@ -23,11 +23,18 @@
<mat-expansion-panel *ngFor="let items of item.facilityItems" disabled [expanded]=items.expanded>
<mat-expansion-panel-header>
<label class="textContent"><mat-checkbox></mat-checkbox></label>
<label class="textContent">
<mat-checkbox (change)='checkedCompany($event,item,items)' [disabled]='items.isBuiltin'></mat-checkbox>
</label>
<label class="textContent">{{items.name}}</label>
<label class="textContent"><a href="javascript:void(0)" (click)='previewImg()'>查看图片</a></label>
<label class="lastTextContent">{{items.details}}</label>
<label><mat-icon title="切换" (click)='SwitchBoard(items)'>radio_button_checked</mat-icon></label>
<label class="lastTextContent" *ngIf="items.isBuiltin">{{items.details}}</label>
<label class="lastTextContent" *ngIf="!items.isBuiltin">
<input type="text" [(ngModel)]="items.details" style="width: 80%;">
</label>
<label><mat-icon title="切换" (click)='SwitchBoard(items)' *ngIf="items.isBuiltin">radio_button_checked</mat-icon></label>
</mat-expansion-panel-header>
</mat-expansion-panel>
@ -41,15 +48,18 @@
<mat-expansion-panel>
<mat-expansion-panel-header>
<h3 style="text-align: center;font-weight: 550;">{{item.name}}</h3>
<mat-icon title="保存" style="margin-left: 25px;" (click)='editCompanyOptional($event,item)'>description</mat-icon>
</mat-expansion-panel-header>
<div *ngFor="let items of item.propertyInfos" class="InputField">
<label>{{items.propertyName}}:</label>
<input type="text">
<textarea maxlength="250"></textarea>
<input type="number">
<mat-radio-group>
<mat-radio-button value=true style="margin-left: 5px;"></mat-radio-button>
<mat-radio-button value=false style="margin-left: 5px;"></mat-radio-button>
<input type="text" *ngIf="items.propertyType!=1&&items.propertyType!=2&&items.propertyType!=4&&items.propertyType!=6"
[(ngModel)]="items.propertyValue" name="propertyValue">
<textarea maxlength="250" *ngIf="items.propertyType==1" [(ngModel)]="items.propertyValue" name="propertyValue"></textarea>
<input type="number" *ngIf="items.propertyType==2 ||items.propertyType==4"
[(ngModel)]="items.propertyValue" name="propertyValue">
<mat-radio-group *ngIf="items.propertyType==6">
<mat-radio-button value=true style="margin-left: 5px;"></mat-radio-button>
<mat-radio-button value=false style="margin-left: 5px;"></mat-radio-button>
</mat-radio-group>
</div>
</mat-expansion-panel>

15
src/app/ui/fire-fighting-device/fire-fighting-device.component.scss

@ -20,11 +20,22 @@
width: 15%;
color: black;
text-align: center;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
.lastTextContent {
width: 50%;
color: black;
text-align: center;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
input {
height: 22px;
line-height: 22px;
border-radius: 3px;
}
//bottom用户输入框
@ -32,10 +43,6 @@
display: inline-block;
margin: 10px 25px;
label {margin-right: 10px;}
input {
height: 22px;
line-height: 22px;
border-radius: 3px;}
}
textarea {
border-radius: 5px;

82
src/app/ui/fire-fighting-device/fire-fighting-device.component.ts

@ -1,8 +1,9 @@
import { Component, OnInit, ViewChild, Inject } from '@angular/core';
import {HttpClient} from '@angular/common/http'
import {HttpClient, HttpHeaders} from '@angular/common/http'
import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { MatTableDataSource } from '@angular/material/table';
import { ImagesData } from './imagesdata.component'
import { ImgsDataDetail } from './addGrouping.component'
import { MatSnackBarConfig, MatSnackBar } from '@angular/material/snack-bar';
@ -13,12 +14,12 @@ import { ImagesData } from './imagesdata.component'
})
export class FireFightingDeviceComponent implements OnInit {
constructor(public http: HttpClient,public dialog: MatDialog) { }
constructor(public http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar) { }
displayedColumns: string[] = ['checked','project', 'phone', 'mainmsg'];
ngOnInit(): void {
// this.getCompanyInformation()
this.getCompanyInformation()
}
companyBuiltInGrouping:any = []; //单位消防设施内置分组
@ -30,18 +31,85 @@ export class FireFightingDeviceComponent implements OnInit {
if (data.buildingTypes.length) {
let newData = {buildingType: data.buildingTypes[0].id}
this.http.get('/api/CompanyAccount/CompanyFacilities',{params:newData}).subscribe((data:any)=>{ //获得单位的消防设施
this.companyBuiltInGrouping = data[0].companyFacilityGroups
this.companyOptionalGrouping = data[0].companyOptionalGroups
this.companyBuiltInGrouping = data[0].summary.companyFacilityGroups
this.companyOptionalGrouping = data[0].summary.companyOptionalGroups
this.companyBuiltInGrouping.forEach(element => { //循环单位内置分组项
element.selectBuiltInGrouping = []
element.facilityItems.forEach(elements => {
elements.expanded = false});
});
console.log(this.companyBuiltInGrouping,this.companyOptionalGrouping)
console.log(this.companyBuiltInGrouping)
console.log(this.companyOptionalGrouping)
})
}
})
}
//创建单位消防设施内置分组项
addCompanyGrouping (e) {
let data = e
let dialogRef = this.dialog.open(ImgsDataDetail,{data});
dialogRef.afterClosed().subscribe(data=>{
if (data) {this.editCompanyGrouping(e)} });
}
//保存单位消防设施内置分组项
editCompanyGrouping(e) {
let header = {groupId:e.id}
e.facilityItems.forEach((element,index) => {
if (!element.isBuiltin) {
let msg = {
isBuiltin: element.isBuiltin,
details: element.details,
name: element.name,
isEachFloor: element.isEachFloor,
order: element.order}
this.http.post('/api/CompanyAccount/CompanyFacilityItems',msg,{params:header}).subscribe(data=>{
if (index==e.facilityItems.length-1) {
this.getCompanyInformation()
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('数据更新成功','确定',config);}
})
}
});
}
//checked单位消防设施内置分组项时
checkedCompany (e,item,items) {
if (e.checked) {
item.selectBuiltInGrouping.push(items)
} else {
item.selectBuiltInGrouping.splice(item.selectBuiltInGrouping.findIndex(oldItem => oldItem == items), 1)
}
}
//删除消防设施内置分组项时
deleteCompanyGrouping (e) {
if (e.selectBuiltInGrouping.length) {
let isDelete = confirm('您确定要删除吗')
if (isDelete) {
e.selectBuiltInGrouping.forEach((element,index) => {
let msg = {groupId:e.id,name:element.name}
this.http.delete('/api/CompanyAccount/CompanyFacilityItems',{params:msg}).subscribe(data=>{
if (index==e.selectBuiltInGrouping.length-1){this.getCompanyInformation()}})
});
}
} else {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请选择内置分组项','确定',config);
}
}
//保存单位消防设施可选分组
editCompanyOptional (e,item) {
e.stopPropagation() //阻止冒泡
console.log(item)
}
//切换展开面板
SwitchBoard (e) {
e.expanded = !e.expanded

1
src/app/ui/fire-fighting-device/imagesdata.component.ts

@ -1,7 +1,6 @@
import { Component, OnInit, Inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';
import { ImgsDataDetail } from './imgsdatadetail.component'

0
src/app/ui/fire-fighting-device/imgsdatadetail.component.html

3
src/app/ui/function-division/function-division.component.ts

@ -29,7 +29,8 @@ export class FunctionDivisionComponent implements OnInit {
//获得所有单位功能分区属性
getAllCompany () {
this.http.get('/api/CompanyAccount/CompanyFunctionalDivisions').subscribe((data:any)=>{
this.companyFunctionalZoning = data
this.companyFunctionalZoning = data
this.selectFunctionalZoning = []
})
}

5
src/app/ui/key-site/keysiteimgs.component.html

@ -2,8 +2,9 @@
<div class="swiper-container">
<div class="swiper-wrapper">
<div *ngFor="let item of allImages" class="swiper-slide previewImgBox">
<img [ngClass]="{'rotateA':rotationAngle==90,'rotateB':rotationAngle==180,'rotateC':rotationAngle==270} " class="swiper-lazy" [attr.data-src]="item">
<img [ngClass]="{'rotateA':rotationAngle==90,'rotateB':rotationAngle==180,'rotateC':rotationAngle==270} " class="swiper-lazy"
[attr.data-src]="item">
<div class="swiper-lazy-preloader"></div>
</div>
</div>

7
src/app/ui/realistic-picture/previewImg.html

@ -1,9 +1,10 @@
<div mat-dialog-title>图片详情</div>
<div class="swiper-container">
<div class="swiper-wrapper">
<div *ngFor="let item of allImages" class="swiper-slide previewImgBox">
<img [ngClass]="{'rotateA':rotationAngle==90,'rotateB':rotationAngle==180,'rotateC':rotationAngle==270}" [src]="item.previewImageUrl">
</div>
<div class="swiper-slide previewImgBox" *ngFor="let item of allImages">
<img [attr.data-src]="item.previewImageUrl" class="swiper-lazy" [ngClass]="{'rotateA':rotationAngle==90,'rotateB':rotationAngle==180,'rotateC':rotationAngle==270}">
<div class="swiper-lazy-preloader"></div>
</div>
</div>
<!-- 如果需要导航按钮 -->

7
src/app/ui/realistic-picture/realistic-picture.component.ts

@ -187,6 +187,10 @@ export class RealisticPictureComponent implements OnInit {
if (isDelete) {
this.http.delete(`/api/CompanyAccount/RealityImages/${e.id}`).subscribe(data=>{
this.getAllRealPicture()
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('图片删除成功','确定',config);
})
this.http.delete(`/api/Objects/PlanPlatform/${e.imageUrl}`).subscribe(data=>{})
}
@ -382,9 +386,12 @@ export class previewImg {
ngAfterViewInit() {
this.testSwiper = new Swiper('.swiper-container', {
lazy: true,
initialSlide: this.data.imgIndex,
direction: 'horizontal',
loop: false,
// 如果需要前进后退按钮
navigation: {

2
src/app/ui/ui.module.ts

@ -91,7 +91,7 @@ import { UploadingCADComponent,readFile,editFile } from './uploading-cad/uploadi
import { AddHouseInfo } from './basicinfo/addhouseinfo.component';
import { ImgDetails } from './allaround/imgdetails.component';
import { ImagesData } from './fire-fighting-device/imagesdata.component';
import { ImgsDataDetail } from './fire-fighting-device/imgsdatadetail.component';
import { ImgsDataDetail } from './fire-fighting-device/addGrouping.component';
import { KeySiteImgs } from './key-site/keysiteimgs.component';
import { KeyImgDetail } from './key-site/keyimgdetail.component';
import { LookMaster } from './basicinfo/lookmaster.component';

27
src/app/ui/uploading-cad/uploading-cad.component.ts

@ -69,12 +69,17 @@ export class UploadingCADComponent implements OnInit {
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('不支持批量编辑','确定',config);
}else if (!this.selectCAD.length) {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请选择CAD图纸','确定',config);
}
}
//删除CAD图
deleteCAD () {
if (this.selectCAD.length!=0) {
if (this.selectCAD.length) {
let isDelete = confirm('您确定要删除吗')
let arr = []
if (isDelete) {
@ -84,9 +89,19 @@ export class UploadingCADComponent implements OnInit {
this.http.delete(`/api/Objects/PlanPlatform/${element.cadUrl}`).subscribe(data=>{})
})
arr.push(result)
if (arr.length == this.selectCAD.length) {this.getAllCAD()}
if (arr.length == this.selectCAD.length) {
this.getAllCAD()
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('删除CAD图纸成功','确定',config);}
});
}
} else {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请选择CAD图纸','确定',config);
}
}
@ -222,7 +237,13 @@ export class UploadingCADComponent implements OnInit {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('暂时不支持批量下载','确定',config)}
this.snackBar.open('暂时不支持批量下载','确定',config)
} else if (!this.selectCAD.length) {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请选择CAD图纸','确定',config);
}
}
//初始化下载

Loading…
Cancel
Save