@hw-component/table 1.9.60 → 1.9.62

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.
Files changed (38) hide show
  1. package/es/HTableBody/{RowSelection.d.ts → RowCheckBoxSelection.d.ts} +2 -2
  2. package/es/HTableBody/{RowSelection.js → RowCheckBoxSelection.js} +3 -3
  3. package/es/HTableBody/RowRadioBoxSelection.d.ts +10 -0
  4. package/es/HTableBody/RowRadioBoxSelection.js +37 -0
  5. package/es/HTableBody/hooks/colsMk.d.ts +17 -0
  6. package/es/HTableBody/hooks/colsMk.js +50 -0
  7. package/es/HTableBody/hooks/useColData.js +25 -44
  8. package/es/HTableBody/hooks/useControl.d.ts +2 -0
  9. package/es/HTableBody/hooks/useControl.js +13 -1
  10. package/es/HTableBody/index.js +2 -7
  11. package/es/Table.js +5 -4
  12. package/es/hooks/useRowObj.d.ts +1 -0
  13. package/es/hooks/useRowObj.js +14 -3
  14. package/lib/HTableBody/{RowSelection.d.ts → RowCheckBoxSelection.d.ts} +2 -2
  15. package/lib/HTableBody/{RowSelection.js → RowCheckBoxSelection.js} +4 -4
  16. package/lib/HTableBody/RowRadioBoxSelection.d.ts +10 -0
  17. package/lib/HTableBody/RowRadioBoxSelection.js +38 -0
  18. package/lib/HTableBody/hooks/colsMk.d.ts +17 -0
  19. package/lib/HTableBody/hooks/colsMk.js +52 -0
  20. package/lib/HTableBody/hooks/useColData.js +25 -44
  21. package/lib/HTableBody/hooks/useControl.d.ts +2 -0
  22. package/lib/HTableBody/hooks/useControl.js +13 -0
  23. package/lib/HTableBody/index.js +1 -6
  24. package/lib/Table.js +5 -4
  25. package/lib/hooks/useRowObj.d.ts +1 -0
  26. package/lib/hooks/useRowObj.js +13 -2
  27. package/package.json +1 -1
  28. package/src/components/HTableBody/{RowSelection.tsx → RowCheckBoxSelection.tsx} +4 -3
  29. package/src/components/HTableBody/RowRadioBoxSelection.tsx +27 -0
  30. package/src/components/HTableBody/hooks/colsMk.tsx +51 -0
  31. package/src/components/HTableBody/hooks/useColData.tsx +11 -35
  32. package/src/components/HTableBody/hooks/useControl.tsx +12 -0
  33. package/src/components/HTableBody/index.tsx +5 -9
  34. package/src/components/Table.tsx +4 -5
  35. package/src/components/hooks/useRowObj.ts +11 -1
  36. package/src/components/index.less +1 -1
  37. package/src/components/styles/local.less +1 -0
  38. package/src/pages/Table/index.tsx +5 -7
@@ -1,11 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import type { HRowSelection } from "../modal";
3
- export declare const RowSelectionTitle: ({ allPageCheck, onChange, getCheckboxProps, }: HRowSelection) => JSX.Element;
3
+ export declare const RowCheckBoxSelectionTitle: ({ allPageCheck, onChange, getCheckboxProps, }: HRowSelection) => JSX.Element;
4
4
  interface RowSelectionBoxProps {
5
5
  data: any;
6
6
  onChange?: HRowSelection["onChange"];
7
7
  getCheckboxProps?: HRowSelection["getCheckboxProps"];
8
8
  index: number;
9
9
  }
10
- export declare const RowSelectionBox: ({ data, onChange, index, getCheckboxProps, }: RowSelectionBoxProps) => JSX.Element;
10
+ export declare const RowCheckBoxSelection: ({ data, onChange, index, getCheckboxProps, }: RowSelectionBoxProps) => JSX.Element;
11
11
  export {};
@@ -10,7 +10,7 @@ import { useHTableContext } from '../context.js';
10
10
  import { Dropdown, Checkbox, Menu } from 'antd';
11
11
  import { useMemo } from 'react';
12
12
 
13
- var RowSelectionTitle = function RowSelectionTitle(_ref) {
13
+ var RowCheckBoxSelectionTitle = function RowCheckBoxSelectionTitle(_ref) {
14
14
  var _ref$allPageCheck = _ref.allPageCheck,
15
15
  allPageCheck = _ref$allPageCheck === void 0 ? true : _ref$allPageCheck,
16
16
  onChange = _ref.onChange,
@@ -117,7 +117,7 @@ var RowSelectionTitle = function RowSelectionTitle(_ref) {
117
117
  disabled: disabled
118
118
  });
119
119
  };
120
- var RowSelectionBox = function RowSelectionBox(_ref5) {
120
+ var RowCheckBoxSelection = function RowCheckBoxSelection(_ref5) {
121
121
  var data = _ref5.data,
122
122
  onChange = _ref5.onChange,
123
123
  index = _ref5.index,
@@ -168,5 +168,5 @@ var RowSelectionBox = function RowSelectionBox(_ref5) {
168
168
  });
169
169
  };
170
170
 
