ls-pro-common 3.0.75 → 3.0.77
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/dist/common.css +13 -7
- package/dist/common.js +1 -1
- package/dist/common.js.LICENSE.txt +10 -0
- package/dist/common.min.css +13 -7
- package/dist/common.min.js +1 -1
- package/dist/common.min.js.LICENSE.txt +10 -0
- package/es/components/common.less +2 -2
- package/es/hooks/useFilterBack.d.ts +23 -0
- package/es/hooks/useFilterBack.js +78 -0
- package/es/hooks/useQueue.d.ts +14 -0
- package/es/hooks/useQueue.js +60 -0
- package/es/index.d.ts +4 -2
- package/es/index.js +3 -1
- package/lib/components/common.less +2 -2
- package/lib/hooks/useFilterBack.d.ts +23 -0
- package/lib/hooks/useFilterBack.js +78 -0
- package/lib/hooks/useQueue.d.ts +14 -0
- package/lib/hooks/useQueue.js +60 -0
- package/lib/index.d.ts +4 -2
- package/lib/index.js +3 -1
- package/package.json +1 -1
|
@@ -30,6 +30,16 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
30
30
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* @license React
|
|
35
|
+
* react-is.production.min.js
|
|
36
|
+
*
|
|
37
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
38
|
+
*
|
|
39
|
+
* This source code is licensed under the MIT license found in the
|
|
40
|
+
* LICENSE file in the root directory of this source tree.
|
|
41
|
+
*/
|
|
42
|
+
|
|
33
43
|
/** @license React v16.13.1
|
|
34
44
|
* react-is.production.min.js
|
|
35
45
|
*
|
|
@@ -173,7 +173,7 @@ body.theme-yellow {
|
|
|
173
173
|
display: flex;
|
|
174
174
|
flex-direction: column;
|
|
175
175
|
|
|
176
|
-
.flex {
|
|
176
|
+
> .flex {
|
|
177
177
|
height: 0;
|
|
178
178
|
}
|
|
179
179
|
}
|
|
@@ -182,7 +182,7 @@ body.theme-yellow {
|
|
|
182
182
|
display: flex;
|
|
183
183
|
flex-direction: row;
|
|
184
184
|
|
|
185
|
-
.flex {
|
|
185
|
+
> .flex {
|
|
186
186
|
width: 0;
|
|
187
187
|
}
|
|
188
188
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name 本地查询字段清空
|
|
3
|
+
*/
|
|
4
|
+
interface useFilterLocalType {
|
|
5
|
+
/**@name 表格的actionRef */
|
|
6
|
+
tableRef: any;
|
|
7
|
+
}
|
|
8
|
+
interface useFilterBack {
|
|
9
|
+
/**@name 已存在过滤字段数量 */
|
|
10
|
+
filterLocal: number;
|
|
11
|
+
/**@name 设置已存在过滤数量 */
|
|
12
|
+
setFilterLocal: any;
|
|
13
|
+
/**@name 根据filter中的值设置filterLocal */
|
|
14
|
+
changeFilterFun: (val: any) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @name 本地过滤条件清空图标
|
|
18
|
+
* @description 结合table中的onChange第二个参数filter使用, 可直接使用changeFilterFun(filter)
|
|
19
|
+
* @param props
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
export declare const useFilterLocal: (props: useFilterLocalType) => useFilterBack;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import "antd/es/tooltip/style";
|
|
2
|
+
import _Tooltip from "antd/es/tooltip";
|
|
3
|
+
import "antd/es/badge/style";
|
|
4
|
+
import _Badge from "antd/es/badge";
|
|
5
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
6
|
+
/**
|
|
7
|
+
* @name 本地查询字段清空
|
|
8
|
+
*/
|
|
9
|
+
import { useEffect, useState } from 'react';
|
|
10
|
+
import { ClearOutlined } from '@ant-design/icons';
|
|
11
|
+
import React from 'react';
|
|
12
|
+
import ReactDOM from 'react-dom';
|
|
13
|
+
/**
|
|
14
|
+
* @name 本地过滤条件清空图标
|
|
15
|
+
* @description 结合table中的onChange第二个参数filter使用, 可直接使用changeFilterFun(filter)
|
|
16
|
+
* @param props
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export var useFilterLocal = function useFilterLocal(props) {
|
|
20
|
+
var tableRef = props.tableRef;
|
|
21
|
+
var _useState = useState(0),
|
|
22
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
23
|
+
filterLocal = _useState2[0],
|
|
24
|
+
setFilterLocal = _useState2[1];
|
|
25
|
+
var changeFilterFun = function changeFilterFun() {
|
|
26
|
+
var filter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
27
|
+
if (Object.prototype.toString.call(filter) !== '[object Object]') return;
|
|
28
|
+
var str = 0;
|
|
29
|
+
for (var key in filter) {
|
|
30
|
+
if (filter[key]) {
|
|
31
|
+
str++;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
setFilterLocal(str);
|
|
35
|
+
};
|
|
36
|
+
var ClearOutlinedDom = function ClearOutlinedDom() {
|
|
37
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
className: "ant-pro-table-list-toolbar-setting-item"
|
|
39
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
40
|
+
key: 'clear',
|
|
41
|
+
onClick: function onClick() {
|
|
42
|
+
var _tableRef$current;
|
|
43
|
+
tableRef === null || tableRef === void 0 ? void 0 : (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.setFilter({});
|
|
44
|
+
setFilterLocal(0);
|
|
45
|
+
}
|
|
46
|
+
}, /*#__PURE__*/React.createElement(_Tooltip, {
|
|
47
|
+
getPopupContainer: function getPopupContainer(triggerNode) {
|
|
48
|
+
return triggerNode.parentNode.parentNode.parentNode;
|
|
49
|
+
},
|
|
50
|
+
title: '一键清空本地筛选'
|
|
51
|
+
}, /*#__PURE__*/React.createElement(_Badge, {
|
|
52
|
+
color: "#1890ff",
|
|
53
|
+
size: "small",
|
|
54
|
+
count: filterLocal
|
|
55
|
+
}, /*#__PURE__*/React.createElement(ClearOutlined, null)))));
|
|
56
|
+
};
|
|
57
|
+
useEffect(function () {
|
|
58
|
+
if (!(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current)) return;
|
|
59
|
+
var listDom = document.getElementsByClassName('ant-pro-table-list-toolbar-setting-items');
|
|
60
|
+
var filterDom = document.getElementsByClassName('self-add-clear-filter-tcm');
|
|
61
|
+
if (filterDom === null || filterDom === void 0 ? void 0 : filterDom.length) {
|
|
62
|
+
var _filterDom$0$parentNo;
|
|
63
|
+
(_filterDom$0$parentNo = filterDom[0].parentNode) === null || _filterDom$0$parentNo === void 0 ? void 0 : _filterDom$0$parentNo.removeChild(filterDom[0]);
|
|
64
|
+
}
|
|
65
|
+
if (listDom === null || listDom === void 0 ? void 0 : listDom.length) {
|
|
66
|
+
var newDiv = document.createElement('div');
|
|
67
|
+
newDiv.className = 'ant-space-item self-add-clear-filter-tcm';
|
|
68
|
+
var clearIcon = /*#__PURE__*/React.createElement(ClearOutlinedDom);
|
|
69
|
+
ReactDOM.render(clearIcon, newDiv);
|
|
70
|
+
listDom[0].appendChild(newDiv);
|
|
71
|
+
}
|
|
72
|
+
}, [filterLocal, tableRef]);
|
|
73
|
+
return {
|
|
74
|
+
setFilterLocal: setFilterLocal,
|
|
75
|
+
filterLocal: filterLocal,
|
|
76
|
+
changeFilterFun: changeFilterFun
|
|
77
|
+
};
|
|
78
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare type QueueType = {
|
|
2
|
+
/**
|
|
3
|
+
* 回调函数,异步方法
|
|
4
|
+
* @param params 传入参数
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
callMethod: (params: any | any[]) => Promise<any>;
|
|
8
|
+
/**
|
|
9
|
+
* 每次取几个一起执行,默认为1;
|
|
10
|
+
*/
|
|
11
|
+
number?: number;
|
|
12
|
+
};
|
|
13
|
+
declare function useQueue(props: QueueType): any[];
|
|
14
|
+
export default useQueue;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
+
// 任务队列执行方法
|
|
5
|
+
import { useRef, useEffect, useState } from 'react';
|
|
6
|
+
function useQueue(props) {
|
|
7
|
+
var callMethod = props.callMethod,
|
|
8
|
+
_props$number = props.number,
|
|
9
|
+
number = _props$number === void 0 ? 1 : _props$number;
|
|
10
|
+
var _useState = useState([]),
|
|
11
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
12
|
+
list = _useState2[0],
|
|
13
|
+
setList = _useState2[1]; //提供写入队列方法
|
|
14
|
+
var runningRef = useRef(false); //执行任务状态
|
|
15
|
+
useEffect(function () {
|
|
16
|
+
var callQueue = /*#__PURE__*/function () {
|
|
17
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
18
|
+
var params;
|
|
19
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
20
|
+
while (1) switch (_context.prev = _context.next) {
|
|
21
|
+
case 0:
|
|
22
|
+
console.log('当前队列数据', list);
|
|
23
|
+
if (!(!list.length || runningRef.current)) {
|
|
24
|
+
_context.next = 3;
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
return _context.abrupt("return");
|
|
28
|
+
case 3:
|
|
29
|
+
runningRef.current = true;
|
|
30
|
+
_context.prev = 4;
|
|
31
|
+
params = list.slice(0, number);
|
|
32
|
+
_context.next = 8;
|
|
33
|
+
return callMethod(params);
|
|
34
|
+
case 8:
|
|
35
|
+
setList(function (l) {
|
|
36
|
+
runningRef.current = false;
|
|
37
|
+
return l.slice(params.length);
|
|
38
|
+
});
|
|
39
|
+
_context.next = 15;
|
|
40
|
+
break;
|
|
41
|
+
case 11:
|
|
42
|
+
_context.prev = 11;
|
|
43
|
+
_context.t0 = _context["catch"](4);
|
|
44
|
+
setList([]);
|
|
45
|
+
runningRef.current = false;
|
|
46
|
+
case 15:
|
|
47
|
+
case "end":
|
|
48
|
+
return _context.stop();
|
|
49
|
+
}
|
|
50
|
+
}, _callee, null, [[4, 11]]);
|
|
51
|
+
}));
|
|
52
|
+
return function callQueue() {
|
|
53
|
+
return _ref.apply(this, arguments);
|
|
54
|
+
};
|
|
55
|
+
}();
|
|
56
|
+
callQueue();
|
|
57
|
+
}, [list]);
|
|
58
|
+
return [list, setList];
|
|
59
|
+
}
|
|
60
|
+
export default useQueue;
|
package/es/index.d.ts
CHANGED
|
@@ -24,10 +24,12 @@ import useSingle from './hooks/useSingle';
|
|
|
24
24
|
import useDtl from './hooks/useDtl';
|
|
25
25
|
import usePermission from './hooks/usePermission';
|
|
26
26
|
import useGetState from './hooks/useGetState';
|
|
27
|
+
import { useFilterLocal } from './hooks/useFilterBack';
|
|
28
|
+
import useQueue from './hooks/useQueue';
|
|
27
29
|
/** Type */
|
|
28
30
|
import type { ApiResponse, TableToolbar, BaseApiType, MethodType } from './typing';
|
|
29
31
|
import type { DtlLyaoutProps } from './components/DtlLayout';
|
|
30
32
|
import type { DescritionCardProps } from './components/DescritionCard';
|
|
31
33
|
import type { PermissionProps } from './components/Permission';
|
|
32
|
-
export type { ApiResponse, TableToolbar, BaseApiType, MethodType, DtlLyaoutProps, DescritionCardProps, PermissionProps };
|
|
33
|
-
export { DtlLayout, InputTable, Page404, Loading, IconSelector, ImageSelector, InputMultiLine, AreaCascader, AreaCascaderPanel, DescritionCard, Permission, GroupTip, IconBack, IconText, IconBell, IconQuestion, IconSearch, TagCheck, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission, useGetState };
|
|
34
|
+
export type { ApiResponse, TableToolbar, BaseApiType, MethodType, DtlLyaoutProps, DescritionCardProps, PermissionProps, };
|
|
35
|
+
export { DtlLayout, InputTable, Page404, Loading, IconSelector, ImageSelector, InputMultiLine, AreaCascader, AreaCascaderPanel, DescritionCard, Permission, GroupTip, IconBack, IconText, IconBell, IconQuestion, IconSearch, TagCheck, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission, useGetState, useFilterLocal, useQueue, };
|
package/es/index.js
CHANGED
|
@@ -24,4 +24,6 @@ import useSingle from './hooks/useSingle';
|
|
|
24
24
|
import useDtl from './hooks/useDtl';
|
|
25
25
|
import usePermission from './hooks/usePermission';
|
|
26
26
|
import useGetState from './hooks/useGetState';
|
|
27
|
-
|
|
27
|
+
import { useFilterLocal } from './hooks/useFilterBack';
|
|
28
|
+
import useQueue from './hooks/useQueue';
|
|
29
|
+
export { DtlLayout, InputTable, Page404, Loading, IconSelector, ImageSelector, InputMultiLine, AreaCascader, AreaCascaderPanel, DescritionCard, Permission, GroupTip, IconBack, IconText, IconBell, IconQuestion, IconSearch, TagCheck, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission, useGetState, useFilterLocal, useQueue };
|
|
@@ -173,7 +173,7 @@ body.theme-yellow {
|
|
|
173
173
|
display: flex;
|
|
174
174
|
flex-direction: column;
|
|
175
175
|
|
|
176
|
-
.flex {
|
|
176
|
+
> .flex {
|
|
177
177
|
height: 0;
|
|
178
178
|
}
|
|
179
179
|
}
|
|
@@ -182,7 +182,7 @@ body.theme-yellow {
|
|
|
182
182
|
display: flex;
|
|
183
183
|
flex-direction: row;
|
|
184
184
|
|
|
185
|
-
.flex {
|
|
185
|
+
> .flex {
|
|
186
186
|
width: 0;
|
|
187
187
|
}
|
|
188
188
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name 本地查询字段清空
|
|
3
|
+
*/
|
|
4
|
+
interface useFilterLocalType {
|
|
5
|
+
/**@name 表格的actionRef */
|
|
6
|
+
tableRef: any;
|
|
7
|
+
}
|
|
8
|
+
interface useFilterBack {
|
|
9
|
+
/**@name 已存在过滤字段数量 */
|
|
10
|
+
filterLocal: number;
|
|
11
|
+
/**@name 设置已存在过滤数量 */
|
|
12
|
+
setFilterLocal: any;
|
|
13
|
+
/**@name 根据filter中的值设置filterLocal */
|
|
14
|
+
changeFilterFun: (val: any) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @name 本地过滤条件清空图标
|
|
18
|
+
* @description 结合table中的onChange第二个参数filter使用, 可直接使用changeFilterFun(filter)
|
|
19
|
+
* @param props
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
export declare const useFilterLocal: (props: useFilterLocalType) => useFilterBack;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import "antd/es/tooltip/style";
|
|
2
|
+
import _Tooltip from "antd/es/tooltip";
|
|
3
|
+
import "antd/es/badge/style";
|
|
4
|
+
import _Badge from "antd/es/badge";
|
|
5
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
6
|
+
/**
|
|
7
|
+
* @name 本地查询字段清空
|
|
8
|
+
*/
|
|
9
|
+
import { useEffect, useState } from 'react';
|
|
10
|
+
import { ClearOutlined } from '@ant-design/icons';
|
|
11
|
+
import React from 'react';
|
|
12
|
+
import ReactDOM from 'react-dom';
|
|
13
|
+
/**
|
|
14
|
+
* @name 本地过滤条件清空图标
|
|
15
|
+
* @description 结合table中的onChange第二个参数filter使用, 可直接使用changeFilterFun(filter)
|
|
16
|
+
* @param props
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export var useFilterLocal = function useFilterLocal(props) {
|
|
20
|
+
var tableRef = props.tableRef;
|
|
21
|
+
var _useState = useState(0),
|
|
22
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
23
|
+
filterLocal = _useState2[0],
|
|
24
|
+
setFilterLocal = _useState2[1];
|
|
25
|
+
var changeFilterFun = function changeFilterFun() {
|
|
26
|
+
var filter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
27
|
+
if (Object.prototype.toString.call(filter) !== '[object Object]') return;
|
|
28
|
+
var str = 0;
|
|
29
|
+
for (var key in filter) {
|
|
30
|
+
if (filter[key]) {
|
|
31
|
+
str++;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
setFilterLocal(str);
|
|
35
|
+
};
|
|
36
|
+
var ClearOutlinedDom = function ClearOutlinedDom() {
|
|
37
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
className: "ant-pro-table-list-toolbar-setting-item"
|
|
39
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
40
|
+
key: 'clear',
|
|
41
|
+
onClick: function onClick() {
|
|
42
|
+
var _tableRef$current;
|
|
43
|
+
tableRef === null || tableRef === void 0 ? void 0 : (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.setFilter({});
|
|
44
|
+
setFilterLocal(0);
|
|
45
|
+
}
|
|
46
|
+
}, /*#__PURE__*/React.createElement(_Tooltip, {
|
|
47
|
+
getPopupContainer: function getPopupContainer(triggerNode) {
|
|
48
|
+
return triggerNode.parentNode.parentNode.parentNode;
|
|
49
|
+
},
|
|
50
|
+
title: '一键清空本地筛选'
|
|
51
|
+
}, /*#__PURE__*/React.createElement(_Badge, {
|
|
52
|
+
color: "#1890ff",
|
|
53
|
+
size: "small",
|
|
54
|
+
count: filterLocal
|
|
55
|
+
}, /*#__PURE__*/React.createElement(ClearOutlined, null)))));
|
|
56
|
+
};
|
|
57
|
+
useEffect(function () {
|
|
58
|
+
if (!(tableRef === null || tableRef === void 0 ? void 0 : tableRef.current)) return;
|
|
59
|
+
var listDom = document.getElementsByClassName('ant-pro-table-list-toolbar-setting-items');
|
|
60
|
+
var filterDom = document.getElementsByClassName('self-add-clear-filter-tcm');
|
|
61
|
+
if (filterDom === null || filterDom === void 0 ? void 0 : filterDom.length) {
|
|
62
|
+
var _filterDom$0$parentNo;
|
|
63
|
+
(_filterDom$0$parentNo = filterDom[0].parentNode) === null || _filterDom$0$parentNo === void 0 ? void 0 : _filterDom$0$parentNo.removeChild(filterDom[0]);
|
|
64
|
+
}
|
|
65
|
+
if (listDom === null || listDom === void 0 ? void 0 : listDom.length) {
|
|
66
|
+
var newDiv = document.createElement('div');
|
|
67
|
+
newDiv.className = 'ant-space-item self-add-clear-filter-tcm';
|
|
68
|
+
var clearIcon = /*#__PURE__*/React.createElement(ClearOutlinedDom);
|
|
69
|
+
ReactDOM.render(clearIcon, newDiv);
|
|
70
|
+
listDom[0].appendChild(newDiv);
|
|
71
|
+
}
|
|
72
|
+
}, [filterLocal, tableRef]);
|
|
73
|
+
return {
|
|
74
|
+
setFilterLocal: setFilterLocal,
|
|
75
|
+
filterLocal: filterLocal,
|
|
76
|
+
changeFilterFun: changeFilterFun
|
|
77
|
+
};
|
|
78
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare type QueueType = {
|
|
2
|
+
/**
|
|
3
|
+
* 回调函数,异步方法
|
|
4
|
+
* @param params 传入参数
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
callMethod: (params: any | any[]) => Promise<any>;
|
|
8
|
+
/**
|
|
9
|
+
* 每次取几个一起执行,默认为1;
|
|
10
|
+
*/
|
|
11
|
+
number?: number;
|
|
12
|
+
};
|
|
13
|
+
declare function useQueue(props: QueueType): any[];
|
|
14
|
+
export default useQueue;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
+
// 任务队列执行方法
|
|
5
|
+
import { useRef, useEffect, useState } from 'react';
|
|
6
|
+
function useQueue(props) {
|
|
7
|
+
var callMethod = props.callMethod,
|
|
8
|
+
_props$number = props.number,
|
|
9
|
+
number = _props$number === void 0 ? 1 : _props$number;
|
|
10
|
+
var _useState = useState([]),
|
|
11
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
12
|
+
list = _useState2[0],
|
|
13
|
+
setList = _useState2[1]; //提供写入队列方法
|
|
14
|
+
var runningRef = useRef(false); //执行任务状态
|
|
15
|
+
useEffect(function () {
|
|
16
|
+
var callQueue = /*#__PURE__*/function () {
|
|
17
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
18
|
+
var params;
|
|
19
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
20
|
+
while (1) switch (_context.prev = _context.next) {
|
|
21
|
+
case 0:
|
|
22
|
+
console.log('当前队列数据', list);
|
|
23
|
+
if (!(!list.length || runningRef.current)) {
|
|
24
|
+
_context.next = 3;
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
return _context.abrupt("return");
|
|
28
|
+
case 3:
|
|
29
|
+
runningRef.current = true;
|
|
30
|
+
_context.prev = 4;
|
|
31
|
+
params = list.slice(0, number);
|
|
32
|
+
_context.next = 8;
|
|
33
|
+
return callMethod(params);
|
|
34
|
+
case 8:
|
|
35
|
+
setList(function (l) {
|
|
36
|
+
runningRef.current = false;
|
|
37
|
+
return l.slice(params.length);
|
|
38
|
+
});
|
|
39
|
+
_context.next = 15;
|
|
40
|
+
break;
|
|
41
|
+
case 11:
|
|
42
|
+
_context.prev = 11;
|
|
43
|
+
_context.t0 = _context["catch"](4);
|
|
44
|
+
setList([]);
|
|
45
|
+
runningRef.current = false;
|
|
46
|
+
case 15:
|
|
47
|
+
case "end":
|
|
48
|
+
return _context.stop();
|
|
49
|
+
}
|
|
50
|
+
}, _callee, null, [[4, 11]]);
|
|
51
|
+
}));
|
|
52
|
+
return function callQueue() {
|
|
53
|
+
return _ref.apply(this, arguments);
|
|
54
|
+
};
|
|
55
|
+
}();
|
|
56
|
+
callQueue();
|
|
57
|
+
}, [list]);
|
|
58
|
+
return [list, setList];
|
|
59
|
+
}
|
|
60
|
+
export default useQueue;
|
package/lib/index.d.ts
CHANGED
|
@@ -24,10 +24,12 @@ import useSingle from './hooks/useSingle';
|
|
|
24
24
|
import useDtl from './hooks/useDtl';
|
|
25
25
|
import usePermission from './hooks/usePermission';
|
|
26
26
|
import useGetState from './hooks/useGetState';
|
|
27
|
+
import { useFilterLocal } from './hooks/useFilterBack';
|
|
28
|
+
import useQueue from './hooks/useQueue';
|
|
27
29
|
/** Type */
|
|
28
30
|
import type { ApiResponse, TableToolbar, BaseApiType, MethodType } from './typing';
|
|
29
31
|
import type { DtlLyaoutProps } from './components/DtlLayout';
|
|
30
32
|
import type { DescritionCardProps } from './components/DescritionCard';
|
|
31
33
|
import type { PermissionProps } from './components/Permission';
|
|
32
|
-
export type { ApiResponse, TableToolbar, BaseApiType, MethodType, DtlLyaoutProps, DescritionCardProps, PermissionProps };
|
|
33
|
-
export { DtlLayout, InputTable, Page404, Loading, IconSelector, ImageSelector, InputMultiLine, AreaCascader, AreaCascaderPanel, DescritionCard, Permission, GroupTip, IconBack, IconText, IconBell, IconQuestion, IconSearch, TagCheck, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission, useGetState };
|
|
34
|
+
export type { ApiResponse, TableToolbar, BaseApiType, MethodType, DtlLyaoutProps, DescritionCardProps, PermissionProps, };
|
|
35
|
+
export { DtlLayout, InputTable, Page404, Loading, IconSelector, ImageSelector, InputMultiLine, AreaCascader, AreaCascaderPanel, DescritionCard, Permission, GroupTip, IconBack, IconText, IconBell, IconQuestion, IconSearch, TagCheck, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission, useGetState, useFilterLocal, useQueue, };
|
package/lib/index.js
CHANGED
|
@@ -24,4 +24,6 @@ import useSingle from './hooks/useSingle';
|
|
|
24
24
|
import useDtl from './hooks/useDtl';
|
|
25
25
|
import usePermission from './hooks/usePermission';
|
|
26
26
|
import useGetState from './hooks/useGetState';
|
|
27
|
-
|
|
27
|
+
import { useFilterLocal } from './hooks/useFilterBack';
|
|
28
|
+
import useQueue from './hooks/useQueue';
|
|
29
|
+
export { DtlLayout, InputTable, Page404, Loading, IconSelector, ImageSelector, InputMultiLine, AreaCascader, AreaCascaderPanel, DescritionCard, Permission, GroupTip, IconBack, IconText, IconBell, IconQuestion, IconSearch, TagCheck, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission, useGetState, useFilterLocal, useQueue };
|