Browse Source

[新增]在线预览

zhuzhou
chenjingyu 4 years ago
parent
commit
32575f18a7
  1. 17
      package-lock.json
  2. 4
      package.json
  3. 6
      src/app/plan-audit/plan-record/plan-record.component.scss
  4. 9
      src/app/plan-audit/wait-examineer/wait-examineer.component.html
  5. 16
      src/app/plan-audit/wait-examineer/wait-examineer.component.scss
  6. 42
      src/app/plan-audit/wait-examineer/wait-examineer.component.ts
  7. 36
      src/app/plan-management/entry-plan-look/entry-plan-look.component.ts
  8. 2
      src/app/plan-management/entry-plan/entry-plan.component.html
  9. 10
      src/app/plan-management/entry-plan/entry-plan.component.scss
  10. 11
      src/app/plan-management/meet-plan/meet-plan.component.html
  11. 12
      src/app/plan-management/meet-plan/meet-plan.component.scss
  12. 50
      src/app/plan-management/meet-plan/meet-plan.component.ts
  13. 9
      src/app/plan-management/meet-plan/newunit.html
  14. 9
      src/app/plan-management/onetwo-entry-plan/newunit.html
  15. 13
      src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.html
  16. 14
      src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.scss
  17. 46
      src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.ts
  18. 2
      src/app/plan-management/pass-plan/pass-plan.component.html
  19. 10
      src/app/plan-management/pass-plan/pass-plan.component.scss
  20. 38
      src/app/plan-management/pass-plan/pass-plan.component.ts
  21. 4
      src/app/plan-management/type-plan/type-plan.component.html
  22. 12
      src/app/plan-management/type-plan/type-plan.component.scss
  23. 37
      src/app/plan-management/type-plan/type-plan.component.ts

17
package-lock.json generated

