@hw-component/table 0.0.1-beta-v2 → 0.0.1-beta-v3
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/Body/index.d.ts +1 -1
- package/es/Body/index.js +2 -1
- package/es/Footer/index.d.ts +4 -1
- package/es/Footer/index.js +8 -2
- package/es/Table.d.ts +1 -1
- package/es/Table.js +9 -6
- package/es/TableConfig.d.ts +2 -2
- package/es/hooks/useCurrentTable.d.ts +3 -1
- package/es/hooks/useCurrentTable.js +3 -1
- package/es/hooks/useHTable.d.ts +1 -0
- package/es/hooks/useHTable.js +2 -1
- package/es/modal.d.ts +3 -1
- package/lib/Body/index.d.ts +1 -1
- package/lib/Body/index.js +2 -1
- package/lib/Footer/index.d.ts +4 -1
- package/lib/Footer/index.js +7 -1
- package/lib/Table.d.ts +1 -1
- package/lib/Table.js +9 -6
- package/lib/TableConfig.d.ts +2 -2
- package/lib/hooks/useCurrentTable.d.ts +3 -1
- package/lib/hooks/useCurrentTable.js +3 -1
- package/lib/hooks/useHTable.d.ts +1 -0
- package/lib/hooks/useHTable.js +2 -1
- package/lib/modal.d.ts +3 -1
- package/package.json +1 -1
- package/src/components/Body/index.tsx +3 -2
- package/src/components/Footer/index.tsx +10 -1
- package/src/components/Table.tsx +4 -2
- package/src/components/TableConfig.tsx +1 -1
- package/src/components/hooks/useCurrentTable.ts +4 -1
- package/src/components/hooks/useHTable.tsx +1 -0
- package/src/components/modal.ts +7 -1
- package/src/pages/Test/index.tsx +25 -9
package/es/Body/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
|
|
|
6
6
|
configData: ConfigDataModal;
|
|
7
7
|
onPageChange: (params: ParamsModal) => void;
|
|
8
8
|
emptyRender?: (table: HTableInstance) => React.ReactNode;
|
|
9
|
-
errorRender?: (table: HTableInstance) => React.ReactNode;
|
|
9
|
+
errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
|
|
10
10
|
}
|
|
11
11
|
declare const _default: ({ loading, configData, pagination, onPageChange, rowSelection, rowKey, emptyRender, errorRender, ...props }: HTableBodyProps) => JSX.Element;
|
|
12
12
|
export default _default;
|
package/es/Body/index.js
CHANGED
|
@@ -80,12 +80,13 @@ var Body = (function (_ref) {
|
|
|
80
80
|
children: jsx(ConfigProvider, {
|
|
81
81
|
renderEmpty: function renderEmpty() {
|
|
82
82
|
if (error) {
|
|
83
|
-
return tableErrorRender === null || tableErrorRender === void 0 ? void 0 : tableErrorRender(table);
|
|
83
|
+
return tableErrorRender === null || tableErrorRender === void 0 ? void 0 : tableErrorRender(table, error);
|
|
84
84
|
}
|
|
85
85
|
return tableEmptyRender === null || tableEmptyRender === void 0 ? void 0 : tableEmptyRender(table);
|
|
86
86
|
},
|
|
87
87
|
children: jsx(ProTable, _objectSpread(_objectSpread({}, props), {}, {
|
|
88
88
|
columns: cols,
|
|
89
|
+
tableAlertRender: false,
|
|
89
90
|
search: false,
|
|
90
91
|
rowSelection: _objectSpread(_objectSpread({}, rowSelection), {}, {
|
|
91
92
|
selectedRowKeys: _keysInstanceProperty(selectedRowData),
|
package/es/Footer/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { ActionRenderFn } from "../modal";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import type { HTableInstance, ResultModal, RowObj } from "../modal";
|
|
2
4
|
interface IFooterProps {
|
|
3
5
|
actionRender?: ActionRenderFn;
|
|
6
|
+
footerRender?: (table: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
|
|
4
7
|
}
|
|
5
|
-
declare const _default: ({ actionRender }: IFooterProps) => JSX.Element;
|
|
8
|
+
declare const _default: ({ actionRender, footerRender }: IFooterProps) => JSX.Element;
|
|
6
9
|
export default _default;
|
package/es/Footer/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// welcome to hoo hoo hoo
|
|
2
2
|
import _slicedToArray from '@babel/runtime-corejs3/helpers/slicedToArray';
|
|
3
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
4
4
|
import { Typography, Card, Row, Space, Button, Affix } from 'antd';
|
|
5
5
|
import { useHTableContext } from '../context.js';
|
|
6
6
|
import { useState } from 'react';
|
|
@@ -8,7 +8,8 @@ import { useState } from 'react';
|
|
|
8
8
|
var Text = Typography.Text,
|
|
9
9
|
Link = Typography.Link;
|
|
10
10
|
var Footer = (function (_ref) {
|
|
11
|
-
var actionRender = _ref.actionRender
|
|
11
|
+
var actionRender = _ref.actionRender,
|
|
12
|
+
footerRender = _ref.footerRender;
|
|
12
13
|
var _useHTableContext = useHTableContext(),
|
|
13
14
|
data = _useHTableContext.data,
|
|
14
15
|
selectedRowData = _useHTableContext.selectedRowData,
|
|
@@ -20,6 +21,11 @@ var Footer = (function (_ref) {
|
|
|
20
21
|
var _ref2 = data || {},
|
|
21
22
|
total = _ref2.total;
|
|
22
23
|
var num = allCheck ? total : 0;
|
|
24
|
+
if (footerRender) {
|
|
25
|
+
return jsx(Fragment, {
|
|
26
|
+
children: footerRender(table, selectedRowData, data)
|
|
27
|
+
});
|
|
28
|
+
}
|
|
23
29
|
var dom = jsx(Card, {
|
|
24
30
|
style: {
|
|
25
31
|
borderRadius: 4
|
package/es/Table.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { HTableProps } from "./modal";
|
|
2
|
-
declare const _default: ({ request, configData, searchSpan, table, actionRender, ...props }: HTableProps) => JSX.Element;
|
|
2
|
+
declare const _default: ({ request, configData, searchSpan, table, actionRender, footerRender, ...props }: HTableProps) => JSX.Element;
|
|
3
3
|
export default _default;
|
package/es/Table.js
CHANGED
|
@@ -20,7 +20,7 @@ import useRowObj from './hooks/useRowObj.js';
|
|
|
20
20
|
import { HTableContext } from './context.js';
|
|
21
21
|
import { Space } from 'antd';
|
|
22
22
|
|
|
23
|
-
var _excluded = ["request", "configData", "searchSpan", "table", "actionRender"],
|
|
23
|
+
var _excluded = ["request", "configData", "searchSpan", "table", "actionRender", "footerRender"],
|
|
24
24
|
_excluded2 = ["size", "current"];
|
|
25
25
|
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; }
|
|
26
26
|
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; }
|
|
@@ -30,6 +30,7 @@ var Table = (function (_ref) {
|
|
|
30
30
|
searchSpan = _ref.searchSpan,
|
|
31
31
|
table = _ref.table,
|
|
32
32
|
actionRender = _ref.actionRender,
|
|
33
|
+
footerRender = _ref.footerRender,
|
|
33
34
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
34
35
|
var saveParams = useMemo(function () {
|
|
35
36
|
return {
|
|
@@ -54,15 +55,16 @@ var Table = (function (_ref) {
|
|
|
54
55
|
loading = _useRequest.loading,
|
|
55
56
|
data = _useRequest.data,
|
|
56
57
|
error = _useRequest.error;
|
|
58
|
+
var _useRowObj = useRowObj(),
|
|
59
|
+
selectedRowData = _useRowObj.selectedRowData,
|
|
60
|
+
rowOnChange = _useRowObj.rowOnChange;
|
|
57
61
|
var cuTable = useCurrentTable({
|
|
58
62
|
table: table,
|
|
59
63
|
reload: function reload() {
|
|
60
64
|
run(_objectSpread({}, saveParams.params));
|
|
61
|
-
}
|
|
65
|
+
},
|
|
66
|
+
changeRowData: rowOnChange
|
|
62
67
|
});
|
|
63
|
-
var _useRowObj = useRowObj(),
|
|
64
|
-
selectedRowData = _useRowObj.selectedRowData,
|
|
65
|
-
rowOnChange = _useRowObj.rowOnChange;
|
|
66
68
|
return jsx(HTableContext.Provider, {
|
|
67
69
|
value: {
|
|
68
70
|
table: cuTable,
|
|
@@ -88,7 +90,8 @@ var Table = (function (_ref) {
|
|
|
88
90
|
run(_objectSpread(_objectSpread({}, saveParams.params), page));
|
|
89
91
|
}
|
|
90
92
|
}, props)), jsx(Footer, {
|
|
91
|
-
actionRender: actionRender
|
|
93
|
+
actionRender: actionRender,
|
|
94
|
+
footerRender: footerRender
|
|
92
95
|
})]
|
|
93
96
|
})
|
|
94
97
|
});
|
package/es/TableConfig.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ import React from "react";
|
|
|
2
2
|
import type { HTableInstance } from "./modal";
|
|
3
3
|
interface HTableConfigContextModal {
|
|
4
4
|
emptyRender?: (table: HTableInstance) => React.ReactNode;
|
|
5
|
-
errorRender?: (table: HTableInstance) => React.ReactNode;
|
|
5
|
+
errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
|
|
6
6
|
}
|
|
7
7
|
export declare const HTableConfigContext: React.Context<HTableConfigContextModal | null>;
|
|
8
8
|
export declare const useHTableConfigContext: ({ emptyRender, errorRender, }: HTableConfigContextModal) => {
|
|
9
|
-
errorRender: ((table: HTableInstance) => React.ReactNode) | undefined;
|
|
9
|
+
errorRender: ((table: HTableInstance, error: Error) => React.ReactNode) | undefined;
|
|
10
10
|
emptyRender: ((table: HTableInstance) => React.ReactNode) | undefined;
|
|
11
11
|
};
|
|
12
12
|
declare const Index: React.FC<HTableConfigContextModal>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type React from "react";
|
|
1
2
|
import type { ParamsModal, HTableInstance } from "../modal";
|
|
2
3
|
interface currentTableParams {
|
|
3
4
|
table?: HTableInstance;
|
|
4
5
|
reload: (params: ParamsModal) => void;
|
|
6
|
+
changeRowData: (keys: React.Key[], data: any) => void;
|
|
5
7
|
}
|
|
6
|
-
declare const _default: ({ table, reload }: currentTableParams) => HTableInstance;
|
|
8
|
+
declare const _default: ({ table, reload, changeRowData }: currentTableParams) => HTableInstance;
|
|
7
9
|
export default _default;
|
|
@@ -4,11 +4,13 @@ import useHTable from './useHTable.js';
|
|
|
4
4
|
|
|
5
5
|
var useCurrentTable = (function (_ref) {
|
|
6
6
|
var table = _ref.table,
|
|
7
|
-
reload = _ref.reload
|
|
7
|
+
reload = _ref.reload,
|
|
8
|
+
changeRowData = _ref.changeRowData;
|
|
8
9
|
var useCurrentTable = useHTable();
|
|
9
10
|
return useMemo(function () {
|
|
10
11
|
var resultTable = table || useCurrentTable;
|
|
11
12
|
resultTable.table.reload = reload;
|
|
13
|
+
resultTable.table.setSelectedRowData = changeRowData;
|
|
12
14
|
return resultTable;
|
|
13
15
|
}, [table]);
|
|
14
16
|
});
|
package/es/hooks/useHTable.d.ts
CHANGED
package/es/hooks/useHTable.js
CHANGED
package/es/modal.d.ts
CHANGED
|
@@ -33,10 +33,12 @@ export interface HTableProps extends Omit<ProTableProps<any, any>, "request"> {
|
|
|
33
33
|
table?: HTableInstance;
|
|
34
34
|
actionRender?: ActionRenderFn;
|
|
35
35
|
emptyRender?: (table: HTableInstance) => React.ReactNode;
|
|
36
|
-
errorRender?: (table: HTableInstance) => React.ReactNode;
|
|
36
|
+
errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
|
|
37
|
+
footerRender?: (table: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
|
|
37
38
|
}
|
|
38
39
|
export interface TableInstance {
|
|
39
40
|
reload: (params: ParamsModal) => void;
|
|
41
|
+
setSelectedRowData: (keys: React.Key[], data: any) => void;
|
|
40
42
|
}
|
|
41
43
|
export interface HTableInstance {
|
|
42
44
|
form: HFormInstance;
|
package/lib/Body/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
|
|
|
6
6
|
configData: ConfigDataModal;
|
|
7
7
|
onPageChange: (params: ParamsModal) => void;
|
|
8
8
|
emptyRender?: (table: HTableInstance) => React.ReactNode;
|
|
9
|
-
errorRender?: (table: HTableInstance) => React.ReactNode;
|
|
9
|
+
errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
|
|
10
10
|
}
|
|
11
11
|
declare const _default: ({ loading, configData, pagination, onPageChange, rowSelection, rowKey, emptyRender, errorRender, ...props }: HTableBodyProps) => JSX.Element;
|
|
12
12
|
export default _default;
|
package/lib/Body/index.js
CHANGED
|
@@ -83,12 +83,13 @@ var Body = (function (_ref) {
|
|
|
83
83
|
children: jsxRuntime.jsx(antd.ConfigProvider, {
|
|
84
84
|
renderEmpty: function renderEmpty() {
|
|
85
85
|
if (error) {
|
|
86
|
-
return tableErrorRender === null || tableErrorRender === void 0 ? void 0 : tableErrorRender(table);
|
|
86
|
+
return tableErrorRender === null || tableErrorRender === void 0 ? void 0 : tableErrorRender(table, error);
|
|
87
87
|
}
|
|
88
88
|
return tableEmptyRender === null || tableEmptyRender === void 0 ? void 0 : tableEmptyRender(table);
|
|
89
89
|
},
|
|
90
90
|
children: jsxRuntime.jsx(ProTable, _objectSpread(_objectSpread({}, props), {}, {
|
|
91
91
|
columns: cols,
|
|
92
|
+
tableAlertRender: false,
|
|
92
93
|
search: false,
|
|
93
94
|
rowSelection: _objectSpread(_objectSpread({}, rowSelection), {}, {
|
|
94
95
|
selectedRowKeys: _keysInstanceProperty(selectedRowData),
|
package/lib/Footer/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { ActionRenderFn } from "../modal";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import type { HTableInstance, ResultModal, RowObj } from "../modal";
|
|
2
4
|
interface IFooterProps {
|
|
3
5
|
actionRender?: ActionRenderFn;
|
|
6
|
+
footerRender?: (table: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
|
|
4
7
|
}
|
|
5
|
-
declare const _default: ({ actionRender }: IFooterProps) => JSX.Element;
|
|
8
|
+
declare const _default: ({ actionRender, footerRender }: IFooterProps) => JSX.Element;
|
|
6
9
|
export default _default;
|
package/lib/Footer/index.js
CHANGED
|
@@ -11,7 +11,8 @@ var React = require('react');
|
|
|
11
11
|
var Text = antd.Typography.Text,
|
|
12
12
|
Link = antd.Typography.Link;
|
|
13
13
|
var Footer = (function (_ref) {
|
|
14
|
-
var actionRender = _ref.actionRender
|
|
14
|
+
var actionRender = _ref.actionRender,
|
|
15
|
+
footerRender = _ref.footerRender;
|
|
15
16
|
var _useHTableContext = context.useHTableContext(),
|
|
16
17
|
data = _useHTableContext.data,
|
|
17
18
|
selectedRowData = _useHTableContext.selectedRowData,
|
|
@@ -23,6 +24,11 @@ var Footer = (function (_ref) {
|
|
|
23
24
|
var _ref2 = data || {},
|
|
24
25
|
total = _ref2.total;
|
|
25
26
|
var num = allCheck ? total : 0;
|
|
27
|
+
if (footerRender) {
|
|
28
|
+
return jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
29
|
+
children: footerRender(table, selectedRowData, data)
|
|
30
|
+
});
|
|
31
|
+
}
|
|
26
32
|
var dom = jsxRuntime.jsx(antd.Card, {
|
|
27
33
|
style: {
|
|
28
34
|
borderRadius: 4
|
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, actionRender, ...props }: HTableProps) => JSX.Element;
|
|
2
|
+
declare const _default: ({ request, configData, searchSpan, table, actionRender, footerRender, ...props }: HTableProps) => JSX.Element;
|
|
3
3
|
export default _default;
|
package/lib/Table.js
CHANGED
|
@@ -23,7 +23,7 @@ var useRowObj = require('./hooks/useRowObj.js');
|
|
|
23
23
|
var context = require('./context.js');
|
|
24
24
|
var antd = require('antd');
|
|
25
25
|
|
|
26
|
-
var _excluded = ["request", "configData", "searchSpan", "table", "actionRender"],
|
|
26
|
+
var _excluded = ["request", "configData", "searchSpan", "table", "actionRender", "footerRender"],
|
|
27
27
|
_excluded2 = ["size", "current"];
|
|
28
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; }
|
|
29
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; }
|
|
@@ -33,6 +33,7 @@ var Table = (function (_ref) {
|
|
|
33
33
|
searchSpan = _ref.searchSpan,
|
|
34
34
|
table = _ref.table,
|
|
35
35
|
actionRender = _ref.actionRender,
|
|
36
|
+
footerRender = _ref.footerRender,
|
|
36
37
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
37
38
|
var saveParams = React.useMemo(function () {
|
|
38
39
|
return {
|
|
@@ -57,15 +58,16 @@ var Table = (function (_ref) {
|
|
|
57
58
|
loading = _useRequest.loading,
|
|
58
59
|
data = _useRequest.data,
|
|
59
60
|
error = _useRequest.error;
|
|
61
|
+
var _useRowObj = useRowObj.default(),
|
|
62
|
+
selectedRowData = _useRowObj.selectedRowData,
|
|
63
|
+
rowOnChange = _useRowObj.rowOnChange;
|
|
60
64
|
var cuTable = useCurrentTable.default({
|
|
61
65
|
table: table,
|
|
62
66
|
reload: function reload() {
|
|
63
67
|
run(_objectSpread({}, saveParams.params));
|
|
64
|
-
}
|
|
68
|
+
},
|
|
69
|
+
changeRowData: rowOnChange
|
|
65
70
|
});
|
|
66
|
-
var _useRowObj = useRowObj.default(),
|
|
67
|
-
selectedRowData = _useRowObj.selectedRowData,
|
|
68
|
-
rowOnChange = _useRowObj.rowOnChange;
|
|
69
71
|
return jsxRuntime.jsx(context.HTableContext.Provider, {
|
|
70
72
|
value: {
|
|
71
73
|
table: cuTable,
|
|
@@ -91,7 +93,8 @@ var Table = (function (_ref) {
|
|
|
91
93
|
run(_objectSpread(_objectSpread({}, saveParams.params), page));
|
|
92
94
|
}
|
|
93
95
|
}, props)), jsxRuntime.jsx(index$2.default, {
|
|
94
|
-
actionRender: actionRender
|
|
96
|
+
actionRender: actionRender,
|
|
97
|
+
footerRender: footerRender
|
|
95
98
|
})]
|
|
96
99
|
})
|
|
97
100
|
});
|
package/lib/TableConfig.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ import React from "react";
|
|
|
2
2
|
import type { HTableInstance } from "./modal";
|
|
3
3
|
interface HTableConfigContextModal {
|
|
4
4
|
emptyRender?: (table: HTableInstance) => React.ReactNode;
|
|
5
|
-
errorRender?: (table: HTableInstance) => React.ReactNode;
|
|
5
|
+
errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
|
|
6
6
|
}
|
|
7
7
|
export declare const HTableConfigContext: React.Context<HTableConfigContextModal | null>;
|
|
8
8
|
export declare const useHTableConfigContext: ({ emptyRender, errorRender, }: HTableConfigContextModal) => {
|
|
9
|
-
errorRender: ((table: HTableInstance) => React.ReactNode) | undefined;
|
|
9
|
+
errorRender: ((table: HTableInstance, error: Error) => React.ReactNode) | undefined;
|
|
10
10
|
emptyRender: ((table: HTableInstance) => React.ReactNode) | undefined;
|
|
11
11
|
};
|
|
12
12
|
declare const Index: React.FC<HTableConfigContextModal>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type React from "react";
|
|
1
2
|
import type { ParamsModal, HTableInstance } from "../modal";
|
|
2
3
|
interface currentTableParams {
|
|
3
4
|
table?: HTableInstance;
|
|
4
5
|
reload: (params: ParamsModal) => void;
|
|
6
|
+
changeRowData: (keys: React.Key[], data: any) => void;
|
|
5
7
|
}
|
|
6
|
-
declare const _default: ({ table, reload }: currentTableParams) => HTableInstance;
|
|
8
|
+
declare const _default: ({ table, reload, changeRowData }: currentTableParams) => HTableInstance;
|
|
7
9
|
export default _default;
|
|
@@ -7,11 +7,13 @@ var useHTable = require('./useHTable.js');
|
|
|
7
7
|
|
|
8
8
|
var useCurrentTable = (function (_ref) {
|
|
9
9
|
var table = _ref.table,
|
|
10
|
-
reload = _ref.reload
|
|
10
|
+
reload = _ref.reload,
|
|
11
|
+
changeRowData = _ref.changeRowData;
|
|
11
12
|
var useCurrentTable = useHTable.default();
|
|
12
13
|
return React.useMemo(function () {
|
|
13
14
|
var resultTable = table || useCurrentTable;
|
|
14
15
|
resultTable.table.reload = reload;
|
|
16
|
+
resultTable.table.setSelectedRowData = changeRowData;
|
|
15
17
|
return resultTable;
|
|
16
18
|
}, [table]);
|
|
17
19
|
});
|
package/lib/hooks/useHTable.d.ts
CHANGED
package/lib/hooks/useHTable.js
CHANGED
package/lib/modal.d.ts
CHANGED
|
@@ -33,10 +33,12 @@ export interface HTableProps extends Omit<ProTableProps<any, any>, "request"> {
|
|
|
33
33
|
table?: HTableInstance;
|
|
34
34
|
actionRender?: ActionRenderFn;
|
|
35
35
|
emptyRender?: (table: HTableInstance) => React.ReactNode;
|
|
36
|
-
errorRender?: (table: HTableInstance) => React.ReactNode;
|
|
36
|
+
errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
|
|
37
|
+
footerRender?: (table: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
|
|
37
38
|
}
|
|
38
39
|
export interface TableInstance {
|
|
39
40
|
reload: (params: ParamsModal) => void;
|
|
41
|
+
setSelectedRowData: (keys: React.Key[], data: any) => void;
|
|
40
42
|
}
|
|
41
43
|
export interface HTableInstance {
|
|
42
44
|
form: HFormInstance;
|
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@ interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
|
|
|
12
12
|
configData: ConfigDataModal;
|
|
13
13
|
onPageChange: (params: ParamsModal) => void;
|
|
14
14
|
emptyRender?: (table: HTableInstance) => React.ReactNode;
|
|
15
|
-
errorRender?: (table: HTableInstance) => React.ReactNode;
|
|
15
|
+
errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
|
|
16
16
|
}
|
|
17
17
|
const defaultRender = () => {
|
|
18
18
|
return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />;
|
|
@@ -50,7 +50,7 @@ export default ({
|
|
|
50
50
|
<ConfigProvider
|
|
51
51
|
renderEmpty={() => {
|
|
52
52
|
if (error) {
|
|
53
|
-
return tableErrorRender?.(table);
|
|
53
|
+
return tableErrorRender?.(table, error);
|
|
54
54
|
}
|
|
55
55
|
return tableEmptyRender?.(table);
|
|
56
56
|
}}
|
|
@@ -58,6 +58,7 @@ export default ({
|
|
|
58
58
|
<ProTable
|
|
59
59
|
{...props}
|
|
60
60
|
columns={cols}
|
|
61
|
+
tableAlertRender={false}
|
|
61
62
|
search={false}
|
|
62
63
|
rowSelection={{
|
|
63
64
|
...rowSelection,
|
|
@@ -3,16 +3,25 @@ import { Typography } from "antd";
|
|
|
3
3
|
import type { ActionRenderFn } from "../modal";
|
|
4
4
|
import { useHTableContext } from "../context";
|
|
5
5
|
import React, { useState } from "react";
|
|
6
|
+
import type { HTableInstance, ResultModal, RowObj } from "../modal";
|
|
6
7
|
|
|
7
8
|
const { Text, Link } = Typography;
|
|
8
9
|
interface IFooterProps {
|
|
9
10
|
actionRender?: ActionRenderFn;
|
|
11
|
+
footerRender?: (
|
|
12
|
+
table: HTableInstance,
|
|
13
|
+
selectedRowData: RowObj,
|
|
14
|
+
data?: ResultModal
|
|
15
|
+
) => React.ReactNode;
|
|
10
16
|
}
|
|
11
|
-
export default ({ actionRender }: IFooterProps) => {
|
|
17
|
+
export default ({ actionRender, footerRender }: IFooterProps) => {
|
|
12
18
|
const { data, selectedRowData, table } = useHTableContext();
|
|
13
19
|
const [allCheck, setAllCheck] = useState<boolean>(false);
|
|
14
20
|
const { total } = data || {};
|
|
15
21
|
const num = allCheck ? total : 0;
|
|
22
|
+
if (footerRender) {
|
|
23
|
+
return <>{footerRender(table, selectedRowData, data)}</>;
|
|
24
|
+
}
|
|
16
25
|
const dom = (
|
|
17
26
|
<Card style={{ borderRadius: 4 }} bordered={false}>
|
|
18
27
|
<Row justify="space-between">
|
package/src/components/Table.tsx
CHANGED
|
@@ -14,6 +14,7 @@ export default ({
|
|
|
14
14
|
searchSpan,
|
|
15
15
|
table,
|
|
16
16
|
actionRender,
|
|
17
|
+
footerRender,
|
|
17
18
|
...props
|
|
18
19
|
}: HTableProps) => {
|
|
19
20
|
const saveParams = useMemo(() => {
|
|
@@ -27,13 +28,14 @@ export default ({
|
|
|
27
28
|
saveParams.params = reqParams;
|
|
28
29
|
return request(reqParams);
|
|
29
30
|
});
|
|
31
|
+
const { selectedRowData, rowOnChange } = useRowObj();
|
|
30
32
|
const cuTable = useCurrentTable({
|
|
31
33
|
table,
|
|
32
34
|
reload: () => {
|
|
33
35
|
run({ ...saveParams.params });
|
|
34
36
|
},
|
|
37
|
+
changeRowData: rowOnChange,
|
|
35
38
|
});
|
|
36
|
-
const { selectedRowData, rowOnChange } = useRowObj();
|
|
37
39
|
return (
|
|
38
40
|
<HTableContext.Provider
|
|
39
41
|
value={{
|
|
@@ -58,7 +60,7 @@ export default ({
|
|
|
58
60
|
}}
|
|
59
61
|
{...props}
|
|
60
62
|
/>
|
|
61
|
-
<Footer actionRender={actionRender} />
|
|
63
|
+
<Footer actionRender={actionRender} footerRender={footerRender} />
|
|
62
64
|
</Space>
|
|
63
65
|
</HTableContext.Provider>
|
|
64
66
|
);
|
|
@@ -3,7 +3,7 @@ import type { HTableInstance } from "./modal";
|
|
|
3
3
|
|
|
4
4
|
interface HTableConfigContextModal {
|
|
5
5
|
emptyRender?: (table: HTableInstance) => React.ReactNode;
|
|
6
|
-
errorRender?: (table: HTableInstance) => React.ReactNode;
|
|
6
|
+
errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
|
|
7
7
|
}
|
|
8
8
|
export const HTableConfigContext =
|
|
9
9
|
React.createContext<HTableConfigContextModal | null>(null);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type React from "react";
|
|
1
2
|
import { useMemo } from "react";
|
|
2
3
|
import type { ParamsModal, HTableInstance } from "../modal";
|
|
3
4
|
import useHTable from "../hooks/useHTable";
|
|
@@ -5,12 +6,14 @@ import useHTable from "../hooks/useHTable";
|
|
|
5
6
|
interface currentTableParams {
|
|
6
7
|
table?: HTableInstance;
|
|
7
8
|
reload: (params: ParamsModal) => void;
|
|
9
|
+
changeRowData: (keys: React.Key[], data: any) => void;
|
|
8
10
|
}
|
|
9
|
-
export default ({ table, reload }: currentTableParams) => {
|
|
11
|
+
export default ({ table, reload, changeRowData }: currentTableParams) => {
|
|
10
12
|
const useCurrentTable = useHTable();
|
|
11
13
|
return useMemo(() => {
|
|
12
14
|
const resultTable = table || useCurrentTable;
|
|
13
15
|
resultTable.table.reload = reload;
|
|
16
|
+
resultTable.table.setSelectedRowData = changeRowData;
|
|
14
17
|
return resultTable;
|
|
15
18
|
}, [table]);
|
|
16
19
|
};
|
package/src/components/modal.ts
CHANGED
|
@@ -47,10 +47,16 @@ export interface HTableProps extends Omit<ProTableProps<any, any>, "request"> {
|
|
|
47
47
|
table?: HTableInstance;
|
|
48
48
|
actionRender?: ActionRenderFn;
|
|
49
49
|
emptyRender?: (table: HTableInstance) => React.ReactNode;
|
|
50
|
-
errorRender?: (table: HTableInstance) => React.ReactNode;
|
|
50
|
+
errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
|
|
51
|
+
footerRender?: (
|
|
52
|
+
table: HTableInstance,
|
|
53
|
+
selectedRowData: RowObj,
|
|
54
|
+
data?: ResultModal
|
|
55
|
+
) => React.ReactNode;
|
|
51
56
|
}
|
|
52
57
|
export interface TableInstance {
|
|
53
58
|
reload: (params: ParamsModal) => void;
|
|
59
|
+
setSelectedRowData: (keys: React.Key[], data: any) => void;
|
|
54
60
|
}
|
|
55
61
|
export interface HTableInstance {
|
|
56
62
|
form: HFormInstance;
|
package/src/pages/Test/index.tsx
CHANGED
|
@@ -27,24 +27,40 @@ export default () => {
|
|
|
27
27
|
emptyRender={() => {
|
|
28
28
|
return <div>无数据</div>;
|
|
29
29
|
}}
|
|
30
|
+
errorRender={(table, error) => {
|
|
31
|
+
return <div>{error.message}</div>;
|
|
32
|
+
}}
|
|
30
33
|
actionRender={(allCheck, selectedRowKeys, xjTable) => {
|
|
31
34
|
console.log(allCheck, selectedRowKeys, xjTable);
|
|
32
35
|
return <Button>点我</Button>;
|
|
33
36
|
}}
|
|
37
|
+
footerRender={(table, selectedRowData, data) => {
|
|
38
|
+
return (
|
|
39
|
+
<div>
|
|
40
|
+
{selectedRowData.keys?.length}条
|
|
41
|
+
<div
|
|
42
|
+
onClick={() => {
|
|
43
|
+
table.table.setSelectedRowData([], []);
|
|
44
|
+
}}
|
|
45
|
+
>
|
|
46
|
+
点我
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
);
|
|
50
|
+
}}
|
|
34
51
|
request={(a) => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return new Promise((resolve) => {
|
|
52
|
+
return new Promise((resolve, reject) => {
|
|
38
53
|
setTimeout(() => {
|
|
39
54
|
resolve({
|
|
40
|
-
records: [
|
|
41
|
-
{ name: "ddd", id: 1 },
|
|
42
|
-
{ name: "ddd", id: 2 },
|
|
43
|
-
{ name: "ddd", id: 3 },
|
|
44
|
-
],
|
|
45
55
|
size: "10",
|
|
46
56
|
current: "1",
|
|
47
|
-
total: "
|
|
57
|
+
total: "100",
|
|
58
|
+
records: [
|
|
59
|
+
{
|
|
60
|
+
id: 1,
|
|
61
|
+
name: "111",
|
|
62
|
+
},
|
|
63
|
+
],
|
|
48
64
|
});
|
|
49
65
|
}, 2000);
|
|
50
66
|
});
|