@ccs-ui/rc-pro 2.3.6-beta-7 → 2.3.6-beta-8

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.
@@ -16,7 +16,7 @@ export type DialogButtonsProps<T> = Pick<CcsDialogModalProps, 'okText' | 'onClos
16
16
  export type DialogButtonRef = {
17
17
  onSetButtons: (e: React.ReactElement) => void;
18
18
  };
19
- export declare const DialogButtonHolder: <TParams, TData>({ auth, extraBtn, formRef, request, onOk, onClose, buttonRef, requestFieldNames, formInitialValues, preventRequestHandle, }: Pick<CcsDialogModalProps<TParams, TData>, "auth" | "onClose" | "onOk" | "extraBtn" | "request" | "requestFieldNames" | "preventRequestHandle"> & {
19
+ export declare const DialogButtonHolder: <TParams, TData>({ auth, extraBtn, formRef, request, onOk, onClose, buttonRef, requestFieldNames, formInitialValues, preventRequestHandle, }: Pick<CcsDialogModalProps<TParams, TData>, "auth" | "request" | "onClose" | "onOk" | "extraBtn" | "requestFieldNames" | "preventRequestHandle"> & {
20
20
  formRef: React.RefObject<DialogFormRef<TParams>>;
21
21
  formInitialValues: FormProps['initialValues'];
22
22
  buttonRef: RefObject<DialogButtonRef>;
@@ -10,9 +10,7 @@ type PropsType<T> = Pick<CcsProTableProps<T>, 'toolbar' | 'formItems' | 'formIni
10
10
  tableOperation: ReactElement;
11
11
  /** 查询 */
12
12
  onSearch: () => void;
13
- /** header 高度改变 */
14
- onHeaderResize: () => void;
15
13
  };
16
14
  /** 操作按钮、查询,重置、列筛选、 */
17
- declare function HeadComponent<T>({ form, title, toolbar, children, expandForm, formItems, formInitValues, formItemLabelWidth, tableOperation, onSearch, onHeaderResize, }: PropsType<T>): import("react/jsx-runtime").JSX.Element;
15
+ declare function HeadComponent<T>({ form, title, toolbar, children, expandForm, formItems, formInitValues, formItemLabelWidth, tableOperation, onSearch, }: PropsType<T>): import("react/jsx-runtime").JSX.Element;
18
16
  export default HeadComponent;
@@ -28,18 +28,21 @@ function HeadComponent(_ref) {
28
28
  formInitValues = _ref.formInitValues,
29
29
  formItemLabelWidth = _ref.formItemLabelWidth,
30
30
  tableOperation = _ref.tableOperation,
31
- onSearch = _ref.onSearch,
32
- onHeaderResize = _ref.onHeaderResize;
31
+ onSearch = _ref.onSearch;
33
32
  var formItemsRef = useRef(null);
33
+
34
+ // 根据位置判断是否换行ref
35
+ var endItemRef = useRef(null);
36
+
34
37
  // 查询条件是否展开
35
38
  var _useState = useState(expandForm),
36
39
  _useState2 = _slicedToArray(_useState, 2),
37
40
  isExpand = _useState2[0],
38
41
  setIsExpand = _useState2[1];
39
- var _useState3 = useState('hidden'),
42
+ var _useState3 = useState(false),
40
43
  _useState4 = _slicedToArray(_useState3, 2),
41
- visible = _useState4[0],
42
- setVisible = _useState4[1];
44
+ hasMore = _useState4[0],
45
+ onToggle = _useState4[1];
43
46
  useUpdateEffect(function () {
44
47
  setIsExpand(expandForm);
45
48
  }, [expandForm]);
@@ -55,34 +58,23 @@ function HeadComponent(_ref) {
55
58
  return formItems;
56
59
  }, [formItems]);
57
60
 
58
- // 查询条件记录数
59
- var itemLen = allFormItems.length;
60
- var hasItem = itemLen > 0;
61
-
62
- // 尺寸变化重设尺寸
63
- var resizeFn = _debounce(function (hm) {
64
- setVisible(hm);
65
- onHeaderResize();
66
- }, 500);
61
+ // 判断是否有更多条件无法一行显示
62
+ var onEventMore = function onEventMore() {
63
+ var _endItemRef$current, _formItemsRef$current;
64
+ onToggle(((_endItemRef$current = endItemRef.current) === null || _endItemRef$current === void 0 ? void 0 : _endItemRef$current.getClientRects()[0].top) !== ((_formItemsRef$current = formItemsRef.current) === null || _formItemsRef$current === void 0 ? void 0 : _formItemsRef$current.getClientRects()[0].top));
65
+ };
67
66
 
68
67
  // 监听dom尺寸变化
69
- var onResize = function onResize() {
70
- var _formItemsRef$current;
71
- if (visible === 'hidden') return;
72
- var scrollHeight = ((_formItemsRef$current = formItemsRef.current) === null || _formItemsRef$current === void 0 ? void 0 : _formItemsRef$current.scrollHeight) || 0;
73
- if (scrollHeight === 0) return;
74
- var hm = scrollHeight > 40 ? 'more' : 'visible';
75
- resizeFn(hm);
68
+ var resizeFn = function resizeFn() {
69
+ onEventMore();
76
70
  };
71
+
72
+ // 监听容器尺寸变化
73
+ var onResize = _debounce(resizeFn, 500);
77
74
  useEffect(function () {
78
- var _formItemsRef$current2;
79
- var scrollHeight = ((_formItemsRef$current2 = formItemsRef.current) === null || _formItemsRef$current2 === void 0 ? void 0 : _formItemsRef$current2.scrollHeight) || 0;
80
- setVisible(scrollHeight > 40 ? 'more' : 'visible');
75
+ onEventMore();
81
76
  }, []);
82
77
 
83
- // 是否有更多
84
- var hasMore = itemLen > 1 && visible === 'more';
85
-
86
78
  // 操作按钮
87
79
  var renderSearchBtn = /*#__PURE__*/_jsxs("div", {
88
80
  style: {
@@ -172,16 +164,17 @@ function HeadComponent(_ref) {
172
164
  // 获取Input的高度
173
165
  var token = theme.useToken().token;
174
166
  var controlHeight = token.rootValue ? "".concat((token.controlHeight / token.rootValue).toFixed(3), "rem") : token.controlHeight;
167
+ var adaptationRef = useRef(null);
175
168
  return /*#__PURE__*/_jsxs(_Fragment, {
176
- children: [hasItem && /*#__PURE__*/_jsxs(_Fragment, {
169
+ children: [allFormItems.length > 0 && /*#__PURE__*/_jsxs(_Fragment, {
177
170
  children: [/*#__PURE__*/_jsx(CcsResizeObserver.Target, {
178
171
  targetRef: formItemsRef,
179
172
  onResize: onResize
180
173
  }), /*#__PURE__*/_jsx(Card, {
174
+ ref: adaptationRef,
181
175
  className: "ccs-pl-adaptation",
182
176
  style: {
183
- boxShadow: 'none',
184
- visibility: visible === 'hidden' ? 'hidden' : 'visible'
177
+ boxShadow: 'none'
185
178
  },
186
179
  styles: {
187
180
  body: {
@@ -203,7 +196,9 @@ function HeadComponent(_ref) {
203
196
  },
204
197
  className: "ccs-pl-adaptation-form",
205
198
  ref: formItemsRef,
206
- children: [renderFormItems(), isExpand && renderSearchBtn]
199
+ children: [renderFormItems(), /*#__PURE__*/_jsx("div", {
200
+ ref: endItemRef
201
+ }), isExpand && renderSearchBtn]
207
202
  }), !isExpand && /*#__PURE__*/_jsx("div", {
208
203
  style: {
209
204
  flex: '0 0 auto'
@@ -1,14 +1,9 @@
1
1
  import './index.less';
2
- import { CcsProTableProps, SearchEventType } from './table';
3
- type TableProps<T> = Omit<CcsProTableProps<T>, 'onSearchAfter' | 'parentFieldName'> & {
4
- /** 请求后格式化结果 */
5
- onSearchAfter?: (data: any, eventType?: SearchEventType) => any;
6
- };
7
- type TableTreeProps<T> = Omit<CcsProTableProps<T>, 'onSearchAfter'> & {
2
+ import { CcsProTableProps } from './table';
3
+ type TableProps<T> = Omit<CcsProTableProps<T>, 'parentFieldName'>;
4
+ type TableTreeProps<T> = CcsProTableProps<T> & {
8
5
  /** 父级值字段 */
9
6
  parentFieldName: string;
10
- /** 请求后格式化结果 */
11
- onSearchAfter?: (data: any, eventType?: SearchEventType) => any;
12
7
  };
13
8
  /**
14
9
  * 查询表格组件
@@ -24,9 +24,7 @@ var ProTable = function ProTable(props) {
24
24
  * @returns
25
25
  */
26
26
  var ProTableTree = function ProTableTree(props) {
27
- return /*#__PURE__*/_jsx(InternalProTable, _objectSpread(_objectSpread({}, props), {}, {
28
- onSearchAfter: props.onSearchAfter
29
- }));
27
+ return /*#__PURE__*/_jsx(InternalProTable, _objectSpread({}, props));
30
28
  };
31
29
  ProTable.Tree = ProTableTree;
32
30
  export default ProTable;
@@ -49,6 +49,10 @@
49
49
  &-table-content {
50
50
  position: relative;
51
51
  flex: auto;
52
+
53
+ .ant-table-title {
54
+ padding: 0 !important;
55
+ }
52
56
  }
53
57
 
54
58
  &-adaptation {
@@ -61,13 +65,14 @@
61
65
  &-adaptation-form {
62
66
  flex: 1 1 auto;
63
67
  display: flex;
68
+ justify-content: flex-end;
64
69
  flex-wrap: wrap;
65
70
  gap: 16px 10px;
66
71
  overflow: hidden;
67
72
 
68
- // &::-webkit-scrollbar {
69
- // display: none;
70
- // }
73
+ &::-webkit-scrollbar {
74
+ display: none;
75
+ }
71
76
  }
72
77
 
73
78
  .ant-form-item {
@@ -13,9 +13,6 @@ export type ShowDependType = {
13
13
  value: any;
14
14
  };
15
15
  export type SearchEventType = 'search' | 'reset' | 'reload' | 'changePage' | 'initSearch';
16
- type SearchBeforeType = ParamType & {
17
- query: ParamType;
18
- };
19
16
  export type TableColumn<RecordType = any> = (Omit<ColumnGroupType<RecordType>, 'ellipsis'> | Omit<ColumnType<RecordType>, 'ellipsis'>) & {
20
17
  /** 隐藏列 */
21
18
  hidden?: boolean;
@@ -27,10 +24,21 @@ type TableTitleType<T> = {
27
24
  data: T[];
28
25
  onClear: () => void;
29
26
  };
27
+ export type CcsRequestProps = {
28
+ pageNo?: number;
29
+ pageSize?: number;
30
+ query?: Record<string, any>;
31
+ filters?: Record<string, any>;
32
+ orderProps?: {
33
+ prop: string;
34
+ ascending: boolean;
35
+ }[];
36
+ eventType?: SearchEventType;
37
+ };
30
38
  export type CcsTableProps<T> = Omit<TableProps<T>, 'columns' | 'title'> & {
31
39
  data?: CCS.TableData<T>;
32
40
  /** request 方法 */
33
- request?: (params: any) => Promise<any>;
41
+ request?: (params: CcsRequestProps) => Promise<any>;
34
42
  /** request 额外参数 dataSource: ['data', 'result']; current: ['data', 'pageNo']; pageSize: ['data', 'pageSize']; total: ['data', 'totalNum'] */
35
43
  requestParam?: ParamType;
36
44
  /** 接口字段指定,默认: */
@@ -80,12 +88,6 @@ export type CcsProTableProps<RecordType> = Pick<PropsWithCss, 'className'> & Pro
80
88
  proRef?: CCS.TableInstanceRef<RecordType>;
81
89
  /** 显示序号 */
82
90
  showNumber?: boolean;
83
- /** 执行search 后回调函数 */
84
- searchEvent?: () => void;
85
- /** 请求前格式化参数 */
86
- onSearchBefore?: (params: SearchBeforeType, eventType?: SearchEventType) => SearchBeforeType;
87
- /** 请求后格式化结果 */
88
- onSearchAfter?: (result: any, eventType?: SearchEventType) => any;
89
91
  };
90
92
  export type TableEventType = {
91
93
  key: 'columnFilter' | 'fullScreen';
@@ -17,12 +17,12 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
17
17
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
18
18
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
19
  import CcsUtils from '@ccs-ui/utils';
20
- import { useSize, useUpdateEffect } from 'ahooks';
20
+ import { useUpdateEffect } from 'ahooks';
21
21
  import { theme as antTheme, Empty, Form } from 'antd';
22
22
  import classNames from 'classnames';
23
+ import _debounce from 'lodash.debounce';
23
24
  import React, { useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
24
- import { useAppConfig, useCcsPage } from '..';
25
- import { onDefaultFormat } from "../config";
25
+ import { CcsResizeObserver, useAppConfig, useCcsPage } from '..';
26
26
  import { useProTableFields } from "../hooks/use-app";
27
27
  import { getDataFromFields } from "../select";
28
28
  import CcsTable from "../table";
@@ -57,7 +57,6 @@ var InternalProTable = function InternalProTable(props) {
57
57
  children = props.children,
58
58
  className = props.className,
59
59
  expandForm = props.expandForm,
60
- searchEvent = props.searchEvent,
61
60
  toolbarExtra = props.toolbarExtra,
62
61
  _props$formItems = props.formItems,
63
62
  formItems = _props$formItems === void 0 ? [] : _props$formItems,
@@ -138,8 +137,6 @@ var InternalProTable = function InternalProTable(props) {
138
137
  var globalFieldNames = useProTableFields();
139
138
  // 接口字段指定
140
139
  var fieldNames = _objectSpread(_objectSpread({}, globalFieldNames), (_props$table = props.table) === null || _props$table === void 0 ? void 0 : _props$table.fieldNames);
141
- var onSearchBefore = props.onSearchBefore || onDefaultFormat;
142
- var onSearchAfter = props.onSearchAfter || onDefaultFormat;
143
140
 
144
141
  // 暗黑模式
145
142
  var isDark = theme === 'dark';
@@ -155,16 +152,6 @@ var InternalProTable = function InternalProTable(props) {
155
152
  });
156
153
  }, []);
157
154
 
158
- // 监听容器尺寸变化
159
- var size = useSize(containerRef);
160
- useEffect(function () {
161
- var _table$scroll, _tableContentRef$curr;
162
- if ((table === null || table === void 0 || (_table$scroll = table.scroll) === null || _table$scroll === void 0 ? void 0 : _table$scroll.y) === 'auto' && ((_tableContentRef$curr = tableContentRef.current) === null || _tableContentRef$curr === void 0 ? void 0 : _tableContentRef$curr.clientHeight) !== 0) {
163
- var _tableRef$current;
164
- (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 || _tableRef$current.onFixedThead();
165
- }
166
- }, [size === null || size === void 0 ? void 0 : size.height]);
167
-
168
155
  // 获取数据
169
156
  var onRequest = /*#__PURE__*/function () {
170
157
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(eventType) {
@@ -190,9 +177,7 @@ var InternalProTable = function InternalProTable(props) {
190
177
  pageValue,
191
178
  params,
192
179
  _treeRef$current,
193
- newParams,
194
180
  requestResult,
195
- newReqResult,
196
181
  dataSource,
197
182
  _pageSize,
198
183
  current,
@@ -217,9 +202,11 @@ var InternalProTable = function InternalProTable(props) {
217
202
  pageNo: pageNo,
218
203
  pageSize: pageSize
219
204
  };
220
- params = _objectSpread(_objectSpread({
221
- query: _objectSpread(_objectSpread({}, formValues), requestParam)
222
- }, pageValue), filtersRef.current); // 异步树
205
+ params = _objectSpread(_objectSpread(_objectSpread({
206
+ query: _objectSpread(_objectSpread({}, requestParam), formValues)
207
+ }, pageValue), filtersRef.current), {}, {
208
+ eventType: eventType
209
+ }); // 异步树
223
210
  if (!parentFieldName) {
224
211
  _context.next = 7;
225
212
  break;
@@ -227,29 +214,27 @@ var InternalProTable = function InternalProTable(props) {
227
214
  (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 || _treeRef$current.onRequestTree(params.query, record);
228
215
  return _context.abrupt("return");
229
216
  case 7:
230
- // onSearchBefore 请求前回传参数,可以在父组件进行修改
231
- newParams = onSearchBefore(params, eventType); // 发起请求
217
+ // 发起请求
232
218
  setData(function (d) {
233
219
  return _objectSpread(_objectSpread({}, d), {}, {
234
220
  loading: true
235
221
  });
236
222
  });
237
- _context.next = 11;
238
- return httpRequest(_objectSpread({}, newParams));
239
- case 11:
223
+ _context.next = 10;
224
+ return httpRequest(params);
225
+ case 10:
240
226
  requestResult = _context.sent;
241
227
  if (!requestResult) {
242
- _context.next = 24;
228
+ _context.next = 22;
243
229
  break;
244
230
  }
245
- // onSearchAfter 处理请求结果
246
- newReqResult = onSearchAfter(requestResult, eventType); // 获取table数据
247
- dataSource = getDataFromFields(newReqResult, fieldNames.dataSource);
248
- _pageSize = getDataFromFields(newReqResult, fieldNames.pageSize);
249
- current = getDataFromFields(newReqResult, fieldNames.current);
250
- total = getDataFromFields(newReqResult, fieldNames.total);
231
+ // 获取table数据
232
+ dataSource = getDataFromFields(requestResult, fieldNames.dataSource);
233
+ _pageSize = getDataFromFields(requestResult, fieldNames.pageSize);
234
+ current = getDataFromFields(requestResult, fieldNames.current);
235
+ total = getDataFromFields(requestResult, fieldNames.total);
251
236
  if (!(total === undefined || _pageSize === undefined || current === undefined || dataSource === undefined)) {
252
- _context.next = 21;
237
+ _context.next = 19;
253
238
  break;
254
239
  }
255
240
  setData({
@@ -260,7 +245,7 @@ var InternalProTable = function InternalProTable(props) {
260
245
  loading: false
261
246
  });
262
247
  return _context.abrupt("return");
263
- case 21:
248
+ case 19:
264
249
  // 当前页无数据,返回上一页
265
250
  if (!dataSource.length && current !== 1 && current !== undefined) {
266
251
  onRequest('reload', current - 1);
@@ -273,15 +258,15 @@ var InternalProTable = function InternalProTable(props) {
273
258
  total: total || 0
274
259
  });
275
260
  }
276
- _context.next = 25;
261
+ _context.next = 23;
277
262
  break;
278
- case 24:
263
+ case 22:
279
264
  setData(function (d) {
280
265
  return _objectSpread(_objectSpread({}, d), {}, {
281
266
  loading: false
282
267
  });
283
268
  });
284
- case 25:
269
+ case 23:
285
270
  case "end":
286
271
  return _context.stop();
287
272
  }
@@ -346,7 +331,6 @@ var InternalProTable = function InternalProTable(props) {
346
331
 
347
332
  // 查询按钮
348
333
  var _onSearch = function onSearch() {
349
- if (searchEvent) searchEvent();
350
334
  onRequest('search');
351
335
  };
352
336
 
@@ -526,8 +510,6 @@ var InternalProTable = function InternalProTable(props) {
526
510
  sticky: stickyRef.current || true,
527
511
  parentFieldName: parentFieldName,
528
512
  setData: setData,
529
- onSearchAfter: onSearchAfter,
530
- onSearchBefore: onSearchBefore,
531
513
  handlePageChange: handlePageChange
532
514
  });
533
515
  }
@@ -582,43 +564,56 @@ var InternalProTable = function InternalProTable(props) {
582
564
  style.backgroundColor = 'transparent';
583
565
  }
584
566
  };
585
- return /*#__PURE__*/_jsxs("div", {
586
- className: classNames(classPrefix, className, _defineProperty({}, 'dark-table', isDark)),
587
- style: _objectSpread(_objectSpread({}, rootStyle), {}, {
588
- overflow: (table === null || table === void 0 || (_table$scroll2 = table.scroll) === null || _table$scroll2 === void 0 ? void 0 : _table$scroll2.y) === 'auto' ? 'hidden' : 'unset'
589
- }),
590
- ref: containerRef,
591
- children: [!(!formItems.length && !toolbar) && isAuth && /*#__PURE__*/_jsx(HeadComponent, {
592
- form: form,
593
- toolbar: newToolbar,
594
- formItems: formItems,
595
- expandForm: expandForm,
596
- formInitValues: formInitValues,
597
- formItemLabelWidth: props.formItemLabelWidth,
598
- onSearch: _onSearch,
599
- onHeaderResize: function onHeaderResize() {
600
- var _tableRef$current2;
601
- return (_tableRef$current2 = tableRef.current) === null || _tableRef$current2 === void 0 ? void 0 : _tableRef$current2.onFixedThead();
602
- },
603
- title: props.title,
604
- tableOperation: (table === null || table === void 0 ? void 0 : table.hideOperation) !== true ? /*#__PURE__*/_jsx(TableOperation, {
605
- onChangeRowSize: function onChangeRowSize(e) {
606
- return setTableRowSize(e);
607
- },
608
- tableRowSize: tableRowSize,
609
- onReset: _onReset,
610
- columns: columns,
611
- tableRef: tableRef,
612
- onFullScreen: onFullScreen
613
- }) : /*#__PURE__*/_jsx(_Fragment, {}),
614
- children: newToolbarExtra
567
+
568
+ // 尺寸变化重设尺寸
569
+ var resizeFn = function resizeFn() {
570
+ var _table$scroll, _tableContentRef$curr;
571
+ if ((table === null || table === void 0 || (_table$scroll = table.scroll) === null || _table$scroll === void 0 ? void 0 : _table$scroll.y) === 'auto' && ((_tableContentRef$curr = tableContentRef.current) === null || _tableContentRef$curr === void 0 ? void 0 : _tableContentRef$curr.clientHeight) !== 0) {
572
+ var _tableRef$current;
573
+ (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 || _tableRef$current.onFixedThead();
574
+ }
575
+ };
576
+
577
+ // 监听容器尺寸变化
578
+ var onResize = _debounce(resizeFn, 500);
579
+ return /*#__PURE__*/_jsxs(_Fragment, {
580
+ children: [/*#__PURE__*/_jsx(CcsResizeObserver.Target, {
581
+ targetRef: tableContentRef,
582
+ onResize: onResize
615
583
  }), /*#__PURE__*/_jsxs("div", {
616
- className: "".concat(classPrefix, "-table-content"),
617
- style: _objectSpread(_objectSpread({}, styles === null || styles === void 0 ? void 0 : styles.table), {}, {
618
- overflow: (table === null || table === void 0 || (_table$scroll3 = table.scroll) === null || _table$scroll3 === void 0 ? void 0 : _table$scroll3.y) === 'auto' ? 'hidden' : 'unset'
584
+ className: classNames(classPrefix, className, _defineProperty({}, 'dark-table', isDark)),
585
+ style: _objectSpread(_objectSpread({}, rootStyle), {}, {
586
+ overflow: (table === null || table === void 0 || (_table$scroll2 = table.scroll) === null || _table$scroll2 === void 0 ? void 0 : _table$scroll2.y) === 'auto' ? 'hidden' : 'unset'
619
587
  }),
620
- ref: tableContentRef,
621
- children: [renderTable(), children]
588
+ ref: containerRef,
589
+ children: [!(!formItems.length && !toolbar) && isAuth && /*#__PURE__*/_jsx(HeadComponent, {
590
+ form: form,
591
+ toolbar: newToolbar,
592
+ formItems: formItems,
593
+ expandForm: expandForm,
594
+ formInitValues: formInitValues,
595
+ formItemLabelWidth: props.formItemLabelWidth,
596
+ onSearch: _onSearch,
597
+ title: props.title,
598
+ tableOperation: (table === null || table === void 0 ? void 0 : table.hideOperation) !== true ? /*#__PURE__*/_jsx(TableOperation, {
599
+ onChangeRowSize: function onChangeRowSize(e) {
600
+ return setTableRowSize(e);
601
+ },
602
+ tableRowSize: tableRowSize,
603
+ onReset: _onReset,
604
+ columns: columns,
605
+ tableRef: tableRef,
606
+ onFullScreen: onFullScreen
607
+ }) : /*#__PURE__*/_jsx(_Fragment, {}),
608
+ children: newToolbarExtra
609
+ }), /*#__PURE__*/_jsxs("div", {
610
+ className: "".concat(classPrefix, "-table-content"),
611
+ style: _objectSpread(_objectSpread({}, styles === null || styles === void 0 ? void 0 : styles.table), {}, {
612
+ overflow: (table === null || table === void 0 || (_table$scroll3 = table.scroll) === null || _table$scroll3 === void 0 ? void 0 : _table$scroll3.y) === 'auto' ? 'hidden' : 'unset'
613
+ }),
614
+ ref: tableContentRef,
615
+ children: [renderTable(), children]
616
+ })]
622
617
  })]
623
618
  });
624
619
  };
@@ -9,7 +9,7 @@ export type TreeInstance<T> = {
9
9
  onRequestTree: (query: any, record: T | any) => void;
10
10
  onExpandKeys: (ids: string[]) => void;
11
11
  };
12
- type TreeTableProps<T> = Pick<CcsProTableProps<T>, 'table' | 'onSearchBefore' | 'parentFieldName' | 'onSearchAfter' | 'leafNode'> & {
12
+ type TreeTableProps<T> = Pick<CcsProTableProps<T>, 'table' | 'parentFieldName' | 'leafNode'> & {
13
13
  data: CCS.TableData<T>;
14
14
  sticky: boolean | TableSticky;
15
15
  tableRowSize: TableProps['size'];
@@ -34,8 +34,6 @@ var TableTree = function TableTree(props) {
34
34
  tableContentRef = props.tableContentRef,
35
35
  parentFieldName = props.parentFieldName,
36
36
  handlePageChange = props.handlePageChange,
37
- onSearchAfter = props.onSearchAfter,
38
- onSearchBefore = props.onSearchBefore,
39
37
  setData = props.setData;
40
38
  // async tree expand key
41
39
  var _useState = useState([]),
@@ -60,9 +58,7 @@ var TableTree = function TableTree(props) {
60
58
  var query,
61
59
  record,
62
60
  params,
63
- newParams,
64
61
  requestResult,
65
- newReqResult,
66
62
  dataSource,
67
63
  _args = arguments;
68
64
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -75,8 +71,7 @@ var TableTree = function TableTree(props) {
75
71
  params[parentFieldName] = record[rowKey];
76
72
  }
77
73
 
78
- // onSearchBefore 请求前回传参数,可以在父组件进行修改
79
- newParams = onSearchBefore(params); // 发起请求
74
+ // 发起请求
80
75
  setData(function (d) {
81
76
  return _objectSpread(_objectSpread({}, d), {}, {
82
77
  loading: true
@@ -84,20 +79,19 @@ var TableTree = function TableTree(props) {
84
79
  });
85
80
  _context.t0 = httpRequest;
86
81
  if (!_context.t0) {
87
- _context.next = 11;
82
+ _context.next = 10;
88
83
  break;
89
84
  }
90
- _context.next = 10;
91
- return httpRequest(_objectSpread({}, newParams));
92
- case 10:
85
+ _context.next = 9;
86
+ return httpRequest(params);
87
+ case 9:
93
88
  _context.t0 = _context.sent;
94
- case 11:
89
+ case 10:
95
90
  requestResult = _context.t0;
96
91
  // 请求结果
97
92
  if (requestResult) {
98
- // onSearchAfter 处理请求结果
99
- newReqResult = onSearchAfter(requestResult); // 获取table数据
100
- dataSource = getDataFromFields(newReqResult, fieldNames.dataSource); // 判断非叶子节点,添加children
93
+ // 获取table数据
94
+ dataSource = getDataFromFields(requestResult, fieldNames.dataSource); // 判断非叶子节点,添加children
101
95
  if (leafNode && dataSource && Array.isArray(dataSource)) {
102
96
  dataSource.forEach(function (d) {
103
97
  if (typeof leafNode === 'string' && !d[leafNode]) {
@@ -132,7 +126,7 @@ var TableTree = function TableTree(props) {
132
126
  });
133
127
  });
134
128
  }
135
- case 13:
129
+ case 12:
136
130
  case "end":
137
131
  return _context.stop();
138
132
  }
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  type Size = {
3
3
  width: number;
4
4
  height: number;
@@ -9,7 +9,7 @@ type PropsType = {
9
9
  };
10
10
  declare function ResizeObserver({ onResize }: Omit<PropsType, 'targetRef'>): import("react/jsx-runtime").JSX.Element;
11
11
  declare namespace ResizeObserver {
12
- var Target: typeof ResizeObserverTarget;
12
+ var Target: React.MemoExoticComponent<typeof ResizeObserverTarget>;
13
13
  }
14
14
  declare function ResizeObserverTarget({ targetRef, onResize }: PropsType): null;
15
15
  export default ResizeObserver;
@@ -1,5 +1,5 @@
1
1
  import { useSize } from 'ahooks';
2
- import { useEffect, useRef } from 'react';
2
+ import React, { useEffect, useRef } from 'react';
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  function ResizeObserver(_ref) {
5
5
  var onResize = _ref.onResize;
@@ -33,5 +33,5 @@ function ResizeObserverTarget(_ref2) {
33
33
  }, [size === null || size === void 0 ? void 0 : size.height, size === null || size === void 0 ? void 0 : size.width]);
34
34
  return null;
35
35
  }
36
- ResizeObserver.Target = ResizeObserverTarget;
36
+ ResizeObserver.Target = /*#__PURE__*/React.memo(ResizeObserverTarget);
37
37
  export default ResizeObserver;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { CcsProTableProps, CcsTableProps } from '../pro-table/table';
3
3
  import './index.less';
4
- type TableProps<T> = Omit<CcsTableProps<T>, 'request' | 'requestParam' | 'title'> & Pick<CcsProTableProps<T>, 'showNumber'> & {
4
+ type TableProps<T> = Omit<CcsTableProps<T>, 'request' | 'title'> & Pick<CcsProTableProps<T>, 'showNumber'> & {
5
5
  title?: any;
6
6
  tableRef?: React.MutableRefObject<TableRefType | undefined>;
7
7
  tableContentRef: React.RefObject<HTMLDivElement>;
package/es/table/index.js CHANGED
@@ -79,34 +79,41 @@ var CustomTable = function CustomTable(props) {
79
79
  }
80
80
  }
81
81
  if (!tableTarget) return;
82
- var tableBody = tableTarget.getElementsByClassName('ant-table-body')[0];
83
- if (!tableBody) return;
84
- var headerHeight = 0,
85
- pageHeight = 0,
86
- footerHeight = 0,
87
- summaryHeight = 0;
82
+
83
+ // 容器最大高度
84
+ var maxHeight = (_tableContentRef$curr = tableContentRef.current) === null || _tableContentRef$curr === void 0 ? void 0 : _tableContentRef$curr.clientHeight;
85
+
86
+ // 计算所有dom高度
87
+ var tableEle = tableTarget.getElementsByClassName('ant-table')[0];
88
+ var childHeights = [];
89
+ var antTablebody = undefined;
90
+ tableEle.childNodes.forEach(function (e) {
91
+ if (e.classList.contains('ant-table-container')) {
92
+ e.childNodes.forEach(function (node) {
93
+ if (node.classList.contains('ant-table-body')) {
94
+ antTablebody = node;
95
+ } else {
96
+ childHeights.push(node.clientHeight || 0);
97
+ }
98
+ });
99
+ } else {
100
+ childHeights.push(e.clientHeight || 0);
101
+ }
102
+ });
103
+
104
+ // 分页高度
88
105
  var _pagination = tableTarget.getElementsByClassName('ant-pagination');
89
106
  if (_pagination && _pagination.length > 0) {
90
- pageHeight = _pagination[0].clientHeight;
91
- }
92
- var header = tableTarget.getElementsByClassName('ant-table-header');
93
- var footer = tableTarget.getElementsByClassName('ant-table-footer');
94
- var summary = tableTarget.getElementsByClassName('ant-table-summary');
95
- if (footer && footer.length > 0) {
96
- footerHeight = footer[0].clientHeight;
97
- }
98
- if (header && header.length > 0) {
99
- headerHeight = header[0].clientHeight;
100
- }
101
- if (summary && summary.length > 0) {
102
- summaryHeight = summary[0].clientHeight;
107
+ childHeights.push(_pagination[0].clientHeight);
103
108
  }
104
109
 
105
- // 计算table数据区高度
106
- var scrollHeight = (((_tableContentRef$curr = tableContentRef.current) === null || _tableContentRef$curr === void 0 ? void 0 : _tableContentRef$curr.clientHeight) || 0) - headerHeight - pageHeight - footerHeight - summaryHeight;
107
-
108
- // 固定tbody高度
109
- tableBody.style.height = "".concat(scrollHeight, "px");
110
+ // 计算body滚动高度
111
+ if (antTablebody) {
112
+ var scrollHeight = maxHeight - childHeights.reduce(function (c, s) {
113
+ return c + s;
114
+ }, 0);
115
+ antTablebody.style.height = "".concat(scrollHeight, "px");
116
+ }
110
117
  }
111
118
  }, {
112
119
  wait: 500,
@@ -133,12 +133,16 @@
133
133
  .ccs-tabs-auto-height {
134
134
  flex: 1 1 auto;
135
135
  overflow: hidden;
136
+
136
137
  > .ant-tabs-content-holder {
137
138
  height: 100%;
139
+
138
140
  > .ant-tabs-content {
139
141
  height: 100%;
142
+
140
143
  > div {
141
144
  height: 100%;
145
+
142
146
  > .ccs-pl {
143
147
  height: 100%;
144
148
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ccs-ui/rc-pro",
3
- "version": "2.3.6-beta-7",
3
+ "version": "2.3.6-beta-8",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "author": {