上海预案管理平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

239 lines
13 KiB

/*
* @Descripttion:
* @version:
* @Author: sueRimn
* @Date: 2020-09-01 15:24:39
* @LastEditors: sueRimn
* @LastEditTime: 2021-04-29 09:11:46
*/
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import {EchartsDataService,} from '../../echarts-data.service'
declare var echarts: any;
declare var CryptoJS
@Component({
selector: 'app-page-one',
templateUrl: './page-one.component.html',
styleUrls: ['./page-one.component.scss']
})
export class PageOneComponent implements OnInit {
options:any;
constructor(private router: Router,public echartsData:EchartsDataService) { }
padHw
orid
ngOnInit() {
if(window.matchMedia("(max-width: 1400px)").matches){
this.padHw=true
//this.padjt=
}else{
this.padHw=false
}
if(sessionStorage.getItem('refresh') === 'true') {
sessionStorage.removeItem('refresh');
location.reload();
}
window.setTimeout(()=>{
this.getechartsdata()
})
let jwt = sessionStorage.getItem("token");
let rawJwt = CryptoJS.enc.Base64.parse(jwt.split('.')[1]);
let identityJson = CryptoJS.enc.Utf8.stringify(rawJwt);
let identityJsonparse=JSON.parse(identityJson)
this.orid=identityJsonparse.oid
//console.log(identityJsonparse)
}
ngOnDestroy(): void {
this.indexBzt.clear()
this.indexBzt.dispose()
}
async getechartsdata(){
await this.echartsData.getData(null,`/api/StatisticsAnalysis/Plans`)
this.initCharts("pieone")
this.initCharts("pietwo")
}
/* 首页饼状图 */
indexBzt
tabledata
count
indexData
initCharts(tid){
this.tabledata=JSON.parse(JSON.stringify(this.echartsData.allDate))
//console.log(this.tabledata)
var ec = echarts as any;
this.indexBzt = ec.init(document.getElementById(tid),'walden');
var options={
title: {
text:tid=='pieone'?`预案级别统计(${this.tabledata[0].planCategoryStatistics.totalCount}份)` :`预案状态统计(${this.tabledata[0].planStatusStatistics.totalCount}份)`,
top: "7%",
left: 'center',
textStyle:{
fontSize:this.padHw?25: 31
}
},
tooltip: {
trigger: 'item',
4 years ago
formatter: (params)=>{
this.echartsData.biaogeTishiyuan(params.data,tid)
4 years ago
return this.echartsData.res
}
},
legend: {
bottom: 50,
left: 'center',
//padding:20,
// itemWidth:60,
// itemHeight:25,
textStyle:{
fontSize:this.padHw?15: 18,
color:"#000000"
},
data:tid=='pieone'?['Ⅰ级预案', 'Ⅱ级预案', 'Ⅲ级预案', 'Ⅳ级预案', 'Ⅴ级预案'] :['预案新增', '预案审核通过', '预案编制', '预案审核退回', '预案审核中']
},
series: [
{
name: '访问来源',
type: 'pie',
radius: '50%',
center: ['50%', '45%'],
label:{
normal:{
show:true,
// position: 'inner',
fontSize:this.padHw?14: 18,
formatter:this.padHw?'{b} \n{c}份({d}%)' :'{b} {c}份\n({d}%)',
},
rich: {
d: {
align: 'center',
}
},
},
data:tid=='pieone'?[
{value:this.tabledata[0].planCategoryStatistics.planCategories[0]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[0].count:0, name: 'Ⅰ级预案', planStatusName:this.tabledata[0].planCategoryStatistics.planCategories[0]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[0].planCategoryName:'',type:1},
{value:this.tabledata[0].planCategoryStatistics.planCategories[1]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[1].count:0, name: 'Ⅱ级预案', planStatusName:this.tabledata[0].planCategoryStatistics.planCategories[1]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[1].planCategoryName:'',type:2},
{value:this.tabledata[0].planCategoryStatistics.planCategories[2]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[2].count:0, name: 'Ⅲ级预案', planStatusName:this.tabledata[0].planCategoryStatistics.planCategories[2]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[2].planCategoryName:'',type:3},
{value:this.tabledata[0].planCategoryStatistics.planCategories[3]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[3].count:0, name: 'Ⅳ级预案', planStatusName:this.tabledata[0].planCategoryStatistics.planCategories[3]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[3].planCategoryName:'',type:4},
{value:this.tabledata[0].planCategoryStatistics.planCategories[4]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[4].count:0, name: 'Ⅴ级预案', planStatusName:this.tabledata[0].planCategoryStatistics.planCategories[4]!=undefined? this.tabledata[0].planCategoryStatistics.planCategories[4].planCategoryName:'',type:5},
]: [
{value:this.tabledata[0].planStatusStatistics.planStatuses[0]!=undefined? this.tabledata[0].planStatusStatistics.planStatuses[0].count:0, name: '预案新增',type:1,planStatusName:this.tabledata[0].planStatusStatistics.planStatuses[0]!=undefined?this.tabledata[0].planStatusStatistics.planStatuses[0].planStatusName:''},
{value:this.tabledata[0].planStatusStatistics.planStatuses[2]!=undefined? this.tabledata[0].planStatusStatistics.planStatuses[2].count:0, name: '预案审核通过',type:3,planStatusName:this.tabledata[0].planStatusStatistics.planStatuses[2]!=undefined? this.tabledata[0].planStatusStatistics.planStatuses[2].planStatusName:''},
{value:this.tabledata[0].planStatusStatistics.planStatuses[4]!=undefined? this.tabledata[0].planStatusStatistics.planStatuses[4].count:0, name: '预案编制',type:5,planStatusName:this.tabledata[0].planStatusStatistics.planStatuses[4]!=undefined?this.tabledata[0].planStatusStatistics.planStatuses[4].planStatusName:''},
{value:this.tabledata[0].planStatusStatistics.planStatuses[3]!=undefined? this.tabledata[0].planStatusStatistics.planStatuses[3].count:0, name: '预案审核退回',type:4,planStatusName:this.tabledata[0].planStatusStatistics.planStatuses[3]!=undefined? this.tabledata[0].planStatusStatistics.planStatuses[3].planStatusName:''},
{value:this.tabledata[0].planStatusStatistics.planStatuses[1]!=undefined? this.tabledata[0].planStatusStatistics.planStatuses[1].count:0, name: '预案审核中',type:2,planStatusName:this.tabledata[0].planStatusStatistics.planStatuses[1]!=undefined? this.tabledata[0].planStatusStatistics.planStatuses[1].planStatusName:''}
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
this.indexBzt.on('click', (params) => {
// console.log(params)
if(tid=='pieone'){
for(var i=0;i<this.tabledata[0].planCategoryStatistics.planCategories.length;i++){
if(this.tabledata[0].planCategoryStatistics.planCategories[i].planCategoryName==params.data.planStatusName){
if((this.echartsData.level=='0'||this.echartsData.level=='1'||this.echartsData.level=='2')&&this.tabledata[0].planCategoryStatistics.planCategories[i].organizations.length>0){
this.tabledata[0].planCategoryStatistics.planCategories[i].organizations.forEach((element,index,array) => {
if(array[index].organizationId==this.orid){
array.splice(index,1)
}
window.setTimeout(()=>{
if(array.length>0){
this.router.navigate(['/statisticanalysis/statePageOne/time'],{queryParams:{'level':params.name,'type':params.data.type,'tid':'pieone'}});
}
else{
this.router.navigate(['/statisticanalysis/AllPlan'],{queryParams:{'name':params.name,'id':null,'type':params.data.type,'tid':'pieone'}});
}
})
});
}
else if(this.echartsData.level=='3'){
//中队跳转
this.router.navigate(['/statisticanalysis/AllPlan'],{queryParams:{'name':params.name,'id':null,'type':params.data.type,'tid':'pieone'}});
}
}
}
}else{
for(var i=0;i<this.tabledata[0].planStatusStatistics.planStatuses.length;i++){
if(this.tabledata[0].planStatusStatistics.planStatuses[i].planStatusName==params.data.planStatusName){
if((this.echartsData.level=='0'||this.echartsData.level=='1'||this.echartsData.level=='2')&&this.tabledata[0].planStatusStatistics.planStatuses[i].organizations.length>0){
this.tabledata[0].planStatusStatistics.planStatuses[i].organizations.forEach((element,index,array) => {
if(array[index].organizationId==this.orid){
array.splice(index,1)
}
window.setTimeout(()=>{
if(array.length>0){
this.router.navigate(['/statisticanalysis/statePageOne/time'],{queryParams:{'level':params.name,'type':params.data.type,'tid':'pietwo'}});
}
else{
this.router.navigate(['/statisticanalysis/AllPlan'],{queryParams:{'name':params.name,'id':null,'type':params.data.type,'tid':'pietwo'}});
}
})
});
}
else if(this.echartsData.level=='3'){
//中队跳转
this.router.navigate(['/statisticanalysis/AllPlan'],{queryParams:{'name':params.name,'id':null,'type':params.data.type,'tid':'pietwo'}});
}
}
}
4 years ago
}
});
this.indexBzt.setOption(options);
}
/**
* @name:
* @test: test font
* @msg:
* @param {string()}
* @return {type}
*/
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 = '<div class="tishi" style=" backgroundColor:rgba(255,255,255,1);width:100%;height:100%;"><div style="padding:10px 0 5px 0"><span style="color:#000000;font-size:30px;text-align: center;display:block;">'+biaotou+'</span></div>'
res+='</br><div style="width:300px;height:100%;padding:0 20px 15px 20px"><table style="width:300px; background:#FFFFFF; color:#000000;border-collapse:collapse;"cellspacing="0"; >';
res+='<thead><tr>';
res+='<td style="text-align:center;width:30%;border:1px solid #000000">名称</td>';
res+='<td style="text-align:center;width:30%;border:1px solid #000000">数量</td>'
res+='<td style="text-align:center;width:30%;border:1px solid #000000">总占比</td>'
res+='</tr></thead>'
res+='<tbody>';
for(var i=0;i<jsonObj.length;i++){
res+='<tr>'
res+='<td style="text-align:center;border:1px solid #000000">'+jsonObj[i].name+'</td>'
res+='<td style="text-align:center;border:1px solid #000000">'+jsonObj[i].number+'</td>'
res+='<td style="text-align:center;border:1px solid #000000">'+jsonObj[i].zhanbi+'</td></tr>'
}
res+='</tbody>'
res+='<tfoot><td style="text-align:center;border:1px solid #000000">总计</td><td style="text-align:center;border:1px solid #000000">1356</td><td style="text-align:center;border:1px solid #000000">19%</td></tfoot>'
res+='</table></div></div>'
return res
}
}