From daf71a3636ed0a1f5f94e61433572563dc180bf7 Mon Sep 17 00:00:00 2001 From: chenjingyu Date: Sat, 6 Feb 2021 17:09:45 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E9=A2=84=E6=A1=88=E5=85=AC?= =?UTF-8?q?=E5=BC=80=E5=8A=9F=E8=83=BD=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wait-examineer.component.html | 4 +- .../wait-examineer.component.scss | 2 +- .../wait-examineer.component.ts | 7 +- .../plan-management/open-plan/PsvShow.html | 9 ++ .../open-plan/open-plan.component.scss | 3 + .../open-plan/open-plan.component.ts | 87 ++++++++++++- .../plan-management/pass-plan/PsvShow.html | 9 ++ .../pass-plan/pass-plan.component.html | 2 + .../pass-plan/pass-plan.component.ts | 122 +++++++++++++----- .../plan-management/plan-management.module.ts | 5 +- 10 files changed, 211 insertions(+), 39 deletions(-) create mode 100644 src/app/plan-management/open-plan/PsvShow.html create mode 100644 src/app/plan-management/pass-plan/PsvShow.html 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..524a57a 100644 --- a/src/app/plan-audit/wait-examineer/wait-examineer.component.html +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.html @@ -280,9 +280,9 @@ --> -
+ +
\ No newline at end of file diff --git a/src/app/plan-management/open-plan/open-plan.component.scss b/src/app/plan-management/open-plan/open-plan.component.scss index dc9f5c8..9b77e69 100644 --- a/src/app/plan-management/open-plan/open-plan.component.scss +++ b/src/app/plan-management/open-plan/open-plan.component.scss @@ -77,6 +77,9 @@ width: 100%; margin-top: 15px; } + th,td{ + text-align: center; + } mat-paginator{ width: 100%; } diff --git a/src/app/plan-management/open-plan/open-plan.component.ts b/src/app/plan-management/open-plan/open-plan.component.ts index bb8ce5e..0ece1d0 100644 --- a/src/app/plan-management/open-plan/open-plan.component.ts +++ b/src/app/plan-management/open-plan/open-plan.component.ts @@ -9,6 +9,8 @@ import { PageEvent } from '@angular/material/paginator'; import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; import { TreeService } from '../../http-interceptors/tree.service' +import { Viewer } from 'photo-sphere-viewer'; +declare var CryptoJS @Component({ selector: 'app-open-plan', templateUrl: './open-plan.component.html', @@ -161,9 +163,71 @@ export class OpenPlanComponent implements OnInit { ) } //跳转查看预案页面 公开预案 - routerTo(element){ - sessionStorage.setItem("companyName",element.companyName) - window.open(`/planAudit/planpass?id=${element.companyId}&companyName=${element.companyName}&auditPlanId=${element.id}&auditStatus=${element.auditStatus}&type=6&planType=2`); + routerTo(e){ + /* sessionStorage.setItem("companyName",element.companyName) + window.open(`/planAudit/planpass?id=${element.companyId}&companyName=${element.companyName}&auditPlanId=${element.id}&auditStatus=${element.auditStatus}&type=6&planType=2`); */ + + console.log(e) + if(e.planMode == 0||e.planMode == 1){ + //console.log(e.attachmentUrls) + var index=e.attachmentUrls[0].indexOf("\/") + if(e.attachmentUrls[0].substr(0,index)=='psw'){ + const dialogRef = this.dialog.open(GkhtmlPsViewer, { + width: '1500px', + height:'800px', + data: e.attachmentUrls[0] + }); + } + else /* if(e.attachmentUrls[0].substr(e.attachmentUrls[0].length-4,e.attachmentUrls[0].length-1)=='docx'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='pdf' + ||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='doc'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='DOC' + ||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='txt'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='JPG') */{ + let filename:string + let fetchUrl = e.attachmentUrls[0] + 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) + this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{ + filename=data.fileName + let json={ + doc: { + docId: docId, + title: filename, + fetchUrl: `http://39.106.78.171:8000/api/Objects/PlanPlatform/`+fetchUrl, + }, + user: { + uid: identityJsonparse.sub, + nickName: identityJsonparse.name, + avatar: "", + privilege: [ + 'FILE_READ','FILE_WRITE','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(e.planMode == 2){ //如果是在线编辑 + let id = e.id + sessionStorage.setItem("planId",id) + sessionStorage.setItem("companyId",e.companyId) + //sessionStorage.setItem("buildingTypeId",this.unittypeId) + sessionStorage.setItem("editable","0") + sessionStorage.setItem("planName",e.name) + let companyId = sessionStorage.getItem("companyId") + window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`); + } + if(e.planMode == 3){ //如果是跳转网页 + sessionStorage.setItem("url",e.url) + window.open(`/planManagement/webLook`) + } } //分页事件 chagePage(e){ @@ -219,3 +283,20 @@ export class OpenPlanComponent implements OnInit { } } + +@Component({ + selector: 'PsViewer', + templateUrl: './PsvShow.html', + styleUrls: ['./open-plan.component.scss'] +}) +export class GkhtmlPsViewer{ + constructor(private router:Router,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data: any) {} + ngOnInit(): void { + console.log(this.data) + const viewer = new Viewer({ + container: document.querySelector('#viewer'), + panorama:'/api/Objects/PlanPlatform/'+ this.data, + + }); + } +} diff --git a/src/app/plan-management/pass-plan/PsvShow.html b/src/app/plan-management/pass-plan/PsvShow.html new file mode 100644 index 0000000..fdbdec8 --- /dev/null +++ b/src/app/plan-management/pass-plan/PsvShow.html @@ -0,0 +1,9 @@ + +
\ No newline at end of file diff --git a/src/app/plan-management/pass-plan/pass-plan.component.html b/src/app/plan-management/pass-plan/pass-plan.component.html index 326e79f..92a149b 100644 --- a/src/app/plan-management/pass-plan/pass-plan.component.html +++ b/src/app/plan-management/pass-plan/pass-plan.component.html @@ -139,6 +139,8 @@ 操作 {{url=='1'?'审核预案':'查看预案'}} + + diff --git a/src/app/plan-management/pass-plan/pass-plan.component.ts b/src/app/plan-management/pass-plan/pass-plan.component.ts index f0d0f94..ef1fdd8 100644 --- a/src/app/plan-management/pass-plan/pass-plan.component.ts +++ b/src/app/plan-management/pass-plan/pass-plan.component.ts @@ -9,6 +9,7 @@ import { PageEvent } from '@angular/material/paginator'; import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; import { TreeService } from '../../http-interceptors/tree.service' +import { Viewer } from 'photo-sphere-viewer'; declare var CryptoJS @Component({ selector: 'app-pass-plan', @@ -292,45 +293,91 @@ export class PassPlanComponent implements OnInit { ) } //跳转查看预案页面 审核通过预案 - routerTo(element){ - if(element.attachmentUrls[0].substr(element.attachmentUrls[0].length-4,element.attachmentUrls[0].length-1)=='docx'||element.attachmentUrls[0].substr(element.attachmentUrls[0].length-3,element.attachmentUrls[0].length)=='pdf' - ||element.attachmentUrls[0].substr(element.attachmentUrls[0].length-3,element.attachmentUrls[0].length)=='doc'||element.attachmentUrls[0].substr(element.attachmentUrls[0].length-3,element.attachmentUrls[0].length)=='DOC' - ||element.attachmentUrls[0].substr(element.attachmentUrls[0].length-3,element.attachmentUrls[0].length)=='txt'){ - let filename:string - let fetchUrl=element.attachmentUrls[0] - this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{ + routerTo(e){ + console.log(e) + if(e.planMode == 0||e.planMode == 1){ + //console.log(e.attachmentUrls) + var index=e.attachmentUrls[0].indexOf("\/") + if(e.attachmentUrls[0].substr(0,index)=='psw'){ + const dialogRef = this.dialog.open(GkPsViewer, { + width: '1500px', + height:'800px', + data: e.attachmentUrls[0] + }); + } + else /* if(e.attachmentUrls[0].substr(e.attachmentUrls[0].length-4,e.attachmentUrls[0].length-1)=='docx'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='pdf' + ||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='doc'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='DOC' + ||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='txt'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='JPG') */{ + let filename:string + let fetchUrl = e.attachmentUrls[0] + 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) + this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{ filename=data.fileName let json={ - doc: { - docId: element.id, + doc: { + docId: docId, title: filename, - //title: filename, - fetchUrl: `http://${location.host}/api/Objects/PlanPlatform/`+fetchUrl - }, - user: { - uid: "test", - nickName: "test", + fetchUrl: `http://39.106.78.171:8000/api/Objects/PlanPlatform/`+fetchUrl, + }, + user: { + uid: identityJsonparse.sub, + nickName: identityJsonparse.name, avatar: "", privilege: [ - 'FILE_READ','FILE_DOWNLOAD', 'FILE_PRINT' + 'FILE_READ','FILE_WRITE','FILE_DOWNLOAD', 'FILE_PRINT' ], }, - } - var stringjson=JSON.stringify(json) - var wordArray = CryptoJS.enc.Utf8.parse(stringjson); - var base64 = CryptoJS.enc.Base64.stringify(wordArray); - - //let base64Date=this.BASE64.encode(stringjson) - //let filedata= CryptoJS.enc.Base64.stringify(json) - console.log(base64) - window.open(`http://121.5.10.84/apps/editor/openPreview?data=${base64}`) - }) - }else{ - sessionStorage.setItem("companyName",element.companyName) - window.open(`/planAudit/planpass?id=${element.companyId}&companyName=${element.companyName}&auditPlanId=${element.id}&auditStatus=${element.auditStatus}&type=6&planType=1`); + } + 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(e.planMode == 2){ //如果是在线编辑 + let id = e.id + sessionStorage.setItem("planId",id) + sessionStorage.setItem("companyId",e.companyId) + //sessionStorage.setItem("buildingTypeId",this.unittypeId) + sessionStorage.setItem("editable","0") + sessionStorage.setItem("planName",e.name) + let companyId = sessionStorage.getItem("companyId") + window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`); + } + if(e.planMode == 3){ //如果是跳转网页 + sessionStorage.setItem("url",e.url) + window.open(`/planManagement/webLook`) } } + + //预案公开 + openReserve (e) { + this.http.put(`/api/PlanAudits/${e.id}/Public`,[]).subscribe(data=>{ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('预案已公开','确定',config); + }) + } + + //预案取消公开 + closeReserve (e) { + this.http.put(`/api/PlanAudits/${e.id}/Unpublic`,[]).subscribe(data=>{ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('预案已取消公开','确定',config); + }) + } + //分页事件 chagePage(e){ this.PageNumber = e.pageIndex+1 @@ -390,3 +437,20 @@ export class PassPlanComponent implements OnInit { } } + +@Component({ + selector: 'PsViewer', + templateUrl: './PsvShow.html', + styleUrls: ['./pass-plan.component.scss'] +}) +export class GkPsViewer{ + constructor(private router:Router,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data: any) {} + ngOnInit(): void { + console.log(this.data) + const viewer = new Viewer({ + container: document.querySelector('#viewer'), + panorama:'/api/Objects/PlanPlatform/'+ this.data, + + }); + } +} diff --git a/src/app/plan-management/plan-management.module.ts b/src/app/plan-management/plan-management.module.ts index 1728891..666913f 100644 --- a/src/app/plan-management/plan-management.module.ts +++ b/src/app/plan-management/plan-management.module.ts @@ -61,12 +61,15 @@ import { onetwoAuditResult } from './onetwo-entry-plan/onetwo-entry-plan.compone import { meetAuditResult }from './meet-plan/meet-plan.component'; import { typeAuditResult } from './type-plan/type-plan.component'; import { MaintainUpComponent } from './maintain-up/maintain-up.component' +import { GkPsViewer } from './pass-plan/pass-plan.component' +import { GkhtmlPsViewer }from './open-plan/open-plan.component' @NgModule({ declarations: [EntryPlanComponent, PassPlanComponent, OpenPlanComponent, EntryPlanLookComponent,AddPlanone,PlanType,AuditSatus,PlanLevel,DownloadFile,AuditResult,ChangeName, - WebLookComponent, OnetwoEntryPlanComponent,newunitComponent, MeetPlanComponent,newunitMeet, TypePlanComponent,newunitType,PsViewer,onetwoAuditResult,meetAuditResult,typeAuditResult, MaintainUpComponent], + WebLookComponent, OnetwoEntryPlanComponent,newunitComponent, MeetPlanComponent,newunitMeet, TypePlanComponent,newunitType,PsViewer,onetwoAuditResult,meetAuditResult, + typeAuditResult, MaintainUpComponent,GkPsViewer,GkhtmlPsViewer], imports: [ CommonModule, PlanManagementRoutingModule,