LegoService.ets
3.15 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/**
* 数据模块队外接口服务
*/
import { ItemBean } from '../bean/ItemBean';
import { ItemDTO } from '../bean/ItemDTO';
import { IGroupFilter } from '../layout/filter/IGroupFilter';
import { WDComp } from '../layout/WDComp';
import { WDGroup } from '../layout/WDGroup';
import { WDPage } from '../layout/WDPage';
import { LegoRequest } from './LegoRequest';
export namespace Lego {
/**
* 乐高数据服务
*/
export class LegoService {
pageId: string;
page: WDPage;
initParams: Map<string, Object> = new Map<string, Object>();
groupFilters: IGroupFilter[];
legoRequest: LegoRequest;
constructor(builder: Builder) {
this.pageId = builder.pageId;
this.initParams = builder.initParams;
this.groupFilters = builder.groupFilters;
// 创建MGPage对象
if (!builder.page) {
this.page = new WDPage(this.pageId, this.initParams, this.groupFilters);
} else {
this.page = builder.page;
}
this.legoRequest = new LegoRequest(this.page);
}
/**
* 数据请求
* @param isRefresh 是否为刷新
* @param callback 回调
*/
public request(isRefresh: boolean, callback: Lego.Callback) {
// TODO: 通过LegoRequest#request发出请求
this.legoRequest.request(isRefresh, callback);
}
}
export class Builder {
pageId: string = '';
contentId: string = '';
page?: WDPage;
initParams: Map<string, Object> = new Map<string, Object>();
groupFilters: IGroupFilter[] = [];
setPageId(pageId: string) {
this.pageId = pageId;
return this;
}
setContentId(contentId: string) {
this.contentId = contentId;
return this;
}
setPage(page: WDPage) {
this.page = page
return this;
}
setParams(initParams: Map<string, Object>) {
this.initParams = initParams
return this;
}
setGroupFilters(...groupFilters: IGroupFilter[]) {
this.groupFilters = groupFilters
return this;
}
public build(): LegoService {
return new LegoService(this);
}
}
/**
* 数据请求回调接口
*/
export interface Callback {
/**
* 一次数据请求成功的回调
* @param group Group实例
*/
onLoaded: (group: WDGroup) => void;
/**
* 一次数据请求失败的回调
* @param group 本次请求的Group
* @param msg 失败描述
*/
onFailed: (group: WDGroup, msg: String) => void;
/**
* Page级错误回调,Page请求异常无法进行后续流程。
* @param page Page实例
* @param msg 错误描述
*/
onError: (page: WDPage, msg: String) => void;
/**
* 整个Page已全部请求完成的回调
* @param page Page实例
*/
onCompleted: (page: WDPage) => void;
/**
* Page接口请求成功的回调
* @param page Page实例
*/
onPageLoaded: (page: WDPage) => void;
/**
* Group数据更新的回调
* @param group Group实例
*/
onGroupUpdate: (group: WDGroup) => void;
/**
* Comp数据更新的回调
* @param comp Comp实例
*/
onCompUpdate: (comp: WDComp<ItemBean, ItemDTO>) => void;
}
}