Browse Source

合并

zhuzhou
陈鹏飞 3 years ago
parent
commit
2f8548211a
  1. 4
      src/app/plan-management/entry-plan-look/entry-plan-look.component.html
  2. 25
      src/app/plan-management/entry-plan-look/entry-plan-look.component.spec.ts
  3. 951
      src/app/plan-management/entry-plan-look/entry-plan-look.component.ts
  4. 251
      src/app/plan-management/open-plan/open-plan.component.scss
  5. 25
      src/app/plan-management/open-plan/open-plan.component.spec.ts
  6. 334
      src/app/plan-management/open-plan/open-plan.component.ts
  7. 29
      src/app/plan-management/open-plan/previewImg.html
  8. 484
      src/app/plan-management/pass-plan/pass-plan.component.scss
  9. 25
      src/app/plan-management/pass-plan/pass-plan.component.spec.ts
  10. 502
      src/app/plan-management/pass-plan/pass-plan.component.ts
  11. 29
      src/app/plan-management/pass-plan/previewImg.html
  12. 6
      src/app/plan-management/plan-management.module.ts

4
src/app/plan-management/entry-plan-look/entry-plan-look.component.html

@ -77,7 +77,7 @@
<td mat-cell *matCellDef="let element"> <td mat-cell *matCellDef="let element">
<span (click)="changeName(element)" *ngIf="element.auditStatus==8">改名</span> <span (click)="changeName(element)" *ngIf="element.auditStatus==8">改名</span>
<span (click)="editPlan(element)" [ngClass]="{'grey': [!(element.auditStatus!='16' && element.auditStatus != '1')]&&element.planType!=1}">编辑</span> <span (click)="editPlan(element)" [ngClass]="{'grey': [!(element.auditStatus!='16' && element.auditStatus != '1')]&&element.planType!=1}">编辑</span>
<span (click)="lookPlan(element)" *ngIf="element.planType!=16">查看</span> <span (click)="lookPlan(element)">查看</span>
<span (click)="readFile(element)" [ngClass]="{'grey': element.planMode == '1' || element.planMode == '2' || element.planMode == '3'}">下载</span> <span (click)="readFile(element)" [ngClass]="{'grey': element.planMode == '1' || element.planMode == '2' || element.planMode == '3'}">下载</span>
<span (click)="deletePlan(element)" *ngIf="element.auditStatus==8">删除</span> <span (click)="deletePlan(element)" *ngIf="element.auditStatus==8">删除</span>
<span (click)="auditResult(element)">审批结果</span> <span (click)="auditResult(element)">审批结果</span>
@ -88,7 +88,7 @@
<ng-container *ngIf="isoperation == 'false'" matColumnDef="operation"> <ng-container *ngIf="isoperation == 'false'" matColumnDef="operation">
<th mat-header-cell *matHeaderCellDef>操作</th> <th mat-header-cell *matHeaderCellDef>操作</th>
<td mat-cell *matCellDef="let element"> <td mat-cell *matCellDef="let element">
<span (click)="lookPlan(element)" *ngIf="element.planType!=16">查看</span> <span (click)="lookPlan(element)">查看</span>
<span (click)="readFile(element)" [ngClass]="{'grey': element.planMode == '1' || element.planMode == '2' || element.planMode == '3'}">下载</span> <span (click)="readFile(element)" [ngClass]="{'grey': element.planMode == '1' || element.planMode == '2' || element.planMode == '3'}">下载</span>
</td> </td>
</ng-container> </ng-container>

25
src/app/plan-management/entry-plan-look/entry-plan-look.component.spec.ts

