Files
wwjcloud/src/common/response/page-result.class.ts

107 lines
2.1 KiB
TypeScript
Raw Normal View History

/**
*
* Java PageResult格式完全一致
*
* :
* {
* "currentPage": 1, // 当前页
* "perPage": 15, // 每页大小
* "total": 100, // 总记录数
* "data": [] // 数据列表
* }
*/
export class PageResult<T> {
/**
*
*/
currentPage: number;
/**
*
*/
perPage: number;
/**
*
*/
total: number;
/**
*
*/
data: T[];
constructor(page: number, limit: number, total: number = 0, data: T[] = []) {
this.currentPage = page;
this.perPage = limit;
this.total = total;
this.data = data;
}
/**
*
* @param page
* @param limit
* @returns PageResult<T>
*/
static build<T>(page: number, limit: number): PageResult<T> {
return new PageResult<T>(page, limit);
}
/**
*
* @param page
* @param limit
* @param total
* @returns PageResult<T>
*/
static buildWithTotal<T>(page: number, limit: number, total: number): PageResult<T> {
return new PageResult<T>(page, limit, total);
}
/**
*
* @param page
* @param limit
* @param total
* @param data
* @returns PageResult<T>
*/
static buildWithData<T>(page: number, limit: number, total: number, data: T[]): PageResult<T> {
return new PageResult<T>(page, limit, total, data);
}
/**
*
* @param data
* @returns PageResult<T>
*/
setData(data: T[]): PageResult<T> {
this.data = data;
return this;
}
/**
*
* @param total
* @returns PageResult<T>
*/
setTotal(total: number): PageResult<T> {
this.total = total;
return this;
}
/**
* JSON格式
* @returns object
*/
toJSON(): object {
return {
currentPage: this.currentPage,
perPage: this.perPage,
total: this.total,
data: this.data,
};
}
}