@fairys/taro-tools-react 1.0.22 → 1.0.24
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/esm/context/global.message.data.instance.d.ts +1 -0
- package/esm/context/global.message.data.instance.js +9 -1
- package/esm/context/page.data.instance.d.ts +18 -0
- package/esm/context/page.data.instance.js +17 -8
- package/esm/utils/request.js +12 -2
- package/lib/context/global.message.data.instance.d.ts +1 -0
- package/lib/context/global.message.data.instance.js +10 -1
- package/lib/context/page.data.instance.d.ts +18 -0
- package/lib/context/page.data.instance.js +17 -8
- package/lib/utils/request.js +12 -2
- package/package.json +1 -1
- package/src/context/global.message.data.instance.ts +15 -1
- package/src/context/page.data.instance.tsx +42 -8
- package/src/utils/request.ts +10 -0
|
@@ -3,6 +3,7 @@ import utils_navigate from "../utils/navigate.js";
|
|
|
3
3
|
import { createUseId } from "../utils/useId.js";
|
|
4
4
|
import { ProxyInstanceObjectBase } from "../utils/valtio/instance.js";
|
|
5
5
|
import { globalSettingDataInstance } from "./global.setting.data.instance.js";
|
|
6
|
+
import taro from "@tarojs/taro";
|
|
6
7
|
class GlobalMessageDataInstance extends ProxyInstanceObjectBase {
|
|
7
8
|
store = proxy({
|
|
8
9
|
messageData: ref([]),
|
|
@@ -46,17 +47,24 @@ class GlobalMessageDataInstance extends ProxyInstanceObjectBase {
|
|
|
46
47
|
});
|
|
47
48
|
};
|
|
48
49
|
onBeforetToLoginPage;
|
|
50
|
+
toRedirect = ()=>{
|
|
51
|
+
const currentPath = taro.getCurrentInstance().router?.params?.redirect || '';
|
|
52
|
+
if (currentPath) utils_navigate.navigateTo({
|
|
53
|
+
url: currentPath
|
|
54
|
+
});
|
|
55
|
+
};
|
|
49
56
|
toLoginPage = ()=>{
|
|
50
57
|
if (this.onBeforetToLoginPage) {
|
|
51
58
|
const f = this.onBeforetToLoginPage();
|
|
52
59
|
if (false === f) return;
|
|
53
60
|
}
|
|
61
|
+
const currentPath = taro.getCurrentInstance().router?.path || '';
|
|
54
62
|
const loginPageRoute = globalSettingDataInstance.store.loginPageRoute || '';
|
|
55
63
|
const isLoginPage = utils_navigate.isCurrentPage(loginPageRoute || '');
|
|
56
64
|
const _loginPageRoute = `${loginPageRoute || ''}`.replace(/^\//, '');
|
|
57
65
|
if (isLoginPage) return;
|
|
58
66
|
utils_navigate.navigateTo({
|
|
59
|
-
url: `/${_loginPageRoute}`
|
|
67
|
+
url: `/${_loginPageRoute}?redirect=${currentPath}`
|
|
60
68
|
});
|
|
61
69
|
};
|
|
62
70
|
}
|
|
@@ -78,6 +78,14 @@ export declare class PageDataInstance<T extends PageDataInstanceState = PageData
|
|
|
78
78
|
codeFields?: string[];
|
|
79
79
|
/**那些字段取值对象的 value 值 */
|
|
80
80
|
valueFields?: string[];
|
|
81
|
+
/**成功状态码*/
|
|
82
|
+
responseSuccessCode?: number;
|
|
83
|
+
/**对象中取值字段*/
|
|
84
|
+
responseListField?: string;
|
|
85
|
+
/**总页数字段
|
|
86
|
+
* @default "total"
|
|
87
|
+
*/
|
|
88
|
+
responseTotalField?: string;
|
|
81
89
|
/**是否滚动加载分页*/
|
|
82
90
|
is_scroll_page: boolean;
|
|
83
91
|
/**默认值*/
|
|
@@ -154,6 +162,16 @@ export interface PageDataInstanceContextProviderProps<T extends PageDataInstance
|
|
|
154
162
|
isMountLoad?: boolean;
|
|
155
163
|
/**页面标题*/
|
|
156
164
|
title?: string;
|
|
165
|
+
/**成功状态码
|
|
166
|
+
* @default 200
|
|
167
|
+
*/
|
|
168
|
+
responseSuccessCode?: number;
|
|
169
|
+
/**对象中取值字段*/
|
|
170
|
+
responseListField?: string;
|
|
171
|
+
/**总页数字段
|
|
172
|
+
* @default "total"
|
|
173
|
+
*/
|
|
174
|
+
responseTotalField?: string;
|
|
157
175
|
}
|
|
158
176
|
/**页面级数据状态管理上下文提供者*/
|
|
159
177
|
export declare function PageDataInstanceContextProvider<T extends PageDataInstanceState = PageDataInstanceState, M extends PageDataInstance<T> = PageDataInstance<T>>(props: PageDataInstanceContextProviderProps<T, M>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -18,6 +18,9 @@ class page_data_instance_PageDataInstance extends ProxyInstanceObjectBase {
|
|
|
18
18
|
defaultQuery = {};
|
|
19
19
|
codeFields = [];
|
|
20
20
|
valueFields = [];
|
|
21
|
+
responseSuccessCode = 200;
|
|
22
|
+
responseListField = '';
|
|
23
|
+
responseTotalField = 'total';
|
|
21
24
|
is_scroll_page = true;
|
|
22
25
|
defaultInital = {
|
|
23
26
|
page: 1,
|
|
@@ -147,11 +150,14 @@ class page_data_instance_PageDataInstance extends ProxyInstanceObjectBase {
|
|
|
147
150
|
const result = await this.getList?.(newParams, this);
|
|
148
151
|
this.updatedPageLoading(false);
|
|
149
152
|
this.store.loading.loadMore = false;
|
|
150
|
-
|
|
153
|
+
const successCode = 'number' == typeof this.responseSuccessCode ? this.responseSuccessCode : globalSettingDataInstance.store.requestSuccessCode;
|
|
154
|
+
if (result && result.code === successCode) {
|
|
151
155
|
let saveData = {};
|
|
152
156
|
if (this.onAfter) saveData = this.onAfter(result, this);
|
|
153
157
|
else {
|
|
154
|
-
const
|
|
158
|
+
const responseTotalField = 'string' == typeof this.responseTotalField ? this.responseTotalField : 'total';
|
|
159
|
+
let dataList = [];
|
|
160
|
+
dataList = 'string' == typeof this.responseListField ? result?.data?.[this.responseListField] || [] : result?.data?.list || result?.data?.rows || result?.data?.records || [];
|
|
155
161
|
let newDataList = [];
|
|
156
162
|
if (1 === this.store[pageField]) newDataList = dataList;
|
|
157
163
|
else if (this.is_scroll_page) newDataList = [
|
|
@@ -160,12 +166,12 @@ class page_data_instance_PageDataInstance extends ProxyInstanceObjectBase {
|
|
|
160
166
|
];
|
|
161
167
|
saveData = {
|
|
162
168
|
[dataListField]: newDataList,
|
|
163
|
-
[totalField]: result?.data?.
|
|
169
|
+
[totalField]: result?.data?.[responseTotalField] || 0
|
|
164
170
|
};
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
171
|
+
}
|
|
172
|
+
if (1 === this.store[pageField] || !this.is_scroll_page) {
|
|
173
|
+
saveData[selectedRowsField] = external_valtio_ref([]);
|
|
174
|
+
saveData[selectedRowKeysField] = external_valtio_ref([]);
|
|
169
175
|
}
|
|
170
176
|
if (this.onExtraData) {
|
|
171
177
|
const _temps = this.onExtraData(result, this);
|
|
@@ -301,7 +307,7 @@ const usePageDataInstanceContext = ()=>{
|
|
|
301
307
|
return PageDataInstance;
|
|
302
308
|
};
|
|
303
309
|
function PageDataInstanceContextProvider(props) {
|
|
304
|
-
const { instance, children, initialValues, is_scroll_page, defaultTabKey, tabItems, defaultPageSize, onBefore, getList, onAfter, onExtraData, onError, getResetValues, defaultQuery, codeFields, valueFields, isMountLoad, title } = props;
|
|
310
|
+
const { instance, children, initialValues, is_scroll_page, defaultTabKey, tabItems, defaultPageSize, onBefore, getList, onAfter, onExtraData, onError, getResetValues, defaultQuery, codeFields, valueFields, isMountLoad, title, responseSuccessCode, responseListField, responseTotalField } = props;
|
|
305
311
|
const pageInstance = usePageDataInstance(instance);
|
|
306
312
|
instance.onBefore = onBefore;
|
|
307
313
|
instance.getList = getList;
|
|
@@ -312,6 +318,9 @@ function PageDataInstanceContextProvider(props) {
|
|
|
312
318
|
instance.codeFields = codeFields;
|
|
313
319
|
instance.valueFields = valueFields;
|
|
314
320
|
instance.defaultQuery = defaultQuery;
|
|
321
|
+
instance.responseSuccessCode = responseSuccessCode;
|
|
322
|
+
instance.responseListField = responseListField;
|
|
323
|
+
instance.responseTotalField = responseTotalField;
|
|
315
324
|
useMemo(()=>pageInstance.ctor({
|
|
316
325
|
initialValues,
|
|
317
326
|
is_scroll_page,
|
package/esm/utils/request.js
CHANGED
|
@@ -190,7 +190,12 @@ class RequestInstance {
|
|
|
190
190
|
try {
|
|
191
191
|
return this.request({
|
|
192
192
|
...options,
|
|
193
|
-
method: 'GET'
|
|
193
|
+
method: 'GET',
|
|
194
|
+
header: {
|
|
195
|
+
accept: 'application/json, text/plain, */*',
|
|
196
|
+
'Content-Type': 'application/json;charset=utf-8',
|
|
197
|
+
...options.header || {}
|
|
198
|
+
}
|
|
194
199
|
});
|
|
195
200
|
} catch (error) {
|
|
196
201
|
throw error;
|
|
@@ -200,7 +205,12 @@ class RequestInstance {
|
|
|
200
205
|
try {
|
|
201
206
|
return this.request({
|
|
202
207
|
...options,
|
|
203
|
-
method: 'POST'
|
|
208
|
+
method: 'POST',
|
|
209
|
+
header: {
|
|
210
|
+
accept: 'application/json, text/plain, */*',
|
|
211
|
+
'Content-Type': 'application/json;charset=utf-8',
|
|
212
|
+
...options.header || {}
|
|
213
|
+
}
|
|
204
214
|
});
|
|
205
215
|
} catch (error) {
|
|
206
216
|
throw error;
|
|
@@ -43,6 +43,8 @@ var navigate_js_default = /*#__PURE__*/ __webpack_require__.n(navigate_js_namesp
|
|
|
43
43
|
const useId_js_namespaceObject = require("../utils/useId.js");
|
|
44
44
|
const instance_js_namespaceObject = require("../utils/valtio/instance.js");
|
|
45
45
|
const external_global_setting_data_instance_js_namespaceObject = require("./global.setting.data.instance.js");
|
|
46
|
+
const taro_namespaceObject = require("@tarojs/taro");
|
|
47
|
+
var taro_default = /*#__PURE__*/ __webpack_require__.n(taro_namespaceObject);
|
|
46
48
|
class GlobalMessageDataInstance extends instance_js_namespaceObject.ProxyInstanceObjectBase {
|
|
47
49
|
store = (0, external_valtio_namespaceObject.proxy)({
|
|
48
50
|
messageData: (0, external_valtio_namespaceObject.ref)([]),
|
|
@@ -86,17 +88,24 @@ class GlobalMessageDataInstance extends instance_js_namespaceObject.ProxyInstanc
|
|
|
86
88
|
});
|
|
87
89
|
};
|
|
88
90
|
onBeforetToLoginPage;
|
|
91
|
+
toRedirect = ()=>{
|
|
92
|
+
const currentPath = taro_default().getCurrentInstance().router?.params?.redirect || '';
|
|
93
|
+
if (currentPath) navigate_js_default().navigateTo({
|
|
94
|
+
url: currentPath
|
|
95
|
+
});
|
|
96
|
+
};
|
|
89
97
|
toLoginPage = ()=>{
|
|
90
98
|
if (this.onBeforetToLoginPage) {
|
|
91
99
|
const f = this.onBeforetToLoginPage();
|
|
92
100
|
if (false === f) return;
|
|
93
101
|
}
|
|
102
|
+
const currentPath = taro_default().getCurrentInstance().router?.path || '';
|
|
94
103
|
const loginPageRoute = external_global_setting_data_instance_js_namespaceObject.globalSettingDataInstance.store.loginPageRoute || '';
|
|
95
104
|
const isLoginPage = navigate_js_default().isCurrentPage(loginPageRoute || '');
|
|
96
105
|
const _loginPageRoute = `${loginPageRoute || ''}`.replace(/^\//, '');
|
|
97
106
|
if (isLoginPage) return;
|
|
98
107
|
navigate_js_default().navigateTo({
|
|
99
|
-
url: `/${_loginPageRoute}`
|
|
108
|
+
url: `/${_loginPageRoute}?redirect=${currentPath}`
|
|
100
109
|
});
|
|
101
110
|
};
|
|
102
111
|
}
|
|
@@ -78,6 +78,14 @@ export declare class PageDataInstance<T extends PageDataInstanceState = PageData
|
|
|
78
78
|
codeFields?: string[];
|
|
79
79
|
/**那些字段取值对象的 value 值 */
|
|
80
80
|
valueFields?: string[];
|
|
81
|
+
/**成功状态码*/
|
|
82
|
+
responseSuccessCode?: number;
|
|
83
|
+
/**对象中取值字段*/
|
|
84
|
+
responseListField?: string;
|
|
85
|
+
/**总页数字段
|
|
86
|
+
* @default "total"
|
|
87
|
+
*/
|
|
88
|
+
responseTotalField?: string;
|
|
81
89
|
/**是否滚动加载分页*/
|
|
82
90
|
is_scroll_page: boolean;
|
|
83
91
|
/**默认值*/
|
|
@@ -154,6 +162,16 @@ export interface PageDataInstanceContextProviderProps<T extends PageDataInstance
|
|
|
154
162
|
isMountLoad?: boolean;
|
|
155
163
|
/**页面标题*/
|
|
156
164
|
title?: string;
|
|
165
|
+
/**成功状态码
|
|
166
|
+
* @default 200
|
|
167
|
+
*/
|
|
168
|
+
responseSuccessCode?: number;
|
|
169
|
+
/**对象中取值字段*/
|
|
170
|
+
responseListField?: string;
|
|
171
|
+
/**总页数字段
|
|
172
|
+
* @default "total"
|
|
173
|
+
*/
|
|
174
|
+
responseTotalField?: string;
|
|
157
175
|
}
|
|
158
176
|
/**页面级数据状态管理上下文提供者*/
|
|
159
177
|
export declare function PageDataInstanceContextProvider<T extends PageDataInstanceState = PageDataInstanceState, M extends PageDataInstance<T> = PageDataInstance<T>>(props: PageDataInstanceContextProviderProps<T, M>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -61,6 +61,9 @@ class page_data_instance_PageDataInstance extends instance_js_namespaceObject.Pr
|
|
|
61
61
|
defaultQuery = {};
|
|
62
62
|
codeFields = [];
|
|
63
63
|
valueFields = [];
|
|
64
|
+
responseSuccessCode = 200;
|
|
65
|
+
responseListField = '';
|
|
66
|
+
responseTotalField = 'total';
|
|
64
67
|
is_scroll_page = true;
|
|
65
68
|
defaultInital = {
|
|
66
69
|
page: 1,
|
|
@@ -190,11 +193,14 @@ class page_data_instance_PageDataInstance extends instance_js_namespaceObject.Pr
|
|
|
190
193
|
const result = await this.getList?.(newParams, this);
|
|
191
194
|
this.updatedPageLoading(false);
|
|
192
195
|
this.store.loading.loadMore = false;
|
|
193
|
-
|
|
196
|
+
const successCode = 'number' == typeof this.responseSuccessCode ? this.responseSuccessCode : external_global_setting_data_instance_js_namespaceObject.globalSettingDataInstance.store.requestSuccessCode;
|
|
197
|
+
if (result && result.code === successCode) {
|
|
194
198
|
let saveData = {};
|
|
195
199
|
if (this.onAfter) saveData = this.onAfter(result, this);
|
|
196
200
|
else {
|
|
197
|
-
const
|
|
201
|
+
const responseTotalField = 'string' == typeof this.responseTotalField ? this.responseTotalField : 'total';
|
|
202
|
+
let dataList = [];
|
|
203
|
+
dataList = 'string' == typeof this.responseListField ? result?.data?.[this.responseListField] || [] : result?.data?.list || result?.data?.rows || result?.data?.records || [];
|
|
198
204
|
let newDataList = [];
|
|
199
205
|
if (1 === this.store[pageField]) newDataList = dataList;
|
|
200
206
|
else if (this.is_scroll_page) newDataList = [
|
|
@@ -203,12 +209,12 @@ class page_data_instance_PageDataInstance extends instance_js_namespaceObject.Pr
|
|
|
203
209
|
];
|
|
204
210
|
saveData = {
|
|
205
211
|
[dataListField]: newDataList,
|
|
206
|
-
[totalField]: result?.data?.
|
|
212
|
+
[totalField]: result?.data?.[responseTotalField] || 0
|
|
207
213
|
};
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
214
|
+
}
|
|
215
|
+
if (1 === this.store[pageField] || !this.is_scroll_page) {
|
|
216
|
+
saveData[selectedRowsField] = (0, external_valtio_namespaceObject.ref)([]);
|
|
217
|
+
saveData[selectedRowKeysField] = (0, external_valtio_namespaceObject.ref)([]);
|
|
212
218
|
}
|
|
213
219
|
if (this.onExtraData) {
|
|
214
220
|
const _temps = this.onExtraData(result, this);
|
|
@@ -344,7 +350,7 @@ const usePageDataInstanceContext = ()=>{
|
|
|
344
350
|
return PageDataInstance;
|
|
345
351
|
};
|
|
346
352
|
function PageDataInstanceContextProvider(props) {
|
|
347
|
-
const { instance, children, initialValues, is_scroll_page, defaultTabKey, tabItems, defaultPageSize, onBefore, getList, onAfter, onExtraData, onError, getResetValues, defaultQuery, codeFields, valueFields, isMountLoad, title } = props;
|
|
353
|
+
const { instance, children, initialValues, is_scroll_page, defaultTabKey, tabItems, defaultPageSize, onBefore, getList, onAfter, onExtraData, onError, getResetValues, defaultQuery, codeFields, valueFields, isMountLoad, title, responseSuccessCode, responseListField, responseTotalField } = props;
|
|
348
354
|
const pageInstance = usePageDataInstance(instance);
|
|
349
355
|
instance.onBefore = onBefore;
|
|
350
356
|
instance.getList = getList;
|
|
@@ -355,6 +361,9 @@ function PageDataInstanceContextProvider(props) {
|
|
|
355
361
|
instance.codeFields = codeFields;
|
|
356
362
|
instance.valueFields = valueFields;
|
|
357
363
|
instance.defaultQuery = defaultQuery;
|
|
364
|
+
instance.responseSuccessCode = responseSuccessCode;
|
|
365
|
+
instance.responseListField = responseListField;
|
|
366
|
+
instance.responseTotalField = responseTotalField;
|
|
358
367
|
(0, external_react_namespaceObject.useMemo)(()=>pageInstance.ctor({
|
|
359
368
|
initialValues,
|
|
360
369
|
is_scroll_page,
|
package/lib/utils/request.js
CHANGED
|
@@ -230,7 +230,12 @@ class RequestInstance {
|
|
|
230
230
|
try {
|
|
231
231
|
return this.request({
|
|
232
232
|
...options,
|
|
233
|
-
method: 'GET'
|
|
233
|
+
method: 'GET',
|
|
234
|
+
header: {
|
|
235
|
+
accept: 'application/json, text/plain, */*',
|
|
236
|
+
'Content-Type': 'application/json;charset=utf-8',
|
|
237
|
+
...options.header || {}
|
|
238
|
+
}
|
|
234
239
|
});
|
|
235
240
|
} catch (error) {
|
|
236
241
|
throw error;
|
|
@@ -240,7 +245,12 @@ class RequestInstance {
|
|
|
240
245
|
try {
|
|
241
246
|
return this.request({
|
|
242
247
|
...options,
|
|
243
|
-
method: 'POST'
|
|
248
|
+
method: 'POST',
|
|
249
|
+
header: {
|
|
250
|
+
accept: 'application/json, text/plain, */*',
|
|
251
|
+
'Content-Type': 'application/json;charset=utf-8',
|
|
252
|
+
...options.header || {}
|
|
253
|
+
}
|
|
244
254
|
});
|
|
245
255
|
} catch (error) {
|
|
246
256
|
throw error;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"author": "SunLxy <1011771396@qq.com>",
|
|
4
4
|
"description": "框架组件库",
|
|
5
5
|
"homepage": "https://github.com/autumn-fairy-tales/fairys-taro-react",
|
|
6
|
-
"version": "1.0.
|
|
6
|
+
"version": "1.0.24",
|
|
7
7
|
"main": "esm/index.js",
|
|
8
8
|
"types": "esm/index.d.ts",
|
|
9
9
|
"module": "esm/index.js",
|
|
@@ -6,6 +6,7 @@ import React from 'react';
|
|
|
6
6
|
import type { FairysTaroMessageItemProps } from 'components/Mesage';
|
|
7
7
|
import { ProxyInstanceObjectBase } from 'utils/valtio/instance';
|
|
8
8
|
import { globalSettingDataInstance } from './global.setting.data.instance';
|
|
9
|
+
import Taro from '@tarojs/taro';
|
|
9
10
|
|
|
10
11
|
export interface MessageDataType extends FairysTaroMessageItemProps {
|
|
11
12
|
/**用于唯一标识提示框(默认自动生成)*/
|
|
@@ -81,6 +82,16 @@ export class GlobalMessageDataInstance extends ProxyInstanceObjectBase<GlobalMes
|
|
|
81
82
|
* 跳转登录页面前执行
|
|
82
83
|
*/
|
|
83
84
|
onBeforetToLoginPage?: () => boolean | void;
|
|
85
|
+
// 跳转 redirect 路由
|
|
86
|
+
toRedirect = () => {
|
|
87
|
+
// 获取当前路由参数
|
|
88
|
+
const currentPath = Taro.getCurrentInstance().router?.params?.redirect || '';
|
|
89
|
+
if (currentPath) {
|
|
90
|
+
// 跳转 redirect 路由
|
|
91
|
+
navigate.navigateTo({ url: currentPath });
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
84
95
|
/**跳转登录页面*/
|
|
85
96
|
toLoginPage = () => {
|
|
86
97
|
if (this.onBeforetToLoginPage) {
|
|
@@ -90,6 +101,9 @@ export class GlobalMessageDataInstance extends ProxyInstanceObjectBase<GlobalMes
|
|
|
90
101
|
return;
|
|
91
102
|
}
|
|
92
103
|
}
|
|
104
|
+
// 当前路由
|
|
105
|
+
const currentPath = Taro.getCurrentInstance().router?.path || '';
|
|
106
|
+
|
|
93
107
|
const loginPageRoute = globalSettingDataInstance.store.loginPageRoute || '';
|
|
94
108
|
const isLoginPage = navigate.isCurrentPage(loginPageRoute || '');
|
|
95
109
|
const _loginPageRoute = `${loginPageRoute || ''}`.replace(/^\//, '');
|
|
@@ -98,7 +112,7 @@ export class GlobalMessageDataInstance extends ProxyInstanceObjectBase<GlobalMes
|
|
|
98
112
|
return;
|
|
99
113
|
}
|
|
100
114
|
// 跳转登录页面
|
|
101
|
-
navigate.navigateTo({ url: `/${_loginPageRoute}` });
|
|
115
|
+
navigate.navigateTo({ url: `/${_loginPageRoute}?redirect=${currentPath}` });
|
|
102
116
|
};
|
|
103
117
|
}
|
|
104
118
|
/**
|
|
@@ -83,6 +83,14 @@ export class PageDataInstance<
|
|
|
83
83
|
codeFields?: string[] = [];
|
|
84
84
|
/**那些字段取值对象的 value 值 */
|
|
85
85
|
valueFields?: string[] = [];
|
|
86
|
+
/**成功状态码*/
|
|
87
|
+
responseSuccessCode?: number = 200;
|
|
88
|
+
/**对象中取值字段*/
|
|
89
|
+
responseListField?: string = '';
|
|
90
|
+
/**总页数字段
|
|
91
|
+
* @default "total"
|
|
92
|
+
*/
|
|
93
|
+
responseTotalField?: string = 'total';
|
|
86
94
|
// ======================================挂载方法或参数======================================
|
|
87
95
|
/**是否滚动加载分页*/
|
|
88
96
|
is_scroll_page = true;
|
|
@@ -256,12 +264,22 @@ export class PageDataInstance<
|
|
|
256
264
|
const result = await this.getList?.(newParams, this);
|
|
257
265
|
this.updatedPageLoading(false);
|
|
258
266
|
this.store.loading.loadMore = false;
|
|
259
|
-
|
|
267
|
+
const successCode =
|
|
268
|
+
typeof this.responseSuccessCode === 'number'
|
|
269
|
+
? this.responseSuccessCode
|
|
270
|
+
: globalSettingDataInstance.store.requestSuccessCode;
|
|
271
|
+
if (result && result.code === successCode) {
|
|
260
272
|
let saveData = {};
|
|
261
273
|
if (this.onAfter) {
|
|
262
274
|
saveData = this.onAfter(result, this);
|
|
263
275
|
} else {
|
|
264
|
-
const
|
|
276
|
+
const responseTotalField = typeof this.responseTotalField === 'string' ? this.responseTotalField : 'total';
|
|
277
|
+
let dataList = [];
|
|
278
|
+
if (typeof this.responseListField === 'string') {
|
|
279
|
+
dataList = result?.data?.[this.responseListField] || [];
|
|
280
|
+
} else {
|
|
281
|
+
dataList = result?.data?.list || result?.data?.rows || result?.data?.records || [];
|
|
282
|
+
}
|
|
265
283
|
/**如果是第一页则直接返回数据,否则进行拼接数据*/
|
|
266
284
|
let newDataList = [];
|
|
267
285
|
if (this.store[pageField] === 1) {
|
|
@@ -271,13 +289,13 @@ export class PageDataInstance<
|
|
|
271
289
|
}
|
|
272
290
|
saveData = {
|
|
273
291
|
[dataListField]: newDataList,
|
|
274
|
-
[totalField]: result?.data?.
|
|
292
|
+
[totalField]: result?.data?.[responseTotalField] || 0,
|
|
275
293
|
};
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
294
|
+
}
|
|
295
|
+
// 第一页清理
|
|
296
|
+
if (this.store[pageField] === 1 || !this.is_scroll_page) {
|
|
297
|
+
saveData[selectedRowsField] = ref([]);
|
|
298
|
+
saveData[selectedRowKeysField] = ref([]);
|
|
281
299
|
}
|
|
282
300
|
if (this.onExtraData) {
|
|
283
301
|
const _temps = this.onExtraData(result, this);
|
|
@@ -478,6 +496,16 @@ export interface PageDataInstanceContextProviderProps<
|
|
|
478
496
|
isMountLoad?: boolean;
|
|
479
497
|
/**页面标题*/
|
|
480
498
|
title?: string;
|
|
499
|
+
/**成功状态码
|
|
500
|
+
* @default 200
|
|
501
|
+
*/
|
|
502
|
+
responseSuccessCode?: number;
|
|
503
|
+
/**对象中取值字段*/
|
|
504
|
+
responseListField?: string;
|
|
505
|
+
/**总页数字段
|
|
506
|
+
* @default "total"
|
|
507
|
+
*/
|
|
508
|
+
responseTotalField?: string;
|
|
481
509
|
}
|
|
482
510
|
|
|
483
511
|
/**页面级数据状态管理上下文提供者*/
|
|
@@ -504,6 +532,9 @@ export function PageDataInstanceContextProvider<
|
|
|
504
532
|
valueFields,
|
|
505
533
|
isMountLoad,
|
|
506
534
|
title,
|
|
535
|
+
responseSuccessCode,
|
|
536
|
+
responseListField,
|
|
537
|
+
responseTotalField,
|
|
507
538
|
} = props;
|
|
508
539
|
|
|
509
540
|
const pageInstance = usePageDataInstance(instance);
|
|
@@ -517,6 +548,9 @@ export function PageDataInstanceContextProvider<
|
|
|
517
548
|
instance.codeFields = codeFields;
|
|
518
549
|
instance.valueFields = valueFields;
|
|
519
550
|
instance.defaultQuery = defaultQuery;
|
|
551
|
+
instance.responseSuccessCode = responseSuccessCode;
|
|
552
|
+
instance.responseListField = responseListField;
|
|
553
|
+
instance.responseTotalField = responseTotalField;
|
|
520
554
|
|
|
521
555
|
useMemo(
|
|
522
556
|
() => pageInstance.ctor({ initialValues, is_scroll_page, defaultTabKey, tabItems, defaultPageSize }),
|
package/src/utils/request.ts
CHANGED
|
@@ -321,6 +321,11 @@ export class RequestInstance {
|
|
|
321
321
|
return this.request({
|
|
322
322
|
...options,
|
|
323
323
|
method: 'GET',
|
|
324
|
+
header: {
|
|
325
|
+
accept: 'application/json, text/plain, */*',
|
|
326
|
+
'Content-Type': 'application/json;charset=utf-8',
|
|
327
|
+
...(options.header || {}),
|
|
328
|
+
},
|
|
324
329
|
});
|
|
325
330
|
} catch (error) {
|
|
326
331
|
throw error;
|
|
@@ -333,6 +338,11 @@ export class RequestInstance {
|
|
|
333
338
|
return this.request({
|
|
334
339
|
...options,
|
|
335
340
|
method: 'POST',
|
|
341
|
+
header: {
|
|
342
|
+
accept: 'application/json, text/plain, */*',
|
|
343
|
+
'Content-Type': 'application/json;charset=utf-8',
|
|
344
|
+
...(options.header || {}),
|
|
345
|
+
},
|
|
336
346
|
});
|
|
337
347
|
} catch (error) {
|
|
338
348
|
throw error;
|