171
- export { RowSelectionBox, RowSelectionTitle };
171
+ export { RowCheckBoxSelection, RowCheckBoxSelectionTitle };
172
172
  // powered by hdj
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { HRowSelection } from "@/components/modal";
3
+ interface RowRadioSelection {
4
+ data: any;
5
+ onChange?: HRowSelection["onChange"];
6
+ getCheckboxProps?: HRowSelection["getCheckboxProps"];
7
+ index: number;
8
+ }
9
+ export declare const RowRadioSelection: ({ data, onChange, index, getCheckboxProps, }: RowRadioSelection) => JSX.Element;
10
+ export {};
@@ -0,0 +1,37 @@
1
+ // welcome to hoo hoo hoo
2
+ import _keysInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/keys';
3
+ import _indexOfInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/index-of';
4
+ import { jsx } from 'react/jsx-runtime';
5
+ import { useHTableContext } from '../context.js';
6
+ import { Radio } from 'antd';
7
+
8
+ var RowRadioSelection = function RowRadioSelection(_ref) {
9
+ var data = _ref.data,
10
+ onChange = _ref.onChange,
11
+ index = _ref.index,
12
+ getCheckboxProps = _ref.getCheckboxProps;
13
+ var _useHTableContext = useHTableContext(),
14
+ selectedRowData = _useHTableContext.selectedRowData,
15
+ rowOnChange = _useHTableContext.rowOnChange,
16
+ _useHTableContext$row = _useHTableContext.rowKey,
17
+ rowKey = _useHTableContext$row === void 0 ? "id" : _useHTableContext$row;
18
+ var _selectedRowData$keys = _keysInstanceProperty(selectedRowData),
19
+ keys = _selectedRowData$keys === void 0 ? [] : _selectedRowData$keys;
20
+ var key = typeof rowKey === "function" ? rowKey(data, index) : data[rowKey];
21
+ var add = function add() {
22
+ rowOnChange([key], [data]);
23
+ onChange === null || onChange === void 0 || onChange([key], [data]);
24
+ };
25
+ var _ref2 = (getCheckboxProps === null || getCheckboxProps === void 0 ? void 0 : getCheckboxProps(data)) || {},
26
+ _ref2$disabled = _ref2.disabled,
27
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled;
28
+ var checked = _indexOfInstanceProperty(keys).call(keys, key) !== -1;
29
+ return jsx(Radio, {
30
+ checked: checked,
31
+ onChange: add,
32
+ disabled: disabled
33
+ });
34
+ };
35
+
36
+ export { RowRadioSelection };
37
+ // powered by hdj
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { HRowSelection } from "@/components/modal";
3
+ export declare const checkBoxSelectionCol: (rowSelection: HRowSelection) => {
4
+ title: JSX.Element;
5
+ width: number;
6
+ rowSelectionTitle: boolean;
7
+ fixed: string;
8
+ align: string;
9
+ render: (dom: any, data: any, index: any) => JSX.Element;
10
+ };
11
+ export declare const radioSelectionCol: (rowSelection: HRowSelection) => {
12
+ width: number;
13
+ rowSelectionTitle: boolean;
14
+ fixed: string;
15
+ align: string;
16
+ render: (dom: any, data: any, index: any) => JSX.Element;
17
+ };
@@ -0,0 +1,50 @@
1
+ // welcome to hoo hoo hoo
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { RowCheckBoxSelectionTitle, RowCheckBoxSelection } from '../RowCheckBoxSelection.js';
4
+ import { RowRadioSelection } from '../RowRadioBoxSelection.js';
5
+
6
+ var checkBoxSelectionCol = function checkBoxSelectionCol(rowSelection) {
7
+ var allPageCheck = rowSelection.allPageCheck,
8
+ onChange = rowSelection.onChange,
9
+ getCheckboxProps = rowSelection.getCheckboxProps;
10
+ return {
11
+ title: jsx(RowCheckBoxSelectionTitle, {
12
+ allPageCheck: allPageCheck,
13
+ onChange: onChange,
14
+ getCheckboxProps: getCheckboxProps
15
+ }),
16
+ width: 36,
17
+ rowSelectionTitle: true,
18
+ fixed: "left",
19
+ align: "center",
20
+ render: function render(dom, data, index) {
21
+ return jsx(RowCheckBoxSelection, {
22
+ data: data,
23
+ index: index,
24
+ onChange: onChange,
25
+ getCheckboxProps: getCheckboxProps
26
+ });
27
+ }
28
+ };
29
+ };
30
+ var radioSelectionCol = function radioSelectionCol(rowSelection) {
31
+ var onChange = rowSelection.onChange,
32
+ getCheckboxProps = rowSelection.getCheckboxProps;
33
+ return {
34
+ width: 36,
35
+ rowSelectionTitle: true,
36
+ fixed: "left",
37
+ align: "center",
38
+ render: function render(dom, data, index) {
39
+ return jsx(RowRadioSelection, {
40
+ data: data,
41
+ index: index,
42
+ onChange: onChange,
43
+ getCheckboxProps: getCheckboxProps
44
+ });
45
+ }
46
+ };
47
+ };
48
+
49
+ export { checkBoxSelectionCol, radioSelectionCol };
50
+ // powered by hdj
@@ -13,48 +13,29 @@ import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/insta
13
13
  import _spliceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/splice';
14
14
  import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
15
15
  import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each';
16
- import { jsx } from 'react/jsx-runtime';
17
16
  import { useHTableContext } from '../../context.js';
18
17
  import { useState, useEffect, useMemo } from 'react';
19
18
  import { useClassName } from '../../hooks/index.js';
20
19
  import { useHTableConfigContext } from '../../TableConfig.js';
21
20
  import { textTypes } from '../../render/config.js';
22
21
  import configRender from '../../render/index.js';
23
- import { RowSelectionTitle, RowSelectionBox } from '../RowSelection.js';
24
22
  import { outColSetting, mkChangeValue } from '../utils.js';
23
+ import { radioSelectionCol, checkBoxSelectionCol } from './colsMk.js';
25
24
 
