base.ts
1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import { defHttp } from '/@/utils/http/axios';
export interface PageData<T> {
total: number;
items: T[];
}
enum OrderType {
ASC = 'ASC',
DESC = 'DESC',
}
enum SortProperty {
CREATEtIME = 'createdTime',
}
export interface BaseQueryParams {
pageSize: number;
page: number;
orderFiled?: string;
orderType?: OrderType;
sortProperty?: SortProperty;
}
export class BaseQueryRequest implements BaseQueryParams {
orderFiled: string | undefined;
orderType: OrderType | undefined;
page: number;
pageSize: number;
constructor(page = 1, pageSize = 10) {
this.page = page;
this.pageSize = pageSize;
}
setOrderFiled(orderFiled: string) {
this.orderFiled = orderFiled;
}
setOrderType(orderType: OrderType) {
this.orderType = orderType;
}
setPage(page: number) {
this.page = page;
}
setPageSize(pageSize: number) {
this.pageSize = pageSize;
}
}
export function getPageData<T>(params: BaseQueryParams, url: string): Promise<PageData<T>> {
return defHttp.get<PageData<T>>({
params: params,
url: url,
});
}