@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 CHANGED
@@ -1,3 +1,11 @@
1
+ # @hzab/data-model@1.5.0
2
+
3
+ - feat: 增加 patch 请求方式函数
4
+
5
+ # @hzab/data-model@1.4.1
6
+
7
+ - fix: handleMsg useStatusText 问题修复
8
+
1
9
  # @hzab/data-model@1.4.0
2
10
 
3
11
  - 兼容分页列表是 content 及相关数据同层的问题 data: { content: [], pageNumber: 1, pageSize: 10, total: 0 }
package/README.md CHANGED
@@ -39,10 +39,14 @@ const listDM = new DataModel({
39
39
  getListMap,
40
40
  // 列表请求函数
41
41
  getListFunc,
42
- // 编辑接口 put url
42
+ // put 编辑接口 url
43
43
  updateApi,
44
- // 编辑接口 put 入参枚举函数
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzab/data-model",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "data model",
5
5
  "main": "src",
6
6
  "scripts": {
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