From f01d6b7e6bf8132524c1c2821fdcbbc5ca548369 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Fri, 29 Dec 2017 16:57:22 +0800 Subject: [PATCH] 设备型号完成 --- src/app/core/entity/grid.ts | 41 +++++++++++++++++++++++++++-------------- 1 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/app/core/entity/grid.ts b/src/app/core/entity/grid.ts index 65331b3..4567923 100644 --- a/src/app/core/entity/grid.ts +++ b/src/app/core/entity/grid.ts @@ -1,11 +1,11 @@ -import { Type } from '@angular/core'; +import { Column } from '@core/entity/grid'; import { Types } from '@core/enum/types.enum'; export interface Column { text?: string; name?: string; - value?: any; width?: string; - sort?: boolean; + sort?: string; + isSort?: boolean; type?: DataType; } export interface DataType { @@ -18,31 +18,44 @@ pageSize?: number ; // ��������������� total?: number; data?: any[]; - queryParams?: string; + queryParams?: string; + orderByClause?: string; + getOrderByClause ?(): string; } -export class Grid implements PageBean { +export class Grid<T> implements PageBean { + getOrderByClause(): string { + const orderby = this.sorts.map( (fn) => { + return this.columns.find( (col: Column) => { + return fn === col.name; + } ); + }).map( (col: Column) => { + const sort = col.sort.startsWith('asc') ? 'asc' : 'desc' ; + return col.name + '||' + sort; + }).join('|||'); + return encodeURI(orderby); + } title = ''; pageIndex = 0; // ������ pageSize = 10; // ������������������ - data: any[] = []; + data: T[] = []; total = 0; queryParams = ''; pages = 0; // ��������� - queryMap?: any = {}; size = 0; // ��������������������� sorts?: any[] = []; + loading = false; indeterminate = false; allChecked = false; selectedIndexs?: number[] = []; // ������������������ columns?: Column[] = []; - + checkAll(value: boolean) { this.data.forEach( - row => {row.checked = value;} - ) + row => {row['checked'] = value; } + ); this.refreshStatus(); } - getData():any[]{ + getData(): any [] { return this.data; } initData(pageData: {data?: any[], total?: number}) { @@ -57,11 +70,11 @@ } refreshStatus() { const data = this.data; - const allChecked = data.every(value => value.checked); - const allUnChecked = data.every(value => !value.checked); + const allChecked = data.every(value => value['checked']); + const allUnChecked = data.every(value => !value['checked']); this.allChecked = allChecked; this.indeterminate = (!allChecked) && (!allUnChecked); - this.selectedIndexs = data.filter(value => value.checked).map( + this.selectedIndexs = data.filter(value => value['checked']).map( row => { return row['index'] != null ? row['index'] : 0; } -- Gitblit v1.8.0