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 | 37 +++++++++++++++++++++++++------------
1 files changed, 25 insertions(+), 12 deletions(-)
diff --git a/src/app/core/entity/grid.ts b/src/app/core/entity/grid.ts
index b96a8dd..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,27 +18,40 @@
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();
}
@@ -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