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.
216 lines
7.0 KiB
216 lines
7.0 KiB
5 years ago
|
import { Component, OnInit } from '@angular/core';
|
||
|
import { Router,ActivatedRoute } from '@angular/router';
|
||
|
import {EchartsDataService} from '../../echarts-data.service';
|
||
|
import { MatSnackBarConfig, MatSnackBar } from '@angular/material/snack-bar';
|
||
|
import { DateAdapter } from '@angular/material/core';
|
||
|
declare var echarts: any;
|
||
|
|
||
|
@Component({
|
||
|
selector: 'app-page-there',
|
||
|
templateUrl: './page-there.component.html',
|
||
|
styleUrls: ['./page-there.component.scss']
|
||
|
})
|
||
|
export class PageThereComponent implements OnInit {
|
||
|
|
||
|
constructor(private router: Router,private activatedRoute: ActivatedRoute,public echartsData:EchartsDataService,public snackBar: MatSnackBar,private adapter: DateAdapter<any>) { }
|
||
|
|
||
|
zhutu//echarts实例
|
||
|
option
|
||
|
time:String
|
||
|
buildingTypeName:String
|
||
|
setTimeoutObj//延时器需要清除
|
||
|
headtext:string;
|
||
|
zhong:string
|
||
|
|
||
|
ngOnDestroy():void{
|
||
|
this.zhutu.clear()
|
||
|
this.zhutu.dispose()
|
||
|
}
|
||
|
|
||
|
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.headtext=param.headtext
|
||
|
datayuex=param.level
|
||
|
this.zhong=param.zhong
|
||
|
headName=datayuex+''+this.headtext;
|
||
|
//console.log(headName)
|
||
|
});
|
||
|
window.setTimeout(()=>{
|
||
|
this.zhuzhuangtu(headName)
|
||
|
},0)
|
||
|
}
|
||
|
|
||
|
selectType:string = 'month'; //选择当前的 查询类型 按月/年
|
||
|
|
||
|
|
||
|
//查询数据
|
||
|
years:any = []
|
||
|
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)
|
||
|
}
|
||
|
// console.log(this.years)
|
||
|
}
|
||
|
|
||
|
selectOneYear:any = (new Date()).getFullYear() //开始年份
|
||
|
selectStartMonth:any = 1 //开始月份
|
||
|
Submit (e) {
|
||
|
|
||
|
}
|
||
|
selectStartYear:any = (new Date()).getFullYear() //开始年份
|
||
|
|
||
|
|
||
|
topTextlabel = {
|
||
|
show: true, // 开启显示
|
||
|
position: 'top', // 在上方显示
|
||
|
distance: 10, // 距离图形元素的距离。当 position 为字符描述值(如 'top'、'insideRight')时候有效。
|
||
|
verticalAlign: 'middle',
|
||
|
textStyle: { // 数值样式
|
||
|
color: 'black',
|
||
|
fontSize: 12
|
||
|
}
|
||
|
}//柱状图数值顶部显示
|
||
|
zhiNameData = ["浦东支队","黄埔支队","徐汇支队","长宁支队","静安支队","普陀支队","虹口支队","杨浦支队","闵行支队","宝山支队","嘉定支队","松江支队","金山支队","崇明支队"]
|
||
|
zhiNumData = [200,190,180,170,160,150,140,130,120,110,100,90,80,70]
|
||
|
zhongNameData = ["浦东中队","黄埔中队","徐汇中队","长宁中队","静安中队","普陀中队","虹口中队","杨浦中队","闵行中队","宝山中队","嘉定中队","松江中队","金山中队","崇明中队"]
|
||
|
tiaoshiPao:any
|
||
|
//气泡提示数据获取
|
||
|
bianli(){
|
||
|
var arrshuzu='[';
|
||
|
for(var i=0;i<this.zhiNumData.length;i++){
|
||
|
arrshuzu+='{"value":'+this.zhiNumData[i]+',"coord":['+i+','+this.zhiNumData[i]+'],"name":'+'"'+this.zhiNameData[i]+'"'+'},'
|
||
|
}
|
||
|
arrshuzu=arrshuzu.substring(0,arrshuzu.length-1)
|
||
|
arrshuzu+=']'
|
||
|
this.tiaoshiPao=JSON.parse(arrshuzu)
|
||
|
console.log(this.tiaoshiPao)
|
||
|
//return tishiPao
|
||
|
}
|
||
|
date = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月','九月']
|
||
|
dateNum = [270, 253, 244, 199, 189, 173, 160, 198,200]
|
||
|
//返回
|
||
|
goBack () {
|
||
|
history.go(-1)
|
||
|
this.echartsData.statefulInspectionToggle = true
|
||
|
}
|
||
|
|
||
|
axisLabel = {
|
||
|
interval: 0,
|
||
|
formatter:function(value)
|
||
|
{
|
||
|
var ret = "";//拼接加\n返回的类目项
|
||
|
var maxLength = 2;//每项显示文字个数
|
||
|
var valLength = value.length;//X轴类目项的文字个数
|
||
|
var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
|
||
|
if (rowN > 1)//如果类目项的文字大于3,
|
||
|
{
|
||
|
for (var i = 0; i < rowN; i++) {
|
||
|
var temp = "";//每次截取的字符串
|
||
|
var start = i * maxLength;//开始截取的位置
|
||
|
var end = start + maxLength;//结束截取的位置
|
||
|
//这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
|
||
|
temp = value.substring(start, end) + "\n";
|
||
|
ret += temp; //凭借最终的字符串
|
||
|
}
|
||
|
return ret;
|
||
|
}
|
||
|
else {
|
||
|
return value;
|
||
|
}
|
||
|
}
|
||
|
}//echarts两个字换行
|
||
|
/* 柱状图 */
|
||
|
zhuzhuangtu(headName:string){
|
||
|
var ec = echarts as any;
|
||
|
this.zhutu = ec.init(document.getElementById('zhidui'),'walden');
|
||
|
this.option = {
|
||
|
title: {
|
||
|
text: headName,
|
||
|
left: "center",
|
||
|
top: "0",
|
||
|
textStyle: {
|
||
|
fontSize: 30
|
||
|
}
|
||
|
},
|
||
|
/* grid: {
|
||
|
left: '5%',
|
||
|
bottom:'35%'
|
||
|
}, */
|
||
|
xAxis: {
|
||
|
type: 'category',
|
||
|
data: this.zhiNameData,
|
||
|
//axisLabel: this.axisLabel,
|
||
|
axisLabel:{
|
||
|
//this.axisLabel,
|
||
|
textStyle:{
|
||
|
fontSize :18,
|
||
|
color:'#000000'
|
||
|
}
|
||
|
|
||
|
}
|
||
|
},
|
||
|
yAxis: {
|
||
|
type: 'value',
|
||
|
axisLabel:{
|
||
|
textStyle:{
|
||
|
fontSize :18,
|
||
|
color:'#000000'
|
||
|
}
|
||
|
|
||
|
}
|
||
|
},
|
||
|
tooltip: {
|
||
|
trigger: 'item',
|
||
|
formatter: (params)=>{
|
||
|
return this.echartsData.biaogeTishi(params.name)
|
||
|
},
|
||
|
position: this.echartsData.tableTooltipNoShowq
|
||
|
/* backgroundColor:'rgba(255,255,255,1)',
|
||
|
borderWidth:'1',
|
||
|
borderRadius :'0' */
|
||
|
},
|
||
|
series: [{
|
||
|
data: this.zhiNumData,
|
||
|
type: 'bar',
|
||
|
markPoint: {
|
||
|
symbolSize:[65, 65],
|
||
|
data: this.tiaoshiPao
|
||
|
},
|
||
|
backgroundStyle: {
|
||
|
color: 'rgba(220, 220, 220, 0.8)'
|
||
|
},
|
||
|
barWidth :'38',
|
||
|
//label: this.topTextlabel
|
||
|
}]
|
||
|
};
|
||
|
this.zhutu.getZr().on('click',params=>{
|
||
|
// console.log(params.name)
|
||
|
const pointInPixel= [params.offsetX, params.offsetY];
|
||
|
if (this.zhutu.containPixel('grid',pointInPixel)) {
|
||
|
let xIndex=this.zhutu.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0];
|
||
|
/*事件处理代码书写位置*/
|
||
|
/* this.echartsData.statefulInspectionName = this.option.xAxis.data[xIndex]+'预案新增'
|
||
|
this.echartsData.statefulInspectionToggle = false */
|
||
|
this.router.navigate(['/statisticanalysis/PageZhongDuiDetails'],{queryParams:{'level':this.option.xAxis.data[xIndex],'headtext':headName}});
|
||
|
}
|
||
|
});
|
||
|
/* this.zhutu.on('click', (params) => {
|
||
|
console.log(params)
|
||
|
this.echartsData.statefulInspectionName =params.name;
|
||
|
this.router.navigateByUrl(`/statisticanalysis/delete_one/delete_four`);
|
||
|
}); */
|
||
|
this.zhutu.setOption(this.option);
|
||
|
}
|
||
|
}
|