From 1efe1691719e7252a97d367507fd689091493fbf Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Sat, 20 Mar 2021 09:12:53 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E5=AE=8C=E6=88=90=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=E6=9B=B4=E6=96=B0=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/interface.ts | 3 +- .../edit-plan-info.component.html | 1 + .../edit-plan-info.component.scss | 2 +- .../key-unit-management.component.ts | 1 + src/app/pipes/boolean.pipe.ts | 15 + .../maintain-up/maintain-up.component.html | 416 ++++++++---- .../maintain-up/maintain-up.component.scss | 398 +++++------ .../maintain-up/maintain-up.component.ts | 628 ++++++++++++++++-- .../plan-management/plan-management.module.ts | 4 +- src/app/tabbar/tabbar.component.html | 13 + src/app/tabbar/tabbar.component.scss | 9 +- src/app/tabbar/tabbar.component.ts | 46 +- 12 files changed, 1135 insertions(+), 401 deletions(-) diff --git a/src/app/interface.ts b/src/app/interface.ts index dd3ef79..dceab4e 100644 --- a/src/app/interface.ts +++ b/src/app/interface.ts @@ -80,4 +80,5 @@ export enum PlanLevelEnum { "编制级别6", "编制级别7", "中队" -} \ No newline at end of file +} + diff --git a/src/app/key-unit/edit-plan-info/edit-plan-info.component.html b/src/app/key-unit/edit-plan-info/edit-plan-info.component.html index 2db1b5a..245a209 100644 --- a/src/app/key-unit/edit-plan-info/edit-plan-info.component.html +++ b/src/app/key-unit/edit-plan-info/edit-plan-info.component.html @@ -8,6 +8,7 @@ + diff --git a/src/app/key-unit/edit-plan-info/edit-plan-info.component.scss b/src/app/key-unit/edit-plan-info/edit-plan-info.component.scss index 01a9116..e411244 100644 --- a/src/app/key-unit/edit-plan-info/edit-plan-info.component.scss +++ b/src/app/key-unit/edit-plan-info/edit-plan-info.component.scss @@ -14,4 +14,4 @@ z-index: 111; color: red; } -} \ No newline at end of file +} diff --git a/src/app/key-unit/key-unit-management/key-unit-management.component.ts b/src/app/key-unit/key-unit-management/key-unit-management.component.ts index e0659d1..9ecac40 100644 --- a/src/app/key-unit/key-unit-management/key-unit-management.component.ts +++ b/src/app/key-unit/key-unit-management/key-unit-management.component.ts @@ -349,6 +349,7 @@ export class KeyUnitManagementComponent implements OnInit { PageSize: this.pageSizeOptions[0], Sort: this.integritySort ? 'integrityscore' : '', SortType: this.integritySort || '', + IsNewData:true, IntegrityScoreMin:this.integrityScoreMin/100||0, IntegrityScoreMax:this.integrityScoreMax/100||1 } diff --git a/src/app/pipes/boolean.pipe.ts b/src/app/pipes/boolean.pipe.ts index 56b7930..78ae821 100644 --- a/src/app/pipes/boolean.pipe.ts +++ b/src/app/pipes/boolean.pipe.ts @@ -29,4 +29,19 @@ export class PlanLevel implements PipeTransform { transform(value: number): string { return PlanLevelEnum[value] } +} + +@Pipe({name: 'state'}) +export class state implements PipeTransform { + transform(value: number): string { + if(value == 3){ + return '维护中' + }else if(value == 4){ + return '维护通过审核' + }else if(value == 5){ + return '维护驳回审核' + }else{ + return '未维护' + } + } } \ No newline at end of file diff --git a/src/app/plan-management/maintain-up/maintain-up.component.html b/src/app/plan-management/maintain-up/maintain-up.component.html index b31cff8..d07abdd 100644 --- a/src/app/plan-management/maintain-up/maintain-up.component.html +++ b/src/app/plan-management/maintain-up/maintain-up.component.html @@ -1,88 +1,68 @@ -
-
-
+
+ \ 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 index 1c435e5..ef26154 100644 --- a/src/app/plan-management/maintain-up/maintain-up.component.scss +++ b/src/app/plan-management/maintain-up/maintain-up.component.scss @@ -1,3 +1,6 @@ + + + .header { width: 100%; padding: 12px 10px; @@ -6,14 +9,14 @@ // border-bottom: 1px solid black; .queryBox { box-sizing: border-box; - padding: 5px 25px 0 25px; + padding: 5px 25px; display: flex; flex-direction: row; flex-wrap: wrap; align-items:center; // justify-content:center; .queryField { - margin: 0 40px; + margin: 3px 40px; input { width: 180px; height: 22px; @@ -22,12 +25,6 @@ } } //queryBox - .butclass{ - button{ - width: 80px;height: 36px; - font-size: 16px; - } - } .ordiv{ position: relative; @@ -41,23 +38,17 @@ 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; @@ -74,183 +65,210 @@ background:rgba(225, 225, 225, 0.8); } } - + + } +} + +.body{ + .buttonbox{ + margin-top: 15px; + padding-left: 15px; + button{ + margin:0 10px + } } - } - .newadd{ - margin-top: 12px; - margin-left: 70px; - display: flex; - button{ - font-size: 16px; - width: 100px; - height: 36px; + .tablebox{ + table{ + width: 100%; + margin-top: 15px; + } + mat-paginator{ + width: 100%; + // margin-top: 30px; + } + .editUnitName{ + width: 13px; + height: 13px; + font-size: 18px; + vertical-align: sub; + cursor: pointer; + } + .editUnitName:hover{ + color: red; + } } } - .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; + + +.leftbox{ + width: 250px; + float: left; + .btn{ + button{ + margin: 0 6px; + } + } +} +.treebox{ + float: left; + width: 325px; + height: 350px; + overflow: auto; + .organizationlist{ + list-style: none } - } \ No newline at end of file + .organizationlist:hover{ + background: rgba(225, 225, 225, 0.8); + cursor: pointer; + } +} +.mat-header-cell{ + text-align: center; +} +.mat-cell{ + text-align: center; +} +.operation{ + span{ + color: blue; + cursor: pointer; + margin: 0 3px; + } +} + +//完整度 +.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; + } +} +.fail{ + // background : #FF4500; + // background-image: linear-gradient(to right, #e2e7ee , #FF4500); +} +.pass{ + // background : #FF8C00; + // background-image: linear-gradient(to right, #e2e7ee , #FF8C00); +} +.excellent{ + // background : #32cd32; + // background-image: linear-gradient(to right, #e2e7ee ,#FF4500, #FF8C00,#32cd32); +} + +//审核结果 +.auditDiv{ + p{ + margin: 8px 0; + margin-left: 16px; + } +} \ No newline at end of file diff --git a/src/app/plan-management/maintain-up/maintain-up.component.ts b/src/app/plan-management/maintain-up/maintain-up.component.ts index 5bc64c0..44ea1e1 100644 --- a/src/app/plan-management/maintain-up/maintain-up.component.ts +++ b/src/app/plan-management/maintain-up/maintain-up.component.ts @@ -1,12 +1,4 @@ -/* - * @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 { 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'; @@ -17,7 +9,8 @@ import { PageEvent } from '@angular/material/paginator'; import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; import { TreeService } from '../../http-interceptors/tree.service' -import { ConstantPool } from '@angular/compiler'; +import { MatSort } from '@angular/material/sort'; +import { MatTableDataSource } from '@angular/material/table'; @Component({ selector: 'app-maintain-up', @@ -27,40 +20,7 @@ import { ConstantPool } from '@angular/compiler'; 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, @@ -76,6 +36,11 @@ export class MaintainUpComponent implements OnInit { dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); myControl = new FormControl(); hasChild = (_: number, node: any) => node.expandable; + + @ViewChild(MatSort) sort: MatSort; + + allunittype:any //获取所有的单位类型 + //分页 @ViewChild(MatPaginator, {static: true}) pageEvent: PageEvent; @@ -83,21 +48,324 @@ export class MaintainUpComponent implements OnInit { length:any; //共多少条数据 pageSize:any; //每页条数 pageSizeOptions: number[] = [10] //设置每页条数 - PageNumber:any; //第几页 + PageNumber:any //第几页 + + displayedColumns: string[] = ['checked','Follow','unitname','integrity','jurisdictionsquadron', 'unittype','scc', 'time','state','operation']; + tabledataSource:any + allorganizations:any + oldDataSource:any; //原始表格数据 + integrityScoreMin//下界 + integrityScoreMax//上界 + //表头排序 + sortData (e) { + let data = this.tabledataSource.filteredData; + console.log(data.filteredData) + // data.filteredData.forEach(element => { + // if(element.key.indexOf(".") != -1){ + // let typeArr = element.key.split('.') + // element.type = typeArr[typeArr.length - 1] + // element.newTime = new Date(element.lastModified).getTime() + // } + + // }); - 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 //编制级别勾选框 + if( e.direction=='asc' ) { //从小到大排序 + data.sort( function(a,b) { + return a.newTime - b.newTime + } ) + this.tabledataSource = new MatTableDataSource(data); + } else if ( e.direction=='desc' ) {//从大到小排序 + data.sort( function(a,b) { + return b.newTime - a.newTime + } ) + this.tabledataSource = new MatTableDataSource(data); + } else { //原始数据 + this.tabledataSource = new MatTableDataSource(this.oldDataSource); + } + } + + colorRgb(sColor){ + var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; + var sColor = sColor.toLowerCase(); + if (sColor && reg.test(sColor)) { + if (sColor.length === 4) { + var sColorNew = "#"; + for (var i = 1; i < 4; 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; + } else { + return sColor; + } + } + colorHex(rgb){ + var _this = rgb; + var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; + if (/^(rgb|RGB)/.test(_this)) { + var aColor = _this.replace(/(?:(|)|rgb|RGB)*/g, "").split(","); + var strHex = "#"; + for (var i = 0; i < aColor.length; i++) { + var hex:any = Number(aColor[i]).toString(16); + hex = hex < 10 ? 0 + '' + hex : hex;// 保证每个rgb的值为2位 + if (hex === "0") { + hex += hex; + } + strHex += hex; + } + if (strHex.length !== 7) { + strHex = _this; + } + return strHex; + } else if (reg.test(_this)) { + var aNum = _this.replace(/#/, "").split(""); + if (aNum.length === 6) { + return _this; + } else if (aNum.length === 3) { + var numHex = "#"; + for (var i = 0; i < aNum.length; i += 1) { + numHex += (aNum[i] + aNum[i]); + } + return numHex; + } + } else { + return _this; + } + } + gradientColor(startColor, endColor, step) { + let _this = this + let startRGB = _this.colorRgb(startColor);//转换为rgb数组模式 + let startR = startRGB[0]; + let startG = startRGB[1]; + let startB = startRGB[2]; + + let endRGB = _this.colorRgb(endColor); + let endR = endRGB[0]; + let endG = endRGB[1]; + let endB = endRGB[2]; + + let sR = (endR - startR) / step;//总差值 + let sG = (endG - startG) / step; + let sB = (endB - startB) / step; + + var colorArr = []; + for (var i = 0; i < step; i++) { + //计算每一步的hex值 + var hex = _this.colorHex('rgb('+ parseInt((sR * i + startR))+ ',' + parseInt((sG * i + startG))+ ',' + parseInt((sB * i + startB)) + ')'); + colorArr.push(hex); + } + return colorArr; +} + integrity(width){ + let _this = this + + let style:any = {} + style.width = width +'%'; + if(width < 30){ + let colorArr = this.gradientColor('#D50000', '#E53935', 30); + for(let i = 0; i < 30; i++){ + if( i == width){ + style.background = colorArr[i] + } + } + } + if(width >= 30 && width < 60){ + let colorArr = this.gradientColor('#FF9800', '#E65100', 30); + for(let i = 30; i < 60; i++){ + if( i == width){ + style.background = colorArr[i-30] + } + } + } + if(width >= 60){ + let colorArr = this.gradientColor('#81C784', '#2E7D32', 41); + for(let i = 60; i <= 100; i++){ + if( i == width){ + style.background = colorArr[i-60] + } + } + } + return style + } + integrityDetails(width,zong){ + let style:any = {} + style.width = (width/zong)*100 +'%'; + return style + } + //分页事件 + chagePage(e){ + this.PageNumber = e.pageIndex+1 + this.getAllKeyUnit(); + } + ngOnInit(): void { + this.getunitdata(); + this.getOrganizations(); + this.getUnittype(); + this.getAllKeyUnit(); + } + //获得所有重点单位 + + wanzhengduArr = [ + {id:0,zong:94,details:[ + {name:'单位信息',score:5,totalpoints:5}, + {name:'建筑信息',score:8,totalpoints:10}, + {name:'平面图',score:8,totalpoints:10}, + {name:'四周毗邻',score:25,totalpoints:25}, + {name:'消防设施',score:10,totalpoints:10}, + {name:'重点部位',score:10,totalpoints:10}, + {name:'功能分区',score:8,totalpoints:10}, + {name:'实景图',score:10,totalpoints:10}, + {name:'CAD上传',score:10,totalpoints:10}, + ]}, + {id:1,zong:82,details:[ + {name:'单位信息',score:5,totalpoints:5}, + {name:'建筑信息',score:8,totalpoints:10}, + {name:'平面图',score:8,totalpoints:10}, + {name:'四周毗邻',score:25,totalpoints:25}, + {name:'消防设施',score:8,totalpoints:10}, + {name:'重点部位',score:8,totalpoints:10}, + {name:'功能分区',score:6,totalpoints:10}, + {name:'实景图',score:8,totalpoints:10}, + {name:'CAD上传',score:6,totalpoints:10}, + ]}, + {id:2,zong:72,details:[ + {name:'单位信息',score:3,totalpoints:5}, + {name:'建筑信息',score:5,totalpoints:10}, + {name:'平面图',score:8,totalpoints:10}, + {name:'四周毗邻',score:22,totalpoints:25}, + {name:'消防设施',score:7,totalpoints:10}, + {name:'重点部位',score:7,totalpoints:10}, + {name:'功能分区',score:6,totalpoints:10}, + {name:'实景图',score:8,totalpoints:10}, + {name:'CAD上传',score:6,totalpoints:10}, + ]}, + {id:3,zong:61,details:[ + {name:'单位信息',score:3,totalpoints:5}, + {name:'建筑信息',score:5,totalpoints:10}, + {name:'平面图',score:7,totalpoints:10}, + {name:'四周毗邻',score:18,totalpoints:25}, + {name:'消防设施',score:5,totalpoints:10}, + {name:'重点部位',score:3,totalpoints:10}, + {name:'功能分区',score:5,totalpoints:10}, + {name:'实景图',score:8,totalpoints:10}, + {name:'CAD上传',score:6,totalpoints:10}, + ]}, + {id:4,zong:60,details:[ + {name:'单位信息',score:3,totalpoints:5}, + {name:'建筑信息',score:5,totalpoints:10}, + {name:'平面图',score:6,totalpoints:10}, + {name:'四周毗邻',score:18,totalpoints:25}, + {name:'消防设施',score:5,totalpoints:10}, + {name:'重点部位',score:3,totalpoints:10}, + {name:'功能分区',score:5,totalpoints:10}, + {name:'实景图',score:8,totalpoints:10}, + {name:'CAD上传',score:6,totalpoints:10}, + ]}, + {id:5,zong:53,details:[ + {name:'单位信息',score:5,totalpoints:5}, + {name:'建筑信息',score:5,totalpoints:10}, + {name:'平面图',score:5,totalpoints:10}, + {name:'四周毗邻',score:10,totalpoints:25}, + {name:'消防设施',score:5,totalpoints:10}, + {name:'重点部位',score:5,totalpoints:10}, + {name:'功能分区',score:5,totalpoints:10}, + {name:'实景图',score:7,totalpoints:10}, + {name:'CAD上传',score:6,totalpoints:10}, + ]}, + {id:6,zong:45,details:[ + {name:'单位信息',score:3,totalpoints:5}, + {name:'建筑信息',score:5,totalpoints:10}, + {name:'平面图',score:5,totalpoints:10}, + {name:'四周毗邻',score:15,totalpoints:25}, + {name:'消防设施',score:5,totalpoints:10}, + {name:'重点部位',score:5,totalpoints:10}, + {name:'功能分区',score:3,totalpoints:10}, + {name:'实景图',score:5,totalpoints:10}, + {name:'CAD上传',score:4,totalpoints:10}, + ]}, + {id:7,zong:30,details:[ + {name:'单位信息',score:3,totalpoints:5}, + {name:'建筑信息',score:0,totalpoints:10}, + {name:'平面图',score:4,totalpoints:10}, + {name:'四周毗邻',score:2,totalpoints:25}, + {name:'消防设施',score:5,totalpoints:10}, + {name:'重点部位',score:5,totalpoints:10}, + {name:'功能分区',score:2,totalpoints:10}, + {name:'实景图',score:6,totalpoints:10}, + {name:'CAD上传',score:3,totalpoints:10}, + ]}, + {id:8,zong:20,details:[ + {name:'单位信息',score:3,totalpoints:5}, + {name:'建筑信息',score:2,totalpoints:10}, + {name:'平面图',score:0,totalpoints:10}, + {name:'四周毗邻',score:3,totalpoints:25}, + {name:'消防设施',score:3,totalpoints:10}, + {name:'重点部位',score:3,totalpoints:10}, + {name:'功能分区',score:3,totalpoints:10}, + {name:'实景图',score:2,totalpoints:10}, + {name:'CAD上传',score:1,totalpoints:10}, + ]}, + {id:9,zong:13,details:[ + {name:'单位信息',score:5,totalpoints:5}, + {name:'建筑信息',score:3,totalpoints:10}, + {name:'平面图',score:0,totalpoints:10}, + {name:'四周毗邻',score:2,totalpoints:25}, + {name:'消防设施',score:0,totalpoints:10}, + {name:'重点部位',score:3,totalpoints:10}, + {name:'功能分区',score:0,totalpoints:10}, + {name:'实景图',score:0,totalpoints:10}, + {name:'CAD上传',score:0,totalpoints:10}, + ]} + ] + + allKeyUnitInfo:any //所有的重点单位 + getAllKeyUnit(){ + // console.log(Boolean(Number(this.follow))) + let follow + if(this.follow == ''){ + follow = '' + } + if(this.follow == '0'){ + follow = false + } + if(this.follow == '1'){ + follow = true + } + + let paramsdata:any = { + Name: this.companyName || '', + OrganizationId: this.jsId || '', + HasChildren:this.jscheck || '', + USCI:this.shehui || '', + IsFollowed: follow, + BuildingTypeId: this.unittype || '', + PageNumber: this.PageNumber || '1', + PageSize: this.pageSizeOptions[0], + Sort: this.integritySort ? 'integrityscore' : '', + SortType: this.integritySort || '', + IsNewData : false, + IntegrityScoreMin:this.integrityScoreMin/100||0, + IntegrityScoreMax:this.integrityScoreMax/100||1 + } + this.http.get("/api/Companies",{params:paramsdata}).subscribe((data:any)=>{ + this.length = data.totalCount + this.allKeyUnitInfo = data + // data.items.sort( (a,b) => { + // return a.usci - b.usci + // }) + data.items.forEach( (item,index) => { + item.integrity = this.wanzhengduArr[index] + }) + //console.log(789,data.items) + this.tabledataSource = new MatTableDataSource(data.items); + }) + } //得到当前单位信息 getunitdata(){ this.http.get("/api/Account/Profiles").subscribe( @@ -106,13 +374,14 @@ export class MaintainUpComponent implements OnInit { } ) } + organizationName:any //当前单位组织机构名称 treedata:any //组织机构树型数据 newArr:any = [] newallorganizations:any //用于存储在原始数据基础上的每个机构增加children字段 + newallorganizations2:any //得到当前单位所在组织机构的tree型数据 getpresentOrganization(){ this.newallorganizations = this.allorganizations - this.newallorganizations.forEach(item => { item.children = [] this.newallorganizations.forEach(element => { @@ -128,15 +397,16 @@ export class MaintainUpComponent implements OnInit { this.newallorganizations.forEach(item => { if(item.name == this.organizationName){ this.dataSource.data = [item] + this.newallorganizations2 = [item] } }); }else{ - this.dataSource.data = this.tree.toTree(this.treedata); + this.newallorganizations2 = this.treedata + this.dataSource.data = this.treedata } } ) - } //获得所有组织机构 getOrganizations(){ @@ -148,6 +418,7 @@ export class MaintainUpComponent implements OnInit { } ) } + //获得所有单位类型 getUnittype(){ this.http.get('/api/BuildingTypes/Simple').subscribe( @@ -156,6 +427,230 @@ export class MaintainUpComponent implements OnInit { } ) } + selectedunitArr:any =[] //选中单位的数组 + //勾选框事件 + verifyState //判断是否可以修改 + checkChange(e,element){ + console.log(element) + if(element.contentVerify!=null){ + this.verifyState=element.contentVerify.verifyState + }else{ + this.verifyState=null + } + element.checked = e.checked + + } + checkClick(element){ + if(element.contentVerify!=null){ + if(element.contentVerify.verifyState==0||element.contentVerify.verifyState==3){ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('该单位正在审核不能选中','确定',config); + } + + } + } + //编辑单位信息 + editunit(){ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + let selectedunitArr = [] + let selectedunitobj = [] + this.allKeyUnitInfo.items.forEach(item => { + if(item.checked){ + selectedunitArr.push(item.id) + selectedunitobj.push(item) + } + }); + + if(selectedunitArr.length == 0){ + this.snackBar.open('请先选择要修改的单位','确定',config); + } + if(selectedunitArr.length != 1 && selectedunitArr.length != 0){ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('只能选择一个单位修改','确定',config); + } + if(selectedunitArr.length == 1){ //带着id跳到修改页面 + this.allKeyUnitInfo.items.forEach(item => { + if(item.id == selectedunitArr[0]){ + let companyName = item.name + sessionStorage.setItem("companyName",companyName) + sessionStorage.setItem("companyId",item.id) + } + }); + sessionStorage.setItem("editable","1") + sessionStorage.setItem(selectedunitobj[0].id,JSON.stringify(selectedunitobj[0].companyIntegrityScore)) + window.open(`/keyUnit/editplaninfo?id=${selectedunitArr[0]}&usci=${selectedunitobj[0].usci}`); + } + } + //关注重点单位 + Follow(element){ + // console.log(element) + this.http.put(`/api/Companies/${element.id}/Follow`,'').subscribe(data=>{ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('关注成功','确定',config); + this.getAllKeyUnit(); + + }) + } + //取消关注 + unFollow(element){ + // console.log(element) + this.http.put(`/api/Companies/${element.id}/Unfollow`,'').subscribe(data=>{ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('取消成功','确定',config); + this.getAllKeyUnit(); + }) + } + //删除单位信息 + deleteunit(){ + if(this.verifyState==0||this.verifyState==3){ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('审核中,不能删除','确定',config); + }else{ + let selectedunitArr = [] + this.allKeyUnitInfo.items.forEach(item => { + if(item.checked){ + selectedunitArr.push(item.id) + } + }); + + if(selectedunitArr.length == 0){ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('请先选择要删除的单位','确定',config); + } + if(selectedunitArr.length != 1 && selectedunitArr.length != 0){ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('只能选择一个单位删除','确定',config); + } + if(selectedunitArr.length == 1){ //带着id跳到删除页面 + let isTrue = confirm('您确定要删除吗') + if(isTrue){ + console.log(selectedunitArr) + let body = { + // title: item.name, + operation: 2,//删除操作方式 + contentType: 11,//重点单位 + itemId: selectedunitArr[0], + verifyState: 3, + } + this.http.post('/api/ContentVerifies',body).subscribe((data) => { + let config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open('删除审核提交成功','确定',config); + // this.addWaterListData.items.forEach(element => { + // if(element.id == selectedunitArr[0]){ + // element.contentVerify = data + // } + // }); + this.getAllKeyUnit() + }) + } + + } + } + + } + //基本信息维护 + openBasicWeb(element){ + sessionStorage.setItem("companyName",element.name) + sessionStorage.setItem("companyId",element.id) + sessionStorage.setItem("editable","1") + sessionStorage.setItem(element.id,JSON.stringify(element.companyIntegrityScore)) + sessionStorage.setItem('contentVerify',JSON.stringify(element.contentVerify)) + window.open(`/keyUnit/editplaninfo?id=${element.id}&usci=${element.usci}&isUpdates=1`); + } + //预案维护 + level + operation + openPlanWeb(element){ + this.level = sessionStorage.getItem("level"); + this.level=='0'?this.operation=false:this.operation=true + sessionStorage.setItem("companyName",element.name) + window.open(`/planManagement/entryPlandetail?unitId=${element.id}&unitTypeId=${element.buildingTypes.length == 0 ? null :element.buildingTypes[0].id}&operation=${this.operation}&pagetype=entryplan&unitName=${element.name}&orName=${element.organizationName}&orId=${element.organizationId}&unitType=${element.buildingTypes.length == 0 ? null :element.buildingTypes[0].name}&unitAdd=${element.address}&usci=${element.usci}`); + } + //重置 + js:any //辖区中队输入框 + jsId:any //辖区中队选择的id + companyName:any //单位名称 + shehui:any //统一社会信用代码 + unittype:any //单位类型 + jscheck:any //辖区中队包含下级 + OrganizationId // + follow:any = '' //是否为关注单位 + integritySort:any //完整度排序 + reset(){ + this.js='' //辖区中队输入框 + this.jscheck='' //辖区中队包含下级 + this.companyName='' //单位名称 + this.shehui='' //统一社会信用代码 + this.unittype='' //单位类型 + this.jsId = '' + this.follow = '' + this.PageNumber = 1 + this.pageEvent.pageIndex = 0 + this.integritySort = '' + this.integrityScoreMax=undefined + this.integrityScoreMin=undefined + this.getAllKeyUnit(); + } + //编辑单位名称 + editUnitName(element){ + // const dialogRef = this.dialog.open(upname, { + // width: '340px', + // height:'280px', + // data: element + // }); + // dialogRef.afterClosed().subscribe(result => { + // //console.log(result); + // element.name=result + // }); + } + + //跳转查看基本信息页面 + unitdetails(element){ + // console.log(element) + sessionStorage.setItem("editable","0") + sessionStorage.setItem("companyName",element.name) + sessionStorage.setItem("companyId",element.id) + sessionStorage.setItem(element.id,JSON.stringify(element.companyIntegrityScore)) + window.open(`/keyUnit/viewunitinfo?id=${element.id}&usci=${element.usci}`,'_blank'); + } + //提交查询表单 + onSubmit(value){ + this.PageNumber = 1 + this.pageEvent.pageIndex = 0 + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + if(this.integrityScoreMax
+
+ 提交审核 + 撤销审核 + ( + 删除 + 新增 + 更新 + 待审核) + (审核通过) + (审核驳回) +
+ +
帮助文档下载中,请等待... diff --git a/src/app/tabbar/tabbar.component.scss b/src/app/tabbar/tabbar.component.scss index 7e70f6e..099f600 100644 --- a/src/app/tabbar/tabbar.component.scss +++ b/src/app/tabbar/tabbar.component.scss @@ -176,7 +176,7 @@ mat-icon{ } } //计分规则按钮 -.scoringRule{ +.scoringRule,.isUpdates{ user-select: none; position: absolute; left: 480px; @@ -194,6 +194,10 @@ mat-icon{ margin: 0; padding: 0; } + .span{ + font-size: 18px; + margin-left: 12px; + } .scoringRuleImg{ z-index: 999; position: absolute; @@ -251,6 +255,9 @@ mat-icon{ } } +.isUpdates{ + left: 596px; +} .uploadFile{ height: 64px; line-height: 64px; diff --git a/src/app/tabbar/tabbar.component.ts b/src/app/tabbar/tabbar.component.ts index 436254b..5cf429d 100644 --- a/src/app/tabbar/tabbar.component.ts +++ b/src/app/tabbar/tabbar.component.ts @@ -37,7 +37,9 @@ export class TabbarComponent implements OnInit { integrityData:any - companyIntegrityScore:any + companyIntegrityScore:any//是否显示单位分数 + isUpdates:any //是否显示单位提交审核 撤销审核等按钮 + contentVerify:any//当前单位的审核状态信息 ngOnInit() { this.routerEventsListener = this.router.events.pipe( @@ -46,6 +48,7 @@ export class TabbarComponent implements OnInit { this.title = "数字化预案编制管理平台" this.planName = null this.grade = null + this.isUpdates = null if(this.router.url.indexOf("editunitinfo") == -1 || this.router.url.indexOf("viewunitinfoplan") == -1){//如果url地址是从录入预案跳转 this.companyIntegrityScore = '' } @@ -57,9 +60,13 @@ export class TabbarComponent implements OnInit { } if(this.router.url.indexOf("editplaninfo") != -1 || (this.router.url.indexOf("viewunitinfo") != -1 && this.router.url.indexOf("viewunitinfoplan") == -1)){//如果url地址是从重点单位跳转 this.title = sessionStorage.getItem("companyName") - // let obj = JSON.parse(sessionStorage.getItem(this.route.snapshot.queryParams.id)) - // this.companyIntegrityScore = obj this.getIntegrityScore() + //从维护更新页面进入需要显示提交审核按钮 + if(this.route.snapshot.queryParams["isUpdates"] == '1'){ + this.contentVerify = JSON.parse(sessionStorage.getItem('contentVerify')) + console.log(6666,JSON.parse(sessionStorage.getItem('contentVerify'))) + this.isUpdates = true + } this.tabbarService.getMessage().subscribe((message: any)=>{ this.getIntegrityScore() }); @@ -97,7 +104,38 @@ export class TabbarComponent implements OnInit { this.snackBar.open('下载失败','确定',config); }) } - + //提交单位审核 + submitAudit(){ + let body:any = { + title : sessionStorage.getItem('companyName'), + Operation : sessionStorage.getItem('contentVerify') ? 1 : 0, + itemId : sessionStorage.getItem('companyId'), + verifyState : 3, + contentType : 11 + } + this.http.post(`/api/ContentVerifies`,body).subscribe(data=>{ + this.contentVerify = data + sessionStorage.setItem('contentVerify',JSON.stringify(data)) + },err=>{ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open(err,'确定',config); + }) + } + //撤销单位审核 + cancelAudit(){ + this.http.delete(`/api/ContentVerifies/${this.contentVerify.id}`).subscribe(data=>{ + this.contentVerify = data + sessionStorage.setItem('contentVerify',JSON.stringify(data)) + }, + err=>{ + const config = new MatSnackBarConfig(); + config.verticalPosition = 'top'; + config.duration = 3000 + this.snackBar.open(err,'确定',config); + }) + } //初始化下载 downloadFile () { let file = this.download