26
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; }
27
26
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context3, _context4; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context3 = ownKeys(Object(t), !0)).call(_context3, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context4 = ownKeys(Object(t))).call(_context4, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
28
- var rowSelectionCol = function rowSelectionCol(rowSelection) {
29
- var _ref = rowSelection || {},
30
- allPageCheck = _ref.allPageCheck,
31
- onChange = _ref.onChange,
32
- getCheckboxProps = _ref.getCheckboxProps;
33
- return {
34
- title: jsx(RowSelectionTitle, {
35
- allPageCheck: allPageCheck,
36
- onChange: onChange,
37
- getCheckboxProps: getCheckboxProps
38
- }),
39
- width: 36,
40
- rowSelectionTitle: true,
41
- fixed: "left",
42
- align: "center",
43
- render: function render(dom, data, index) {
44
- return jsx(RowSelectionBox, {
45
- data: data,
46
- index: index,
47
- onChange: onChange,
48
- getCheckboxProps: getCheckboxProps
49
- });
50
- }
51
- };
27
+ var checkBoxMk = function checkBoxMk(rowSelection) {
28
+ var type = rowSelection.type;
29
+ if (type === "radio") {
30
+ return radioSelectionCol(rowSelection);
31
+ }
32
+ return checkBoxSelectionCol(rowSelection);
52
33
  };
53
- var useCols = function useCols(_ref2) {
54
- var configData = _ref2.configData,
55
- rowSelection = _ref2.rowSelection,
56
- table = _ref2.table,
57
- bordered = _ref2.bordered;
34
+ var useCols = function useCols(_ref) {
35
+ var configData = _ref.configData,
36
+ rowSelection = _ref.rowSelection,
37
+ table = _ref.table,
38
+ bordered = _ref.bordered;
58
39
  var trClassname = useClassName("hw-table-col-hr");
59
40
  var _useState = useState([]),
60
41
  _useState2 = _slicedToArray(_useState, 2),
@@ -69,9 +50,9 @@ var useCols = function useCols(_ref2) {
69
50
  };
70
51
  var itemProvider = function itemProvider(item, lastItem) {
71
52
  var _context2;
72
- var _ref3 = lastItem || {},
73
- _ref3$children = _ref3.children,
74
- lastChildren = _ref3$children === void 0 ? [] : _ref3$children;
53
+ var _ref2 = lastItem || {},
54
+ _ref2$children = _ref2.children,
55
+ lastChildren = _ref2$children === void 0 ? [] : _ref2$children;
75
56
  var _item$valueType = item.valueType,
76
57
  valueType = _item$valueType === void 0 ? "" : _item$valueType,
77
58
  _item$valueTypeProps = item.valueTypeProps,
@@ -101,7 +82,7 @@ var useCols = function useCols(_ref2) {
101
82
  return !item.hideInTable;
102
83
  });
103
84
  if (rowSelection !== false) {
104
- _spliceInstanceProperty(colsArray).call(colsArray, 0, 0, rowSelectionCol(rowSelection));
85
+ _spliceInstanceProperty(colsArray).call(colsArray, 0, 0, checkBoxMk(rowSelection || {}));
105
86
  }
106
87
  return _mapInstanceProperty(colsArray).call(colsArray, function (item, index) {
107
88
  var lastItem = colsArray[index - 1];
@@ -115,17 +96,17 @@ var useCols = function useCols(_ref2) {
115
96
  cols: cols
116
97
  };
117
98
  };
118
- var useColumnsStateType = function useColumnsStateType(_ref4) {
119
- var columnsState = _ref4.columnsState,
120
- columns = _ref4.columns;
99
+ var useColumnsStateType = function useColumnsStateType(_ref3) {
100
+ var columnsState = _ref3.columnsState,
101
+ columns = _ref3.columns;
121
102
  var _useHTableContext = useHTableContext(),
122
103
  tableInstance = _useHTableContext.tableInstance;
123
- var _ref5 = columnsState || {},
124
- persistenceType = _ref5.persistenceType,
125
- persistenceKey = _ref5.persistenceKey,
126
- value = _ref5.value,
127
- defaultValue = _ref5.defaultValue,
128
- onChange = _ref5.onChange;
104
+ var _ref4 = columnsState || {},
105
+ persistenceType = _ref4.persistenceType,
106
+ persistenceKey = _ref4.persistenceKey,
107
+ value = _ref4.value,
108
+ defaultValue = _ref4.defaultValue,
109
+ onChange = _ref4.onChange;
129
110
  var _useState3 = useState(defaultValue),
130
111
  _useState4 = _slicedToArray(_useState3, 2),
131
112
  selfValue = _useState4[0],
@@ -2,6 +2,7 @@ import type React from "react";
2
2
  import type { SizeType } from "antd/lib/config-provider/SizeContext";
3
3
  import type { HTableBodyProps } from "../modal";
4
4
  import type { GetRowKey } from "rc-table/lib/interface";
5
+ import { RowObj } from "@/components/modal";
5
6
  export declare const useSize: (size: SizeType) => {
6
7
  cuSize: "small" | "middle" | "large" | undefined;
7
8
  setCuSize: React.Dispatch<React.SetStateAction<"small" | "middle" | "large" | undefined>>;
@@ -13,4 +14,5 @@ interface FilterKeysModal {
13
14
  rowKey?: string | GetRowKey<any>;
14
15
  }
15
16
  export declare const useSynchronousKeys: ({ selectedRowKeys, records, rowKey, }: FilterKeysModal) => void;
17
+ export declare const useAlwaysShowAlert: (selectedRowData: RowObj, alwaysShowAlert?: boolean) => boolean | undefined;
16
18
  export {};
@@ -12,6 +12,7 @@ import _Array$isArray from '@babel/runtime-corejs3/core-js-stable/array/is-array
12
12
  import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys';
13
13
  import _findIndexInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/find-index';
14
14
  import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
15
+ import _keysInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/keys';
15
16
  import { useState, useEffect, useMemo } from 'react';
16
17
  import { useHTableContext } from '../../context.js';
17
18
 
@@ -114,6 +115,17 @@ var useSynchronousKeys = function useSynchronousKeys(_ref4) {
114
115
  }
115
116
  }, [selectedRowKeys, records, rowKey]);
116
117
  };
118
+ var useAlwaysShowAlert = function useAlwaysShowAlert(selectedRowData, alwaysShowAlert) {
119
+ var _selectedRowData$keys = _keysInstanceProperty(selectedRowData),
120
+ keys = _selectedRowData$keys === void 0 ? [] : _selectedRowData$keys,
121
+ selectAll = selectedRowData.selectAll;
122
+ return useMemo(function () {
123
+ if (typeof alwaysShowAlert !== "undefined") {
124
+ return alwaysShowAlert;
125
+ }
126
+ return keys.length > 0 || selectAll;
127
+ }, [selectedRowData, alwaysShowAlert]);
128
+ };
117
129
 
118
- export { useSize, useSynchronousKeys, useTableChange };
130
+ export { useAlwaysShowAlert, useSize, useSynchronousKeys, useTableChange };
119
131
  // powered by hdj
@@ -9,10 +9,9 @@ import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/obje
9
9
  import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property';
10
10
  import _defineProperty from '@babel/runtime-corejs3/helpers/defineProperty';
11
11
  import _objectWithoutProperties from '@babel/runtime-corejs3/helpers/objectWithoutProperties';
12
- import _keysInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/keys';
13
12
  import { jsx, jsxs } from 'react/jsx-runtime';
14
13
  import ProTable from '@ant-design/pro-table';
15
- import { useSize, useSynchronousKeys, useTableChange } from './hooks/useControl.js';
14
+ import { useSize, useSynchronousKeys, useAlwaysShowAlert, useTableChange } from './hooks/useControl.js';
16
15
  import { useCols, useColumnsStateType } from './hooks/useColData.js';
17
16
  import { useHTableContext } from '../context.js';
18
17
  import { Space, Alert, ConfigProvider } from 'antd';
@@ -114,11 +113,8 @@ var Body = (function (bodyProps) {
114
113
  onChange: onChange,
115
114
  reset: reset
116
115
  }));
117
- var _selectedRowData$keys = _keysInstanceProperty(selectedRowData),
118
- keys = _selectedRowData$keys === void 0 ? [] : _selectedRowData$keys,
119
- selectAll = selectedRowData.selectAll;
120
116
  var defaultOptionsNode = optionsRender ? optionsRender(optionsNode) : optionsNode;
121
- var alwaysShowAlert = keys.length > 0 || selectAll || configAlwaysShowAlert;
117
+ var alwaysShowAlert = useAlwaysShowAlert(selectedRowData, configAlwaysShowAlert);
122
118
  var className = useClassName("hw-table-body");
123
119
  var _useHTableConfigConte4 = useHTableConfigContext({
124
120
  tableStyle: tableStyle
@@ -167,7 +163,6 @@ var Body = (function (bodyProps) {
167
163
  paddingBottom: 0
168
164
  },
169
165
  options: false,
170
- rowSelection: false,
171
166
  loading: loading,
172
167
  rowKey: rowKey,
173
168
  dataSource: records,
package/es/Table.js CHANGED
@@ -72,7 +72,8 @@ var Table = (function (_ref) {
72
72
  selectedRowData = _useRowObj.selectedRowData,
73
73
  rowOnChange = _useRowObj.rowOnChange,
74
74
  allSelectChange = _useRowObj.allSelectChange,
75
- setSelectedRowData = _useRowObj.setSelectedRowData;
75
+ setSelectedRowData = _useRowObj.setSelectedRowData,
76
+ rowSelectionReload = _useRowObj.rowSelectionReload;
76
77
  var _useState = useState(),
77
78
  _useState2 = _slicedToArray(_useState, 2),
78
79
  open = _useState2[0],
@@ -80,14 +81,14 @@ var Table = (function (_ref) {
80
81
  var tableInstance = useCurrentTable({
81
82
  table: table,
82
83
  reload: function reload(params) {
83
- rowOnChange([], []);
84
+ rowSelectionReload();
84
85
  return run(params);
85
86
  },
86
87
  changeRowData: rowOnChange,
87
88
  dispatch: dispatch,
88
89
  reloadWithParams: function reloadWithParams() {
89
90
  var reloadParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
90
- rowOnChange([], []);
91
+ rowSelectionReload();
91
92
  return run(_objectSpread(_objectSpread({}, saveParams.old), reloadParams));
92
93
  },
93
94
  getTableParams: function getTableParams() {
@@ -109,7 +110,7 @@ var Table = (function (_ref) {
109
110
  action: action,
110
111
  configData: configData,
111
112
  onFinish: function onFinish(value) {
112
- rowOnChange([], []);
113
+ rowSelectionReload();
113
114
  return run(_objectSpread(_objectSpread(_objectSpread({}, saveParams.old), value), {}, {
114
115
  current: 1
115
116
  }));
@@ -6,5 +6,6 @@ declare const _default: (rowSelection?: HRowSelection | false) => {
6
6
  selectedRowData: RowObj;
7
7
  allSelectChange: (checked?: boolean) => void;
8
8
  setSelectedRowData: React.Dispatch<React.SetStateAction<RowObj>>;
9
+ rowSelectionReload: () => void;
9
10
  };
10
11
  export default _default;
@@ -1,6 +1,6 @@
1
1
  // welcome to hoo hoo hoo
2
2
  import _slicedToArray from '@babel/runtime-corejs3/helpers/slicedToArray';
3
- import { useState, useMemo } from 'react';
3
+ import { useState } from 'react';
4
4
 
5
5
  var useRowObj = (function (rowSelection) {
6
6
  var change = function change(keys, rowData) {
@@ -17,7 +17,6 @@ var useRowObj = (function (rowSelection) {
17
17
  setSelectedRowData = _useState2[1];
18
18
  var _selectedRowData$sele = selectedRowData.selectAll,
19
19
  selectAll = _selectedRowData$sele === void 0 ? false : _selectedRowData$sele;
20
- useMemo(function () {}, []);
21
20
  var rowOnChange = function rowOnChange(keys, rowData) {
22
21
  setSelectedRowData({
23
22
  keys: keys,
@@ -31,11 +30,23 @@ var useRowObj = (function (rowSelection) {
31
30
  selectAll: newChecked
32
31
  });
33
32
  };
33
+ var rowSelectionReload = function rowSelectionReload() {
34
+ if (rowSelection === false) {
35
+ return;
36
+ }
37
+ var _ref2 = rowSelection || {},
38
+ preserveSelectedRowKeys = _ref2.preserveSelectedRowKeys;
39
+ if (preserveSelectedRowKeys) {
40
+ return;
41
+ }
42
+ rowOnChange([], []);
43
+ };
34
44
  return {
35
45
  rowOnChange: rowOnChange,
36
46
  selectedRowData: selectedRowData,
37
47
  allSelectChange: allSelectChange,
38
- setSelectedRowData: setSelectedRowData
48
+ setSelectedRowData: setSelectedRowData,
49
+ rowSelectionReload: rowSelectionReload
39
50
  };
40
51
  });
41
52
 
@@ -1,11 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import type { HRowSelection } from "../modal";
3
- export declare const RowSelectionTitle: ({ allPageCheck, onChange, getCheckboxProps, }: HRowSelection) => JSX.Element;
3
+ export declare const RowCheckBoxSelectionTitle: ({ allPageCheck, onChange, getCheckboxProps, }: HRowSelection) => JSX.Element;
4
4
  interface RowSelectionBoxProps {
5
5
  data: any;
6
6
  onChange?: HRowSelection["onChange"];
7
7
  getCheckboxProps?: HRowSelection["getCheckboxProps"];
8
8
  index: number;
9
9
  }
10
- export declare const RowSelectionBox: ({ data, onChange, index, getCheckboxProps, }: RowSelectionBoxProps) => JSX.Element;
10
+ export declare const RowCheckBoxSelection: ({ data, onChange, index, getCheckboxProps, }: RowSelectionBoxProps) => JSX.Element;
11
11
  export {};
@@ -11,7 +11,7 @@ var context = require('../context.js');
11
11
  var antd = require('antd');
12
12
  var React = require('react');
13
13
 
14
- var RowSelectionTitle = function RowSelectionTitle(_ref) {
14
+ var RowCheckBoxSelectionTitle = function RowCheckBoxSelectionTitle(_ref) {
15
15
  var _ref$allPageCheck = _ref.allPageCheck,
16
16
  allPageCheck = _ref$allPageCheck === void 0 ? true : _ref$allPageCheck,
17
17
  onChange = _ref.onChange,
@@ -118,7 +118,7 @@ var RowSelectionTitle = function RowSelectionTitle(_ref) {
118
118
  disabled: disabled
119
119
  });
120
120
  };
121
- var RowSelectionBox = function RowSelectionBox(_ref5) {
121
+ var RowCheckBoxSelection = function RowCheckBoxSelection(_ref5) {
122
122
  var data = _ref5.data,
123
123
  onChange = _ref5.onChange,
124
124
  index = _ref5.index,
@@ -169,6 +169,6 @@ var RowSelectionBox = function RowSelectionBox(_ref5) {
169
169
  });
170
170
  };
171
171
 
172
- exports.RowSelectionBox = RowSelectionBox;
173
- exports.RowSelectionTitle = RowSelectionTitle;
172
+ exports.RowCheckBoxSelection = RowCheckBoxSelection;
173
+ exports.RowCheckBoxSelectionTitle = RowCheckBoxSelectionTitle;
174
174
  // powered by h
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { HRowSelection } from "@/components/modal";
3
+ interface RowRadioSelection {
4
+ data: any;
5
+ onChange?: HRowSelection["onChange"];
6
+ getCheckboxProps?: HRowSelection["getCheckboxProps"];
7
+ index: number;
8
+ }
9
+ export declare const RowRadioSelection: ({ data, onChange, index, getCheckboxProps, }: RowRadioSelection) => JSX.Element;
10
+ export {};
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/keys');
4
+ var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var context = require('../context.js');
7
+ var antd = require('antd');
8
+
9
+ var RowRadioSelection = function RowRadioSelection(_ref) {
10
+ var data = _ref.data,
11
+ onChange = _ref.onChange,
12
+ index = _ref.index,
13
+ getCheckboxProps = _ref.getCheckboxProps;
14
+ var _useHTableContext = context.useHTableContext(),
15
+ selectedRowData = _useHTableContext.selectedRowData,
16
+ rowOnChange = _useHTableContext.rowOnChange,
17
+ _useHTableContext$row = _useHTableContext.rowKey,
18
+ rowKey = _useHTableContext$row === void 0 ? "id" : _useHTableContext$row;
19
+ var _selectedRowData$keys = _keysInstanceProperty(selectedRowData),
20
+ keys = _selectedRowData$keys === void 0 ? [] : _selectedRowData$keys;
21
+ var key = typeof rowKey === "function" ? rowKey(data, index) : data[rowKey];
22
+ var add = function add() {
23
+ rowOnChange([key], [data]);
24
+ onChange === null || onChange === void 0 || onChange([key], [data]);
25
+ };
26
+ var _ref2 = (getCheckboxProps === null || getCheckboxProps === void 0 ? void 0 : getCheckboxProps(data)) || {},
27
+ _ref2$disabled = _ref2.disabled,
28
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled;
29
+ var checked = _indexOfInstanceProperty(keys).call(keys, key) !== -1;
30
+ return jsxRuntime.jsx(antd.Radio, {
31
+ checked: checked,
32
+ onChange: add,
33
+ disabled: disabled
34
+ });
35
+ };
36
+
37
+ exports.RowRadioSelection = RowRadioSelection;
38
+ // powered by h
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { HRowSelection } from "@/components/modal";
3
+ export declare const checkBoxSelectionCol: (rowSelection: HRowSelection) => {
4
+ title: JSX.Element;
5
+ width: number;
6
+ rowSelectionTitle: boolean;
7
+ fixed: string;
8
+ align: string;
9
+ render: (dom: any, data: any, index: any) => JSX.Element;
10
+ };
11
+ export declare const radioSelectionCol: (rowSelection: HRowSelection) => {
12
+ width: number;
13
+ rowSelectionTitle: boolean;
14
+ fixed: string;
15
+ align: string;
16
+ render: (dom: any, data: any, index: any) => JSX.Element;
17
+ };
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var RowCheckBoxSelection = require('../RowCheckBoxSelection.js');
5
+ var RowRadioBoxSelection = require('../RowRadioBoxSelection.js');
6
+
7
+ var checkBoxSelectionCol = function checkBoxSelectionCol(rowSelection) {
8
+ var allPageCheck = rowSelection.allPageCheck,
9
+ onChange = rowSelection.onChange,
10
+ getCheckboxProps = rowSelection.getCheckboxProps;
11
+ return {
12
+ title: jsxRuntime.jsx(RowCheckBoxSelection.RowCheckBoxSelectionTitle, {
13
+ allPageCheck: allPageCheck,
14
+ onChange: onChange,
15
+ getCheckboxProps: getCheckboxProps
16
+ }),
17
+ width: 36,
18
+ rowSelectionTitle: true,
19
+ fixed: "left",
20
+ align: "center",
21
+ render: function render(dom, data, index) {
22
+ return jsxRuntime.jsx(RowCheckBoxSelection.RowCheckBoxSelection, {
23
+ data: data,
24
+ index: index,
25
+ onChange: onChange,
26
+ getCheckboxProps: getCheckboxProps
27
+ });
28
+ }
29
+ };
30
+ };
31
+ var radioSelectionCol = function radioSelectionCol(rowSelection) {
32
+ var onChange = rowSelection.onChange,
33
+ getCheckboxProps = rowSelection.getCheckboxProps;
34
+ return {
35
+ width: 36,
36
+ rowSelectionTitle: true,
37
+ fixed: "left",
38
+ align: "center",
39
+ render: function render(dom, data, index) {
40
+ return jsxRuntime.jsx(RowRadioBoxSelection.RowRadioSelection, {
41
+ data: data,
42
+ index: index,
43
+ onChange: onChange,
44
+ getCheckboxProps: getCheckboxProps
45
+ });
46
+ }
47
+ };
48
+ };
49
+
50
+ exports.checkBoxSelectionCol = checkBoxSelectionCol;
51
+ exports.radioSelectionCol = radioSelectionCol;
52
+ // powered by h
@@ -14,48 +14,29 @@ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/ins
14
14
  var _spliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/splice');
15
15
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
16
16
  var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
17
- var jsxRuntime = require('react/jsx-runtime');
18
17
  var context = require('../../context.js');
19
18
  var React = require('react');
20
19
  var index = require('../../hooks/index.js');
21
20
  var TableConfig = require('../../TableConfig.js');
22
21
  var config = require('../../render/config.js');
23
22
  var index$1 = require('../../render/index.js');
24
- var RowSelection = require('../RowSelection.js');
25
23
  var utils = require('../utils.js');
24
+ var colsMk = require('./colsMk.js');
26
25
 
27
26
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28
27
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context3, _context4; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context3 = ownKeys(Object(t), !0)).call(_context3, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context4 = ownKeys(Object(t))).call(_context4, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
29
- var rowSelectionCol = function rowSelectionCol(rowSelection) {
30
- var _ref = rowSelection || {},
31
- allPageCheck = _ref.allPageCheck,
32
- onChange = _ref.onChange,
33
- getCheckboxProps = _ref.getCheckboxProps;
34
- return {
35
- title: jsxRuntime.jsx(RowSelection.RowSelectionTitle, {
36
- allPageCheck: allPageCheck,
37
- onChange: onChange,
38
- getCheckboxProps: getCheckboxProps
39
- }),
40
- width: 36,
41
- rowSelectionTitle: true,
42
- fixed: "left",
43
- align: "center",
44
- render: function render(dom, data, index) {
45
- return jsxRuntime.jsx(RowSelection.RowSelectionBox, {
46
- data: data,
47
- index: index,
48
- onChange: onChange,
49
- getCheckboxProps: getCheckboxProps
50
- });
51
- }
52
- };
28
+ var checkBoxMk = function checkBoxMk(rowSelection) {
29
+ var type = rowSelection.type;
30
+ if (type === "radio") {
31
+ return colsMk.radioSelectionCol(rowSelection);
32
+ }
33
+ return colsMk.checkBoxSelectionCol(rowSelection);
53
34
  };
54
- var useCols = function useCols(_ref2) {
55
- var configData = _ref2.configData,
56
- rowSelection = _ref2.rowSelection,
57
- table = _ref2.table,
58
- bordered = _ref2.bordered;
35
+ var useCols = function useCols(_ref) {
36
+ var configData = _ref.configData,
37
+ rowSelection = _ref.rowSelection,
38
+ table = _ref.table,
39
+ bordered = _ref.bordered;
59
40
  var trClassname = index.useClassName("hw-table-col-hr");
60
41
  var _useState = React.useState([]),
61
42
  _useState2 = _slicedToArray(_useState, 2),
@@ -70,9 +51,9 @@ var useCols = function useCols(_ref2) {
70
51
  };
71
52
  var itemProvider = function itemProvider(item, lastItem) {
72
53
  var _context2;
73
- var _ref3 = lastItem || {},
74
- _ref3$children = _ref3.children,
75
- lastChildren = _ref3$children === void 0 ? [] : _ref3$children;
54
+ var _ref2 = lastItem || {},
55
+ _ref2$children = _ref2.children,
56
+ lastChildren = _ref2$children === void 0 ? [] : _ref2$children;
76
57
  var _item$valueType = item.valueType,
77
58
  valueType = _item$valueType === void 0 ? "" : _item$valueType,
78
59
  _item$valueTypeProps = item.valueTypeProps,
@@ -102,7 +83,7 @@ var useCols = function useCols(_ref2) {
102
83
  return !item.hideInTable;
103
84
  });
104
85
  if (rowSelection !== false) {
105
- _spliceInstanceProperty(colsArray).call(colsArray, 0, 0, rowSelectionCol(rowSelection));
86
+ _spliceInstanceProperty(colsArray).call(colsArray, 0, 0, checkBoxMk(rowSelection || {}));
106
87
  }
107
88
  return _mapInstanceProperty(colsArray).call(colsArray, function (item, index) {
108
89
  var lastItem = colsArray[index - 1];
@@ -116,17 +97,17 @@ var useCols = function useCols(_ref2) {
116
97
  cols: cols
117
98
  };
118
99
  };
119
- var useColumnsStateType = function useColumnsStateType(_ref4) {
120
- var columnsState = _ref4.columnsState,
121
- columns = _ref4.columns;
100
+ var useColumnsStateType = function useColumnsStateType(_ref3) {
101
+ var columnsState = _ref3.columnsState,
102
+ columns = _ref3.columns;
122
103
  var _useHTableContext = context.useHTableContext(),
123
104
  tableInstance = _useHTableContext.tableInstance;
124
- var _ref5 = columnsState || {},
125
- persistenceType = _ref5.persistenceType,
126
- persistenceKey = _ref5.persistenceKey,
127
- value = _ref5.value,
128
- defaultValue = _ref5.defaultValue,
129
- onChange = _ref5.onChange;
105
+ var _ref4 = columnsState || {},
106
+ persistenceType = _ref4.persistenceType,
107
+ persistenceKey = _ref4.persistenceKey,
108
+ value = _ref4.value,
109
+ defaultValue = _ref4.defaultValue,
110
+ onChange = _ref4.onChange;
130
111
  var _useState3 = React.useState(defaultValue),
131
112
  _useState4 = _slicedToArray(_useState3, 2),
132
113
  selfValue = _useState4[0],
@@ -2,6 +2,7 @@ import type React from "react";
2
2
  import type { SizeType } from "antd/lib/config-provider/SizeContext";
3
3
  import type { HTableBodyProps } from "../modal";
4
4
  import type { GetRowKey } from "rc-table/lib/interface";
5
+ import { RowObj } from "@/components/modal";
5
6
  export declare const useSize: (size: SizeType) => {
6
7
  cuSize: "small" | "middle" | "large" | undefined;
7
8
  setCuSize: React.Dispatch<React.SetStateAction<"small" | "middle" | "large" | undefined>>;
@@ -13,4 +14,5 @@ interface FilterKeysModal {
13
14
  rowKey?: string | GetRowKey<any>;
14
15
  }
15
16
  export declare const useSynchronousKeys: ({ selectedRowKeys, records, rowKey, }: FilterKeysModal) => void;
17
+ export declare const useAlwaysShowAlert: (selectedRowData: RowObj, alwaysShowAlert?: boolean) => boolean | undefined;
16
18
  export {};
@@ -13,6 +13,7 @@ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-arr
13
13
  var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
14
14
  var _findIndexInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find-index');
15
15
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
16
+ var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/keys');
16
17
  var React = require('react');
17
18
  var context = require('../../context.js');
18
19
 
@@ -115,7 +116,19 @@ var useSynchronousKeys = function useSynchronousKeys(_ref4) {
115
116
  }
116
117
  }, [selectedRowKeys, records, rowKey]);
117
118
  };
119
+ var useAlwaysShowAlert = function useAlwaysShowAlert(selectedRowData, alwaysShowAlert) {
120
+ var _selectedRowData$keys = _keysInstanceProperty(selectedRowData),
121
+ keys = _selectedRowData$keys === void 0 ? [] : _selectedRowData$keys,
122
+ selectAll = selectedRowData.selectAll;
123
+ return React.useMemo(function () {
124
+ if (typeof alwaysShowAlert !== "undefined") {
125
+ return alwaysShowAlert;
126
+ }
127
+ return keys.length > 0 || selectAll;
128
+ }, [selectedRowData, alwaysShowAlert]);
129
+ };
118
130
 
131
+ exports.useAlwaysShowAlert = useAlwaysShowAlert;
119
132
  exports.useSize = useSize;
120
133
  exports.useSynchronousKeys = useSynchronousKeys;
121
134
  exports.useTableChange = useTableChange;
@@ -12,7 +12,6 @@ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/ob
12
12
  var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
13
13
  var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
14
14
  var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
15
- var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/keys');
16
15
  var jsxRuntime = require('react/jsx-runtime');
17
16
  var ProTable = require('@ant-design/pro-table');
18
17
  var useControl = require('./hooks/useControl.js');
@@ -117,11 +116,8 @@ var Body = (function (bodyProps) {
117
116
  onChange: onChange,
118
117
  reset: reset
119
118
  }));
120
- var _selectedRowData$keys = _keysInstanceProperty(selectedRowData),
121
- keys = _selectedRowData$keys === void 0 ? [] : _selectedRowData$keys,
122
- selectAll = selectedRowData.selectAll;
123
119
  var defaultOptionsNode = optionsRender ? optionsRender(optionsNode) : optionsNode;
124
- var alwaysShowAlert = keys.length > 0 || selectAll || configAlwaysShowAlert;
120
+ var alwaysShowAlert = useControl.useAlwaysShowAlert(selectedRowData, configAlwaysShowAlert);
125
121
  var className = index$1.useClassName("hw-table-body");
126
122
  var _useHTableConfigConte4 = TableConfig.useHTableConfigContext({
127
123
  tableStyle: tableStyle
@@ -170,7 +166,6 @@ var Body = (function (bodyProps) {
170
166
  paddingBottom: 0
171
167
  },
172
168
  options: false,
173
- rowSelection: false,
174
169
  loading: loading,
175
170
  rowKey: rowKey,
176
171
  dataSource: records,
package/lib/Table.js CHANGED
@@ -75,7 +75,8 @@ var Table = (function (_ref) {
75
75
  selectedRowData = _useRowObj.selectedRowData,
76
76
  rowOnChange = _useRowObj.rowOnChange,
77
77
  allSelectChange = _useRowObj.allSelectChange,
78
- setSelectedRowData = _useRowObj.setSelectedRowData;
78
+ setSelectedRowData = _useRowObj.setSelectedRowData,
79
+ rowSelectionReload = _useRowObj.rowSelectionReload;
79
80
  var _useState = React.useState(),
80
81
  _useState2 = _slicedToArray(_useState, 2),
81
82
  open = _useState2[0],
@@ -83,14 +84,14 @@ var Table = (function (_ref) {
83
84
  var tableInstance = useCurrentTable.default({
84
85
  table: table,
85
86
  reload: function reload(params) {
86
- rowOnChange([], []);
87
+ rowSelectionReload();
87
88
  return run(params);
88
89
  },
89
90
  changeRowData: rowOnChange,
90
91
  dispatch: dispatch,
91
92
  reloadWithParams: function reloadWithParams() {
92
93
  var reloadParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
93
- rowOnChange([], []);
94
+ rowSelectionReload();
94
95
  return run(_objectSpread(_objectSpread({}, saveParams.old), reloadParams));
95
96
  },
96
97
  getTableParams: function getTableParams() {
@@ -112,7 +113,7 @@ var Table = (function (_ref) {
112
113
  action: action,
113
114
  configData: configData,
114
115
  onFinish: function onFinish(value) {
115
- rowOnChange([], []);
116
+ rowSelectionReload();
116
117
  return run(_objectSpread(_objectSpread(_objectSpread({}, saveParams.old), value), {}, {
117
118
  current: 1
118
119
  }));
@@ -6,5 +6,6 @@ declare const _default: (rowSelection?: HRowSelection | false) => {
6
6
  selectedRowData: RowObj;
7
7
  allSelectChange: (checked?: boolean) => void;
8
8
  setSelectedRowData: React.Dispatch<React.SetStateAction<RowObj>>;
9
+ rowSelectionReload: () => void;
9
10
  };
10
11
  export default _default;
@@ -20,7 +20,6 @@ var useRowObj = (function (rowSelection) {
20
20
  setSelectedRowData = _useState2[1];
21
21
  var _selectedRowData$sele = selectedRowData.selectAll,
22
22
  selectAll = _selectedRowData$sele === void 0 ? false : _selectedRowData$sele;
23
- React.useMemo(function () {}, []);
24
23
  var rowOnChange = function rowOnChange(keys, rowData) {
25
24
  setSelectedRowData({
26
25
  keys: keys,
@@ -34,11 +33,23 @@ var useRowObj = (function (rowSelection) {
34
33
  selectAll: newChecked
35
34
  });
36
35
  };
36
+ var rowSelectionReload = function rowSelectionReload() {
37
+ if (rowSelection === false) {
38
+ return;
39
+ }
40
+ var _ref2 = rowSelection || {},
41
+ preserveSelectedRowKeys = _ref2.preserveSelectedRowKeys;
42
+ if (preserveSelectedRowKeys) {
43
+ return;
44
+ }
45
+ rowOnChange([], []);
46
+ };
37
47
  return {
38
48
  rowOnChange: rowOnChange,
39
49
  selectedRowData: selectedRowData,
40
50
  allSelectChange: allSelectChange,
41
- setSelectedRowData: setSelectedRowData
51
+ setSelectedRowData: setSelectedRowData,
52
+ rowSelectionReload: rowSelectionReload
42
53
  };
43
54
  });
44
55
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hw-component/table",
3
- "version": "1.9.60",
3
+ "version": "1.9.62",
4
4
  "description": "基于antd二次开发table组件",
5
5
  "keywords": [
6
6
  "table"
@@ -1,8 +1,9 @@
1
1
  import { useHTableContext } from "../context";
2
2
  import { Checkbox, Dropdown, Menu } from "antd";
3
- import { useEffect, useMemo } from "react";
3
+ import { useMemo } from "react";
4
4
  import type { HRowSelection } from "../modal";
5
- export const RowSelectionTitle = ({
5
+
6
+ export const RowCheckBoxSelectionTitle = ({
6
7
  allPageCheck = true,
7
8
  onChange,
8
9
  getCheckboxProps,
@@ -110,7 +111,7 @@ interface RowSelectionBoxProps {
110
111
  getCheckboxProps?: HRowSelection["getCheckboxProps"];
111
112
  index: number;
112
113
  }
113
- export const RowSelectionBox = ({
114
+ export const RowCheckBoxSelection = ({
114
115
  data,
115
116
  onChange,
116
117
  index,
@@ -0,0 +1,27 @@
1
+ import {HRowSelection} from "@/components/modal";
2
+ import {useHTableContext} from "@/components/context";
3
+ import {Radio} from "antd";
4
+
5
+ interface RowRadioSelection {
6
+ data: any;
7
+ onChange?: HRowSelection["onChange"];
8
+ getCheckboxProps?: HRowSelection["getCheckboxProps"];
9
+ index: number;
10
+ }
11
+ export const RowRadioSelection = ({
12
+ data,
13
+ onChange,
14
+ index,
15
+ getCheckboxProps,
16
+ }: RowRadioSelection) => {
17
+ const { selectedRowData, rowOnChange, rowKey = "id" } = useHTableContext();
18
+ const { keys = [] } = selectedRowData;
19
+ const key = typeof rowKey === "function" ? rowKey(data, index) : data[rowKey];
20
+ const add = () => {
21
+ rowOnChange([key], [data]);
22
+ onChange?.([key], [data]);
23
+ };
24
+ const { disabled = false } = getCheckboxProps?.(data) || {};
25
+ const checked = keys.indexOf(key) !== -1;
26
+ return <Radio checked={checked} onChange={add} disabled={disabled} />;
27
+ };
@@ -0,0 +1,51 @@
1
+ import {HRowSelection} from "@/components/modal";
2
+ import {RowCheckBoxSelection, RowCheckBoxSelectionTitle} from "@/components/HTableBody/RowCheckBoxSelection";
3
+ import React from "react";
4
+ import {RowRadioSelection} from "@/components/HTableBody/RowRadioBoxSelection";
5
+
6
+ export const checkBoxSelectionCol = (rowSelection: HRowSelection) => {
7
+ const { allPageCheck, onChange, getCheckboxProps } = rowSelection;
8
+ return {
9
+ title: (
10
+ <RowCheckBoxSelectionTitle
11
+ allPageCheck={allPageCheck}
12
+ onChange={onChange}
13
+ getCheckboxProps={getCheckboxProps}
14
+ />
15
+ ),
16
+ width: 36,
17
+ rowSelectionTitle: true,
18
+ fixed: "left",
19
+ align: "center",
20
+ render: (dom, data, index) => {
21
+ return (
22
+ <RowCheckBoxSelection
23
+ data={data}
24
+ index={index}
25
+ onChange={onChange}
26
+ getCheckboxProps={getCheckboxProps}
27
+ />
28
+ );
29
+ },
30
+ };
31
+ };
32
+
33
+ export const radioSelectionCol=(rowSelection: HRowSelection)=>{
34
+ const { onChange, getCheckboxProps } = rowSelection;
35
+ return {
36
+ width: 36,
37
+ rowSelectionTitle: true,
38
+ fixed: "left",
39
+ align: "center",
40
+ render: (dom, data, index) => {
41
+ return (
42
+ <RowRadioSelection
43
+ data={data}
44
+ index={index}
45
+ onChange={onChange}
46
+ getCheckboxProps={getCheckboxProps}
47
+ />
48
+ );
49
+ },
50
+ };
51
+ }
@@ -1,6 +1,5 @@
1
1
  import { useHTableContext } from "@/components/context";
2
- import React, { useEffect, useMemo, useState } from "react";
3
- import { GetRowKey } from "rc-table/lib/interface";
2
+ import { useEffect, useMemo, useState } from "react";
4
3
  import type {
5
4
  ConfigDataModal,
6
5
  ConfigItemModal,
@@ -12,41 +11,17 @@ import { useClassName } from "@/components/hooks";
12
11
  import { useHTableConfigContext } from "@/components/TableConfig";
13
12
  import { textTypes } from "@/components/render/config";
14
13
  import configRender from "@/components/render";
15
- import {
16
- RowSelectionBox,
17
- RowSelectionTitle,
18
- } from "@/components/HTableBody/RowSelection";
19
14
  import type { ColumnsState } from "@ant-design/pro-table/es/container";
20
15
  import { mkChangeValue, outColSetting } from "@/components/HTableBody/utils";
21
16
  import type { ColumnsStateType } from "@ant-design/pro-table/es/typing";
22
-
23
- const rowSelectionCol = (rowSelection?: HRowSelection) => {
24
- const { allPageCheck, onChange, getCheckboxProps } = rowSelection || {};
25
- return {
26
- title: (
27
- <RowSelectionTitle
28
- allPageCheck={allPageCheck}
29
- onChange={onChange}
30
- getCheckboxProps={getCheckboxProps}
31
- />
32
- ),
33
- width: 36,
34
- rowSelectionTitle: true,
35
- fixed: "left",
36
- align: "center",
37
- render: (dom, data, index) => {
38
- return (
39
- <RowSelectionBox
40
- data={data}
41
- index={index}
42
- onChange={onChange}
43
- getCheckboxProps={getCheckboxProps}
44
- />
45
- );
46
- },
47
- };
48
- };
49
-
17
+ import {radioSelectionCol,checkBoxSelectionCol} from './colsMk'
18
+ const checkBoxMk=(rowSelection:HRowSelection)=>{
19
+ const {type}=rowSelection;
20
+ if (type==="radio"){
21
+ return radioSelectionCol(rowSelection);
22
+ }
23
+ return checkBoxSelectionCol(rowSelection);
24
+ }
50
25
  export const useCols = ({
51
26
  configData,
52
27
  rowSelection,
@@ -93,7 +68,7 @@ export const useCols = ({
93
68
  return !item.hideInTable;
94
69
  });
95
70
  if (rowSelection !== false) {
96
- colsArray.splice(0, 0, rowSelectionCol(rowSelection) as any);
71
+ colsArray.splice(0, 0, checkBoxMk(rowSelection||{}) as any);
97
72
  }
98
73
  return colsArray.map((item, index) => {
99
74
  const lastItem = colsArray[index - 1];
@@ -107,6 +82,7 @@ export const useCols = ({
107
82
  cols,
108
83
  };
109
84
  };
85
+
110
86
  interface useColumnsStateTypeModal {
111
87
  columnsState?: ColumnsStateType;
112
88
  columns: ConfigDataModal;
@@ -4,6 +4,7 @@ import type { SizeType } from "antd/lib/config-provider/SizeContext";
4
4
  import type { HTableBodyProps } from "../modal";
5
5
  import { useHTableContext } from "@/components/context";
6
6
  import type { GetRowKey } from "rc-table/lib/interface";
7
+ import {RowObj} from "@/components/modal";
7
8
 
8
9
  export const useSize = (size: SizeType) => {
9
10
  const [cuSize, setCuSize] = useState(size);
@@ -104,3 +105,14 @@ export const useSynchronousKeys = ({
104
105
  }
105
106
  }, [selectedRowKeys, records, rowKey]);
106
107
  };
108
+
109
+
110
+ export const useAlwaysShowAlert=(selectedRowData:RowObj,alwaysShowAlert?:boolean)=>{
111
+ const { keys = [], selectAll } = selectedRowData;
112
+ return useMemo(()=>{
113
+ if (typeof alwaysShowAlert!=="undefined"){
114
+ return alwaysShowAlert
115
+ }
116
+ return keys.length > 0 || selectAll;
117
+ },[selectedRowData,alwaysShowAlert])
118
+ }
@@ -2,7 +2,7 @@ import ProTable from "@ant-design/pro-table";
2
2
  import {
3
3
  useSize,
4
4
  useTableChange,
5
- useSynchronousKeys,
5
+ useSynchronousKeys, useAlwaysShowAlert,
6
6
  } from "./hooks/useControl";
7
7
  import { useCols, useColumnsStateType } from "./hooks/useColData";
8
8
  import { useHTableContext } from "../context";
@@ -44,8 +44,7 @@ export default (bodyProps: HTableBodyProps) => {
44
44
  bordered,
45
45
  ...props
46
46
  } = bodyProps;
47
- const { selectedRowKeys, alwaysShowAlert: configAlwaysShowAlert } =
48
- rowSelection || {};
47
+ const { selectedRowKeys, alwaysShowAlert: configAlwaysShowAlert } = rowSelection || {};
49
48
  const {
50
49
  tableInstance: contextTableInstance,
51
50
  configData: contextConfigData,
@@ -89,11 +88,8 @@ export default (bodyProps: HTableBodyProps) => {
89
88
  reset={reset}
90
89
  />
91
90
  );
92
- const { keys = [], selectAll } = selectedRowData;
93
- const defaultOptionsNode = optionsRender
94
- ? optionsRender(optionsNode)
95
- : optionsNode;
96
- const alwaysShowAlert = keys.length > 0 || selectAll || configAlwaysShowAlert;
91
+ const defaultOptionsNode = optionsRender ? optionsRender(optionsNode) : optionsNode;
92
+ const alwaysShowAlert = useAlwaysShowAlert(selectedRowData,configAlwaysShowAlert);
97
93
  const className = useClassName("hw-table-body");
98
94
  const { tableStyle: defaultTableStyle } = useHTableConfigContext({
99
95
  tableStyle,
@@ -104,6 +100,7 @@ export default (bodyProps: HTableBodyProps) => {
104
100
  table: tableInstance,
105
101
  localSorter,
106
102
  });
103
+
107
104
  return (
108
105
  <div style={defaultTableStyle} className={`hw_table_body ${className}`}>
109
106
  <Space size={16} direction={"vertical"} style={{ width: "100%" }}>
@@ -138,7 +135,6 @@ export default (bodyProps: HTableBodyProps) => {
138
135
  paddingBottom: 0,
139
136
  }}
140
137
  options={false}
141
- rowSelection={false}
142
138
  loading={loading}
143
139
  rowKey={rowKey}
144
140
  dataSource={records}
@@ -44,19 +44,18 @@ export default ({
44
44
  reload,
45
45
  });
46
46
  const dispatch = useDispatch(action);
47
- const { selectedRowData, rowOnChange, allSelectChange, setSelectedRowData } =
48
- useRowObj(rowSelection);
47
+ const { selectedRowData, rowOnChange, allSelectChange, setSelectedRowData,rowSelectionReload } = useRowObj(rowSelection);
49
48
  const [open, setOpen] = useState<boolean | undefined>();
50
49
  const tableInstance = useCurrentTable({
51
50
  table,
52
51
  reload: (params) => {
53
- rowOnChange([], []);
52
+ rowSelectionReload();
54
53
  return run(params);
55
54
  },
56
55
  changeRowData: rowOnChange,
57
56
  dispatch,
58
57
  reloadWithParams: (reloadParams = {}) => {
59
- rowOnChange([], []);
58
+ rowSelectionReload();
60
59
  return run({ ...saveParams.old, ...reloadParams });
61
60
  },
62
61
  getTableParams: () => {
@@ -79,7 +78,7 @@ export default ({
79
78
  action,
80
79
  configData,
81
80
  onFinish: (value) => {
82
- rowOnChange([], []);
81
+ rowSelectionReload();
83
82
  return run({ ...saveParams.old, ...value, current: 1 });
84
83
  },
85
84
  onPageChange: tableInstance.table.reloadWithParams,
@@ -13,7 +13,6 @@ export default (rowSelection?: HRowSelection | false) => {
13
13
  };
14
14
  const [selectedRowData, setSelectedRowData] = useState<RowObj>({});
15
15
  const { selectAll = false } = selectedRowData;
16
- const selectedRowDataSource = useMemo(() => {}, []);
17
16
  const rowOnChange = (keys: React.Key[], rowData: any[]) => {
18
17
  setSelectedRowData({
19
18
  keys,
@@ -27,10 +26,21 @@ export default (rowSelection?: HRowSelection | false) => {
27
26
  selectAll: newChecked,
28
27
  });
29
28
  };
29
+ const rowSelectionReload=()=>{
30
+ if (rowSelection===false){
31
+ return;
32
+ }
33
+ const {preserveSelectedRowKeys}=rowSelection||{};
34
+ if (preserveSelectedRowKeys){
35
+ return;
36
+ }
37
+ rowOnChange([],[]);
38
+ }
30
39
  return {
31
40
  rowOnChange,
32
41
  selectedRowData,
33
42
  allSelectChange,
34
43
  setSelectedRowData,
44
+ rowSelectionReload
35
45
  };
36
46
  };
@@ -122,7 +122,7 @@
122
122
 
123
123
  .@{ant-prefix}-hw-table-render-copy{
124
124
  margin-bottom: 0 !important;
125
- color:#1890ff !important;
125
+ color:@primary-color !important;
126
126
  cursor: pointer;
127
127
  }
128
128
 
@@ -1 +1,2 @@
1
1
  @ant-prefix: ant;
2
+ @primary-color: #1890ff;
@@ -71,6 +71,7 @@ export const configData = [
71
71
  title: "id",
72
72
  dataIndex: "id",
73
73
  width: 120,
74
+ valueType: "copy",
74
75
  sorter: (a, b) => {
75
76
  const { id: aNum } = a;
76
77
  const { id: bNum } = b;
@@ -180,6 +181,7 @@ export default () => {
180
181
  size: "10",
181
182
  current: "1",
182
183
  });
184
+ const [keys,setKeys]=useState([]);
183
185
  return (
184
186
  <HFormConfigProvider>
185
187
  <div>
@@ -191,12 +193,6 @@ export default () => {
191
193
  >
192
194
  获取
193
195
  </div>
194
- {/*<ProTable*/}
195
- {/* columns={configData}*/}
196
- {/* scroll={{ x: 1000 }}*/}
197
- {/* loading={loading}*/}
198
- {/* dataSource={data}*/}
199
- {/*/>*/}
200
196
  <HTable
201
197
  configData={configData}
202
198
  rowKey={(rowData, index) => {
@@ -211,6 +207,9 @@ export default () => {
211
207
  }}
212
208
  rowSelection={{
213
209
  allPageCheck: false,
210
+ type:"radio",
211
+ preserveSelectedRowKeys:true,
212
+ alwaysShowAlert:false
214
213
  }}
215
214
  affixProps={{
216
215
  target: () => document.querySelector(".body"),
@@ -226,7 +225,6 @@ export default () => {
226
225
  mobileList: "mobileList",
227
226
  }}
228
227
  request={(params) => {
229
- console.log(params);
230
228
  return Promise.resolve({
231
229
  current: 1,
232
230
  records: maker(`第${100}页`),