Skip to content
analysis-status.component.ts 4.71 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, OnInit} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {DatePipe} from '@angular/common';
import {AnalysisService} from '../../analysis.service';
import {OverAllService} from '../../../overAll/overAll.service';
import {NzMessageService} from 'ng-zorro-antd';
wangqinghua's avatar
wangqinghua committed
import {CommonService} from '../../../shared/common/common.service';
wangqinghua's avatar
wangqinghua committed

@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'smart-analysis-status',
    templateUrl: './analysis-status.component.html',
    styles: []
wangqinghua's avatar
wangqinghua committed
})
export class AnalysisStatusComponent implements OnInit {

wangqinghua's avatar
wangqinghua committed
    isLoading = false;
wangqinghua's avatar
wangqinghua committed
    startTime;
    endTime;
wangqinghua's avatar
wangqinghua committed
    timeType = '1';
wangqinghua's avatar
wangqinghua committed
    chartOption;
    statusList;
wangqinghua's avatar
wangqinghua committed

    obj = {
        startTime: '',
        endTime: ''
    };

wangqinghua's avatar
wangqinghua committed
    noData = false;
wangqinghua's avatar
wangqinghua committed
    isDownload = false;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(private analysisSer: AnalysisService, private message: NzMessageService, private datePipe: DatePipe,
wangqinghua's avatar
wangqinghua committed
                private overAllSer: OverAllService,private commonSer:CommonService) {
wangqinghua's avatar
wangqinghua committed
    }

    ngOnInit() {
        const today = new Date().getTime();
        this.obj.startTime = this.datePipe.transform(today, 'yyyy-MM-dd') + ' 00:00:00';
        this.obj.endTime = this.datePipe.transform(today, 'yyyy-MM-dd') + ' 23:59:59';
        this.getEcharts();
    }

    //获取图表
    getEcharts() {
        this.analysisSer.operateStatus(this.obj).subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                if (res.errCode == 10000) {
                    if (res.data.length > 0) {
                        this.statusList = res.data;
                        this.setEcharts();
                        this.noData = false;
                    } else {
wangqinghua's avatar
wangqinghua committed
                        this.message.warning("解决状态统计暂无数据")
wangqinghua's avatar
wangqinghua committed
                        this.noData = true;
                    }
                } else {
                    this.message.error(res.errMsg);
                }
                this.isLoading = false;
wangqinghua's avatar
wangqinghua committed
            }
        );
    }

wangqinghua's avatar
wangqinghua committed
    setEcharts() {
wangqinghua's avatar
wangqinghua committed
        this.chartOption = {
wangqinghua's avatar
wangqinghua committed
            tooltip: {
                trigger: 'axis',
                axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
wangqinghua's avatar
wangqinghua committed
                },
                formatter: "{b} : {c}个"
wangqinghua's avatar
wangqinghua committed
            },
wangqinghua's avatar
wangqinghua committed
            xAxis: {
                type: 'category',
wangqinghua's avatar
wangqinghua committed
                data: this.statusList.map(e => {
wangqinghua's avatar
wangqinghua committed
                    return e.operateStatusName;
wangqinghua's avatar
wangqinghua committed
            },
            yAxis: {
wangqinghua's avatar
wangqinghua committed
                type: 'value',
wangqinghua's avatar
wangqinghua committed
                minInterval: 1,
wangqinghua's avatar
wangqinghua committed
                axisLabel: {
                    show: true,
                    interval: 'auto',
                    formatter: '{value} 个'
wangqinghua's avatar
wangqinghua committed
                },
wangqinghua's avatar
wangqinghua committed
                boundaryGap: [0, 0.1],
wangqinghua's avatar
wangqinghua committed
            },
            series: [{
wangqinghua's avatar
wangqinghua committed
                data: this.statusList.map(e => {
wangqinghua's avatar
wangqinghua committed
                    return e.num;
                }),
                type: 'bar'
            }]
        };
    }

wangqinghua's avatar
wangqinghua committed
    //时间改变
    changeType() {
wangqinghua's avatar
wangqinghua committed
        const nowDate = new Date();
wangqinghua's avatar
wangqinghua committed
        let day1, day2;
        switch (this.timeType) {
wangqinghua's avatar
wangqinghua committed
            case'1': {    //日报
wangqinghua's avatar
wangqinghua committed
                this.obj.startTime = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 00:00:00';
                this.obj.endTime = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 23:59:59';
                break;
            }
wangqinghua's avatar
wangqinghua committed
            case'2': {   //周报
wangqinghua's avatar
wangqinghua committed
                day1 = new Date(nowDate.getTime() - (nowDate.getDay() - 1) * 86400000);
wangqinghua's avatar
wangqinghua committed
                this.obj.startTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 00:00:00';
wangqinghua's avatar
wangqinghua committed
                this.obj.endTime = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
                break;
            }
wangqinghua's avatar
wangqinghua committed
            case'3': {   //月报
wangqinghua's avatar
wangqinghua committed
                day1 = new Date(nowDate.getFullYear(), nowDate.getMonth(), 1);
wangqinghua's avatar
wangqinghua committed
                this.obj.startTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 00:00:00';
wangqinghua's avatar
wangqinghua committed
                this.obj.endTime = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 23:59:59';
wangqinghua's avatar
wangqinghua committed
                break;
            }
wangqinghua's avatar
wangqinghua committed
            case'4': {   //自定义
wangqinghua's avatar
wangqinghua committed
                break;
            }
        }
    }

    //搜索
    search() {
wangqinghua's avatar
wangqinghua committed
        if (this.timeType == '4') {
wangqinghua's avatar
wangqinghua committed
            this.obj.startTime = this.datePipe.transform(this.startTime, 'yyyy-MM-dd HH:mm:ss');
            this.obj.endTime = this.datePipe.transform(this.endTime, 'yyyy-MM-dd HH:mm:ss');
        }
        this.getEcharts();
    }

wangqinghua's avatar
wangqinghua committed
    //下载
    downLoad() {
        this.isDownload = true;
        const data = {
            startTime: this.obj.startTime,
            endTime: this.obj.endTime,
        };
        this.analysisSer.exportByStatus(data).subscribe(
            (data) => {
                this.isDownload = false;
wangqinghua's avatar
wangqinghua committed
                this.commonSer.downloadFile('解决状态.xlsx', data);
wangqinghua's avatar
wangqinghua committed
            }
        );
    }
wangqinghua's avatar
wangqinghua committed
}