@hw-component/table 0.0.1-beta-v3 → 0.0.1-beta-v5

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.
@@ -5,8 +5,8 @@ import type { HTableInstance } from "../modal";
5
5
  interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
6
6
  configData: ConfigDataModal;
7
7
  onPageChange: (params: ParamsModal) => void;
8
- emptyRender?: (table: HTableInstance) => React.ReactNode;
9
- errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
8
+ emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
9
+ errorRender?: (tableInstance: 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
@@ -42,7 +42,7 @@ var Body = (function (_ref) {
42
42
  var selectedRowKeys = rowSelection.selectedRowKeys,
43
43
  onChange = rowSelection.onChange;
44
44
  var _useHTableContext = useHTableContext(),
45
- table = _useHTableContext.table,
45
+ tableInstance = _useHTableContext.tableInstance,
46
46
  data = _useHTableContext.data,
47
47
  selectedRowData = _useHTableContext.selectedRowData,
48
48
  rowOnChange = _useHTableContext.rowOnChange,
@@ -60,7 +60,7 @@ var Body = (function (_ref) {
60
60
  size = _ref2.size,
61
61
  current = _ref2.current,
62
62
  total = _ref2.total;
63
- var cols = useCols(configData, table);
63
+ var cols = useCols(configData, tableInstance);
64
64
  var change = function change(key, rowData) {
65
65
  if (onChange) {
66
66
  return onChange(key, rowData);
@@ -80,9 +80,9 @@ 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, error);
83
+ return tableErrorRender === null || tableErrorRender === void 0 ? void 0 : tableErrorRender(tableInstance, error);
84
84
  }
85
- return tableEmptyRender === null || tableEmptyRender === void 0 ? void 0 : tableEmptyRender(table);
85
+ return tableEmptyRender === null || tableEmptyRender === void 0 ? void 0 : tableEmptyRender(tableInstance);
86
86
  },
87
87
  children: jsx(ProTable, _objectSpread(_objectSpread({}, props), {}, {
88
88
  columns: cols,
@@ -3,7 +3,7 @@ import React from "react";
3
3
  import type { HTableInstance, ResultModal, RowObj } from "../modal";
4
4
  interface IFooterProps {
5
5
  actionRender?: ActionRenderFn;
6
- footerRender?: (table: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
6
+ footerRender?: (tableInstance: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
7
7
  }
8
8
  declare const _default: ({ actionRender, footerRender }: IFooterProps) => JSX.Element;
9
9
  export default _default;
@@ -13,7 +13,7 @@ var Footer = (function (_ref) {
13
13
  var _useHTableContext = useHTableContext(),
14
14
  data = _useHTableContext.data,
15
15
  selectedRowData = _useHTableContext.selectedRowData,
16
- table = _useHTableContext.table;
16
+ tableInstance = _useHTableContext.tableInstance;
17
17
  var _useState = useState(false),
18
18
  _useState2 = _slicedToArray(_useState, 2),
19
19
  allCheck = _useState2[0],
@@ -23,7 +23,7 @@ var Footer = (function (_ref) {
23
23
  var num = allCheck ? total : 0;
24
24
  if (footerRender) {
25
25
  return jsx(Fragment, {
26
- children: footerRender(table, selectedRowData, data)
26
+ children: footerRender(tableInstance, selectedRowData, data)
27
27
  });
28
28
  }
29
29
  var dom = jsx(Card, {
@@ -55,7 +55,7 @@ var Footer = (function (_ref) {
55
55
  children: num
56
56
  }), "\u6761"]
57
57
  })]
58
- }), actionRender === null || actionRender === void 0 ? void 0 : actionRender(allCheck, selectedRowData, table)]
58
+ }), actionRender === null || actionRender === void 0 ? void 0 : actionRender(allCheck, selectedRowData, tableInstance)]
59
59
  })
60
60
  });
61
61
  if (!data) {
@@ -4,6 +4,7 @@ interface IHeaderProps {
4
4
  configData: ConfigDataModal;
5
5
  onFinish: (value: Record<string, any>) => Promise<any>;
6
6
  searchSpan?: ColProps;
7
+ loading?: boolean;
7
8
  }
8
- declare const _default: ({ configData, onFinish, searchSpan, }: IHeaderProps) => JSX.Element;
9
+ declare const _default: ({ configData, onFinish, searchSpan, loading, }: IHeaderProps) => JSX.Element;
9
10
  export default _default;
@@ -12,10 +12,11 @@ var Header = (function (_ref) {
12
12
  _ref$searchSpan = _ref.searchSpan,
13
13
  searchSpan = _ref$searchSpan === void 0 ? {
14
14
  span: 6
15
- } : _ref$searchSpan;
15
+ } : _ref$searchSpan,
16
+ loading = _ref.loading;
16
17
  var _useHTableContext = useHTableContext(),
17
- table = _useHTableContext.table;
18
- var form = table.form;
18
+ tableInstance = _useHTableContext.tableInstance;
19
+ var form = tableInstance.form;
19
20
  var nConfigData = useMemo(function () {
20
21
  return formConfigDataProvider(configData);
21
22
  }, [configData]);
@@ -29,7 +30,8 @@ var Header = (function (_ref) {
29
30
  },
30
31
  children: jsx(HForm, {
31
32
  itemSpan: searchSpan,
32
- request: onFinish,
33
+ onFinish: onFinish,
34
+ submitLoading: loading,
33
35
  gutter: [20, 0],
34
36
  hideLabel: true,
35
37
  configData: nConfigData,
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, footerRender, ...props }: HTableProps) => JSX.Element;
2
+ declare const _default: ({ request, configData, searchSpan, table, actionRender, footerRender, hideHeader, ...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", "footerRender"],
23
+ var _excluded = ["request", "configData", "searchSpan", "table", "actionRender", "footerRender", "hideHeader"],
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; }
@@ -31,6 +31,7 @@ var Table = (function (_ref) {
31
31
  table = _ref.table,
32
32
  actionRender = _ref.actionRender,
33
33
  footerRender = _ref.footerRender,
34
+ hideHeader = _ref.hideHeader,
34
35
  props = _objectWithoutProperties(_ref, _excluded);
35
36
  var saveParams = useMemo(function () {
36
37
  return {
@@ -58,16 +59,17 @@ var Table = (function (_ref) {
58
59
  var _useRowObj = useRowObj(),
59
60
  selectedRowData = _useRowObj.selectedRowData,
60
61
  rowOnChange = _useRowObj.rowOnChange;
61
- var cuTable = useCurrentTable({
62
+ var tableInstance = useCurrentTable({
62
63
  table: table,
63
- reload: function reload() {
64
- run(_objectSpread({}, saveParams.params));
64
+ reload: function reload(params) {
65
+ var reqParams = params || saveParams.params;
66
+ run(_objectSpread({}, reqParams));
65
67
  },
66
68
  changeRowData: rowOnChange
67
69
  });
68
70
  return jsx(HTableContext.Provider, {
69
71
  value: {
70
- table: cuTable,
72
+ tableInstance: tableInstance,
71
73
  selectedRowData: selectedRowData,
72
74
  rowOnChange: rowOnChange,
73
75
  data: data,
@@ -79,9 +81,10 @@ var Table = (function (_ref) {
79
81
  style: {
80
82
  width: "100%"
81
83
  },
82
- children: [jsx(Header, {
84
+ children: [!hideHeader && jsx(Header, {
83
85
  configData: configData,
84
86
  onFinish: run,
87
+ loading: loading,
85
88
  searchSpan: searchSpan
86
89
  }), jsx(Body, _objectSpread({
87
90
  loading: loading,
@@ -89,7 +92,7 @@ var Table = (function (_ref) {
89
92
  onPageChange: function onPageChange(page) {
90
93
  run(_objectSpread(_objectSpread({}, saveParams.params), page));
91
94
  }
92
- }, props)), jsx(Footer, {
95
+ }, props)), footerRender !== false && jsx(Footer, {
93
96
  actionRender: actionRender,
94
97
  footerRender: footerRender
95
98
  })]
package/es/context.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import type { ResultModal, RowObj, HTableInstance } from "./modal";
3
3
  interface HContextModal {
4
- table: HTableInstance;
4
+ tableInstance: HTableInstance;
5
5
  data?: ResultModal;
6
6
  selectedRowData: RowObj;
7
7
  rowOnChange: (keys: React.Key[], rowData: any[]) => void;
@@ -2,7 +2,7 @@ import type React from "react";
2
2
  import type { ParamsModal, HTableInstance } from "../modal";
3
3
  interface currentTableParams {
4
4
  table?: HTableInstance;
5
- reload: (params: ParamsModal) => void;
5
+ reload: (params?: ParamsModal) => void;
6
6
  changeRowData: (keys: React.Key[], data: any) => void;
7
7
  }
8
8
  declare const _default: ({ table, reload, changeRowData }: currentTableParams) => HTableInstance;
@@ -2,7 +2,7 @@ import type { ParamsModal } from "../modal";
2
2
  declare const _default: () => {
3
3
  form: import("@hw-component/form/lib/Form/modal").HFormInstance;
4
4
  table: {
5
- reload: (params: ParamsModal) => ParamsModal;
5
+ reload: (params?: ParamsModal) => ParamsModal | undefined;
6
6
  setSelectedRowData: () => void;
7
7
  };
8
8
  };
package/es/modal.d.ts CHANGED
@@ -18,23 +18,25 @@ export interface ParamsModal extends Record<string, any> {
18
18
  current?: number;
19
19
  }
20
20
  interface HColumns extends Omit<ProColumns, "render"> {
21
- render?: (dom: React.ReactNode, data: any, index: number, table: HTableInstance) => React.ReactNode;
21
+ render?: (dom: React.ReactNode, data: any, index: number, tableInstance: HTableInstance) => React.ReactNode;
22
22
  showSearch?: boolean;
23
23
  searchType?: HItemProps["type"];
24
24
  searchRender?: HItemProps["render"];
25
25
  }
26
26
  export type ConfigItemModal = Omit<HItemProps, "render" | "type"> & HColumns;
27
27
  export type ConfigDataModal = ConfigItemModal[];
28
- export type ActionRenderFn = (allCheck: boolean, selectedRowKeys: RowObj, xjTable: HTableInstance) => React.ReactNode;
28
+ export type ActionRenderFn = (allCheck: boolean, selectedRowKeys: RowObj, tableInstance: HTableInstance) => React.ReactNode;
29
+ type FooterRenderFn = (tableInstance: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
29
30
  export interface HTableProps extends Omit<ProTableProps<any, any>, "request"> {
30
31
  request: (params: ParamsModal) => Promise<ResultModal>;
31
32
  configData: ConfigDataModal;
32
33
  searchSpan?: ColProps;
33
34
  table?: HTableInstance;
34
35
  actionRender?: ActionRenderFn;
35
- emptyRender?: (table: HTableInstance) => React.ReactNode;
36
- errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
37
- footerRender?: (table: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
36
+ emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
37
+ errorRender?: (tableInstance: HTableInstance, error: Error) => React.ReactNode;
38
+ footerRender?: FooterRenderFn | false;
39
+ hideHeader?: boolean;
38
40
  }
39
41
  export interface TableInstance {
40
42
  reload: (params: ParamsModal) => void;
@@ -5,8 +5,8 @@ import type { HTableInstance } from "../modal";
5
5
  interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
6
6
  configData: ConfigDataModal;
7
7
  onPageChange: (params: ParamsModal) => void;
8
- emptyRender?: (table: HTableInstance) => React.ReactNode;
9
- errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
8
+ emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
9
+ errorRender?: (tableInstance: 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
@@ -45,7 +45,7 @@ var Body = (function (_ref) {
45
45
  var selectedRowKeys = rowSelection.selectedRowKeys,
46
46
  onChange = rowSelection.onChange;
47
47
  var _useHTableContext = context.useHTableContext(),
48
- table = _useHTableContext.table,
48
+ tableInstance = _useHTableContext.tableInstance,
49
49
  data = _useHTableContext.data,
50
50
  selectedRowData = _useHTableContext.selectedRowData,
51
51
  rowOnChange = _useHTableContext.rowOnChange,
@@ -63,7 +63,7 @@ var Body = (function (_ref) {
63
63
  size = _ref2.size,
64
64
  current = _ref2.current,
65
65
  total = _ref2.total;
66
- var cols = hooks.useCols(configData, table);
66
+ var cols = hooks.useCols(configData, tableInstance);
67
67
  var change = function change(key, rowData) {
68
68
  if (onChange) {
69
69
  return onChange(key, rowData);
@@ -83,9 +83,9 @@ 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, error);
86
+ return tableErrorRender === null || tableErrorRender === void 0 ? void 0 : tableErrorRender(tableInstance, error);
87
87
  }
88
- return tableEmptyRender === null || tableEmptyRender === void 0 ? void 0 : tableEmptyRender(table);
88
+ return tableEmptyRender === null || tableEmptyRender === void 0 ? void 0 : tableEmptyRender(tableInstance);
89
89
  },
90
90
  children: jsxRuntime.jsx(ProTable, _objectSpread(_objectSpread({}, props), {}, {
91
91
  columns: cols,
@@ -3,7 +3,7 @@ import React from "react";
3
3
  import type { HTableInstance, ResultModal, RowObj } from "../modal";
4
4
  interface IFooterProps {
5
5
  actionRender?: ActionRenderFn;
6
- footerRender?: (table: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
6
+ footerRender?: (tableInstance: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
7
7
  }
8
8
  declare const _default: ({ actionRender, footerRender }: IFooterProps) => JSX.Element;
9
9
  export default _default;
@@ -16,7 +16,7 @@ var Footer = (function (_ref) {
16
16
  var _useHTableContext = context.useHTableContext(),
17
17
  data = _useHTableContext.data,
18
18
  selectedRowData = _useHTableContext.selectedRowData,
19
- table = _useHTableContext.table;
19
+ tableInstance = _useHTableContext.tableInstance;
20
20
  var _useState = React.useState(false),
21
21
  _useState2 = _slicedToArray(_useState, 2),
22
22
  allCheck = _useState2[0],
@@ -26,7 +26,7 @@ var Footer = (function (_ref) {
26
26
  var num = allCheck ? total : 0;
27
27
  if (footerRender) {
28
28
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
29
- children: footerRender(table, selectedRowData, data)
29
+ children: footerRender(tableInstance, selectedRowData, data)
30
30
  });
31
31
  }
32
32
  var dom = jsxRuntime.jsx(antd.Card, {
@@ -58,7 +58,7 @@ var Footer = (function (_ref) {
58
58
  children: num
59
59
  }), "\u6761"]
60
60
  })]
61
- }), actionRender === null || actionRender === void 0 ? void 0 : actionRender(allCheck, selectedRowData, table)]
61
+ }), actionRender === null || actionRender === void 0 ? void 0 : actionRender(allCheck, selectedRowData, tableInstance)]
62
62
  })
63
63
  });
64
64
  if (!data) {
@@ -4,6 +4,7 @@ interface IHeaderProps {
4
4
  configData: ConfigDataModal;
5
5
  onFinish: (value: Record<string, any>) => Promise<any>;
6
6
  searchSpan?: ColProps;
7
+ loading?: boolean;
7
8
  }
8
- declare const _default: ({ configData, onFinish, searchSpan, }: IHeaderProps) => JSX.Element;
9
+ declare const _default: ({ configData, onFinish, searchSpan, loading, }: IHeaderProps) => JSX.Element;
9
10
  export default _default;
@@ -15,10 +15,11 @@ var Header = (function (_ref) {
15
15
  _ref$searchSpan = _ref.searchSpan,
16
16
  searchSpan = _ref$searchSpan === void 0 ? {
17
17
  span: 6
18
- } : _ref$searchSpan;
18
+ } : _ref$searchSpan,
19
+ loading = _ref.loading;
19
20
  var _useHTableContext = context.useHTableContext(),
20
- table = _useHTableContext.table;
21
- var form$1 = table.form;
21
+ tableInstance = _useHTableContext.tableInstance;
22
+ var form$1 = tableInstance.form;
22
23
  var nConfigData = React.useMemo(function () {
23
24
  return utils.formConfigDataProvider(configData);
24
25
  }, [configData]);
@@ -32,7 +33,8 @@ var Header = (function (_ref) {
32
33
  },
33
34
  children: jsxRuntime.jsx(form.HForm, {
34
35
  itemSpan: searchSpan,
35
- request: onFinish,
36
+ onFinish: onFinish,
37
+ submitLoading: loading,
36
38
  gutter: [20, 0],
37
39
  hideLabel: true,
38
40
  configData: nConfigData,
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, footerRender, ...props }: HTableProps) => JSX.Element;
2
+ declare const _default: ({ request, configData, searchSpan, table, actionRender, footerRender, hideHeader, ...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", "footerRender"],
26
+ var _excluded = ["request", "configData", "searchSpan", "table", "actionRender", "footerRender", "hideHeader"],
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; }
@@ -34,6 +34,7 @@ var Table = (function (_ref) {
34
34
  table = _ref.table,
35
35
  actionRender = _ref.actionRender,
36
36
  footerRender = _ref.footerRender,
37
+ hideHeader = _ref.hideHeader,
37
38
  props = _objectWithoutProperties(_ref, _excluded);
38
39
  var saveParams = React.useMemo(function () {
39
40
  return {
@@ -61,16 +62,17 @@ var Table = (function (_ref) {
61
62
  var _useRowObj = useRowObj.default(),
62
63
  selectedRowData = _useRowObj.selectedRowData,
63
64
  rowOnChange = _useRowObj.rowOnChange;
64
- var cuTable = useCurrentTable.default({
65
+ var tableInstance = useCurrentTable.default({
65
66
  table: table,
66
- reload: function reload() {
67
- run(_objectSpread({}, saveParams.params));
67
+ reload: function reload(params) {
68
+ var reqParams = params || saveParams.params;
69
+ run(_objectSpread({}, reqParams));
68
70
  },
69
71
  changeRowData: rowOnChange
70
72
  });
71
73
  return jsxRuntime.jsx(context.HTableContext.Provider, {
72
74
  value: {
73
- table: cuTable,
75
+ tableInstance: tableInstance,
74
76
  selectedRowData: selectedRowData,
75
77
  rowOnChange: rowOnChange,
76
78
  data: data,
@@ -82,9 +84,10 @@ var Table = (function (_ref) {
82
84
  style: {
83
85
  width: "100%"
84
86
  },
85
- children: [jsxRuntime.jsx(index.default, {
87
+ children: [!hideHeader && jsxRuntime.jsx(index.default, {
86
88
  configData: configData,
87
89
  onFinish: run,
90
+ loading: loading,
88
91
  searchSpan: searchSpan
89
92
  }), jsxRuntime.jsx(index$1.default, _objectSpread({
90
93
  loading: loading,
@@ -92,7 +95,7 @@ var Table = (function (_ref) {
92
95
  onPageChange: function onPageChange(page) {
93
96
  run(_objectSpread(_objectSpread({}, saveParams.params), page));
94
97
  }
95
- }, props)), jsxRuntime.jsx(index$2.default, {
98
+ }, props)), footerRender !== false && jsxRuntime.jsx(index$2.default, {
96
99
  actionRender: actionRender,
97
100
  footerRender: footerRender
98
101
  })]
package/lib/context.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import type { ResultModal, RowObj, HTableInstance } from "./modal";
3
3
  interface HContextModal {
4
- table: HTableInstance;
4
+ tableInstance: HTableInstance;
5
5
  data?: ResultModal;
6
6
  selectedRowData: RowObj;
7
7
  rowOnChange: (keys: React.Key[], rowData: any[]) => void;
@@ -2,7 +2,7 @@ import type React from "react";
2
2
  import type { ParamsModal, HTableInstance } from "../modal";
3
3
  interface currentTableParams {
4
4
  table?: HTableInstance;
5
- reload: (params: ParamsModal) => void;
5
+ reload: (params?: ParamsModal) => void;
6
6
  changeRowData: (keys: React.Key[], data: any) => void;
7
7
  }
8
8
  declare const _default: ({ table, reload, changeRowData }: currentTableParams) => HTableInstance;
@@ -2,7 +2,7 @@ import type { ParamsModal } from "../modal";
2
2
  declare const _default: () => {
3
3
  form: import("@hw-component/form/lib/Form/modal").HFormInstance;
4
4
  table: {
5
- reload: (params: ParamsModal) => ParamsModal;
5
+ reload: (params?: ParamsModal) => ParamsModal | undefined;
6
6
  setSelectedRowData: () => void;
7
7
  };
8
8
  };
package/lib/modal.d.ts CHANGED
@@ -18,23 +18,25 @@ export interface ParamsModal extends Record<string, any> {
18
18
  current?: number;
19
19
  }
20
20
  interface HColumns extends Omit<ProColumns, "render"> {
21
- render?: (dom: React.ReactNode, data: any, index: number, table: HTableInstance) => React.ReactNode;
21
+ render?: (dom: React.ReactNode, data: any, index: number, tableInstance: HTableInstance) => React.ReactNode;
22
22
  showSearch?: boolean;
23
23
  searchType?: HItemProps["type"];
24
24
  searchRender?: HItemProps["render"];
25
25
  }
26
26
  export type ConfigItemModal = Omit<HItemProps, "render" | "type"> & HColumns;
27
27
  export type ConfigDataModal = ConfigItemModal[];
28
- export type ActionRenderFn = (allCheck: boolean, selectedRowKeys: RowObj, xjTable: HTableInstance) => React.ReactNode;
28
+ export type ActionRenderFn = (allCheck: boolean, selectedRowKeys: RowObj, tableInstance: HTableInstance) => React.ReactNode;
29
+ type FooterRenderFn = (tableInstance: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
29
30
  export interface HTableProps extends Omit<ProTableProps<any, any>, "request"> {
30
31
  request: (params: ParamsModal) => Promise<ResultModal>;
31
32
  configData: ConfigDataModal;
32
33
  searchSpan?: ColProps;
33
34
  table?: HTableInstance;
34
35
  actionRender?: ActionRenderFn;
35
- emptyRender?: (table: HTableInstance) => React.ReactNode;
36
- errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
37
- footerRender?: (table: HTableInstance, selectedRowData: RowObj, data?: ResultModal) => React.ReactNode;
36
+ emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
37
+ errorRender?: (tableInstance: HTableInstance, error: Error) => React.ReactNode;
38
+ footerRender?: FooterRenderFn | false;
39
+ hideHeader?: boolean;
38
40
  }
39
41
  export interface TableInstance {
40
42
  reload: (params: ParamsModal) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hw-component/table",
3
- "version": "0.0.1-beta-v3",
3
+ "version": "0.0.1-beta-v5",
4
4
  "description": "基于antd二次开发table组件",
5
5
  "keywords": [
6
6
  "table"
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@ant-design/pro-table": "2.70.0",
34
- "@hw-component/form": "0.0.9-beta-v7",
34
+ "@hw-component/form": "0.0.9-beta-v8",
35
35
  "ahooks": "2.10.9",
36
36
  "antd": "4.20.7",
37
37
  "core-js": "3",
@@ -11,8 +11,11 @@ import { useHTableConfigContext } from "../TableConfig";
11
11
  interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
12
12
  configData: ConfigDataModal;
13
13
  onPageChange: (params: ParamsModal) => void;
14
- emptyRender?: (table: HTableInstance) => React.ReactNode;
15
- errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
14
+ emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
15
+ errorRender?: (
16
+ tableInstance: HTableInstance,
17
+ error: Error
18
+ ) => React.ReactNode;
16
19
  }
17
20
  const defaultRender = () => {
18
21
  return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />;
@@ -30,14 +33,14 @@ export default ({
30
33
  }: HTableBodyProps) => {
31
34
  // @ts-ignore
32
35
  const { selectedRowKeys, onChange } = rowSelection;
33
- const { table, data, selectedRowData, rowOnChange, error } =
36
+ const { tableInstance, data, selectedRowData, rowOnChange, error } =
34
37
  useHTableContext();
35
38
  const {
36
39
  emptyRender: tableEmptyRender = defaultRender,
37
40
  errorRender: tableErrorRender = defaultRender,
38
41
  } = useHTableConfigContext({ emptyRender, errorRender });
39
42
  const { records, size, current, total } = data || {};
40
- const cols = useCols(configData, table);
43
+ const cols = useCols(configData, tableInstance);
41
44
  const change = (key: React.Key[], rowData: any[]) => {
42
45
  if (onChange) {
43
46
  return onChange(key, rowData);
@@ -50,9 +53,9 @@ export default ({
50
53
  <ConfigProvider
51
54
  renderEmpty={() => {
52
55
  if (error) {
53
- return tableErrorRender?.(table, error);
56
+ return tableErrorRender?.(tableInstance, error);
54
57
  }
55
- return tableEmptyRender?.(table);
58
+ return tableEmptyRender?.(tableInstance);
56
59
  }}
57
60
  >
58
61
  <ProTable
@@ -9,18 +9,18 @@ const { Text, Link } = Typography;
9
9
  interface IFooterProps {
10
10
  actionRender?: ActionRenderFn;
11
11
  footerRender?: (
12
- table: HTableInstance,
12
+ tableInstance: HTableInstance,
13
13
  selectedRowData: RowObj,
14
14
  data?: ResultModal
15
15
  ) => React.ReactNode;
16
16
  }
17
17
  export default ({ actionRender, footerRender }: IFooterProps) => {
18
- const { data, selectedRowData, table } = useHTableContext();
18
+ const { data, selectedRowData, tableInstance } = useHTableContext();
19
19
  const [allCheck, setAllCheck] = useState<boolean>(false);
20
20
  const { total } = data || {};
21
21
  const num = allCheck ? total : 0;
22
22
  if (footerRender) {
23
- return <>{footerRender(table, selectedRowData, data)}</>;
23
+ return <>{footerRender(tableInstance, selectedRowData, data)}</>;
24
24
  }
25
25
  const dom = (
26
26
  <Card style={{ borderRadius: 4 }} bordered={false}>
@@ -41,7 +41,7 @@ export default ({ actionRender, footerRender }: IFooterProps) => {
41
41
  已选择<Link>{num}</Link>条
42
42
  </Text>
43
43
  </Space>
44
- {actionRender?.(allCheck, selectedRowData, table)}
44
+ {actionRender?.(allCheck, selectedRowData, tableInstance)}
45
45
  </Row>
46
46
  </Card>
47
47
  );
@@ -11,15 +11,17 @@ interface IHeaderProps {
11
11
  configData: ConfigDataModal;
12
12
  onFinish: (value: Record<string, any>) => Promise<any>;
13
13
  searchSpan?: ColProps;
14
+ loading?: boolean;
14
15
  }
15
16
 
16
17
  export default ({
17
18
  configData,
18
19
  onFinish,
19
20
  searchSpan = { span: 6 },
21
+ loading,
20
22
  }: IHeaderProps) => {
21
- const { table } = useHTableContext();
22
- const { form } = table;
23
+ const { tableInstance } = useHTableContext();
24
+ const { form } = tableInstance;
23
25
 
24
26
  const nConfigData: HItemProps[] = useMemo(
25
27
  () => formConfigDataProvider(configData),
@@ -34,7 +36,8 @@ export default ({
34
36
  >
35
37
  <HForm
36
38
  itemSpan={searchSpan}
37
- request={onFinish}
39
+ onFinish={onFinish}
40
+ submitLoading={loading}
38
41
  gutter={[20, 0]}
39
42
  hideLabel={true}
40
43
  configData={nConfigData}
@@ -15,6 +15,7 @@ export default ({
15
15
  table,
16
16
  actionRender,
17
17
  footerRender,
18
+ hideHeader,
18
19
  ...props
19
20
  }: HTableProps) => {
20
21
  const saveParams = useMemo(() => {
@@ -29,17 +30,18 @@ export default ({
29
30
  return request(reqParams);
30
31
  });
31
32
  const { selectedRowData, rowOnChange } = useRowObj();
32
- const cuTable = useCurrentTable({
33
+ const tableInstance = useCurrentTable({
33
34
  table,
34
- reload: () => {
35
- run({ ...saveParams.params });
35
+ reload: (params) => {
36
+ const reqParams = params || saveParams.params;
37
+ run({ ...reqParams });
36
38
  },
37
39
  changeRowData: rowOnChange,
38
40
  });
39
41
  return (
40
42
  <HTableContext.Provider
41
43
  value={{
42
- table: cuTable,
44
+ tableInstance,
43
45
  selectedRowData,
44
46
  rowOnChange,
45
47
  data,
@@ -47,11 +49,14 @@ export default ({
47
49
  }}
48
50
  >
49
51
  <Space size={20} direction={"vertical"} style={{ width: "100%" }}>
50
- <Header
51
- configData={configData}
52
- onFinish={run}
53
- searchSpan={searchSpan}
54
- />
52
+ {!hideHeader && (
53
+ <Header
54
+ configData={configData}
55
+ onFinish={run}
56
+ loading={loading}
57
+ searchSpan={searchSpan}
58
+ />
59
+ )}
55
60
  <Body
56
61
  loading={loading}
57
62
  configData={configData}
@@ -60,7 +65,9 @@ export default ({
60
65
  }}
61
66
  {...props}
62
67
  />
63
- <Footer actionRender={actionRender} footerRender={footerRender} />
68
+ {footerRender !== false && (
69
+ <Footer actionRender={actionRender} footerRender={footerRender} />
70
+ )}
64
71
  </Space>
65
72
  </HTableContext.Provider>
66
73
  );
@@ -2,7 +2,7 @@ import React, { useContext } from "react";
2
2
  import type { ResultModal, RowObj, HTableInstance } from "./modal";
3
3
 
4
4
  interface HContextModal {
5
- table: HTableInstance;
5
+ tableInstance: HTableInstance;
6
6
  data?: ResultModal;
7
7
  selectedRowData: RowObj;
8
8
  rowOnChange: (keys: React.Key[], rowData: any[]) => void;
@@ -5,7 +5,7 @@ import useHTable from "../hooks/useHTable";
5
5
 
6
6
  interface currentTableParams {
7
7
  table?: HTableInstance;
8
- reload: (params: ParamsModal) => void;
8
+ reload: (params?: ParamsModal) => void;
9
9
  changeRowData: (keys: React.Key[], data: any) => void;
10
10
  }
11
11
  export default ({ table, reload, changeRowData }: currentTableParams) => {
@@ -6,7 +6,7 @@ export default () => {
6
6
  const form = useHForm();
7
7
  const table = useMemo(() => {
8
8
  return {
9
- reload: (params: ParamsModal) => {
9
+ reload: (params?: ParamsModal) => {
10
10
  return params;
11
11
  },
12
12
  setSelectedRowData: () => {},
@@ -26,7 +26,7 @@ interface HColumns extends Omit<ProColumns, "render"> {
26
26
  dom: React.ReactNode,
27
27
  data: any,
28
28
  index: number,
29
- table: HTableInstance
29
+ tableInstance: HTableInstance
30
30
  ) => React.ReactNode;
31
31
  showSearch?: boolean;
32
32
  searchType?: HItemProps["type"];
@@ -37,22 +37,26 @@ export type ConfigDataModal = ConfigItemModal[];
37
37
  export type ActionRenderFn = (
38
38
  allCheck: boolean,
39
39
  selectedRowKeys: RowObj,
40
- xjTable: HTableInstance
40
+ tableInstance: HTableInstance
41
+ ) => React.ReactNode;
42
+ type FooterRenderFn = (
43
+ tableInstance: HTableInstance,
44
+ selectedRowData: RowObj,
45
+ data?: ResultModal
41
46
  ) => React.ReactNode;
42
-
43
47
  export interface HTableProps extends Omit<ProTableProps<any, any>, "request"> {
44
48
  request: (params: ParamsModal) => Promise<ResultModal>;
45
49
  configData: ConfigDataModal;
46
50
  searchSpan?: ColProps;
47
51
  table?: HTableInstance;
48
52
  actionRender?: ActionRenderFn;
49
- emptyRender?: (table: HTableInstance) => React.ReactNode;
50
- errorRender?: (table: HTableInstance, error: Error) => React.ReactNode;
51
- footerRender?: (
52
- table: HTableInstance,
53
- selectedRowData: RowObj,
54
- data?: ResultModal
53
+ emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
54
+ errorRender?: (
55
+ tableInstance: HTableInstance,
56
+ error: Error
55
57
  ) => React.ReactNode;
58
+ footerRender?: FooterRenderFn | false;
59
+ hideHeader?: boolean;
56
60
  }
57
61
  export interface TableInstance {
58
62
  reload: (params: ParamsModal) => void;
@@ -1,4 +1,4 @@
1
- import { HTable, HTableConfig } from "../../components";
1
+ import { HTable, HTableConfig, useHTable } from "../../components";
2
2
  import { Button } from "antd";
3
3
  const configData = [
4
4
  {
@@ -15,57 +15,46 @@ const configData = [
15
15
  },
16
16
  ];
17
17
  export default () => {
18
+ const hTable = useHTable();
18
19
  return (
19
- <HTableConfig
20
- emptyRender={() => {
21
- return <div>红</div>;
22
- }}
23
- >
20
+ <>
21
+ <div
22
+ onClick={() => {
23
+ hTable.table.reload();
24
+ }}
25
+ >
26
+ {" "}
27
+ 点我
28
+ </div>
24
29
  <HTable
25
30
  configData={configData}
26
31
  rowKey={"id"}
27
- emptyRender={() => {
28
- return <div>无数据</div>;
29
- }}
30
- errorRender={(table, error) => {
31
- return <div>{error.message}</div>;
32
- }}
32
+ table={hTable}
33
33
  actionRender={(allCheck, selectedRowKeys, xjTable) => {
34
34
  console.log(allCheck, selectedRowKeys, xjTable);
35
35
  return <Button>点我</Button>;
36
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
- }}
37
+ footerRender={false}
51
38
  request={(a) => {
39
+ console.log(a);
52
40
  return new Promise((resolve, reject) => {
53
41
  setTimeout(() => {
54
- resolve({
55
- size: "10",
56
- current: "1",
57
- total: "100",
58
- records: [
59
- {
60
- id: 1,
61
- name: "111",
62
- },
63
- ],
64
- });
42
+ reject(new Error("错误"));
43
+ // resolve({
44
+ // size: "10",
45
+ // current: "1",
46
+ // total: "100",
47
+ // records: [
48
+ // {
49
+ // id: 1,
50
+ // name: "111",
51
+ // },
52
+ // ],
53
+ // });
65
54
  }, 2000);
66
55
  });
67
56
  }}
68
57
  />
69
- </HTableConfig>
58
+ </>
70
59
  );
71
60
  };