From 4e4cae085739fd5e72e047d368351bfd6ceaf4e3 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Sun, 25 Mar 2018 12:20:40 +0800
Subject: [PATCH] grid 冻结列 上下滚动实现
---
src/app/routes/analysis/query/query.component.ts | 60 ++++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 42 insertions(+), 18 deletions(-)
diff --git a/src/app/routes/analysis/query/query.component.ts b/src/app/routes/analysis/query/query.component.ts
index 3f41f21..fca727c 100644
--- a/src/app/routes/analysis/query/query.component.ts
+++ b/src/app/routes/analysis/query/query.component.ts
@@ -33,12 +33,12 @@
e16: 6
};
public tableWidth = 2800;
- private tableWidthOption = {
- 'MONTH': 1400,
- 'DAY': 2800,
- 'HOUR': 2100,
- 'MINUTE': 5000
- };
+ // private tableWidthOption = {
+ // 'MONTH': 1400,
+ // 'DAY': 2800,
+ // 'HOUR': 2100,
+ // 'MINUTE': 5000
+ // };
public expandForm: boolean; // ��������� ������������
// public sensors: any[] = [];
public sensorOptions: any[] = [];
@@ -64,7 +64,8 @@
public grid: Grid<{sensor: Sensor, data: string [], weight?: number}> = new Grid();
// public grid.data: {sensor: Sensor, data: string [], weight?: number} [] = [];
// ������������������������������������������
- public sensorNameScrollLeft = '0px';
+ public sensorNameScrollLeft = 0;
+ public sensorNameScrollTop = 0;
@ViewChild(NzTreeComponent) private tree: NzTreeComponent;
private _timeType: {showTime: boolean|{[key: string]: Function|boolean}, mode: 'month' | 'day', dateFormat: string } = {showTime: false, mode: 'day', dateFormat: 'YYYY���MM���DD���'};
// ���key-value������,������������������
@@ -79,6 +80,7 @@
public toggleChartCollapse() {
// ���������������
if (this.isChartCollapse && !!this.echartsIntance) {
+ this.reloadChart();
this.switchSensor(this.chartSelectedIndex);
// this.chartLoading = false;
}
@@ -261,6 +263,7 @@
// ������ ������������������
if (this._monitorPoint !== value) {
this._monitorPoint = value; // ���������������������������������������������������������
+ this._device = null; // ���������������
this.devicesChange();
}
// ������null ������������������������������
@@ -320,8 +323,7 @@
}
);
}
- public setTimeUnit(val: {label: string, value: TimeUnits} ) {
- this.tableWidth = this.tableWidthOption[val.value];
+ public setTimeUnit(val: {label: string, value: TimeUnits} ) {
switch (val.value) {
// YYYY-MM-DD HH:mm:ss
case TimeUnits.MONTH:
@@ -381,7 +383,7 @@
return ;
}
this.grid.loading = true;
- this.sensorNameScrollLeft = '0px';
+ this.sensorNameScrollLeft = 0;
this.grid.data = [];
const start: Date = this.getPeriodDate(this.actualTime , 'start');
const end: Date = this.getPeriodDate(this.actualTime , 'end');
@@ -443,8 +445,14 @@
return {text: item};
}
); break;
- }
+ }
+ // ���������������������������������
+ this.tableWidth = this.grid.columns.length * 80 + 160;
this.reloadChart();
+ // ������������������
+ this.reloadChartTitle();
+ // ������������
+ this.grid.data = [];
this.http.post(environment.SERVER_BASH_URL + '/report/line-chart', lineChartCriteria).subscribe(
(res: ResultBean<{[key: string]: Array<Array<PairData>>}>) => {
if (res.code === 1) {
@@ -467,7 +475,8 @@
// pair.value ���null,������������
weight = !!pair.value ? weight : weight + 1;
}
- return !!pair.value ? String(Math.round(pair.value)) : '-';
+ // ���������������������2���
+ return !!pair.value ? String(Math.round(pair.value * 100) / 100) : '-';
}
);
this.grid.data.push({sensor: sensor, data: sensorData, weight: weight});
@@ -482,7 +491,8 @@
);
$('.ant-table-body').scroll(
() => {
- this.sensorNameScrollLeft = $('.ant-table-body').scrollLeft() + 'px';
+ this.sensorNameScrollLeft = $('.ant-table-body').scrollLeft();
+ this.sensorNameScrollTop = -$('.ant-table-body').scrollTop();
}
);
}
@@ -548,7 +558,9 @@
public get sensorUnit() {
return this.grid.data[this.chartSelectedIndex].sensor.unit;
}
- public get chartTitle(): string {
+ // ������������������ ������������
+ public _chartTitleTemp = '';
+ public reloadChartTitle(): void {
const names = ['������', '������', '������', '������'];
switch ( this.dataCondition.areaRange ) {
case AreaRange.MONITORPOINT :
@@ -563,17 +575,23 @@
break;
}
names[2] = moment(this.actualTime).format(this._timeType.dateFormat);
- names[3] = this.grid.data[this.chartSelectedIndex].sensor.name;
- return names.join(' ') + ' ������';
+ if ( this.grid.data.length > this.chartSelectedIndex) {
+ names[3] = this.grid.data[this.chartSelectedIndex].sensor.name;
+ }
+ const title = names.join(' ') + ' ������';
+ if (title.trim() !== this._chartTitleTemp.trim()) {
+ this._chartTitleTemp = title;
+ }
}
public switchSensor(index: number): void {
this.chartSelectedIndex = index;
this.chartLoading = true;
+ this.reloadChartTitle();
setTimeout(() => {
const series = [{type: 'line', data: this.grid.data[index].data}];
this.echartsIntance.setOption({
title: {
- text: this.chartTitle
+ text: this._chartTitleTemp
},
yAxis : [
{
@@ -615,7 +633,13 @@
}
return mo.toDate();
}
-
+ public sensorTableFocusIndex = -1;
+ public sensorTableFocus(index) {
+ this.sensorTableFocusIndex = index;
+ }
+ public sensorTableBlur(index) {
+ this.sensorTableFocusIndex = -1;
+ }
}
--
Gitblit v1.8.0