@ -1,25 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EntryPlanLookComponent } from './entry-plan-look.component';
describe('EntryPlanLookComponent', () => {
let component: EntryPlanLookComponent;
let fixture: ComponentFixture<EntryPlanLookComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ EntryPlanLookComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EntryPlanLookComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

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

File diff suppressed because it is too large Load Diff

251
src/app/plan-management/open-plan/open-plan.component.scss

@ -1,103 +1,174 @@
.header { .header {
width: 100%; width: 100%;
padding: 12px 5px; padding: 12px 5px;
// margin-bottom: 10px; // margin-bottom: 10px;
box-sizing: border-box; box-sizing: border-box;
// border-bottom: 1px solid black; // border-bottom: 1px solid black;
.queryBox { .queryBox {
box-sizing: border-box; box-sizing: border-box;
padding: 5px 0 0 15px; padding: 5px 0 0 15px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-wrap: wrap; flex-wrap: wrap;
align-items:center; align-items: center;
// justify-content:center;
.queryField { // justify-content:center;
//margin: 3px 10px; .queryField {
input {
//margin: 3px 10px;
input {
width: 180px;
height: 22px;
line-height: 22px;
border-radius: 3px;
}
@media screen and (min-device-width:1400px) {
margin: 3px 20px;
}
@media screen and (max-device-width:1400px)and (min-device-width:1200px) {
margin: 3px 10px;
mat-form-field {
width: 180px; width: 180px;
height: 22px;
line-height: 22px;
border-radius: 3px;
}
@media screen and (min-device-width:1400px){
margin: 3px 20px;
}
@media screen and (max-device-width:1400px)and (min-device-width:1200px){
margin: 3px 10px;
mat-form-field{
width: 180px;
}
}
@media screen and (max-device-width:1200px){
margin: 3px 0 3px 10px;
mat-form-field{
width: 130px;
}
} }
} }
} //queryBox @media screen and (max-device-width:1200px) {
.ordiv{ margin: 3px 0 3px 10px;
position: relative;
.organizationbox{
width:450px;
height: 200px;
background: white;
position: absolute;
top: 48px;
left: 77px;
z-index: 999;
border: 1px solid grey;
overflow-y: auto;
li{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
mat-tree-node{
cursor: pointer;
white-space:pre;
}
mat-tree-node:hover{
background: rgba(225, 225, 225, 0.8);
}
.closediv{
z-index: 100;
position: absolute;
right: 0;
top: 0;
width: 30px;
height: 30px;
cursor: pointer;
line-height: 30px;
text-align: center;
}
.closediv:hover{
background:rgba(225, 225, 225, 0.8);
}
}
mat-form-field {
width: 130px;
}
}
} }
} }
.body{
.buttonbox{ //queryBox
padding-left: 50px; .ordiv {
button{ position: relative;
margin:0 10px
} .organizationbox {
width: 450px;
height: 200px;
background: white;
position: absolute;
top: 48px;
left: 77px;
z-index: 999;
border: 1px solid grey;
overflow-y: auto;
li {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
mat-tree-node {
cursor: pointer;
white-space: pre;
}
mat-tree-node:hover {
background: rgba(225, 225, 225, 0.8);
} }
.tablebox{
table{ .closediv {
width: 100%; z-index: 100;
margin-top: 15px; position: absolute;
} right: 0;
th,td{ top: 0;
text-align: center; width: 30px;
} height: 30px;
mat-paginator{ cursor: pointer;
width: 100%; line-height: 30px;
} text-align: center;
} }
.closediv:hover {
background: rgba(225, 225, 225, 0.8);
}
}
}
}
.body {
.buttonbox {
padding-left: 50px;
button {
margin: 0 10px
}
}
.tablebox {
table {
width: 100%;
margin-top: 15px;
}
th,
td {
text-align: center;
}
mat-paginator {
width: 100%;
}
}
}
@media screen and (max-width:1200px) {
.bigimgbox {
width: 880px;
height: 580px;
//预览图片
.previewImgBox {
width: 800px;
height: 475px;
text-align: center;
}
}
}
@media screen and (min-width:1200px) and (max-width:1400px) {
.bigimgbox {
width: 880px;
height: 610px;
//预览图片
.previewImgBox {
width: 800px;
height: 500px;
text-align: center;
}
}
}
@media screen and (min-width:1400px) {
.bigimgbox {
width: 1110px;
height: 860px;
//预览图片
.previewImgBox {
width: 900px;
height: 100%;
text-align: center;
}
.previewImgBottom {
text-align: center;
height: 30px;
margin: 20px auto;
}
} }
}

25
src/app/plan-management/open-plan/open-plan.component.spec.ts

@ -1,25 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { OpenPlanComponent } from './open-plan.component';
describe('OpenPlanComponent', () => {
let component: OpenPlanComponent;
let fixture: ComponentFixture<OpenPlanComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ OpenPlanComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(OpenPlanComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

334
src/app/plan-management/open-plan/open-plan.component.ts

@ -4,13 +4,14 @@ import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'
import { MatPaginator } from '@angular/material/paginator'; import { MatPaginator } from '@angular/material/paginator';
import { FlatTreeControl } from '@angular/cdk/tree'; import { FlatTreeControl } from '@angular/cdk/tree';
import { FormControl } from '@angular/forms'; import { FormControl } from '@angular/forms';
import { Router,ActivatedRoute } from '@angular/router' import { Router, ActivatedRoute } from '@angular/router'
import { PageEvent } from '@angular/material/paginator'; import { PageEvent } from '@angular/material/paginator';
import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
import { TreeService } from '../../http-interceptors/tree.service' import { TreeService } from '../../http-interceptors/tree.service'
import { Viewer } from 'photo-sphere-viewer'; import { Viewer } from 'photo-sphere-viewer';
declare var CryptoJS declare var CryptoJS
import Swiper from 'swiper';
@Component({ @Component({
selector: 'app-open-plan', selector: 'app-open-plan',
templateUrl: './open-plan.component.html', templateUrl: './open-plan.component.html',
@ -18,7 +19,7 @@ declare var CryptoJS
}) })
export class OpenPlanComponent implements OnInit { export class OpenPlanComponent implements OnInit {
constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } constructor(private http: HttpClient, private router: Router, private route: ActivatedRoute, private tree: TreeService, public dialog: MatDialog, public snackBar: MatSnackBar) { }
private _transformer = (node, level: number) => { //初始化tree private _transformer = (node, level: number) => { //初始化tree
return { return {
@ -35,100 +36,100 @@ export class OpenPlanComponent implements OnInit {
dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
myControl = new FormControl(); myControl = new FormControl();
hasChild = (_: number, node: any) => node.expandable; hasChild = (_: number, node: any) => node.expandable;
//分页 //分页
@ViewChild(MatPaginator, {static: true}) @ViewChild(MatPaginator, { static: true })
pageEvent: PageEvent; pageEvent: PageEvent;
paginator: MatPaginator; paginator: MatPaginator;
length:any; //共多少条数据 length: any; //共多少条数据
pageSize:any; //每页条数 pageSize: any; //每页条数
pageSizeOptions: number[] = [10] //设置每页条数 pageSizeOptions: number[] = [10] //设置每页条数
PageNumber:any; //第几页 PageNumber: any; //第几页
displayedColumns: string[] = ['unitname', 'planname', 'addpeople','addtime','plantype','auditStatus','openRange','projectlevel','operation']; displayedColumns: string[] = ['unitname', 'planname', 'addpeople', 'addtime', 'plantype', 'auditStatus', 'openRange', 'projectlevel', 'operation'];
allorganizations:any //所有组织机构 allorganizations: any //所有组织机构
allunittype:any //所有单位类型 allunittype: any //所有单位类型
tabledataSource:any //表格数据 tabledataSource: any //表格数据
preparelevels:any //编制级别 preparelevels: any //编制级别
ngOnInit(): void { ngOnInit(): void {
if(window.matchMedia("(max-width: 1400px)").matches){ if (window.matchMedia("(max-width: 1400px)").matches) {
this.pcMore=false this.pcMore = false
this.padMore=true this.padMore = true
this.pcfind=false this.pcfind = false
this.padjt=true this.padjt = true
}else{ } else {
this.pcfind=true this.pcfind = true
this.pcMore=true this.pcMore = true
this.padMore=false this.padMore = false
this.padjt=false this.padjt = false
} }
this.getunitdata(); this.getunitdata();
this.getOrganizations(); this.getOrganizations();
this.getUnittype(); this.getUnittype();
this.getAllPlanInfo(); //得到所有单位 this.getAllPlanInfo(); //得到所有单位
let level = sessionStorage.getItem("level"); let level = sessionStorage.getItem("level");
if(level == "0"){//如果是总队 if (level == "0") {//如果是总队
this.preparelevels = [ this.preparelevels = [
{name:"总队",value:"1"}, { name: "总队", value: "1" },
{name:"支队",value:"2"}, { name: "支队", value: "2" },
{name:"大队",value:"4"}, { name: "大队", value: "4" },
{name:"中队",value:"8"} { name: "中队", value: "8" }
] ]
} }
if(level == "1"){//如果是支队 if (level == "1") {//如果是支队
this.preparelevels = [ this.preparelevels = [
{name:"支队",value:"2"}, { name: "支队", value: "2" },
{name:"大队",value:"4"}, { name: "大队", value: "4" },
{name:"中队",value:"8"} { name: "中队", value: "8" }
] ]
} }
if(level == "2"){//如果是大队 if (level == "2") {//如果是大队
this.preparelevels = [ this.preparelevels = [
{name:"大队",value:"4"}, { name: "大队", value: "4" },
{name:"中队",value:"8"} { name: "中队", value: "8" }
] ]
} }
if(level == "3"){//如果是中队 if (level == "3") {//如果是中队
this.preparelevels = [ this.preparelevels = [
{name:"中队",value:"8"} { name: "中队", value: "8" }
] ]
} }
} }
pcMore//pc更多 pcMore//pc更多
pcput=false//pc收起 pcput = false//pc收起
pcfind//pc查询 pcfind//pc查询
padjt=false padjt = false
padMore=true//pad收缩控制 padMore = true//pad收缩控制
padput=false//pad收起按钮 padput = false//pad收起按钮
imgsrcopen="../../../assets/images/routdown2.png" imgsrcopen = "../../../assets/images/routdown2.png"
imgsrcdown="../../../assets/images/routup2.png" imgsrcdown = "../../../assets/images/routup2.png"
pcInfo(){ pcInfo() {
this.pcMore=!this.pcMore this.pcMore = !this.pcMore
this.pcput=!this.pcput this.pcput = !this.pcput
} }
padInfo(){ padInfo() {
this.padMore=!this.padMore this.padMore = !this.padMore
this.padput=!this.padput this.padput = !this.padput
} }
allPlanInfo:any //存储所有预案信息 allPlanInfo: any //存储所有预案信息
//获得所有预案信息 //获得所有预案信息
getAllPlanInfo(){ getAllPlanInfo() {
let paramsdata:any = { let paramsdata: any = {
CompanyName: this.companyName || '', CompanyName: this.companyName || '',
OrganizationId: '', OrganizationId: '',
HasChildrenOrganization:'', HasChildrenOrganization: '',
BuildingTypeId: this.unittype || '', BuildingTypeId: this.unittype || '',
PlanType: this.reservePlanType || '', PlanType: this.reservePlanType || '',
AuditStatus:'', //审核状态 AuditStatus: '', //审核状态
PlanLevel: this.preparelevel || '', PlanLevel: this.preparelevel || '',
HasChildrenPlanLevel: this.plcheck || '', HasChildrenPlanLevel: this.plcheck || '',
PageNumber: this.PageNumber || '1', PageNumber: this.PageNumber || '1',
PageSize: this.pageSizeOptions[0], PageSize: this.pageSizeOptions[0],
Sort: '' Sort: ''
} }
this.http.get("/api/PublicPlans",{params:paramsdata}).subscribe((data:any)=>{ this.http.get("/api/PublicPlans", { params: paramsdata }).subscribe((data: any) => {
// console.log(111,data) // console.log(111,data)
this.length = data.totalCount this.length = data.totalCount
this.allPlanInfo = data this.allPlanInfo = data
@ -136,44 +137,44 @@ export class OpenPlanComponent implements OnInit {
}) })
} }
//得到当前单位信息 //得到当前单位信息
getunitdata(){ getunitdata() {
this.http.get("/api/Account/Profiles").subscribe( this.http.get("/api/Account/Profiles").subscribe(
(data:any)=>{ (data: any) => {
this.organizationName = data.organizationName this.organizationName = data.organizationName
} }
) )
} }
organizationName:any //当前单位组织机构名称 organizationName: any //当前单位组织机构名称
treedata:any //组织机构树型数据 treedata: any //组织机构树型数据
newArr:any = [] newArr: any = []
newallorganizations:any //用于存储在原始数据基础上的每个机构增加children字段 newallorganizations: any //用于存储在原始数据基础上的每个机构增加children字段
//得到当前单位所在组织机构的tree型数据 //得到当前单位所在组织机构的tree型数据
getpresentOrganization(){ getpresentOrganization() {
this.newallorganizations = this.allorganizations this.newallorganizations = this.allorganizations
this.newallorganizations.forEach(item => { this.newallorganizations.forEach(item => {
item.children = [] item.children = []
this.newallorganizations.forEach(element => { this.newallorganizations.forEach(element => {
if(element.parentId == item.id){ if (element.parentId == item.id) {
item.children.push(element) item.children.push(element)
} }
}); });
}); });
// console.log(666,this.organizationName) // console.log(666,this.organizationName)
if(this.organizationName){ if (this.organizationName) {
this.newallorganizations.forEach(item => { this.newallorganizations.forEach(item => {
if(item.name == this.organizationName){ if (item.name == this.organizationName) {
this.dataSource.data = [item] this.dataSource.data = [item]
} }
}); });
}else{ } else {
this.dataSource.data = this.tree.toTree(this.treedata); this.dataSource.data = this.tree.toTree(this.treedata);
} }
} }
//获得所有组织机构 //获得所有组织机构
getOrganizations(){ getOrganizations() {
this.http.get('/api/Organizations').subscribe( this.http.get('/api/Organizations').subscribe(
(data:any)=>{ (data: any) => {
this.allorganizations = data this.allorganizations = data
this.treedata = this.tree.toTree(data); this.treedata = this.tree.toTree(data);
this.getpresentOrganization(); this.getpresentOrganization();
@ -182,87 +183,72 @@ export class OpenPlanComponent implements OnInit {
} }
//获得所有单位类型 //获得所有单位类型
getUnittype(){ getUnittype() {
this.http.get('/api/BuildingTypes/Simple').subscribe( this.http.get('/api/BuildingTypes/Simple').subscribe(
data=>{ data => {
this.allunittype = data this.allunittype = data
} }
) )
} }
//跳转查看预案页面 公开预案 //跳转查看预案页面 公开预案
routerTo(e){ routerTo(e) {
/* sessionStorage.setItem("companyName",element.companyName) console.log(e)
window.open(`/planAudit/planpass?id=${element.companyId}&companyName=${element.companyName}&auditPlanId=${element.id}&auditStatus=${element.auditStatus}&type=6&planType=2`); */ if (e.planMode == 0 || e.planMode == 1) {
var index = e.attachmentUrls[0].indexOf("\/")
// console.log(e) if (e.attachmentUrls[0].substr(0, index) == 'psw') {
if(e.planMode == 0||e.planMode == 1){ const dialogRef = this.dialog.open(GkhtmlPsViewer, {
//console.log(e.attachmentUrls) width: '1500px',
var index=e.attachmentUrls[0].indexOf("\/") height: '800px',
if(e.attachmentUrls[0].substr(0,index)=='psw'){ data: e.attachmentUrls[0]
const dialogRef = this.dialog.open(GkhtmlPsViewer, { });
width: '1500px', } else if (e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'JPG' || e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'png' || e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'peg' || e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'jpg') {
height:'800px', let data = e
data: e.attachmentUrls[0] const dialogRef = this.dialog.open(OpenImgDetails, {//调用open方法打开对话框并且携带参数过去
}); data: data.attachmentUrls,
} });
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' dialogRef.afterClosed().subscribe();
||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' } else {
||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 fetchUrl = e.attachmentUrls[0]
let filename:string if (fetchUrl) {
let fetchUrl = e.attachmentUrls[0] let suffix = fetchUrl.split('.')[fetchUrl.split('.').length - 1].toLowerCase()
let docIdWordArray = CryptoJS.enc.Utf8.parse(`PlanPlatform/` + fetchUrl); if (suffix == 'docx' || suffix == 'doc') {
let docId = CryptoJS.enc.Base64.stringify(docIdWordArray); let arr = fetchUrl.split('.')
let jwt = sessionStorage.getItem("token"); arr[arr.length - 1] = 'pdf'
let rawJwt = CryptoJS.enc.Base64.parse(jwt.split('.')[1]); window.open(`/api/Objects/PlanPlatform/` + arr.join('.'))
let identityJson = CryptoJS.enc.Utf8.stringify(rawJwt); } else if (suffix == 'pdf') {
let identityJsonparse=JSON.parse(identityJson) window.open(`/api/Objects/PlanPlatform/` + fetchUrl)
this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{ } else {
filename=data.fileName let config = new MatSnackBarConfig();
let json={ config.verticalPosition = 'top';
doc: { config.duration = 3000
docId: docId, this.snackBar.open('该文件类型暂不支持在线查看', '确定', config);
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_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:80/apps/editor/openPreview?data=${base64}`)
})
} }
} }
}
if(e.planMode == 2){ //如果是在线编辑 if (e.planMode == 2) { //如果是在线编辑
let id = e.id let id = e.id
sessionStorage.setItem("planId",id) sessionStorage.setItem("planId", id)
sessionStorage.setItem("companyId",e.companyId) sessionStorage.setItem("companyId", e.companyId)
//sessionStorage.setItem("buildingTypeId",this.unittypeId) //sessionStorage.setItem("buildingTypeId",this.unittypeId)
sessionStorage.setItem("editable","0") sessionStorage.setItem("editable", "0")
sessionStorage.setItem("planName",e.name) sessionStorage.setItem("planName", e.name)
let companyId = sessionStorage.getItem("companyId") let companyId = sessionStorage.getItem("companyId")
window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`); window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`);
} }
if(e.planMode == 3){ //如果是跳转网页 if (e.planMode == 3) { //如果是跳转网页
sessionStorage.setItem("url",e.url) sessionStorage.setItem("url", e.url)
window.open(`/planManagement/webLook`) window.open(`/planManagement/webLook`)
} }
} }
//分页事件 //分页事件
chagePage(e){ chagePage(e) {
this.PageNumber = e.pageIndex+1 this.PageNumber = e.pageIndex + 1
this.getAllPlanInfo(); this.getAllPlanInfo();
} }
//辖区中队div是否显示 //辖区中队div是否显示
isorganizationbox:boolean = false isorganizationbox: boolean = false
//点击辖区中队树,将选择的辖区中队添加到变量 //点击辖区中队树,将选择的辖区中队添加到变量
add(node) { add(node) {
this.isorganizationbox = false this.isorganizationbox = false
@ -278,23 +264,23 @@ export class OpenPlanComponent implements OnInit {
this.isorganizationbox = true this.isorganizationbox = true
} }
//关闭出现的组织机构div //关闭出现的组织机构div
closediv(){ closediv() {
this.isorganizationbox = false this.isorganizationbox = false
} }
//查询 //查询
onSubmit (e) { onSubmit(e) {
this.getAllPlanInfo() this.getAllPlanInfo()
} }
companyName:any //单位名称 companyName: any //单位名称
js:any //所选组织机构 js: any //所选组织机构
jsId:any //所选组织机构的id jsId: any //所选组织机构的id
// jscheck:boolean //所选组织机构勾选框 // jscheck:boolean //所选组织机构勾选框
unittype:any //单位类型 unittype: any //单位类型
reservePlanType:any //预案类型 reservePlanType: any //预案类型
preparelevel:any //编制级别 preparelevel: any //编制级别
plcheck:boolean //编制级别勾选框 plcheck: boolean //编制级别勾选框
//重置 //重置
reset(){ reset() {
this.companyName = '' this.companyName = ''
// this.js = '' // this.js = ''
// this.jsId = '' // this.jsId = ''
@ -316,14 +302,58 @@ export class OpenPlanComponent implements OnInit {
templateUrl: './PsvShow.html', templateUrl: './PsvShow.html',
styleUrls: ['./open-plan.component.scss'] styleUrls: ['./open-plan.component.scss']
}) })
export class GkhtmlPsViewer{ export class GkhtmlPsViewer {
constructor(private router:Router,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef<GkhtmlPsViewer>,@Inject(MAT_DIALOG_DATA) public data: any) {} constructor(private router: Router, private http: HttpClient, public dialog: MatDialog, public snackBar: MatSnackBar, public dialogRef: MatDialogRef<GkhtmlPsViewer>, @Inject(MAT_DIALOG_DATA) public data: any) { }
ngOnInit(): void { ngOnInit(): void {
// console.log(this.data) // console.log(this.data)
const viewer = new Viewer({ const viewer = new Viewer({
container: document.querySelector('#viewer'), container: document.querySelector('#viewer'),
panorama:'/api/Objects/PlanPlatform/'+ this.data, panorama: '/api/Objects/PlanPlatform/' + this.data,
});
}
}
//普通图片弹窗
@Component({
selector: 'imgdetails',
templateUrl: './previewImg.html',
styleUrls: ['./open-plan.component.scss']
})
export class OpenImgDetails {
constructor(private http: HttpClient, public dialog: MatDialog, public dialogRef: MatDialogRef<OpenImgDetails>,
@Inject(MAT_DIALOG_DATA) public data) { }
testSwiper: Swiper;
ngOnInit(): void {
this.allImages = []
this.data.forEach(element => {
element = `/api/Objects/PlanPlatform/${element}?x-oss-process=image/auto-orient,1`
this.allImages.push(element)
}); });
} }
ngAfterViewInit() {
this.testSwiper = new Swiper('.swiper-container', {
lazy: true,
direction: 'horizontal',
loop: false,
// 如果需要前进后退按钮
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
}
});
}
allImages: any; //展示所有的图片
rotationAngle: number = 0; //旋转角度
//旋转图片
rotate() {
this.rotationAngle = this.rotationAngle + 90
if (this.rotationAngle === 360) { this.rotationAngle = 0 }
}
} }

29
src/app/plan-management/open-plan/previewImg.html

@ -0,0 +1,29 @@
<!--
* @Descripttion:
* @version:
* @Author: sueRimn
* @Date: 2021-05-18 15:09:43
* @LastEditors: sueRimn
* @LastEditTime: 2021-05-18 15:25:35
-->
<div class="bigimgbox">
<!-- <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}" class="swiper-lazy"
[attr.data-src]="item">
<div class="swiper-lazy-preloader"></div>
</div>
</div>
<!-- 如果需要导航按钮 -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
<div class="previewImgBottom">
<button type="button" mat-icon-button (click)='rotate()'><mat-icon>refresh</mat-icon></button>
</div>
</div>

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

@ -1,233 +1,327 @@
.header { .header {
width: 100%; width: 100%;
padding: 12px 10px; padding: 12px 10px;
box-sizing: border-box;
.queryBox {
box-sizing: border-box; box-sizing: border-box;
.queryBox { padding: 5px 0 0 5px;
box-sizing: border-box; // margin-left: 50px;
padding: 5px 0 0 5px; display: flex;
// margin-left: 50px; flex-direction: row;
display: flex; flex-wrap: wrap;
flex-direction: row; align-items: center;
flex-wrap: wrap;
align-items:center; // justify-content:center;
// justify-content:center;
.queryField { .queryField {
//margin: 0 10px; //margin: 0 10px;
input { input {
width: 180px; width: 180px;
height: 22px; height: 22px;
line-height: 22px; line-height: 22px;
border-radius: 3px; border-radius: 3px;
} }
@media screen and (min-device-width:1400px){
margin: 3px 20px; @media screen and (min-device-width:1400px) {
} margin: 3px 20px;
@media screen and (max-device-width:1400px)and (min-device-width:1200px){ }
margin: 3px 10px;
mat-form-field{ @media screen and (max-device-width:1400px)and (min-device-width:1200px) {
width: 180px; margin: 3px 10px;
}
mat-form-field {
width: 180px;
} }
@media screen and (max-device-width:1200px){ }
margin: 3px 0 3px 10px;
mat-form-field{ @media screen and (max-device-width:1200px) {
width: 120px; margin: 3px 0 3px 10px;
}
mat-form-field {
width: 120px;
} }
}
} }
} //queryBox }
.butclass{
button{
width: 80px;height: 36px;
font-size: 16px;
}
}
.ordiv{
position: relative;
.organizationbox{
width:450px;
height: 200px;
background: white;
position: absolute;
top: 48px;
left: 77px;
z-index: 999;
border: 1px solid grey;
overflow-y: auto;
li{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
mat-tree-node{
cursor: pointer;
white-space:pre;
}
mat-tree-node:hover{
background: rgba(225, 225, 225, 0.8);
}
.closediv{
z-index: 100;
position: absolute;
right: 0;
top: 0;
width: 30px;
height: 30px;
cursor: pointer;
line-height: 30px;
text-align: center;
}
.closediv:hover{
background:rgba(225, 225, 225, 0.8);
}
}
//queryBox
.butclass {
button {
width: 80px;
height: 36px;
font-size: 16px;
} }
} }
.body{
.buttonbox{ .ordiv {
padding-left: 50px; position: relative;
button{
margin:0 10px .organizationbox {
} width: 450px;
height: 200px;
background: white;
position: absolute;
top: 48px;
left: 77px;
z-index: 999;
border: 1px solid grey;
overflow-y: auto;
li {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.tablebox{
table{ mat-tree-node {
width: 100%; cursor: pointer;
// margin-left: 2%; white-space: pre;
margin-top: 15px; }
}
mat-paginator{ mat-tree-node:hover {
width:100%; background: rgba(225, 225, 225, 0.8);
// margin-left: 2%; }
// margin-top: 30px;
} .closediv {
z-index: 100;
position: absolute;
right: 0;
top: 0;
width: 30px;
height: 30px;
cursor: pointer;
line-height: 30px;
text-align: center;
}
.closediv:hover {
background: rgba(225, 225, 225, 0.8);
} }
}
}
}
.body {
.buttonbox {
padding-left: 50px;
button {
margin: 0 10px
}
}
.tablebox {
table {
width: 100%;
// margin-left: 2%;
margin-top: 15px;
}
mat-paginator {
width: 100%;
// margin-left: 2%;
// margin-top: 30px;
}
} }
.mat-header-cell{
text-align: center;
} }
.mat-cell{
text-align: center; .mat-header-cell {
text-align: center;
}
.mat-cell {
text-align: center;
} }
//完整度 //完整度
.integrityDiv{ .integrityDiv {
width: 180px; width: 180px;
height: 30px; height: 30px;
background-color: #e2e7ee; background-color: #e2e7ee;
// background-image: linear-gradient(to right, #e2e7ee ,#FF4500, #FF8C00,#32cd32); // background-image: linear-gradient(to right, #e2e7ee ,#FF4500, #FF8C00,#32cd32);
margin: 0 auto; margin: 0 auto;
position: relative; position: relative;
.integrityNum{
position: absolute; .integrityNum {
left: 50%; position: absolute;
top: 50%; left: 50%;
transform: translate(-50%, -50%); top: 50%;
color: black; transform: translate(-50%, -50%);
color: black;
font-weight: 800;
font-size: 15px;
cursor: default;
}
.integrityColorDiv {
height: 100%;
}
.integrityDetails {
position: absolute;
display: none;
width: 350px;
height: 280px;
border: 1px solid rgba(0, 0, 0, 0.22);
background-color: white;
.integrityDetailsTop {
width: 100%;
height: 23px;
line-height: 23px;
border-bottom: 1px solid rgba(0, 0, 0, 0.22);
margin-bottom: 1px;
font-size: 14px;
span {
display: inline-block;
text-align: center;
font-weight: 800; font-weight: 800;
font-size: 15px; }
cursor: default;
} .span1 {
.integrityColorDiv{ width: 25%;
height: 100%; }
.span2 {
width: 60%;
}
.span3 {
width: 15%;
}
} }
.integrityDetails{
position: absolute; .integrityDetailsBody {
display: none; ul {
width: 350px; li {
height:280px; width: 100%;
border: 1px solid rgba(0, 0, 0, 0.22); height: 23px;
background-color: white; line-height: 23px;
.integrityDetailsTop{ margin: 3px 0;
width: 100%;
height: 23px; div {
line-height:23px; float: left;
border-bottom: 1px solid rgba(0, 0, 0, 0.22); font-size: 13px;
margin-bottom: 1px; }
font-size: 14px;
span{ .name {
display: inline-block; width: 25%;
text-align: center; height: 100%;
font-weight: 800; }
}
.span1{ .colorDiv {
width: 25%; width: 60%;
} height: 100%;
.span2{ position: relative;
width: 60%;
} .colorDivBac {
.span3{ width: 90%;
width: 15%; height: 100%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
background-color: #dfe5ec;
border-radius: 5px;
.colorDivCon {
border-radius: 5px;
height: 100%;
background-color: #2398f1;
}
} }
}
.integrityDetailsBody{ span {
ul{ position: absolute;
li{ left: 50%;
width: 100%; top: 50%;
height: 23px; transform: translate(-50%, -50%);
line-height: 23px; // color: white;
margin: 3px 0; font-weight: 600;
div{
float: left;
font-size: 13px;
}
.name{
width: 25%;
height: 100%;
}
.colorDiv{
width: 60%;
height: 100%;
position: relative;
.colorDivBac{
width: 90%;
height: 100%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
background-color: #dfe5ec;
border-radius: 5px;
.colorDivCon{
border-radius: 5px;
height: 100%;
background-color: #2398f1;
}
}
span{
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
// color: white;
font-weight: 600;
}
}
.number{
width: 15%;
height: 100%;
}
}
} }
}
.number {
width: 15%;
height: 100%;
}
} }
}
} }
.bottomposition{ }
top: 2px;
left: 188px; .bottomposition {
top: 2px;
left: 188px;
}
.topposition {
top: -252px;
left: 188px;
}
}
.integrityDiv:hover {
.integrityDetails {
display: block;
}
}
@media screen and (max-width:1200px) {
.bigimgbox {
width: 880px;
height: 580px;
//预览图片
.previewImgBox {
width: 800px;
height: 475px;
text-align: center;
} }
.topposition{ }
top: -252px; }
left: 188px;
@media screen and (min-width:1200px) and (max-width:1400px) {
.bigimgbox {
width: 880px;
height: 610px;
//预览图片
.previewImgBox {
width: 800px;
height: 500px;
text-align: center;
} }
}
} }
.integrityDiv:hover{
.integrityDetails{ @media screen and (min-width:1400px) {
display: block; .bigimgbox {
width: 1110px;
height: 860px;
//预览图片
.previewImgBox {
width: 900px;
height: 100%;
text-align: center;
} }
.previewImgBottom {
text-align: center;
height: 30px;
margin: 20px auto;
}
}
} }

25
src/app/plan-management/pass-plan/pass-plan.component.spec.ts

@ -1,25 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { PassPlanComponent } from './pass-plan.component';
describe('PassPlanComponent', () => {
let component: PassPlanComponent;
let fixture: ComponentFixture<PassPlanComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ PassPlanComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(PassPlanComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

502
src/app/plan-management/pass-plan/pass-plan.component.ts

@ -4,13 +4,14 @@ import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'
import { MatPaginator } from '@angular/material/paginator'; import { MatPaginator } from '@angular/material/paginator';
import { FlatTreeControl } from '@angular/cdk/tree'; import { FlatTreeControl } from '@angular/cdk/tree';
import { FormControl } from '@angular/forms'; import { FormControl } from '@angular/forms';
import { Router,ActivatedRoute } from '@angular/router' import { Router, ActivatedRoute } from '@angular/router'
import { PageEvent } from '@angular/material/paginator'; import { PageEvent } from '@angular/material/paginator';
import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
import { TreeService } from '../../http-interceptors/tree.service' import { TreeService } from '../../http-interceptors/tree.service'
import { Viewer } from 'photo-sphere-viewer'; import { Viewer } from 'photo-sphere-viewer';
declare var CryptoJS declare var CryptoJS
import Swiper from 'swiper';
@Component({ @Component({
selector: 'app-pass-plan', selector: 'app-pass-plan',
templateUrl: './pass-plan.component.html', templateUrl: './pass-plan.component.html',
@ -18,7 +19,7 @@ declare var CryptoJS
}) })
export class PassPlanComponent implements OnInit { export class PassPlanComponent implements OnInit {
constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } constructor(private http: HttpClient, private router: Router, private route: ActivatedRoute, private tree: TreeService, public dialog: MatDialog, public snackBar: MatSnackBar) { }
private _transformer = (node, level: number) => { //初始化tree private _transformer = (node, level: number) => { //初始化tree
return { return {
@ -35,239 +36,239 @@ export class PassPlanComponent implements OnInit {
dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
myControl = new FormControl(); myControl = new FormControl();
hasChild = (_: number, node: any) => node.expandable; hasChild = (_: number, node: any) => node.expandable;
//分页 //分页
@ViewChild(MatPaginator, {static: true}) @ViewChild(MatPaginator, { static: true })
pageEvent: PageEvent; pageEvent: PageEvent;
paginator: MatPaginator; paginator: MatPaginator;
length:any; //共多少条数据 length: any; //共多少条数据
pageSize:any; //每页条数 pageSize: any; //每页条数
pageSizeOptions: number[] = [10] //设置每页条数 pageSizeOptions: number[] = [10] //设置每页条数
PageNumber:any; //第几页 PageNumber: any; //第几页
displayedColumns: string[] = ['planname', 'addpeople','level','addtime','plantype','auditStatus','openRange','projectlevel','operation']; displayedColumns: string[] = ['planname', 'addpeople', 'level', 'addtime', 'plantype', 'auditStatus', 'openRange', 'projectlevel', 'operation'];
allorganizations:any //所有组织机构 allorganizations: any //所有组织机构
allunittype:any //所有单位类型 allunittype: any //所有单位类型
tabledataSource:any //表格数据 tabledataSource: any //表格数据
url url
preparelevels:any preparelevels: any
ngOnInit(): void { ngOnInit(): void {
if(window.matchMedia("(max-width: 1400px)").matches){ if (window.matchMedia("(max-width: 1400px)").matches) {
this.pcMore=false this.pcMore = false
this.padMore=true this.padMore = true
this.pcfind=false this.pcfind = false
this.padjt=true this.padjt = true
}else{ } else {
this.pcfind=true this.pcfind = true
this.pcMore=true this.pcMore = true
this.padMore=false this.padMore = false
this.padjt=false this.padjt = false
} }
this.getunitdata(); this.getunitdata();
this.getOrganizations(); this.getOrganizations();
this.getUnittype(); this.getUnittype();
this.getAllPlanInfo(); this.getAllPlanInfo();
let level = sessionStorage.getItem("level"); let level = sessionStorage.getItem("level");
if(level == "0"){//如果是总队 if (level == "0") {//如果是总队
this.preparelevels = [ this.preparelevels = [
{name:"总队",value:"1"}, { name: "总队", value: "1" },
{name:"支队",value:"2"}, { name: "支队", value: "2" },
{name:"大队",value:"4"}, { name: "大队", value: "4" },
{name:"中队",value:"8"} { name: "中队", value: "8" }
] ]
} }
if(level == "1"){//如果是支队 if (level == "1") {//如果是支队
this.preparelevels = [ this.preparelevels = [
{name:"支队",value:"2"}, { name: "支队", value: "2" },
{name:"大队",value:"4"}, { name: "大队", value: "4" },
{name:"中队",value:"8"} { name: "中队", value: "8" }
] ]
} }
if(level == "2"){//如果是大队 if (level == "2") {//如果是大队
this.preparelevels = [ this.preparelevels = [
{name:"大队",value:"4"}, { name: "大队", value: "4" },
{name:"中队",value:"8"} { name: "中队", value: "8" }
] ]
} }
if(level == "3"){//如果是中队 if (level == "3") {//如果是中队
this.preparelevels = [ this.preparelevels = [
{name:"中队",value:"8"} { name: "中队", value: "8" }
] ]
} }
this.url=window.location.href.substring(window.location.href.length-1,window.location.href.length) this.url = window.location.href.substring(window.location.href.length - 1, window.location.href.length)
//console.log(this.url) //console.log(this.url)
} }
pcMore//pc更多 pcMore//pc更多
pcput=false//pc收起 pcput = false//pc收起
pcfind//pc查询 pcfind//pc查询
padjt=false padjt = false
padMore=true//pad收缩控制 padMore = true//pad收缩控制
padput=false//pad收起按钮 padput = false//pad收起按钮
imgsrcopen="../../../assets/images/routdown2.png" imgsrcopen = "../../../assets/images/routdown2.png"
imgsrcdown="../../../assets/images/routup2.png" imgsrcdown = "../../../assets/images/routup2.png"
pcInfo(){ pcInfo() {
this.pcMore=!this.pcMore this.pcMore = !this.pcMore
this.pcput=!this.pcput this.pcput = !this.pcput
} }
padInfo(){ padInfo() {
this.padMore=!this.padMore this.padMore = !this.padMore
this.padput=!this.padput this.padput = !this.padput
} }
allPlanInfo:any //存储所有预案信息 allPlanInfo: any //存储所有预案信息
//获得所有预案信息 //获得所有预案信息
getAllPlanInfo(){ getAllPlanInfo() {
let reservePlanType let reservePlanType
this.reservePlanType ? reservePlanType = JSON.parse(JSON.stringify(this.reservePlanType)) : reservePlanType = '' this.reservePlanType ? reservePlanType = JSON.parse(JSON.stringify(this.reservePlanType)) : reservePlanType = ''
if(this.reservePlanType && this.reservePlanType.length != 0){ if (this.reservePlanType && this.reservePlanType.length != 0) {
reservePlanType = eval(this.reservePlanType.join("|")) reservePlanType = eval(this.reservePlanType.join("|"))
} }
let paramsdata:any = { let paramsdata: any = {
CompanyName: this.companyName || '', CompanyName: this.companyName || '',
OrganizationId: this.jsId || '', OrganizationId: this.jsId || '',
HasChildrenOrganization:this.jscheck || '', HasChildrenOrganization: this.jscheck || '',
BuildingTypeId: this.unittype || '', BuildingTypeId: this.unittype || '',
PlanType: this.reservePlanType || '', PlanType: this.reservePlanType || '',
AuditStatus:'', //审核状态 AuditStatus: '', //审核状态
PlanLevel: this.preparelevel || '', PlanLevel: this.preparelevel || '',
HasChildrenPlanLevel: this.plcheck || '', HasChildrenPlanLevel: this.plcheck || '',
CreationTimeRangeStart:this.addtime||'', CreationTimeRangeStart: this.addtime || '',
CreationTimeRangeEnd:this.endtime||'', CreationTimeRangeEnd: this.endtime || '',
PageNumber: this.PageNumber || '1', PageNumber: this.PageNumber || '1',
PageSize: this.pageSizeOptions[0], PageSize: this.pageSizeOptions[0],
Sort: '', Sort: '',
PlanCategories:this.planCategory PlanCategories: this.planCategory
} }
this.http.get("/api/ApprovedPlans",{params:paramsdata}).subscribe((data:any)=>{ this.http.get("/api/ApprovedPlans", { params: paramsdata }).subscribe((data: any) => {
this.length = data.totalCount this.length = data.totalCount
this.allPlanInfo = data this.allPlanInfo = data
this.tabledataSource = data.items this.tabledataSource = data.items
}) })
} }
colorRgb(sColor){ colorRgb(sColor) {
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
var sColor = sColor.toLowerCase(); var sColor = sColor.toLowerCase();
if (sColor && reg.test(sColor)) { if (sColor && reg.test(sColor)) {
if (sColor.length === 4) { if (sColor.length === 4) {
var sColorNew = "#"; var sColorNew = "#";
for (var i = 1; i < 4; i += 1) { for (var i = 1; i < 4; i += 1) {
sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1)); sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));
}
sColor = sColorNew;
}
//处理六位的颜色值
var sColorChange = [];
for (var i = 1; i < 7; i += 2) {
sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2)));
} }
return sColorChange; sColor = sColorNew;
}
//处理六位的颜色值
var sColorChange = [];
for (var i = 1; i < 7; i += 2) {
sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2)));
}
return sColorChange;
} else { } else {
return sColor; return sColor;
} }
} }
colorHex(rgb){ colorHex(rgb) {
var _this = rgb; var _this = rgb;
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
if (/^(rgb|RGB)/.test(_this)) { if (/^(rgb|RGB)/.test(_this)) {
var aColor = _this.replace(/(?:(|)|rgb|RGB)*/g, "").split(","); var aColor = _this.replace(/(?:(|)|rgb|RGB)*/g, "").split(",");
var strHex = "#"; var strHex = "#";
for (var i = 0; i < aColor.length; i++) { for (var i = 0; i < aColor.length; i++) {
var hex:any = Number(aColor[i]).toString(16); var hex: any = Number(aColor[i]).toString(16);
hex = hex < 10 ? 0 + '' + hex : hex;// 保证每个rgb的值为2位 hex = hex < 10 ? 0 + '' + hex : hex;// 保证每个rgb的值为2位
if (hex === "0") { if (hex === "0") {
hex += hex; hex += hex;
}
strHex += hex;
}
if (strHex.length !== 7) {
strHex = _this;
} }
return strHex; strHex += hex;
}
if (strHex.length !== 7) {
strHex = _this;
}
return strHex;
} else if (reg.test(_this)) { } else if (reg.test(_this)) {
var aNum = _this.replace(/#/, "").split(""); var aNum = _this.replace(/#/, "").split("");
if (aNum.length === 6) { if (aNum.length === 6) {
return _this; return _this;
} else if (aNum.length === 3) { } else if (aNum.length === 3) {
var numHex = "#"; var numHex = "#";
for (var i = 0; i < aNum.length; i += 1) { for (var i = 0; i < aNum.length; i += 1) {
numHex += (aNum[i] + aNum[i]); numHex += (aNum[i] + aNum[i]);
}
return numHex;
} }
return numHex;
}
} else { } else {
return _this; return _this;
} }
} }
gradientColor(startColor, endColor, step) { gradientColor(startColor, endColor, step) {
let _this = this let _this = this
let startRGB = _this.colorRgb(startColor);//转换为rgb数组模式 let startRGB = _this.colorRgb(startColor);//转换为rgb数组模式
let startR = startRGB[0]; let startR = startRGB[0];
let startG = startRGB[1]; let startG = startRGB[1];
let startB = startRGB[2]; let startB = startRGB[2];
let endRGB = _this.colorRgb(endColor); let endRGB = _this.colorRgb(endColor);
let endR = endRGB[0]; let endR = endRGB[0];
let endG = endRGB[1]; let endG = endRGB[1];
let endB = endRGB[2]; let endB = endRGB[2];
let sR = (endR - startR) / step;//总差值 let sR = (endR - startR) / step;//总差值
let sG = (endG - startG) / step; let sG = (endG - startG) / step;
let sB = (endB - startB) / step; let sB = (endB - startB) / step;
var colorArr = []; var colorArr = [];
for (var i = 0; i < step; i++) { for (var i = 0; i < step; i++) {
//计算每一步的hex值 //计算每一步的hex值
var hex = _this.colorHex('rgb('+ parseInt((sR * i + startR))+ ',' + parseInt((sG * i + startG))+ ',' + parseInt((sB * i + startB)) + ')'); var hex = _this.colorHex('rgb(' + parseInt((sR * i + startR)) + ',' + parseInt((sG * i + startG)) + ',' + parseInt((sB * i + startB)) + ')');
colorArr.push(hex); colorArr.push(hex);
} }
return colorArr; return colorArr;
} }
integrity(width){ integrity(width) {
let _this = this let _this = this
let style:any = {} let style: any = {}
style.width = width +'%'; style.width = width + '%';
if(width < 30){ if (width < 30) {
let colorArr = this.gradientColor('#D50000', '#E53935', 30); let colorArr = this.gradientColor('#D50000', '#E53935', 30);
for(let i = 0; i < 30; i++){ for (let i = 0; i < 30; i++) {
if( i == width){ if (i == width) {
style.background = colorArr[i] style.background = colorArr[i]
} }
} }
} }
if(width >= 30 && width < 60){ if (width >= 30 && width < 60) {
let colorArr = this.gradientColor('#FF9800', '#E65100', 30); let colorArr = this.gradientColor('#FF9800', '#E65100', 30);
for(let i = 30; i < 60; i++){ for (let i = 30; i < 60; i++) {
if( i == width){ if (i == width) {
style.background = colorArr[i-30] style.background = colorArr[i - 30]
} }
} }
} }
if(width >= 60){ if (width >= 60) {
let colorArr = this.gradientColor('#81C784', '#2E7D32', 41); let colorArr = this.gradientColor('#81C784', '#2E7D32', 41);
for(let i = 60; i <= 100; i++){ for (let i = 60; i <= 100; i++) {
if( i == width){ if (i == width) {
style.background = colorArr[i-60] style.background = colorArr[i - 60]
} }
} }
} }
return style return style
} }
integrityDetails(width,zong){ integrityDetails(width, zong) {
let style:any = {} let style: any = {}
style.width = (width/zong)*100 +'%'; style.width = (width / zong) * 100 + '%';
return style return style
} }
//得到当前单位信息 //得到当前单位信息
getunitdata(){ getunitdata() {
this.http.get("/api/Account/Profiles").subscribe( this.http.get("/api/Account/Profiles").subscribe(
(data:any)=>{ (data: any) => {
this.organizationName = data.organizationName this.organizationName = data.organizationName
} }
) )
} }
@ -275,31 +276,31 @@ export class PassPlanComponent implements OnInit {
endtime//结束时间 endtime//结束时间
integrityScoreMin//完整度最小值 integrityScoreMin//完整度最小值
integrityScoreMax//完整度最大值 integrityScoreMax//完整度最大值
organizationName:any //当前单位组织机构名称 organizationName: any //当前单位组织机构名称
treedata:any //组织机构树型数据 treedata: any //组织机构树型数据
newArr:any = [] newArr: any = []
newallorganizations:any //用于存储在原始数据基础上的每个机构增加children字段 newallorganizations: any //用于存储在原始数据基础上的每个机构增加children字段
//得到当前单位所在组织机构的tree型数据 //得到当前单位所在组织机构的tree型数据
getpresentOrganization(){ getpresentOrganization() {
this.newallorganizations = this.allorganizations this.newallorganizations = this.allorganizations
this.newallorganizations.forEach(item => { this.newallorganizations.forEach(item => {
item.children = [] item.children = []
this.newallorganizations.forEach(element => { this.newallorganizations.forEach(element => {
if(element.parentId == item.id){ if (element.parentId == item.id) {
item.children.push(element) item.children.push(element)
} }
}); });
}); });
this.http.get("/api/Account/Profiles").subscribe( this.http.get("/api/Account/Profiles").subscribe(
(data:any)=>{ (data: any) => {
this.organizationName = data.organizationName this.organizationName = data.organizationName
if(this.organizationName){ if (this.organizationName) {
this.newallorganizations.forEach(item => { this.newallorganizations.forEach(item => {
if(item.name == this.organizationName){ if (item.name == this.organizationName) {
this.dataSource.data = [item] this.dataSource.data = [item]
} }
}); });
}else{ } else {
this.dataSource.data = this.tree.toTree(this.treedata); this.dataSource.data = this.tree.toTree(this.treedata);
} }
} }
@ -307,9 +308,9 @@ export class PassPlanComponent implements OnInit {
} }
//获得所有组织机构 //获得所有组织机构
getOrganizations(){ getOrganizations() {
this.http.get('/api/Organizations').subscribe( this.http.get('/api/Organizations').subscribe(
(data:any)=>{ (data: any) => {
this.allorganizations = data this.allorganizations = data
this.treedata = this.tree.toTree(data); this.treedata = this.tree.toTree(data);
this.getpresentOrganization(); this.getpresentOrganization();
@ -318,120 +319,103 @@ export class PassPlanComponent implements OnInit {
} }
//获得所有单位类型 //获得所有单位类型
getUnittype(){ getUnittype() {
this.http.get('/api/BuildingTypes/Simple').subscribe( this.http.get('/api/BuildingTypes/Simple').subscribe(
data=>{ data => {
this.allunittype = data this.allunittype = data
} }
) )
} }
//查看单位信息 //查看单位信息
lookUnitInfo(element){ lookUnitInfo(element) {
// console.log(element) sessionStorage.setItem("editable", "0")
// const dialogRef = this.dialog.open(UnitInfo, { sessionStorage.setItem("companyName", element.company.name)
// width: '1500px', sessionStorage.setItem("companyId", element.company.id)
// height:'800px' sessionStorage.setItem(element.company.id, JSON.stringify(element.company.companyIntegrityScore))
// }); window.open(`/keyUnit/viewunitinfo?id=${element.company.id}&usci=${element.company.usci}`, '_blank');
sessionStorage.setItem("editable","0")
sessionStorage.setItem("companyName",element.company.name)
sessionStorage.setItem("companyId",element.company.id)
sessionStorage.setItem(element.company.id,JSON.stringify(element.company.companyIntegrityScore))
window.open(`/keyUnit/viewunitinfo?id=${element.company.id}&usci=${element.company.usci}`,'_blank');
} }
//跳转查看预案页面 审核通过预案 //跳转查看预案页面 审核通过预案
routerTo(e){ routerTo(e) {
// console.log(e) console.log(e)
if(e.planMode == 0||e.planMode == 1){ if (e.planMode == 0 || e.planMode == 1) {
//console.log(e.attachmentUrls) var index = e.attachmentUrls[0].indexOf("\/")
var index=e.attachmentUrls[0].indexOf("\/") if (e.attachmentUrls[0].substr(0, index) == 'psw') {
if(e.attachmentUrls[0].substr(0,index)=='psw'){
const dialogRef = this.dialog.open(GkPsViewer, { const dialogRef = this.dialog.open(GkPsViewer, {
width: '1500px', width: '1500px',
height:'800px', height: '800px',
data: e.attachmentUrls[0] data: e.attachmentUrls[0]
}); });
} } else if (e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'JPG' || e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'png' || e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'peg' || e.attachmentUrls[0].substr(e.attachmentUrls[0].length - 3, e.attachmentUrls[0].length) == 'jpg') {
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' let data = e
||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' const dialogRef = this.dialog.open(PassImgDetails, {//调用open方法打开对话框并且携带参数过去
||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') */{ data: data.attachmentUrls,
let filename:string });
let fetchUrl = e.attachmentUrls[0] dialogRef.afterClosed().subscribe();
let docIdWordArray = CryptoJS.enc.Utf8.parse(`PlanPlatform/` + fetchUrl); } else {
let docId = CryptoJS.enc.Base64.stringify(docIdWordArray); let fetchUrl = e.attachmentUrls[0]
let jwt = sessionStorage.getItem("token"); if (fetchUrl) {
let rawJwt = CryptoJS.enc.Base64.parse(jwt.split('.')[1]); let suffix = fetchUrl.split('.')[fetchUrl.split('.').length - 1].toLowerCase()
let identityJson = CryptoJS.enc.Utf8.stringify(rawJwt); if (suffix == 'docx' || suffix == 'doc') {
let identityJsonparse=JSON.parse(identityJson) let arr = fetchUrl.split('.')
this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{ arr[arr.length - 1] = 'pdf'
filename=data.fileName window.open(`/api/Objects/PlanPlatform/` + arr.join('.'))
let json={ } else if (suffix == 'pdf') {
doc: { window.open(`/api/Objects/PlanPlatform/` + fetchUrl)
docId: docId, } else {
title: filename, let config = new MatSnackBarConfig();
fetchUrl: `http://39.106.78.171:8000/api/Objects/PlanPlatform/`+fetchUrl, config.verticalPosition = 'top';
}, config.duration = 3000
user: { this.snackBar.open('该文件类型暂不支持在线查看', '确定', config);
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:80/apps/editor/openPreview?data=${base64}`)
})
} }
} }
}
if(e.planMode == 2){ //如果是在线编辑 if (e.planMode == 2) { //如果是在线编辑
let id = e.id let id = e.id
sessionStorage.setItem("planId",id) sessionStorage.setItem("planId", id)
sessionStorage.setItem("companyId",e.companyId) sessionStorage.setItem("companyId", e.companyId)
//sessionStorage.setItem("buildingTypeId",this.unittypeId) //sessionStorage.setItem("buildingTypeId",this.unittypeId)
sessionStorage.setItem("editable","0") sessionStorage.setItem("editable", "0")
sessionStorage.setItem("planName",e.name) sessionStorage.setItem("planName", e.name)
let companyId = sessionStorage.getItem("companyId") let companyId = sessionStorage.getItem("companyId")
window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`); window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`);
} }
if(e.planMode == 3){ //如果是跳转网页 if (e.planMode == 3) { //如果是跳转网页
sessionStorage.setItem("url",e.url) sessionStorage.setItem("url", e.url)
window.open(`/planManagement/webLook`) window.open(`/planManagement/webLook`)
} }
} }
//预案公开 //预案公开
openReserve (e) { openReserve(e) {
this.http.put(`/api/PlanAudits/${e.id}/Public`,[]).subscribe(data=>{ this.http.put(`/api/PlanAudits/${e.id}/Public`, []).subscribe(data => {
const config = new MatSnackBarConfig(); const config = new MatSnackBarConfig();
config.verticalPosition = 'top'; config.verticalPosition = 'top';
config.duration = 3000 config.duration = 3000
this.snackBar.open('预案已公开','确定',config); this.snackBar.open('预案已公开', '确定', config);
}) })
} }
//预案取消公开 //预案取消公开
closeReserve (e) { closeReserve(e) {
this.http.put(`/api/PlanAudits/${e.id}/Unpublic`,[]).subscribe(data=>{ this.http.put(`/api/PlanAudits/${e.id}/Unpublic`, []).subscribe(data => {
const config = new MatSnackBarConfig(); const config = new MatSnackBarConfig();
config.verticalPosition = 'top'; config.verticalPosition = 'top';
config.duration = 3000 config.duration = 3000
this.snackBar.open('预案已取消公开','确定',config); this.snackBar.open('预案已取消公开', '确定', config);
}) })
} }
//分页事件 //分页事件
chagePage(e){ chagePage(e) {
this.PageNumber = e.pageIndex+1 this.PageNumber = e.pageIndex + 1
this.getAllPlanInfo(); this.getAllPlanInfo();
} }
//辖区中队div是否显示 //辖区中队div是否显示
isorganizationbox:boolean = false isorganizationbox: boolean = false
//点击辖区中队树,将选择的辖区中队添加到变量 //点击辖区中队树,将选择的辖区中队添加到变量
add(node) { add(node) {
this.isorganizationbox = false this.isorganizationbox = false
@ -447,26 +431,26 @@ export class PassPlanComponent implements OnInit {
this.isorganizationbox = true this.isorganizationbox = true
} }
//关闭出现的组织机构div //关闭出现的组织机构div
closediv(){ closediv() {
this.isorganizationbox = false this.isorganizationbox = false
} }
//查询 //查询
onSubmit (e) { onSubmit(e) {
this.PageNumber = 1 this.PageNumber = 1
this.pageEvent.pageIndex = 0 this.pageEvent.pageIndex = 0
this.getAllPlanInfo(); this.getAllPlanInfo();
} }
companyName:any //单位名称 companyName: any //单位名称
js:any //所选组织机构 js: any //所选组织机构
jsId:any //所选组织机构的id jsId: any //所选组织机构的id
jscheck:boolean //所选组织机构勾选框 jscheck: boolean //所选组织机构勾选框
unittype:any //单位类型 unittype: any //单位类型
reservePlanType:any //预案类型 reservePlanType: any //预案类型
preparelevel:any //编制级别 preparelevel: any //编制级别
plcheck:boolean //编制级别勾选框 plcheck: boolean //编制级别勾选框
planCategory=[]//预案级别 planCategory = []//预案级别
//重置 //重置
reset(){ reset() {
this.companyName = '' this.companyName = ''
this.js = '' this.js = ''
this.jsId = '' this.jsId = ''
@ -474,13 +458,13 @@ export class PassPlanComponent implements OnInit {
this.unittype = '' this.unittype = ''
this.reservePlanType = '' this.reservePlanType = ''
this.preparelevel = '' this.preparelevel = ''
this.addtime='' this.addtime = ''
this.endtime='' this.endtime = ''
this.plcheck = false this.plcheck = false
//重新获取初始化列表 //重新获取初始化列表
this.pageEvent.pageIndex = 0 this.pageEvent.pageIndex = 0
this.PageNumber = 1 this.PageNumber = 1
this.planCategory=[] this.planCategory = []
this.getAllPlanInfo(); this.getAllPlanInfo();
} }
} }
@ -490,13 +474,13 @@ export class PassPlanComponent implements OnInit {
templateUrl: './PsvShow.html', templateUrl: './PsvShow.html',
styleUrls: ['./pass-plan.component.scss'] styleUrls: ['./pass-plan.component.scss']
}) })
export class GkPsViewer{ export class GkPsViewer {
constructor(private router:Router,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef<GkPsViewer>,@Inject(MAT_DIALOG_DATA) public data: any) {} constructor(private router: Router, private http: HttpClient, public dialog: MatDialog, public snackBar: MatSnackBar, public dialogRef: MatDialogRef<GkPsViewer>, @Inject(MAT_DIALOG_DATA) public data: any) { }
ngOnInit(): void { ngOnInit(): void {
// console.log(this.data) // console.log(this.data)
const viewer = new Viewer({ const viewer = new Viewer({
container: document.querySelector('#viewer'), container: document.querySelector('#viewer'),
panorama:'/api/Objects/PlanPlatform/'+ this.data, panorama: '/api/Objects/PlanPlatform/' + this.data,
}); });
} }
@ -508,9 +492,53 @@ export class GkPsViewer{
templateUrl: './unitInfo.html', templateUrl: './unitInfo.html',
styleUrls: ['./pass-plan.component.scss'] styleUrls: ['./pass-plan.component.scss']
}) })
export class UnitInfo{ export class UnitInfo {
constructor(private router:Router,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef<UnitInfo>,@Inject(MAT_DIALOG_DATA) public data: any) {} constructor(private router: Router, private http: HttpClient, public dialog: MatDialog, public snackBar: MatSnackBar, public dialogRef: MatDialogRef<UnitInfo>, @Inject(MAT_DIALOG_DATA) public data: any) { }
ngOnInit(): void { ngOnInit(): void {
// console.log(this.data) // console.log(this.data)
} }
} }
//普通图片弹窗
@Component({
selector: 'imgdetails',
templateUrl: './previewImg.html',
styleUrls: ['./pass-plan.component.scss']
})
export class PassImgDetails {
constructor(private http: HttpClient, public dialog: MatDialog, public dialogRef: MatDialogRef<PassImgDetails>,
@Inject(MAT_DIALOG_DATA) public data) { }
testSwiper: Swiper;
ngOnInit(): void {
this.allImages = []
this.data.forEach(element => {
element = `/api/Objects/PlanPlatform/${element}?x-oss-process=image/auto-orient,1`
this.allImages.push(element)
});
}
ngAfterViewInit() {
this.testSwiper = new Swiper('.swiper-container', {
lazy: true,
direction: 'horizontal',
loop: false,
// 如果需要前进后退按钮
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
}
});
}
allImages: any; //展示所有的图片
rotationAngle: number = 0; //旋转角度
//旋转图片
rotate() {
this.rotationAngle = this.rotationAngle + 90
if (this.rotationAngle === 360) { this.rotationAngle = 0 }
}
}

29
src/app/plan-management/pass-plan/previewImg.html

@ -0,0 +1,29 @@
<!--
* @Descripttion:
* @version:
* @Author: sueRimn
* @Date: 2021-05-18 15:09:43
* @LastEditors: sueRimn
* @LastEditTime: 2021-05-18 15:25:35
-->
<div class="bigimgbox">
<!-- <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}" class="swiper-lazy"
[attr.data-src]="item">
<div class="swiper-lazy-preloader"></div>
</div>
</div>
<!-- 如果需要导航按钮 -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
<div class="previewImgBottom">
<button type="button" mat-icon-button (click)='rotate()'><mat-icon>refresh</mat-icon></button>
</div>
</div>

6
src/app/plan-management/plan-management.module.ts

@ -45,8 +45,8 @@ import { MatTooltipModule } from '@angular/material/tooltip';
import { MatTreeModule } from '@angular/material/tree'; import { MatTreeModule } from '@angular/material/tree';
import { EntryPlanComponent } from './entry-plan/entry-plan.component'; import { EntryPlanComponent } from './entry-plan/entry-plan.component';
import { PassPlanComponent, UnitInfo } from './pass-plan/pass-plan.component'; import { PassPlanComponent, UnitInfo, PassImgDetails } from './pass-plan/pass-plan.component';
import { OpenPlanComponent } from './open-plan/open-plan.component'; import { OpenPlanComponent,OpenImgDetails } from './open-plan/open-plan.component';
import { EntryPlanLookComponent, AddPlanone, DownloadFile, AuditResult, ChangeName, ImgDetails } from './entry-plan-look/entry-plan-look.component'; import { EntryPlanLookComponent, AddPlanone, DownloadFile, AuditResult, ChangeName, ImgDetails } from './entry-plan-look/entry-plan-look.component';
import { PlanType, AuditSatus, PlanLevel, state } from '../pipes/boolean.pipe'; import { PlanType, AuditSatus, PlanLevel, state } from '../pipes/boolean.pipe';
import { WebLookComponent } from './web-look/web-look.component'; import { WebLookComponent } from './web-look/web-look.component';
@ -70,7 +70,7 @@ import { ReinforcePlanComponent } from './reinforce-plan/reinforce-plan.componen
@NgModule({ @NgModule({
declarations: [EntryPlanComponent, PassPlanComponent, OpenPlanComponent, EntryPlanLookComponent, AddPlanone, PlanType, AuditSatus, PlanLevel, DownloadFile, AuditResult, ChangeName, declarations: [EntryPlanComponent, PassPlanComponent, OpenPlanComponent, EntryPlanLookComponent, AddPlanone, PlanType, AuditSatus, PlanLevel, DownloadFile, AuditResult, ChangeName,
WebLookComponent, OnetwoEntryPlanComponent, newunitComponent, MeetPlanComponent, newunitMeet, TypePlanComponent, newunitType, PsViewer, onetwoAuditResult, meetAuditResult, WebLookComponent, OnetwoEntryPlanComponent, newunitComponent, MeetPlanComponent, newunitMeet, TypePlanComponent, newunitType, PsViewer, onetwoAuditResult, meetAuditResult,
typeAuditResult, MaintainUpComponent, GkPsViewer, GkhtmlPsViewer, UnitInfo, ReinforcePlanComponent, state, ImgDetails], typeAuditResult, MaintainUpComponent, GkPsViewer, GkhtmlPsViewer, UnitInfo, ReinforcePlanComponent, state, ImgDetails,PassImgDetails,OpenImgDetails],
imports: [ imports: [
CommonModule, CommonModule,
PlanManagementRoutingModule, PlanManagementRoutingModule,

Loading…
Cancel
Save