@ -4701,6 +4701,12 @@
"resolved": "https://registry.npm.taobao.org/@types/cesium/download/@types/cesium-1.65.3.tgz",
"integrity": "sha1-vG0xrx67i8IAIsKtXHqnDIaNp5I="
},
"@types/crypto-js": {
"version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/@types/crypto-js/download/@types/crypto-js-4.0.1.tgz?cache=0&sync_timestamp=1605055060715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcrypto-js%2Fdownload%2F%40types%2Fcrypto-js-4.0.1.tgz",
"integrity": "sha1-OkvSRRiw5sWUDaTiZZ7rLvCAaWM=",
"dev": true
},
"@types/estree": {
"version": "0.0.42",
"resolved": "https://registry.npm.taobao.org/@types/estree/download/@types/estree-0.0.42.tgz",
@ -4751,9 +4757,9 @@
"dev": true
},
"@types/node": {
"version": "12.12.26",
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-12.12.26.tgz?cache=0&sync_timestamp=1580843161457&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-12.12.26.tgz",
"integrity": "sha1-IT4VO6usDtFp1EptkZUB5o9Z3qk="
"version": "12.19.15",
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-12.19.15.tgz?cache=0&sync_timestamp=1611167664149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-12.19.15.tgz",
"integrity": "sha1-DefpePtD22LaNp2xjqCIpjZzwYI="
},
"@types/q": {
"version": "0.0.32",
@ -6797,6 +6803,11 @@
"randomfill": "^1.0.3"
}
},
"crypto-js": {
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/crypto-js/download/crypto-js-4.0.0.tgz",
"integrity": "sha1-KQSrJnep0EKFai6i74DekuSjbcw="
},
"css": {
"version": "2.2.4",
"resolved": "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz",

4
package.json

@ -27,6 +27,7 @@
"angular-calendar": "^0.28.2",
"bson-objectid": "^1.3.1",
"cesium": "^1.64.0",
"crypto-js": "^4.0.0",
"date-fns": "^2.9.0",
"e-ngx-cesium": "^6.3.2",
"echarts": "^4.6.0",
@ -50,9 +51,10 @@
"@angular/cli": "~9.0.1",
"@angular/compiler-cli": "~9.0.0",
"@angular/language-service": "~9.0.0",
"@types/crypto-js": "^4.0.1",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"@types/node": "^12.19.15",
"codelyzer": "^5.1.2",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",

6
src/app/plan-audit/plan-record/plan-record.component.scss

@ -41,8 +41,9 @@
}
table{
//margin: 20px 20px;
margin-left: 20px;
width: 97%;
margin-left: 10px;
margin-right: 10px;
width: 97.5%;
//border: 1px solid #2196F3;
thead{
@ -77,6 +78,7 @@ th,td{
//滚动条样式
::-webkit-scrollbar{
margin-right: 3px;
width: 6px;
background-color: white;
}

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

@ -78,7 +78,7 @@
<div class="boxright">
<div class="righthead">
<div class="rightheadone">
<button mat-raised-button color="primary" (click)="buttonChange()"><img src="../../../assets/images/preview.png" style="margin-right: 3px;margin-bottom: 3px;">{{isallDate?'显示变更数据':'显示完整数据'}} </button>
<button mat-raised-button color="primary" (click)="buttonChange()" *ngIf="!wordShow"><img src="../../../assets/images/preview.png" style="margin-right: 3px;margin-bottom: 3px;">{{isallDate?'显示变更数据':'显示完整数据'}} </button>
<button mat-raised-button *ngIf="isallDate" style="background-color: #FFCC00; color: #FFFFFF;" (click)="preview()"><img src="../../../assets/images/change.png" style="margin-bottom: 2px;" > 预览得分</button>
</div>
<div class="rightheadtwo">
@ -87,7 +87,7 @@
</div>
</div>
<mat-tab-group *ngIf="isallDate" style="flex: 1;overflow-y: auto;margin-top: 10px;" [selectedIndex]="selected.value" (selectedIndexChange)="selected.setValue($event)">
<mat-tab-group *ngIf="isallDate&&wordShow==false" style="flex: 1;overflow-y: auto;margin-top: 10px;" [selectedIndex]="selected.value" (selectedIndexChange)="selected.setValue($event)">
<mat-tab label="基本信息">
<ng-template matTabContent>
@ -141,7 +141,7 @@
</mat-tab> -->
</mat-tab-group>
<div id="firefacilities" *ngIf="!isallDate" style="margin: 10px;">
<div id="firefacilities" *ngIf="!isallDate&&wordShow==false" style="margin: 10px;">
<mat-accordion class="tableContent" >
<mat-expansion-panel expanded style="box-shadow: 0 0 black;border: 1px solid #EEF1F5;">
<mat-expansion-panel-header collapsedHeight ='40px' expandedHeight='40px' class="panelhead" style="background-color: #2196F3;">
@ -240,6 +240,9 @@
</mat-expansion-panel>
</mat-accordion>
</div>
<div class="word">
<iframe [src]='iframeSrc'></iframe>
</div>
</div>
</div>

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

@ -53,8 +53,9 @@
}
table{
//margin: 20px 20px;
margin-left: 20px;
width: 97%;
margin-left:10px;
margin-right: 10px;
width: 97.5%;
//border: 1px solid #2196F3;
thead{
@ -93,6 +94,17 @@
margin-left: 6%;
}
}
.word{
width: 100%;
height: 100%;
//margin: 10px 10px 0 10px;
iframe{
height: 91%;
width: 97%;
margin: 10px 10px 10px 10px;
overflow-y: auto;
}
}
}
}
th,td{

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

@ -4,12 +4,14 @@
* @Author: sueRimn
* @Date: 2020-12-25 16:13:50
* @LastEditors: sueRimn
* @LastEditTime: 2021-01-23 14:16:10
* @LastEditTime: 2021-01-28 11:13:01
*/
import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
import { HttpClient } from '@angular/common/http'
import CryptoJS from 'crypto-js/crypto-js'
import { DomSanitizer } from '@angular/platform-browser';
declare var echarts: any;
@Component({
@ -19,7 +21,9 @@ declare var echarts: any;
})
export class WaitExamineerComponent implements OnInit {
constructor(private http:HttpClient,public snackBar: MatSnackBar) { }
constructor(private http:HttpClient,public snackBar: MatSnackBar,private sanitizer: DomSanitizer) {
}
ngOnInit(): void {
let level = sessionStorage.getItem("level");
@ -68,12 +72,17 @@ export class WaitExamineerComponent implements OnInit {
}) */
this.getAlltabledate()
this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src);
}
ngOnDestroy () {
/* this.indexbar.clear()
this.indexbar.dispose() */
}
wordShow=true
iframeSrc
src=''
preparelevels:any
selected = new FormControl(0); //选项卡 实例
level=''//操作类型
@ -135,7 +144,34 @@ export class WaitExamineerComponent implements OnInit {
//radio点击事件
radioClick(e,item){
//e.target.parentElement.bgColor='#2196F3'
//console.log(e,item)
console.log(e,item)
let filename:string
let fetchUrl=item.attachmentUrls[0]
this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{
filename=data.fileName
let json={
doc: {
docId: item.id,
title: filename,
//title: filename,
fetchUrl: "http://39.106.78.171:8000/api/Objects/PlanPlatform/"+fetchUrl
},
user: {
uid: "test",
nickName: "test",
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);
this.iframeSrc=`http://121.5.10.84/apps/editor/openPreview?data=${base64}`
//this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.iframeSrc)
//window.open(`http://121.5.10.84/apps/editor/openPreview?data=${base64}`)
})
if(e.checked){
this.shenheTable.push(item)
}

36
src/app/plan-management/entry-plan-look/entry-plan-look.component.ts

@ -13,6 +13,7 @@ import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import { async } from '@angular/core/testing';
import { Viewer } from 'photo-sphere-viewer';
import {STEPPER_GLOBAL_OPTIONS} from '@angular/cdk/stepper';
import CryptoJS from 'crypto-js/crypto-js'
@Component({
selector: 'app-entry-plan-look',
templateUrl: './entry-plan-look.component.html',
@ -101,7 +102,7 @@ export class EntryPlanLookComponent implements OnInit {
//查看预案
lookPlan(e){
if(e.planMode == 0){
console.log()
console.log(e.attachmentUrls)
if(e.attachmentUrls[0].substr(0,3)=='psw'){
const dialogRef = this.dialog.open(PsViewer, {
width: '1500px',
@ -109,6 +110,39 @@ export class EntryPlanLookComponent implements OnInit {
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'){
let filename:string
let fetchUrl=e.attachmentUrls[0]
this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{
filename=data.fileName
let json={
doc: {
docId: e.id,
title: filename,
//title: filename,
fetchUrl: "http://39.106.78.171:8000/api/Objects/PlanPlatform/"+fetchUrl
},
user: {
uid: "test",
nickName: "test",
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);
//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}`)
})
}
}
if(e.planMode == 1){
const config = new MatSnackBarConfig();

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

@ -104,7 +104,7 @@
</mat-form-field>
</div>
</div>
<div style="width: 100%;text-align: center;">
<div class="butclass" style="width: 100%;text-align: center;">
<button mat-raised-button color="primary" type="submit">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>

10
src/app/plan-management/entry-plan/entry-plan.component.scss

@ -6,14 +6,14 @@
// border-bottom: 1px solid black;
.queryBox {
box-sizing: border-box;
padding: 5px 25px;
padding: 5px 25px 0 25px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items:center;
// justify-content:center;
.queryField {
margin: 3px 40px;
margin: 0 40px;
input {
width: 180px;
height: 22px;
@ -22,6 +22,12 @@
}
} //queryBox
.butclass{
button{
width: 80px;height: 36px;
font-size: 16px;
}
}
.ordiv{
position: relative;

11
src/app/plan-management/meet-plan/meet-plan.component.html

@ -39,12 +39,13 @@
<div class="queryField">
<label style="margin-right: 10px;">预案类型:</label>
<mat-form-field>
<mat-select name="reservePlanType" [(ngModel)]="reservePlanType" placeholder='请选择预案类型' [multiple]="true">
<!-- <mat-select name="reservePlanType" [(ngModel)]="reservePlanType" placeholder='请选择预案类型' [multiple]="true">
<mat-option value="8">卡片预案</mat-option>
<mat-option value="1">二维预案</mat-option>
<mat-option value="2">三维预案</mat-option>
<mat-option value="4">其他预案</mat-option>
</mat-select>
</mat-select> -->
<input matInput placeholder="请输入预案类型" name="reservePlanType" autocomplete="off" [(ngModel)]="typePlan">
</mat-form-field>
</div>
<div class="queryField">
@ -73,7 +74,7 @@
</div>
</div>
<div style="width: 100%;text-align: center;">
<div class="butclass" style="width: 100%;text-align: center;">
<button mat-raised-button color="primary" type="submit">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>
@ -115,7 +116,7 @@
</ng-container>
<ng-container matColumnDef="plantype">
<th mat-header-cell *matHeaderCellDef style="width: 10%;">预案类型</th>
<td mat-cell *matCellDef="let element">{{element.planType=='1'?'二维预案':element.planType=='2'?'三维预案':element.planType=='4'?'其他预案':'卡片预案'}}</td>
<td mat-cell *matCellDef="let element">{{element.disasterType}}</td>
</ng-container>
<ng-container matColumnDef="passstate">
<th mat-header-cell *matHeaderCellDef style="width: 10%;">审核状态</th>
@ -133,7 +134,7 @@
<ng-container matColumnDef="operation">
<th mat-header-cell *matHeaderCellDef style="width: 20%;">操作</th>
<td mat-cell *matCellDef="let element" style="white-space: nowrap;cursor: pointer;">
<span style="color: blue;">查看预案</span>
<span style="color: blue;" (click)='openPlan(element)'>查看预案</span>
<span style="color: blue;margin-left: 4px;" (click)="submitAudit(element)" *ngIf="element.auditStatus == 8 || element.auditStatus == 4" >提交审核</span>
<span style="color: blue;margin-left: 4px;" (click)="cancelAudit(element)" *ngIf="element.auditStatus == 1">撤销审核</span>
<span style="color: blue;margin-left: 4px;" (click)="auditResult(element)">审批结果</span>

12
src/app/plan-management/meet-plan/meet-plan.component.scss

@ -6,7 +6,7 @@
// border-bottom: 1px solid black;
.queryBox {
box-sizing: border-box;
padding: 5px 25px;
padding: 5px 25px 0 25px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
@ -22,6 +22,12 @@
}
} //queryBox
.butclass{
button{
width: 80px;height: 36px;
font-size: 16px;
}
}
.ordiv{
position: relative;
@ -72,7 +78,7 @@
}
}
.newadd{
margin-top: 10px;
margin-top: 12px;
margin-left: 70px;
display: flex;
button{
@ -92,7 +98,7 @@
table{
width: 100%;
margin-left: 0%;
margin-top:15px;
margin-top:12px;
th,td{
text-align: center;
font-size: 15px;

50
src/app/plan-management/meet-plan/meet-plan.component.ts

@ -9,6 +9,10 @@ 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 CryptoJS from 'crypto-js/crypto-js'
//import Base64 from 'crypto-js/enc-base64';
@Component({
selector: 'app-meet-plan',
@ -54,6 +58,7 @@ export class MeetPlanComponent implements OnInit {
plcheck:boolean //编制级别勾选框
displayedColumns: string[] = ['unitname','level','addname','addtime', 'plantype', 'passstate','isopen','projectlevel','operation'];
tabledataSource
typePlan//新预案类型
unitname//预案名称
level//预案级别
addname//添加人
@ -84,7 +89,8 @@ export class MeetPlanComponent implements OnInit {
let paramsdata:any = {
Name:this.unitname||'',
planCategories:this.level||[6,7],
PlanType:reservePlanType||'',
//PlanType:reservePlanType||'',
DisasterType:this.typePlan||'',
CreatorName:this.addname||'',
AuditStatus:this.unitstate|| '',
CreationTimeRangeStart:this.addtime||'',
@ -158,6 +164,43 @@ export class MeetPlanComponent implements OnInit {
this.getAlltabledate()
})
}
//查看预案
openPlan(element){
let filename:string
let fetchUrl=element.attachmentUrls[0]
this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{
filename=data.fileName
let json={
doc: {
docId: element.id,
title: filename,
//title: filename,
fetchUrl: "http://39.106.78.171:8000/api/Objects/PlanPlatform/"+fetchUrl
},
user: {
uid: "test",
nickName: "test",
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);
//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}`)
})
}
//下载↓
selectDownloadFile:any; //选择下载的文件
@ -259,6 +302,7 @@ export class MeetPlanComponent implements OnInit {
//重置
reset(){
this.typePlan=''
this.unitname=''
this.level=''
this.addname=''
@ -369,7 +413,7 @@ export class newunitMeet{
let body:any = {
Name:this.unitname||'',
PlanCategory:Number(this.level)||'',
PlanType: Number(this.reservePlanType),
disasterType: this.reservePlanType,
PlanLevel:PlanLevel,
PlanMode:1,
attachmentUrls:[`${this.objectName}`]
@ -461,7 +505,7 @@ export class newunitMeet{
let body:any = {
Name:this.unitname||'',
PlanCategory:Number(this.level)||'',
PlanType: Number(this.reservePlanType),
disasterType: this.reservePlanType,
PlanLevel:PlanLevel,
PlanMode:1,
attachmentUrls:[`${this.objectName}`]

9
src/app/plan-management/meet-plan/newunit.html

@ -4,7 +4,7 @@
* @Author: sueRimn
* @Date: 2020-12-24 16:26:16
* @LastEditors: sueRimn
* @LastEditTime: 2021-01-13 15:43:05
* @LastEditTime: 2021-01-27 15:00:57
-->
<div class="box">
<div class="top">
@ -19,12 +19,7 @@
<div class="queryField">
<label style="margin-right: 10px;">预案类型:</label>
<mat-form-field>
<mat-select name="reservePlanType" [(ngModel)]="reservePlanType" autocomplete="off" placeholder='请选择预案类型' required>
<mat-option value='8'>卡片预案</mat-option>
<mat-option value='1'>二维预案</mat-option>
<mat-option value='2'>三维预案</mat-option>
<mat-option value='4'>其他预案</mat-option>
</mat-select>
<input matInput placeholder="请输入预案类型" name="companyType" autocomplete="off" [(ngModel)]="reservePlanType" required>
</mat-form-field>
</div>
<div class="queryField">

9
src/app/plan-management/onetwo-entry-plan/newunit.html

@ -4,7 +4,7 @@
* @Author: sueRimn
* @Date: 2020-12-24 16:26:16
* @LastEditors: sueRimn
* @LastEditTime: 2021-01-13 15:17:47
* @LastEditTime: 2021-01-27 15:17:26
-->
<div class="box">
<div class="top">
@ -19,12 +19,7 @@
<div class="queryField">
<label style="margin-right: 10px;">预案类型:</label>
<mat-form-field>
<mat-select name="reservePlanType" [(ngModel)]="reservePlanType" autocomplete="off" placeholder='请选择预案类型' required>
<mat-option value='8'>卡片预案</mat-option>
<mat-option value='1'>二维预案</mat-option>
<mat-option value='2'>三维预案</mat-option>
<mat-option value='4'>其他预案</mat-option>
</mat-select>
<input matInput placeholder="请输入预案类型" name="companyType" autocomplete="off" [(ngModel)]="reservePlanType" required>
</mat-form-field>
</div>

13
src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.html

@ -4,7 +4,7 @@
* @Author: sueRimn
* @Date: 2020-12-24 14:15:10
* @LastEditors: sueRimn
* @LastEditTime: 2021-01-21 15:02:25
* @LastEditTime: 2021-01-27 16:55:08
-->
<div style="height: 100%;overflow-y: auto;">
<div class="header" >
@ -39,12 +39,13 @@
<div class="queryField">
<label style="margin-right: 10px;">预案类型:</label>
<mat-form-field>
<mat-select name="reservePlanType" [(ngModel)]="reservePlanType" placeholder='请选择预案类型' [multiple]="true">
<!-- <mat-select name="reservePlanType" [(ngModel)]="reservePlanType" placeholder='请选择预案类型' [multiple]="true">
<mat-option value="8">卡片预案</mat-option>
<mat-option value="1">二维预案</mat-option>
<mat-option value="2">三维预案</mat-option>
<mat-option value="4">其他预案</mat-option>
</mat-select>
</mat-select> -->
<input matInput placeholder="请输入预案类型" name="reservePlanType" autocomplete="off" [(ngModel)]="typePlan">
</mat-form-field>
</div>
<div class="queryField">
@ -73,7 +74,7 @@
</div>
</div>
<div style="width: 100%;text-align: center;">
<div class="butclass" style="width: 100%;text-align: center;">
<button mat-raised-button color="primary" type="submit">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>
@ -115,7 +116,7 @@
</ng-container>
<ng-container matColumnDef="plantype">
<th mat-header-cell *matHeaderCellDef style="width: 10%;">预案类型</th>
<td mat-cell *matCellDef="let element">{{element.planType=='1'?'二维预案':element.planType=='2'?'三维预案':element.planType=='4'?'其他预案':'卡片预案'}}</td>
<td mat-cell *matCellDef="let element">{{element.disasterType}}</td>
</ng-container>
<ng-container matColumnDef="passstate">
<th mat-header-cell *matHeaderCellDef style="width: 10%;">审核状态</th>
@ -133,7 +134,7 @@
<ng-container matColumnDef="operation">
<th mat-header-cell *matHeaderCellDef style="width: 20%;">操作</th>
<td mat-cell *matCellDef="let element" style="white-space: nowrap;cursor: pointer;">
<span style="color: blue;">查看预案</span>
<span style="color: blue;" (click)='openPlan(element)'>查看预案</span>
<span style="color: blue;margin-left: 4px;" (click)="submitAudit(element)" *ngIf="element.auditStatus == 8 " >提交审核</span>
<span style="color: blue;margin-left: 4px;" (click)="cancelAudit(element)" *ngIf="element.auditStatus == 1">撤销审核</span>
<span style="color: blue;margin-left: 4px;" (click)="auditResult(element)">审批结果</span>

14
src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.scss

@ -6,14 +6,14 @@
// border-bottom: 1px solid black;
.queryBox {
box-sizing: border-box;
padding: 5px 25px;
padding: 5px 25px 0 25px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items:center;
// justify-content:center;
.queryField {
margin: 3px 40px;
margin: 0 40px;
input {
width: 180px;
height: 22px;
@ -22,6 +22,12 @@
}
} //queryBox
.butclass{
button{
width: 80px;height: 36px;
font-size: 16px;
}
}
.ordiv{
position: relative;
@ -72,7 +78,7 @@
}
}
.newadd{
margin-top: 10px;
margin-top: 12px;
margin-left: 70px;
display: flex;
button{
@ -92,7 +98,7 @@
table{
width: 100%;
margin-left: 0%;
margin-top:15px;
margin-top:12px;
th,td{
text-align: center;
font-size: 15px;

46
src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.ts

@ -4,7 +4,7 @@
* @Author: sueRimn
* @Date: 2020-12-24 14:15:10
* @LastEditors: sueRimn
* @LastEditTime: 2021-01-22 09:17:40
* @LastEditTime: 2021-01-27 15:39:35
*/
import { Component, OnInit, ViewChild, Inject } from '@angular/core';
import { HttpClient } from '@angular/common/http'
@ -20,6 +20,7 @@ import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
import { TreeService } from '../../http-interceptors/tree.service'
import { ConstantPool } from '@angular/compiler';
import { MatTableDataSource } from '@angular/material/table';
import CryptoJS from 'crypto-js/crypto-js'
@Component({
@ -76,6 +77,7 @@ export class OnetwoEntryPlanComponent implements OnInit {
reservePlanType//预案类型
unitstate//审核状态
projectlevel//编制级别
typePlan//新预案类型
//分页
@ViewChild(MatPaginator, {static: true})
pageEvent: PageEvent;
@ -95,7 +97,8 @@ export class OnetwoEntryPlanComponent implements OnInit {
let paramsdata:any = {
Name:this.unitname||'',
planCategories:this.url=='2'?2:1,
PlanType:reservePlanType||'',
//PlanType:reservePlanType||'',
DisasterType:this.typePlan||'',
CreatorName:this.addname||'',
AuditStatus:this.unitstate|| '',
CreationTimeRangeStart:this.addtime||'',
@ -119,6 +122,7 @@ export class OnetwoEntryPlanComponent implements OnInit {
//重置
reset(){
this.typePlan=''
this.unitname=''
this.level=''
this.addname=''
@ -184,6 +188,40 @@ export class OnetwoEntryPlanComponent implements OnInit {
this.getAlltabledate()
})
}
//查看预案
openPlan(element){
let filename:string
let fetchUrl=element.attachmentUrls[0]
this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{
filename=data.fileName
let json={
doc: {
docId: element.id,
title: filename,
//title: filename,
fetchUrl: "http://39.106.78.171:8000/api/Objects/PlanPlatform/"+fetchUrl
},
user: {
uid: "test",
nickName: "test",
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);
//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}`)
})
}
//新增预案弹窗
addunit(){
@ -393,7 +431,7 @@ export class newunitComponent{
let body:any = {
Name:this.unitname||'',
PlanCategory:this.url=='2'?2:1,
PlanType: Number(this.reservePlanType),
disasterType: this.reservePlanType,
PlanLevel:PlanLevel,
PlanMode:1,
attachmentUrls:[`${this.objectName}`]
@ -484,7 +522,7 @@ export class newunitComponent{
let body:any = {
Name:this.unitname||'',
PlanCategory:this.url=='2'?2:1,
PlanType: Number(this.reservePlanType),
disasterType: this.reservePlanType,
PlanLevel:PlanLevel,
PlanMode:1,
attachmentUrls:[`${this.objectName}`]

2
src/app/plan-management/pass-plan/pass-plan.component.html

@ -85,7 +85,7 @@
</div>
</div>
<div style="width: 100%;text-align: center;">
<div class="butclass" style="width: 100%;text-align: center;">
<button mat-raised-button color="primary" type="submit">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>

10
src/app/plan-management/pass-plan/pass-plan.component.scss

@ -4,7 +4,7 @@
box-sizing: border-box;
.queryBox {
box-sizing: border-box;
padding: 5px 25px;
padding: 5px 25px 0 25px;
// margin-left: 50px;
display: flex;
flex-direction: row;
@ -12,7 +12,7 @@
align-items:center;
// justify-content:center;
.queryField {
margin: 3px 40px;
margin: 0 40px;
input {
width: 180px;
height: 22px;
@ -21,6 +21,12 @@
}
} //queryBox
.butclass{
button{
width: 80px;height: 36px;
font-size: 16px;
}
}
.ordiv{
position: relative;
.organizationbox{

38
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 CryptoJS from 'crypto-js/crypto-js'
@Component({
selector: 'app-pass-plan',
templateUrl: './pass-plan.component.html',
@ -292,8 +293,43 @@ export class PassPlanComponent implements OnInit {
}
//跳转查看预案页面 审核通过预案
routerTo(element){
sessionStorage.setItem("companyName",element.companyName)
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)=>{
filename=data.fileName
let json={
doc: {
docId: element.id,
title: filename,
//title: filename,
fetchUrl: "http://39.106.78.171:8000/api/Objects/PlanPlatform/"+fetchUrl
},
user: {
uid: "test",
nickName: "test",
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);
//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`);
}
}
//分页事件
chagePage(e){

4
src/app/plan-management/type-plan/type-plan.component.html

@ -53,7 +53,7 @@
</div>
</div>
<div style="width: 100%;text-align: center;">
<div class="butclass" style="width: 100%;text-align: center;">
<button mat-raised-button color="primary" type="submit">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>
@ -111,7 +111,7 @@
<ng-container matColumnDef="operation">
<th mat-header-cell *matHeaderCellDef style="width: 20%;">操作</th>
<td mat-cell *matCellDef="let element" style="white-space: nowrap;cursor: pointer;">
<span style="color: blue;">查看预案</span>
<span style="color: blue;" (click)='openPlan(element)'>查看预案</span>
<span style="color: blue;margin-left: 4px;" (click)="submitAudit(element)" *ngIf="element.auditStatus == 8 " >提交审核</span>
<span style="color: blue;margin-left: 4px;" (click)="cancelAudit(element)" *ngIf="element.auditStatus == 1">撤销审核</span>
<span style="color: blue;margin-left: 4px;" (click)="auditResult(element)">审批结果</span>

12
src/app/plan-management/type-plan/type-plan.component.scss

@ -6,7 +6,7 @@
// border-bottom: 1px solid black;
.queryBox {
box-sizing: border-box;
padding: 5px 25px;
padding: 5px 25px 0 25px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
@ -22,6 +22,12 @@
}
} //queryBox
.butclass{
button{
width: 80px;height: 36px;
font-size: 16px;
}
}
.ordiv{
position: relative;
@ -72,7 +78,7 @@
}
}
.newadd{
margin-top: 10px;
margin-top: 12px;
margin-left: 70px;
display: flex;
button{
@ -92,7 +98,7 @@
table{
width: 100%;
margin-left: 0%;
margin-top:15px;
margin-top:12px;
th,td{
text-align: center;
font-size: 15px;

37
src/app/plan-management/type-plan/type-plan.component.ts

@ -4,7 +4,7 @@
* @Author: sueRimn
* @Date: 2021-01-06 09:47:43
* @LastEditors: sueRimn
* @LastEditTime: 2021-01-23 09:45:17
* @LastEditTime: 2021-01-27 15:49:53
*/
import { Component, OnInit, ViewChild, Inject } from '@angular/core';
import { HttpClient } from '@angular/common/http'
@ -17,6 +17,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 CryptoJS from 'crypto-js/crypto-js'
@Component({
selector: 'app-type-plan',
@ -170,6 +171,40 @@ export class TypePlanComponent implements OnInit {
this.http.put(`/api/PlanComponentsMajor/${element.id}/Cancel`,"").subscribe(data=>{
this.getAlltabledate()
})
}
//查看预案
openPlan(element){
let filename:string
let fetchUrl=element.attachmentUrls[0]
this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{
filename=data.fileName
let json={
doc: {
docId: element.id,
title: filename,
//title: filename,
fetchUrl: "http://39.106.78.171:8000/api/Objects/PlanPlatform/"+fetchUrl
},
user: {
uid: "test",
nickName: "test",
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);
//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}`)
})
}
//新增预案弹窗
addunit(){

Loading…
Cancel
Save