@hw-component/table 0.0.4-beta-v18 → 0.0.5-beta-v1

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.
@@ -1,9 +1,8 @@
1
- interface IRowSelectionTitleProps {
2
- allPageCheck?: boolean;
3
- }
4
- export declare const RowSelectionTitle: ({ allPageCheck, }: IRowSelectionTitleProps) => JSX.Element;
1
+ import { HRowSelection } from "../modal";
2
+ export declare const RowSelectionTitle: ({ allPageCheck, onChange }: HRowSelection) => JSX.Element;
5
3
  interface RowSelectionBoxProps {
6
4
  data: any;
5
+ onChange?: HRowSelection["onChange"];
7
6
  }
8
- export declare const RowSelectionBox: ({ data }: RowSelectionBoxProps) => JSX.Element;
7
+ export declare const RowSelectionBox: ({ data, onChange }: RowSelectionBoxProps) => JSX.Element;
9
8
  export {};
@@ -11,7 +11,8 @@ import { useMemo } from 'react';
11
11
 
12
12
  var RowSelectionTitle = function RowSelectionTitle(_ref) {
13
13
  var _ref$allPageCheck = _ref.allPageCheck,
14
- allPageCheck = _ref$allPageCheck === void 0 ? true : _ref$allPageCheck;
14
+ allPageCheck = _ref$allPageCheck === void 0 ? true : _ref$allPageCheck,
15
+ onChange = _ref.onChange;
15
16
  var _useHTableContext = useHTableContext(),
16
17
  data = _useHTableContext.data,
17
18
  selectedRowData = _useHTableContext.selectedRowData,
@@ -29,9 +30,11 @@ var RowSelectionTitle = function RowSelectionTitle(_ref) {
29
30
  return item[rowKey];
30
31
  });
31
32
  rowOnChange(setKeys, records);
33
+ onChange === null || onChange === void 0 || onChange(setKeys, records);
32
34
  };
33
35
  var allCancel = function allCancel() {
34
36
  rowOnChange([], []);
37
+ onChange === null || onChange === void 0 || onChange([], []);
35
38
  };
36
39
  var checkChange = function checkChange(e) {
37
40
  var checked = e.target.checked;
@@ -53,9 +56,11 @@ var RowSelectionTitle = function RowSelectionTitle(_ref) {
53
56
  }
54
57
  if (key === "checkAll") {
55
58
  allSelectChange === null || allSelectChange === void 0 || allSelectChange(true);
59
+ onChange === null || onChange === void 0 || onChange([], []);
56
60
  return;
57
61
  }
58
62
  allSelectChange === null || allSelectChange === void 0 || allSelectChange(false);
63
+ onChange === null || onChange === void 0 || onChange([], []);
59
64
  };
60
65
  var len = (keys === null || keys === void 0 ? void 0 : keys.length) || 0;
61
66
  var dataLen = (records === null || records === void 0 ? void 0 : records.length) || 0;
@@ -84,24 +89,29 @@ var RowSelectionTitle = function RowSelectionTitle(_ref) {
84
89
  items: configItems
85
90
  });
86
91
  };
92
+ var disabled = dataLen === 0;
87
93
  if (allPageCheck) {
88
94
  return jsx(Dropdown, {
89
95
  overlay: menu,
90
96
  arrow: true,
91
97
  placement: "bottom",
98
+ disabled: disabled,
92
99
  children: jsx(Checkbox, {
93
100
  checked: checked,
94
- onChange: checkChange
101
+ onChange: checkChange,
102
+ disabled: disabled
95
103
  })
96
104
  });
97
105
  }
98
106
  return jsx(Checkbox, {
99
107
  checked: checked,
100
- onChange: checkChange
108
+ onChange: checkChange,
109
+ disabled: disabled
101
110
  });
102
111
  };
103
112
  var RowSelectionBox = function RowSelectionBox(_ref4) {
104
- var data = _ref4.data;
113
+ var data = _ref4.data,
114
+ onChange = _ref4.onChange;
105
115
  var _useHTableContext2 = useHTableContext(),
106
116
  selectedRowData = _useHTableContext2.selectedRowData,
107
117
  rowOnChange = _useHTableContext2.rowOnChange,
@@ -120,11 +130,14 @@ var RowSelectionBox = function RowSelectionBox(_ref4) {
120
130
  newKeys.push(key);
121
131
  newRowData.push(data);
122
132
  rowOnChange(newKeys, newRowData);
133
+ onChange === null || onChange === void 0 || onChange(newKeys, newRowData);
123
134
  return;
124
135
  }
125
136
  var index = _indexOfInstanceProperty(newKeys).call(newKeys, key);
126
137
  _spliceInstanceProperty(newKeys).call(newKeys, index, 1);
127
138
  _spliceInstanceProperty(newRowData).call(newRowData, index, 1);
139
+ rowOnChange(newKeys, newRowData);
140
+ onChange === null || onChange === void 0 || onChange(newKeys, newRowData);
128
141
  };
