@4399ywkf/design 1.3.12 → 2.1.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/dist/MaxTokenSlider/index.d.ts +25 -0
- package/dist/MaxTokenSlider/index.js +148 -0
- package/dist/MaxTokenSlider/style.d.ts +6 -0
- package/dist/MaxTokenSlider/style.js +14 -0
- package/dist/Table/components/ColumnSetting/index.js +25 -35
- package/dist/Table/components/ColumnSetting/style.d.ts +16 -0
- package/dist/Table/components/ColumnSetting/style.js +19 -0
- package/dist/Table/components/EnumFilter/index.d.ts +8 -8
- package/dist/Table/components/EnumFilter/index.js +34 -36
- package/dist/Table/components/EnumFilter/style.d.ts +54 -0
- package/dist/Table/components/EnumFilter/style.js +58 -0
- package/dist/Table/components/Export/RadioMode.d.ts +1 -5
- package/dist/Table/components/Export/RadioMode.js +10 -11
- package/dist/Table/components/Export/index.js +160 -207
- package/dist/Table/components/Export/style.d.ts +15 -0
- package/dist/Table/components/Export/style.js +19 -0
- package/dist/Table/components/FilterDropdown/index.d.ts +7 -7
- package/dist/Table/components/FilterDropdown/index.js +6 -7
- package/dist/Table/components/FilterDropdown/style.d.ts +13 -0
- package/dist/Table/components/FilterDropdown/style.js +17 -0
- package/dist/Table/components/FilterKeys/index.d.ts +2 -2
- package/dist/Table/components/FilterKeys/index.js +51 -69
- package/dist/Table/components/FilterKeys/style.d.ts +29 -0
- package/dist/Table/components/FilterKeys/style.js +33 -0
- package/dist/Table/components/Reload/index.js +8 -21
- package/dist/Table/components/SearchInput/index.d.ts +3 -4
- package/dist/Table/components/SearchInput/index.js +50 -38
- package/dist/Table/components/SearchInput/style.d.ts +11 -0
- package/dist/Table/components/SearchInput/style.js +15 -0
- package/dist/Table/components/TableSize/index.js +7 -10
- package/dist/Table/components/TableTitle/index.d.ts +1 -1
- package/dist/Table/components/TableTitle/index.js +36 -38
- package/dist/Table/components/TableTitle/style.d.ts +25 -0
- package/dist/Table/components/TableTitle/style.js +29 -0
- package/dist/Table/context.d.ts +32 -0
- package/dist/Table/context.js +31 -0
- package/dist/Table/hooks/index.d.ts +8 -0
- package/dist/Table/hooks/index.js +8 -0
- package/dist/Table/hooks/useColumnsInit.d.ts +6 -0
- package/dist/Table/hooks/useColumnsInit.js +44 -0
- package/dist/Table/hooks/useEmptyText.d.ts +11 -0
- package/dist/Table/hooks/useEmptyText.js +34 -0
- package/dist/Table/hooks/usePagination.d.ts +9 -0
- package/dist/Table/hooks/usePagination.js +50 -0
- package/dist/Table/hooks/useQuerySnapshot.d.ts +6 -0
- package/dist/Table/hooks/useQuerySnapshot.js +63 -0
- package/dist/Table/hooks/useRowSelection.d.ts +11 -0
- package/dist/Table/hooks/useRowSelection.js +34 -0
- package/dist/Table/hooks/useSearchEffect.d.ts +9 -0
- package/dist/Table/hooks/useSearchEffect.js +48 -0
- package/dist/Table/hooks/useTableChange.d.ts +10 -0
- package/dist/Table/hooks/useTableChange.js +56 -0
- package/dist/Table/hooks/useTriggerSearch.d.ts +22 -0
- package/dist/Table/hooks/useTriggerSearch.js +130 -0
- package/dist/Table/index.d.ts +1 -1
- package/dist/Table/index.js +25 -1
- package/dist/Table/store/createStore.d.ts +2 -0
- package/dist/Table/store/createStore.js +30 -0
- package/dist/Table/store/hooks.d.ts +33 -0
- package/dist/Table/store/hooks.js +98 -0
- package/dist/Table/store/slices/column/actions.d.ts +9 -0
- package/dist/Table/store/slices/column/actions.js +10 -0
- package/dist/Table/store/slices/column/initialState.d.ts +2 -0
- package/dist/Table/store/slices/column/initialState.js +3 -0
- package/dist/Table/store/slices/persist/actions.d.ts +10 -0
- package/dist/Table/store/slices/persist/actions.js +28 -0
- package/dist/Table/store/slices/persist/api.d.ts +8 -0
- package/dist/Table/store/slices/persist/api.js +40 -0
- package/dist/Table/store/slices/query/actions.d.ts +32 -0
- package/dist/Table/store/slices/query/actions.js +129 -0
- package/dist/Table/store/slices/query/initialState.d.ts +2 -0
- package/dist/Table/store/slices/query/initialState.js +5 -0
- package/dist/Table/store/slices/request/actions.d.ts +8 -0
- package/dist/Table/store/slices/request/actions.js +14 -0
- package/dist/Table/store/slices/request/initialState.d.ts +2 -0
- package/dist/Table/store/slices/request/initialState.js +7 -0
- package/dist/Table/store/slices/ui/actions.d.ts +11 -0
- package/dist/Table/store/slices/ui/actions.js +15 -0
- package/dist/Table/store/slices/ui/initialState.d.ts +2 -0
- package/dist/Table/store/slices/ui/initialState.js +4 -0
- package/dist/Table/store/types.d.ts +79 -0
- package/dist/Table/store/types.js +1 -0
- package/dist/Table/style.d.ts +3 -0
- package/dist/Table/style.js +10 -0
- package/dist/Table/table.d.ts +2 -8
- package/dist/Table/table.js +160 -185
- package/dist/Table/type.d.ts +50 -64
- package/dist/Table/type.js +1 -3
- package/dist/Table/utils/Provide.d.ts +6 -9
- package/dist/Table/utils/Provide.js +4 -258
- package/dist/Table/utils/columnKey.d.ts +2 -0
- package/dist/Table/utils/columnKey.js +6 -0
- package/dist/Table/utils/getColumn.d.ts +7 -7
- package/dist/Table/utils/getColumnEnumProps.d.ts +4 -2
- package/dist/Table/utils/getColumnEnumProps.js +8 -6
- package/dist/Table/utils/getColumnMerge.d.ts +7 -2
- package/dist/Table/utils/getColumnMerge.js +3 -2
- package/dist/Table/utils/getDateColumn.d.ts +8 -7
- package/dist/Table/utils/getDateColumn.js +22 -68
- package/dist/Table/utils/getInputColumn.d.ts +2 -1
- package/dist/Table/utils/getInputColumn.js +2 -6
- package/dist/Table/utils/getSort.d.ts +4 -2
- package/dist/Table/utils/getSort.js +15 -12
- package/dist/Table/utils/index.d.ts +5 -20
- package/dist/Table/utils/index.js +16 -136
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/package.json +34 -25
- package/dist/Table/components/ColumnSetting/index.css +0 -4
- package/dist/Table/components/EnumFilter/index.css +0 -57
- package/dist/Table/components/FilterDropdown/index.css +0 -11
- package/dist/Table/components/FilterKeys/index.css +0 -19
- package/dist/Table/components/SearchInput/style.css +0 -10
- package/dist/Table/style.css +0 -42
package/dist/Table/table.js
CHANGED
|
@@ -1,70 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
var _excluded = ["title", "onSearch", "storageName", "columns", "dataSource", "pagination", "total", "size", "rowSelection"];
|
|
1
|
+
var _excluded = ["title", "onSearch", "request", "manualRequest", "params", "onRequestError", "renderRequestError", "renderRequestEmpty", "renderPagination", "storageName", "columns", "dataSource", "pagination", "total", "size", "rowSelection"];
|
|
3
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
4
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
8
7
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9
|
-
function
|
|
10
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
13
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
14
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
8
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
15
9
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
16
10
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
17
|
-
import { useDeepCompareEffect } from 'ahooks';
|
|
18
11
|
import { ConfigProvider, Table } from 'antd';
|
|
19
12
|
import zhCN from 'antd/locale/zh_CN';
|
|
20
|
-
import React, { forwardRef, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo
|
|
13
|
+
import React, { forwardRef, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo } from 'react';
|
|
21
14
|
import { useStore } from 'zustand';
|
|
22
15
|
import TableTitle from "./components/TableTitle";
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import "./
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// 使用自定义hook来管理订阅
|
|
30
|
-
var useStoreRef = function useStoreRef(selector) {
|
|
31
|
-
var store = useContext(StoreContext);
|
|
32
|
-
var ref = useRef(selector(store.getState()));
|
|
33
|
-
useEffect(function () {
|
|
34
|
-
var unsubscribe = store.subscribe(function (state) {
|
|
35
|
-
ref.current = selector(state);
|
|
36
|
-
});
|
|
37
|
-
return unsubscribe;
|
|
38
|
-
}, [store, selector]);
|
|
39
|
-
return ref;
|
|
40
|
-
};
|
|
16
|
+
import { TableContext } from "./context";
|
|
17
|
+
import { useColumnsInit, useEmptyText, usePagination, useQuerySnapshot, useRowSelection, useSearchEffect, useTableChange, useTriggerSearch } from "./hooks";
|
|
18
|
+
import { genRichColumnToColumn } from "./utils";
|
|
19
|
+
import { StoreContext } from "./utils/Provide";
|
|
20
|
+
import { useStyles } from "./style";
|
|
21
|
+
var EMPTY_COLUMNS = [];
|
|
41
22
|
var CustomTable = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
42
|
-
var _restProps$className;
|
|
23
|
+
var _restProps$locale, _restProps$className, _restProps$locale2;
|
|
24
|
+
var _useStyles = useStyles(),
|
|
25
|
+
styles = _useStyles.styles,
|
|
26
|
+
cx = _useStyles.cx;
|
|
43
27
|
var store = useContext(StoreContext);
|
|
44
|
-
var _useStore = useStore(store),
|
|
45
|
-
queryData = _useStore.queryData,
|
|
46
|
-
_setPagination = _useStore.setPagination,
|
|
47
|
-
setTotal = _useStore.setTotal,
|
|
48
|
-
_setFilter = _useStore.setFilter,
|
|
49
|
-
setStorageName = _useStore.setStorageName,
|
|
50
|
-
readLocalData = _useStore.readLocalData,
|
|
51
|
-
resetFilter = _useStore.resetFilter,
|
|
52
|
-
_setSize = _useStore.setSize,
|
|
53
|
-
setSortOrder = _useStore.setSortOrder,
|
|
54
|
-
setColumnSetting = _useStore.setColumnSetting,
|
|
55
|
-
setOffset = _useStore.setOffset,
|
|
56
|
-
columnSetting = _useStore.columnSetting;
|
|
57
|
-
var queryDataRef = useStoreRef(function (state) {
|
|
58
|
-
return state.queryData;
|
|
59
|
-
});
|
|
60
|
-
var columnSettingRef = useStoreRef(function (state) {
|
|
61
|
-
return state.columnSetting;
|
|
62
|
-
});
|
|
63
28
|
var title = props.title,
|
|
64
29
|
onSearch = props.onSearch,
|
|
30
|
+
request = props.request,
|
|
31
|
+
_props$manualRequest = props.manualRequest,
|
|
32
|
+
manualRequest = _props$manualRequest === void 0 ? false : _props$manualRequest,
|
|
33
|
+
params = props.params,
|
|
34
|
+
onRequestError = props.onRequestError,
|
|
35
|
+
renderRequestError = props.renderRequestError,
|
|
36
|
+
renderRequestEmpty = props.renderRequestEmpty,
|
|
37
|
+
renderPagination = props.renderPagination,
|
|
65
38
|
storageName = props.storageName,
|
|
66
39
|
_props$columns = props.columns,
|
|
67
|
-
propsColumns = _props$columns === void 0 ?
|
|
40
|
+
propsColumns = _props$columns === void 0 ? EMPTY_COLUMNS : _props$columns,
|
|
68
41
|
dataSource = props.dataSource,
|
|
69
42
|
propsPagination = props.pagination,
|
|
70
43
|
_props$total = props.total,
|
|
@@ -73,159 +46,161 @@ var CustomTable = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
73
46
|
size = _props$size === void 0 ? 'middle' : _props$size,
|
|
74
47
|
propsRowSelection = props.rowSelection,
|
|
75
48
|
restProps = _objectWithoutProperties(props, _excluded);
|
|
76
|
-
var _useState = useState([]),
|
|
77
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
78
|
-
selectedRowKeys = _useState2[0],
|
|
79
|
-
setSelectedRowKeys = _useState2[1];
|
|
80
49
|
|
|
81
|
-
|
|
82
|
-
var
|
|
50
|
+
// --- store actions ---
|
|
51
|
+
var setStorageName = useStore(store, function (s) {
|
|
52
|
+
return s.setStorageName;
|
|
53
|
+
});
|
|
54
|
+
var readLocalData = useStore(store, function (s) {
|
|
55
|
+
return s.readLocalData;
|
|
56
|
+
});
|
|
57
|
+
var setTotal = useStore(store, function (s) {
|
|
58
|
+
return s.setTotal;
|
|
59
|
+
});
|
|
60
|
+
var setSize = useStore(store, function (s) {
|
|
61
|
+
return s.setSize;
|
|
62
|
+
});
|
|
63
|
+
var setFilter = useStore(store, function (s) {
|
|
64
|
+
return s.setFilter;
|
|
65
|
+
});
|
|
66
|
+
var setPagination = useStore(store, function (s) {
|
|
67
|
+
return s.setPagination;
|
|
68
|
+
});
|
|
69
|
+
var setManualRequested = useStore(store, function (s) {
|
|
70
|
+
return s.setManualRequested;
|
|
71
|
+
});
|
|
72
|
+
var columnSetting = useStore(store, function (s) {
|
|
73
|
+
return s.columnSetting;
|
|
74
|
+
});
|
|
75
|
+
var requestLoading = useStore(store, function (s) {
|
|
76
|
+
return s.requestLoading;
|
|
77
|
+
});
|
|
78
|
+
var storeTotal = useStore(store, function (s) {
|
|
79
|
+
return s.total;
|
|
80
|
+
});
|
|
83
81
|
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
82
|
+
// --- domain hooks ---
|
|
83
|
+
var querySnapshot = useQuerySnapshot();
|
|
84
|
+
var _useTriggerSearch = useTriggerSearch({
|
|
85
|
+
request: request,
|
|
86
|
+
onSearch: onSearch,
|
|
87
|
+
params: params,
|
|
88
|
+
onRequestError: onRequestError
|
|
89
|
+
}),
|
|
90
|
+
triggerSearch = _useTriggerSearch.triggerSearch,
|
|
91
|
+
reload = _useTriggerSearch.reload,
|
|
92
|
+
reset = _useTriggerSearch.reset;
|
|
93
|
+
var mergedTotal = request ? storeTotal : total;
|
|
94
|
+
var pagination = usePagination(propsPagination, mergedTotal);
|
|
95
|
+
var onChangeTable = useTableChange(propsColumns);
|
|
96
|
+
var rowSelection = useRowSelection(propsRowSelection);
|
|
97
|
+
var emptyText = useEmptyText({
|
|
98
|
+
request: request,
|
|
99
|
+
renderRequestError: renderRequestError,
|
|
100
|
+
renderRequestEmpty: renderRequestEmpty,
|
|
101
|
+
defaultEmptyText: (_restProps$locale = restProps.locale) === null || _restProps$locale === void 0 ? void 0 : _restProps$locale.emptyText
|
|
102
|
+
});
|
|
103
|
+
useColumnsInit(propsColumns, storageName);
|
|
104
|
+
useSearchEffect(triggerSearch, {
|
|
105
|
+
request: request,
|
|
106
|
+
manualRequest: manualRequest,
|
|
107
|
+
params: params
|
|
98
108
|
});
|
|
99
|
-
useEffect(function () {
|
|
100
|
-
if (storageName) {
|
|
101
|
-
setStorageName(storageName);
|
|
102
|
-
}
|
|
103
|
-
var newTotal = total || (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) || 0;
|
|
104
|
-
setTotal(newTotal);
|
|
105
|
-
}, [storageName, total, dataSource === null || dataSource === void 0 ? void 0 : dataSource.length]);
|
|
106
109
|
|
|
107
|
-
|
|
108
|
-
var pagination = mergePagination(defaultPagination, total);
|
|
110
|
+
// --- simple side effects ---
|
|
109
111
|
useLayoutEffect(function () {
|
|
110
|
-
if (storageName)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
propsColumns === null || propsColumns === void 0 || propsColumns.map(function (col, index) {
|
|
117
|
-
var _col$dataIndex;
|
|
118
|
-
var columnKey = genColumnKey(col.key || (Array.isArray(col.dataIndex) ? col.dataIndex.join('.') : (_col$dataIndex = col.dataIndex) === null || _col$dataIndex === void 0 ? void 0 : _col$dataIndex.toString()), index);
|
|
119
|
-
if (col.defaultFilteredValue) {
|
|
120
|
-
_setFilter(columnKey, col.defaultFilteredValue);
|
|
121
|
-
}
|
|
122
|
-
if (col.filteredValue) {
|
|
123
|
-
_setFilter(columnKey, col.filteredValue);
|
|
124
|
-
}
|
|
125
|
-
if (col.defaultSortOrder) {
|
|
126
|
-
setSortOrder(columnKey, col.defaultSortOrder);
|
|
127
|
-
}
|
|
128
|
-
if (col.sortOrder) {
|
|
129
|
-
setSortOrder(columnKey, col.sortOrder);
|
|
130
|
-
}
|
|
131
|
-
columnSettingList.push({
|
|
132
|
-
key: columnKey,
|
|
133
|
-
disabled: col.disable,
|
|
134
|
-
hidden: col.hidden
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
if (!localStorage.getItem("".concat(storageName, "_columns"))) {
|
|
138
|
-
setColumnSetting(columnSettingList);
|
|
139
|
-
}
|
|
140
|
-
}, [propsColumns, storageName]);
|
|
141
|
-
useDeepCompareEffect(function () {
|
|
142
|
-
if (queryData.limit != undefined) {
|
|
143
|
-
if (onSearch) {
|
|
144
|
-
onSearch(queryDataRef.current);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}, [queryData.limit, queryData.order, queryData.filter, queryData.search, queryData.offset]);
|
|
148
|
-
var onChangeTable = function onChangeTable(pagination, filters, sorter, extra) {
|
|
149
|
-
var _pagination$current, _pagination$pageSize, _sorter$field, _findObj$sorter;
|
|
150
|
-
switch (extra.action) {
|
|
151
|
-
case 'paginate':
|
|
152
|
-
_setPagination((_pagination$current = pagination.current) !== null && _pagination$current !== void 0 ? _pagination$current : 1, (_pagination$pageSize = pagination.pageSize) !== null && _pagination$pageSize !== void 0 ? _pagination$pageSize : 10);
|
|
153
|
-
return;
|
|
154
|
-
case 'sort':
|
|
155
|
-
var columnKey = genColumnKey(sorter.columnKey || (Array.isArray(sorter.field) ? sorter.field.join('.') : (_sorter$field = sorter.field) === null || _sorter$field === void 0 ? void 0 : _sorter$field.toString()));
|
|
156
|
-
var isMultiple = false;
|
|
157
|
-
var findObj = propsColumns.find(function (column, index) {
|
|
158
|
-
var _column$dataIndex;
|
|
159
|
-
var colKey = genColumnKey(column.key || (Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : (_column$dataIndex = column.dataIndex) === null || _column$dataIndex === void 0 ? void 0 : _column$dataIndex.toString()), index);
|
|
160
|
-
return colKey === columnKey;
|
|
161
|
-
});
|
|
162
|
-
if (findObj !== null && findObj !== void 0 && (_findObj$sorter = findObj.sorter) !== null && _findObj$sorter !== void 0 && _findObj$sorter.multiple) {
|
|
163
|
-
isMultiple = true;
|
|
164
|
-
}
|
|
165
|
-
setSortOrder(columnKey, sorter.order, isMultiple);
|
|
166
|
-
return;
|
|
167
|
-
case 'filter':
|
|
168
|
-
Object.keys(filters).forEach(function (key) {
|
|
169
|
-
_setFilter(key, filters[key]);
|
|
170
|
-
});
|
|
171
|
-
setOffset(0);
|
|
172
|
-
return;
|
|
112
|
+
if (storageName) readLocalData(storageName);
|
|
113
|
+
var s = store.getState();
|
|
114
|
+
if (s.limit === undefined) {
|
|
115
|
+
var _ref, _propsPagination$page;
|
|
116
|
+
var ps = _typeof(propsPagination) === 'object' ? (_ref = (_propsPagination$page = propsPagination.pageSize) !== null && _propsPagination$page !== void 0 ? _propsPagination$page : propsPagination.defaultPageSize) !== null && _ref !== void 0 ? _ref : 20 : 20;
|
|
117
|
+
setPagination(1, ps);
|
|
173
118
|
}
|
|
174
|
-
};
|
|
119
|
+
}, [storageName, readLocalData, store, propsPagination, setPagination]);
|
|
175
120
|
useEffect(function () {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* 接管Table的批量选择
|
|
181
|
-
*/
|
|
182
|
-
var rowSelection = useMemo(function () {
|
|
183
|
-
if (!propsRowSelection) {
|
|
184
|
-
return undefined;
|
|
185
|
-
} else {
|
|
186
|
-
var propsRowSelectionOnChange = propsRowSelection.onChange;
|
|
187
|
-
propsRowSelection.onChange = function (selectedRowKeys, selectedRows, info) {
|
|
188
|
-
setSelectedRowKeys(selectedRowKeys);
|
|
189
|
-
if (propsRowSelectionOnChange && typeof propsRowSelectionOnChange === 'function') {
|
|
190
|
-
propsRowSelectionOnChange(selectedRowKeys, selectedRows, info);
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
return propsRowSelection;
|
|
194
|
-
}
|
|
195
|
-
}, [propsRowSelection]);
|
|
121
|
+
if (storageName) setStorageName(storageName);
|
|
122
|
+
if (!request) setTotal(total || (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) || 0);
|
|
123
|
+
}, [storageName, total, dataSource === null || dataSource === void 0 ? void 0 : dataSource.length, setStorageName, setTotal, request]);
|
|
196
124
|
useEffect(function () {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}, [
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
setFilter:
|
|
207
|
-
|
|
125
|
+
setSize(size);
|
|
126
|
+
}, [size, setSize]);
|
|
127
|
+
useEffect(function () {
|
|
128
|
+
if (manualRequest) setManualRequested(false);
|
|
129
|
+
}, [manualRequest, setManualRequested]);
|
|
130
|
+
|
|
131
|
+
// --- ref ---
|
|
132
|
+
useImperativeHandle(ref, function () {
|
|
133
|
+
return {
|
|
134
|
+
setFilter: setFilter,
|
|
135
|
+
setPagination: setPagination,
|
|
136
|
+
setSize: setSize,
|
|
137
|
+
reload: reload,
|
|
138
|
+
reset: reset,
|
|
139
|
+
queryData: store.getState().getQuerySnapshot()
|
|
140
|
+
};
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// --- context value ---
|
|
144
|
+
var ctxValue = useMemo(function () {
|
|
145
|
+
return {
|
|
208
146
|
columns: propsColumns,
|
|
209
147
|
title: title,
|
|
148
|
+
dataSource: dataSource,
|
|
149
|
+
isShowToggleColumns: restProps.isShowToggleColumns,
|
|
150
|
+
isShowSize: restProps.isShowSize,
|
|
151
|
+
isShowExport: restProps.isShowExport,
|
|
152
|
+
isShowReload: restProps.isShowReload,
|
|
153
|
+
quickInputToolTipRender: restProps.quickInputToolTipRender,
|
|
154
|
+
quickInputPlaceholder: restProps.quickInputPlaceholder,
|
|
155
|
+
rowSelection: propsRowSelection,
|
|
156
|
+
request: request,
|
|
157
|
+
manualRequest: manualRequest,
|
|
158
|
+
params: params,
|
|
210
159
|
onSearch: onSearch,
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
160
|
+
onRequestError: onRequestError,
|
|
161
|
+
renderRequestError: renderRequestError,
|
|
162
|
+
renderRequestEmpty: renderRequestEmpty,
|
|
163
|
+
triggerSearch: triggerSearch,
|
|
164
|
+
reload: reload,
|
|
165
|
+
reset: reset
|
|
166
|
+
};
|
|
167
|
+
}, [propsColumns, title, dataSource, restProps.isShowToggleColumns, restProps.isShowSize, restProps.isShowExport, restProps.isShowReload, restProps.quickInputToolTipRender, restProps.quickInputPlaceholder, propsRowSelection, request, manualRequest, params, onSearch, onRequestError, renderRequestError, renderRequestEmpty, triggerSearch, reload, reset]);
|
|
168
|
+
var data = request ? store.getState().requestDataSource : dataSource;
|
|
169
|
+
var useCustomPagination = !!renderPagination;
|
|
170
|
+
var paginationForTable = useCustomPagination || propsPagination === false ? false : pagination;
|
|
171
|
+
var paginationState = useMemo(function () {
|
|
172
|
+
var _pagination$current, _pagination$pageSize;
|
|
173
|
+
if (!useCustomPagination) return null;
|
|
174
|
+
var pCurrent = _typeof(pagination) === 'object' ? (_pagination$current = pagination.current) !== null && _pagination$current !== void 0 ? _pagination$current : 1 : 1;
|
|
175
|
+
var pPageSize = _typeof(pagination) === 'object' ? (_pagination$pageSize = pagination.pageSize) !== null && _pagination$pageSize !== void 0 ? _pagination$pageSize : 20 : 20;
|
|
176
|
+
return {
|
|
177
|
+
current: pCurrent,
|
|
178
|
+
pageSize: pPageSize,
|
|
179
|
+
total: mergedTotal,
|
|
180
|
+
onChange: setPagination
|
|
181
|
+
};
|
|
182
|
+
}, [useCustomPagination, pagination, mergedTotal, setPagination]);
|
|
183
|
+
return /*#__PURE__*/React.createElement(TableContext.Provider, {
|
|
184
|
+
value: ctxValue
|
|
185
|
+
}, /*#__PURE__*/React.createElement(ConfigProvider, {
|
|
186
|
+
locale: zhCN
|
|
214
187
|
}, /*#__PURE__*/React.createElement(Table, _extends({}, restProps, {
|
|
215
|
-
size:
|
|
216
|
-
className: (_restProps$className = restProps === null || restProps === void 0 ? void 0 : restProps.className) !== null && _restProps$className !== void 0 ? _restProps$className : 'rich-table',
|
|
188
|
+
size: querySnapshot.size,
|
|
189
|
+
className: cx(styles.table, (_restProps$className = restProps === null || restProps === void 0 ? void 0 : restProps.className) !== null && _restProps$className !== void 0 ? _restProps$className : 'rich-table'),
|
|
217
190
|
title: function title(currentPageData) {
|
|
218
191
|
return /*#__PURE__*/React.createElement(TableTitle, {
|
|
219
192
|
currentPageData: currentPageData
|
|
220
193
|
});
|
|
221
194
|
},
|
|
222
|
-
columns: genRichColumnToColumn(propsColumns,
|
|
223
|
-
dataSource:
|
|
224
|
-
pagination:
|
|
195
|
+
columns: genRichColumnToColumn(propsColumns, querySnapshot, setFilter, columnSetting, data),
|
|
196
|
+
dataSource: data,
|
|
197
|
+
pagination: paginationForTable,
|
|
225
198
|
onChange: onChangeTable,
|
|
226
|
-
rowSelection: rowSelection
|
|
227
|
-
|
|
199
|
+
rowSelection: rowSelection,
|
|
200
|
+
loading: request ? requestLoading : restProps.loading,
|
|
201
|
+
locale: _objectSpread(_objectSpread({}, (_restProps$locale2 = restProps.locale) !== null && _restProps$locale2 !== void 0 ? _restProps$locale2 : {}), {}, {
|
|
202
|
+
emptyText: emptyText
|
|
203
|
+
})
|
|
204
|
+
})), paginationState && (renderPagination === null || renderPagination === void 0 ? void 0 : renderPagination(paginationState))));
|
|
228
205
|
});
|
|
229
|
-
|
|
230
|
-
// React 18: 使用forwardRef包装组件
|
|
231
206
|
export default CustomTable;
|
package/dist/Table/type.d.ts
CHANGED
|
@@ -1,46 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { TablePaginationConfig } from 'antd';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
defaultPageSize: number;
|
|
7
|
-
defaultCurrent: number;
|
|
8
|
-
offset?: number;
|
|
9
|
-
limit?: number;
|
|
10
|
-
search?: string;
|
|
11
|
-
filter?: {
|
|
12
|
-
[index: string]: {
|
|
13
|
-
value: any[];
|
|
14
|
-
exact: boolean;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
sort?: string;
|
|
18
|
-
order?: 'descend' | 'desc' | string | null;
|
|
19
|
-
storageName?: string;
|
|
20
|
-
multipleSort?: any[];
|
|
21
|
-
total?: number;
|
|
22
|
-
size?: 'large' | 'middle' | 'small';
|
|
23
|
-
};
|
|
24
|
-
columnSetting: {
|
|
25
|
-
key: string;
|
|
26
|
-
hidden?: boolean;
|
|
27
|
-
disabled?: boolean | {
|
|
28
|
-
checkbox?: boolean;
|
|
29
|
-
};
|
|
30
|
-
}[];
|
|
31
|
-
setPagination: (newPage: number, newPageSize: number) => void;
|
|
32
|
-
setFilter: (key: string, value: any, exact?: boolean) => void;
|
|
33
|
-
setStorageName: (key: string) => void;
|
|
34
|
-
readLocalData: (key?: string) => void;
|
|
35
|
-
resetFilter: () => void;
|
|
36
|
-
setSearch: (value: string) => void;
|
|
37
|
-
setSortOrder: (key: string, value?: 'descend' | 'ascend' | string | null, isMultiple?: boolean) => void;
|
|
38
|
-
setColumnSetting: (value: any[]) => void;
|
|
39
|
-
setTotal: (value: number) => void;
|
|
40
|
-
setSize: (value: 'large' | 'middle' | 'small') => void;
|
|
41
|
-
setQueryData: (value: any) => void;
|
|
42
|
-
setOffset: (value: number) => void;
|
|
43
|
-
}
|
|
2
|
+
import type { TablePaginationConfig, TableProps } from 'antd/es/table';
|
|
3
|
+
import type { ColumnType } from 'antd/es/table';
|
|
4
|
+
import type { FilterInputValue, QuerySnapshot, TableStore } from './store/types';
|
|
5
|
+
export type BearState = TableStore;
|
|
44
6
|
interface FullFilterOptionsType {
|
|
45
7
|
text?: string;
|
|
46
8
|
value?: string | number;
|
|
@@ -48,17 +10,18 @@ interface FullFilterOptionsType {
|
|
|
48
10
|
export interface FullFilterType {
|
|
49
11
|
type: 'varchar' | 'enum' | 'date' | 'dateWeek' | 'dateYear' | 'dateMonth' | 'dateRange';
|
|
50
12
|
options?: FullFilterOptionsType[];
|
|
51
|
-
value?:
|
|
13
|
+
value?: React.Key[];
|
|
14
|
+
optionLabelProp?: 'value' | 'text';
|
|
52
15
|
filterKeyName?: 'value' | 'text';
|
|
53
|
-
showTime?:
|
|
16
|
+
showTime?: object | boolean;
|
|
54
17
|
format?: string;
|
|
55
18
|
mode?: 'multiple' | 'radio';
|
|
56
19
|
exact?: boolean;
|
|
57
|
-
valueRenderer?: (values:
|
|
20
|
+
valueRenderer?: (values: React.Key[]) => React.ReactNode;
|
|
58
21
|
valueSeparator?: string;
|
|
59
22
|
tagClassName?: string;
|
|
60
23
|
}
|
|
61
|
-
export interface RichColumn<RecordType
|
|
24
|
+
export interface RichColumn<RecordType = Record<string, unknown>> extends ColumnType<RecordType> {
|
|
62
25
|
fullFilter?: FullFilterType;
|
|
63
26
|
visible?: boolean;
|
|
64
27
|
disable?: boolean | {
|
|
@@ -73,31 +36,54 @@ export interface RichColumn<RecordType> extends ColumnProps<RecordType> {
|
|
|
73
36
|
export interface ExportParams {
|
|
74
37
|
name?: string;
|
|
75
38
|
mode?: string;
|
|
76
|
-
query?: () => Promise<
|
|
39
|
+
query?: () => Promise<unknown>;
|
|
40
|
+
}
|
|
41
|
+
export interface TableRequestResult<T = unknown> {
|
|
42
|
+
data: T[];
|
|
43
|
+
total?: number;
|
|
44
|
+
success?: boolean;
|
|
45
|
+
message?: string;
|
|
46
|
+
}
|
|
47
|
+
export type TableRequestParams = QuerySnapshot & {
|
|
48
|
+
current: number;
|
|
49
|
+
pageSize: number;
|
|
50
|
+
[key: string]: unknown;
|
|
51
|
+
};
|
|
52
|
+
export interface TableActionRef {
|
|
53
|
+
setFilter: (key: string, value: FilterInputValue | null | undefined, exact?: boolean) => void;
|
|
54
|
+
setPagination: (page: number, pageSize: number) => void;
|
|
55
|
+
setSize: (value: 'large' | 'middle' | 'small') => void;
|
|
56
|
+
reload: () => Promise<void>;
|
|
57
|
+
reset: () => void;
|
|
58
|
+
queryData: QuerySnapshot;
|
|
59
|
+
}
|
|
60
|
+
export interface TablePaginationState {
|
|
61
|
+
current: number;
|
|
62
|
+
pageSize: number;
|
|
63
|
+
total: number;
|
|
64
|
+
onChange: (page: number, pageSize: number) => void;
|
|
77
65
|
}
|
|
78
|
-
export interface TableState extends TableProps {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
*/
|
|
82
|
-
columns?: RichColumn<any>[];
|
|
83
|
-
/**
|
|
84
|
-
* @description 表格的数据源
|
|
85
|
-
*/
|
|
86
|
-
dataSource?: any[];
|
|
87
|
-
/**
|
|
88
|
-
* @description 沿用Antd 分页组件
|
|
89
|
-
*/
|
|
66
|
+
export interface TableState extends TableProps<any> {
|
|
67
|
+
columns?: RichColumn<unknown>[];
|
|
68
|
+
dataSource?: unknown[];
|
|
90
69
|
pagination?: false | TablePaginationConfig;
|
|
91
70
|
total?: number;
|
|
92
71
|
storageName?: string;
|
|
93
|
-
onSearch?: (payload:
|
|
94
|
-
|
|
72
|
+
onSearch?: (payload: QuerySnapshot) => void;
|
|
73
|
+
request?: (params: TableRequestParams) => Promise<TableRequestResult<unknown>> | TableRequestResult<unknown>;
|
|
74
|
+
manualRequest?: boolean;
|
|
75
|
+
params?: Record<string, unknown>;
|
|
76
|
+
onRequestError?: (error: Error) => void;
|
|
77
|
+
renderRequestError?: (error: Error) => React.ReactNode;
|
|
78
|
+
renderRequestEmpty?: () => React.ReactNode;
|
|
79
|
+
renderPagination?: (state: TablePaginationState) => React.ReactNode;
|
|
80
|
+
title?: (data: readonly unknown[]) => React.ReactNode;
|
|
95
81
|
isShowToggleColumns?: boolean;
|
|
96
82
|
size?: 'large' | 'middle' | 'small';
|
|
97
83
|
isShowExport?: boolean | ExportParams;
|
|
98
84
|
isShowReload?: boolean;
|
|
99
|
-
quickInputToolTipRender?: (v:
|
|
100
|
-
quickInputPlaceholder?: (v:
|
|
85
|
+
quickInputToolTipRender?: (v: unknown[]) => React.ReactNode;
|
|
86
|
+
quickInputPlaceholder?: (v: unknown[]) => string;
|
|
101
87
|
[key: string]: any;
|
|
102
88
|
}
|
|
103
89
|
declare const _default: {};
|
|
@@ -105,7 +91,7 @@ export default _default;
|
|
|
105
91
|
export type TableTypes = {
|
|
106
92
|
BearState: BearState;
|
|
107
93
|
FullFilterType: FullFilterType;
|
|
108
|
-
RichColumn: RichColumn<
|
|
94
|
+
RichColumn: RichColumn<unknown>;
|
|
109
95
|
ExportParams: ExportParams;
|
|
110
96
|
TableState: TableState;
|
|
111
97
|
};
|
package/dist/Table/type.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { StoreApi } from 'zustand';
|
|
3
|
-
import type {
|
|
4
|
-
declare const
|
|
5
|
-
declare const
|
|
6
|
-
initValue: any;
|
|
2
|
+
import type { StoreApi } from 'zustand';
|
|
3
|
+
import type { TableStore } from '../store/types';
|
|
4
|
+
declare const StoreContext: React.Context<StoreApi<TableStore>>;
|
|
5
|
+
declare const StoreProvider: ({ children }: {
|
|
7
6
|
children: React.ReactNode;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
declare const StoreProvider: ({ children }: any) => React.FunctionComponentElement<React.ProviderProps<StoreApi<BearState>>>;
|
|
11
|
-
export { Container, StoreContext, StoreProvider, TableContext };
|
|
7
|
+
}) => React.FunctionComponentElement<React.ProviderProps<StoreApi<TableStore>>>;
|
|
8
|
+
export { StoreContext, StoreProvider };
|