@hzab/data-model 1.3.0 → 1.4.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,12 @@
1
+ # @hzab/data-model@1.4.0
2
+
3
+ - 兼容分页列表是 content 及相关数据同层的问题 data: { content: [], pageNumber: 1, pageSize: 10, total: 0 }
4
+ - handleResponse 统一 response 回调,用于处理定制 response 格式
5
+
6
+ # @hzab/data-model@1.3.1
7
+
8
+ - fix: useStatusText: true 问题修复
9
+
1
10
  # @hzab/data-model@1.3.0
2
11
 
3
12
  - feat: 网络情况判断
package/README.md CHANGED
@@ -47,6 +47,8 @@ const listDM = new DataModel({
47
47
  deleteApi,
48
48
  // 批量删除接口 delete url
49
49
  multipleDeleteApi,
50
+ // 统一 response 回调,用于处理定制 response 格式
51
+ handleResponse,
50
52
  // axios 实例对象
51
53
  axios,
52
54
  // axios 相关配置
@@ -117,42 +119,43 @@ function Demo({ orgId }) {
117
119
 
118
120
  ## DataModel
119
121
 
120
- | 参数 | 类型 | 必填 | 默认值 | 说明 |
121
- | ----------------------- | -------- | ---- | ------ | ------------------------------------------- |
122
- | query | Object | 否 | - | query 参数对象 |
123
- | createApi | string | 否 | - | post 接口地址 |
124
- | getApi | string | 否 | - | 详情 get 接口地址 |
125
- | getListApi | string | 否 | - | 列表 get 接口地址 |
126
- | updateApi | string | 否 | - | put 接口地址 |
127
- | deleteApi | string | 否 | - | delete 接口地址 |
128
- | multipleDeleteApi | string | 否 | - | 批量删除 delete 接口地址 |
129
- | createMap | Function | 否 | - | createApi 接口提交前的处理函数 |
130
- | getMap | Function | 否 | - | getApi 接口返回结果的处理函数 |
131
- | getListMap | Function | 否 | - | getListApi 接口返回结果的处理函数 |
132
- | getListFunc | Function | 否 | - | 自定义的列表请求函数,优先级高于 getListApi |
133
- | updateMap | Function | 否 | - | updateApi 接口提交前的处理函数 |
134
- | axios | Object | 否 | - | axios 实例对象 |
135
- | axiosConf | Object | 否 | - | axios 相关配置 |
136
- | getListAxiosConf | Object | 否 | - | getList 接口 axios 相关配置 |
137
- | getAxiosConf | Object | 否 | - | get 接口 axios 相关配置 |
138
- | createAxiosConf | Object | 否 | - | create 接口 axios 相关配置 |
139
- | updateAxiosConf | Object | 否 | - | update 接口 axios 相关配置 |
140
- | deleteAxiosConf | Object | 否 | - | delete 接口 axios 相关配置 |
141
- | multipleDeleteAxiosConf | Object | 否 | - | multipleDelete 接口 axios 相关配置 |
142
- | getListReqMap | Function | 否 | - | 列表接口 get 入参枚举函数 |
143
- | getListResMap | Function | 否 | - | 列表接口 get 出参枚举函数 |
144
- | getReqMap | Function | 否 | - | 详情接口 get 入参枚举函数 |
145
- | getResMap | Function | 否 | - | 详情接口 get 出参枚举函数 |
146
- | createReqMap | Function | 否 | - | 新增接口 get 入参枚举函数 |
147
- | createResMap | Function | 否 | - | 新增接口 get 出参枚举函数 |
148
- | updateReqMap | Function | 否 | - | 编辑接口 get 入参枚举函数 |
149
- | updateResMap | Function | 否 | - | 编辑接口 get 出参枚举函数 |
150
- | deleteReqMap | Function | 否 | - | 删除接口 get 入参枚举函数 |
151
- | deleteResMap | Function | 否 | - | 删除接口 get 出参枚举函数 |
152
- | multipleDeleteReqMap | Function | 否 | - | 批量删除接口 get 入参枚举函数 |
153
- | multipleDeleteResMap | Function | 否 | - | 批量删除接口 get 出参枚举函数 |
154
- | isResponseData | boolean | 否 | - | 是否返回完整的接口数据(response.data) |
155
- | response | boolean | 否 | - | 是否直接返回 response |
122
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
123
+ | ----------------------- | -------- | ---- | ------ | ---------------------------------------------- |
124
+ | query | Object | 否 | - | query 参数对象 |
125
+ | createApi | string | 否 | - | post 接口地址 |
126
+ | getApi | string | 否 | - | 详情 get 接口地址 |
127
+ | getListApi | string | 否 | - | 列表 get 接口地址 |
128
+ | updateApi | string | 否 | - | put 接口地址 |
129
+ | deleteApi | string | 否 | - | delete 接口地址 |
130
+ | multipleDeleteApi | string | 否 | - | 批量删除 delete 接口地址 |
131
+ | createMap | Function | 否 | - | createApi 接口提交前的处理函数 |
132
+ | getMap | Function | 否 | - | getApi 接口返回结果的处理函数 |
133
+ | getListMap | Function | 否 | - | getListApi 接口返回结果的处理函数 |
134
+ | getListFunc | Function | 否 | - | 自定义的列表请求函数,优先级高于 getListApi |
135
+ | updateMap | Function | 否 | - | updateApi 接口提交前的处理函数 |
136
+ | axios | Object | 否 | - | axios 实例对象 |
137
+ | axiosConf | Object | 否 | - | axios 相关配置 |
138
+ | getListAxiosConf | Object | 否 | - | getList 接口 axios 相关配置 |
139
+ | getAxiosConf | Object | 否 | - | get 接口 axios 相关配置 |
140
+ | createAxiosConf | Object | 否 | - | create 接口 axios 相关配置 |
141
+ | updateAxiosConf | Object | 否 | - | update 接口 axios 相关配置 |
142
+ | deleteAxiosConf | Object | 否 | - | delete 接口 axios 相关配置 |
143
+ | multipleDeleteAxiosConf | Object | 否 | - | multipleDelete 接口 axios 相关配置 |
144
+ | getListReqMap | Function | 否 | - | 列表接口 get 入参枚举函数 |
145
+ | getListResMap | Function | 否 | - | 列表接口 get 出参枚举函数 |
146
+ | getReqMap | Function | 否 | - | 详情接口 get 入参枚举函数 |
147
+ | getResMap | Function | 否 | - | 详情接口 get 出参枚举函数 |
148
+ | createReqMap | Function | 否 | - | 新增接口 get 入参枚举函数 |
149
+ | createResMap | Function | 否 | - | 新增接口 get 出参枚举函数 |
150
+ | updateReqMap | Function | 否 | - | 编辑接口 get 入参枚举函数 |
151
+ | updateResMap | Function | 否 | - | 编辑接口 get 出参枚举函数 |
152
+ | deleteReqMap | Function | 否 | - | 删除接口 get 入参枚举函数 |
153
+ | deleteResMap | Function | 否 | - | 删除接口 get 出参枚举函数 |
154
+ | multipleDeleteReqMap | Function | 否 | - | 批量删除接口 get 入参枚举函数 |
155
+ | multipleDeleteResMap | Function | 否 | - | 批量删除接口 get 出参枚举函数 |
156
+ | isResponseData | boolean | 否 | - | 是否返回完整的接口数据(response.data) |
157
+ | isResponse | boolean | 否 | - | 是否直接返回 response |
158
+ | handleResponse | Function | 否 | - | 统一 response 回调,用于处理定制 response 格式 |
156
159
 
157
160
  ## useDataModel
158
161
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzab/data-model",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "data model",
5
5
  "main": "src",
6
6
  "scripts": {
package/src/data-model.js CHANGED
@@ -20,6 +20,8 @@ class DataModel {
20
20
  getMap,
21
21
  getListApi,
22
22
  getListMap,
23
+ // 统一 response 回调,用于处理定制 response 格式
24
+ handleResponse,
23
25
  getListFunc,
24
26
  updateApi,
25
27
  updateMap,
@@ -47,6 +49,7 @@ class DataModel {
47
49
  this.getMap = getMap;
48
50
  this.getListApi = getListApi;
49
51
  this.getListMap = getListMap;
52
+ this.handleResponse = handleResponse;
50
53
  this.getListFunc = getListFunc;
51
54
  this.updateApi = updateApi;
52
55
  this.updateMap = updateMap;
@@ -346,16 +349,20 @@ class DataModel {
346
349
  reject(new Error("response not object"));
347
350
  return;
348
351
  }
349
- let _res = response;
352
+ let _res = this.handleResponse ? this.handleResponse(response) : response;
350
353
  // 兼容 传入的是 response.data 的情况
351
- if (_res.data && _res.headers && _res.request && typeof _res.data?.code === "number") {
354
+ if (_res.data && _res.headers && _res.request) {
352
355
  _res = _res.data;
353
356
  }
354
357
  const { code, data } = _res;
355
358
  const message = this.handleMsg(response);
356
- if (code === 200) {
359
+ if (code == 200) {
357
360
  let _data = data ?? {};
358
361
  if (_.isObject(_data)) {
362
+ if (_data.content && _data.pageNumber && _data.total) {
363
+ _data.list = _data.content;
364
+ _data.pagination = { current: _data.pageNumber, total: _data.total };
365
+ }
359
366
  // 前缀 _ 避免与 data 里已有的 message 冲突
360
367
  _data._msg = message;
361
368
  _data._message = message;
@@ -382,7 +389,7 @@ class DataModel {
382
389
  }
383
390
  const response = err.response || err;
384
391
  if (response) {
385
- const message = this.handleMsg(response, { useStatusText });
392
+ const message = this.handleMsg(response, { useStatusText: true });
386
393
  const error = new Error(message);
387
394
  error.code = response.status;
388
395
  error.response = response;
@@ -396,7 +403,13 @@ class DataModel {
396
403
  return reject(err || { _msg: _$Temp.defaultErrMsg });
397
404
  }
398
405
 
399
- handleMsg(response, { useStatusText }) {
406
+ handleMsg(
407
+ response,
408
+ {
409
+ // 是否使用 response.statusText 作为兜底 msg
410
+ useStatusText,
411
+ },
412
+ ) {
400
413
  let message =
401
414
  (response.data && (response.data.message || response.data.msg)) ||
402
415
  response.msg ||