From e5db8fd91964a879ca80d7f88325d5fb4b4834f1 Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Sun, 7 Feb 2021 16:19:36 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E5=BE=85=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E8=81=94=E5=8A=A8=E5=8A=9B=E9=87=8F=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fire-force/fire-force.component.scss | 2 +- .../fire-force/fire-force.component.ts | 8 +- .../linkage-forces.component.scss | 2 +- .../linkage-forces.component.ts | 9 +- .../linkageforces-audit.component.html | 160 ++++++++- .../linkageforces-audit.component.scss | 330 ++++++++++++++++++ .../linkageforces-audit.component.ts | 220 +++++++++++- .../wait-examineer.component.html | 21 +- 8 files changed, 726 insertions(+), 26 deletions(-) diff --git a/src/app/data-collection/fire-force/fire-force.component.scss b/src/app/data-collection/fire-force/fire-force.component.scss index ac52b20..f0a7e5d 100644 --- a/src/app/data-collection/fire-force/fire-force.component.scss +++ b/src/app/data-collection/fire-force/fire-force.component.scss @@ -123,7 +123,7 @@ height: 20px; cursor: pointer; font-size: 20px; - vertical-align: text-top; + vertical-align: middle; color: rgba(49, 46, 46, 0.144); } mat-icon:hover{ diff --git a/src/app/data-collection/fire-force/fire-force.component.ts b/src/app/data-collection/fire-force/fire-force.component.ts index ba19d96..4b4d194 100644 --- a/src/app/data-collection/fire-force/fire-force.component.ts +++ b/src/app/data-collection/fire-force/fire-force.component.ts @@ -792,7 +792,9 @@ export class FireForceComponent implements OnInit { this.isMasklayer = true let formData = new FormData() formData.append("file",file) - this.http.post(`/api/Objects/PlanPlatform/FireForce/${this.selectedFireForce.id}`,formData).subscribe((data:any)=>{ + let storageFolderId //要存储到服务器的文件夹id 一般为当前选中单位的id 如果新创建的话就存到public文件夹 + this.selectedFireForce.id ? storageFolderId = this.selectedFireForce.id : storageFolderId = 'public' + this.http.post(`/api/Objects/PlanPlatform/FireForce/${storageFolderId}`,formData).subscribe((data:any)=>{ let obj = { objectName:data.objectName, fileName:data.fileName, @@ -808,7 +810,9 @@ export class FireForceComponent implements OnInit { } else if (file && fileSize>shardSize) { //上传文件>5MB时,分块上传 this.isMasklayerUploading = true let data = {filename: file.name} - this.http.post(`/api/NewMultipartUpload/PlanPlatform/FireForce/${this.selectedFireForce.id}`,{},{params:data}).subscribe((data:any)=>{ //初始化分段上传 + let storageFolderId //要存储到服务器的文件夹id 一般为当前选中单位的id 如果新创建的话就存到public文件夹 + this.selectedFireForce.id ? storageFolderId = this.selectedFireForce.id : storageFolderId = 'public' + this.http.post(`/api/NewMultipartUpload/PlanPlatform/FireForce/${storageFolderId}`,{},{params:data}).subscribe((data:any)=>{ //初始化分段上传 this.objectName = data.objectName this.uploadId = data.uploadId this.subsectionUploading() diff --git a/src/app/data-collection/linkage-forces/linkage-forces.component.scss b/src/app/data-collection/linkage-forces/linkage-forces.component.scss index 3449db9..e157894 100644 --- a/src/app/data-collection/linkage-forces/linkage-forces.component.scss +++ b/src/app/data-collection/linkage-forces/linkage-forces.component.scss @@ -129,7 +129,7 @@ height: 20px; cursor: pointer; font-size: 20px; - vertical-align: text-top; + vertical-align: middle; color: rgba(49, 46, 46, 0.144); } mat-icon:hover{ diff --git a/src/app/data-collection/linkage-forces/linkage-forces.component.ts b/src/app/data-collection/linkage-forces/linkage-forces.component.ts index 22e7a19..77185f3 100644 --- a/src/app/data-collection/linkage-forces/linkage-forces.component.ts +++ b/src/app/data-collection/linkage-forces/linkage-forces.component.ts @@ -411,7 +411,6 @@ export class LinkageForcesComponent implements OnInit { }else{ this.LinkageForceDetailInfo.location = null } - this.LinkageForceDetailInfo.relevantInfomationData = JSON.stringify(this.LinkageForceDetailInfo.relevantInfomationData) let body = this.LinkageForceDetailInfo if(this.LinkageForceDetailInfo.id){ this.http.put(`/api/LinkageForces/${this.LinkageForceDetailInfo.id}`,body).subscribe((data:any) =>{ @@ -563,7 +562,9 @@ export class LinkageForcesComponent implements OnInit { let formData = new FormData() formData.append("file",file) //this.selectedFireForce.id 选择的组织机构的id - this.http.post(`/api/Objects/PlanPlatform/LinkageForce/${this.LinkageForceDetailInfo.id}`,formData).subscribe((data:any)=>{ + let storageFolderId //要存储到服务器的文件夹id 一般为当前选中单位的id 如果新创建的话就存到public文件夹 + this.LinkageForceDetailInfo.id ? storageFolderId = this.LinkageForceDetailInfo.id : storageFolderId = 'public' + this.http.post(`/api/Objects/PlanPlatform/LinkageForce/${storageFolderId}`,formData).subscribe((data:any)=>{ // this.objectName = data.objectName let obj = { objectName:data.objectName, @@ -580,7 +581,9 @@ export class LinkageForcesComponent implements OnInit { } else if (file && fileSize>shardSize) { //上传文件>5MB时,分块上传 this.isMasklayerUploading = true let data = {filename: file.name} - this.http.post(`/api/NewMultipartUpload/PlanPlatform/LinkageForce/${this.LinkageForceDetailInfo.id}`,{},{params:data}).subscribe((data:any)=>{ //初始化分段上传 + let storageFolderId //要存储到服务器的文件夹id 一般为当前选中单位的id 如果新创建的话就存到public文件夹 + this.LinkageForceDetailInfo.id ? storageFolderId = this.LinkageForceDetailInfo.id : storageFolderId = 'public' + this.http.post(`/api/NewMultipartUpload/PlanPlatform/LinkageForce/${storageFolderId}`,{},{params:data}).subscribe((data:any)=>{ //初始化分段上传 this.objectName = data.objectName this.uploadId = data.uploadId this.subsectionUploading() diff --git a/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.html b/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.html index 8ca918c..03f770c 100644 --- a/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.html +++ b/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.html @@ -1 +1,159 @@ - \ No newline at end of file + +
+
+ + +
+ +
+
+ + 请等待... +
+
+ + 下载中...({{progressBarValue}}%) +
+
+
+
+ 详情 +
+
+ 相关资料 +
+
+
+ +
+
+

基本信息

+ + + + * + 类型: + + + + + + * + 名称: + + + + + + 单位联系电话: + + + + + + 单位传真: + + + + + + 备注: + + + + +

位置信息

+ + + + 行政区: + + + + 地址: + + + + + + 经度: + + + + 纬度: + + + + + +

联系人

+ + + + 联系人: + + + + + + 职务: + + + + + + 电话: + + + + +

应急信息

+ + + + 服务内容: + + + + + + 资源说明: + + + + + +
+
+ +
+
+
+ + + + + +
+ {{item.fileName}} + + +
+
+
+
+
+ + \ No newline at end of file diff --git a/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.scss b/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.scss index e69de29..ade0459 100644 --- a/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.scss +++ b/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.scss @@ -0,0 +1,330 @@ +.box{ + width: 100%; + height: 100%; + background-color: #F2F4F6; + display: flex; + box-sizing: border-box; + padding: 10px; + font-size: 16px; + // font-family: Source Han Sans CN; + font-weight: 400; + color: #000000; +} +.mapbox{ + flex: 1; + margin-left: 10px; + background-color: #fff; + display: flex; + overflow: hidden; + flex-direction: column; + + #container{ + width: 100%; + height: 220px; + } + .detailsbox{ + width: 100%; + flex: 1; + position: relative; + .tabsbox{ + width: 100%; + height: 40px; + overflow: hidden; + overflow-x: auto; + line-height: 40px; + display: flex; + justify-content: space-between; + font-size: 15px; + .tabs{ + div{ + float: left; + width: 120px; + text-align: center; + cursor: pointer; + color: #000000; + opacity: 0.4; + border-right: 1px solid #F2F4F6; + } + .selectedBtn{ + background-color: #2196F3; + color: #fff; + opacity: 1; + } + } + .btnbox{ + display: flex; + align-items: center; + .uploadAttachment{ + display: inline-block; + margin-right: 20px; + width: 120px; + text-align: center; + height: 28px; + line-height: 28px; + position: relative; + button{ + width: 100%; + height: 28px; + line-height: 28px; + mat-icon{ + transform: rotate(25deg); + font-size: 20px; + width: 20px; + height: 20px; + } + } + .a-upload{ + display: inline-block; + position: absolute; + left: 0; + top: 0; + display: inline-block; + width: 100%; + height: 100%; + opacity: 0; + input{ + width: 100%; + height: 100%; + cursor: pointer; + } + } + } + span{ + display: inline-block; + cursor: pointer; + color: #2196F3; + mat-icon{ + vertical-align: sub; + font-size: 20px; + width: 20px; + height: 20px; + } + } + span:hover{ + text-decoration: underline; + } + .submitAudit{ + margin: 0 30px; + } + .close{ + margin-right: 30px; + } + } + } + .contant{ + width: 100%; + height:460px; + overflow-y: auto; + p{ + color: #2196F3; + background-color: #F2F4F6; + height: 33px; + line-height: 33px; + box-sizing: border-box; + padding-left: 20px; + font-size: 15px; + } + span{ + font-size: 15px; + } + input,select{ + height: 30px; + line-height: 30px; + box-sizing: border-box; + padding: 0 12px; + width: 60%; + margin-left: 5px; + border: 1px solid #EBEBEB; + border-radius: 5px; + } + textarea{ + width: 89%; + margin-left: 5px; + height: 85%; + border: 1px solid #EBEBEB; + border-radius: 5px; + } + .longinput{ + width: 74%; + } + .unitDiv{ + width: 60%; + position: relative; + input,select{ + width: 100%; + box-sizing: border-box; + padding-right: 50px; + } + .unit{ + position: absolute; + right: 13px; + top: 4px; + color: #000000; + opacity: 0.4; + } + } + .smallwidth{ + width: 30%; + } + // 相关资料 + .fileDivBox{ + position: relative; + float: left; + border: 1px solid #EBEBEB; + width: 160px; + height: 162px; + box-sizing: border-box; + padding: 16px 16px 0; + display: flex; + flex-direction: column; + margin: 12px; + align-items: center; + cursor: pointer; + .imgbox{ + width: 134px; + height: 110px; + display: flex; + justify-content: center; + align-items: center; + .thumbnailImg{ + width: 134px; + height: 110px; + } + } + + span{ + width: 100%; + text-align: center; + margin-top: 5px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + color: gray; + font-size: 14px; + } + .deleteFile{ + position: absolute; + right: 0; + top: 0; + width: 18px; + height: 18px; + font-size: 18px; + display: none; + } + .btn{ + position: absolute; + height: 30px; + line-height: 30px; + font-size: 14px; + display: none; + } + .btn1{ + top: 37px; + } + .btn2{ + top: 78px; + } + } + .fileDivBox:hover{ + border: 1px solid #000; + .deleteFile{ + display: block; + + } + .deleteFile:hover{ + color: red; + } + .btn{ + display: block; + } + } + } + .masklayer{ + position: absolute; + left: 0; + top: 0; + z-index: 2000; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.2); + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + span{ + font-size: 14px; + margin-top: 5px; + } + .progressbar{ + width: 15%; + } + .cancelbtn{ + height: 32px; + line-height: 32px; + font-size: 14px; + margin-top: 12px; + } + } + } +} + + +.addLinkageForceBox{ + width: 530px; + height: 262px; + display: flex; + flex-direction: column; + .topbox{ + width: 100%; + height: 40px; + line-height: 40px; + background-color: #2196F3; + text-align: center; + color: #FFFFFF; + font-size: 15px; + } + .contant{ + flex: 1; + box-sizing: border-box; + padding:20px 30px; + + div{ + width:86px; + margin: 3px; + height: 36px; + float: left; + line-height: 36px; + text-align: center; + background-color: #F2F4F6; + font-size: 14px; + cursor: pointer; + border: 1px solid #fff; + border-radius: 4px; + display: flex; + justify-content: center; + align-items: center; + img{ + margin-right: 3px; + } + } + .selectedDiv{ + background-color: #fff; + border: 1px solid #2196F3; + } + } + .btnbox{ + width: 100%; + height: 50px; + box-sizing: border-box; + padding: 0px 30px; + display: flex; + align-items: flex-start;; + justify-content: center; + button{ + width: 80px; + height: 36px; + line-height: 36px; + margin: 0 20px; + } + } +} \ No newline at end of file diff --git a/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.ts b/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.ts index 30643f6..50970b0 100644 --- a/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.ts +++ b/src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.ts @@ -1,5 +1,11 @@ +import { HttpClient } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; - +import { ViewDetailsComponent } from '../view-details/view-details.component'; +import Viewer from 'viewerjs' +import { MatSnackBar } from '@angular/material/snack-bar'; +import { MatDialog } from '@angular/material/dialog'; +declare var CryptoJS +declare var AMap: any; @Component({ selector: 'app-linkageforces-audit', templateUrl: './linkageforces-audit.component.html', @@ -7,9 +13,219 @@ import { Component, OnInit } from '@angular/core'; }) export class LinkageforcesAuditComponent implements OnInit { - constructor() { } + constructor(public snackBar: MatSnackBar,private http:HttpClient,public dialog: MatDialog) { } + LinkageForceDetailInfo:any = { + id: "600a736de10e6bf0ec592522", + linkageForceType: 5, + createTime: "2021-01-22T14:40:45.258345", + creatorId: "5e8eced2aaca5f7c1025309b", + name: "交通", + phoneNumber: "13864340193", + faxNumber: "110", + remark: "这是备注", + address: "小高", + location: { + x: 117.913928, + y: 36.457997 + }, + administrativeRegion: "淄博", + contactName: "张三", + contactTitle: "119", + contactPhone: "112", + serviceContent: "为人民服务", + resourceRemark: "宇宙资源", + relevantInfomationData: "[{\"fileName\":\"楼层区域.png\",\"fileLength\":4079,\"objectName\":\"LinkageForce/undefined/601e3f957cea2c03587c4c78.png\"},{\"fileName\":\"完整度规划20200724.docx\",\"fileLength\":16480,\"objectName\":\"LinkageForce/undefined/601e3f997cea2c03587c4c79.docx\"},{\"fileName\":\"李志 《天空之城》.mp4\",\"fileLength\":56362628,\"objectName\":\"LinkageForce/undefined/601e3f9d7cea2c03587c4c7a.mp4\"}]", + integrityScore: 0.16666667 + } + checkBoxList:any[] = [ + {id:0,name:'安监',imgUrl:'/assets/linkageForces/安监.png',isChecked:false}, + {id:1,name:'电力局',imgUrl:'/assets/linkageForces/电力局.png',isChecked:false}, + {id:2,name:'公安',imgUrl:'/assets/linkageForces/公安.png',isChecked:false}, + {id:3,name:'海事',imgUrl:'/assets/linkageForces/海事.png',isChecked:false}, + {id:4,name:'环保局',imgUrl:'/assets/linkageForces/环保局.png',isChecked:false}, + {id:5,name:'交通',imgUrl:'/assets/linkageForces/交通.png',isChecked:false}, + {id:6,name:'民政',imgUrl:'/assets/linkageForces/民政.png',isChecked:false}, + {id:7,name:'气象局',imgUrl:'/assets/linkageForces/气象局.png',isChecked:false}, + {id:8,name:'燃气局',imgUrl:'/assets/linkageForces/燃气局.png',isChecked:false}, + {id:9,name:'市政',imgUrl:'/assets/linkageForces/市政.png',isChecked:false}, + {id:10,name:'水利',imgUrl:'/assets/linkageForces/水利.png',isChecked:false}, + {id:11,name:'通信',imgUrl:'/assets/linkageForces/通信.png',isChecked:false}, + {id:12,name:'医疗',imgUrl:'/assets/linkageForces/医疗.png',isChecked:false}, + {id:13,name:'应急管理',imgUrl:'/assets/linkageForces/应急管理.png',isChecked:false}, + {id:14,name:'住建',imgUrl:'/assets/linkageForces/住建.png',isChecked:false} + ] + AttachmentArr:any//附件 + map:any + newPositionMarker:any + newPositionMarkerContent:any = + '
' + + ' ' + + '
' ngOnInit(): void { + this.AttachmentArr = JSON.parse(this.LinkageForceDetailInfo.relevantInfomationData) + setTimeout(() => { + this.map = new AMap.Map('container', { + zoom:18 + }) + + if(this.LinkageForceDetailInfo.location && this.LinkageForceDetailInfo.location.x){ + this.map.setCenter([this.LinkageForceDetailInfo.location.x,this.LinkageForceDetailInfo.location.y]); + this.newPositionMarker = new AMap.Marker({ + position: [this.LinkageForceDetailInfo.location.x,this.LinkageForceDetailInfo.location.y], + content: this.newPositionMarkerContent, + offset: new AMap.Pixel(-10, -12) + }) + // 将 markers 添加到地图 + this.map.add(this.newPositionMarker); + }else{ + this.map.setCity('上海市'); + } + + }, 0); + } + objectName:any + progressBarValue:any = 0//分块上传进度 + isMasklayer:boolean = false//圆圈遮罩层是否打开 + isMasklayerDownload:boolean = false//下载进度条遮罩层是否打开 + //下载 + download (e) { + this.isMasklayerDownload = true //开启下载进度条 + let file = e //传递过来的文件元数据 + let fileSize = file.fileLength //下载文件的总大小 + let shardSize = 3 * 1024 * 1024 //文件大小是否大于10MB + if (file && fileSize<=shardSize) { //<=3MB时直接下载 + this.progressBarValue = 60 + this.http.get(`/api/Objects/PlanPlatform/${e.objectName}`,{responseType: 'blob'},).subscribe(data=>{ + let url = window.URL.createObjectURL(new Blob([data])); //createObjectURL创建一个下载Blob的url地址 + let link = document.createElement("a"); + link.style.display = "none"; + link.href = url; + let fileName = e.fileName ? e.fileName : e.objectName.split('/')[e.objectName.split('/').length-1] + link.setAttribute("download", fileName); + document.body.appendChild(link); + link.click(); + this.isMasklayerDownload = false //关闭下载进度条 + this.progressBarValue = 0 //初始化进度条 + }) + } else if (file && fileSize>shardSize) { //>3MB时分块下载 + this.blockingDownload(e) //分段下载 + } + } + //分段下载并合并 + async blockingDownload (e) { + let file = e //传递过来的文件元数据 + let fileSize = file.fileLength //下载文件的总大小 + let shardSize = 3 * 1024 * 1024 //3MB一个分片 + let allSlice = Math.ceil(fileSize / shardSize) //总文件/3MB===共分多少段 + let allFile:any = [] //所有的file分段 + + for (let i=0;i{ + this.http.get(`/api/Objects/PlanPlatform/${e.objectName}`,{headers:{'range':`bytes= ${start}-${end}`},responseType:'blob'}).subscribe(data=>{ + result(data) }) + }) + allFile.push(result) + // this.progressBarValue = Number((i/allSlice).toFixed(2))*100 //文件进度数 + this.progressBarValue = this.accMul(Number((i/allSlice).toFixed(2))*100,1,0) + if (allFile.length === allSlice) { //合并文件输出给浏览器 + let url = window.URL.createObjectURL(new Blob(allFile)); //createObjectURL创建一个下载Blob的url地址 + let link = document.createElement("a"); + link.style.display = "none"; + link.href = url; + let fileName = e.fileName ? e.fileName : e.objectName.split('/')[e.objectName.split('/').length-1] + link.setAttribute("download", fileName); + document.body.appendChild(link); + link.click(); + this.isMasklayerDownload = false //关闭下载进度条 + this.progressBarValue = 0 //初始化进度条 + } + } //for循环结束 + + } + //js乘法 + accMul(arg1,arg2,fix) { + if(!parseInt(fix)==fix) + { + return; + } + var m=0,s1=arg1.toString(),s2=arg2.toString(); + try{m+=s1.split(".")[1].length}catch(e){} + try{m+=s2.split(".")[1].length}catch(e){} + if(m>fix){ + return (Math.round(Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m-fix))/Math.pow(10,fix)); + }else if(m<=fix){ + return (Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)).toFixed(fix); + }else{ + return (arg1*arg2).toFixed(fix).toString(); + } + } + //当前点击tab页面第几个 + tabIndex:any = 1 + selectedTab(index){ + this.tabIndex = index + } + //点击文件 + clickFile(item){ + let suffix = item.fileName.split('.')[item.fileName.split('.').length-1] + if(suffix == 'png' || suffix == 'jpg' || suffix == 'JPG'){ + let dom = document.getElementById(`viewerjs`) + let pObjs = dom.childNodes; + let node = document.createElement("img") + node.style.display = "none"; + node.src = "/api/Objects/PlanPlatform/" + item.objectName; + node.id = 'img' + dom.appendChild(node) + setTimeout(() => { + let viewer = new Viewer(document.getElementById(`viewerjs`), { + hidden:()=>{ + dom.removeChild(pObjs[0]); + viewer.destroy(); + } + }); + node.click(); + }, 0); + } + if(suffix == 'docx' || suffix == 'doc' || suffix == 'pdf'){ + let fetchUrl = item.objectName + let docIdWordArray = CryptoJS.enc.Utf8.parse(`PlanPlatform/` + fetchUrl); + let docId = CryptoJS.enc.Base64.stringify(docIdWordArray); + + let jwt = sessionStorage.getItem("token"); + let rawJwt = CryptoJS.enc.Base64.parse(jwt.split('.')[1]); + let identityJson = CryptoJS.enc.Utf8.stringify(rawJwt); + let identityJsonparse=JSON.parse(identityJson) + let json={ + doc: { + docId: docId, + title: item.fileName, + fetchUrl: `http://${location.host}/api/Objects/PlanPlatform/`+fetchUrl + }, + user: { + uid: identityJsonparse.sub, + nickName: identityJsonparse.name, + avatar: "", + privilege: [ + 'FILE_READ','FILE_DOWNLOAD', 'FILE_PRINT' + ], + }, + } + var stringjson=JSON.stringify(json) + var wordArray = CryptoJS.enc.Utf8.parse(stringjson); + var base64 = CryptoJS.enc.Base64.stringify(wordArray); + window.open(`http://121.5.10.84/apps/editor/openPreview?data=${base64}`) + } + if(suffix == 'mp4'){ + const dialogRef = this.dialog.open(ViewDetailsComponent, {//调用open方法打开对话框并且携带参数过去 + data: {item:item,type:"video"}, + id:'videodialog' + }); + dialogRef.afterClosed().subscribe(); + } + } } diff --git a/src/app/plan-audit/wait-examineer/wait-examineer.component.html b/src/app/plan-audit/wait-examineer/wait-examineer.component.html index f80bba2..c98c7ab 100644 --- a/src/app/plan-audit/wait-examineer/wait-examineer.component.html +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.html @@ -130,17 +130,6 @@ - -
@@ -280,13 +269,13 @@
--> -
+ - + +
+ +