diff --git a/src/app/plan-audit/plan-record/plan-record.component.html b/src/app/plan-audit/plan-record/plan-record.component.html index 8ee2b14..da065f3 100644 --- a/src/app/plan-audit/plan-record/plan-record.component.html +++ b/src/app/plan-audit/plan-record/plan-record.component.html @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2020-12-25 10:19:31 * @LastEditors: sueRimn - * @LastEditTime: 2021-01-21 10:12:20 + * @LastEditTime: 2021-01-28 13:41:39 -->
@@ -97,7 +97,7 @@
- +
{{item.contentType=='1'?'Ⅰ级预案':item.contentType=='2'?'Ⅱ级预案':item.contentType=='3'?'Ⅲ级预案':item.contentType=='4'?'Ⅳ级预案':item.contentType=='5'? @@ -118,7 +118,7 @@
- + @@ -172,5 +172,8 @@ --> +
+ +
diff --git a/src/app/plan-audit/plan-record/plan-record.component.scss b/src/app/plan-audit/plan-record/plan-record.component.scss index 399b92a..8698bd7 100644 --- a/src/app/plan-audit/plan-record/plan-record.component.scss +++ b/src/app/plan-audit/plan-record/plan-record.component.scss @@ -65,6 +65,17 @@ width: 55%; background-color: #FFFFFF; margin-left: 10px; + .word{ + width: 100%; + height: 100%; + //margin: 10px 10px 0 10px; + iframe{ + height: 94%; + width: 97%; + margin: 30px 10px 10px 10px; + overflow-y: auto; + } + } } } th,td{ diff --git a/src/app/plan-audit/plan-record/plan-record.component.ts b/src/app/plan-audit/plan-record/plan-record.component.ts index 3fc1f35..93550be 100644 --- a/src/app/plan-audit/plan-record/plan-record.component.ts +++ b/src/app/plan-audit/plan-record/plan-record.component.ts @@ -4,12 +4,14 @@ * @Author: sueRimn * @Date: 2020-12-25 10:19:31 * @LastEditors: sueRimn - * @LastEditTime: 2021-01-21 10:15:50 + * @LastEditTime: 2021-01-28 13:40:31 */ 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 { DomSanitizer } from '@angular/platform-browser'; +import CryptoJS from 'crypto-js/crypto-js' @Component({ selector: 'app-plan-record', @@ -18,7 +20,7 @@ import { HttpClient } from '@angular/common/http' }) export class PlanRecordComponent 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"); @@ -52,8 +54,13 @@ export class PlanRecordComponent implements OnInit { ] this.PlanLevel=3 } + this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src); this.getAlltabledate() } + + wordShow=true + iframeSrc + src='' selected = new FormControl(0); //选项卡 实例 preparelevels:any level=''//类型 @@ -109,5 +116,40 @@ export class PlanRecordComponent implements OnInit { } this.getAlltabledate() } + //表格点击事件 + tableClick(e,item){ + //e.target.parentElement.bgColor='#2196F3' + //console.log(e,item) + let filename:string + let fetchUrl + this.http.get(`/api/PlanComponents/${item.itemId}`).subscribe((data:any)=>{ + fetchUrl=data.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.src=`http://121.5.10.84/apps/editor/openPreview?data=${base64}` + this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src); + //window.open(`http://121.5.10.84/apps/editor/openPreview?data=${base64}`) + }) + }) + } } diff --git a/src/app/plan-audit/wait-examineer/wait-examineer.component.html b/src/app/plan-audit/wait-examineer/wait-examineer.component.html index 318d4e5..87f144e 100644 --- a/src/app/plan-audit/wait-examineer/wait-examineer.component.html +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.html @@ -54,7 +54,7 @@
- +
diff --git a/src/app/plan-audit/wait-examineer/wait-examineer.component.ts b/src/app/plan-audit/wait-examineer/wait-examineer.component.ts index e6d4192..847e82d 100644 --- a/src/app/plan-audit/wait-examineer/wait-examineer.component.ts +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.ts @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2020-12-25 16:13:50 * @LastEditors: sueRimn - * @LastEditTime: 2021-01-28 11:13:01 + * @LastEditTime: 2021-01-28 11:30:48 */ import { Component, OnInit } from '@angular/core'; import { FormControl } from '@angular/forms'; @@ -146,7 +146,9 @@ export class WaitExamineerComponent implements OnInit { //e.target.parentElement.bgColor='#2196F3' console.log(e,item) let filename:string - let fetchUrl=item.attachmentUrls[0] + let fetchUrl + this.http.get(`/api/PlanComponents/${item.itemId}`).subscribe((data:any)=>{ + fetchUrl=data.attachmentUrls[0] this.http.get(`/api/ObjectMetadata/PlanPlatform/${fetchUrl}`).subscribe((data:any)=>{ filename=data.fileName let json={ @@ -168,10 +170,12 @@ export class WaitExamineerComponent implements OnInit { 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) + this.src=`http://121.5.10.84/apps/editor/openPreview?data=${base64}` + this.iframeSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.src); //window.open(`http://121.5.10.84/apps/editor/openPreview?data=${base64}`) }) + }) + if(e.checked){ this.shenheTable.push(item) } diff --git a/src/app/plan-management/maintain-up/maintain-up.component.html b/src/app/plan-management/maintain-up/maintain-up.component.html new file mode 100644 index 0000000..b31cff8 --- /dev/null +++ b/src/app/plan-management/maintain-up/maintain-up.component.html @@ -0,0 +1,153 @@ +
+
+
+
+ +
+ + + + +
+ +
+ + + + + 包含下级 +
+
clear
+ + + +
  • {{node.name}}
  • +
    + + +
  • {{node.name}}
  • +
    +
    +
    +
    + +
    + + + + + {{unit.name}} + + + +
    +
    + + + + + +
    +
    + + + + 未提交审核 + 审核中 + 审核通过 + 审核退回 + + +
    +
    + + + + + 🠊 + + + +
    + +
    + + + + 从高到低 + 从低到高 + + +
    + +
    +
    + + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    单位名称{{element.company.name}}信息完整度消防救援站单位类型统一社会信用代码录入时间审核状态操作
    + + + + +
    +
    +
    \ No newline at end of file diff --git a/src/app/plan-management/maintain-up/maintain-up.component.scss b/src/app/plan-management/maintain-up/maintain-up.component.scss new file mode 100644 index 0000000..1c435e5 --- /dev/null +++ b/src/app/plan-management/maintain-up/maintain-up.component.scss @@ -0,0 +1,256 @@ +.header { + width: 100%; + padding: 12px 10px; + // margin-bottom: 10px; + box-sizing: border-box; + // border-bottom: 1px solid black; + .queryBox { + box-sizing: border-box; + padding: 5px 25px 0 25px; + 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; + background-color: #fafafa; + li{ + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + background-color: #fafafa; + } + mat-tree-node{ + cursor: pointer; + white-space:pre; + background-color: #fafafa; + } + mat-tree-node:hover{ + background: rgba(225, 225, 225, 0.8); + li{ + 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); + } + } + + } + } + .newadd{ + margin-top: 12px; + margin-left: 70px; + display: flex; + button{ + font-size: 16px; + width: 100px; + height: 36px; + } +} + .body{ + .buttonbox{ + padding-left: 50px; + button{ + margin:0 10px + } + } + .tablebox{ + table{ + width: 100%; + margin-left: 0%; + margin-top:15px; + } + mat-paginator{ + width: 100%; + margin-left: 0%; + } + .mat-column-unitname{ + width: 15%; + } + .mat-column-integrity{ + width: 13%; + } + .mat-column-operation{ + width: 5%; + } + .mat-column-jurisdictionsquadron{ + width: 10%; + } + } + } + + .mat-header-cell{ + text-align: center; + } + .mat-cell{ + text-align: center; + span{ + // color:red; + // margin: 0 3px; + cursor: pointer; + } + span:hover{ + text-decoration:underline + } + .grey{ + color: grey; + pointer-events: none; + } + } + + //完整度 + .integrityDiv{ + width: 70%; + 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/maintain-up/maintain-up.component.spec.ts b/src/app/plan-management/maintain-up/maintain-up.component.spec.ts new file mode 100644 index 0000000..fcd7853 --- /dev/null +++ b/src/app/plan-management/maintain-up/maintain-up.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MaintainUpComponent } from './maintain-up.component'; + +describe('MaintainUpComponent', () => { + let component: MaintainUpComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ MaintainUpComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(MaintainUpComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/plan-management/maintain-up/maintain-up.component.ts b/src/app/plan-management/maintain-up/maintain-up.component.ts new file mode 100644 index 0000000..5bc64c0 --- /dev/null +++ b/src/app/plan-management/maintain-up/maintain-up.component.ts @@ -0,0 +1,184 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2021-01-28 14:13:20 + * @LastEditors: sueRimn + * @LastEditTime: 2021-01-28 14:53:18 + */ +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 { ConstantPool } from '@angular/compiler'; + +@Component({ + selector: 'app-maintain-up', + templateUrl: './maintain-up.component.html', + styleUrls: ['./maintain-up.component.scss'] +}) +export class MaintainUpComponent implements OnInit { + + constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } + + ngOnInit(): void { + this.getunitdata(); + this.getOrganizations(); + this.getUnittype(); + 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"} + ] + } + } + + 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; //第几页 + + organizationName:any //当前单位组织机构名称 + preparelevels:any + integritySort:any //完整度排序 + haveyuan//有无预案 + companyName:any //单位名称 + js:any //所选组织机构 + jsId:any //所选组织机构的id + jscheck:boolean //所选组织机构勾选框 + unittype:any //单位类型 + reservePlanType:any //预案类型 + toExamine:any //审核状态 + preparelevel:any //编制级别 + plcheck:boolean //编制级别勾选框 + //得到当前单位信息 + getunitdata(){ + this.http.get("/api/Account/Profiles").subscribe( + (data:any)=>{ + this.organizationName = data.organizationName + } + ) + } + treedata:any //组织机构树型数据 + newArr:any = [] + newallorganizations:any //用于存储在原始数据基础上的每个机构增加children字段 + //得到当前单位所在组织机构的tree型数据 + getpresentOrganization(){ + this.newallorganizations = this.allorganizations + + this.newallorganizations.forEach(item => { + item.children = [] + this.newallorganizations.forEach(element => { + if(element.parentId == item.id){ + item.children.push(element) + } + }); + }); + this.http.get("/api/Account/Profiles").subscribe( + (data:any)=>{ + this.organizationName = data.organizationName + if(this.organizationName){ + this.newallorganizations.forEach(item => { + if(item.name == this.organizationName){ + this.dataSource.data = [item] + } + }); + }else{ + this.dataSource.data = this.tree.toTree(this.treedata); + } + } + ) + + + } + //获得所有组织机构 + getOrganizations(){ + this.http.get('/api/Organizations').subscribe( + (data:any)=>{ + this.allorganizations = data + this.treedata = this.tree.toTree(data); + this.getpresentOrganization(); + } + ) + } + //获得所有单位类型 + getUnittype(){ + this.http.get('/api/BuildingTypes/Simple').subscribe( + data=>{ + this.allunittype = data + } + ) + } + //辖区中队div是否显示 + isorganizationbox:boolean = false + //点击辖区中队树,将选择的辖区中队添加到变量 + add(node) { + this.isorganizationbox = false + this.js = node.name + this.jsId = node.id + } + //打开辖区中队隐藏框 + openorganizationbox() { + this.isorganizationbox = true + } + //关闭出现的组织机构div + closediv(){ + this.isorganizationbox = false + } + + + + displayedColumns: string[] = ['unitname','integrity','jurisdictionsquadron', 'unittype','plantype', 'time','passstate','operation']; + allunittype:any //所有单位类型 + allorganizations:any //所有组织机构 + addtime + endtime + +} diff --git a/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.ts b/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.ts index 4636996..8922a76 100644 --- a/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.ts +++ b/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-27 15:39:35 + * @LastEditTime: 2021-01-28 14:07:24 */ import { Component, OnInit, ViewChild, Inject } from '@angular/core'; import { HttpClient } from '@angular/common/http' @@ -227,7 +227,7 @@ export class OnetwoEntryPlanComponent implements OnInit { addunit(){ const dialogRef = this.dialog.open(newunitComponent, { width: '340px', - height:'400px', + height:'410px', disableClose:true //data: paperDataInfo }); diff --git a/src/app/plan-management/plan-management-routing.module.ts b/src/app/plan-management/plan-management-routing.module.ts index bbcc1f8..f194d09 100644 --- a/src/app/plan-management/plan-management-routing.module.ts +++ b/src/app/plan-management/plan-management-routing.module.ts @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2020-12-24 10:59:48 * @LastEditors: sueRimn - * @LastEditTime: 2021-01-06 09:57:07 + * @LastEditTime: 2021-01-28 14:17:50 */ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; @@ -16,6 +16,8 @@ import { WebLookComponent } from './web-look/web-look.component'; import {OnetwoEntryPlanComponent} from './onetwo-entry-plan/onetwo-entry-plan.component'; 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'; const routes: Routes = [ { path: 'entryPlan', component: EntryPlanComponent}, @@ -28,6 +30,7 @@ const routes: Routes = [ { path: 'OnetwoEntryPlan2', component: OnetwoEntryPlanComponent},//二级预案录入 { path: 'MeetPlan',component:MeetPlanComponent},//应急预案 { path: 'typePlan',component:TypePlanComponent},//类型预案 + { path: 'maintainup',component:MaintainUpComponent},//维护更新 ]; @NgModule({ diff --git a/src/app/plan-management/plan-management.module.ts b/src/app/plan-management/plan-management.module.ts index 0cadd06..1728891 100644 --- a/src/app/plan-management/plan-management.module.ts +++ b/src/app/plan-management/plan-management.module.ts @@ -59,13 +59,14 @@ import { newunitType }from './type-plan/type-plan.component'; import { PsViewer } from './entry-plan-look/entry-plan-look.component' import { onetwoAuditResult } from './onetwo-entry-plan/onetwo-entry-plan.component'; import { meetAuditResult }from './meet-plan/meet-plan.component'; -import { typeAuditResult } from './type-plan/type-plan.component' +import { typeAuditResult } from './type-plan/type-plan.component'; +import { MaintainUpComponent } from './maintain-up/maintain-up.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], + WebLookComponent, OnetwoEntryPlanComponent,newunitComponent, MeetPlanComponent,newunitMeet, TypePlanComponent,newunitType,PsViewer,onetwoAuditResult,meetAuditResult,typeAuditResult, MaintainUpComponent], imports: [ CommonModule, PlanManagementRoutingModule,