@hzab/data-model 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +17 -2
- package/package.json +1 -1
- package/src/data-model.js +50 -3
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -39,10 +39,14 @@ const listDM = new DataModel({
|
|
|
39
39
|
getListMap,
|
|
40
40
|
// 列表请求函数
|
|
41
41
|
getListFunc,
|
|
42
|
-
// 编辑接口
|
|
42
|
+
// put 编辑接口 url
|
|
43
43
|
updateApi,
|
|
44
|
-
// 编辑接口
|
|
44
|
+
// put 编辑接口 入参枚举函数
|
|
45
45
|
updateMap,
|
|
46
|
+
// patch 编辑接口 url
|
|
47
|
+
patchApi,
|
|
48
|
+
// patch 编辑接口 入参枚举函数
|
|
49
|
+
patchMap,
|
|
46
50
|
// 删除接口 delete url
|
|
47
51
|
deleteApi,
|
|
48
52
|
// 批量删除接口 delete url
|
|
@@ -61,6 +65,8 @@ const listDM = new DataModel({
|
|
|
61
65
|
createAxiosConf,
|
|
62
66
|
// update 接口 axios 相关配置
|
|
63
67
|
updateAxiosConf,
|
|
68
|
+
// patch 接口 axios 相关配置
|
|
69
|
+
patchAxiosConf,
|
|
64
70
|
// delete 接口 axios 相关配置
|
|
65
71
|
deleteAxiosConf,
|
|
66
72
|
// multipleDelete 接口 axios 相关配置
|
|
@@ -81,6 +87,10 @@ const listDM = new DataModel({
|
|
|
81
87
|
updateReqMap,
|
|
82
88
|
// 编辑接口 put 出参枚举函数
|
|
83
89
|
updateResMap,
|
|
90
|
+
// patch 编辑接口 put 入参枚举函数
|
|
91
|
+
patchReqMap,
|
|
92
|
+
// patch 编辑接口 put 出参枚举函数
|
|
93
|
+
patchResMap,
|
|
84
94
|
// 删除接口 delete 入参枚举函数
|
|
85
95
|
deleteReqMap,
|
|
86
96
|
// 删除接口 delete 出参枚举函数
|
|
@@ -126,6 +136,7 @@ function Demo({ orgId }) {
|
|
|
126
136
|
| getApi | string | 否 | - | 详情 get 接口地址 |
|
|
127
137
|
| getListApi | string | 否 | - | 列表 get 接口地址 |
|
|
128
138
|
| updateApi | string | 否 | - | put 接口地址 |
|
|
139
|
+
| patchApi | string | 否 | - | patch 接口地址 |
|
|
129
140
|
| deleteApi | string | 否 | - | delete 接口地址 |
|
|
130
141
|
| multipleDeleteApi | string | 否 | - | 批量删除 delete 接口地址 |
|
|
131
142
|
| createMap | Function | 否 | - | createApi 接口提交前的处理函数 |
|
|
@@ -133,12 +144,14 @@ function Demo({ orgId }) {
|
|
|
133
144
|
| getListMap | Function | 否 | - | getListApi 接口返回结果的处理函数 |
|
|
134
145
|
| getListFunc | Function | 否 | - | 自定义的列表请求函数,优先级高于 getListApi |
|
|
135
146
|
| updateMap | Function | 否 | - | updateApi 接口提交前的处理函数 |
|
|
147
|
+
| patchMap | Function | 否 | - | patchApi 接口提交前的处理函数 |
|
|
136
148
|
| axios | Object | 否 | - | axios 实例对象 |
|
|
137
149
|
| axiosConf | Object | 否 | - | axios 相关配置 |
|
|
138
150
|
| getListAxiosConf | Object | 否 | - | getList 接口 axios 相关配置 |
|
|
139
151
|
| getAxiosConf | Object | 否 | - | get 接口 axios 相关配置 |
|
|
140
152
|
| createAxiosConf | Object | 否 | - | create 接口 axios 相关配置 |
|
|
141
153
|
| updateAxiosConf | Object | 否 | - | update 接口 axios 相关配置 |
|
|
154
|
+
| patchAxiosConf | Object | 否 | - | patch 接口 axios 相关配置 |
|
|
142
155
|
| deleteAxiosConf | Object | 否 | - | delete 接口 axios 相关配置 |
|
|
143
156
|
| multipleDeleteAxiosConf | Object | 否 | - | multipleDelete 接口 axios 相关配置 |
|
|
144
157
|
| getListReqMap | Function | 否 | - | 列表接口 get 入参枚举函数 |
|
|
@@ -149,6 +162,8 @@ function Demo({ orgId }) {
|
|
|
149
162
|
| createResMap | Function | 否 | - | 新增接口 get 出参枚举函数 |
|
|
150
163
|
| updateReqMap | Function | 否 | - | 编辑接口 get 入参枚举函数 |
|
|
151
164
|
| updateResMap | Function | 否 | - | 编辑接口 get 出参枚举函数 |
|
|
165
|
+
| patchReqMap | Function | 否 | - | patch 接口 get 入参枚举函数 |
|
|
166
|
+
| patchResMap | Function | 否 | - | patch 接口 get 出参枚举函数 |
|
|
152
167
|
| deleteReqMap | Function | 否 | - | 删除接口 get 入参枚举函数 |
|
|
153
168
|
| deleteResMap | Function | 否 | - | 删除接口 get 出参枚举函数 |
|
|
154
169
|
| multipleDeleteReqMap | Function | 否 | - | 批量删除接口 get 入参枚举函数 |
|
package/package.json
CHANGED
package/src/data-model.js
CHANGED
|
@@ -25,6 +25,8 @@ class DataModel {
|
|
|
25
25
|
getListFunc,
|
|
26
26
|
updateApi,
|
|
27
27
|
updateMap,
|
|
28
|
+
patchApi,
|
|
29
|
+
patchMap,
|
|
28
30
|
deleteApi,
|
|
29
31
|
multipleDeleteApi,
|
|
30
32
|
axios: as,
|
|
@@ -53,6 +55,8 @@ class DataModel {
|
|
|
53
55
|
this.getListFunc = getListFunc;
|
|
54
56
|
this.updateApi = updateApi;
|
|
55
57
|
this.updateMap = updateMap;
|
|
58
|
+
this.patchApi = patchApi;
|
|
59
|
+
this.patchMap = patchMap;
|
|
56
60
|
this.deleteApi = deleteApi;
|
|
57
61
|
this.multipleDeleteApi = multipleDeleteApi;
|
|
58
62
|
|
|
@@ -65,6 +69,8 @@ class DataModel {
|
|
|
65
69
|
createResMap,
|
|
66
70
|
updateReqMap,
|
|
67
71
|
updateResMap,
|
|
72
|
+
patchReqMap,
|
|
73
|
+
patchResMap,
|
|
68
74
|
deleteReqMap,
|
|
69
75
|
deleteResMap,
|
|
70
76
|
multipleDeleteReqMap,
|
|
@@ -78,6 +84,8 @@ class DataModel {
|
|
|
78
84
|
this.createResMap = createResMap;
|
|
79
85
|
this.updateReqMap = updateReqMap;
|
|
80
86
|
this.updateResMap = updateResMap;
|
|
87
|
+
this.patchReqMap = patchReqMap;
|
|
88
|
+
this.patchResMap = patchResMap;
|
|
81
89
|
this.deleteReqMap = deleteReqMap;
|
|
82
90
|
this.deleteResMap = deleteResMap;
|
|
83
91
|
this.multipleDeleteReqMap = multipleDeleteReqMap;
|
|
@@ -88,6 +96,7 @@ class DataModel {
|
|
|
88
96
|
getAxiosConf,
|
|
89
97
|
createAxiosConf,
|
|
90
98
|
updateAxiosConf,
|
|
99
|
+
patchAxiosConf,
|
|
91
100
|
deleteAxiosConf,
|
|
92
101
|
multipleDeleteAxiosConf,
|
|
93
102
|
} = params || {};
|
|
@@ -95,6 +104,7 @@ class DataModel {
|
|
|
95
104
|
this.getAxiosConf = getAxiosConf;
|
|
96
105
|
this.createAxiosConf = createAxiosConf;
|
|
97
106
|
this.updateAxiosConf = updateAxiosConf;
|
|
107
|
+
this.patchAxiosConf = patchAxiosConf;
|
|
98
108
|
this.deleteAxiosConf = deleteAxiosConf;
|
|
99
109
|
this.multipleDeleteAxiosConf = multipleDeleteAxiosConf;
|
|
100
110
|
}
|
|
@@ -163,6 +173,9 @@ class DataModel {
|
|
|
163
173
|
let resultList = null;
|
|
164
174
|
if (this.getListFunc) {
|
|
165
175
|
resultList = await this.getListFunc(query);
|
|
176
|
+
if (this.getListResMap) {
|
|
177
|
+
resultList = this.getListResMap(resultList);
|
|
178
|
+
}
|
|
166
179
|
} else {
|
|
167
180
|
const getPro = new Promise((resolve, reject) => {
|
|
168
181
|
const apiUrl = this.getApiUrl(this.getListApi, q, ctx, { from: "getList" });
|
|
@@ -260,6 +273,36 @@ class DataModel {
|
|
|
260
273
|
});
|
|
261
274
|
}
|
|
262
275
|
|
|
276
|
+
patch(params, ctx, axiosConf) {
|
|
277
|
+
return new Promise((resolve, reject) => {
|
|
278
|
+
const opt = { ...this.axiosConf, ...this.patchAxiosConf, ...axiosConf };
|
|
279
|
+
let _params = _.cloneDeep(formDataToObj(params));
|
|
280
|
+
if (this.patchReqMap) {
|
|
281
|
+
_params = this.patchReqMap(_params, params);
|
|
282
|
+
}
|
|
283
|
+
const apiUrl = this.getApiUrl(this.patchApi, _params, ctx, { from: "patch" });
|
|
284
|
+
if (params instanceof FormData) {
|
|
285
|
+
opt.headers = { ...(opt.headers ?? {}), "Content-Type": "multipart/form-data" };
|
|
286
|
+
_params = objToFormData(_params);
|
|
287
|
+
}
|
|
288
|
+
this.axios
|
|
289
|
+
.patch(apiUrl, _params, opt)
|
|
290
|
+
.then((response) => {
|
|
291
|
+
this.handleRes(
|
|
292
|
+
response,
|
|
293
|
+
(res) => {
|
|
294
|
+
if (this.patchResMap) {
|
|
295
|
+
res = this.patchResMap(res);
|
|
296
|
+
}
|
|
297
|
+
resolve(res);
|
|
298
|
+
},
|
|
299
|
+
reject,
|
|
300
|
+
);
|
|
301
|
+
})
|
|
302
|
+
.catch((err) => this.errorHandler(err, reject));
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
|
|
263
306
|
/**
|
|
264
307
|
* 删除接口
|
|
265
308
|
* @param {*} config axios.delete config 参数,
|
|
@@ -405,17 +448,21 @@ class DataModel {
|
|
|
405
448
|
|
|
406
449
|
handleMsg(
|
|
407
450
|
response,
|
|
408
|
-
{
|
|
451
|
+
opt = {
|
|
409
452
|
// 是否使用 response.statusText 作为兜底 msg
|
|
410
|
-
useStatusText,
|
|
453
|
+
useStatusText: false,
|
|
411
454
|
},
|
|
412
455
|
) {
|
|
456
|
+
const {
|
|
457
|
+
// 是否使用 response.statusText 作为兜底 msg
|
|
458
|
+
useStatusText,
|
|
459
|
+
} = opt || {};
|
|
413
460
|
let message =
|
|
414
461
|
(response.data && (response.data.message || response.data.msg)) ||
|
|
415
462
|
response.msg ||
|
|
416
463
|
this.getNetworkErrMsg(response);
|
|
417
464
|
|
|
418
|
-
if (useStatusText) {
|
|
465
|
+
if (!message && useStatusText) {
|
|
419
466
|
message = response.statusText;
|
|
420
467
|
}
|
|
421
468
|
|