diff --git a/src/app/plan-management/pass-plan/pass-plan.component.html b/src/app/plan-management/pass-plan/pass-plan.component.html index 92a149b..20772fb 100644 --- a/src/app/plan-management/pass-plan/pass-plan.component.html +++ b/src/app/plan-management/pass-plan/pass-plan.component.html @@ -138,9 +138,10 @@ 操作 - {{url=='1'?'审核预案':'查看预案'}} + 查看单位信息 + {{url=='1'?'审核预案':'查看预案'}} - + @@ -154,7 +155,4 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/src/app/plan-management/pass-plan/pass-plan.component.ts b/src/app/plan-management/pass-plan/pass-plan.component.ts index ef1fdd8..90bd408 100644 --- a/src/app/plan-management/pass-plan/pass-plan.component.ts +++ b/src/app/plan-management/pass-plan/pass-plan.component.ts @@ -292,23 +292,37 @@ export class PassPlanComponent implements OnInit { } ) } + //查看单位信息 + lookUnitInfo(element){ + console.log(element) + // const dialogRef = this.dialog.open(UnitInfo, { + // width: '1500px', + // height:'800px' + // }); + 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){ - console.log(e) - if(e.planMode == 0||e.planMode == 1){ - //console.log(e.attachmentUrls) - var index=e.attachmentUrls[0].indexOf("\/") - if(e.attachmentUrls[0].substr(0,index)=='psw'){ - const dialogRef = this.dialog.open(GkPsViewer, { - width: '1500px', - height:'800px', - data: e.attachmentUrls[0] - }); - } - else /* if(e.attachmentUrls[0].substr(e.attachmentUrls[0].length-4,e.attachmentUrls[0].length-1)=='docx'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='pdf' - ||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='doc'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='DOC' - ||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='txt'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='JPG') */{ - let filename:string + console.log(e) + if(e.planMode == 0||e.planMode == 1){ + //console.log(e.attachmentUrls) + var index=e.attachmentUrls[0].indexOf("\/") + if(e.attachmentUrls[0].substr(0,index)=='psw'){ + const dialogRef = this.dialog.open(GkPsViewer, { + width: '1500px', + height:'800px', + data: e.attachmentUrls[0] + }); + } + else /* if(e.attachmentUrls[0].substr(e.attachmentUrls[0].length-4,e.attachmentUrls[0].length-1)=='docx'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='pdf' + ||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='doc'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='DOC' + ||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='txt'||e.attachmentUrls[0].substr(e.attachmentUrls[0].length-3,e.attachmentUrls[0].length)=='JPG') */{ + let filename:string let fetchUrl = e.attachmentUrls[0] let docIdWordArray = CryptoJS.enc.Utf8.parse(`PlanPlatform/` + fetchUrl); let docId = CryptoJS.enc.Base64.stringify(docIdWordArray); @@ -340,22 +354,21 @@ export class PassPlanComponent implements OnInit { }) } } - - if(e.planMode == 2){ //如果是在线编辑 - let id = e.id - sessionStorage.setItem("planId",id) - sessionStorage.setItem("companyId",e.companyId) - //sessionStorage.setItem("buildingTypeId",this.unittypeId) - sessionStorage.setItem("editable","0") - sessionStorage.setItem("planName",e.name) - let companyId = sessionStorage.getItem("companyId") - window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`); - } - if(e.planMode == 3){ //如果是跳转网页 - sessionStorage.setItem("url",e.url) - window.open(`/planManagement/webLook`) - } + if(e.planMode == 2){ //如果是在线编辑 + let id = e.id + sessionStorage.setItem("planId",id) + sessionStorage.setItem("companyId",e.companyId) + //sessionStorage.setItem("buildingTypeId",this.unittypeId) + sessionStorage.setItem("editable","0") + sessionStorage.setItem("planName",e.name) + let companyId = sessionStorage.getItem("companyId") + window.open(`/keyUnit/viewunitinfoplan?id=${companyId}`); + } + if(e.planMode == 3){ //如果是跳转网页 + sessionStorage.setItem("url",e.url) + window.open(`/planManagement/webLook`) + } } //预案公开 @@ -434,7 +447,6 @@ export class PassPlanComponent implements OnInit { this.pageEvent.pageIndex = 0 this.PageNumber = 1 this.getAllPlanInfo(); - } } @@ -454,3 +466,16 @@ export class GkPsViewer{ }); } } + + +@Component({ + selector: 'unitInfo', + templateUrl: './unitInfo.html', + styleUrls: ['./pass-plan.component.scss'] +}) +export class UnitInfo{ + constructor(private router:Router,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data: any) {} + ngOnInit(): void { + console.log(this.data) + } +} \ No newline at end of file diff --git a/src/app/plan-management/pass-plan/unitInfo.html b/src/app/plan-management/pass-plan/unitInfo.html new file mode 100644 index 0000000..e69de29 diff --git a/src/app/plan-management/plan-management-routing.module.ts b/src/app/plan-management/plan-management-routing.module.ts index f194d09..4a3d6d8 100644 --- a/src/app/plan-management/plan-management-routing.module.ts +++ b/src/app/plan-management/plan-management-routing.module.ts @@ -18,6 +18,7 @@ import { MeetPlanComponent } from './meet-plan/meet-plan.component'; import { TypePlanComponent } from './type-plan/type-plan.component' import { MaintainUpComponent } from './maintain-up/maintain-up.component' import { from } from 'rxjs'; +import { ReinforcePlanComponent } from './reinforce-plan/reinforce-plan.component'; const routes: Routes = [ { path: 'entryPlan', component: EntryPlanComponent}, @@ -31,6 +32,7 @@ const routes: Routes = [ { path: 'MeetPlan',component:MeetPlanComponent},//应急预案 { path: 'typePlan',component:TypePlanComponent},//类型预案 { path: 'maintainup',component:MaintainUpComponent},//维护更新 + { path: 'reinforceplan',component:ReinforcePlanComponent}//增援预案 ]; @NgModule({ diff --git a/src/app/plan-management/plan-management.module.ts b/src/app/plan-management/plan-management.module.ts index 666913f..a204286 100644 --- a/src/app/plan-management/plan-management.module.ts +++ b/src/app/plan-management/plan-management.module.ts @@ -45,7 +45,7 @@ import {MatTooltipModule} from '@angular/material/tooltip'; import {MatTreeModule} from '@angular/material/tree'; import { EntryPlanComponent } from './entry-plan/entry-plan.component'; -import { PassPlanComponent } from './pass-plan/pass-plan.component'; +import { PassPlanComponent, UnitInfo } from './pass-plan/pass-plan.component'; import { OpenPlanComponent } from './open-plan/open-plan.component'; import { EntryPlanLookComponent, AddPlanone, DownloadFile, AuditResult, ChangeName } from './entry-plan-look/entry-plan-look.component'; import { PlanType, AuditSatus, PlanLevel } from '../pipes/boolean.pipe'; @@ -62,14 +62,15 @@ import { meetAuditResult }from './meet-plan/meet-plan.component'; import { typeAuditResult } from './type-plan/type-plan.component'; import { MaintainUpComponent } from './maintain-up/maintain-up.component' import { GkPsViewer } from './pass-plan/pass-plan.component' -import { GkhtmlPsViewer }from './open-plan/open-plan.component' +import { GkhtmlPsViewer }from './open-plan/open-plan.component'; +import { ReinforcePlanComponent } from './reinforce-plan/reinforce-plan.component' @NgModule({ declarations: [EntryPlanComponent, PassPlanComponent, OpenPlanComponent, EntryPlanLookComponent,AddPlanone,PlanType,AuditSatus,PlanLevel,DownloadFile,AuditResult,ChangeName, WebLookComponent, OnetwoEntryPlanComponent,newunitComponent, MeetPlanComponent,newunitMeet, TypePlanComponent,newunitType,PsViewer,onetwoAuditResult,meetAuditResult, - typeAuditResult, MaintainUpComponent,GkPsViewer,GkhtmlPsViewer], + typeAuditResult, MaintainUpComponent,GkPsViewer,GkhtmlPsViewer,UnitInfo, ReinforcePlanComponent], imports: [ CommonModule, PlanManagementRoutingModule, diff --git a/src/app/plan-management/reinforce-plan/reinforce-plan.component.html b/src/app/plan-management/reinforce-plan/reinforce-plan.component.html new file mode 100644 index 0000000..095adf0 --- /dev/null +++ b/src/app/plan-management/reinforce-plan/reinforce-plan.component.html @@ -0,0 +1,153 @@ +
+
+
+ +
+ + + + +
+ +
+ + + + + 包含下级 +
+
clear
+ + + +
  • {{node.name}}
  • +
    + + +
  • {{node.name}}
  • +
    +
    +
    +
    + +
    + + + + + {{unit.name}} + + + +
    +
    + + + + 卡片预案 + 二维预案 + 三维预案 + 其他预案 + + +
    + +
    + + + + 总队 + 支队 + 大队 + 中队 + + + + 包含下级 +
    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    单位名称{{element.companyName}}预案名称{{element.name}}添加人{{element.creatorName}}预案级别{{element.planCategory==1?'Ⅰ级预案':element.planCategory==2?'Ⅱ级预案': + element.planCategory==3?'Ⅲ级预案':element.planCategory==4?'Ⅳ级预案':element.planCategory==5?'Ⅴ级预案':element.planCategory==8?'类型预案':'应急预案'}}添加时间{{element.creationTime | date:'yyyy-MM-dd'}}预案类型二维预案审核状态{{element.auditStatus | auditsatus}}是否公开{{element.openRange}}编制级别{{element.planLevel | planlevel}}操作 + 查看预案 +
    + + + +
    +
    \ No newline at end of file diff --git a/src/app/plan-management/reinforce-plan/reinforce-plan.component.scss b/src/app/plan-management/reinforce-plan/reinforce-plan.component.scss new file mode 100644 index 0000000..3e7cd43 --- /dev/null +++ b/src/app/plan-management/reinforce-plan/reinforce-plan.component.scss @@ -0,0 +1,215 @@ +.header { + width: 100%; + padding: 12px 10px; + box-sizing: border-box; + .queryBox { + box-sizing: border-box; + padding: 5px 25px 0 25px; + // margin-left: 50px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items:center; + // justify-content:center; + .queryField { + margin: 0 40px; + input { + width: 180px; + height: 22px; + line-height: 22px; + border-radius: 3px;} + } + + } //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); + } + } + + } + } + .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; + +} + +//完整度 +.integrityDiv{ + width: 180px; + height: 30px; + background-color: #e2e7ee; + // background-image: linear-gradient(to right, #e2e7ee ,#FF4500, #FF8C00,#32cd32); + margin: 0 auto; + position: relative; + .integrityNum{ + position: absolute; + left: 50%; + top: 50%; + 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; + } + .span1{ + width: 25%; + } + .span2{ + width: 60%; + } + .span3{ + width: 15%; + } + } + .integrityDetailsBody{ + ul{ + li{ + width: 100%; + height: 23px; + line-height: 23px; + margin: 3px 0; + 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%; + } + } + } + + } + } + .bottomposition{ + top: 2px; + left: 188px; + } + .topposition{ + top: -252px; + left: 188px; + } +} +.integrityDiv:hover{ + .integrityDetails{ + display: block; + } +} \ No newline at end of file diff --git a/src/app/plan-management/reinforce-plan/reinforce-plan.component.spec.ts b/src/app/plan-management/reinforce-plan/reinforce-plan.component.spec.ts new file mode 100644 index 0000000..75d4d07 --- /dev/null +++ b/src/app/plan-management/reinforce-plan/reinforce-plan.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ReinforcePlanComponent } from './reinforce-plan.component'; + +describe('ReinforcePlanComponent', () => { + let component: ReinforcePlanComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ReinforcePlanComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ReinforcePlanComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/plan-management/reinforce-plan/reinforce-plan.component.ts b/src/app/plan-management/reinforce-plan/reinforce-plan.component.ts new file mode 100644 index 0000000..f8ac061 --- /dev/null +++ b/src/app/plan-management/reinforce-plan/reinforce-plan.component.ts @@ -0,0 +1,218 @@ +import { Component, OnInit, ViewChild, Inject } from '@angular/core'; +import { HttpClient } from '@angular/common/http' +import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; +import { MatPaginator } from '@angular/material/paginator'; +import { FlatTreeControl } from '@angular/cdk/tree'; +import { FormControl } from '@angular/forms'; +import { Router,ActivatedRoute } from '@angular/router' +import { PageEvent } from '@angular/material/paginator'; +import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; +import { TreeService } from '../../http-interceptors/tree.service' +import { Viewer } from 'photo-sphere-viewer'; +declare var CryptoJS +@Component({ + selector: 'app-reinforce-plan', + templateUrl: './reinforce-plan.component.html', + styleUrls: ['./reinforce-plan.component.scss'] +}) +export class ReinforcePlanComponent implements OnInit { + + 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 + return { + expandable: !!node.children && node.children.length > 0, + name: node.name, + level: level, + id: node.id, + parentId: node.parentId, + children: node.children + }; + } + treeControl = new FlatTreeControl(node => node.level, node => node.expandable); + treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children); + dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); + myControl = new FormControl(); + hasChild = (_: number, node: any) => node.expandable; + //分页 + @ViewChild(MatPaginator, {static: true}) + pageEvent: PageEvent; + paginator: MatPaginator; + length:any; //共多少条数据 + pageSize:any; //每页条数 + pageSizeOptions: number[] = [10] //设置每页条数 + PageNumber:any; //第几页 + + displayedColumns: string[] = ['unitname','planname', 'addpeople','level','addtime','plantype','auditStatus','openRange','projectlevel','operation']; + allorganizations:any //所有组织机构 + allunittype:any //所有单位类型 + tabledataSource:any //表格数据 + + preparelevels:any + ngOnInit(): void { + this.getunitdata(); + this.getOrganizations(); + this.getUnittype(); + this.getAllPlanInfo(); + let level = sessionStorage.getItem("level"); + if(level == "0"){//如果是总队 + this.preparelevels = [ + {name:"总队",value:"1"}, + {name:"支队",value:"2"}, + {name:"大队",value:"4"}, + {name:"中队",value:"8"} + ] + } + if(level == "1"){//如果是支队 + this.preparelevels = [ + {name:"支队",value:"2"}, + {name:"大队",value:"4"}, + {name:"中队",value:"8"} + ] + } + if(level == "2"){//如果是大队 + this.preparelevels = [ + {name:"大队",value:"4"}, + {name:"中队",value:"8"} + ] + } + if(level == "3"){//如果是中队 + this.preparelevels = [ + {name:"中队",value:"8"} + ] + } + } + + allPlanInfo:any //存储所有预案信息 + //获得所有预案信息 + getAllPlanInfo(){ + let paramsdata:any = { + CompanyName: this.companyName || '', + OrganizationId: this.jsId || '', + HasChildrenOrganization:this.jscheck || '', + BuildingTypeId: this.unittype || '', + PlanType: this.reservePlanType || '', + AuditStatus:'', //审核状态 + PlanLevel: this.preparelevel || '', + HasChildrenPlanLevel: this.plcheck || '', + CreationTimeRangeStart:this.addtime||'', + CreationTimeRangeEnd:this.endtime||'', + PageNumber: this.PageNumber || '1', + PageSize: this.pageSizeOptions[0], + Sort: '' + } + this.http.get("/api/ApprovedPlans/GetReinforcementPlanComponents",{params:paramsdata}).subscribe((data:any)=>{ + console.log('增援预案列表',data) + this.length = data.totalCount + this.allPlanInfo = data + this.tabledataSource = data.items + }) + } + + //得到当前单位信息 + getunitdata(){ + this.http.get("/api/Account/Profiles").subscribe( + (data:any)=>{ + this.organizationName = data.organizationName + } + ) + } + addtime//开始时间 + endtime//结束时间 + integrityScoreMin//完整度最小值 + integrityScoreMax//完整度最大值 + organizationName:any //当前单位组织机构名称 + treedata:any //组织机构树型数据 + newArr:any = [] + newallorganizations:any //用于存储在原始数据基础上的每个机构增加children字段 + //获得所有组织机构 + getOrganizations(){ + this.http.get('/api/Organizations').subscribe( + (data:any)=>{ + this.allorganizations = data + this.dataSource.data = this.tree.toTree(data); + } + ) + } + + //获得所有单位类型 + getUnittype(){ + this.http.get('/api/BuildingTypes/Simple').subscribe( + data=>{ + this.allunittype = data + } + ) + } + //分页事件 + chagePage(e){ + this.PageNumber = e.pageIndex+1 + this.getAllPlanInfo(); + } + + //辖区中队div是否显示 + isorganizationbox:boolean = false + //点击辖区中队树,将选择的辖区中队添加到变量 + add(node) { + this.isorganizationbox = false + this.js = node.name + this.jsId = node.id + } + //关闭辖区中队隐藏框 + closeorganizationbox() { + this.isorganizationbox = false + } + //打开辖区中队隐藏框 + openorganizationbox() { + this.isorganizationbox = true + } + //关闭出现的组织机构div + closediv(){ + this.isorganizationbox = false + } + //查询 + onSubmit (e) { + this.PageNumber = 1 + this.pageEvent.pageIndex = 0 + this.getAllPlanInfo(); + } + companyName:any //单位名称 + js:any //所选组织机构 + jsId:any //所选组织机构的id + jscheck:boolean //所选组织机构勾选框 + unittype:any //单位类型 + reservePlanType:any //预案类型 + preparelevel:any //编制级别 + plcheck:boolean //编制级别勾选框 + //重置 + reset(){ + this.companyName = '' + this.js = '' + this.jsId = '' + this.jscheck = false + this.unittype = '' + this.reservePlanType = '' + this.preparelevel = '' + this.addtime='' + this.endtime='' + this.plcheck = false + //重新获取初始化列表 + this.pageEvent.pageIndex = 0 + this.PageNumber = 1 + this.getAllPlanInfo(); + + } + + //查看预案 + openPlan(e){ + console.log(e) + let id = e.id + sessionStorage.setItem("planId",id) + sessionStorage.setItem("companyId",e.companyId) + //sessionStorage.setItem("buildingTypeId",this.unittypeId) + sessionStorage.setItem("editable","0") + sessionStorage.setItem("planName",e.name) + let companyId = sessionStorage.getItem("companyId") + window.open(`/keyUnit/viewunitinfoplan?id=${companyId}&orName=${e.company.organizationName}&orId=${e.company.organizationId}`); + } +} diff --git a/src/app/ui/collection-tools/collection-tools.component.html b/src/app/ui/collection-tools/collection-tools.component.html index 4b65115..da31ce9 100644 --- a/src/app/ui/collection-tools/collection-tools.component.html +++ b/src/app/ui/collection-tools/collection-tools.component.html @@ -316,7 +316,7 @@

    {{item.PropertyName}}({{item.PhysicalUnit}})

    -
    +
    更换