From 471bedfcc8adf55098b67c40c3a467753c11857f Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Mon, 23 Jul 2018 16:57:31 +0800
Subject: [PATCH] 环比 效果图
---
src/app/routes/home-page/home-page/home-page.component.ts | 102 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 91 insertions(+), 11 deletions(-)
diff --git a/src/app/routes/home-page/home-page/home-page.component.ts b/src/app/routes/home-page/home-page/home-page.component.ts
index 0bb0017..0535670 100644
--- a/src/app/routes/home-page/home-page/home-page.component.ts
+++ b/src/app/routes/home-page/home-page/home-page.component.ts
@@ -13,6 +13,8 @@
constructor(
private http:_HttpClient,
) {
+ this.reloadAqiChart();
+ this.reloadMeteChart()
}
salesData: any[] = [ ];
ngOnInit() {
@@ -27,23 +29,53 @@
this.cardData.temperature = conRes.data.condition.temp;
this.cardData.api = aqiRes.data.aqi.value;
this.cardData.pm25 = aqiRes.data.aqi.pm25;
+ this.http.get('/aqi/forecast24hours',{base: this.cardData.pm25,range: 10}).subscribe(
+ (res: any) => {
+ this.aqiEchartsIntance.setOption(
+ {
+ series: [{type: 'line', data: res}]
+ }
+ )
+ }
+ );
+ this.http.get('/aqi/forecast24hours',{base: this.cardData.temperature,range: 5}).subscribe(
+ (res: any) => {
+ this.meteEchartsIntance.setOption(
+ {
+ series: [{type: 'line', data: res}]
+ }
+ )
+ }
+ );
}
}
);
this.http.get('/chart').subscribe((res: any) => {
- // this.webSite = res.visitData.slice(0, 10);
- this.salesData = res.salesData;
- // this.offlineChartData = res.offlineChartData;
- });
+ res.offlineData.forEach((item: any) => {
+ item.chart = Object.assign([], res.offlineChartData);
+ });
+ this.data = res;
+ this.salesData = res.salesData;
+ this.loading = false;
+ this.changeSaleType();
+ });
+
}
- public aqiChartOption
+
+ public aqiChartOption = {};
public aqiEchartsIntance;
public aqiChartLoading = false;
public onApiChartInit(e): void {
this.aqiEchartsIntance = e;
}
- private reloadChart(): void {
- // const timeList = this.grid.columns.map(item => item.text);
+ public meteChartOption = {};
+ public meteEchartsIntance;
+ public meteChartLoading = false;
+ public onMeteChartInit(e): void {
+ this.meteEchartsIntance = e;
+ }
+ private reloadAqiChart(): void {
+ // const timeList = this.grid.columns.map(item => item.text);
if (!!this.aqiEchartsIntance) {
this.aqiChartOption = null;
this.aqiEchartsIntance.clear();
@@ -52,11 +84,29 @@
// if ( this.chartSelectedIndex < this.grid.data.length ) {
// series = [{type: 'line', data: this.grid.data[this.chartSelectedIndex]}];
// }
-
+
// this.initOpton(chartOption ,{ xAxis : [{data : []}]});
// this.aqiChartOption = true;
- this.initOpton(this.aqiChartOption ,{ xAxis : [{data : []}]});
+ this.initOpton(this.aqiChartOption ,{ xAxis : [{data : this.newArray(0, 24, null, '���')}]});
}
+ private reloadMeteChart(): void {
+ if (!!this.aqiEchartsIntance) {
+ this.aqiChartOption = null;
+ this.aqiEchartsIntance.clear();
+ }
+ this.initOpton(this.meteChartOption ,{ xAxis : [{data : this.newArray(0, 24, null, '���')}]});
+ }
+ private newArray = (startOrLen: number, len?: number, prefix?: string, suffix?: string) => {
+ const result = [];
+ const s = !!len ? startOrLen : 0;
+ len = !!len ? len : startOrLen;
+ suffix = !!suffix ? suffix : '';
+ prefix = !!prefix ? prefix : '';
+ for (let i = s; result.length < len; i++) {
+ result.push(prefix + i + suffix);
+ }
+ return result;
+}
private initOpton(chartOption,opt: {[key: string]: object}) {
const defaultOption = {
title: {
@@ -99,7 +149,37 @@
series : [
]
};
- $.extend(true, defaultOption, opt);
- chartOption = defaultOption;
+ Object.assign( defaultOption, opt);
+ Object.assign(chartOption, defaultOption);
}
+ //---------mock-------------------
+ data: any = {
+ salesData: [],
+ offlineData: []
+ };
+ sort(sortName, sortValue) {
+ this.data.searchData = [
+ ...(<any[]>this.data.searchData).sort((a, b) => {
+ if (a[ sortName ] > b[ sortName ]) {
+ return (sortValue === 'ascend') ? 1 : -1;
+ } else if (a[ sortName ] < b[ sortName ]) {
+ return (sortValue === 'ascend') ? -1 : 1;
+ } else {
+ return 0;
+ }
+ })
+ ];
+ }
+ loading = true;
+ salesType = 'all';
+ salesPieData: any;
+ salesTotal = 0;
+ changeSaleType() {
+ this.salesPieData = this.salesType === 'all' ? this.data.salesTypeData : (
+ this.salesType === 'online' ? this.data.salesTypeDataOnline : (
+ this.salesType === 'online2' ? this.data.salesTypeDataOnline2 : this.data.salesTypeDataOffline
+ )
+ );
+ if (this.salesPieData) this.salesTotal = this.salesPieData.reduce((pre, now) => now.y + pre, 0);
+ }
}
--
Gitblit v1.8.0