@teamix/pro 1.4.11 → 1.4.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/pro.css +1 -1
- package/dist/pro.js +332 -113
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/es/actions/index.scss +1 -1
- package/es/form/ProForm/index.scss +5 -0
- package/es/form/SchemaForm/index.js +12 -4
- package/es/form/SchemaForm/initializeDataSource.d.ts +3 -0
- package/es/form/SchemaForm/initializeDataSource.js +7 -0
- package/es/form/SchemaForm/initializeFormButton.js +4 -5
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/info/components/ProInfoItem/index.js +33 -4
- package/es/info/components/ProInfoItem/index.scss +18 -11
- package/es/info/components/baseInfo/index.js +4 -1
- package/es/info/components/baseInfo/index.scss +4 -1
- package/es/info/components/headerInfo/index.js +4 -1
- package/es/info/components/headerInfo/index.scss +3 -0
- package/es/info/components/tableInfo/index.js +2 -1
- package/es/info/index.js +6 -3
- package/es/info/typing.d.ts +3 -1
- package/es/table/index.js +95 -50
- package/es/table/index.scss +5 -0
- package/es/table/typing.d.ts +3 -1
- package/es/table/utils/columnRender.js +2 -1
- package/lib/actions/index.scss +1 -1
- package/lib/form/ProForm/index.scss +5 -0
- package/lib/form/SchemaForm/index.js +11 -3
- package/lib/form/SchemaForm/initializeDataSource.d.ts +3 -0
- package/lib/form/SchemaForm/initializeDataSource.js +10 -2
- package/lib/form/SchemaForm/initializeFormButton.js +3 -4
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/info/components/ProInfoItem/index.js +33 -4
- package/lib/info/components/ProInfoItem/index.scss +18 -11
- package/lib/info/components/baseInfo/index.js +4 -1
- package/lib/info/components/baseInfo/index.scss +4 -1
- package/lib/info/components/headerInfo/index.js +4 -1
- package/lib/info/components/headerInfo/index.scss +3 -0
- package/lib/info/components/tableInfo/index.js +3 -1
- package/lib/info/index.js +5 -2
- package/lib/info/typing.d.ts +3 -1
- package/lib/table/index.js +95 -49
- package/lib/table/index.scss +5 -0
- package/lib/table/typing.d.ts +3 -1
- package/lib/table/utils/columnRender.js +2 -1
- package/package.json +1 -1
package/es/actions/index.scss
CHANGED
@@ -236,6 +236,11 @@
|
|
236
236
|
}
|
237
237
|
|
238
238
|
// 按钮样式
|
239
|
+
.teamix-button-group-item.#{$form-item-cls}-layout-vertical {
|
240
|
+
> .#{$css-prefix}formily-item-label {
|
241
|
+
display: none;
|
242
|
+
}
|
243
|
+
}
|
239
244
|
.#{$css-prefix}formily-button-group {
|
240
245
|
margin-top: var(--form-element-medium-height, 32px);
|
241
246
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["
|
1
|
+
var _excluded = ["type", "name", "component", "props", "decorator", "decoratorProps", "dataSource", "reactions", "rules", "children", "items", "tooltip", "request", "data"];
|
2
2
|
|
3
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
4
4
|
|
@@ -32,7 +32,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
32
32
|
|
33
33
|
import React, { memo, useCallback, useRef, useMemo } from 'react';
|
34
34
|
import { createSchemaField } from '@formily/react';
|
35
|
-
import { isUsable } from '@teamix/utils';
|
35
|
+
import { cls, isUsable } from '@teamix/utils';
|
36
36
|
import adapterType from './adapterType';
|
37
37
|
import adapterComponent from './adapterComponent';
|
38
38
|
import adapterDecorator from './adapterDecorator';
|
@@ -134,9 +134,10 @@ export default /*#__PURE__*/memo(function (_ref) {
|
|
134
134
|
}
|
135
135
|
|
136
136
|
var _newItem2 = newItem,
|
137
|
-
component = _newItem2.component,
|
138
137
|
type = _newItem2.type,
|
139
138
|
name = _newItem2.name,
|
139
|
+
component = _newItem2.component,
|
140
|
+
props = _newItem2.props,
|
140
141
|
decorator = _newItem2.decorator,
|
141
142
|
decoratorProps = _newItem2.decoratorProps,
|
142
143
|
dataSource = _newItem2.dataSource,
|
@@ -172,7 +173,8 @@ export default /*#__PURE__*/memo(function (_ref) {
|
|
172
173
|
defaultDataSource = _initializeDataSource.dataSource,
|
173
174
|
dataSourceReactions = _initializeDataSource.reactions,
|
174
175
|
dataSourceScope = _initializeDataSource.scope,
|
175
|
-
dataSourceData = _initializeDataSource.data
|
176
|
+
dataSourceData = _initializeDataSource.data,
|
177
|
+
dataSourceProps = _initializeDataSource.props; // 初始化rules validator
|
176
178
|
|
177
179
|
|
178
180
|
var _initializeRules = initializeRules(rules, "".concat(suffix, "v")),
|
@@ -188,10 +190,16 @@ export default /*#__PURE__*/memo(function (_ref) {
|
|
188
190
|
v = _ref3[1];
|
189
191
|
|
190
192
|
schemaScopeRef.current[k] = v;
|
193
|
+
}); // 合并字段属性
|
194
|
+
|
195
|
+
var defaultProps = _objectSpread(_objectSpread(_objectSpread({}, props), dataSourceProps), {}, {
|
196
|
+
className: cls(props === null || props === void 0 ? void 0 : props.className, dataSourceProps === null || dataSourceProps === void 0 ? void 0 : dataSourceProps.className)
|
191
197
|
});
|
198
|
+
|
192
199
|
var formatParam = mapSchemaName(_objectSpread(_objectSpread({}, otherProps), {}, {
|
193
200
|
type: defaultType,
|
194
201
|
component: component,
|
202
|
+
props: defaultProps,
|
195
203
|
decorator: defaultDecorator,
|
196
204
|
decoratorProps: defaultDecoratorProps,
|
197
205
|
rules: defaultRules,
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { getTestRequestParams, getTestRequestData } from '@teamix/utils';
|
1
2
|
import { initializeRequestExpression } from '../utils';
|
2
3
|
|
3
4
|
var initializeDataSource = function initializeDataSource(dataSource, suffix) {
|
@@ -12,6 +13,12 @@ var initializeDataSource = function initializeDataSource(dataSource, suffix) {
|
|
12
13
|
scope: scope,
|
13
14
|
data: {
|
14
15
|
readOnlyOnLoading: (dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$extraConf = dataSource.extraConfig) === null || _dataSource$extraConf === void 0 ? void 0 : _dataSource$extraConf.readOnly) !== false
|
16
|
+
},
|
17
|
+
props: {
|
18
|
+
className: 'teamix-test-request',
|
19
|
+
'data-teamix-test-request': "url=".concat(dataSource === null || dataSource === void 0 ? void 0 : dataSource.url, "&formatResult=").concat(!!(dataSource === null || dataSource === void 0 ? void 0 : dataSource.formatResult)),
|
20
|
+
'data-teamix-test-params': getTestRequestParams(dataSource === null || dataSource === void 0 ? void 0 : dataSource.params),
|
21
|
+
'data-teamix-test-data': getTestRequestData('dataSource')
|
15
22
|
}
|
16
23
|
} : {
|
17
24
|
reactions: [],
|
@@ -10,7 +10,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
10
10
|
|
11
11
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
12
12
|
|
13
|
-
import { getMessage } from '@teamix/utils';
|
13
|
+
import { getMessage, cls } from '@teamix/utils';
|
14
14
|
|
15
15
|
var initializeButton = function initializeButton(item) {
|
16
16
|
var component = item.component,
|
@@ -45,15 +45,14 @@ var initialize = function initialize(item) {
|
|
45
45
|
return initializeButton(item);
|
46
46
|
}
|
47
47
|
|
48
|
-
var commonMode = _objectSpread(_objectSpread({
|
49
|
-
title: ' '
|
50
|
-
}, item), {}, {
|
48
|
+
var commonMode = _objectSpread(_objectSpread({}, item), {}, {
|
51
49
|
component: component,
|
52
50
|
props: otherProps,
|
53
51
|
decorator: 'FormButtonGroup.FormItem',
|
54
52
|
decoratorProps: _objectSpread({
|
55
53
|
inset: false,
|
56
|
-
fullness: true
|
54
|
+
fullness: true,
|
55
|
+
className: cls('teamix-button-group-item', decoratorProps === null || decoratorProps === void 0 ? void 0 : decoratorProps.className)
|
57
56
|
}, decoratorProps)
|
58
57
|
}); // 吸底模式
|
59
58
|
|
package/es/index.d.ts
CHANGED
@@ -28,5 +28,5 @@ export * from './table';
|
|
28
28
|
export * from './sidebar';
|
29
29
|
export * from './utils';
|
30
30
|
export * from './timeline';
|
31
|
-
declare const version = "1.4.
|
31
|
+
declare const version = "1.4.14";
|
32
32
|
export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProSidebar, ProTimeline, TeamixIcon, hooks, nocode, templates, utils, };
|
package/es/index.js
CHANGED
@@ -36,6 +36,6 @@ export * from './table';
|
|
36
36
|
export * from './sidebar';
|
37
37
|
export * from './utils';
|
38
38
|
export * from './timeline';
|
39
|
-
var version = '1.4.
|
39
|
+
var version = '1.4.14';
|
40
40
|
export { version, ProAction, ProCard, ProField, ProForm, ProInfo, // ProLayout,
|
41
41
|
ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProSidebar, ProTimeline, TeamixIcon, hooks, nocode, templates, utils };
|
@@ -4,7 +4,7 @@ import { usePrefixCls } from '@teamix/utils';
|
|
4
4
|
import React from 'react';
|
5
5
|
import { Ellipsis, LabelIconTip } from '../../../field';
|
6
6
|
import './index.scss';
|
7
|
-
var cls = usePrefixCls('teamix-pro-
|
7
|
+
var cls = usePrefixCls('teamix-pro-info-item');
|
8
8
|
var Row = Grid.Row,
|
9
9
|
Col = Grid.Col;
|
10
10
|
|
@@ -15,7 +15,26 @@ var ProInfoItem = function ProInfoItem(prop) {
|
|
15
15
|
headerInfoLayout = prop.headerInfoLayout,
|
16
16
|
loading = prop.loading,
|
17
17
|
tooltip = prop.tooltip,
|
18
|
-
tooltipIcon = prop.tooltipIcon
|
18
|
+
tooltipIcon = prop.tooltipIcon,
|
19
|
+
valueType = prop.valueType,
|
20
|
+
render = prop.render,
|
21
|
+
alignItems = prop.alignItems; // 判断是否需要居中
|
22
|
+
|
23
|
+
var isAlignItemsCenter = function isAlignItemsCenter() {
|
24
|
+
if (typeof render !== 'function') {
|
25
|
+
var type = render === null || render === void 0 ? void 0 : render.type;
|
26
|
+
|
27
|
+
if (valueType === 'selectGroup') {
|
28
|
+
return true;
|
29
|
+
}
|
30
|
+
|
31
|
+
if (type === 'tag' || type === 'statusIconTag' || type === 'eventLevelTag' || type === 'warningLevelTag') {
|
32
|
+
return true;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
return false;
|
37
|
+
};
|
19
38
|
|
20
39
|
if (baseInfoLayout) {
|
21
40
|
var labelCol = baseInfoLayout.labelCol,
|
@@ -24,7 +43,13 @@ var ProInfoItem = function ProInfoItem(prop) {
|
|
24
43
|
className: cls('')
|
25
44
|
}, /*#__PURE__*/React.createElement(Row, {
|
26
45
|
gutter: 10,
|
27
|
-
className: cls(
|
46
|
+
className: cls({
|
47
|
+
'base-row': true,
|
48
|
+
'base-row-center': isAlignItemsCenter()
|
49
|
+
}),
|
50
|
+
style: alignItems ? {
|
51
|
+
alignItems: alignItems
|
52
|
+
} : {}
|
28
53
|
}, /*#__PURE__*/React.createElement(Col, {
|
29
54
|
span: labelCol === null || labelCol === void 0 ? void 0 : labelCol.span,
|
30
55
|
className: cls('label')
|
@@ -48,7 +73,11 @@ var ProInfoItem = function ProInfoItem(prop) {
|
|
48
73
|
return /*#__PURE__*/React.createElement("div", {
|
49
74
|
className: cls()
|
50
75
|
}, /*#__PURE__*/React.createElement(Row, {
|
51
|
-
className: cls(
|
76
|
+
className: cls({
|
77
|
+
'header-row': true,
|
78
|
+
'header-row-center': isAlignItemsCenter()
|
79
|
+
}),
|
80
|
+
style: {}
|
52
81
|
}, /*#__PURE__*/React.createElement("div", {
|
53
82
|
className: cls('header-label')
|
54
83
|
}, /*#__PURE__*/React.createElement(LabelIconTip, {
|
@@ -14,43 +14,50 @@ $header-text-size: var(--font-size-body-1, 12px);
|
|
14
14
|
|
15
15
|
$item-padding-bottom: 8px;
|
16
16
|
|
17
|
-
.teamix-pro-
|
17
|
+
.teamix-pro-info-item {
|
18
18
|
width: 100%;
|
19
19
|
padding-bottom: $item-padding-bottom;
|
20
20
|
&-header-row {
|
21
21
|
display: flex;
|
22
|
-
align-items:
|
22
|
+
align-items: flex-start;
|
23
|
+
|
24
|
+
&-center {
|
25
|
+
align-items: center;
|
26
|
+
}
|
23
27
|
}
|
24
28
|
&-base-row {
|
25
29
|
display: flex;
|
26
|
-
align-items:
|
30
|
+
align-items: flex-start;
|
31
|
+
&-center {
|
32
|
+
align-items: center;
|
33
|
+
}
|
27
34
|
}
|
28
35
|
}
|
29
36
|
|
30
|
-
.teamix-pro-
|
37
|
+
.teamix-pro-info-item-label {
|
31
38
|
color: $label-color;
|
32
39
|
font-size: $label-size;
|
33
40
|
// font-weight: $label-weight;
|
34
41
|
display: unset;
|
35
42
|
}
|
36
43
|
|
37
|
-
.teamix-pro-
|
44
|
+
.teamix-pro-info-item-value {
|
38
45
|
color: $text-color;
|
39
46
|
font-size: $text-size;
|
40
|
-
display: unset;
|
47
|
+
//display: unset;
|
41
48
|
width: 100%;
|
42
49
|
padding-right: 20px;
|
43
50
|
}
|
44
51
|
|
45
|
-
.teamix-pro-
|
52
|
+
.teamix-pro-info-item-header-label {
|
46
53
|
color: $header-label-color;
|
47
54
|
font-size: $header-label-size;
|
48
55
|
// font-weight: $header-label-weight;
|
49
56
|
display: inline-block;
|
50
|
-
white-space:nowrap;
|
57
|
+
white-space: nowrap;
|
51
58
|
}
|
52
59
|
|
53
|
-
.teamix-pro-
|
60
|
+
.teamix-pro-info-item-header-value {
|
54
61
|
color: $header-text-color;
|
55
62
|
font-size: $header-text-size;
|
56
63
|
display: inline-block;
|
@@ -58,9 +65,9 @@ $item-padding-bottom: 8px;
|
|
58
65
|
padding-right: 20px;
|
59
66
|
}
|
60
67
|
|
61
|
-
.teamix-pro-
|
68
|
+
.teamix-pro-info-item-base-skeleton-box {
|
62
69
|
width: 100%;
|
63
|
-
height:
|
70
|
+
height: 18px;
|
64
71
|
display: flex;
|
65
72
|
align-items: center;
|
66
73
|
span {
|
@@ -78,7 +78,10 @@ var ProBaseInfo = function ProBaseInfo(props) {
|
|
78
78
|
}),
|
79
79
|
baseInfoLayout: getFormItemLayout((_item$colSpan = item === null || item === void 0 ? void 0 : item.colSpan) !== null && _item$colSpan !== void 0 ? _item$colSpan : 0),
|
80
80
|
tooltip: item.tooltip,
|
81
|
-
tooltipIcon: item.tooltipIcon
|
81
|
+
tooltipIcon: item.tooltipIcon,
|
82
|
+
render: item.render,
|
83
|
+
valueType: item.valueType,
|
84
|
+
alignItems: item.alignItems
|
82
85
|
}));
|
83
86
|
});
|
84
87
|
};
|
@@ -55,7 +55,10 @@ var ProHeaderInfo = function ProHeaderInfo(props) {
|
|
55
55
|
}),
|
56
56
|
headerInfoLayout: layout !== null && layout !== void 0 ? layout : defaultLayout,
|
57
57
|
tooltip: item.tooltip,
|
58
|
-
tooltipIcon: item.tooltipIcon
|
58
|
+
tooltipIcon: item.tooltipIcon,
|
59
|
+
render: item.render,
|
60
|
+
valueType: item.valueType,
|
61
|
+
alignItems: item.alignItems
|
59
62
|
}));
|
60
63
|
});
|
61
64
|
};
|
@@ -24,6 +24,7 @@ import { LabelIconTip } from '../../../field';
|
|
24
24
|
import InfoValueItem from '../InfoValueItem';
|
25
25
|
import { ProSkeletonRaw } from '../../..';
|
26
26
|
import { getDataIndexValue } from '../../utils';
|
27
|
+
import cloneDeep from 'lodash.clonedeep';
|
27
28
|
|
28
29
|
var ProTableInfo = function ProTableInfo(props) {
|
29
30
|
var columns = props.columns,
|
@@ -72,7 +73,7 @@ var ProTableInfo = function ProTableInfo(props) {
|
|
72
73
|
|
73
74
|
var newDataSource = useMemo(function () {
|
74
75
|
var nResult = [];
|
75
|
-
var columnsCopy =
|
76
|
+
var columnsCopy = cloneDeep(columns); // 取当前行的数据。直到取完
|
76
77
|
|
77
78
|
while (columnsCopy.length > 0) {
|
78
79
|
var filterColumns = [];
|
package/es/info/index.js
CHANGED
@@ -30,7 +30,7 @@ import ProBaseInfo from './components/baseInfo';
|
|
30
30
|
import ProInfoGroup from './components/InfoGroup';
|
31
31
|
import './index.scss';
|
32
32
|
import { ProInfoGroupContext, useActionType } from './utils';
|
33
|
-
import { doCommonRequest } from '@teamix/utils';
|
33
|
+
import { doCommonRequest, cls, getTestRequestData, getTestRequestParams } from '@teamix/utils';
|
34
34
|
import { useSize } from '@teamix/hooks';
|
35
35
|
import { ProCard } from '..';
|
36
36
|
export * from './typing';
|
@@ -162,8 +162,11 @@ var ProInfo = function ProInfo(props) {
|
|
162
162
|
|
163
163
|
return /*#__PURE__*/React.createElement("div", {
|
164
164
|
ref: ref,
|
165
|
-
|
166
|
-
|
165
|
+
style: style,
|
166
|
+
className: cls('teamix-pro-info', className, 'teamix-test-request'),
|
167
|
+
"data-teamix-test-request": "url=".concat(url, "&formatResult=").concat(!!formatResult),
|
168
|
+
"data-teamix-test-params": getTestRequestParams(params),
|
169
|
+
"data-teamix-test-data": getTestRequestData(columns)
|
167
170
|
}, /*#__PURE__*/React.createElement(ProCard, _objectSpread(_objectSpread(_objectSpread({
|
168
171
|
compacted: true,
|
169
172
|
hoveredShadow: false,
|
package/es/info/typing.d.ts
CHANGED
@@ -96,6 +96,8 @@ export interface ProInfoColumnsProps {
|
|
96
96
|
extra?: React.ReactNode;
|
97
97
|
/** 其他 ProField 配置 */
|
98
98
|
props?: any;
|
99
|
+
/** 对齐方式 **/
|
100
|
+
alignItems?: 'center' | 'flex-start' | 'flex-end' | string;
|
99
101
|
}
|
100
102
|
export declare type ProInfoActionType = {
|
101
103
|
/** 刷新Info */
|
@@ -113,7 +115,7 @@ export declare type IProProInfoItem = {
|
|
113
115
|
headerInfoLayout?: ProHeaderInfoLayoutProps;
|
114
116
|
/** loading 状态 */
|
115
117
|
loading?: boolean;
|
116
|
-
} & Pick<ProInfoColumnsProps, 'tooltip' | 'tooltipIcon'>;
|
118
|
+
} & Pick<ProInfoColumnsProps, 'tooltip' | 'tooltipIcon' | 'render' | 'valueType' | 'alignItems'>;
|
117
119
|
/** header info 定义 */
|
118
120
|
export declare type IProHeaderInfo = {
|
119
121
|
/** 布局值 */
|
package/es/table/index.js
CHANGED
@@ -36,7 +36,7 @@ import React, { useState, useEffect, useRef } from 'react';
|
|
36
36
|
import { Table, Checkbox } from '@alicloudfe/components';
|
37
37
|
import Pagination from './components/Pagination';
|
38
38
|
import genProColumnToColumn from './utils/genProColumnToColumn';
|
39
|
-
import { getGlobalConfig, useRequest, request as utilResquest, getDeepValue, getMessage, pickProps, usePrefixCls } from '@teamix/utils';
|
39
|
+
import { getGlobalConfig, useRequest, request as utilResquest, getDeepValue, getMessage, pickProps, usePrefixCls, getTestRequestData, getTestRequestParams } from '@teamix/utils';
|
40
40
|
import { ProSkeletonRaw as Skeleton } from '../skeleton';
|
41
41
|
import './index.scss';
|
42
42
|
import Layout from './components/Layout';
|
@@ -49,6 +49,7 @@ import EmptyContent from './components/EmptyContent';
|
|
49
49
|
import { ProActionGroup } from '../actions';
|
50
50
|
import classNames from 'classnames';
|
51
51
|
import ProPageContainer from '../page-container';
|
52
|
+
import debounce from 'lodash.debounce';
|
52
53
|
export * from './typing';
|
53
54
|
var cls = usePrefixCls('teamix-pro-table');
|
54
55
|
/**
|
@@ -214,7 +215,7 @@ var ProTable = function ProTable(props) {
|
|
214
215
|
var skeletonDataSource = new Array(skeletonSize).fill({});
|
215
216
|
var requestDataKey = method.toLowerCase() === 'get' ? 'params' : 'data'; // 如果使用 customRequest 的话,内置 loading
|
216
217
|
|
217
|
-
var _useState13 = useState(
|
218
|
+
var _useState13 = useState(requestWhenMount),
|
218
219
|
_useState14 = _slicedToArray(_useState13, 2),
|
219
220
|
customTableLoading = _useState14[0],
|
220
221
|
setCustomTableLoading = _useState14[1];
|
@@ -258,21 +259,45 @@ var ProTable = function ProTable(props) {
|
|
258
259
|
var autoRefreshTimerRef = useRef();
|
259
260
|
var onResize = null;
|
260
261
|
useEffect(function () {
|
262
|
+
var _propsDataFilter$sche, _propsDataFilter$sche2;
|
263
|
+
|
261
264
|
getHeaderHeight(fullscreenState);
|
265
|
+
getFooterSuctionState();
|
262
266
|
|
263
267
|
if (window.onresize) {
|
264
268
|
onResize = window.onresize;
|
265
|
-
|
266
|
-
window.onresize = function () {
|
269
|
+
window.onresize = debounce(function () {
|
267
270
|
var _onResize;
|
268
271
|
|
269
272
|
(_onResize = onResize) === null || _onResize === void 0 ? void 0 : _onResize();
|
270
|
-
|
271
|
-
|
273
|
+
|
274
|
+
if (footerSuction) {
|
275
|
+
getFooterSuctionState();
|
276
|
+
}
|
277
|
+
|
278
|
+
if (fixedTableBody) {
|
279
|
+
getHeaderHeight(fullscreenState);
|
280
|
+
}
|
281
|
+
}, 500);
|
272
282
|
} else {
|
273
|
-
window.onresize = function () {
|
274
|
-
|
275
|
-
|
283
|
+
window.onresize = debounce(function () {
|
284
|
+
if (footerSuction) {
|
285
|
+
getFooterSuctionState();
|
286
|
+
}
|
287
|
+
|
288
|
+
if (fixedTableBody) {
|
289
|
+
getHeaderHeight(fullscreenState);
|
290
|
+
}
|
291
|
+
}, 500);
|
292
|
+
} // 如果不传 dataFilter,则在这里初始化请求
|
293
|
+
|
294
|
+
|
295
|
+
var hasDataFilter = (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : (_propsDataFilter$sche = propsDataFilter.schema) === null || _propsDataFilter$sche === void 0 ? void 0 : _propsDataFilter$sche.length) && (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : (_propsDataFilter$sche2 = propsDataFilter.schema) === null || _propsDataFilter$sche2 === void 0 ? void 0 : _propsDataFilter$sche2.length) > 0;
|
296
|
+
|
297
|
+
if (requestWhenMount && !hasDataFilter) {
|
298
|
+
processDefaultFilter(propsColumns, actionRef, defaultFilterParams);
|
299
|
+
|
300
|
+
_request();
|
276
301
|
}
|
277
302
|
|
278
303
|
return function () {
|
@@ -281,6 +306,12 @@ var ProTable = function ProTable(props) {
|
|
281
306
|
} else {
|
282
307
|
window.onresize = null;
|
283
308
|
}
|
309
|
+
|
310
|
+
if (autoRefreshTimerRef.current) {
|
311
|
+
clearTimeout(autoRefreshTimerRef.current);
|
312
|
+
}
|
313
|
+
|
314
|
+
actionRef.current = undefined;
|
284
315
|
};
|
285
316
|
}, []); // 获取header高度,用作全屏吸底吸底高度计算以及固定body高度计算(滚动条在底部)
|
286
317
|
|
@@ -296,6 +327,8 @@ var ProTable = function ProTable(props) {
|
|
296
327
|
var pageContainerDom = document.querySelector('.teamix-pro-page-container-header');
|
297
328
|
var teamixNavDom = document.querySelector('.teamix-nav-console');
|
298
329
|
var footerRowSelectionDom = document.querySelector('.teamix-pro-page-container-footer');
|
330
|
+
var tableBodyDom = document.querySelector('.next-table-body');
|
331
|
+
var headerFixedTopSectionDom = document.querySelector('.teamix-pro-page-container-fixed-top');
|
299
332
|
setTimeout(function () {
|
300
333
|
var _headerDom$offsetHeig, _tableHeaderDom$offse;
|
301
334
|
|
@@ -309,11 +342,32 @@ var ProTable = function ProTable(props) {
|
|
309
342
|
|
310
343
|
// 16px 为 padding
|
311
344
|
var pageHeaderHeight = ((_pageContainerDom$off = pageContainerDom === null || pageContainerDom === void 0 ? void 0 : pageContainerDom.offsetHeight) !== null && _pageContainerDom$off !== void 0 ? _pageContainerDom$off : 0) + 16;
|
312
|
-
var teamixNavHeight = (_teamixNavDom$offsetH = teamixNavDom === null || teamixNavDom === void 0 ? void 0 : teamixNavDom.offsetHeight) !== null && _teamixNavDom$offsetH !== void 0 ? _teamixNavDom$offsetH : 0;
|
313
|
-
|
345
|
+
var teamixNavHeight = (_teamixNavDom$offsetH = teamixNavDom === null || teamixNavDom === void 0 ? void 0 : teamixNavDom.offsetHeight) !== null && _teamixNavDom$offsetH !== void 0 ? _teamixNavDom$offsetH : 0; // 1 为预留值,js无法取出精确高度,会被四舍五入
|
346
|
+
|
347
|
+
var offsetHeaderHeight = headerHeight + tableHeaderHeight + pageHeaderHeight + teamixNavHeight + footerRowSelectionHeight + 16 + (offset !== null && offset !== void 0 ? offset : 0) + 1;
|
348
|
+
var clientTableBodyHeight = document.body.clientHeight - offsetHeaderHeight;
|
349
|
+
|
350
|
+
if (tableBodyDom.clientHeight < clientTableBodyHeight) {
|
351
|
+
setFooterSuctionState(true);
|
352
|
+
} else {
|
353
|
+
setFooterSuctionState(false);
|
354
|
+
} // 如果有切换区tab,那么重新计算
|
355
|
+
|
356
|
+
|
357
|
+
if (headerFixedTopSectionDom.clientHeight) {
|
358
|
+
var _headerFixedTopSectio;
|
359
|
+
|
360
|
+
var headerFixedTopSectionHeight = (_headerFixedTopSectio = headerFixedTopSectionDom.clientHeight) !== null && _headerFixedTopSectio !== void 0 ? _headerFixedTopSectio : 0; // const clientTableBodyHeight =
|
361
|
+
// document.body.clientHeight - offsetHeaderHeight;
|
362
|
+
|
363
|
+
setHeaderHeight(headerFixedTopSectionHeight + teamixNavHeight + footerRowSelectionHeight + tableHeaderHeight + 1);
|
364
|
+
return;
|
365
|
+
}
|
366
|
+
|
367
|
+
setHeaderHeight(offsetHeaderHeight);
|
314
368
|
} else {
|
315
369
|
// 24px 为 padding
|
316
|
-
setHeaderHeight(headerHeight + tableHeaderHeight + footerRowSelectionHeight + 24 + (offset !== null && offset !== void 0 ? offset : 0));
|
370
|
+
setHeaderHeight(headerHeight + tableHeaderHeight + footerRowSelectionHeight + 24 + (offset !== null && offset !== void 0 ? offset : 0) + 1);
|
317
371
|
}
|
318
372
|
}, 50);
|
319
373
|
}; // header 区域高度。用作全屏计算吸顶吸底高度。默认不做计算
|
@@ -652,6 +706,10 @@ var ProTable = function ProTable(props) {
|
|
652
706
|
if (footerSuction) {
|
653
707
|
getFooterSuctionState();
|
654
708
|
}
|
709
|
+
|
710
|
+
if (fixedTableBody) {
|
711
|
+
getHeaderHeight(fullscreenState);
|
712
|
+
}
|
655
713
|
},
|
656
714
|
onError: function onError(error) {
|
657
715
|
setShowSkeleton(false);
|
@@ -665,6 +723,10 @@ var ProTable = function ProTable(props) {
|
|
665
723
|
if (footerSuction) {
|
666
724
|
getFooterSuctionState();
|
667
725
|
}
|
726
|
+
|
727
|
+
if (fixedTableBody) {
|
728
|
+
getHeaderHeight(fullscreenState);
|
729
|
+
}
|
668
730
|
}
|
669
731
|
}); // 请求函数
|
670
732
|
|
@@ -730,6 +792,20 @@ var ProTable = function ProTable(props) {
|
|
730
792
|
if (footerSuction) {
|
731
793
|
getFooterSuctionState();
|
732
794
|
}
|
795
|
+
|
796
|
+
if (fixedTableBody) {
|
797
|
+
getHeaderHeight(fullscreenState);
|
798
|
+
} // customRequest 中支持 autoRefresh
|
799
|
+
|
800
|
+
|
801
|
+
var time = autoRefresh ? autoRefresh(data) : false;
|
802
|
+
|
803
|
+
if (Number.isInteger(time) && time >= 1000) {
|
804
|
+
autoRefreshTimerRef.current = setTimeout(function () {
|
805
|
+
// 自动刷新不显示 loading
|
806
|
+
_request({}, true);
|
807
|
+
}, Number(time));
|
808
|
+
}
|
733
809
|
});
|
734
810
|
} else {
|
735
811
|
getData.run(requestData);
|
@@ -737,40 +813,6 @@ var ProTable = function ProTable(props) {
|
|
737
813
|
}
|
738
814
|
}
|
739
815
|
|
740
|
-
useEffect(function () {
|
741
|
-
var _propsDataFilter$sche, _propsDataFilter$sche2;
|
742
|
-
|
743
|
-
// 监听 浏览器变化 更吸底状态
|
744
|
-
if (footerSuction) {
|
745
|
-
getFooterSuctionState();
|
746
|
-
|
747
|
-
window.onresize = function () {
|
748
|
-
getFooterSuctionState();
|
749
|
-
};
|
750
|
-
} // 如果不传 dataFilter,则在这里初始化请求
|
751
|
-
|
752
|
-
|
753
|
-
var hasDataFilter = (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : (_propsDataFilter$sche = propsDataFilter.schema) === null || _propsDataFilter$sche === void 0 ? void 0 : _propsDataFilter$sche.length) && (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : (_propsDataFilter$sche2 = propsDataFilter.schema) === null || _propsDataFilter$sche2 === void 0 ? void 0 : _propsDataFilter$sche2.length) > 0;
|
754
|
-
|
755
|
-
if (requestWhenMount && !hasDataFilter) {
|
756
|
-
processDefaultFilter(propsColumns, actionRef, defaultFilterParams);
|
757
|
-
|
758
|
-
_request();
|
759
|
-
}
|
760
|
-
|
761
|
-
return function () {
|
762
|
-
if (autoRefreshTimerRef.current) {
|
763
|
-
clearTimeout(autoRefreshTimerRef.current);
|
764
|
-
}
|
765
|
-
|
766
|
-
if (window.onresize) {
|
767
|
-
window.onresize = null;
|
768
|
-
}
|
769
|
-
|
770
|
-
actionRef.current = undefined;
|
771
|
-
};
|
772
|
-
}, []);
|
773
|
-
|
774
816
|
function onSort(dataIndex, order) {
|
775
817
|
var nextSort = _defineProperty({}, dataIndex, order);
|
776
818
|
|
@@ -836,7 +878,10 @@ var ProTable = function ProTable(props) {
|
|
836
878
|
var renderTable = function renderTable(isFullScreen) {
|
837
879
|
if (propsColumns) {
|
838
880
|
return /*#__PURE__*/React.createElement("div", {
|
839
|
-
className: classNames('teamix-pro-table-container', className)
|
881
|
+
className: classNames('teamix-pro-table-container', className, 'teamix-test-request'),
|
882
|
+
"data-teamix-test-request": "url=".concat(url, "&formatResult=").concat(!!formatResult),
|
883
|
+
"data-teamix-test-params": getTestRequestParams(propsParams),
|
884
|
+
"data-teamix-test-data": getTestRequestData(propsColumns)
|
840
885
|
}, /*#__PURE__*/React.createElement(Layout, {
|
841
886
|
header: header,
|
842
887
|
mainAction: mainAction,
|
@@ -962,7 +1007,7 @@ var ProTable = function ProTable(props) {
|
|
962
1007
|
})
|
963
1008
|
}, renderRowSelection(), /*#__PURE__*/React.createElement("div", {
|
964
1009
|
className: cls('footer-right-wrapper')
|
965
|
-
}, showSkeleton ? /*#__PURE__*/React.createElement(Skeleton.Footer.Pagination, null) : /*#__PURE__*/React.createElement(Pagination, _objectSpread({
|
1010
|
+
}, showSkeleton ? /*#__PURE__*/React.createElement(Skeleton.Footer.Pagination, null) : /*#__PURE__*/React.createElement(React.Fragment, null, data.length > 0 && /*#__PURE__*/React.createElement(Pagination, _objectSpread({
|
966
1011
|
className: cls('pagination'),
|
967
1012
|
onChange: function onChange(number) {
|
968
1013
|
return onChangePagination(number);
|
@@ -984,7 +1029,7 @@ var ProTable = function ProTable(props) {
|
|
984
1029
|
onPageSizeChange: function onPageSizeChange(number) {
|
985
1030
|
return onChangePaginationSize(number);
|
986
1031
|
}
|
987
|
-
}, props.paginationProps))));
|
1032
|
+
}, props.paginationProps)))));
|
988
1033
|
} else if (!showPagination) {
|
989
1034
|
return /*#__PURE__*/React.createElement("div", {
|
990
1035
|
className: cls('footer', {
|
@@ -1007,7 +1052,7 @@ var ProTable = function ProTable(props) {
|
|
1007
1052
|
|
1008
1053
|
}),
|
1009
1054
|
ref: tableRef
|
1010
|
-
}, renderTable(isFullScreen),
|
1055
|
+
}, renderTable(isFullScreen), footerSuctionState && !fullscreenState && /*#__PURE__*/React.createElement(ProPageContainer.FixedFooter, null, renderFooter()), !(footerSuctionState && !fullscreenState) && renderFooter(), fullscreenState && renderFooter());
|
1011
1056
|
});
|
1012
1057
|
};
|
1013
1058
|
|
package/es/table/index.scss
CHANGED