diff --git a/src/app/key-unit/basicinfo-look/basicinfo.component.html b/src/app/key-unit/basicinfo-look/basicinfo.component.html index 7310882..9c17057 100644 --- a/src/app/key-unit/basicinfo-look/basicinfo.component.html +++ b/src/app/key-unit/basicinfo-look/basicinfo.component.html @@ -6,6 +6,7 @@ 单位信息 +
diff --git a/src/app/key-unit/basicinfo-look/basicinfo.component.ts b/src/app/key-unit/basicinfo-look/basicinfo.component.ts index 03a70aa..80e56d5 100644 --- a/src/app/key-unit/basicinfo-look/basicinfo.component.ts +++ b/src/app/key-unit/basicinfo-look/basicinfo.component.ts @@ -18,6 +18,7 @@ import * as _ from 'lodash'; import Swiper from 'swiper'; import { LookMaster2 } from './lookmaster.component' import { ActivatedRoute } from '@angular/router'; +import { StatisticsOfFireFightingFacilities } from '../basicinfo/basicinfo.component'; declare var AMap: any; @Component({ @@ -26,6 +27,14 @@ declare var AMap: any; styleUrls: ['./basicinfo.component.scss'] }) export class BasicinfoLookComponent implements OnInit { + + //查看消防设施统计 + seeFirfightingDevice (e) { + e.stopPropagation() + let dialogRef = this.dialog.open(StatisticsOfFireFightingFacilities); + dialogRef.afterClosed().subscribe(); + } + unitinfo:any={ id: '', name: '', //单位信息名字 diff --git a/src/app/key-unit/basicinfo/basicinfo.component.html b/src/app/key-unit/basicinfo/basicinfo.component.html index cf96114..fb514e0 100644 --- a/src/app/key-unit/basicinfo/basicinfo.component.html +++ b/src/app/key-unit/basicinfo/basicinfo.component.html @@ -6,6 +6,7 @@ 单位信息 +
diff --git a/src/app/key-unit/basicinfo/basicinfo.component.ts b/src/app/key-unit/basicinfo/basicinfo.component.ts index 0bd7844..c446ffc 100644 --- a/src/app/key-unit/basicinfo/basicinfo.component.ts +++ b/src/app/key-unit/basicinfo/basicinfo.component.ts @@ -28,6 +28,14 @@ declare var AMap: any; styleUrls: ['./basicinfo.component.scss'] }) export class BasicinfoComponent implements OnInit { + + //查看消防设施统计 + seeFirfightingDevice (e) { + e.stopPropagation() + let dialogRef = this.dialog.open(StatisticsOfFireFightingFacilities); + dialogRef.afterClosed().subscribe(); + } + unitinfo:any={ id: '', name: '', //单位信息名字 @@ -1154,4 +1162,26 @@ export class BasicinfoComponent implements OnInit { this.houses[key].data = data }) } +} + + + +//消防设施统计 +@Component({ + selector: 'app-StatisticsOfFireFightingFacilities', + templateUrl: './statisticsOfFireFightingFacilities.html', + styleUrls: ['./basicinfo.component.scss'] +}) +export class StatisticsOfFireFightingFacilities implements OnInit { + + constructor(private http: HttpClient, public dialog: MatDialog,public snackBar: MatSnackBar) { } + + ngOnInit(): void { + let params = { companyId: sessionStorage.getItem('companyId'),buildingType: sessionStorage.getItem('buildingTypeId') } + this.http.get(`/api/CompanyFacilities/GetAllFacilities`,{params}).subscribe(data=>{ + Object.keys(data).forEach(key => { this.allFireList.push(`${key} ${data[key]}`) }) + }) + } + allFireList = [] + } \ No newline at end of file diff --git a/src/app/key-unit/basicinfo/statisticsOfFireFightingFacilities.html b/src/app/key-unit/basicinfo/statisticsOfFireFightingFacilities.html new file mode 100644 index 0000000..e24e0ab --- /dev/null +++ b/src/app/key-unit/basicinfo/statisticsOfFireFightingFacilities.html @@ -0,0 +1,4 @@ +
消防设施统计
+
+

{{item}}

+
\ 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 c9ae164..060d83c 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 @@ -1,7 +1,14 @@ - - - - +
+ + + + + + + + +
+ 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 740a835..ac24283 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 @@ -1,3 +1,16 @@ .mat-tab-body-wrapper{ height: 100%!important; +} +.fixedPrompt { + position: relative; + width: 100%; + height: 0px; + .scorePrompt { + width: 100%; + text-align: center; + position: absolute; + top: 35px; + font-size: 16px; + z-index: 111; + } } \ No newline at end of file diff --git a/src/app/key-unit/edit-plan-info/edit-plan-info.component.ts b/src/app/key-unit/edit-plan-info/edit-plan-info.component.ts index 63466e0..554de7e 100644 --- a/src/app/key-unit/edit-plan-info/edit-plan-info.component.ts +++ b/src/app/key-unit/edit-plan-info/edit-plan-info.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { FormControl } from '@angular/forms'; @Component({ selector: 'app-edit-plan-info', @@ -9,7 +10,7 @@ export class EditPlanInfoComponent implements OnInit { constructor() { } - ngOnInit(): void { - } + ngOnInit(): void { } + selected = new FormControl(0); } diff --git a/src/app/key-unit/key-unit.module.ts b/src/app/key-unit/key-unit.module.ts index 93d6b60..07f1796 100644 --- a/src/app/key-unit/key-unit.module.ts +++ b/src/app/key-unit/key-unit.module.ts @@ -48,7 +48,7 @@ import { ViewUnitDetailsComponent } from './view-unit-details/view-unit-details. import { ReactiveFormsModule, FormsModule } from '@angular/forms'; import { AddHouseInfo } from './basicinfo/addhouseinfo.component'; import { LookMaster } from './basicinfo/lookmaster.component'; -import { BasicinfoComponent } from './basicinfo/basicinfo.component'; +import { BasicinfoComponent, StatisticsOfFireFightingFacilities } from './basicinfo/basicinfo.component'; import { EditPlanInfoComponent } from './edit-plan-info/edit-plan-info.component'; import { CountdownModule } from 'ngx-countdown'; import { BasicinfoLookComponent } from './basicinfo-look/basicinfo.component'; @@ -88,7 +88,7 @@ import { upname } from './key-unit-management/key-unit-management.component'; import { companyAuditResult } from './key-unit-management/key-unit-management.component' @NgModule({ - declarations: [KeyUnitManagementComponent, EditUnitInfoComponent, ViewUnitDetailsComponent,CreateUnit,BasicinfoComponent,LookMaster,AddHouseInfo, EditPlanInfoComponent,BasicinfoLookComponent, ViewUnitDetailsPlanComponent,FunctionDivisionComponent,addPartition,addPartitionAttribute,AllaroundComponent,ImgDetails,RealisticPictureComponent,previewImg,addRealPicture,editRealPicture,KeySiteComponent,KeyImgDetail,KeySiteImgs,UploadingCADComponent,readFile,editFile,KeySiteLookComponent,KeySiteImgs2,FunctionDivisionLookComponent,RealisticPictureLookComponent,previewImg3,UploadingCADLookComponent,FireFightingDeviceComponent,ImagesData,previewBigImg,ImgsDataDetail,FireFightingDeviceLookComponent,ImagesData2,ImgsDataDetail2,previewBigImg2,LookMaster2,addPartitionAttribute2, SixFamiliarityComponent, ActualCombatDrillComponent,routerMapComponent, SixFamiliarListComponent,TrainingRecordinfoComponent,RouterGISComponent,WaterRoadComponent,PhotoofthesceneComponent,KnowRouteComponent,FindProblemComponent,upname,companyAuditResult], + declarations: [KeyUnitManagementComponent, EditUnitInfoComponent, ViewUnitDetailsComponent,CreateUnit,BasicinfoComponent,LookMaster,AddHouseInfo, EditPlanInfoComponent,BasicinfoLookComponent, ViewUnitDetailsPlanComponent,FunctionDivisionComponent,addPartition,addPartitionAttribute,AllaroundComponent,ImgDetails,RealisticPictureComponent,previewImg,addRealPicture,editRealPicture,KeySiteComponent,KeyImgDetail,KeySiteImgs,UploadingCADComponent,readFile,editFile,KeySiteLookComponent,KeySiteImgs2,FunctionDivisionLookComponent,RealisticPictureLookComponent,previewImg3,UploadingCADLookComponent,FireFightingDeviceComponent,ImagesData,previewBigImg,ImgsDataDetail,FireFightingDeviceLookComponent,ImagesData2,ImgsDataDetail2,previewBigImg2,LookMaster2,addPartitionAttribute2, SixFamiliarityComponent, ActualCombatDrillComponent,routerMapComponent, SixFamiliarListComponent,TrainingRecordinfoComponent,RouterGISComponent,WaterRoadComponent,PhotoofthesceneComponent,KnowRouteComponent,FindProblemComponent,upname,companyAuditResult,StatisticsOfFireFightingFacilities], exports:[ViewUnitDetailsPlanComponent], imports: [ CommonModule, diff --git a/src/app/key-unit/view-unit-details/view-unit-details.component.html b/src/app/key-unit/view-unit-details/view-unit-details.component.html index d544d46..85803af 100644 --- a/src/app/key-unit/view-unit-details/view-unit-details.component.html +++ b/src/app/key-unit/view-unit-details/view-unit-details.component.html @@ -1,4 +1,14 @@ - +
+ + + + + + + + +
+ diff --git a/src/app/key-unit/view-unit-details/view-unit-details.component.scss b/src/app/key-unit/view-unit-details/view-unit-details.component.scss index 740a835..ac24283 100644 --- a/src/app/key-unit/view-unit-details/view-unit-details.component.scss +++ b/src/app/key-unit/view-unit-details/view-unit-details.component.scss @@ -1,3 +1,16 @@ .mat-tab-body-wrapper{ height: 100%!important; +} +.fixedPrompt { + position: relative; + width: 100%; + height: 0px; + .scorePrompt { + width: 100%; + text-align: center; + position: absolute; + top: 35px; + font-size: 16px; + z-index: 111; + } } \ No newline at end of file diff --git a/src/app/key-unit/view-unit-details/view-unit-details.component.ts b/src/app/key-unit/view-unit-details/view-unit-details.component.ts index 1a874db..76804c3 100644 --- a/src/app/key-unit/view-unit-details/view-unit-details.component.ts +++ b/src/app/key-unit/view-unit-details/view-unit-details.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { FormControl } from '@angular/forms'; @Component({ selector: 'app-view-unit-details', @@ -9,10 +10,7 @@ export class ViewUnitDetailsComponent implements OnInit { constructor() { } - ngOnInit(): void { - } - - selectedtab(e){ - sessionStorage.setItem("tabsindex",e.index) - } + ngOnInit(): void { } + selected = new FormControl(0); + } 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 4d4238f..70a6a62 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-03-03 15:13:25 + * @LastEditTime: 2021-03-10 08:36:31 */ import { Component, Inject, OnInit } from '@angular/core'; import { FormControl } from '@angular/forms'; @@ -395,7 +395,9 @@ export class WaitExamineerComponent implements OnInit { }) } } + this.shenheTable=[] } + } //批量审核 else{ @@ -428,11 +430,11 @@ export class WaitExamineerComponent implements OnInit { this.getAlltabledate() }) } - + this.shenheTable=[] } } - this.shenheTable = [] + } //拒绝操作 refuse(){ @@ -488,6 +490,7 @@ export class WaitExamineerComponent implements OnInit { }) } } + this.shenheTable=[] } } //批量审核 @@ -521,9 +524,10 @@ export class WaitExamineerComponent implements OnInit { this.getAlltabledate() }) } + this.shenheTable=[] } } - this.shenheTable=[] + //this.shenheTable=[] } diff --git a/src/app/statistic-analysis/addUnit/add-unit-one/add-unit-one.component.ts b/src/app/statistic-analysis/addUnit/add-unit-one/add-unit-one.component.ts index c68811d..371fdd1 100644 --- a/src/app/statistic-analysis/addUnit/add-unit-one/add-unit-one.component.ts +++ b/src/app/statistic-analysis/addUnit/add-unit-one/add-unit-one.component.ts @@ -12,12 +12,18 @@ export class AddUnitOneComponent implements OnInit { constructor(private router: Router,public echartsData:EchartsDataService) { } setTimeoutObj//延时器需要清除 + tabledata ngOnInit(): void { + /* this.buildData.push(this.echartsData.getData(null,`/api/StatisticsAnalysis/BuildingTypes`)) + this.orData=this.echartsData.getData(null,`/api/StatisticsAnalysis/Companies`) */ + this.echartsData.getData(null,`/api/StatisticsAnalysis/Companies`) this.setTimeoutObj = window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate)) + console.log(this.tabledata) this.initCharts("pieone") this.initCharts("pietwo") - },0) + },1000) this.echartsData.eventEmit.subscribe((value: any) => { if (value == 'echarts') { setTimeout(() => { @@ -41,11 +47,25 @@ export class AddUnitOneComponent implements OnInit { buildingData=["高层","地下","轨道交通","化工生产","储罐类","厂房","古建筑","商市场","医院","学校","宾馆","娱乐场所","餐饮业","影剧院","展览建筑","隧道"] indexBzt//首页饼状图实例 /* 首页饼状图 */ - initCharts(id){ - this.indexBzt = echarts.init(document.getElementById(id),'walden'); + lengthBuildData=[] + lengthOrData=[] + buildData=[] + orData=[] + initCharts(tid){ + for(var i=0;i{return {name: v.buildingTypeName,value:v.count,id:v.buildingTypeId}}) + this.orData=this.orData.map(v=>{return {name: v.organizationName,value:v.count,id:v.organizationId}}) + this.indexBzt = echarts.init(document.getElementById(tid),'walden'); let options={ title: { - text:id=="pieone"? '组织机构统计(8900家)':'建筑类型统计(8900家)', + text:tid=="pieone"? `组织机构统计(${this.tabledata[0].organizationStatistics.totalCount}家)`:`建筑类型统计(${this.tabledata[0].buildingTypeStatistics.totalCount}家)`, left: 'center', top: "5%", textStyle: { @@ -55,7 +75,9 @@ export class AddUnitOneComponent implements OnInit { tooltip: { trigger: 'item', formatter: (params)=>{ - return this.echartsData.tableTooltip(id=="pieone"?this.echartsData.buildingType:this.echartsData.tableDataZhi,params.name) + console.log(params) + return tid=="pieone"?this.biaogeTishi(params.data,'one'):this.biaogeTishi(params.data,'two') + //return this.echartsData.tableTooltip(tid=="pieone"?this.echartsData.buildingType:this.echartsData.tableDataZhi,params.name) }, position:this.echartsData.tableTooltipNoShow2 }, @@ -67,7 +89,7 @@ export class AddUnitOneComponent implements OnInit { fontSize:14, color:"#000000" }, - data: id=="pieone"?this.zhiNameData:this.buildingData + data: tid=="pieone"?this.lengthOrData:this.lengthBuildData }, series: [ { @@ -86,39 +108,7 @@ export class AddUnitOneComponent implements OnInit { } }, }, - data:id=="pieone"?[ - {value: 500, name: this.zhiNameData[0]}, - {value: 800, name: this.zhiNameData[1]}, - {value: 900, name: this.zhiNameData[2]}, - {value: 800, name: this.zhiNameData[3]}, - {value: 1200, name: this.zhiNameData[4]}, - {value: 1500, name: this.zhiNameData[5]}, - {value: 1400, name: this.zhiNameData[6]}, - {value: 600, name: this.zhiNameData[7]}, - {value: 568, name: this.zhiNameData[8]}, - {value: 888, name: this.zhiNameData[9]}, - {value: 485, name: this.zhiNameData[10]}, - {value: 966, name: this.zhiNameData[11]}, - {value: 789, name: this.zhiNameData[12]}, - {value: 500, name: this.zhiNameData[13]}, - - ]:[ - {value: 500, name: '高层'}, - {value: 800, name: '地下'}, - {value: 900, name: '轨道交通'}, - {value: 800, name: '化工生产'}, - {value: 1200, name: '储罐类'}, - {value: 1500, name: '厂房'}, - {value: 1400, name: '古建筑'}, - {value: 600, name: '商市场'}, - {value: 568, name: '医院'}, - {value: 888, name: '学校'}, - {value: 485, name: '宾馆'}, - {value: 966, name: '娱乐场所'}, - {value: 789, name: '餐饮业'}, - {value: 500, name: '影剧院'}, - {value: 1025, name: '展览建筑'}, - {value: 600, name: '隧道'}], + data:tid=="pieone"?this.orData:this.buildData, emphasis: { itemStyle: { shadowBlur: 10, @@ -130,40 +120,72 @@ export class AddUnitOneComponent implements OnInit { ] }; this.indexBzt.on('click', (params) => { - this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_type'],{queryParams:{'level':params.name}}); - id=="pieone"?this.echartsData.zuzhiorBuilding="zhi":this.echartsData.zuzhiorBuilding="building" + if(this.echartsData.level=='0'||this.echartsData.level=='1'||this.echartsData.level=='2'){ + //总队,支队,大队跳转 + this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_type'],{queryParams:{'level':params.name,'id':params.data.id}}); + }else{ + //中队跳转 + this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); + } + + tid=="pieone"?this.echartsData.zuzhiorBuilding="zhi":this.echartsData.zuzhiorBuilding="building" }); this.indexBzt.setOption(options); } - biaogeTishi(biaotou:string){ - var shuju='[{"name":"浦东支队","number":"156","zhanbi":"3%"},{"name":"黄浦支队","number":"144","zhanbi":"2.8%"},' - shuju+='{"name":"徐汇支队","number":"133","zhanbi":"2.1%"},{"name":"长宁支队","number":"122","zhanbi":"1.6%"},' - shuju+='{"name":"静安支队","number":"120","zhanbi":"1.3%"},{"name":"普陀支队","number":"100","zhanbi":"1.1%"},' - shuju+='{"name":"虹口支队","number":"95","zhanbi":"1%"},{"name":"杨浦支队","number":"90","zhanbi":"0.9%"},' - shuju+='{"name":"闵行支队","number":"88","zhanbi":"0.8%"},{"name":"宝山支队","number":"83","zhanbi":"0.7%"},' - shuju+='{"name":"徐汇支队","number":"133","zhanbi":"2.1%"},{"name":"长宁支队","number":"122","zhanbi":"1.6%"},' - shuju+='{"name":"嘉定支队","number":"78","zhanbi":"0.6%"},{"name":"松江支队","number":"75","zhanbi":"0.5%"},' - shuju+='{"name":"金山支队","number":"65","zhanbi":"0.4%"},{"name":"崇明支队","number":"55","zhanbi":"0.3%"}]' - var jsonObj = JSON.parse(shuju); - var res = '
'+biaotou+'
' - res+='
'; - res+=''; - res+=''; - res+='' - res+='' - res+='' - res+=''; - for(var i=0;i' - res+='' - res+='' + res + tishiData + biaogeTishi(datas,type){ + console.log(datas) + this.res='' + this.tishiData='' + if(type=='two'){ + for(var a in this.echartsData.obdata[0].buildingTypeStatistics.buildingTypes){ + if(this.echartsData.obdata[0].buildingTypeStatistics.buildingTypes[a].buildingTypeName==datas.name){ + this.tishiData=this.echartsData.obdata[0].buildingTypeStatistics.buildingTypes[a].organizations + } + } + }else{ + for(var a in this.echartsData.obdata[0].organizationStatistics.organizations){ + if(this.echartsData.obdata[0].organizationStatistics.organizations[a].organizationId==datas.id){ + this.tishiData=this.echartsData.obdata[0].organizationStatistics.organizations[a].buildingTypes } - - res+='' - res+='' - res+='
名称数量总占比
'+jsonObj[i].number+''+jsonObj[i].zhanbi+'
总计135619%
' - return res + } + } + + console.log(this.tishiData) + var countall=0//总计 + var countbi=0//站比 + var allCountbi=0//总站比 + for(var i=0;i
' + this.res+='
'; + this.res+=''; + this.res+=''; + this.res+='' + this.res+='' + this.res+='' + this.res+=''; + for(var i=0;i' + } + else{ + this.res+='' + } + + this.res+='' + this.res+='' + } + + this.res+='' + this.res+='' + this.res+='
名称数量总占比
'+this.tishiData[i].buildingTypeName+''+this.tishiData[i].count+''+countbi+'%
总计'+countall+''+allCountbi.toFixed(2)+'%
' + return this.res } diff --git a/src/app/statistic-analysis/addUnit/add-unit-three-bar-details/add-unit-three-bar-details.component.html b/src/app/statistic-analysis/addUnit/add-unit-three-bar-details/add-unit-three-bar-details.component.html index 1efb7b4..b0e3fa4 100644 --- a/src/app/statistic-analysis/addUnit/add-unit-three-bar-details/add-unit-three-bar-details.component.html +++ b/src/app/statistic-analysis/addUnit/add-unit-three-bar-details/add-unit-three-bar-details.component.html @@ -1,6 +1,14 @@ +
-
+
diff --git a/src/app/statistic-analysis/addUnit/add-unit-three-bar-details/add-unit-three-bar-details.component.ts b/src/app/statistic-analysis/addUnit/add-unit-three-bar-details/add-unit-three-bar-details.component.ts index 788ca67..328531b 100644 --- a/src/app/statistic-analysis/addUnit/add-unit-three-bar-details/add-unit-three-bar-details.component.ts +++ b/src/app/statistic-analysis/addUnit/add-unit-three-bar-details/add-unit-three-bar-details.component.ts @@ -15,22 +15,38 @@ export class AddUnitThreeBarDetailsComponent implements OnInit { constructor(private router: Router,public dialog: MatDialog,public snackBar: MatSnackBar,private serviceData: EchartsDataService,public route: ActivatedRoute) { } time:String buildingTypeName:String - level:String + //level:String + orId//上个页面传过来的组织id + buildId//上个页面传过来的建筑id setTimeoutObj//延时器需要清除 + tabledata + organizationId=[] ngOnInit(): void { this.dateInit () - this.route.queryParams.subscribe(params => { this.time = params['time']; this.buildingTypeName = params['buildingTpye']; - this.level = params['level']; - this.bianli() + this.buildId=params['id'] + this.orId=params['zhuid'] }); + let paramsdata={ + //id:this.buildId, + organizationId:this.orId + } + this.serviceData.getData(paramsdata,`/api/StatisticsAnalysis/Companies/BuildingTypes/${this.buildId}`) this.setTimeoutObj = window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.serviceData.allDate)) + console.log(this.tabledata) + for(var i=0;i{ - return this.tableTooltip(params) + return this.tiao==false? this.serviceData.biaogeTishida(params):this.tableTooltip(params) }, position:this.serviceData.tableTooltipNoShowq }, @@ -154,35 +168,72 @@ export class AddUnitThreeBarDetailsComponent implements OnInit { }; this.detailPlanEchart.setOption(this.option); - this.detailPlanEchart.on("click",(params)=>{ - if(this.level == "zhidui"){//如果是支队则跳转 - // this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_time/three_barDetails'],{queryParams:{'level':'zhongdui','time':params.name,'buildingTpye':this.buildingTypeName}}); - this.level = "zhongdui" + this.detailPlanEchart.getZr().on("click",(params)=>{ + const pointInPixel= [params.offsetX, params.offsetY]; + if (this.detailPlanEchart.containPixel('grid',pointInPixel)){ + let xIndex=this.detailPlanEchart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; + console.log(this.organizationId,this.option.xAxis.id) + if(this.serviceData.level=="0"&&this.tiao==false&&this.tabledata[0].organizations[xIndex].subOrganizations.length>=1){ + //总队不跳 + console.log(params) + this.zhiNameData=[] + this.zhiNumData=[] + this.organizationId=[] + this.tiaoshiPao='' + let paramsdata={ + //id:this.buildId, + organizationId:this.option.xAxis.id[xIndex] + } + this.serviceData.getData(paramsdata,`/api/StatisticsAnalysis/Companies/BuildingTypes/${this.buildId}`) + this.setTimeoutObj = window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.serviceData.allDate)) + console.log(this.tabledata) + for(var i=0;i100%' res+='
' return res } diff --git a/src/app/statistic-analysis/addUnit/add-unit-three-line-details/add-unit-three-line-details.component.html b/src/app/statistic-analysis/addUnit/add-unit-three-line-details/add-unit-three-line-details.component.html index 1ffb927..22ddb1b 100644 --- a/src/app/statistic-analysis/addUnit/add-unit-three-line-details/add-unit-three-line-details.component.html +++ b/src/app/statistic-analysis/addUnit/add-unit-three-line-details/add-unit-three-line-details.component.html @@ -1,6 +1,14 @@ +
-
+
diff --git a/src/app/statistic-analysis/addUnit/add-unit-three-line-details/add-unit-three-line-details.component.ts b/src/app/statistic-analysis/addUnit/add-unit-three-line-details/add-unit-three-line-details.component.ts index 04f363f..b39c046 100644 --- a/src/app/statistic-analysis/addUnit/add-unit-three-line-details/add-unit-three-line-details.component.ts +++ b/src/app/statistic-analysis/addUnit/add-unit-three-line-details/add-unit-three-line-details.component.ts @@ -18,16 +18,18 @@ export class AddUnitThreeLineDetailsComponent implements OnInit { level:String setTimeoutObj//延时器需要清除 qopao + lastId ngOnInit(): void { - this.qopao=this.serviceData.qipao(this.qopao,this.dateNum,this.zhiNameData) + this.serviceData.selectType=0 this.dateInit () this.route.queryParams.subscribe(params => { this.year = params['year']; this.buildingTypeName = params['buildingType']; + this.lastId=params['id'] }); this.setTimeoutObj = window.setTimeout(()=>{ - this.detailEcharts() - }) + this.getdata() + },1000) } ngOnDestroy(){ @@ -35,6 +37,37 @@ export class AddUnitThreeLineDetailsComponent implements OnInit { this.detailPlanEchart.clear() this.detailPlanEchart.dispose() } + tabledata + zongcount=0 + getdata(){ + let parzhi={ + BuildingTypeId:this.lastId, + TrendType:this.serviceData.selectType, + //TrendYear:this.year||'' + } + let parbuild={ + OrganizationId:this.lastId, + TrendType:this.serviceData.selectType, + //TrendYear:this.year||'' + } + this.serviceData.getData(this.serviceData.zuzhiorBuilding=='zhi'?parbuild:parzhi,`/api/StatisticsAnalysis`) + this.setTimeoutObj = window.setTimeout(() => { + this.tabledata=JSON.parse(JSON.stringify(this.serviceData.allDate)) + console.log(this.tabledata) + for(var i=0;i=this.serviceData.selectStartMonth||this.tabledata[0].companyStatistics.trendStatistics.added[i].month<=this.serviceData.selectEndMonth){ + this.date.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].month) + this.dateNum.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].count) + this.zongcount=this.zongcount+this.tabledata[0].companyStatistics.trendStatistics.added[i].count + } + } + + + //this.oneInit (this.date,this.dateNum) + this.qopao=this.serviceData.qipao(this.qopao,this.dateNum,this.zhiNameData) + this.detailEcharts() + }, 1000); + } selectType:string = 'month'; //选择当前的 查询类型 按月/年 @@ -75,8 +108,8 @@ export class AddUnitThreeLineDetailsComponent implements OnInit { detailPlanEchart option - date = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月','9月'] - dateNum = [270, 253, 244, 199, 189, 173, 160, 198,200] + date = [] + dateNum = [] detailEcharts(){ this.detailPlanEchart = echarts.init(document.getElementById('barEchart'), 'skinUpp'); @@ -171,7 +204,8 @@ export class AddUnitThreeLineDetailsComponent implements OnInit { if (this.detailPlanEchart.containPixel('grid',pointInPixel)) { let xIndex=this.detailPlanEchart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_time/three_barDetails'],{queryParams:{'level':'zhidui','time':this.option.xAxis.data[xIndex],'buildingTpye':this.buildingTypeName}}); + this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_type'],{queryParams:{'level':this.buildingTypeName,'id':this.lastId}}) + //this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_time/three_barDetails'],{queryParams:{'level':'zhidui','time':this.option.xAxis.data[xIndex],'buildingTpye':this.buildingTypeName}}); } }); } diff --git a/src/app/statistic-analysis/addUnit/add-unit-two-time/add-unit-two-time.component.html b/src/app/statistic-analysis/addUnit/add-unit-two-time/add-unit-two-time.component.html index cb3ca61..3e30b85 100644 --- a/src/app/statistic-analysis/addUnit/add-unit-two-time/add-unit-two-time.component.html +++ b/src/app/statistic-analysis/addUnit/add-unit-two-time/add-unit-two-time.component.html @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2020-09-05 13:50:45 * @LastEditors: sueRimn - * @LastEditTime: 2021-01-04 11:09:57 + * @LastEditTime: 2021-03-13 14:41:42 -->
@@ -17,24 +17,24 @@
- 开始年份: + 开始月份: {{item}} - 结束年份: + 结束月份: diff --git a/src/app/statistic-analysis/addUnit/add-unit-two-time/add-unit-two-time.component.ts b/src/app/statistic-analysis/addUnit/add-unit-two-time/add-unit-two-time.component.ts index cb7ceee..9084779 100644 --- a/src/app/statistic-analysis/addUnit/add-unit-two-time/add-unit-two-time.component.ts +++ b/src/app/statistic-analysis/addUnit/add-unit-two-time/add-unit-two-time.component.ts @@ -10,25 +10,24 @@ declare var echarts: any; styleUrls: ['./add-unit-two-time.component.scss'] }) export class AddUnitTwoTimeComponent implements OnInit { - forward(){ - this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_type'],{queryParams:{'level':this.headname}}) - } - reverse(){ - this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_time'],{queryParams:{'level':this.headname}}) - } + constructor(private router: Router,public dialog: MatDialog,public snackBar: MatSnackBar,private serviceData: EchartsDataService,private route:ActivatedRoute) { } setTimeoutObj//延时器需要清除 headname + type=1 + lastId + tabledata + zongcount=0 ngOnInit(): void { - //this.dateInit () - this.bianli() + console.log(this.serviceData.zuzhiorBuilding) + this.serviceData.selectType=0 + this.dateInit () this.route.queryParams.subscribe(param=>{ this.headname=param.level + //this.type=param.type + this.lastId=param.id }); - this.setTimeoutObj = setTimeout(() => { - //this.oneInit (this.date,this.dateNum) - this.twoInit (this.date,this.dateNum,'month') - }, 0); + this.getdata() } ngOnDestroy(){ window.clearTimeout(this.setTimeoutObj); @@ -38,17 +37,54 @@ export class AddUnitTwoTimeComponent implements OnInit { }) } + //获取数据 + yeardatee + getdata(){ + let parzhi={ + BuildingTypeId:this.lastId, + TrendType:this.serviceData.selectType, + TrendYear:this.yeardatee||'' + } + let parbuild={ + OrganizationId:this.lastId, + TrendType:this.serviceData.selectType, + TrendYear:this.yeardatee||'' + } + this.serviceData.getData(this.serviceData.zuzhiorBuilding=='zhi'?parbuild:parzhi,`/api/StatisticsAnalysis`) + this.setTimeoutObj = window.setTimeout(() => { + this.tabledata=JSON.parse(JSON.stringify(this.serviceData.allDate)) + console.log(this.tabledata) + for(var i=0;i=this.serviceData.selectStartMonth||this.tabledata[0].companyStatistics.trendStatistics.added[i].month<=this.serviceData.selectEndMonth){ + this.date.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].month) + this.dateNum.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].count) + this.zongcount=this.zongcount+this.tabledata[0].companyStatistics.trendStatistics.added[i].count + } + } + + + //this.oneInit (this.date,this.dateNum) + this.tiaoshiPao=this.serviceData.qipao(this.tiaoshiPao,this.dateNum,this.date) + this.twoInit (this.date,this.dateNum,'month') + }, 1000); + } + forward(){ + this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_type'],{queryParams:{'level':this.headname,'id':this.lastId}}) + } + reverse(){ + this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_time'],{queryParams:{'level':this.headname,'id':this.lastId}}) + } selectType:string = 'month'; //选择当前的 查询类型 按月/年 //查询数据 - years:any = [] + years:any = [2020,2021] selectMonth:any = [1,2,3,4,5,6,7,8,9,10,11,12] //日期初始化 dateInit () { let date = (new Date()).getFullYear() for (let i=date; i>=date-10;i--) { - this.years.unshift(i) + //this.years.unshift(i) } } selectOneYear:any = (new Date()).getFullYear() //开始年份 @@ -57,31 +93,34 @@ export class AddUnitTwoTimeComponent implements OnInit { selectEndMonth:any = (new Date()).getMonth()+1 //结束月份 //按月查询 monthSubmit (e) { - if (e.selectTwoYear > e.selectOneYear) { + this.serviceData.selectStartMonth=this.selectStartMonth + this.serviceData.selectEndMonth=this.selectEndMonth + console.log(this.selectStartMonth,this.selectEndMonth) + this.date=[] + this.dateNum=[] + this.zongcount=0 + if (e.selectEndMonth>=e.selectStartMonth) { let startTime = e.selectOneYear + '-' + e.selectStartMonth + '-' + 1 + ' ' + 0 + ':' + 0 +':'+ 0 let endTime = e.selectTwoYear + '-' + e.selectEndMonth + '-' + 31 + ' ' + 23 + ':' + 59 +':'+ 59 - //console.log(startTime) - //console.log(endTime) - } else if (e.selectTwoYear === e.selectOneYear) { - if(e.selectEndMonth >= e.selectStartMonth) { - let startTime = e.selectOneYear + '-' + e.selectStartMonth + '-' + 1 + ' ' + 0 + ':' + 0 +':'+ 0 - let endTime = e.selectTwoYear + '-' + e.selectEndMonth + '-' + 31 + ' ' + 23 + ':' + 59 +':'+ 59 - //console.log(startTime) - //console.log(endTime) - } else { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择正确时间区段','确定',config); + for(var i=0;i=this.serviceData.selectStartMonth&&this.tabledata[0].companyStatistics.trendStatistics.added[i].month<=this.serviceData.selectEndMonth){ + this.date.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].month) + this.dateNum.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].count) + this.zongcount=this.zongcount+this.tabledata[0].companyStatistics.trendStatistics.added[i].count + } } - }else { + console.log(this.dateNum) + //this.oneInit (this.date,this.dateNum) + this.tiaoshiPao=this.serviceData.qipao(this.tiaoshiPao,this.dateNum,this.date) + this.twoInit (this.date,this.dateNum,'month') + } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 this.snackBar.open('请选择正确时间区段','确定',config); } } - selectStartYear:any = (new Date()).getFullYear() //开始年份 + selectStartYear:any = (new Date()).getFullYear()-1 //开始年份 selectEndYear:any = (new Date()).getFullYear() //结束年份 //按年查询 yearSubmit (e) { @@ -105,11 +144,29 @@ export class AddUnitTwoTimeComponent implements OnInit { }) if(this.selectType == "year"){ - this.tiaoshiPao=this.serviceData.qipao(this.tiaoshiPao,this.dateNum2,this.date2) - //this.oneInit(this.date2,this.dateNum2) - this.twoInit(this.date2,this.dateNum2,'year') + this.zongcount=0 + this.serviceData.selectType=2 + let paramdata={ + BuildingTypeId:this.lastId, + TrendType:this.serviceData.selectType + } + this.serviceData.getData(paramdata,`/api/StatisticsAnalysis`) + this.setTimeoutObj = window.setTimeout(() => { + this.tabledata=JSON.parse(JSON.stringify(this.serviceData.allDate)) + console.log(this.tabledata) + for(var i=0;i { this.organizationName = params['organizationName']; this.buildingTypeName = params['buildingTypeName']; + this.lastId=params['id'] + this.canshuId=params['zhuId'] }); + let paramsdata:any = { + //id:this.echartsData.zuzhiorBuilding=='zhi'? this.canshuId:this.lastId, + organizationId:this.echartsData.zuzhiorBuilding=='zhi'?this.lastId:this.canshuId + } + this.echartsData.getData(paramsdata,`/api/StatisticsAnalysis/Companies/BuildingTypes/${this.echartsData.zuzhiorBuilding=='zhi'?this.canshuId:this.lastId}`) this.setTimeoutObj = window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate)) + console.log(this.tabledata) + for(var i=0;i=1){ + var arrshuzu='['; for(var i=0;i{ - return this.tableTooltip(params) + return this.echartsData.biaogeTishida(params) } }, series: [{ @@ -124,11 +147,18 @@ export class AddUnitTwoTypeDetailsComponent implements OnInit { }] }; this.detailPlanEchart.setOption(option); - this.detailPlanEchart.on('click', (params) => { - this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); - /* const dialogRef = this.dialog.open(CompangInfoComponent, { - width:"400px", - }); */ + this.detailPlanEchart.getZr().on('click', (params) => { + const pointInPixel= [params.offsetX, params.offsetY]; + if (this.detailPlanEchart.containPixel('grid',pointInPixel)){ + let xIndex=this.detailPlanEchart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; + if(this.echartsData.level=='0'||this.echartsData.level=='1'){ + //总队和支队跳转 + this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_time/three_barDetails'],{queryParams:{'time':'','buildingTpye':option.xAxis.data[xIndex]+this.organizationName,'zhuid':option.xAxis.id[xIndex],'id':this.canshuId}}); + }else{ + this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); + } + } + }); } diff --git a/src/app/statistic-analysis/addUnit/add-unit-two-type-statistics/add-unit-two-type-statistics.component.ts b/src/app/statistic-analysis/addUnit/add-unit-two-type-statistics/add-unit-two-type-statistics.component.ts index 18bc1ee..7824e31 100644 --- a/src/app/statistic-analysis/addUnit/add-unit-two-type-statistics/add-unit-two-type-statistics.component.ts +++ b/src/app/statistic-analysis/addUnit/add-unit-two-type-statistics/add-unit-two-type-statistics.component.ts @@ -12,23 +12,49 @@ export class AddUnitTwoTypeStatisticsComponent implements OnInit { constructor(private router: Router,public data:EchartsDataService,private route:ActivatedRoute) { } forward(){ - this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_type'],{queryParams:{'level':this.headname}}) + this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_type'],{queryParams:{'level':this.headname,'id':this.lastId}}) } reverse(){ - this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_time'],{queryParams:{'level':this.headname}}) + this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_time'],{queryParams:{'level':this.headname,'id':this.lastId}}) } url = "/statisticanalysis/addUnit_one/addUnit_two_type" //当前路由地址 setTimeoutObj//延时器需要清除 headname + lastId + organizationId=[] + buildingTypeId=[] ngOnInit(): void { + //this.data.zuzhiorBuilding=="zhi" this.route.queryParams.subscribe(param=>{ this.headname=param.level + this.lastId=param.id }); + let paramsdata:any = { + id:this.lastId, + //organizationId:'1' + } + this.data.getData(paramsdata,this.data.zuzhiorBuilding=="zhi"?`/api/StatisticsAnalysis/Companies/Organizations/${this.lastId}`:`/api/StatisticsAnalysis/Companies/BuildingTypes/${this.lastId}`) this.setTimeoutObj = window.setTimeout(()=>{ - this.bianli() + this.tabledata=JSON.parse(JSON.stringify(this.data.allDate)) + console.log(this.tabledata) + if(this.data.zuzhiorBuilding=="zhi"){ + for(var i=0;i{ let _this = this item.echart = echarts.init(document.getElementById('gaoceng'),'walden'); let option = { title: { - text: this.headname+':总数(1024)', + text: this.headname+`:总数(${this.tabledata[0].totalCount})`, left: "center", top: "0", //bottom: '80%', @@ -276,6 +304,7 @@ export class AddUnitTwoTypeStatisticsComponent implements OnInit { } }, xAxis: { + id:this.data.zuzhiorBuilding=="zhi"?this.buildingTypeId:this.organizationId, type: 'category', data:this.data.zuzhiorBuilding=="zhi"?this.buildingData: this.zhiNameData, axisLabel:{ @@ -302,7 +331,7 @@ export class AddUnitTwoTypeStatisticsComponent implements OnInit { tooltip: { trigger: 'item', formatter: (params)=>{ - return this.tableTooltip(this.tableDataZhong,params.name) + return this.data.zuzhiorBuilding=="zhi"?this.data.biaogeTishiZhi(params): this.data.biaogeTishida(params) }, position: this.data.tableTooltipNoShow2 }, @@ -320,8 +349,20 @@ export class AddUnitTwoTypeStatisticsComponent implements OnInit { }] }; item.echart.setOption(option); - item.echart.on('click', (params) => { - this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_typeDetails'],{queryParams:{'organizationName':params.name,'buildingTypeName':this.headname}}) + item.echart.getZr().on('click', (params) => { + const pointInPixel= [params.offsetX, params.offsetY]; + if (item.echart.containPixel('grid',pointInPixel)){ + let xIndex=item.echart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; + if(this.data.level=='0'||this.data.level=='1'){ + //总队,支队跳转 + this.router.navigate(['/statisticanalysis/addUnit_one/addUnit_two_typeDetails'],{queryParams:{'organizationName':option.xAxis.data[xIndex],'buildingTypeName':this.headname,'id':this.lastId,'zhuId':option.xAxis.id[xIndex]}}) + } + else{ + this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); + } + } + + }); }) diff --git a/src/app/statistic-analysis/buildingType/building-type-one/building-type-one.component.html b/src/app/statistic-analysis/buildingType/building-type-one/building-type-one.component.html index b560d1b..0f17b1b 100644 --- a/src/app/statistic-analysis/buildingType/building-type-one/building-type-one.component.html +++ b/src/app/statistic-analysis/buildingType/building-type-one/building-type-one.component.html @@ -1,3 +1,11 @@ +
diff --git a/src/app/statistic-analysis/buildingType/building-type-one/building-type-one.component.ts b/src/app/statistic-analysis/buildingType/building-type-one/building-type-one.component.ts index 8cdbed5..1145a2f 100644 --- a/src/app/statistic-analysis/buildingType/building-type-one/building-type-one.component.ts +++ b/src/app/statistic-analysis/buildingType/building-type-one/building-type-one.component.ts @@ -14,9 +14,11 @@ export class BuildingTypeOneComponent implements OnInit { constructor(private http:HttpClient,private router: Router,public echartsData:EchartsDataService) { } ngOnInit(): void { + + this.echartsData.getData(null,`/api/StatisticsAnalysis/BuildingTypes`) window.setTimeout(()=>{ this.initCharts() - },100) + },1000) } ngOnDestroy(): void { this.indexBzt.clear() @@ -27,15 +29,14 @@ export class BuildingTypeOneComponent implements OnInit { lengthdata=[]//提示数据 count=0//总数 indexData=[]//所有数据 + tabledata initCharts(){ - this.echartsData.getData(null) - console.log(this.echartsData.allDate) - this.http.get("/api/StatisticsAnalysis").subscribe((data:any)=>{ - console.log(data) - for(var i=0;i{return {name: v.buildingTypeName,value:v.count,id:v.buildingTypeId}}) @@ -54,10 +55,8 @@ export class BuildingTypeOneComponent implements OnInit { trigger: 'item', position: this.echartsData.tableTooltipNoShow2, formatter: (params)=>{ - //console.log(params) this.echartsData.biaogeTishiZhi(params.data) return this.echartsData.res - } }, legend: { @@ -72,6 +71,7 @@ export class BuildingTypeOneComponent implements OnInit { }, series: [ { + //top:'15%', name: '访问来源', type: 'pie', radius: '60%', @@ -99,22 +99,36 @@ export class BuildingTypeOneComponent implements OnInit { ] }; this.indexBzt.on('click', (params) => { - this.router.navigate(['/statisticanalysis/buildingType_one/buildingType_two_reverse'],{queryParams:{'level':params.name}}); + if(this.echartsData.level=='0'||this.echartsData.level=='1'||this.echartsData.level=='2'){ + //总队,支队,大队跳转 + this.router.navigate(['/statisticanalysis/buildingType_one/buildingType_two_reverse'],{queryParams:{'level':params.name,'id':params.data.id}}); + }else if(this.echartsData.level=='3'){ + //中队跳转 + this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); + } + }); this.indexBzt.setOption(options); - }) + } tishiData res:string biaogeTishiZhi(datas){ - let paramsdata:any = { - BuildingTypeId:datas.id + console.log(datas,this.tabledata) + for(var a in this.tabledata.buildingTypes){ + if(this.tabledata.buildingTypes[a].buildingTypeId==datas.id){ + this.tishiData=this.tabledata.buildingTypes[a].organizations + } } - - this.http.get("/api/StatisticsAnalysis/Companies",{params:paramsdata}).subscribe((data:any)=>{ - this.tishiData=data + console.log(this.tishiData) + var countall=0//总计 + var countbi=0//站比 + var allCountbi=0//总站比 + for(var i=0;i
' this.res+='
'; this.res+=''; @@ -124,17 +138,19 @@ export class BuildingTypeOneComponent implements OnInit { this.res+='' this.res+=''; //var res='
'+biaotou+'
' - for(var i=0;i' - this.res+='
' - this.res+='' + this.res+='' + this.res+='' + this.res+='' } this.res+='' - this.res+='' + this.res+='' this.res+='
'+this.tishiData.organizationStatistics.organizations[i].count+'10
'+this.tishiData[i].organizationName+''+this.tishiData[i].count+''+countbi+'%
总计135619%
总计'+countall+''+allCountbi.toFixed(2)+'%
' return this.res - }) + } } diff --git a/src/app/statistic-analysis/buildingType/building-type-three-details/building-type-three-details.component.ts b/src/app/statistic-analysis/buildingType/building-type-three-details/building-type-three-details.component.ts index 6a9e16c..24a98d4 100644 --- a/src/app/statistic-analysis/buildingType/building-type-three-details/building-type-three-details.component.ts +++ b/src/app/statistic-analysis/buildingType/building-type-three-details/building-type-three-details.component.ts @@ -24,17 +24,34 @@ export class BuildingTypeThreeDetailsComponent implements OnInit { } organizationName:String + listorganizationId//上个页面传过来的组织id buildingTypeName:String + buildingTypeId + organizationId=[]//本层id ngOnInit(): void { this.route.queryParams.subscribe(params => { - this.tiaoshiPao=this.echartsData.qipao(this.tiaoshiPao,this.zhongNumData,this.zhongNameData) this.organizationName = params['organizationName']; this.buildingTypeName = params['buildingTypeName']; + this.listorganizationId=params['organizationId']; + this.buildingTypeId=params['buildId']; }); + let paramsdata={ + id:this.buildingTypeId, + organizationId:this.listorganizationId + } + this.echartsData.getData(paramsdata,`/api/StatisticsAnalysis/Companies/BuildingTypes/${this.buildingTypeId}`) window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate)) + console.log(this.tabledata) + for(var i=0;i { - this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); + this.detailPlanEchart.getZr().on('click', (params) => { + const pointInPixel= [params.offsetX, params.offsetY]; + if (this.detailPlanEchart.containPixel('grid',pointInPixel)) { + let xIndex=this.detailPlanEchart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; + /*事件处理代码书写位置*/ + if(this.echartsData.level=="0"&&this.tiao==false&&this.tabledata[0].organizations[xIndex].subOrganizations.length>=1){ + //总队不跳转 + console.log(params) + this.zhongNameData=[] + this.zhongNumData=[] + this.organizationId=[] + this.tiaoshiPao='' + let paramsdatee={ + id:this.buildingTypeId, + organizationId:option.xAxis.id[xIndex] + } + this.echartsData.getData(paramsdatee,`/api/StatisticsAnalysis/Companies/BuildingTypes/${this.buildingTypeId}`) + window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate)) + console.log(this.tabledata) + for(var i=0;i
' - res+='
'; - res+=''; - res+=''; - res+='' - res+='' - res+='' - res+=''; - for(var i=0;i' - res+='' - res+='' - } - - res+='' - // res+='' - res+='
名称数量总占比
'+data[i].number+''+data[i].zhanbi+'
总计135619%
' - return res + tiao=false + tishiData + res + tableTooltip(datas:any){ + console.log(datas) + for(var a in this.echartsData.obdata[0].organizations){ + if(this.echartsData.obdata[0].organizations[a].organizationName==datas.name){ + this.tishiData=this.echartsData.obdata[0].organizations[a].subOrganizations + } + } + console.log(this.tishiData) + var countall=0//总计 + var countbi=0//站比 + var allCountbi=0//总站比 + for(var i=0;i
' + this.res+='
'; + this.res+=''; + this.res+=''; + this.res+='' + this.res+='' + this.res+='' + this.res+=''; + for(var i=0;i' + this.res+='' + this.res+='' + } + + this.res+='' + this.res+='' + this.res+='
名称数量总占比
'+this.tishiData[i].count+''+countbi+'%
总计'+countall+''+allCountbi.toFixed(2)+'%
' + return this.res } } diff --git a/src/app/statistic-analysis/buildingType/building-type-two-reverse/building-type-two-reverse.component.ts b/src/app/statistic-analysis/buildingType/building-type-two-reverse/building-type-two-reverse.component.ts index 3d7e65e..4cbd064 100644 --- a/src/app/statistic-analysis/buildingType/building-type-two-reverse/building-type-two-reverse.component.ts +++ b/src/app/statistic-analysis/buildingType/building-type-two-reverse/building-type-two-reverse.component.ts @@ -19,15 +19,29 @@ export class BuildingTypeTwoReverseComponent implements OnInit { this.router.navigate(['/statisticanalysis/buildingType_one/buildingType_two_reverse']) } headname//标题 + buildId//建筑id ngOnInit(): void { this.route.queryParams.subscribe(param=>{ this.headname=param.level + this.buildId=param.id }); + let paramsdata:any = { + id:this.buildId, + //organizationId:'1' + } + this.data.getData(paramsdata,`/api/StatisticsAnalysis/Companies/BuildingTypes/${this.buildId}`) window.setTimeout(()=>{ - this.bianli() - //this.initCharts() + this.tabledata=JSON.parse(JSON.stringify(this.data.allDate)) + for(var i=0;i=1){ + var arrshuzu='['; for(var i=0;i{ - for(var i=0;i{return {name: v.buildingTypeName,value:v.count}}) - console.log(data) this.forArr.forEach(item=>{ let _this = this item.echart = echarts.init(document.getElementById('gaoceng'),'walden'); let option = { title: { - text: this.headname+':总数(1024)', + text: this.headname+this.tabledata[0].totalCount, left: "center", - top: "15", - //bottom: '80', + //top: "12", + bottom: '510', textStyle: { fontSize: 30 } }, + grid: { + top: 90, + bottom: 30 + }, xAxis: { + id:this.organizationId, type: 'category', data: this.zhiNameData, axisLabel:{ @@ -282,7 +296,8 @@ export class BuildingTypeTwoReverseComponent implements OnInit { tooltip: { trigger: 'item', formatter: (params)=>{ - return this.tableTooltip(this.tableDataZhong,params.name) + console.log(params) + return this.tableTooltip(params) }, position: this.data.tableTooltipNoShow2 }, @@ -290,7 +305,7 @@ export class BuildingTypeTwoReverseComponent implements OnInit { data: this.zhiNumData, type: 'bar', markPoint: { - data: this.tiaoshiPao + data:this.tiaoshiPao }, //showBackground: true, backgroundStyle: { @@ -301,36 +316,64 @@ export class BuildingTypeTwoReverseComponent implements OnInit { }] }; item.echart.setOption(option); - item.echart.on('click', (params) => { - this.router.navigate(['/statisticanalysis/buildingType_one/buildingType_three_details'],{queryParams:{'organizationName':params.name,'buildingTypeName':this.headname}}) + item.echart.getZr().on('click', (params) => { + const pointInPixel= [params.offsetX, params.offsetY]; + if (item.echart.containPixel('grid',pointInPixel)) { + let xIndex=item.echart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; + /*事件处理代码书写位置*/ + if(this.data.level=='0'||this.data.level=='1'){ + //总队,支队跳转 + this.router.navigate(['/statisticanalysis/buildingType_one/buildingType_three_details'],{queryParams:{'organizationName':option.xAxis.data[xIndex],'buildingTypeName':this.headname,'buildId':this.buildId,'organizationId':option.xAxis.id[xIndex]}}) + } + else{ + this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); + } + //this.router.navigate(['/statisticanalysis/delete_one/delete_four'],{queryParams:{'level':this.option.xAxis.data[xIndex]+headName}}); + } + }); }) - }) + } //提示框表格 - tableTooltip(dataArr,title:string){ - let data = dataArr - var res = '
'+title+'
' - res+='
'; - res+=''; - res+=''; - res+='' - res+='' - res+='' - res+=''; - //var res='
'+biaotou+'
' - for(var i=0;i' - res+='
' - res+='' - } - - res+='' - res+='' - res+='
名称数量总占比
'+this.tableDataZhong[i].number+''+this.tableDataZhong[i].zhanbi+'
总计135619%
' - return res + res + tishiData + tableTooltip(datas){ + console.log(datas) + for(var a in this.data.obdata[0].organizations){ + if(this.data.obdata[0].organizations[a].organizationName==datas.name){ + this.tishiData=this.data.obdata[0].organizations[a].subOrganizations + } + } + console.log(this.tishiData) + var countall=0//总计 + var countbi=0//站比 + var allCountbi=0//总站比 + for(var i=0;i
' + this.res+='
'; + this.res+=''; + this.res+=''; + this.res+='' + this.res+='' + this.res+='' + this.res+=''; + for(var i=0;i' + this.res+='' + this.res+='' + } + + this.res+='' + this.res+='' + this.res+='
名称数量总占比
'+this.tishiData[i].count+''+countbi+'%
总计'+countall+''+allCountbi.toFixed(2)+'%
' + return this.res } } diff --git a/src/app/statistic-analysis/compang-info/compang-info.component.ts b/src/app/statistic-analysis/compang-info/compang-info.component.ts index 73a020b..fe03854 100644 --- a/src/app/statistic-analysis/compang-info/compang-info.component.ts +++ b/src/app/statistic-analysis/compang-info/compang-info.component.ts @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2021-03-05 15:57:08 * @LastEditors: sueRimn - * @LastEditTime: 2021-03-06 11:35:04 + * @LastEditTime: 2021-03-12 10:05:29 */ import { Component, OnInit, ViewChild, Inject } from '@angular/core'; import { HttpClient } from '@angular/common/http' @@ -33,6 +33,7 @@ export class CompangInfoComponent implements OnInit{ this.route.queryParams.subscribe(params => { this.titlename = params['name']; this.type = params['type']; + this.jsId=params['jsid'] }); this.getAlltabledate() } @@ -40,7 +41,7 @@ export class CompangInfoComponent implements OnInit{ tabledataSource titlename //上个页面传过来的名称 type //上个页面传过来:1重点单位 2预案 - jsId=1 //组织机构id + jsId //组织机构id //分页 @ViewChild(MatPaginator, {static: true}) pageEvent: PageEvent; diff --git a/src/app/statistic-analysis/echarts-data.service.ts b/src/app/statistic-analysis/echarts-data.service.ts index f8fa6fa..2119436 100644 --- a/src/app/statistic-analysis/echarts-data.service.ts +++ b/src/app/statistic-analysis/echarts-data.service.ts @@ -11,6 +11,7 @@ export class EchartsDataService { this.allEcharts=this.http.get("/api/StatisticsAnalysis") //return this.allEcharts.data } + level = sessionStorage.getItem("level"); allEcharts //计划首页 tableShow=false//控制首页表格显隐 @@ -396,7 +397,7 @@ export class EchartsDataService { return res } /** - * @name: 表格提示框封装 + * @name: 表格提示框封装(总队) * @test: test font * @msg: * @param {string(表头)} @@ -404,46 +405,135 @@ export class EchartsDataService { */ res tishiData + localData biaogeTishiZhi(datas){ - let paramsdata:any = { - BuildingTypeId:datas.id + console.log(datas) + for(var a in this.obdata[0].buildingTypes){ + if(this.obdata[0].buildingTypes[a].buildingTypeName==datas.name){ + this.tishiData=this.obdata[0].buildingTypes[a].organizations + } } - //var res - this.http.get("/api/StatisticsAnalysis",{params:paramsdata}).subscribe((data:any)=>{ - this.tishiData=data - console.log(this.tishiData) - - }) - this.res= '
'+datas.name+'
' + console.log(this.tishiData) + var countall=0//总计 + var countbi=0//站比 + var allCountbi=0//总站比 + for(var i=0;i
' this.res+='
'; this.res+=''; - this.res+=''; this.res+='' this.res+='' this.res+='' this.res+=''; - var countall=0 - for(var i=0;i' + this.res+='' + this.res+='' + } + + this.res+='' + this.res+='' + this.res+='
名称数量总占比
'+this.tishiData[i].count+''+countbi+'%
总计'+countall+''+allCountbi.toFixed(2)+'%
' + return this.res + + } + + //支队表格提示 + biaogeTishida(datas){ + console.log(datas) + this.tishiData='' + for(var a in this.obdata[0].organizations){ + if(this.obdata[0].organizations[a].organizationName==datas.name){ + this.tishiData=this.obdata[0].organizations[a].subOrganizations + } + } + console.log(this.tishiData) + var countall=0//总计 + var countbi=0//站比 + var allCountbi=0//总站比 + for(var i=0;i' - for(var i=0;i' + this.res+='
'; + this.res+=''; + this.res+=''; + this.res+='' + this.res+='' + this.res+='' + this.res+=''; + for(var i=0;i' - this.res+='' - this.res+='' + this.res+='' + this.res+='' + this.res+='' } this.res+='' - this.res+='' + this.res+='' + this.res+='
名称数量总占比
'+this.tishiData.companyStatistics.organizationStatistics.organizations[i].count+''+Math.round(this.tishiData.companyStatistics.organizationStatistics.organizations[i].count/countall* 10000)/ 100.00 +'%
'+this.tishiData[i].organizationName+''+this.tishiData[i].count+''+countbi+'%
总计'+this.tishiData.companyStatistics.totalCount+'100%
总计'+countall+''+allCountbi.toFixed(2)+'%
' + return this.res + } + //预案表格提示 + apidata=[] + biaogeTishiyuan(datas){ + //localStorage.setItem('tishi',this.tishiData) + let paramdata={ + planStatus:datas.type + } + if(localStorage.getItem('tishi')==undefined){ + this.http.get(`/api/StatisticsAnalysis/Plans/Status`).subscribe((data:any)=>{ + this.tishiData=data.organizations + localStorage.setItem('tishi',JSON.stringify(this.tishiData)) + }) + } + this.localData=localStorage.getItem('tishi') + + + /* window.setTimeout(()=>{ + var countall=0//总计 + var countbi=0//站比 + var allCountbi=0//总站比 + for(var i=0;i' + this.res+='
'; + this.res+=''; + this.res+=''; + this.res+='' + this.res+='' + this.res+='' + this.res+=''; + for(var i=0;i' + this.res+='' + this.res+='' + } + this.res+='' + this.res+='' this.res+='
名称数量总占比
'+this.tishiData[i].count+''+countbi+'%
总计'+countall+''+allCountbi.toFixed(2)+'%
' return this.res + },1000) */ - } + } + + zhiNameData = ["浦东支队","黄浦支队","徐汇支队","长宁支队","静安支队","普陀支队","虹口支队","杨浦支队","闵行支队","宝山支队","嘉定支队","松江支队","金山支队","崇明支队"] zhiNumData = [200,190,180,170,160,150,140,130,120,110,100,90,80,70] + /** * @name: 气泡封装 @@ -453,7 +543,8 @@ export class EchartsDataService { * @return {json对象} */ qipao(tiaoshiPao:any,yData,xData):any{ - var arrshuzu='['; + if(yData.length>=1){ + var arrshuzu='['; for(var i=0;i{ + obdata + getData(paramsdata,api){ + this.allDate=[] + this.obdata=null + this.http.get(api,{params:paramsdata}).subscribe((data:any)=>{ this.allDate.push(data) - console.log(this.allDate) + this.obdata=JSON.parse(JSON.stringify(this.allDate)) + console.log(this.obdata) return this.allDate }) } - - - + selectType=0//选择年月 + selectOneYear + selectTwoYear + selectStartMonth=1 + selectEndMonth=12 } diff --git a/src/app/statistic-analysis/state/page-one/page-one.component.ts b/src/app/statistic-analysis/state/page-one/page-one.component.ts index e7a9efc..e6285d0 100644 --- a/src/app/statistic-analysis/state/page-one/page-one.component.ts +++ b/src/app/statistic-analysis/state/page-one/page-one.component.ts @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2020-09-01 15:24:39 * @LastEditors: sueRimn - * @LastEditTime: 2020-12-30 14:06:07 + * @LastEditTime: 2021-03-12 16:25:28 */ import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; @@ -22,9 +22,10 @@ export class PageOneComponent implements OnInit { constructor(private router: Router,public echartsData:EchartsDataService) { } ngOnInit() { + this.echartsData.getData(null,`/api/StatisticsAnalysis/Plans`) window.setTimeout(()=>{ this.initCharts() - },0) + },1000) } ngOnDestroy(): void { this.indexBzt.clear() @@ -34,12 +35,18 @@ export class PageOneComponent implements OnInit { /* 首页饼状图 */ indexBzt + tabledata + count + indexData initCharts(){ + this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate)) + console.log(this.tabledata) + var ec = echarts as any; this.indexBzt = ec.init(document.getElementById('indexBzt'),'walden'); var options={ title: { - text: '预案状态统计(7005家)', + text: `预案状态统计(${this.tabledata[0].totalCount}份)`, top: "7%", left: 'center', textStyle:{ @@ -48,9 +55,10 @@ export class PageOneComponent implements OnInit { }, tooltip: { trigger: 'item', - formatter: (params)=>{ - return this.echartsData.biaogeTishiZhi(params.name) - } + formatter: (params)=>{ + this.echartsData.biaogeTishiyuan(params.data) + return this.echartsData.res + } }, legend: { orient: 'vertical', @@ -86,11 +94,11 @@ export class PageOneComponent implements OnInit { }, data: [ - {value: 1585, name: '预案新增'}, - {value: 2000, name: '预案审核通过',itemStyle:{color:'#02A7F0'}}, - {value: 2600, name: '预案编制'}, - {value: 1500, name: '预案审核退回'}, - {value: 1800, name: '预案审核中'} + {value: this.tabledata[0].planningStatistics.newCount, name: '预案新增',type:1}, + {value: this.tabledata[0].planningStatistics.approvedCount, name: '预案审核通过',itemStyle:{color:'#02A7F0'},type:3}, + {value: this.tabledata[0].planningStatistics.editingCount, name: '预案编制',type:5}, + {value: this.tabledata[0].planningStatistics.rejectedCount, name: '预案审核退回',type:4}, + {value: this.tabledata[0].planningStatistics.auditingCount, name: '预案审核中',type:2} ], emphasis: { itemStyle: { @@ -103,8 +111,13 @@ export class PageOneComponent implements OnInit { ] }; this.indexBzt.on('click', (params) => { - this.router.navigate(['/statisticanalysis/statePageOne/time'],{queryParams:{'level':params.name}}); - console.log(params) + if(this.echartsData.level=='0'||this.echartsData.level=='1'||this.echartsData.level=='2'){ + this.router.navigate(['/statisticanalysis/statePageOne/time'],{queryParams:{'level':params.name,'type':params.data.type}}); + } + else if(this.echartsData.level=='3'){ + //中队跳转 + this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); + } }); this.indexBzt.setOption(options); } diff --git a/src/app/statistic-analysis/state/page-there-year/page-there-year.component.html b/src/app/statistic-analysis/state/page-there-year/page-there-year.component.html index da3579f..a0b6c57 100644 --- a/src/app/statistic-analysis/state/page-there-year/page-there-year.component.html +++ b/src/app/statistic-analysis/state/page-there-year/page-there-year.component.html @@ -4,11 +4,11 @@ * @Author: sueRimn * @Date: 2020-09-17 10:56:18 * @LastEditors: sueRimn - * @LastEditTime: 2020-09-17 14:08:14 + * @LastEditTime: 2021-03-13 14:19:22 -->
-
+
diff --git a/src/app/statistic-analysis/state/page-there-year/page-there-year.component.ts b/src/app/statistic-analysis/state/page-there-year/page-there-year.component.ts index 1af1ab4..522bf39 100644 --- a/src/app/statistic-analysis/state/page-there-year/page-there-year.component.ts +++ b/src/app/statistic-analysis/state/page-there-year/page-there-year.component.ts @@ -19,16 +19,30 @@ export class PageThereYearComponent implements OnInit { buildingTypeName:String level:String setTimeoutObj//延时器需要清除 + type + tabledata ngOnInit(): void { this.dateInit () - this.bianli() this.route.queryParams.subscribe(params => { this.year = params['level']; this.buildingTypeName = params['headtext']; + this.type=params['type'] }); + let paramdata={ + planStatus:this.type, + TrendType:this.serviceData.selectType + } + this.serviceData.getData(paramdata,`/api/StatisticsAnalysis`) this.setTimeoutObj = window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.serviceData.allDate)) + console.log(this.tabledata[0].planStatistics.trendStatistics.added) + for(var i=0;i
-
+
diff --git a/src/app/statistic-analysis/state/page-there/page-there.component.ts b/src/app/statistic-analysis/state/page-there/page-there.component.ts index 28579fa..3ee366c 100644 --- a/src/app/statistic-analysis/state/page-there/page-there.component.ts +++ b/src/app/statistic-analysis/state/page-there/page-there.component.ts @@ -21,6 +21,9 @@ export class PageThereComponent implements OnInit { setTimeoutObj//延时器需要清除 headtext:string; zhong:string + type + tabledata + organizationId=[] ngOnDestroy():void{ this.zhutu.clear() @@ -28,23 +31,33 @@ export class PageThereComponent implements OnInit { } ngOnInit(): void { - this.tiaoshiPao=this.echartsData.qipao(this.tiaoshiPao,this.zhiNumData,this.zhiNameData) this.dateInit(); - //let headtext:string; let datayuex:string; let headName:string; - // console.log(this.activatedRoute.queryParams.subscribe) - //headtext=this.activatedRoute.queryParams["headtext"]; this.activatedRoute.queryParams.subscribe(param=>{ + this.type=param.type this.headtext=param.headtext datayuex=param.level this.zhong=param.zhong - headName=datayuex+''+this.headtext; + headName=datayuex+'月'+this.headtext; //console.log(headName) }); + let paramdata={ + planStatus:this.type, + TrendType:this.echartsData.selectType + } + this.echartsData.getData(paramdata,`/api/StatisticsAnalysis`) window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate)) + console.log(this.tabledata) + for(var i=0;i { diff --git a/src/app/statistic-analysis/state/page-two-name/page-two-name.component.ts b/src/app/statistic-analysis/state/page-two-name/page-two-name.component.ts index db54f9c..f523879 100644 --- a/src/app/statistic-analysis/state/page-two-name/page-two-name.component.ts +++ b/src/app/statistic-analysis/state/page-two-name/page-two-name.component.ts @@ -15,18 +15,31 @@ export class PageTwoNameComponent implements OnInit { @ViewChild('zhongDuiChild') zhongDuiChild:PageZhongDuiDetailsComponent; //父组件中获得子组件的引用 ngOnInit(): void { + this.route.queryParams.subscribe(param=>{ + this.headname=param.level + this.type=param.type + }); + let paramdata={ + planStatus:this.type + } + this.data.getData(paramdata,`/api/StatisticsAnalysis/Plans/Status`) setTimeout(() => { + this.tabledata=JSON.parse(JSON.stringify(this.data.allDate)) + console.log(this.tabledata) + for(var i=0;i{ - this.headname=param.level - }); this.planAdd() - }, 0); + },1000); } ngOnDestroy(): void { } headname//标题 + type//预案类型 axisLabel = { interval: 0, textStyle:{ @@ -67,8 +80,8 @@ export class PageTwoNameComponent implements OnInit { } }//柱状图上方显示数值 - zhiNameData = ["浦东支队","黄浦支队","徐汇支队","长宁支队","静安支队","普陀支队","虹口支队","杨浦支队","闵行支队","宝山支队","嘉定支队","松江支队","金山支队","崇明支队"] - zhiNumData = [200,190,180,170,160,150,140,130,120,110,100,90,80,70] + zhiNameData = [] + zhiNumData = [] tiaoshiPao:any //气泡提示数据获取 bianli(){ @@ -82,13 +95,15 @@ export class PageTwoNameComponent implements OnInit { //return tishiPao } addEchart + tabledata + organizationId=[] //预案新增统计 planAdd () { let _this = this this.addEchart = echarts.init(document.getElementById('pie'),'walden'); var option = { title: { - text: _this.headname+"总数(1024)", + text: _this.headname+`总数(${this.tabledata[0].totalCount})`, left: "center", top: "0", bottom: '100%', @@ -96,8 +111,12 @@ export class PageTwoNameComponent implements OnInit { fontSize: 30 } }, - + grid: { + top: 110, + //bottom: 10 + }, xAxis: { + id:this.organizationId, type: 'category', data: this.zhiNameData, axisLabel:{ @@ -146,323 +165,18 @@ export class PageTwoNameComponent implements OnInit { if (this.addEchart.containPixel('grid',pointInPixel)) { let xIndex=this.addEchart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/PageZhongDuiDetails'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - } - - }); - } - passPlanEchartObj - //预案审核通过 - passPlanEchart (){ - let _this = this - this.passPlanEchartObj = echarts.init(document.getElementById('passPlanEchart'),'walden'); - var option = { - title: { - text: "预案审核通过:总数(1024)", - left: "center", - top: "0", - bottom: '100%', - textStyle: { - fontSize: 23 - } - }, - xAxis: { - type: 'category', - data: this.zhiNameData, - axisLabel: this.axisLabel - }, - yAxis: { - type: 'value', - axisLabel:{ - //this.axisLabel, - textStyle:{ - fontSize :16, - color:'#000000' - } - } - }, - tooltip: { - trigger: 'item', - formatter: (params)=>{ - return this.data.biaogeTishi(params.name) - }/* , - position: this.data.tableTooltipNoShow2 */ - }, - series: [{ - data: this.zhiNumData, - type: 'bar', - markPoint: { - data: this.tiaoshiPao - }, - backgroundStyle: { - color: 'rgba(220, 220, 220, 0.8)' - }, - barWidth :'28', - //label: this.topTextlabel - }] - }; - this.passPlanEchartObj.setOption(option); - this.passPlanEchartObj.getZr().on('click', (params) => { - const pointInPixel= [params.offsetX, params.offsetY]; - if (this.passPlanEchartObj.containPixel('grid',pointInPixel)) { - let xIndex=this.passPlanEchartObj.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; - /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/PageZhongDuiDetails'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - } - - }); - } - passMakeEchart - //预案编制 - planMake (){ - let _this = this - this.passMakeEchart = echarts.init(document.getElementById('planMake'),'walden'); - var option = { - title: { - text: "预案编制:总数(1024)", - left: "center", - top: "0", - bottom: '100%', - textStyle: { - fontSize: 23 - } - }, - xAxis: { - type: 'category', - data: this.zhiNameData, - axisLabel: this.axisLabel - }, - yAxis: { - type: 'value', - axisLabel:{ - //this.axisLabel, - textStyle:{ - fontSize :16, - color:'#000000' - } - } - }, - tooltip: { - trigger: 'item', - formatter: (params)=>{ - return this.data.biaogeTishi(params.name) - }/* , - position: this.data.tableTooltipNoShow2 */ - - }, - series: [{ - data: this.zhiNumData, - type: 'bar', - markPoint: { - data: this.tiaoshiPao - }, - backgroundStyle: { - color: 'rgba(220, 220, 220, 0.8)' - }, - barWidth :'28', - //label: this.topTextlabel - }] - }; - this.passMakeEchart.setOption(option); - this.passMakeEchart.getZr().on('click', (params) => { - const pointInPixel= [params.offsetX, params.offsetY]; - if (this.passMakeEchart.containPixel('grid',pointInPixel)) { - let xIndex=this.passMakeEchart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; - /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/PageZhongDuiDetails'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - } - - }); - } - passBackEchart - //预案审核退回 - planBack (){ - let _this = this - this.passBackEchart = echarts.init(document.getElementById('planBack'),'walden'); - var option = { - title: { - text: "预案审核退回:总数(1024)", - left: "center", - top: "0", - bottom: '100%', - textStyle: { - fontSize: 23 - } - }, - xAxis: { - type: 'category', - data: this.zhiNameData, - axisLabel: this.axisLabel - }, - yAxis: { - type: 'value', - axisLabel:{ - //this.axisLabel, - textStyle:{ - fontSize :16, - color:'#000000' - } - } - }, - tooltip: { - trigger: 'item', - formatter: (params)=>{ - return this.data.biaogeTishi(params.name) - }/* , - position: this.data.tableTooltipNoShow2 */ - - }, - series: [{ - data: this.zhiNumData, - type: 'bar', - markPoint: { - data: this.tiaoshiPao - }, - backgroundStyle: { - color: 'rgba(220, 220, 220, 0.8)' - }, - barWidth :'28', - //label: this.topTextlabel - }] - }; - this.passBackEchart.setOption(option); - this.passBackEchart.getZr().on('click', (params) => { - const pointInPixel= [params.offsetX, params.offsetY]; - if (this.passBackEchart.containPixel('grid',pointInPixel)) { - let xIndex=this.passBackEchart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; - /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/PageZhongDuiDetails'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - } - - }); - } - planAuditEchart - //预案审核中 - planAudit (){ - let _this = this - this.planAuditEchart = echarts.init(document.getElementById('planAudit'),'walden'); - var option = { - title: { - text: "预案审核中:总数(1024)", - left: "center", - top: "0", - bottom: '100%', - textStyle: { - fontSize: 23 + if(this.data.level=='0'||this.data.level=='1'){ + this.router.navigate(['/statisticanalysis/PageZhongDuiDetails'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':_this.headname,'id':option.xAxis.id[xIndex],'type':this.type}}); + }else{ + this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); } - }, - xAxis: { - type: 'category', - data: this.zhiNameData, - axisLabel: this.axisLabel - }, - yAxis: { - type: 'value', - axisLabel:{ - //this.axisLabel, - textStyle:{ - fontSize :16, - color:'#000000' - } - } - }, - tooltip: { - trigger: 'item', - formatter: (params)=>{ - return this.data.biaogeTishi(params.name) - }/* , - position: this.data.tableTooltipNoShow2 */ - }, - series: [{ - data: this.zhiNumData, - type: 'bar', - markPoint: { - data: this.tiaoshiPao - }, - backgroundStyle: { - color: 'rgba(220, 220, 220, 0.8)' - }, - barWidth :'28', - //label: this.topTextlabel - }] - }; - this.planAuditEchart.setOption(option); - this.planAuditEchart.getZr().on('click', (params) => { - const pointInPixel= [params.offsetX, params.offsetY]; - if (this.planAuditEchart.containPixel('grid',pointInPixel)) { - let xIndex=this.planAuditEchart.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; - /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/PageZhongDuiDetails'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); } }); } - topEchart - //预案状态统计 - planState(){ - this.topEchart = echarts.init(document.getElementById('pie'),'walden'); - var option = { - title: { - text: '预案状态统计(7005份)', - left: 'center', - top: "6%", - textStyle: { - fontSize: 30 - } - }, - tooltip: { - trigger: 'item', - formatter: (params)=>{ - return this.data.biaogeTishiZhi(params.name) - }, - position: this.data.tableTooltipNoShow2 - }, - legend: { - orient: 'vertical', - right: '13%', - top: "26%", - textStyle:{ - fontSize:18, - color:"#000000" - }, - data: ['预案新增', '预案审核通过', '预案编制', '预案审核退回', '预案审核中'] - }, - series: [ - { - name: '访问来源', - type: 'pie', - radius: '75%', - center: ['50%', '60%'], - data: [ - {value: 1585, name: '预案新增'}, - {value: 2000, name: '预案审核通过'}, - {value: 2600, name: '预案编制'}, - {value: 1500, name: '预案审核退回'}, - {value: 1800, name: '预案审核中'} - ], - label: { - formatter: '{b}({c}份)\n{d|{d}%}', - fontSize :18, - rich: { - d: { - align: 'center', - fontSize :18 - } - }, - }, - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - } - ] - } - this.topEchart.setOption(option); - } + passPlanEchartObj + tableTooltip(biaotou:string){ var shuju='[{"name":"浦东支队","number":"156","zhanbi":"3%"},{"name":"黄浦支队","number":"144","zhanbi":"2.8%"},' diff --git a/src/app/statistic-analysis/state/page-two-time/page-two-time.component.html b/src/app/statistic-analysis/state/page-two-time/page-two-time.component.html index 7cbd5ce..f5a6284 100644 --- a/src/app/statistic-analysis/state/page-two-time/page-two-time.component.html +++ b/src/app/statistic-analysis/state/page-two-time/page-two-time.component.html @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2020-09-05 08:59:24 * @LastEditors: sueRimn - * @LastEditTime: 2021-01-04 11:15:39 + * @LastEditTime: 2021-03-10 15:16:52 -->
@@ -19,24 +19,24 @@
- 开始年份: + 开始月份: {{item}} - 结束年份: + 结束月份: diff --git a/src/app/statistic-analysis/state/page-two-time/page-two-time.component.ts b/src/app/statistic-analysis/state/page-two-time/page-two-time.component.ts index 496b628..acd17d0 100644 --- a/src/app/statistic-analysis/state/page-two-time/page-two-time.component.ts +++ b/src/app/statistic-analysis/state/page-two-time/page-two-time.component.ts @@ -15,19 +15,23 @@ declare var echarts: any; }) export class PageTwoTimeComponent implements OnInit { - constructor(private router: Router,public snackBar: MatSnackBar,private adapter: DateAdapter,public echartsData:EchartsDataService) { } + constructor(private router: Router,public snackBar: MatSnackBar,private adapter: DateAdapter,public echartsData:EchartsDataService,private activatedRoute: ActivatedRoute) { } @ViewChild('appEcharts')appEcharts :echartsComponent; //父组件中获得子组件的引用 @ViewChild('pageTwoName')pageTwoName :PageTwoNameComponent; //父组件中获得子组件的引用 + @ViewChild('echartsComponent')echartsComponent :echartsComponent; //父组件中获得子组件的引用 ngOnInit(): void { + this.activatedRoute.queryParams.subscribe(param=>{ + this.type=param.type + }); this.echartsData.statefulInspectionToggle = true this.dateInit() this.bianli() } isQuery:boolean = true; //横纵向查询 - + type //shao toggleTrue () { this.isQuery = true @@ -52,10 +56,16 @@ export class PageTwoTimeComponent implements OnInit { changeTime (e) { let data = e.value this.appEcharts.changeTime(data) + if(e.value=='month'){ + this.echartsData.selectType=0 + } + else if(e.value=='year'){ + this.echartsData.selectType=2 + } } //查询数据 - years:any = [] + years:any = [2020,2021] selectMonth:any = [1,2,3,4,5,6,7,8,9,10,11,12] tiaoshiPao:any datayuey=[270, 253, 244, 199, 189, 173, 160, 198,200] @@ -76,34 +86,23 @@ export class PageTwoTimeComponent implements OnInit { dateInit () { let date = (new Date()).getFullYear() for (let i=date; i>=date-10;i--) { - this.years.unshift(i) + //this.years.unshift(i) } } selectOneYear:any = (new Date()).getFullYear() //开始年份 selectTwoYear:any = (new Date()).getFullYear() //结束年份 selectStartMonth:any = 1 //开始月份 - selectEndMonth:any = (new Date()).getMonth()+1 //结束月份 + selectEndMonth:any = 12 //结束月份 //按月查询 monthSubmit (e) { - if (e.selectTwoYear > e.selectOneYear) { + if(e.selectEndMonth >= e.selectStartMonth) { let startTime = e.selectOneYear + '-' + e.selectStartMonth + '-' + 1 + ' ' + 0 + ':' + 0 +':'+ 0 let endTime = e.selectTwoYear + '-' + e.selectEndMonth + '-' + 31 + ' ' + 23 + ':' + 59 +':'+ 59 - //console.log(startTime) - //console.log(endTime) - } else if (e.selectTwoYear === e.selectOneYear) { - if(e.selectEndMonth >= e.selectStartMonth) { - let startTime = e.selectOneYear + '-' + e.selectStartMonth + '-' + 1 + ' ' + 0 + ':' + 0 +':'+ 0 - let endTime = e.selectTwoYear + '-' + e.selectEndMonth + '-' + 31 + ' ' + 23 + ':' + 59 +':'+ 59 - //console.log(startTime) - //console.log(endTime) - } else { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请选择正确时间区段','确定',config); - } - }else { + this.echartsData.selectStartMonth=e.selectStartMonth + this.echartsData.selectEndMonth=e.selectEndMonth + this.appEcharts.findYue() + } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; config.duration = 3000 @@ -113,15 +112,15 @@ export class PageTwoTimeComponent implements OnInit { - selectStartYear:any = (new Date()).getFullYear() //开始年份 + selectStartYear:any = (new Date()).getFullYear()-1 //开始年份 selectEndYear:any = (new Date()).getFullYear() //结束年份 //按年查询 yearSubmit (e) { if (e.selectEndYear >= e.selectStartYear) { let startTime = e.selectStartYear + '-' + 1 + '-' + 1 + ' ' + 0 + ':' + 0 +':'+ 0 let endTime = e.selectEndYear + '-' + 12 + '-' + 31 + ' ' + 23 + ':' + 59 +':'+ 59 - //console.log(startTime) - //console.log(endTime) + this.echartsData.selectOneYear=e.selectStartYear + this.echartsData.selectTwoYear=e.selectEndYear } else { const config = new MatSnackBarConfig(); config.verticalPosition = 'top'; @@ -143,11 +142,12 @@ export class echartsComponent implements OnInit { constructor(private router: Router,private activatedRoute: ActivatedRoute,public snackBar: MatSnackBar,private adapter: DateAdapter,public echartsData:EchartsDataService) { } + type tiaoshiPao:any - datayuey=[270, 253, 244, 199, 189, 173, 160, 198, 200] - datayuex=['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月','9月'] - dataYearX = ['2019','2020'] - dataYearY = [1078, 936] + datayuey=[] + datayuex=[] + dataYearX = ['2020','2021'] + dataYearY = ['0'] //气泡提示数据获取 bianli(){ var arrshuzu='['; @@ -159,18 +159,30 @@ export class echartsComponent implements OnInit { this.tiaoshiPao=JSON.parse(arrshuzu) } ngOnInit(): void { + this.activatedRoute.queryParams.subscribe(param=>{ + this.headtext=param.level + this.type=param.type + }); + let paramdata={ + //planStatus:this.type, + TrendType:this.echartsData.selectType + } + this.echartsData.getData(paramdata,`/api/StatisticsAnalysis`) window.setTimeout(()=>{ - this.tiaoshiPao=this.echartsData.qipao(this.tiaoshiPao,this.datayuey,this.datayuex) - this.activatedRoute.queryParams.subscribe(param=>{ - this.headtext=param.level - }); + this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate)) + //console.log(this.tabledata[0].companyStatistics.trendStatistics.added) + for(var i=0;i=this.echartsData.selectStartMonth||this.tabledata[0].companyStatistics.trendStatistics.added[i].month<=this.echartsData.selectEndMonth){ + this.datayuex.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].month) + this.datayuey.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].count) + } + } + + + this.tiaoshiPao=this.echartsData.qipao(this.tiaoshiPao,this.datayuey,this.datayuex) //this.oneInit() this.twoInit() - /* this.threeInit() - this.fourInit() - this.fiveInit() - this.sixInit() */ - },0) + },1000) } ngOnDestroy () { @@ -185,110 +197,60 @@ export class echartsComponent implements OnInit { if (e=='year') { - this.tiaoshiPao=this.echartsData.qipao(this.tiaoshiPao,this.dataYearY,this.dataYearX) + //this.oneInit(this.dataYearX,this.dataYearY) - this.twoInit(this.dataYearX,this.dataYearY) + this.echartsData.selectType=2 + let paramdata={ + //planStatus:this.type, + TrendType:this.echartsData.selectType + } + this.echartsData.getData(paramdata,`/api/StatisticsAnalysis`) + window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate)) + console.log(this.tabledata[0].companyStatistics.trendStatistics.added) + this.dataYearY.push(this.tabledata[0].companyStatistics.trendStatistics.added[0].count) + this.tiaoshiPao=this.echartsData.qipao(this.tiaoshiPao,this.datayuey,this.datayuex) + //this.oneInit() + this.tiaoshiPao=this.echartsData.qipao(this.tiaoshiPao,this.dataYearY,this.dataYearX) + this.twoInit(this.dataYearX,this.dataYearY) + },1000) + //this.twoInit(this.dataYearX,this.dataYearY) } else { this.tiaoshiPao=this.echartsData.qipao(this.tiaoshiPao,this.datayuey,this.datayuex) //this.oneInit() + this.echartsData.selectType=0 this.twoInit() } } - - oneExample:any; - oneInit (X=this.datayuex, Y=this.datayuey) { - this.oneExample = echarts.init(document.getElementById('one'),'walden'); - var option = { - grid: { - top: 50, - left:50, - right: 20, - }, - tooltip: { - trigger: 'axis', - formatter: (params)=>{ - return this.echartsData.tableTooltip(this.echartsData.planData,params[0].name) - }, - }, - // 标题 - title: { - text: '预案统计状态'+':总数(1024)', - top: -4, - left: 'center', - subtext:'今年', -   //副标题文本样式 -   subtextStyle:{ - color:'#999', - fontWeight:'bold', - }, - textStyle:{ - //文字颜色 - color:'#000', - fontSize: 22, - } - }, - // x轴 - xAxis: { - type: 'category', - data: X, - boundaryGap: true, - axisLabel: { - color: "#000", //刻度线标签颜色 - textStyle:{ - fontSize :15, - color:'#000000' - }, - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", - }, - }, - splitLine: {//分割线配置 - show:true, - lineStyle: { - color: '#999', - } - } - }, - // y轴 - yAxis: { - type: 'value', - name: '个', - axisLabel: { - textStyle:{ - fontSize :15, - color:'#000000' - }, - color: "#000" //刻度线标签颜色 - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", + //按月查询 + findYue(){ + this.twoExample.clear() + this.datayuex=[] + this.datayuey=[] + let paramdata={ + planStatus:this.type, + TrendType:this.echartsData.selectType + } + this.echartsData.getData(paramdata,`/api/StatisticsAnalysis`) + window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate)) + //console.log(this.tabledata[0].companyStatistics.trendStatistics.added) + for(var i=0;i=this.echartsData.selectStartMonth&&this.tabledata[0].companyStatistics.trendStatistics.added[i].month<=this.echartsData.selectEndMonth){ + this.datayuex.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].month) + this.datayuey.push(this.tabledata[0].companyStatistics.trendStatistics.added[i].count) } } - }, - // 数据 - series: [{ - name: '单位预案编制数量', - type: 'line', - markPoint: { - symbolSize:[65, 65], - data: this.tiaoshiPao - }, - data: Y, - } - ], - }; - this.oneExample.setOption(option); + this.tiaoshiPao=this.echartsData.qipao(this.tiaoshiPao,this.datayuey,this.datayuex) + this.twoInit(this.datayuex,this.datayuey) + },1000) } headtext twoExample:any; + tabledata twoInit (X=this.datayuex, Y=this.datayuey) { let that = this this.twoExample = echarts.init(document.getElementById('two'), 'skinUpp'); @@ -296,7 +258,7 @@ export class echartsComponent implements OnInit { // 标题 title: { - text: this.headtext+':总数(1024)', + text: this.headtext+':总数(102)', top: -4, left: 'center', bottom: 100, @@ -377,112 +339,17 @@ export class echartsComponent implements OnInit { const pointInPixel= [params.offsetX, params.offsetY]; if (this.twoExample.containPixel('grid',pointInPixel)) { let xIndex=this.twoExample.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; - if(option.xAxis.data[xIndex]=='2019'||option.xAxis.data[xIndex]=='2020'){ - this.router.navigate(['/statisticanalysis/stataPageThereYearComponent'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); + if(this.echartsData.selectType==2){ + this.router.navigate(['/statisticanalysis/stataPageThereYearComponent'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text,'type':this.type}}); }else{ /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/stataPageThere'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - } - - } - - }); - } - - threeExample:any; - threeInit (X=this.datayuex, Y=this.datayuey) { - let that = this - this.threeExample = echarts.init(document.getElementById('three'), 'skinUpp'); - var option = { - grid: { - top: 50, - left:50, - right: 20, - }, - // 标题 - title: { - text: '预案审核通过'+':总数(1024)', - top: -4, - left: 'center', - bottom: 100, - textStyle:{ - //文字颜色 - color:'#000', - } - }, - //提示框 - tooltip: { - trigger: 'axis', - formatter: (params)=>{ - return this.echartsData.tableTooltip(this.echartsData.tableDataZhi,'预案审核通过') - } - }, - // x轴 - xAxis: { - type: 'category', - data: X, - boundaryGap: true, - axisLabel: { - textStyle:{ - fontSize :15, - color:'#000000' - }, - color: "#000", //刻度线标签颜色 - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", - }, - }, - splitLine: {//分割线配置 - show:true, - lineStyle: { - color: '#999', - } - } - }, - // y轴 - yAxis: { - type: 'value', - name: '个', - axisLabel: { - textStyle:{ - fontSize :15, - color:'#000000' - }, - color: "#000" //刻度线标签颜色 - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", + if(this.echartsData.level=='0'||this.echartsData.level=='1'||this.echartsData.level=='2'){ + this.router.navigate(['/statisticanalysis/stataPageThere'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':this.headtext,'type':this.type}}); + } else if(this.echartsData.level=='3'){ + //中队跳转 + this.router.navigate(['/statisticanalysis/CompangInfo'],{queryParams:{'name':params.name,'type':1}}); } - } - }, - // 数据 - series: [{ - name: '单位预案编制数量', - type: 'line', - markPoint: { - - symbolSize:[65, 65], - data: this.tiaoshiPao - }, - data: Y, - } - ], - }; - this.threeExample.setOption(option); - this.threeExample.getZr().on('click', (params) => { - const pointInPixel= [params.offsetX, params.offsetY]; - if (this.threeExample.containPixel('grid',pointInPixel)) { - let xIndex=this.threeExample.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; - if(option.xAxis.data[xIndex]=='2019'||option.xAxis.data[xIndex]=='2020'){ - this.router.navigate(['/statisticanalysis/stataPageThereYearComponent'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - }else{ - /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/stataPageThere'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); + } } @@ -490,312 +357,8 @@ export class echartsComponent implements OnInit { }); } - fourExample:any; - fourInit (X=this.datayuex, Y=this.datayuey) { - let that = this - this.fourExample = echarts.init(document.getElementById('four'), 'skinUpp'); - var option = { - grid: { - top: 50, - left:50, - right: 20, - }, - // 标题 - title: { - text: '预案编制'+':总数(1024)', - top: -4, - left: 'center', - bottom: 100, - textStyle:{ - //文字颜色 - color:'#000', - } - }, - //提示框 - tooltip: { - trigger: 'axis', - - formatter: (params)=>{ - return this.echartsData.tableTooltip(this.echartsData.tableDataZhi,'预案编制') - } - }, - // x轴 - xAxis: { - type: 'category', - data: X, - boundaryGap: true, - axisLabel: { - textStyle:{ - fontSize :15, - color:'#000000' - }, - color: "#000", //刻度线标签颜色 - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", - }, - }, - splitLine: {//分割线配置 - show:true, - lineStyle: { - color: '#999', - } - } - }, - // y轴 - yAxis: { - type: 'value', - name: '个', - axisLabel: { - textStyle:{ - fontSize :15, - color:'#000000' - }, - color: "#000" //刻度线标签颜色 - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", - } - } - }, - // 数据 - series: [{ - name: '单位预案编制数量', - type: 'line', - markPoint: { - - symbolSize:[65, 65], - data: this.tiaoshiPao - }, - data: Y, - } - ], - }; - this.fourExample.setOption(option); - this.fourExample.getZr().on('click', (params) => { - const pointInPixel= [params.offsetX, params.offsetY]; - if (this.fourExample.containPixel('grid',pointInPixel)) { - let xIndex=this.fourExample.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; - if(option.xAxis.data[xIndex]=='2019'||option.xAxis.data[xIndex]=='2020'){ - this.router.navigate(['/statisticanalysis/stataPageThereYearComponent'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - }else{ - /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/stataPageThere'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - } - - } - - }); - } - - fiveExample:any; - fiveInit (X=this.datayuex, Y=this.datayuey) { - let that = this - this.fiveExample = echarts.init(document.getElementById('five'), 'skinUpp'); - var option = { - grid: { - top: 50, - left:50, - right: 20, - bottom: 20, - }, - // 标题 - title: { - text: '预案审核退回'+':总数(1024)', - top: -4, - left: 'center', - bottom: 100, - textStyle:{ - //文字颜色 - color:'#000', - } - }, - //提示框 - tooltip: { - trigger: 'axis', - - formatter: (params)=>{ - return this.echartsData.tableTooltip(this.echartsData.tableDataZhi,'预案审核退回') - } - }, - // x轴 - xAxis: { - type: 'category', - data: X, - boundaryGap: true, - axisLabel: { - textStyle:{ - fontSize :15, - color:'#000000' - }, - color: "#000", //刻度线标签颜色 - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", - }, - }, - splitLine: {//分割线配置 - show:true, - lineStyle: { - color: '#999', - } - } - }, - // y轴 - yAxis: { - type: 'value', - name: '个', - axisLabel: { - textStyle:{ - fontSize :15, - color:'#000000' - }, - color: "#000" //刻度线标签颜色 - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", - } - } - }, - // 数据 - series: [{ - name: '单位预案编制数量', - type: 'line', - markPoint: { - - symbolSize:[65, 65], - data: this.tiaoshiPao - }, - data: Y, - } - ], - }; - this.fiveExample.setOption(option); - this.fiveExample.getZr().on('click', (params) => { - const pointInPixel= [params.offsetX, params.offsetY]; - if (this.fiveExample.containPixel('grid',pointInPixel)) { - let xIndex=this.fiveExample.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; - if(option.xAxis.data[xIndex]=='2019'||option.xAxis.data[xIndex]=='2020'){ - this.router.navigate(['/statisticanalysis/stataPageThereYearComponent'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - }else{ - /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/stataPageThere'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - } - - } - - }); - } - - sixExample:any; - sixInit (X=this.datayuex, Y=this.datayuey) { - let that = this - this.sixExample = echarts.init(document.getElementById('six'), 'skinUpp'); - var option = { - grid: { - top: 50, - left:50, - right: 20, - bottom: 20, - }, - // 标题 - title: { - text: '预案审核中'+':总数(1024)', - top: -4, - left: 'center', - textStyle:{ - //文字颜色 - color:'#000', - } - }, - //提示框 - tooltip: { - trigger: 'axis', - - formatter: (params)=>{ - return this.echartsData.tableTooltip(this.echartsData.tableDataZhi,'预案审核中') - } - }, - // x轴 - xAxis: { - type: 'category', - data: X, - boundaryGap: true, - axisLabel: { - textStyle:{ - fontSize :15, - color:'#000000' - }, - color: "#000", //刻度线标签颜色 - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", - }, - }, - splitLine: {//分割线配置 - show:true, - lineStyle: { - color: '#999', - } - } - }, - // y轴 - yAxis: { - type: 'value', - name: '个', - axisLabel: { - textStyle:{ - fontSize :15, - color:'#000000' - }, - color: "#000" //刻度线标签颜色 - }, - //设置坐标轴字体颜色和宽度 - axisLine: { - lineStyle: { - color: "#000", - } - } - }, - // 数据 - series: [{ - name: '单位预案编制数量', - type: 'line', - markPoint: { - - symbolSize:[65, 65], - data: this.tiaoshiPao - }, - data: Y, - } - ], - }; - this.sixExample.setOption(option); - this.sixExample.getZr().on('click', (params) => { - const pointInPixel= [params.offsetX, params.offsetY]; - if (this.sixExample.containPixel('grid',pointInPixel)) { - let xIndex=this.sixExample.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; - if(option.xAxis.data[xIndex]=='2019'||option.xAxis.data[xIndex]=='2020'){ - this.router.navigate(['/statisticanalysis/stataPageThereYearComponent'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - }else{ - /*事件处理代码书写位置*/ - this.router.navigate(['/statisticanalysis/stataPageThere'],{queryParams:{'level':option.xAxis.data[xIndex],'headtext':option.title.text}}); - } - - } - - }); - } + threeExample:any; + diff --git a/src/app/statistic-analysis/state/page-zhong-dui-details/page-zhong-dui-details.component.ts b/src/app/statistic-analysis/state/page-zhong-dui-details/page-zhong-dui-details.component.ts index 244d925..da1545a 100644 --- a/src/app/statistic-analysis/state/page-zhong-dui-details/page-zhong-dui-details.component.ts +++ b/src/app/statistic-analysis/state/page-zhong-dui-details/page-zhong-dui-details.component.ts @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2020-09-05 13:50:45 * @LastEditors: sueRimn - * @LastEditTime: 2020-11-10 14:36:51 + * @LastEditTime: 2021-03-12 16:08:24 */ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; @@ -19,23 +19,40 @@ export class PageZhongDuiDetailsComponent implements OnInit { constructor( public route: ActivatedRoute,public data: EchartsDataService) { } - zhongNameData = ["浦东中队","黄浦中队","徐汇中队","长宁中队","静安中队","普陀中队","虹口中队","杨浦中队","闵行中队","宝山中队","嘉定中队"] - zhongNumData = [200,190,180,170,160,150,140,130,120,110,100] + zhongNameData = [] + zhongNumData = [] tiaoshiPao:any headtext:string; headName:string; + type + lastid + tabledata + organizationId=[] ngOnInit(): void { - window.setTimeout(()=>{ - let level:string; + let level:string; this.route.queryParams.subscribe(param=>{ this.headtext=param.headtext level=param.level this.headName=level+''+this.headtext; - //console.log(headName) + this.type=param.type + this.lastid=param.id }); + let paramdata={ + planStatus:this.type, + OrganizationId:this.lastid + } + this.data.getData(paramdata,`/api/StatisticsAnalysis/Plans/Status`) + window.setTimeout(()=>{ + this.tabledata=JSON.parse(JSON.stringify(this.data.allDate)) + console.log(this.tabledata) + for(var i=0;i
-
+
@@ -125,23 +125,35 @@
- - - - - - -
-
- -

{{items.name}}

-
+
+ +
+
+ +

{{items.name}}

- - - +
+
+ + + + + + + +
+
+ +

{{items.name}}

+
+
+ +
+
+
@@ -419,8 +431,9 @@
+
visibility
- + diff --git a/src/app/ui/collection-tools-building/collection-tools.component.scss b/src/app/ui/collection-tools-building/collection-tools.component.scss index 2c39cc0..25373a9 100644 --- a/src/app/ui/collection-tools-building/collection-tools.component.scss +++ b/src/app/ui/collection-tools-building/collection-tools.component.scss @@ -191,7 +191,6 @@ } } - //右侧属性 .property{ display: flex; @@ -314,6 +313,16 @@ } } +.hideAllTreeNode { + box-sizing: border-box; + margin: 3px 0; + padding: 0 6px 0 10px; + font-size: 14px; + height: 24px; + line-height: 24px; + display: flex; + label { display: inline-block; flex: 1; cursor: pointer; } +} //右侧消防要素 .firecategories{ background-color: #fff; diff --git a/src/app/ui/collection-tools-building/collection-tools.component.ts b/src/app/ui/collection-tools-building/collection-tools.component.ts index 7105247..1f400df 100644 --- a/src/app/ui/collection-tools-building/collection-tools.component.ts +++ b/src/app/ui/collection-tools-building/collection-tools.component.ts @@ -692,7 +692,7 @@ export class CollectionToolsBuildingComponent implements OnInit { let that = this window.setTimeout(()=>{ - document.getElementById("functionalDomainContent").oncontextmenu = function (event) { + document.getElementById("functionalDomainContentTwo").oncontextmenu = function (event) { // that.canvas.cancelPaint() that.selectImageIndex = -1 event.preventDefault(); @@ -1316,7 +1316,7 @@ export class CollectionToolsBuildingComponent implements OnInit { //处理 tree 数据结构 handleTreeData (storeyData) { - + this.hideAllTreenode = true this.storeyData = storeyData let data = this.allFireElements //所有消防要素模板 let treeData = [] //tree型 处理完成后的数据 @@ -1384,9 +1384,24 @@ export class CollectionToolsBuildingComponent implements OnInit { this.canvas.setHighlight(iconHighLightArr) } + hideAllTreenode:boolean = true; //全部显示/隐藏tree节点 + toggoleAllTreenode () { + this.hideAllTreenode = !this.hideAllTreenode + let list = [] + this.allFireElements.forEach(element=>{ + if (element.isTemplate) { this.hideAllTreenode? element.isLook = false : element.isLook = true } + }) + this.treeControl.dataNodes.forEach(item=>{ + this.hideAllTreenode? item.isLook = false : item.isLook = true + item.level === 0 ? list.push(item) : null + }) + list.forEach(item=>{ + this.clickLookItem(item) + }) + } + //点击数节点的显示隐藏icon clickLookItem(node){ - //修改真实素材islook属性 for(let key in this.storeyData.data){ if(key == node.id){ @@ -1398,9 +1413,8 @@ export class CollectionToolsBuildingComponent implements OnInit { console.log(node) if(node.isTemplate){ this.allFireElements.forEach(item=>{ - if(item.id == node.id || item.name == "其他"){ - item.isLook = !item.isLook - } + if(item.id == node.id){ item.isLook = !item.isLook } + if (item.name == '其他' && node.name == '其他') { item.isLook = !item.isLook } }) } @@ -2040,6 +2054,23 @@ export class CollectionToolsBuildingComponent implements OnInit { selectLibrary:any; //选中的素材库 selectImage:any; //选中的素材库图片 selectImageIndex:number; //选中的素材库图片index + searchSettimeout:any; //延时器 + searchInput:string = null; //模糊搜索 input + searchLibrary:any = []; //模糊搜索 素材 + + //输入框 输入事件 + libraryChange () { + window.clearTimeout(this.searchSettimeout) + this.searchSettimeout = window.setTimeout(()=>{ + if (this.searchInput === "") { + this.searchLibrary = [] + } else { + this.http.get(`/api/Assets?assetName=${this.searchInput}`).subscribe((data:any)=>{ + this.searchLibrary = data + }) + } + },500) + } //获取素材库 getAllLibrary (type:string='input') { diff --git a/src/app/ui/collection-tools-building/panel.scss b/src/app/ui/collection-tools-building/panel.scss index fe2f0b7..2b1fed4 100644 --- a/src/app/ui/collection-tools-building/panel.scss +++ b/src/app/ui/collection-tools-building/panel.scss @@ -212,6 +212,18 @@ box-sizing: border-box; margin-left: 10px; } +//模糊搜索 input +.searchLibrary { + display: block; + border: 1px solid rgb(219, 212, 212); + border-radius: 5px; + outline: none; + box-sizing: border-box; + margin: 5px auto; + padding-left: 5px; + width: 95%; + height: 30px; +} .panelLibraryFlex { display: flex; flex-direction: row; diff --git a/src/app/ui/collection-tools-plan/collection-tools.component.html b/src/app/ui/collection-tools-plan/collection-tools.component.html index 0fdc889..9cc69c0 100644 --- a/src/app/ui/collection-tools-plan/collection-tools.component.html +++ b/src/app/ui/collection-tools-plan/collection-tools.component.html @@ -103,23 +103,34 @@
- - - - - - -
-
- -

{{items.name}}

-
+
+ +
+
+ +

{{items.name}}

- - - +
+
+ + + + + + + +
+
+ +

{{items.name}}

+
+
+ +
+
+
diff --git a/src/app/ui/collection-tools-plan/collection-tools.component.ts b/src/app/ui/collection-tools-plan/collection-tools.component.ts index 5bd8a51..c75df3a 100644 --- a/src/app/ui/collection-tools-plan/collection-tools.component.ts +++ b/src/app/ui/collection-tools-plan/collection-tools.component.ts @@ -1409,9 +1409,8 @@ export class CollectionToolsPlanComponent implements OnInit { //所有消防要素模板变化islook值 if(node.isTemplate){ this.allFireElements.forEach(item=>{ - if(item.id == node.id || item.name == "其他"){ - item.isLook = !item.isLook - } + if(item.id == node.id){ item.isLook = !item.isLook } + if (item.name == '其他' && node.name == '其他') { item.isLook = !item.isLook } }) } @@ -2043,6 +2042,23 @@ export class CollectionToolsPlanComponent implements OnInit { selectLibrary:any; //选中的素材库 selectImage:any; //选中的素材库图片 selectImageIndex:number; //选中的素材库图片index + searchSettimeout:any; //延时器 + searchInput:string = null; //模糊搜索 input + searchLibrary:any = []; //模糊搜索 素材 + + //输入框 输入事件 + libraryChange () { + window.clearTimeout(this.searchSettimeout) + this.searchSettimeout = window.setTimeout(()=>{ + if (this.searchInput === "") { + this.searchLibrary = [] + } else { + this.http.get(`/api/Assets?assetName=${this.searchInput}`).subscribe((data:any)=>{ + this.searchLibrary = data + }) + } + },500) + } //获取素材库 getAllLibrary (type:string='input') { diff --git a/src/app/ui/collection-tools-plan/panel.scss b/src/app/ui/collection-tools-plan/panel.scss index 822d0e6..09b8ceb 100644 --- a/src/app/ui/collection-tools-plan/panel.scss +++ b/src/app/ui/collection-tools-plan/panel.scss @@ -212,6 +212,18 @@ box-sizing: border-box; margin-left: 10px; } +//模糊搜索 input +.searchLibrary { + display: block; + border: 1px solid rgb(219, 212, 212); + border-radius: 5px; + outline: none; + box-sizing: border-box; + margin: 5px auto; + padding-left: 5px; + width: 95%; + height: 30px; +} .panelLibraryFlex { display: flex; flex-direction: row; diff --git a/src/app/ui/collection-tools/collection-tools.component.html b/src/app/ui/collection-tools/collection-tools.component.html index 169b3b2..4b65115 100644 --- a/src/app/ui/collection-tools/collection-tools.component.html +++ b/src/app/ui/collection-tools/collection-tools.component.html @@ -202,23 +202,35 @@
- - - - - - -
-
- -

{{items.name}}

-
+
+ +
+
+ +

{{items.name}}

- - - +
+
+ + + + + + + +
+
+ +

{{items.name}}

+
+
+ +
+
+
@@ -504,6 +516,7 @@
+
visibility
diff --git a/src/app/ui/collection-tools/collection-tools.component.scss b/src/app/ui/collection-tools/collection-tools.component.scss index 8df231d..2ca8282 100644 --- a/src/app/ui/collection-tools/collection-tools.component.scss +++ b/src/app/ui/collection-tools/collection-tools.component.scss @@ -357,6 +357,16 @@ } } +.hideAllTreeNode { + box-sizing: border-box; + margin: 3px 0; + padding: 0 6px 0 10px; + font-size: 14px; + height: 24px; + line-height: 24px; + display: flex; + label { display: inline-block; flex: 1; cursor: pointer; } +} //右侧消防要素 .firecategories{ position: relative; diff --git a/src/app/ui/collection-tools/collection-tools.component.ts b/src/app/ui/collection-tools/collection-tools.component.ts index d5a1ca8..641f566 100644 --- a/src/app/ui/collection-tools/collection-tools.component.ts +++ b/src/app/ui/collection-tools/collection-tools.component.ts @@ -1343,6 +1343,7 @@ export class CollectionToolsComponent implements OnInit { selectPanelPoint //传过来的处置素材 //处理 tree 数据结构 handleTreeData (storeyData,selectPanelPoint) { + this.hideAllTreenode = true this.storeyData = storeyData this.selectPanelPoint = selectPanelPoint let data = this.allFireElements //所有消防要素模板 @@ -1434,6 +1435,22 @@ export class CollectionToolsComponent implements OnInit { this.canvas.setHighlight(iconHighLightArr) } + hideAllTreenode:boolean = true; //全部显示/隐藏tree节点 + toggoleAllTreenode () { + this.hideAllTreenode = !this.hideAllTreenode + let list = [] + this.allFireElements.forEach(element=>{ + if (element.isTemplate) { this.hideAllTreenode? element.isLook = false : element.isLook = true } + }) + this.treeControl.dataNodes.forEach(item=>{ + this.hideAllTreenode? item.isLook = false : item.isLook = true + item.level === 0 ? list.push(item) : null + }) + list.forEach(item=>{ + this.clickLookItem(item) + }) + } + //点击数节点的显示隐藏icon clickLookItem(node){ //修改真实素材islook属性 @@ -1453,9 +1470,8 @@ export class CollectionToolsComponent implements OnInit { //所有消防要素模板变化islook值 if(node.isTemplate){ this.allFireElements.forEach(item=>{ - if(item.id == node.id || item.name == "其他"){ - item.isLook = !item.isLook - } + if ( item.id == node.id ) { item.isLook = !item.isLook } + if (item.name == '其他' && node.name == '其他') { item.isLook = !item.isLook } }) } @@ -2106,6 +2122,23 @@ export class CollectionToolsComponent implements OnInit { selectLibrary:any; //选中的素材库 selectImage:any; //选中的素材库图片 selectImageIndex:number; //选中的素材库图片index + searchSettimeout:any; //延时器 + searchInput:string = null; //模糊搜索 input + searchLibrary:any = []; //模糊搜索 素材 + + //输入框 输入事件 + libraryChange () { + window.clearTimeout(this.searchSettimeout) + this.searchSettimeout = window.setTimeout(()=>{ + if (this.searchInput === "") { + this.searchLibrary = [] + } else { + this.http.get(`/api/Assets?assetName=${this.searchInput}`).subscribe((data:any)=>{ + this.searchLibrary = data + }) + } + },500) + } //获取素材库 getAllLibrary (type:string='input') { diff --git a/src/app/ui/collection-tools/panel.scss b/src/app/ui/collection-tools/panel.scss index dc0e63c..666a2ad 100644 --- a/src/app/ui/collection-tools/panel.scss +++ b/src/app/ui/collection-tools/panel.scss @@ -209,6 +209,18 @@ box-sizing: border-box; margin-left: 10px; } +//模糊搜索 input +.searchLibrary { + display: block; + border: 1px solid rgb(219, 212, 212); + border-radius: 5px; + outline: none; + box-sizing: border-box; + margin: 5px auto; + padding-left: 5px; + width: 95%; + height: 30px; +} .panelLibraryFlex { display: flex; flex-direction: row;