@hw-component/table 0.0.4-beta-v9 → 0.0.4-beta-v16
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/es/HTableBody/AlertMsg.d.ts +6 -0
- package/es/HTableBody/AlertMsg.js +48 -0
- package/es/HTableBody/RowSelection.d.ts +9 -0
- package/es/HTableBody/RowSelection.js +135 -0
- package/es/HTableBody/hooks.d.ts +76 -76
- package/es/HTableBody/hooks.js +34 -7
- package/es/HTableBody/index.d.ts +3 -2
- package/es/HTableBody/index.js +42 -28
- package/es/HTableFooter/index.js +2 -2
- package/es/HTableHeader/index.js +4 -4
- package/es/Table.d.ts +1 -1
- package/es/Table.js +11 -19
- package/es/context.d.ts +1 -0
- package/es/index.css +7 -1
- package/es/index.d.ts +0 -1
- package/es/index.js +0 -1
- package/es/modal.d.ts +8 -5
- package/lib/HTableBody/AlertMsg.d.ts +6 -0
- package/lib/HTableBody/AlertMsg.js +51 -0
- package/lib/HTableBody/RowSelection.d.ts +9 -0
- package/lib/HTableBody/RowSelection.js +137 -0
- package/lib/HTableBody/hooks.d.ts +76 -76
- package/lib/HTableBody/hooks.js +34 -7
- package/lib/HTableBody/index.d.ts +3 -2
- package/lib/HTableBody/index.js +41 -27
- package/lib/HTableFooter/index.js +2 -2
- package/lib/HTableHeader/index.js +4 -4
- package/lib/Table.d.ts +1 -1
- package/lib/Table.js +11 -19
- package/lib/context.d.ts +1 -0
- package/lib/index.css +7 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -2
- package/lib/modal.d.ts +8 -5
- package/package.json +1 -1
- package/src/components/HTableBody/AlertMsg.tsx +37 -0
- package/src/components/HTableBody/RowSelection.tsx +111 -0
- package/src/components/HTableBody/{hooks.ts → hooks.tsx} +22 -7
- package/src/components/HTableBody/index.tsx +45 -33
- package/src/components/HTableHeader/index.tsx +4 -3
- package/src/components/HTablePagination/index.tsx +10 -13
- package/src/components/Table.tsx +4 -13
- package/src/components/context.ts +1 -0
- package/src/components/index.less +9 -2
- package/src/components/index.tsx +1 -1
- package/src/components/modal.ts +14 -5
- package/src/index.less +2 -1
- package/src/pages/Table/index.tsx +39 -30
- package/src/pages/TableCustomize/index.tsx +8 -4
- package/src/routes.tsx +5 -6
- package/es/TableCustomize.js +0 -85
- package/lib/TableCustomize.js +0 -88
package/lib/HTableBody/index.js
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
6
|
+
var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
|
|
7
|
+
var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js/instance/keys');
|
|
5
8
|
var _Object$keys = require('@babel/runtime-corejs3/core-js/object/keys');
|
|
6
9
|
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js/object/get-own-property-symbols');
|
|
7
10
|
var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js/instance/filter');
|
|
@@ -10,9 +13,6 @@ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js/instance/
|
|
|
10
13
|
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js/object/get-own-property-descriptors');
|
|
11
14
|
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js/object/define-properties');
|
|
12
15
|
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js/object/define-property');
|
|
13
|
-
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
14
|
-
var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
|
|
15
|
-
var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js/instance/keys');
|
|
16
16
|
var jsxRuntime = require('react/jsx-runtime');
|
|
17
17
|
var ProTable = require('@ant-design/pro-table');
|
|
18
18
|
var hooks = require('./hooks.js');
|
|
@@ -22,8 +22,9 @@ var antd = require('antd');
|
|
|
22
22
|
var TableConfig = require('../TableConfig.js');
|
|
23
23
|
var index$1 = require('../HTablePagination/index.js');
|
|
24
24
|
var index = require('../hooks/index.js');
|
|
25
|
+
var AlertMsg = require('./AlertMsg.js');
|
|
25
26
|
|
|
26
|
-
var _excluded = ["configData", "pagination", "onPageChange", "rowSelection", "rowKey", "emptyRender", "errorRender", "tableStyle", "paginationStyle", "headerTitle"];
|
|
27
|
+
var _excluded = ["configData", "pagination", "onPageChange", "rowSelection", "rowKey", "emptyRender", "errorRender", "tableStyle", "paginationStyle", "headerTitle", "options", "actionRender"];
|
|
27
28
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
28
29
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
29
30
|
var defaultRender = function defaultRender() {
|
|
@@ -31,6 +32,11 @@ var defaultRender = function defaultRender() {
|
|
|
31
32
|
image: antd.Empty.PRESENTED_IMAGE_SIMPLE
|
|
32
33
|
});
|
|
33
34
|
};
|
|
35
|
+
var contentStyle = {
|
|
36
|
+
paddingLeft: 24,
|
|
37
|
+
paddingRight: 24,
|
|
38
|
+
marginBottom: 12
|
|
39
|
+
};
|
|
34
40
|
var Body = (function (_ref) {
|
|
35
41
|
var configData = _ref.configData,
|
|
36
42
|
_ref$pagination = _ref.pagination,
|
|
@@ -45,9 +51,11 @@ var Body = (function (_ref) {
|
|
|
45
51
|
tableStyle = _ref.tableStyle,
|
|
46
52
|
paginationStyle = _ref.paginationStyle,
|
|
47
53
|
headerTitle = _ref.headerTitle,
|
|
54
|
+
options = _ref.options,
|
|
55
|
+
actionRender = _ref.actionRender,
|
|
48
56
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
49
|
-
var selectedRowKeys = rowSelection.selectedRowKeys
|
|
50
|
-
|
|
57
|
+
var selectedRowKeys = rowSelection.selectedRowKeys;
|
|
58
|
+
rowSelection.onChange;
|
|
51
59
|
var _useHTableContext = context.useHTableContext(),
|
|
52
60
|
tableInstance = _useHTableContext.tableInstance,
|
|
53
61
|
contextConfigData = _useHTableContext.configData,
|
|
@@ -68,21 +76,20 @@ var Body = (function (_ref) {
|
|
|
68
76
|
var bodyConfigData = configData || contextConfigData;
|
|
69
77
|
var _ref2 = data || {},
|
|
70
78
|
records = _ref2.records;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if (onChange) {
|
|
77
|
-
return onChange(key, rowData);
|
|
78
|
-
}
|
|
79
|
-
rowOnChange(key, rowData);
|
|
80
|
-
};
|
|
79
|
+
var cols = hooks.useCols({
|
|
80
|
+
configData: bodyConfigData,
|
|
81
|
+
rowSelection: rowSelection,
|
|
82
|
+
table: tableInstance
|
|
83
|
+
});
|
|
81
84
|
hooks.useSynchronousKeys({
|
|
82
85
|
selectedRowKeys: selectedRowKeys,
|
|
83
86
|
records: records,
|
|
84
87
|
rowKey: rowKey
|
|
85
88
|
});
|
|
89
|
+
var _selectedRowData$keys = _keysInstanceProperty(selectedRowData),
|
|
90
|
+
keys = _selectedRowData$keys === void 0 ? [] : _selectedRowData$keys,
|
|
91
|
+
selectAll = selectedRowData.selectAll;
|
|
92
|
+
var alwaysShowAlert = keys.length > 0 || selectAll;
|
|
86
93
|
var className = index.useClassName("hw-table-body");
|
|
87
94
|
return jsxRuntime.jsx("div", {
|
|
88
95
|
style: tableStyle,
|
|
@@ -94,16 +101,26 @@ var Body = (function (_ref) {
|
|
|
94
101
|
}
|
|
95
102
|
return tableEmptyRender === null || tableEmptyRender === void 0 ? void 0 : tableEmptyRender(tableInstance);
|
|
96
103
|
},
|
|
97
|
-
children: [jsxRuntime.jsx(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
headerTitle: headerTitle ? /*#__PURE__*/React.cloneElement(headerTitle, {
|
|
104
|
+
children: [headerTitle && jsxRuntime.jsx(antd.Row, {
|
|
105
|
+
gutter: [0, 8],
|
|
106
|
+
style: contentStyle,
|
|
107
|
+
children: /*#__PURE__*/React.cloneElement(headerTitle, {
|
|
102
108
|
selectedRowData: selectedRowData,
|
|
103
109
|
allSelectChange: allSelectChange,
|
|
104
110
|
rowOnChange: rowOnChange
|
|
105
|
-
})
|
|
106
|
-
|
|
111
|
+
})
|
|
112
|
+
}), alwaysShowAlert && jsxRuntime.jsx("div", {
|
|
113
|
+
style: contentStyle,
|
|
114
|
+
children: jsxRuntime.jsx(antd.Alert, {
|
|
115
|
+
message: jsxRuntime.jsx(AlertMsg.default, {
|
|
116
|
+
actionRender: actionRender
|
|
117
|
+
}),
|
|
118
|
+
type: "info"
|
|
119
|
+
})
|
|
120
|
+
}), jsxRuntime.jsx(ProTable, _objectSpread(_objectSpread({}, props), {}, {
|
|
121
|
+
columns: cols,
|
|
122
|
+
search: false,
|
|
123
|
+
options: options ? options : {
|
|
107
124
|
reload: function reload() {
|
|
108
125
|
tableInstance.table.reloadWithParams();
|
|
109
126
|
}
|
|
@@ -111,10 +128,7 @@ var Body = (function (_ref) {
|
|
|
111
128
|
tableStyle: {
|
|
112
129
|
paddingBottom: 0
|
|
113
130
|
},
|
|
114
|
-
rowSelection:
|
|
115
|
-
selectedRowKeys: _keysInstanceProperty(selectedRowData),
|
|
116
|
-
onChange: change
|
|
117
|
-
}),
|
|
131
|
+
rowSelection: false,
|
|
118
132
|
loading: loading,
|
|
119
133
|
rowKey: rowKey,
|
|
120
134
|
dataSource: records,
|
|
@@ -22,7 +22,7 @@ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymb
|
|
|
22
22
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
23
|
var Text = antd.Typography.Text,
|
|
24
24
|
Link = antd.Typography.Link;
|
|
25
|
-
var
|
|
25
|
+
var index = (function (_ref) {
|
|
26
26
|
var actionRender = _ref.actionRender,
|
|
27
27
|
footerRender = _ref.footerRender,
|
|
28
28
|
footerStyle = _ref.footerStyle,
|
|
@@ -94,5 +94,5 @@ var Footer = (function (_ref) {
|
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
96
|
|
|
97
|
-
exports.default =
|
|
97
|
+
exports.default = index;
|
|
98
98
|
// powered by h
|
|
@@ -17,6 +17,7 @@ var context = require('../context.js');
|
|
|
17
17
|
var form = require('@hw-component/form');
|
|
18
18
|
var React = require('react');
|
|
19
19
|
var utils = require('./utils.js');
|
|
20
|
+
var index = require('../hooks/index.js');
|
|
20
21
|
|
|
21
22
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
23
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -39,12 +40,11 @@ var Header = (function (_ref) {
|
|
|
39
40
|
var nConfigData = React.useMemo(function () {
|
|
40
41
|
return utils.formConfigDataProvider(headerConfigData);
|
|
41
42
|
}, [configData]);
|
|
43
|
+
var className = index.useClassName("hw-table-header");
|
|
42
44
|
return jsxRuntime.jsx(antd.Card, {
|
|
43
|
-
style: _objectSpread({
|
|
44
|
-
borderRadius: 4
|
|
45
|
-
}, headerStyle),
|
|
45
|
+
style: _objectSpread({}, headerStyle),
|
|
46
46
|
bordered: false,
|
|
47
|
-
className: "hw_table_header",
|
|
47
|
+
className: "hw_table_header ".concat(className),
|
|
48
48
|
bodyStyle: {
|
|
49
49
|
paddingBottom: 0
|
|
50
50
|
},
|
package/lib/Table.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { HTableProps } from "./modal";
|
|
2
|
-
declare const _default: ({ request, configData, searchSpan, table,
|
|
2
|
+
declare const _default: ({ request, configData, searchSpan, table, hideHeader, headerStyle, tableStyle, action, spaceSize, className, paginationStyle, rowKey, ...props }: HTableProps) => JSX.Element;
|
|
3
3
|
export default _default;
|
package/lib/Table.js
CHANGED
|
@@ -16,14 +16,13 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
16
16
|
var index = require('./HTableHeader/index.js');
|
|
17
17
|
var index$1 = require('./HTableBody/index.js');
|
|
18
18
|
var useCurrentTable = require('./hooks/useCurrentTable.js');
|
|
19
|
-
var index$2 = require('./HTableFooter/index.js');
|
|
20
19
|
var useRowObj = require('./hooks/useRowObj.js');
|
|
21
20
|
var context = require('./context.js');
|
|
22
21
|
var antd = require('antd');
|
|
23
22
|
var useReq = require('./hooks/useReq.js');
|
|
24
23
|
var useDispatch = require('./hooks/useDispatch.js');
|
|
25
24
|
|
|
26
|
-
var _excluded = ["request", "configData", "searchSpan", "table", "
|
|
25
|
+
var _excluded = ["request", "configData", "searchSpan", "table", "hideHeader", "headerStyle", "tableStyle", "action", "spaceSize", "className", "paginationStyle", "rowKey"];
|
|
27
26
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
28
27
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
29
28
|
var Table = (function (_ref) {
|
|
@@ -31,22 +30,18 @@ var Table = (function (_ref) {
|
|
|
31
30
|
configData = _ref.configData,
|
|
32
31
|
searchSpan = _ref.searchSpan,
|
|
33
32
|
table = _ref.table,
|
|
34
|
-
actionRender = _ref.actionRender,
|
|
35
|
-
footerRender = _ref.footerRender,
|
|
36
33
|
hideHeader = _ref.hideHeader,
|
|
37
34
|
_ref$headerStyle = _ref.headerStyle,
|
|
38
35
|
headerStyle = _ref$headerStyle === void 0 ? {} : _ref$headerStyle,
|
|
39
|
-
_ref$footerStyle = _ref.footerStyle,
|
|
40
|
-
footerStyle = _ref$footerStyle === void 0 ? {} : _ref$footerStyle,
|
|
41
36
|
_ref$tableStyle = _ref.tableStyle,
|
|
42
37
|
tableStyle = _ref$tableStyle === void 0 ? {} : _ref$tableStyle,
|
|
43
38
|
_ref$action = _ref.action,
|
|
44
|
-
action = _ref$action === void 0 ? {} : _ref$action
|
|
45
|
-
_ref
|
|
46
|
-
spaceSize = _ref$spaceSize === void 0 ? 15 : _ref$spaceSize;
|
|
39
|
+
action = _ref$action === void 0 ? {} : _ref$action;
|
|
40
|
+
_ref.spaceSize;
|
|
47
41
|
_ref.className;
|
|
48
42
|
var paginationStyle = _ref.paginationStyle,
|
|
49
|
-
|
|
43
|
+
_ref$rowKey = _ref.rowKey,
|
|
44
|
+
rowKey = _ref$rowKey === void 0 ? "id" : _ref$rowKey,
|
|
50
45
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
51
46
|
var _useReq = useReq.default({
|
|
52
47
|
request: request
|
|
@@ -95,11 +90,12 @@ var Table = (function (_ref) {
|
|
|
95
90
|
return run(value);
|
|
96
91
|
},
|
|
97
92
|
onPageChange: tableInstance.table.reloadWithParams,
|
|
98
|
-
setSelectedRowData: setSelectedRowData
|
|
93
|
+
setSelectedRowData: setSelectedRowData,
|
|
94
|
+
rowKey: rowKey
|
|
99
95
|
},
|
|
100
96
|
children: jsxRuntime.jsxs(antd.Space, {
|
|
101
97
|
direction: "vertical",
|
|
102
|
-
size:
|
|
98
|
+
size: 0,
|
|
103
99
|
style: {
|
|
104
100
|
width: "100%"
|
|
105
101
|
},
|
|
@@ -108,13 +104,9 @@ var Table = (function (_ref) {
|
|
|
108
104
|
headerStyle: headerStyle
|
|
109
105
|
}), jsxRuntime.jsx(index$1.default, _objectSpread({
|
|
110
106
|
tableStyle: tableStyle,
|
|
111
|
-
paginationStyle: paginationStyle
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
footerRender: footerRender,
|
|
115
|
-
footerStyle: footerStyle,
|
|
116
|
-
footerBtnRender: footerBtnRender
|
|
117
|
-
})]
|
|
107
|
+
paginationStyle: paginationStyle,
|
|
108
|
+
rowKey: rowKey
|
|
109
|
+
}, props))]
|
|
118
110
|
})
|
|
119
111
|
});
|
|
120
112
|
});
|
package/lib/context.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ interface HContextModal extends Omit<HTableProps, "request"> {
|
|
|
13
13
|
onFinish: (value: Record<string, any>) => Promise<any>;
|
|
14
14
|
onPageChange: (value: Record<string, any>) => Promise<any>;
|
|
15
15
|
setSelectedRowData: (row: RowObj) => void;
|
|
16
|
+
rowKey?: string;
|
|
16
17
|
}
|
|
17
18
|
export declare const HTableContext: React.Context<HContextModal | null>;
|
|
18
19
|
export declare const useHTableContext: () => HContextModal;
|
package/lib/index.css
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
.ant-hw-table-body {
|
|
2
|
-
border-radius: 4px;
|
|
2
|
+
border-bottom-left-radius: 4px;
|
|
3
|
+
border-bottom-right-radius: 4px;
|
|
3
4
|
background-color: #fff;
|
|
4
5
|
overflow: hidden;
|
|
5
6
|
}
|
|
@@ -11,3 +12,8 @@
|
|
|
11
12
|
border-radius: 4px;
|
|
12
13
|
background-color: #ffffff;
|
|
13
14
|
}
|
|
15
|
+
.ant-hw-table-header {
|
|
16
|
+
border-top-left-radius: 4px;
|
|
17
|
+
border-top-right-radius: 4px;
|
|
18
|
+
padding-bottom: 0px;
|
|
19
|
+
}
|
package/lib/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import "./index.less";
|
|
|
2
2
|
export { default as HTable } from "./Table";
|
|
3
3
|
export { default as useHTable } from "./hooks/useHTable";
|
|
4
4
|
export { default as HTableConfig } from "./TableConfig";
|
|
5
|
-
export { default as TableCustomize } from "./TableCustomize";
|
|
6
5
|
export { default as HTableBody } from "./HTableBody";
|
|
7
6
|
export { default as HTableFooter } from "./HTableFooter";
|
|
8
7
|
export { default as HTableHeader } from "./HTableHeader";
|
package/lib/index.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
var Table = require('./Table.js');
|
|
4
4
|
var useHTable = require('./hooks/useHTable.js');
|
|
5
5
|
var TableConfig = require('./TableConfig.js');
|
|
6
|
-
var TableCustomize = require('./TableCustomize.js');
|
|
7
6
|
var index = require('./HTableBody/index.js');
|
|
8
7
|
var index$1 = require('./HTableFooter/index.js');
|
|
9
8
|
var index$2 = require('./HTableHeader/index.js');
|
|
@@ -16,7 +15,6 @@ var hooks = require('./ModalTable/hooks.js');
|
|
|
16
15
|
exports.HTable = Table.default;
|
|
17
16
|
exports.useHTable = useHTable.default;
|
|
18
17
|
exports.HTableConfig = TableConfig.default;
|
|
19
|
-
exports.TableCustomize = TableCustomize.default;
|
|
20
18
|
exports.HTableBody = index.default;
|
|
21
19
|
exports.HTableFooter = index$1.default;
|
|
22
20
|
exports.HTableHeader = index$2.default;
|
package/lib/modal.d.ts
CHANGED
|
@@ -30,22 +30,22 @@ export type ConfigDataModal = ConfigItemModal[];
|
|
|
30
30
|
export type ActionRenderFn = (selectedRowKeys: RowObj, tableInstance: HTableInstance) => React.ReactNode;
|
|
31
31
|
export type FooterBtnRenderFn = (dom: React.ReactNode, total: string, selectedRowKeys: RowObj, setAllCheck: (row: RowObj) => void) => React.ReactNode;
|
|
32
32
|
export type actionFn = (...arg: any[]) => void;
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
export interface RowSelectionOuter {
|
|
34
|
+
allPageCheck?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export type HRowSelection = RowSelectionOuter & ProTableProps<any, any>["rowSelection"];
|
|
37
|
+
export interface HTableProps extends Omit<ProTableProps<any, any>, "request" | "dataSource" | "rowKey" | "rowSelection"> {
|
|
35
38
|
request?: (params: ParamsModal) => Promise<ResultModal>;
|
|
36
39
|
configData: ConfigDataModal;
|
|
37
40
|
searchSpan?: ColProps;
|
|
38
41
|
table?: HTableInstance;
|
|
39
42
|
actionRender?: ActionRenderFn;
|
|
40
|
-
footerBtnRender?: FooterBtnRenderFn;
|
|
41
43
|
emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
|
|
42
44
|
errorRender?: (tableInstance: HTableInstance, error: Error) => React.ReactNode;
|
|
43
|
-
footerRender?: FooterRenderFn | false;
|
|
44
45
|
hideHeader?: boolean;
|
|
45
46
|
action?: Record<string, actionFn>;
|
|
46
47
|
headerStyle?: React.CSSProperties;
|
|
47
48
|
tableStyle?: React.CSSProperties;
|
|
48
|
-
footerStyle?: React.CSSProperties;
|
|
49
49
|
spaceSize?: number;
|
|
50
50
|
className?: string;
|
|
51
51
|
error?: Error;
|
|
@@ -53,6 +53,9 @@ export interface HTableProps extends Omit<ProTableProps<any, any>, "request" | "
|
|
|
53
53
|
manual?: boolean;
|
|
54
54
|
dataSource?: ResultModal;
|
|
55
55
|
paginationStyle?: React.CSSProperties;
|
|
56
|
+
rowKey?: string;
|
|
57
|
+
allPageCheck?: boolean;
|
|
58
|
+
rowSelection?: HRowSelection;
|
|
56
59
|
}
|
|
57
60
|
export interface TableInstance {
|
|
58
61
|
reload: (params?: ParamsModal) => Promise<any>;
|
package/package.json
CHANGED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Button, Row, Typography } from "antd";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { useHTableContext } from "../context";
|
|
4
|
+
import type { ActionRenderFn } from "../modal";
|
|
5
|
+
const { Text, Link } = Typography;
|
|
6
|
+
interface IProps {
|
|
7
|
+
actionRender?: ActionRenderFn;
|
|
8
|
+
}
|
|
9
|
+
export default ({ actionRender }: IProps) => {
|
|
10
|
+
const { data, selectedRowData, rowOnChange, tableInstance } =
|
|
11
|
+
useHTableContext();
|
|
12
|
+
const { total = "0" } = data || {};
|
|
13
|
+
const { keys = [], selectAll } = selectedRowData;
|
|
14
|
+
const totalNum = Number.parseInt(total, 10);
|
|
15
|
+
const showTotalNum = Number.isNaN(totalNum) ? 0 : totalNum;
|
|
16
|
+
const num = selectAll ? showTotalNum : keys.length;
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<Row justify={"space-between"} align={"middle"}>
|
|
20
|
+
<Text>
|
|
21
|
+
已选择<Link>{num}</Link>条
|
|
22
|
+
</Text>
|
|
23
|
+
<div>
|
|
24
|
+
{actionRender?.(selectedRowData, tableInstance)}
|
|
25
|
+
<Button
|
|
26
|
+
type={"link"}
|
|
27
|
+
size={"small"}
|
|
28
|
+
onClick={() => {
|
|
29
|
+
rowOnChange([], []);
|
|
30
|
+
}}
|
|
31
|
+
>
|
|
32
|
+
取消选择
|
|
33
|
+
</Button>
|
|
34
|
+
</div>
|
|
35
|
+
</Row>
|
|
36
|
+
);
|
|
37
|
+
};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { useHTableContext } from "../context";
|
|
2
|
+
import { Checkbox, Dropdown, Menu } from "antd";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
interface IRowSelectionTitleProps {
|
|
5
|
+
allPageCheck?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export const RowSelectionTitle = ({
|
|
8
|
+
allPageCheck = true,
|
|
9
|
+
}: IRowSelectionTitleProps) => {
|
|
10
|
+
const {
|
|
11
|
+
data,
|
|
12
|
+
selectedRowData,
|
|
13
|
+
rowOnChange,
|
|
14
|
+
allSelectChange,
|
|
15
|
+
rowKey = "id",
|
|
16
|
+
} = useHTableContext();
|
|
17
|
+
const { records = [] } = data || {};
|
|
18
|
+
const { keys, selectAll } = selectedRowData;
|
|
19
|
+
const allCheck = () => {
|
|
20
|
+
const setKeys = records.map((item) => {
|
|
21
|
+
return item[rowKey];
|
|
22
|
+
});
|
|
23
|
+
rowOnChange(setKeys, records);
|
|
24
|
+
};
|
|
25
|
+
const allCancel = () => {
|
|
26
|
+
rowOnChange([], []);
|
|
27
|
+
};
|
|
28
|
+
const checkChange = (e) => {
|
|
29
|
+
const checked = e.target.checked;
|
|
30
|
+
if (checked) {
|
|
31
|
+
allCheck();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
allCancel();
|
|
35
|
+
};
|
|
36
|
+
const change = ({ key }) => {
|
|
37
|
+
if (key === "check") {
|
|
38
|
+
allCheck();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (key === "cancel") {
|
|
42
|
+
allCancel();
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (key === "checkAll") {
|
|
46
|
+
allSelectChange?.(true);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
allSelectChange?.(false);
|
|
50
|
+
};
|
|
51
|
+
const len = keys?.length;
|
|
52
|
+
const checked = len === records.length && len !== 0;
|
|
53
|
+
const configItems = useMemo(() => {
|
|
54
|
+
const fsArray = checked
|
|
55
|
+
? {
|
|
56
|
+
label: "取消此页数据",
|
|
57
|
+
key: "cancel",
|
|
58
|
+
}
|
|
59
|
+
: {
|
|
60
|
+
label: "选择此页数据",
|
|
61
|
+
key: "check",
|
|
62
|
+
};
|
|
63
|
+
const enArray = selectAll
|
|
64
|
+
? {
|
|
65
|
+
label: "取消全部数据",
|
|
66
|
+
key: "cancelAll",
|
|
67
|
+
}
|
|
68
|
+
: {
|
|
69
|
+
label: "选择全部数据",
|
|
70
|
+
key: "checkAll",
|
|
71
|
+
};
|
|
72
|
+
return [fsArray, enArray];
|
|
73
|
+
}, [checked, selectAll]);
|
|
74
|
+
|
|
75
|
+
const menu = ()=>{
|
|
76
|
+
const MenuEle=(Menu as any);
|
|
77
|
+
return <MenuEle onClick={change} items={configItems}/>;
|
|
78
|
+
}
|
|
79
|
+
if (allPageCheck) {
|
|
80
|
+
return (
|
|
81
|
+
<Dropdown overlay={menu} arrow placement={"bottom"}>
|
|
82
|
+
<Checkbox checked={checked} onChange={checkChange} />
|
|
83
|
+
</Dropdown>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
return <Checkbox checked={checked} onChange={checkChange} />;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
interface RowSelectionBoxProps {
|
|
90
|
+
data: any;
|
|
91
|
+
}
|
|
92
|
+
export const RowSelectionBox = ({ data }: RowSelectionBoxProps) => {
|
|
93
|
+
const { selectedRowData, rowOnChange, rowKey = "id" } = useHTableContext();
|
|
94
|
+
const { rowData = [], keys = [] } = selectedRowData;
|
|
95
|
+
const key = data[rowKey];
|
|
96
|
+
const check = (e) => {
|
|
97
|
+
const checked = e.target.checked;
|
|
98
|
+
const newKeys = [...keys];
|
|
99
|
+
const newRowData = [...rowData];
|
|
100
|
+
if (checked) {
|
|
101
|
+
newKeys.push(key);
|
|
102
|
+
newRowData.push(data);
|
|
103
|
+
rowOnChange(newKeys, newRowData);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const index = newKeys.indexOf(key);
|
|
107
|
+
newKeys.splice(index, 1);
|
|
108
|
+
newRowData.splice(index, 1);
|
|
109
|
+
};
|
|
110
|
+
return <Checkbox checked={keys.indexOf(key) !== -1} onChange={check} />;
|
|
111
|
+
};
|
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
1
|
+
import type { HTableInstance, HTableProps } from "../modal";
|
|
2
|
+
import React from "react";
|
|
3
3
|
import { useEffect, useMemo } from "react";
|
|
4
4
|
import { useHTableContext } from "../context";
|
|
5
5
|
import type { GetRowKey } from "rc-table/lib/interface";
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { RowSelectionBox, RowSelectionTitle } from "./RowSelection";
|
|
7
|
+
const rowSelectionCol = (allPageCheck?: boolean) => {
|
|
8
|
+
return {
|
|
9
|
+
title: <RowSelectionTitle allPageCheck={allPageCheck} />,
|
|
10
|
+
dataIndex: "rowSelectionTitle",
|
|
11
|
+
width: 32,
|
|
12
|
+
render: (dom, data) => {
|
|
13
|
+
return <RowSelectionBox data={data} />;
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export const useCols = ({ configData, rowSelection, table }: HTableProps) => {
|
|
8
18
|
return useMemo(() => {
|
|
9
|
-
|
|
19
|
+
const colsArray = [...configData];
|
|
20
|
+
if (rowSelection !== false) {
|
|
21
|
+
const { allPageCheck } = rowSelection || {};
|
|
22
|
+
colsArray.splice(0, 0, rowSelectionCol(allPageCheck));
|
|
23
|
+
}
|
|
24
|
+
return colsArray.map((item) => {
|
|
10
25
|
const { render } = item;
|
|
11
26
|
return {
|
|
12
27
|
...item,
|
|
@@ -14,11 +29,11 @@ export const useCols = (cols: ConfigDataModal, table: HTableInstance) => {
|
|
|
14
29
|
if (!render) {
|
|
15
30
|
return dom;
|
|
16
31
|
}
|
|
17
|
-
return render(dom, data, index, table);
|
|
32
|
+
return render(dom, data, index, table as HTableInstance);
|
|
18
33
|
},
|
|
19
34
|
};
|
|
20
35
|
});
|
|
21
|
-
}, [
|
|
36
|
+
}, [configData, table]);
|
|
22
37
|
};
|
|
23
38
|
interface FilterKeysModal {
|
|
24
39
|
selectedRowKeys?: React.Key[];
|