129
142
  return jsx(Checkbox, {
130
143
  checked: _indexOfInstanceProperty(keys).call(keys, key) !== -1,
@@ -830,7 +830,7 @@ export declare const useCols: ({ configData, rowSelection, table }: HTableProps)
830
830
  request?: import("@ant-design/pro-utils").ProFieldRequestData | undefined;
831
831
  width?: number | undefined;
832
832
  } | undefined) | undefined;
833
- fieldProps?: (import("antd").CascaderProps<any> | Record<string, any> | import("antd").InputProps | import("antd/lib/input").PasswordProps | import("antd/lib/input").TextAreaProps | import("antd").DatePickerProps | import("antd/lib/date-picker").RangePickerProps | import("antd").TimeRangePickerProps | import("antd").SelectProps<any, import("rc-select/lib/Select").DefaultOptionType> | import("antd").CheckboxProps | import("antd").RateProps | import("antd").RadioProps | import("antd").ProgressProps | import("antd").InputNumberProps<string | number> | import("antd").AvatarProps | import("antd").SwitchProps | import("rc-image").ImageProps | import("antd").TreeSelectProps<any, import("rc-tree-select/lib/TreeSelect").DefaultOptionType> | (import("react-color").SketchPickerProps & {
833
+ fieldProps?: (import("antd").CascaderProps<any> | Record<string, any> | import("antd").InputProps | import("antd").CheckboxProps | import("antd").RadioProps | import("antd/lib/input").PasswordProps | import("antd/lib/input").TextAreaProps | import("antd").DatePickerProps | import("antd/lib/date-picker").RangePickerProps | import("antd").TimeRangePickerProps | import("antd").SelectProps<any, import("rc-select/lib/Select").DefaultOptionType> | import("antd").RateProps | import("antd").ProgressProps | import("antd").InputNumberProps<string | number> | import("antd").AvatarProps | import("antd").SwitchProps | import("rc-image").ImageProps | import("antd").TreeSelectProps<any, import("rc-tree-select/lib/TreeSelect").DefaultOptionType> | (import("react-color").SketchPickerProps & {
834
834
  value?: string | undefined;
835
835
  popoverProps?: import("antd").PopoverProps | undefined;
836
836
  mode?: "read" | "edit" | undefined;
@@ -1150,7 +1150,7 @@ export declare const useCols: ({ configData, rowSelection, table }: HTableProps)
1150
1150
  rowKey?: string | undefined;
1151
1151
  rowIndex: number;
1152
1152
  entity: any;
1153
- }) => import("antd").CascaderProps<any> | Record<string, any> | import("antd").InputProps | import("antd/lib/input").PasswordProps | import("antd/lib/input").TextAreaProps | import("antd").DatePickerProps | import("antd/lib/date-picker").RangePickerProps | import("antd").TimeRangePickerProps | import("antd").SelectProps<any, import("rc-select/lib/Select").DefaultOptionType> | import("antd").CheckboxProps | import("antd").RateProps | import("antd").RadioProps | import("antd").ProgressProps | import("antd").InputNumberProps<string | number> | import("antd").AvatarProps | import("antd").SwitchProps | import("rc-image").ImageProps | import("antd").TreeSelectProps<any, import("rc-tree-select/lib/TreeSelect").DefaultOptionType> | (import("react-color").SketchPickerProps & {
1153
+ }) => import("antd").CascaderProps<any> | Record<string, any> | import("antd").InputProps | import("antd").CheckboxProps | import("antd").RadioProps | import("antd/lib/input").PasswordProps | import("antd/lib/input").TextAreaProps | import("antd").DatePickerProps | import("antd/lib/date-picker").RangePickerProps | import("antd").TimeRangePickerProps | import("antd").SelectProps<any, import("rc-select/lib/Select").DefaultOptionType> | import("antd").RateProps | import("antd").ProgressProps | import("antd").InputNumberProps<string | number> | import("antd").AvatarProps | import("antd").SwitchProps | import("rc-image").ImageProps | import("antd").TreeSelectProps<any, import("rc-tree-select/lib/TreeSelect").DefaultOptionType> | (import("react-color").SketchPickerProps & {
1154
1154
  value?: string | undefined;
1155
1155
  popoverProps?: import("antd").PopoverProps | undefined;
1156
1156
  mode?: "read" | "edit" | undefined;
@@ -19,10 +19,14 @@ import { RowSelectionTitle, RowSelectionBox } from './RowSelection.js';
19
19
 
20
20
  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; }
21
21
  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; }
22
- var rowSelectionCol = function rowSelectionCol(allPageCheck) {
22
+ var rowSelectionCol = function rowSelectionCol(rowSelection) {
23
+ var _ref = rowSelection || {},
24
+ allPageCheck = _ref.allPageCheck,
25
+ onChange = _ref.onChange;
23
26
  return {
24
27
  title: jsx(RowSelectionTitle, {
25
- allPageCheck: allPageCheck
28
+ allPageCheck: allPageCheck,
29
+ onChange: onChange
26
30
  }),
27
31
  dataIndex: "rowSelectionTitle",
28
32
  width: 32,
@@ -33,16 +37,14 @@ var rowSelectionCol = function rowSelectionCol(allPageCheck) {
33
37
  }
34
38
  };
35
39
  };
36
- var useCols = function useCols(_ref) {
37
- var configData = _ref.configData,
38
- rowSelection = _ref.rowSelection,
39
- table = _ref.table;
40
+ var useCols = function useCols(_ref2) {
41
+ var configData = _ref2.configData,
42
+ rowSelection = _ref2.rowSelection,
43
+ table = _ref2.table;
40
44
  return useMemo(function () {
41
45
  var colsArray = _toConsumableArray(configData);
42
46
  if (rowSelection !== false) {
43
- var _ref2 = rowSelection || {},
44
- allPageCheck = _ref2.allPageCheck;
45
- _spliceInstanceProperty(colsArray).call(colsArray, 0, 0, rowSelectionCol(allPageCheck));
47
+ _spliceInstanceProperty(colsArray).call(colsArray, 0, 0, rowSelectionCol(rowSelection));
46
48
  }
47
49
  return _mapInstanceProperty(colsArray).call(colsArray, function (item) {
48
50
  var _render = item.render;
@@ -2,7 +2,8 @@ import type { ProTableProps } from "@ant-design/pro-table";
2
2
  import type { ActionRenderFn, ConfigDataModal, ParamsModal } from "../modal";
3
3
  import React from "react";
4
4
  import type { HTableInstance } from "../modal";
5
- interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
5
+ import { HRowSelection } from "../modal";
6
+ interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource" | "rowSelection"> {
6
7
  configData?: ConfigDataModal;
7
8
  onPageChange?: (params: ParamsModal) => void;
8
9
  emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
@@ -10,6 +11,7 @@ interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
10
11
  tableStyle?: React.CSSProperties;
11
12
  paginationStyle?: React.CSSProperties;
12
13
  actionRender?: ActionRenderFn;
14
+ rowSelection?: HRowSelection;
13
15
  }
14
16
  declare const _default: ({ configData, pagination, onPageChange, rowSelection, rowKey, emptyRender, errorRender, tableStyle, paginationStyle, headerTitle, options, actionRender, ...props }: HTableBodyProps) => JSX.Element;
15
17
  export default _default;
package/es/modal.d.ts CHANGED
@@ -4,6 +4,7 @@ import type { HItemProps, HFormInstance } from "@hw-component/form/es/Form/modal
4
4
  import type { ColProps } from "antd";
5
5
  import type React from "react";
6
6
  import type { ModalProps } from "antd";
7
+ import { TableProps } from "antd/lib/table";
7
8
  export interface RowObj {
8
9
  keys?: React.Key[];
9
10
  rowData?: any[];
@@ -33,7 +34,9 @@ export type actionFn = (...arg: any[]) => void;
33
34
  export interface RowSelectionOuter {
34
35
  allPageCheck?: boolean;
35
36
  }
36
- export type HRowSelection = RowSelectionOuter & ProTableProps<any, any>["rowSelection"];
37
+ export type HRowSelection = RowSelectionOuter & (TableProps<any>['rowSelection'] & {
38
+ alwaysShowAlert?: boolean;
39
+ });
37
40
  export interface HTableProps extends Omit<ProTableProps<any, any>, "request" | "dataSource" | "rowKey" | "rowSelection"> {
38
41
  request?: (params: ParamsModal) => Promise<ResultModal>;
39
42
  configData: ConfigDataModal;
@@ -55,7 +58,7 @@ export interface HTableProps extends Omit<ProTableProps<any, any>, "request" | "
55
58
  paginationStyle?: React.CSSProperties;
56
59
  rowKey?: string;
57
60
  allPageCheck?: boolean;
58
- rowSelection?: HRowSelection;
61
+ rowSelection?: HRowSelection | false;
59
62
  }
60
63
  export interface TableInstance {
61
64
  reload: (params?: ParamsModal) => Promise<any>;
@@ -1,9 +1,8 @@
1
- interface IRowSelectionTitleProps {
2
- allPageCheck?: boolean;
3
- }
4
- export declare const RowSelectionTitle: ({ allPageCheck, }: IRowSelectionTitleProps) => JSX.Element;
1
+ import { HRowSelection } from "../modal";
2
+ export declare const RowSelectionTitle: ({ allPageCheck, onChange }: HRowSelection) => JSX.Element;
5
3
  interface RowSelectionBoxProps {
6
4
  data: any;
5
+ onChange?: HRowSelection["onChange"];
7
6
  }
8
- export declare const RowSelectionBox: ({ data }: RowSelectionBoxProps) => JSX.Element;
7
+ export declare const RowSelectionBox: ({ data, onChange }: RowSelectionBoxProps) => JSX.Element;
9
8
  export {};
@@ -12,7 +12,8 @@ var React = require('react');
12
12
 
13
13
  var RowSelectionTitle = function RowSelectionTitle(_ref) {
14
14
  var _ref$allPageCheck = _ref.allPageCheck,
15
- allPageCheck = _ref$allPageCheck === void 0 ? true : _ref$allPageCheck;
15
+ allPageCheck = _ref$allPageCheck === void 0 ? true : _ref$allPageCheck,
16
+ onChange = _ref.onChange;
16
17
  var _useHTableContext = context.useHTableContext(),
17
18
  data = _useHTableContext.data,
18
19
  selectedRowData = _useHTableContext.selectedRowData,
@@ -30,9 +31,11 @@ var RowSelectionTitle = function RowSelectionTitle(_ref) {
30
31
  return item[rowKey];
31
32
  });
32
33
  rowOnChange(setKeys, records);
34
+ onChange === null || onChange === void 0 || onChange(setKeys, records);
33
35
  };
34
36
  var allCancel = function allCancel() {
35
37
  rowOnChange([], []);
38
+ onChange === null || onChange === void 0 || onChange([], []);
36
39
  };
37
40
  var checkChange = function checkChange(e) {
38
41
  var checked = e.target.checked;
@@ -54,9 +57,11 @@ var RowSelectionTitle = function RowSelectionTitle(_ref) {
54
57
  }
55
58
  if (key === "checkAll") {
56
59
  allSelectChange === null || allSelectChange === void 0 || allSelectChange(true);
60
+ onChange === null || onChange === void 0 || onChange([], []);
57
61
  return;
58
62
  }
59
63
  allSelectChange === null || allSelectChange === void 0 || allSelectChange(false);
64
+ onChange === null || onChange === void 0 || onChange([], []);
60
65
  };
61
66
  var len = (keys === null || keys === void 0 ? void 0 : keys.length) || 0;
62
67
  var dataLen = (records === null || records === void 0 ? void 0 : records.length) || 0;
@@ -85,24 +90,29 @@ var RowSelectionTitle = function RowSelectionTitle(_ref) {
85
90
  items: configItems
86
91
  });
87
92
  };
93
+ var disabled = dataLen === 0;
88
94
  if (allPageCheck) {
89
95
  return jsxRuntime.jsx(antd.Dropdown, {
90
96
  overlay: menu,
91
97
  arrow: true,
92
98
  placement: "bottom",
99
+ disabled: disabled,
93
100
  children: jsxRuntime.jsx(antd.Checkbox, {
94
101
  checked: checked,
95
- onChange: checkChange
102
+ onChange: checkChange,
103
+ disabled: disabled
96
104
  })
97
105
  });
98
106
  }
99
107
  return jsxRuntime.jsx(antd.Checkbox, {
100
108
  checked: checked,
101
- onChange: checkChange
109
+ onChange: checkChange,
110
+ disabled: disabled
102
111
  });
103
112
  };
104
113
  var RowSelectionBox = function RowSelectionBox(_ref4) {
105
- var data = _ref4.data;
114
+ var data = _ref4.data,
115
+ onChange = _ref4.onChange;
106
116
  var _useHTableContext2 = context.useHTableContext(),
107
117
  selectedRowData = _useHTableContext2.selectedRowData,
108
118
  rowOnChange = _useHTableContext2.rowOnChange,
@@ -121,11 +131,14 @@ var RowSelectionBox = function RowSelectionBox(_ref4) {
121
131
  newKeys.push(key);
122
132
  newRowData.push(data);
123
133
  rowOnChange(newKeys, newRowData);
134
+ onChange === null || onChange === void 0 || onChange(newKeys, newRowData);
124
135
  return;
125
136
  }
126
137
  var index = _indexOfInstanceProperty(newKeys).call(newKeys, key);
127
138
  _spliceInstanceProperty(newKeys).call(newKeys, index, 1);
128
139
  _spliceInstanceProperty(newRowData).call(newRowData, index, 1);
140
+ rowOnChange(newKeys, newRowData);
141
+ onChange === null || onChange === void 0 || onChange(newKeys, newRowData);
129
142
  };
130
143
  return jsxRuntime.jsx(antd.Checkbox, {
131
144
  checked: _indexOfInstanceProperty(keys).call(keys, key) !== -1,
@@ -830,7 +830,7 @@ export declare const useCols: ({ configData, rowSelection, table }: HTableProps)
830
830
  request?: import("@ant-design/pro-utils").ProFieldRequestData | undefined;
831
831
  width?: number | undefined;
832
832
  } | undefined) | undefined;
833
- fieldProps?: (import("antd").CascaderProps<any> | Record<string, any> | import("antd").InputProps | import("antd/lib/input").PasswordProps | import("antd/lib/input").TextAreaProps | import("antd").DatePickerProps | import("antd/lib/date-picker").RangePickerProps | import("antd").TimeRangePickerProps | import("antd").SelectProps<any, import("rc-select/lib/Select").DefaultOptionType> | import("antd").CheckboxProps | import("antd").RateProps | import("antd").RadioProps | import("antd").ProgressProps | import("antd").InputNumberProps<string | number> | import("antd").AvatarProps | import("antd").SwitchProps | import("rc-image").ImageProps | import("antd").TreeSelectProps<any, import("rc-tree-select/lib/TreeSelect").DefaultOptionType> | (import("react-color").SketchPickerProps & {
833
+ fieldProps?: (import("antd").CascaderProps<any> | Record<string, any> | import("antd").InputProps | import("antd").CheckboxProps | import("antd").RadioProps | import("antd/lib/input").PasswordProps | import("antd/lib/input").TextAreaProps | import("antd").DatePickerProps | import("antd/lib/date-picker").RangePickerProps | import("antd").TimeRangePickerProps | import("antd").SelectProps<any, import("rc-select/lib/Select").DefaultOptionType> | import("antd").RateProps | import("antd").ProgressProps | import("antd").InputNumberProps<string | number> | import("antd").AvatarProps | import("antd").SwitchProps | import("rc-image").ImageProps | import("antd").TreeSelectProps<any, import("rc-tree-select/lib/TreeSelect").DefaultOptionType> | (import("react-color").SketchPickerProps & {
834
834
  value?: string | undefined;
835
835
  popoverProps?: import("antd").PopoverProps | undefined;
836
836
  mode?: "read" | "edit" | undefined;
@@ -1150,7 +1150,7 @@ export declare const useCols: ({ configData, rowSelection, table }: HTableProps)
1150
1150
  rowKey?: string | undefined;
1151
1151
  rowIndex: number;
1152
1152
  entity: any;
1153
- }) => import("antd").CascaderProps<any> | Record<string, any> | import("antd").InputProps | import("antd/lib/input").PasswordProps | import("antd/lib/input").TextAreaProps | import("antd").DatePickerProps | import("antd/lib/date-picker").RangePickerProps | import("antd").TimeRangePickerProps | import("antd").SelectProps<any, import("rc-select/lib/Select").DefaultOptionType> | import("antd").CheckboxProps | import("antd").RateProps | import("antd").RadioProps | import("antd").ProgressProps | import("antd").InputNumberProps<string | number> | import("antd").AvatarProps | import("antd").SwitchProps | import("rc-image").ImageProps | import("antd").TreeSelectProps<any, import("rc-tree-select/lib/TreeSelect").DefaultOptionType> | (import("react-color").SketchPickerProps & {
1153
+ }) => import("antd").CascaderProps<any> | Record<string, any> | import("antd").InputProps | import("antd").CheckboxProps | import("antd").RadioProps | import("antd/lib/input").PasswordProps | import("antd/lib/input").TextAreaProps | import("antd").DatePickerProps | import("antd/lib/date-picker").RangePickerProps | import("antd").TimeRangePickerProps | import("antd").SelectProps<any, import("rc-select/lib/Select").DefaultOptionType> | import("antd").RateProps | import("antd").ProgressProps | import("antd").InputNumberProps<string | number> | import("antd").AvatarProps | import("antd").SwitchProps | import("rc-image").ImageProps | import("antd").TreeSelectProps<any, import("rc-tree-select/lib/TreeSelect").DefaultOptionType> | (import("react-color").SketchPickerProps & {
1154
1154
  value?: string | undefined;
1155
1155
  popoverProps?: import("antd").PopoverProps | undefined;
1156
1156
  mode?: "read" | "edit" | undefined;
@@ -20,10 +20,14 @@ var RowSelection = require('./RowSelection.js');
20
20
 
21
21
  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
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
- var rowSelectionCol = function rowSelectionCol(allPageCheck) {
23
+ var rowSelectionCol = function rowSelectionCol(rowSelection) {
24
+ var _ref = rowSelection || {},
25
+ allPageCheck = _ref.allPageCheck,
26
+ onChange = _ref.onChange;
24
27
  return {
25
28
  title: jsxRuntime.jsx(RowSelection.RowSelectionTitle, {
26
- allPageCheck: allPageCheck
29
+ allPageCheck: allPageCheck,
30
+ onChange: onChange
27
31
  }),
28
32
  dataIndex: "rowSelectionTitle",
29
33
  width: 32,
@@ -34,16 +38,14 @@ var rowSelectionCol = function rowSelectionCol(allPageCheck) {
34
38
  }
35
39
  };
36
40
  };
37
- var useCols = function useCols(_ref) {
38
- var configData = _ref.configData,
39
- rowSelection = _ref.rowSelection,
40
- table = _ref.table;
41
+ var useCols = function useCols(_ref2) {
42
+ var configData = _ref2.configData,
43
+ rowSelection = _ref2.rowSelection,
44
+ table = _ref2.table;
41
45
  return React.useMemo(function () {
42
46
  var colsArray = _toConsumableArray(configData);
43
47
  if (rowSelection !== false) {
44
- var _ref2 = rowSelection || {},
45
- allPageCheck = _ref2.allPageCheck;
46
- _spliceInstanceProperty(colsArray).call(colsArray, 0, 0, rowSelectionCol(allPageCheck));
48
+ _spliceInstanceProperty(colsArray).call(colsArray, 0, 0, rowSelectionCol(rowSelection));
47
49
  }
48
50
  return _mapInstanceProperty(colsArray).call(colsArray, function (item) {
49
51
  var _render = item.render;
@@ -2,7 +2,8 @@ import type { ProTableProps } from "@ant-design/pro-table";
2
2
  import type { ActionRenderFn, ConfigDataModal, ParamsModal } from "../modal";
3
3
  import React from "react";
4
4
  import type { HTableInstance } from "../modal";
5
- interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
5
+ import { HRowSelection } from "../modal";
6
+ interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource" | "rowSelection"> {
6
7
  configData?: ConfigDataModal;
7
8
  onPageChange?: (params: ParamsModal) => void;
8
9
  emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
@@ -10,6 +11,7 @@ interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
10
11
  tableStyle?: React.CSSProperties;
11
12
  paginationStyle?: React.CSSProperties;
12
13
  actionRender?: ActionRenderFn;
14
+ rowSelection?: HRowSelection;
13
15
  }
14
16
  declare const _default: ({ configData, pagination, onPageChange, rowSelection, rowKey, emptyRender, errorRender, tableStyle, paginationStyle, headerTitle, options, actionRender, ...props }: HTableBodyProps) => JSX.Element;
15
17
  export default _default;
package/lib/modal.d.ts CHANGED
@@ -4,6 +4,7 @@ import type { HItemProps, HFormInstance } from "@hw-component/form/es/Form/modal
4
4
  import type { ColProps } from "antd";
5
5
  import type React from "react";
6
6
  import type { ModalProps } from "antd";
7
+ import { TableProps } from "antd/lib/table";
7
8
  export interface RowObj {
8
9
  keys?: React.Key[];
9
10
  rowData?: any[];
@@ -33,7 +34,9 @@ export type actionFn = (...arg: any[]) => void;
33
34
  export interface RowSelectionOuter {
34
35
  allPageCheck?: boolean;
35
36
  }
36
- export type HRowSelection = RowSelectionOuter & ProTableProps<any, any>["rowSelection"];
37
+ export type HRowSelection = RowSelectionOuter & (TableProps<any>['rowSelection'] & {
38
+ alwaysShowAlert?: boolean;
39
+ });
37
40
  export interface HTableProps extends Omit<ProTableProps<any, any>, "request" | "dataSource" | "rowKey" | "rowSelection"> {
38
41
  request?: (params: ParamsModal) => Promise<ResultModal>;
39
42
  configData: ConfigDataModal;
@@ -55,7 +58,7 @@ export interface HTableProps extends Omit<ProTableProps<any, any>, "request" | "
55
58
  paginationStyle?: React.CSSProperties;
56
59
  rowKey?: string;
57
60
  allPageCheck?: boolean;
58
- rowSelection?: HRowSelection;
61
+ rowSelection?: HRowSelection | false;
59
62
  }
60
63
  export interface TableInstance {
61
64
  reload: (params?: ParamsModal) => Promise<any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hw-component/table",
3
- "version": "0.0.4-beta-v18",
3
+ "version": "0.0.5-beta-v1",
4
4
  "description": "基于antd二次开发table组件",
5
5
  "keywords": [
6
6
  "table"
@@ -1,12 +1,11 @@
1
1
  import { useHTableContext } from "../context";
2
2
  import { Checkbox, Dropdown, Menu } from "antd";
3
3
  import { useMemo } from "react";
4
- interface IRowSelectionTitleProps {
5
- allPageCheck?: boolean;
6
- }
4
+ import {HRowSelection} from "../modal";
7
5
  export const RowSelectionTitle = ({
8
6
  allPageCheck = true,
9
- }: IRowSelectionTitleProps) => {
7
+ onChange
8
+ }: HRowSelection) => {
10
9
  const {
11
10
  data,
12
11
  selectedRowData,
@@ -21,9 +20,11 @@ export const RowSelectionTitle = ({
21
20
  return item[rowKey];
22
21
  });
23
22
  rowOnChange(setKeys, records);
23
+ onChange?.(setKeys,records);
24
24
  };
25
25
  const allCancel = () => {
26
26
  rowOnChange([], []);
27
+ onChange?.([],[]);
27
28
  };
28
29
  const checkChange = (e) => {
29
30
  const checked = e.target.checked;
@@ -44,9 +45,11 @@ export const RowSelectionTitle = ({
44
45
  }
45
46
  if (key === "checkAll") {
46
47
  allSelectChange?.(true);
48
+ onChange?.([],[]);
47
49
  return;
48
50
  }
49
51
  allSelectChange?.(false);
52
+ onChange?.([],[]);
50
53
  };
51
54
  const len = keys?.length||0;
52
55
  const dataLen=records?.length||0;
@@ -77,20 +80,22 @@ export const RowSelectionTitle = ({
77
80
  const MenuEle=(Menu as any);
78
81
  return <MenuEle onClick={change} items={configItems}/>;
79
82
  }
83
+ const disabled=dataLen===0;
80
84
  if (allPageCheck) {
81
85
  return (
82
- <Dropdown overlay={menu} arrow placement={"bottom"}>
83
- <Checkbox checked={checked} onChange={checkChange} />
86
+ <Dropdown overlay={menu} arrow placement={"bottom"} disabled={disabled}>
87
+ <Checkbox checked={checked} onChange={checkChange} disabled={disabled}/>
84
88
  </Dropdown>
85
89
  );
86
90
  }
87
- return <Checkbox checked={checked} onChange={checkChange} />;
91
+ return <Checkbox checked={checked} onChange={checkChange} disabled={disabled}/>;
88
92
  };
89
93
 
90
94
  interface RowSelectionBoxProps {
91
95
  data: any;
96
+ onChange?:HRowSelection["onChange"]
92
97
  }
93
- export const RowSelectionBox = ({ data }: RowSelectionBoxProps) => {
98
+ export const RowSelectionBox = ({ data ,onChange}: RowSelectionBoxProps) => {
94
99
  const { selectedRowData, rowOnChange, rowKey = "id" } = useHTableContext();
95
100
  const { rowData = [], keys = [] } = selectedRowData;
96
101
  const key = data[rowKey];
@@ -102,11 +107,14 @@ export const RowSelectionBox = ({ data }: RowSelectionBoxProps) => {
102
107
  newKeys.push(key);
103
108
  newRowData.push(data);
104
109
  rowOnChange(newKeys, newRowData);
110
+ onChange?.(newKeys,newRowData);
105
111
  return;
106
112
  }
107
113
  const index = newKeys.indexOf(key);
108
114
  newKeys.splice(index, 1);
109
115
  newRowData.splice(index, 1);
116
+ rowOnChange(newKeys, newRowData);
117
+ onChange?.(newKeys,newRowData);
110
118
  };
111
119
  return <Checkbox checked={keys.indexOf(key) !== -1} onChange={check} />;
112
120
  };
@@ -4,9 +4,11 @@ import { useEffect, useMemo } from "react";
4
4
  import { useHTableContext } from "../context";
5
5
  import type { GetRowKey } from "rc-table/lib/interface";
6
6
  import { RowSelectionBox, RowSelectionTitle } from "./RowSelection";
7
- const rowSelectionCol = (allPageCheck?: boolean) => {
7
+ import {HRowSelection} from "../modal";
8
+ const rowSelectionCol = (rowSelection?:HRowSelection) => {
9
+ const { allPageCheck ,onChange} = rowSelection || {};
8
10
  return {
9
- title: <RowSelectionTitle allPageCheck={allPageCheck} />,
11
+ title: <RowSelectionTitle allPageCheck={allPageCheck} onChange={onChange}/>,
10
12
  dataIndex: "rowSelectionTitle",
11
13
  width: 32,
12
14
  render: (dom, data) => {
@@ -18,8 +20,7 @@ export const useCols = ({ configData, rowSelection, table }: HTableProps) => {
18
20
  return useMemo(() => {
19
21
  const colsArray = [...configData];
20
22
  if (rowSelection !== false) {
21
- const { allPageCheck } = rowSelection || {};
22
- colsArray.splice(0, 0, rowSelectionCol(allPageCheck));
23
+ colsArray.splice(0, 0, rowSelectionCol(rowSelection));
23
24
  }
24
25
  return colsArray.map((item) => {
25
26
  const { render } = item;
@@ -11,7 +11,8 @@ import { useHTableConfigContext } from "../TableConfig";
11
11
  import HTablePagination from "../HTablePagination";
12
12
  import { useClassName } from "../hooks";
13
13
  import AlertMsg from "./AlertMsg";
14
- interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
14
+ import {HRowSelection} from "../modal";
15
+ interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"|"rowSelection"> {
15
16
  configData?: ConfigDataModal;
16
17
  onPageChange?: (params: ParamsModal) => void;
17
18
  emptyRender?: (tableInstance: HTableInstance) => React.ReactNode;
@@ -22,6 +23,7 @@ interface HTableBodyProps extends Omit<ProTableProps<any, any>, "dataSource"> {
22
23
  tableStyle?: React.CSSProperties;
23
24
  paginationStyle?: React.CSSProperties;
24
25
  actionRender?:ActionRenderFn
26
+ rowSelection?:HRowSelection
25
27
  }
26
28
  const defaultRender = () => {
27
29
  return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />;
@@ -7,6 +7,7 @@ import type {
7
7
  import type { ColProps } from "antd";
8
8
  import type React from "react";
9
9
  import type { ModalProps } from "antd";
10
+ import {TableProps} from "antd/lib/table";
10
11
 
11
12
  export interface RowObj {
12
13
  keys?: React.Key[];
@@ -57,7 +58,9 @@ export interface RowSelectionOuter {
57
58
  allPageCheck?: boolean;
58
59
  }
59
60
  export type HRowSelection = RowSelectionOuter &
60
- ProTableProps<any, any>["rowSelection"];
61
+ (TableProps<any>['rowSelection'] & {
62
+ alwaysShowAlert?: boolean;
63
+ })
61
64
  export interface HTableProps
62
65
  extends Omit<
63
66
  ProTableProps<any, any>,
@@ -86,7 +89,7 @@ export interface HTableProps
86
89
  paginationStyle?: React.CSSProperties;
87
90
  rowKey?: string;
88
91
  allPageCheck?: boolean;
89
- rowSelection?: HRowSelection;
92
+ rowSelection?: HRowSelection|false;
90
93
  }
91
94
  export interface TableInstance {
92
95
  reload: (params?: ParamsModal) => Promise<any>;