@zat-design/sisyphus-react 3.7.1 → 3.7.2
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/es/ProEditTable/components/RenderField/index.js +64 -47
- package/es/ProEditTable/utils/getDefaultProps.d.ts +1 -0
- package/es/ProEditTable/utils/getDefaultProps.js +31 -0
- package/es/ProForm/components/combination/Group/utils.js +8 -2
- package/es/ProForm/components/render/Render.js +12 -23
- package/es/ProForm/components/render/RenderFields.js +3 -1
- package/es/ProForm/components/render/propsType.d.ts +2 -2
- package/es/ProForm/utils/getDefaultProps.d.ts +1 -0
- package/es/ProForm/utils/getDefaultProps.js +31 -0
- package/es/ProForm/utils/useRules.js +1 -1
- package/es/ProTable/components/RenderColumn/index.js +58 -30
- package/es/ProTable/index.js +14 -2
- package/es/ProTable/propsType.d.ts +1 -0
- package/lib/ProEditTable/components/RenderField/index.js +64 -47
- package/lib/ProEditTable/utils/getDefaultProps.d.ts +1 -0
- package/lib/ProEditTable/utils/getDefaultProps.js +37 -0
- package/lib/ProForm/components/combination/Group/utils.js +8 -2
- package/lib/ProForm/components/render/Render.js +12 -23
- package/lib/ProForm/components/render/RenderFields.js +3 -1
- package/lib/ProForm/components/render/propsType.d.ts +2 -2
- package/lib/ProForm/utils/getDefaultProps.d.ts +1 -0
- package/lib/ProForm/utils/getDefaultProps.js +37 -0
- package/lib/ProForm/utils/useRules.js +1 -1
- package/lib/ProTable/components/RenderColumn/index.js +58 -30
- package/lib/ProTable/index.js +13 -1
- package/lib/ProTable/propsType.d.ts +1 -0
- package/package.json +1 -1
|
@@ -24,9 +24,10 @@ import { FieldProvider } from '../../../ProForm/utils/useFieldProps';
|
|
|
24
24
|
import useRules from '../../../ProForm/utils/useRules';
|
|
25
25
|
import { isSelect, isTrim } from '../../../ProForm/utils';
|
|
26
26
|
import ConfirmWrapper from '../../../ProForm/components/render/ConfirmWrapper';
|
|
27
|
+
import { getDefaultProps } from '../../utils/getDefaultProps';
|
|
27
28
|
import ListChanged from './ListChanged';
|
|
28
29
|
var RenderField = function RenderField(_ref) {
|
|
29
|
-
var _type, _type$replace, _fieldProps2, _names, _TargetComponent4,
|
|
30
|
+
var _type, _type$replace, _fieldProps2, _names, _TargetComponent4, _componentProps2;
|
|
30
31
|
var value = _ref.text,
|
|
31
32
|
record = _ref.record,
|
|
32
33
|
index = _ref.index,
|
|
@@ -154,8 +155,14 @@ var RenderField = function RenderField(_ref) {
|
|
|
154
155
|
});
|
|
155
156
|
// 分离form item参数,防止对于参数透传(如onChange,防止重复触发)并优先级高于 _fieldProps 内部参数
|
|
156
157
|
var formItemChildProps = _objectSpread({}, _fieldProps);
|
|
158
|
+
var defaultProps = getDefaultProps({
|
|
159
|
+
name: name,
|
|
160
|
+
namePath: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
|
|
161
|
+
type: column === null || column === void 0 ? void 0 : column.type,
|
|
162
|
+
fieldProps: column === null || column === void 0 ? void 0 : column.fieldProps
|
|
163
|
+
});
|
|
157
164
|
// 允许formItem的属性放在column最外层
|
|
158
|
-
var _formItemProps = _objectSpread(_objectSpread({}, resetProps), internalRule);
|
|
165
|
+
var _formItemProps = _objectSpread(_objectSpread(_objectSpread({}, defaultProps), resetProps), internalRule);
|
|
159
166
|
if (['Switch', 'SwitchCheckbox'].includes(type)) {
|
|
160
167
|
_formItemProps.valuePropName = 'checked';
|
|
161
168
|
valueType = 'switch';
|
|
@@ -530,55 +537,65 @@ var RenderField = function RenderField(_ref) {
|
|
|
530
537
|
delete _formItemProps.rules;
|
|
531
538
|
}
|
|
532
539
|
var _className = classNames(_defineProperty({}, className, className));
|
|
533
|
-
var
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
FieldComponent = _jsx(
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
540
|
+
var getFieldItem = function getFieldItem() {
|
|
541
|
+
var _componentProps;
|
|
542
|
+
var FormItem = null;
|
|
543
|
+
var FieldComponent = /*#__PURE__*/React.isValidElement(TargetComponent) ? ( /*#__PURE__*/React.cloneElement(TargetComponent, componentProps)) : _jsx(TargetComponent, _objectSpread({}, componentProps));
|
|
544
|
+
if (originalValues) {
|
|
545
|
+
FieldComponent = _jsx(ListChanged, {
|
|
546
|
+
name: cellName,
|
|
547
|
+
names: names,
|
|
548
|
+
namesStr: [].concat(_toConsumableArray(baseName), [index, dataIndex]),
|
|
549
|
+
rowKeyPath: [].concat(_toConsumableArray(baseName), [index, 'rowKey']),
|
|
550
|
+
originalName: originalName,
|
|
551
|
+
originalNames: originalNames,
|
|
552
|
+
originalValues: originalValues,
|
|
553
|
+
form: form,
|
|
554
|
+
equalWith: equalWith,
|
|
555
|
+
type: type,
|
|
556
|
+
onChange: _onChange,
|
|
557
|
+
children: FieldComponent
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
if ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) {
|
|
561
|
+
FieldComponent = _jsx(ConfirmWrapper, _objectSpread(_objectSpread({}, componentProps), {}, {
|
|
562
|
+
children: FieldComponent
|
|
563
|
+
}));
|
|
564
|
+
}
|
|
565
|
+
FormItem = TargetComponent ? _jsx(_Form.Item, _objectSpread(_objectSpread({
|
|
566
|
+
validateFirst: true
|
|
567
|
+
}, omit(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name', 'onCell', _fieldProps.shouldUpdate ? 'shouldUpdate' : null])), {}, {
|
|
568
|
+
className: _className,
|
|
569
|
+
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
|
|
548
570
|
children: FieldComponent
|
|
571
|
+
})) : _jsx(Container, {
|
|
572
|
+
viewEmpty: viewEmpty
|
|
549
573
|
});
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
FormItem = _jsx(_Form.List, _objectSpread(_objectSpread({
|
|
567
|
-
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName
|
|
568
|
-
}, omit(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
|
|
569
|
-
children: function children(fields, operation, meta) {
|
|
570
|
-
return _jsx(TargetComponent, _objectSpread(_objectSpread({}, componentProps), {}, {
|
|
571
|
-
otherProps: otherProps,
|
|
572
|
-
fields: fields,
|
|
573
|
-
operation: operation,
|
|
574
|
-
meta: meta
|
|
575
|
-
}));
|
|
576
|
-
}
|
|
577
|
-
}));
|
|
578
|
-
}
|
|
574
|
+
if (type === 'FormList') {
|
|
575
|
+
FormItem = _jsx(_Form.List, _objectSpread(_objectSpread({
|
|
576
|
+
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName
|
|
577
|
+
}, omit(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
|
|
578
|
+
children: function children(fields, operation, meta) {
|
|
579
|
+
return _jsx(TargetComponent, _objectSpread(_objectSpread({}, componentProps), {}, {
|
|
580
|
+
otherProps: otherProps,
|
|
581
|
+
fields: fields,
|
|
582
|
+
operation: operation,
|
|
583
|
+
meta: meta
|
|
584
|
+
}));
|
|
585
|
+
}
|
|
586
|
+
}));
|
|
587
|
+
}
|
|
588
|
+
return FormItem;
|
|
589
|
+
};
|
|
579
590
|
return _jsx(FieldProvider, {
|
|
580
591
|
value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
|
|
581
|
-
children:
|
|
592
|
+
children: _formItemProps.shouldUpdate ? _jsx(_Form.Item, {
|
|
593
|
+
noStyle: true,
|
|
594
|
+
shouldUpdate: _formItemProps.shouldUpdate,
|
|
595
|
+
children: function children() {
|
|
596
|
+
return getFieldItem();
|
|
597
|
+
}
|
|
598
|
+
}) : getFieldItem()
|
|
582
599
|
});
|
|
583
600
|
};
|
|
584
601
|
export default RenderField;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getDefaultProps: (props: any) => any;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { get, isEqual } from 'lodash';
|
|
2
|
+
var defaultPropsMap = {
|
|
3
|
+
ProSelect: function ProSelect(props) {
|
|
4
|
+
var fieldProps = props.fieldProps,
|
|
5
|
+
name = props.name,
|
|
6
|
+
namePath = props.namePath;
|
|
7
|
+
var _ref = fieldProps || {},
|
|
8
|
+
filterInList = _ref.filterInList;
|
|
9
|
+
var defaultProps = {};
|
|
10
|
+
// formList场景传入列表过滤时
|
|
11
|
+
if (filterInList && namePath && name) {
|
|
12
|
+
var _namePath = namePath.slice(2, namePath.length - 1);
|
|
13
|
+
defaultProps.shouldUpdate = function (preValues, curValues) {
|
|
14
|
+
var _get, _get$map, _get2, _get2$map;
|
|
15
|
+
var preListValue = (_get = get(preValues, name)) === null || _get === void 0 ? void 0 : (_get$map = _get.map) === null || _get$map === void 0 ? void 0 : _get$map.call(_get, function (item) {
|
|
16
|
+
return get(item, _namePath);
|
|
17
|
+
});
|
|
18
|
+
var curListValue = (_get2 = get(curValues, name)) === null || _get2 === void 0 ? void 0 : (_get2$map = _get2.map) === null || _get2$map === void 0 ? void 0 : _get2$map.call(_get2, function (item) {
|
|
19
|
+
return get(item, _namePath);
|
|
20
|
+
});
|
|
21
|
+
return !isEqual(preListValue, curListValue);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return defaultProps;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export var getDefaultProps = function getDefaultProps(props) {
|
|
28
|
+
var _defaultPropsMap$type;
|
|
29
|
+
var type = props.type;
|
|
30
|
+
return (_defaultPropsMap$type = defaultPropsMap[type]) === null || _defaultPropsMap$type === void 0 ? void 0 : _defaultPropsMap$type.call(defaultPropsMap, props);
|
|
31
|
+
};
|
|
@@ -188,11 +188,17 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
|
188
188
|
// 响应式字段改变后的回调
|
|
189
189
|
var changedCallback = function changedCallback(lastDependency, current) {
|
|
190
190
|
// 清值防抖 多次刷新时以最后一次为准
|
|
191
|
-
if (clearNotShow !== false
|
|
191
|
+
if (clearNotShow !== false) {
|
|
192
192
|
if ((current === null || current === void 0 ? void 0 : current.show) === false) {
|
|
193
193
|
clearInterval(timerRef.current[index]);
|
|
194
194
|
timerRef.current[index] = setTimeout(function () {
|
|
195
|
-
|
|
195
|
+
if (names) {
|
|
196
|
+
form.resetFields([columnName]);
|
|
197
|
+
}
|
|
198
|
+
if (!names && (value === null || value === void 0 ? void 0 : value.length)) {
|
|
199
|
+
value[index] = null;
|
|
200
|
+
form.setFieldValue(columnName, _toConsumableArray(value));
|
|
201
|
+
}
|
|
196
202
|
}, 200);
|
|
197
203
|
} else {
|
|
198
204
|
clearInterval(timerRef.current[index]);
|
|
@@ -441,36 +441,25 @@ var Render = function Render(props) {
|
|
|
441
441
|
children: child
|
|
442
442
|
});
|
|
443
443
|
}
|
|
444
|
-
|
|
444
|
+
return _jsx(_Form.Item, _objectSpread(_objectSpread({}, omit(_otherFormItemProps, filterFormItemKey)), {}, {
|
|
445
445
|
// @ts-ignore
|
|
446
446
|
_internalItemRender: internalItemRender,
|
|
447
447
|
className: _className,
|
|
448
448
|
children: child
|
|
449
449
|
}));
|
|
450
|
-
var formItem = orgFormItem;
|
|
451
|
-
// 当存在shouldUpdate时捕获所有form变更(防止表单onchange设置form值时无法更新的问题)
|
|
452
|
-
if (_otherFormItemProps.shouldUpdate) {
|
|
453
|
-
formItem =
|
|
454
|
-
// 空标签防止气泡不显示
|
|
455
|
-
_jsx(_Fragment, {
|
|
456
|
-
children: _jsx(_Form.Item, {
|
|
457
|
-
shouldUpdate: _otherFormItemProps.shouldUpdate,
|
|
458
|
-
noStyle: true,
|
|
459
|
-
children: function children() {
|
|
460
|
-
return _jsx(_Form.Item, _objectSpread(_objectSpread({}, omit(_otherFormItemProps, filterFormItemKey)), {}, {
|
|
461
|
-
// @ts-ignore
|
|
462
|
-
_internalItemRender: internalItemRender,
|
|
463
|
-
className: _className,
|
|
464
|
-
children: child
|
|
465
|
-
}));
|
|
466
|
-
}
|
|
467
|
-
})
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
return formItem;
|
|
471
450
|
};
|
|
472
451
|
var FormItem = _jsxs(_Fragment, {
|
|
473
|
-
children: [
|
|
452
|
+
children: [_otherFormItemProps.shouldUpdate ?
|
|
453
|
+
// 空标签防止气泡不显示
|
|
454
|
+
_jsx(_Fragment, {
|
|
455
|
+
children: _jsx(_Form.Item, {
|
|
456
|
+
shouldUpdate: _otherFormItemProps.shouldUpdate,
|
|
457
|
+
noStyle: true,
|
|
458
|
+
children: function children() {
|
|
459
|
+
return renderItem();
|
|
460
|
+
}
|
|
461
|
+
})
|
|
462
|
+
}) : renderItem(), (otherProps === null || otherProps === void 0 ? void 0 : (_otherProps$names2 = otherProps.names) === null || _otherProps$names2 === void 0 ? void 0 : _otherProps$names2.length) ? otherProps.names.map(function (name) {
|
|
474
463
|
return _jsx(_Form.Item, {
|
|
475
464
|
hidden: true,
|
|
476
465
|
name: name,
|
|
@@ -5,6 +5,7 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { isBoolean, isFunction, union, isString } from 'lodash';
|
|
7
7
|
import Render from './Render';
|
|
8
|
+
import { getDefaultProps } from '../../utils/getDefaultProps';
|
|
8
9
|
import * as componentMap from '../index';
|
|
9
10
|
import { isSelect } from '../../utils';
|
|
10
11
|
import { FieldProvider } from '../../utils/useFieldProps';
|
|
@@ -76,8 +77,9 @@ var RenderFields = function RenderFields(props) {
|
|
|
76
77
|
otherFormItemProps = _objectWithoutProperties(column, _excluded);
|
|
77
78
|
var component = column.component;
|
|
78
79
|
var _isView = typeof column.isView === 'boolean' ? column.isView : isView;
|
|
80
|
+
var defaultProps = getDefaultProps(column);
|
|
79
81
|
// 允许formItem的属性放在column最外层 并优先级高于 formItemProps 内部参数
|
|
80
|
-
var _formItemProps = _objectSpread(_objectSpread(_objectSpread({}, formItemProps), otherFormItemProps), {}, {
|
|
82
|
+
var _formItemProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultProps), formItemProps), otherFormItemProps), {}, {
|
|
81
83
|
required: columnRequired !== null && columnRequired !== void 0 ? columnRequired : required,
|
|
82
84
|
clearNotShow: clearNotShow
|
|
83
85
|
});
|
|
@@ -34,11 +34,11 @@ import { DistributiveOmit } from '../../propsType';
|
|
|
34
34
|
export type ComponentMap = keyof typeof componentMap;
|
|
35
35
|
type ValidateKey = keyof typeof validate;
|
|
36
36
|
type RegExpKey = keyof typeof regExp;
|
|
37
|
-
interface ExtendType {
|
|
37
|
+
interface ExtendType extends Omit<RuleObject, 'type'> {
|
|
38
38
|
type?: ValidateKey | RegExpKey;
|
|
39
39
|
message?: string;
|
|
40
40
|
}
|
|
41
|
-
export type ProRule =
|
|
41
|
+
export type ProRule = ExtendType;
|
|
42
42
|
/**
|
|
43
43
|
* percent 百分比 permillage 千分比 amount 金额
|
|
44
44
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getDefaultProps: (props: any) => any;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { get, isEqual } from 'lodash';
|
|
2
|
+
var defaultPropsMap = {
|
|
3
|
+
ProSelect: function ProSelect(props) {
|
|
4
|
+
var fieldProps = props.fieldProps,
|
|
5
|
+
name = props.name,
|
|
6
|
+
namePath = props.namePath;
|
|
7
|
+
var _ref = fieldProps || {},
|
|
8
|
+
filterInList = _ref.filterInList;
|
|
9
|
+
var defaultProps = {};
|
|
10
|
+
// formList场景传入列表过滤时
|
|
11
|
+
if (filterInList && namePath && name) {
|
|
12
|
+
var _listName = namePath.slice(0, -1);
|
|
13
|
+
var _namePath = name.slice(1);
|
|
14
|
+
defaultProps.shouldUpdate = function (preValues, curValues) {
|
|
15
|
+
var preListValue = get(preValues, _listName).map(function (item) {
|
|
16
|
+
return get(item, _namePath);
|
|
17
|
+
});
|
|
18
|
+
var curListValue = get(curValues, _listName).map(function (item) {
|
|
19
|
+
return get(item, _namePath);
|
|
20
|
+
});
|
|
21
|
+
return !isEqual(preListValue, curListValue);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return defaultProps;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export var getDefaultProps = function getDefaultProps(props) {
|
|
28
|
+
var _defaultPropsMap$type;
|
|
29
|
+
var type = props.type;
|
|
30
|
+
return (_defaultPropsMap$type = defaultPropsMap[type]) === null || _defaultPropsMap$type === void 0 ? void 0 : _defaultPropsMap$type.call(defaultPropsMap, props);
|
|
31
|
+
};
|
|
@@ -14,7 +14,7 @@ var useRules = function useRules(props) {
|
|
|
14
14
|
type = props.type;
|
|
15
15
|
var _label = isString(label) ? label : '';
|
|
16
16
|
var requiredRule = Array.isArray(rules) && (rules === null || rules === void 0 ? void 0 : rules.find(function (rule) {
|
|
17
|
-
return
|
|
17
|
+
return rule.required === true;
|
|
18
18
|
}));
|
|
19
19
|
var allRequired = required === true || Array.isArray(required) && required.every(function (item) {
|
|
20
20
|
return item === true;
|
|
@@ -90,42 +90,70 @@ var RenderColumn = function RenderColumn(props) {
|
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
if (ellipsis) {
|
|
93
|
-
var
|
|
94
|
-
var
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
93
|
+
var getPadding = function getPadding(el) {
|
|
94
|
+
var style = window.getComputedStyle(el, null);
|
|
95
|
+
var paddingLeft = Number.parseInt(style.paddingLeft, 10) || 0;
|
|
96
|
+
var paddingRight = Number.parseInt(style.paddingRight, 10) || 0;
|
|
97
|
+
var paddingTop = Number.parseInt(style.paddingTop, 10) || 0;
|
|
98
|
+
var paddingBottom = Number.parseInt(style.paddingBottom, 10) || 0;
|
|
99
|
+
return {
|
|
100
|
+
pLeft: paddingLeft,
|
|
101
|
+
pRight: paddingRight,
|
|
102
|
+
pTop: paddingTop,
|
|
103
|
+
pBottom: paddingBottom
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
var checkEllipsis = function checkEllipsis(box) {
|
|
107
|
+
var range = document.createRange();
|
|
108
|
+
range.setStart(box, 0);
|
|
109
|
+
range.setEnd(box, box.childNodes.length);
|
|
110
|
+
var rangeWidth = range.getBoundingClientRect().width;
|
|
111
|
+
var rangeHeight = range.getBoundingClientRect().height;
|
|
112
|
+
var contentWidth = rangeWidth - Math.floor(rangeWidth);
|
|
113
|
+
var _getPadding = getPadding(box),
|
|
114
|
+
pLeft = _getPadding.pLeft,
|
|
115
|
+
pRight = _getPadding.pRight,
|
|
116
|
+
pTop = _getPadding.pTop,
|
|
117
|
+
pBottom = _getPadding.pBottom;
|
|
118
|
+
var horizontalPadding = pLeft + pRight;
|
|
119
|
+
var verticalPadding = pTop + pBottom;
|
|
120
|
+
if (rangeWidth + horizontalPadding > box.clientWidth) {
|
|
121
|
+
return true;
|
|
108
122
|
}
|
|
123
|
+
return false;
|
|
109
124
|
};
|
|
110
|
-
var
|
|
125
|
+
var handleMouseOver = function handleMouseOver(e) {
|
|
111
126
|
setState({
|
|
112
|
-
tooltip:
|
|
127
|
+
tooltip: checkEllipsis(e.target)
|
|
113
128
|
});
|
|
114
129
|
};
|
|
115
|
-
var
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
130
|
+
var tooltipProps = _objectSpread({
|
|
131
|
+
getPopupContainer: function getPopupContainer(triggerNode) {
|
|
132
|
+
return triggerNode.parentNode;
|
|
133
|
+
}
|
|
134
|
+
}, toolTipProps);
|
|
135
|
+
if (!value) {
|
|
136
|
+
return '-';
|
|
137
|
+
}
|
|
138
|
+
return _jsx(_Tooltip, _objectSpread(_objectSpread({
|
|
139
|
+
title: value,
|
|
140
|
+
onOpenChange: function onOpenChange(open) {
|
|
141
|
+
setState({
|
|
142
|
+
tooltip: false
|
|
143
|
+
});
|
|
121
144
|
},
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
145
|
+
open: tooltip
|
|
146
|
+
}, tooltipProps), {}, {
|
|
147
|
+
children: _jsx(Text, {
|
|
148
|
+
style: {
|
|
149
|
+
width: width
|
|
150
|
+
},
|
|
151
|
+
ellipsis: true,
|
|
152
|
+
onMouseOver: handleMouseOver,
|
|
153
|
+
onFocus: handleMouseOver,
|
|
154
|
+
children: node
|
|
155
|
+
})
|
|
156
|
+
}));
|
|
129
157
|
}
|
|
130
158
|
return value || value === 0 ? node : '-';
|
|
131
159
|
};
|
package/es/ProTable/index.js
CHANGED
|
@@ -9,7 +9,7 @@ var _excluded = ["tableId", "headerRender", "footerRender", "quickConfig", "stri
|
|
|
9
9
|
_excluded2 = ["resizeColumn", "columnConfig", "cacheTime", "storage"];
|
|
10
10
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
11
|
import { useEffect, useMemo, useState, createContext } from 'react';
|
|
12
|
-
import { get, keyBy, assign, isObject } from 'lodash';
|
|
12
|
+
import { get, keyBy, assign, isObject, isFunction, isBoolean } from 'lodash';
|
|
13
13
|
import { useDebounceEffect, useDeepCompareEffect, useSetState } from 'ahooks';
|
|
14
14
|
import classnames from 'classnames';
|
|
15
15
|
import { useProConfig } from '../index';
|
|
@@ -192,6 +192,18 @@ function ProTable(props) {
|
|
|
192
192
|
});
|
|
193
193
|
return newColumns;
|
|
194
194
|
}, [curColumns, handleResize]);
|
|
195
|
+
var _columns = useMemo(function () {
|
|
196
|
+
return columns === null || columns === void 0 ? void 0 : columns.filter(function (item, index) {
|
|
197
|
+
var show = item.show;
|
|
198
|
+
if (isBoolean(show)) {
|
|
199
|
+
return show;
|
|
200
|
+
}
|
|
201
|
+
if (isFunction(show)) {
|
|
202
|
+
return show();
|
|
203
|
+
}
|
|
204
|
+
return true;
|
|
205
|
+
});
|
|
206
|
+
}, [columns]);
|
|
195
207
|
var handleColumnConfig = /*#__PURE__*/function () {
|
|
196
208
|
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(checkList) {
|
|
197
209
|
var newColumns, _columnConfig$onColum, catchColumns;
|
|
@@ -361,7 +373,7 @@ function ProTable(props) {
|
|
|
361
373
|
tableProps: {
|
|
362
374
|
value: _dataSource,
|
|
363
375
|
headerRender: headerRender,
|
|
364
|
-
columns:
|
|
376
|
+
columns: _columns,
|
|
365
377
|
renderRowSelection: renderRowSelection,
|
|
366
378
|
rowClassName: _rowClassName,
|
|
367
379
|
disabled: disabled,
|
|
@@ -40,6 +40,7 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
|
|
|
40
40
|
};
|
|
41
41
|
toolTipProps?: TooltipProps & React.RefAttributes<unknown>;
|
|
42
42
|
transform?: (value: any, record?: any) => string[];
|
|
43
|
+
show?: boolean | (() => boolean);
|
|
43
44
|
}
|
|
44
45
|
export interface CreateTreeFromArrayOptions {
|
|
45
46
|
itemKey?: string;
|
|
@@ -28,12 +28,13 @@ var _useFieldProps = require("../../../ProForm/utils/useFieldProps");
|
|
|
28
28
|
var _useRules = _interopRequireDefault(require("../../../ProForm/utils/useRules"));
|
|
29
29
|
var _utils = require("../../../ProForm/utils");
|
|
30
30
|
var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
|
|
31
|
+
var _getDefaultProps = require("../../utils/getDefaultProps");
|
|
31
32
|
var _ListChanged = _interopRequireDefault(require("./ListChanged"));
|
|
32
33
|
var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm"];
|
|
33
34
|
/* eslint-disable prefer-destructuring */
|
|
34
35
|
/* eslint-disable prefer-const */
|
|
35
36
|
var RenderField = function RenderField(_ref) {
|
|
36
|
-
var _type, _type$replace, _fieldProps2, _names, _TargetComponent4,
|
|
37
|
+
var _type, _type$replace, _fieldProps2, _names, _TargetComponent4, _componentProps2;
|
|
37
38
|
var value = _ref.text,
|
|
38
39
|
record = _ref.record,
|
|
39
40
|
index = _ref.index,
|
|
@@ -161,8 +162,14 @@ var RenderField = function RenderField(_ref) {
|
|
|
161
162
|
});
|
|
162
163
|
// 分离form item参数,防止对于参数透传(如onChange,防止重复触发)并优先级高于 _fieldProps 内部参数
|
|
163
164
|
var formItemChildProps = (0, _objectSpread2.default)({}, _fieldProps);
|
|
165
|
+
var defaultProps = (0, _getDefaultProps.getDefaultProps)({
|
|
166
|
+
name: name,
|
|
167
|
+
namePath: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
|
|
168
|
+
type: column === null || column === void 0 ? void 0 : column.type,
|
|
169
|
+
fieldProps: column === null || column === void 0 ? void 0 : column.fieldProps
|
|
170
|
+
});
|
|
164
171
|
// 允许formItem的属性放在column最外层
|
|
165
|
-
var _formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, resetProps), internalRule);
|
|
172
|
+
var _formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultProps), resetProps), internalRule);
|
|
166
173
|
if (['Switch', 'SwitchCheckbox'].includes(type)) {
|
|
167
174
|
_formItemProps.valuePropName = 'checked';
|
|
168
175
|
valueType = 'switch';
|
|
@@ -537,55 +544,65 @@ var RenderField = function RenderField(_ref) {
|
|
|
537
544
|
delete _formItemProps.rules;
|
|
538
545
|
}
|
|
539
546
|
var _className = (0, _classnames.default)((0, _defineProperty2.default)({}, className, className));
|
|
540
|
-
var
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
FieldComponent = (0, _jsxRuntime.jsx)(
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
547
|
+
var getFieldItem = function getFieldItem() {
|
|
548
|
+
var _componentProps;
|
|
549
|
+
var FormItem = null;
|
|
550
|
+
var FieldComponent = /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps));
|
|
551
|
+
if (originalValues) {
|
|
552
|
+
FieldComponent = (0, _jsxRuntime.jsx)(_ListChanged.default, {
|
|
553
|
+
name: cellName,
|
|
554
|
+
names: names,
|
|
555
|
+
namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
|
|
556
|
+
rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
|
|
557
|
+
originalName: originalName,
|
|
558
|
+
originalNames: originalNames,
|
|
559
|
+
originalValues: originalValues,
|
|
560
|
+
form: form,
|
|
561
|
+
equalWith: equalWith,
|
|
562
|
+
type: type,
|
|
563
|
+
onChange: _onChange,
|
|
564
|
+
children: FieldComponent
|
|
565
|
+
});
|
|
566
|
+
}
|
|
567
|
+
if ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) {
|
|
568
|
+
FieldComponent = (0, _jsxRuntime.jsx)(_ConfirmWrapper.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
|
|
569
|
+
children: FieldComponent
|
|
570
|
+
}));
|
|
571
|
+
}
|
|
572
|
+
FormItem = TargetComponent ? (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
573
|
+
validateFirst: true
|
|
574
|
+
}, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name', 'onCell', _fieldProps.shouldUpdate ? 'shouldUpdate' : null])), {}, {
|
|
575
|
+
className: _className,
|
|
576
|
+
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
|
|
555
577
|
children: FieldComponent
|
|
578
|
+
})) : (0, _jsxRuntime.jsx)(_Container.default, {
|
|
579
|
+
viewEmpty: viewEmpty
|
|
556
580
|
});
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
FormItem = (0, _jsxRuntime.jsx)(_antd.Form.List, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
574
|
-
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName
|
|
575
|
-
}, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
|
|
576
|
-
children: function children(fields, operation, meta) {
|
|
577
|
-
return (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
|
|
578
|
-
otherProps: otherProps,
|
|
579
|
-
fields: fields,
|
|
580
|
-
operation: operation,
|
|
581
|
-
meta: meta
|
|
582
|
-
}));
|
|
583
|
-
}
|
|
584
|
-
}));
|
|
585
|
-
}
|
|
581
|
+
if (type === 'FormList') {
|
|
582
|
+
FormItem = (0, _jsxRuntime.jsx)(_antd.Form.List, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
583
|
+
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName
|
|
584
|
+
}, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
|
|
585
|
+
children: function children(fields, operation, meta) {
|
|
586
|
+
return (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
|
|
587
|
+
otherProps: otherProps,
|
|
588
|
+
fields: fields,
|
|
589
|
+
operation: operation,
|
|
590
|
+
meta: meta
|
|
591
|
+
}));
|
|
592
|
+
}
|
|
593
|
+
}));
|
|
594
|
+
}
|
|
595
|
+
return FormItem;
|
|
596
|
+
};
|
|
586
597
|
return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
|
|
587
598
|
value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
|
|
588
|
-
children:
|
|
599
|
+
children: _formItemProps.shouldUpdate ? (0, _jsxRuntime.jsx)(_antd.Form.Item, {
|
|
600
|
+
noStyle: true,
|
|
601
|
+
shouldUpdate: _formItemProps.shouldUpdate,
|
|
602
|
+
children: function children() {
|
|
603
|
+
return getFieldItem();
|
|
604
|
+
}
|
|
605
|
+
}) : getFieldItem()
|
|
589
606
|
});
|
|
590
607
|
};
|
|
591
608
|
var _default = exports.default = RenderField;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getDefaultProps: (props: any) => any;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getDefaultProps = void 0;
|
|
7
|
+
var _lodash = require("lodash");
|
|
8
|
+
var defaultPropsMap = {
|
|
9
|
+
ProSelect: function ProSelect(props) {
|
|
10
|
+
var fieldProps = props.fieldProps,
|
|
11
|
+
name = props.name,
|
|
12
|
+
namePath = props.namePath;
|
|
13
|
+
var _ref = fieldProps || {},
|
|
14
|
+
filterInList = _ref.filterInList;
|
|
15
|
+
var defaultProps = {};
|
|
16
|
+
// formList场景传入列表过滤时
|
|
17
|
+
if (filterInList && namePath && name) {
|
|
18
|
+
var _namePath = namePath.slice(2, namePath.length - 1);
|
|
19
|
+
defaultProps.shouldUpdate = function (preValues, curValues) {
|
|
20
|
+
var _get, _get$map, _get2, _get2$map;
|
|
21
|
+
var preListValue = (_get = (0, _lodash.get)(preValues, name)) === null || _get === void 0 ? void 0 : (_get$map = _get.map) === null || _get$map === void 0 ? void 0 : _get$map.call(_get, function (item) {
|
|
22
|
+
return (0, _lodash.get)(item, _namePath);
|
|
23
|
+
});
|
|
24
|
+
var curListValue = (_get2 = (0, _lodash.get)(curValues, name)) === null || _get2 === void 0 ? void 0 : (_get2$map = _get2.map) === null || _get2$map === void 0 ? void 0 : _get2$map.call(_get2, function (item) {
|
|
25
|
+
return (0, _lodash.get)(item, _namePath);
|
|
26
|
+
});
|
|
27
|
+
return !(0, _lodash.isEqual)(preListValue, curListValue);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return defaultProps;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var getDefaultProps = exports.getDefaultProps = function getDefaultProps(props) {
|
|
34
|
+
var _defaultPropsMap$type;
|
|
35
|
+
var type = props.type;
|
|
36
|
+
return (_defaultPropsMap$type = defaultPropsMap[type]) === null || _defaultPropsMap$type === void 0 ? void 0 : _defaultPropsMap$type.call(defaultPropsMap, props);
|
|
37
|
+
};
|
|
@@ -195,11 +195,17 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
|
|
|
195
195
|
// 响应式字段改变后的回调
|
|
196
196
|
var changedCallback = function changedCallback(lastDependency, current) {
|
|
197
197
|
// 清值防抖 多次刷新时以最后一次为准
|
|
198
|
-
if (clearNotShow !== false
|
|
198
|
+
if (clearNotShow !== false) {
|
|
199
199
|
if ((current === null || current === void 0 ? void 0 : current.show) === false) {
|
|
200
200
|
clearInterval(timerRef.current[index]);
|
|
201
201
|
timerRef.current[index] = setTimeout(function () {
|
|
202
|
-
|
|
202
|
+
if (names) {
|
|
203
|
+
form.resetFields([columnName]);
|
|
204
|
+
}
|
|
205
|
+
if (!names && (value === null || value === void 0 ? void 0 : value.length)) {
|
|
206
|
+
value[index] = null;
|
|
207
|
+
form.setFieldValue(columnName, (0, _toConsumableArray2.default)(value));
|
|
208
|
+
}
|
|
203
209
|
}, 200);
|
|
204
210
|
} else {
|
|
205
211
|
clearInterval(timerRef.current[index]);
|
|
@@ -441,36 +441,25 @@ var Render = function Render(props) {
|
|
|
441
441
|
children: child
|
|
442
442
|
});
|
|
443
443
|
}
|
|
444
|
-
|
|
444
|
+
return (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.omit)(_otherFormItemProps, filterFormItemKey)), {}, {
|
|
445
445
|
// @ts-ignore
|
|
446
446
|
_internalItemRender: internalItemRender,
|
|
447
447
|
className: _className,
|
|
448
448
|
children: child
|
|
449
449
|
}));
|
|
450
|
-
var formItem = orgFormItem;
|
|
451
|
-
// 当存在shouldUpdate时捕获所有form变更(防止表单onchange设置form值时无法更新的问题)
|
|
452
|
-
if (_otherFormItemProps.shouldUpdate) {
|
|
453
|
-
formItem =
|
|
454
|
-
// 空标签防止气泡不显示
|
|
455
|
-
(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
456
|
-
children: (0, _jsxRuntime.jsx)(_antd.Form.Item, {
|
|
457
|
-
shouldUpdate: _otherFormItemProps.shouldUpdate,
|
|
458
|
-
noStyle: true,
|
|
459
|
-
children: function children() {
|
|
460
|
-
return (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.omit)(_otherFormItemProps, filterFormItemKey)), {}, {
|
|
461
|
-
// @ts-ignore
|
|
462
|
-
_internalItemRender: internalItemRender,
|
|
463
|
-
className: _className,
|
|
464
|
-
children: child
|
|
465
|
-
}));
|
|
466
|
-
}
|
|
467
|
-
})
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
return formItem;
|
|
471
450
|
};
|
|
472
451
|
var FormItem = (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
473
|
-
children: [
|
|
452
|
+
children: [_otherFormItemProps.shouldUpdate ?
|
|
453
|
+
// 空标签防止气泡不显示
|
|
454
|
+
(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
455
|
+
children: (0, _jsxRuntime.jsx)(_antd.Form.Item, {
|
|
456
|
+
shouldUpdate: _otherFormItemProps.shouldUpdate,
|
|
457
|
+
noStyle: true,
|
|
458
|
+
children: function children() {
|
|
459
|
+
return renderItem();
|
|
460
|
+
}
|
|
461
|
+
})
|
|
462
|
+
}) : renderItem(), (otherProps === null || otherProps === void 0 ? void 0 : (_otherProps$names2 = otherProps.names) === null || _otherProps$names2 === void 0 ? void 0 : _otherProps$names2.length) ? otherProps.names.map(function (name) {
|
|
474
463
|
return (0, _jsxRuntime.jsx)(_antd.Form.Item, {
|
|
475
464
|
hidden: true,
|
|
476
465
|
name: name,
|
|
@@ -12,6 +12,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
12
12
|
var _react = _interopRequireDefault(require("react"));
|
|
13
13
|
var _lodash = require("lodash");
|
|
14
14
|
var _Render = _interopRequireDefault(require("./Render"));
|
|
15
|
+
var _getDefaultProps = require("../../utils/getDefaultProps");
|
|
15
16
|
var componentMap = _interopRequireWildcard(require("../index"));
|
|
16
17
|
var _utils = require("../../utils");
|
|
17
18
|
var _useFieldProps = require("../../utils/useFieldProps");
|
|
@@ -84,8 +85,9 @@ var RenderFields = function RenderFields(props) {
|
|
|
84
85
|
otherFormItemProps = (0, _objectWithoutProperties2.default)(column, _excluded);
|
|
85
86
|
var component = column.component;
|
|
86
87
|
var _isView = typeof column.isView === 'boolean' ? column.isView : isView;
|
|
88
|
+
var defaultProps = (0, _getDefaultProps.getDefaultProps)(column);
|
|
87
89
|
// 允许formItem的属性放在column最外层 并优先级高于 formItemProps 内部参数
|
|
88
|
-
var _formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, formItemProps), otherFormItemProps), {}, {
|
|
90
|
+
var _formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultProps), formItemProps), otherFormItemProps), {}, {
|
|
89
91
|
required: columnRequired !== null && columnRequired !== void 0 ? columnRequired : required,
|
|
90
92
|
clearNotShow: clearNotShow
|
|
91
93
|
});
|
|
@@ -34,11 +34,11 @@ import { DistributiveOmit } from '../../propsType';
|
|
|
34
34
|
export type ComponentMap = keyof typeof componentMap;
|
|
35
35
|
type ValidateKey = keyof typeof validate;
|
|
36
36
|
type RegExpKey = keyof typeof regExp;
|
|
37
|
-
interface ExtendType {
|
|
37
|
+
interface ExtendType extends Omit<RuleObject, 'type'> {
|
|
38
38
|
type?: ValidateKey | RegExpKey;
|
|
39
39
|
message?: string;
|
|
40
40
|
}
|
|
41
|
-
export type ProRule =
|
|
41
|
+
export type ProRule = ExtendType;
|
|
42
42
|
/**
|
|
43
43
|
* percent 百分比 permillage 千分比 amount 金额
|
|
44
44
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getDefaultProps: (props: any) => any;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getDefaultProps = void 0;
|
|
7
|
+
var _lodash = require("lodash");
|
|
8
|
+
var defaultPropsMap = {
|
|
9
|
+
ProSelect: function ProSelect(props) {
|
|
10
|
+
var fieldProps = props.fieldProps,
|
|
11
|
+
name = props.name,
|
|
12
|
+
namePath = props.namePath;
|
|
13
|
+
var _ref = fieldProps || {},
|
|
14
|
+
filterInList = _ref.filterInList;
|
|
15
|
+
var defaultProps = {};
|
|
16
|
+
// formList场景传入列表过滤时
|
|
17
|
+
if (filterInList && namePath && name) {
|
|
18
|
+
var _listName = namePath.slice(0, -1);
|
|
19
|
+
var _namePath = name.slice(1);
|
|
20
|
+
defaultProps.shouldUpdate = function (preValues, curValues) {
|
|
21
|
+
var preListValue = (0, _lodash.get)(preValues, _listName).map(function (item) {
|
|
22
|
+
return (0, _lodash.get)(item, _namePath);
|
|
23
|
+
});
|
|
24
|
+
var curListValue = (0, _lodash.get)(curValues, _listName).map(function (item) {
|
|
25
|
+
return (0, _lodash.get)(item, _namePath);
|
|
26
|
+
});
|
|
27
|
+
return !(0, _lodash.isEqual)(preListValue, curListValue);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return defaultProps;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var getDefaultProps = exports.getDefaultProps = function getDefaultProps(props) {
|
|
34
|
+
var _defaultPropsMap$type;
|
|
35
|
+
var type = props.type;
|
|
36
|
+
return (_defaultPropsMap$type = defaultPropsMap[type]) === null || _defaultPropsMap$type === void 0 ? void 0 : _defaultPropsMap$type.call(defaultPropsMap, props);
|
|
37
|
+
};
|
|
@@ -21,7 +21,7 @@ var useRules = function useRules(props) {
|
|
|
21
21
|
type = props.type;
|
|
22
22
|
var _label = (0, _lodash.isString)(label) ? label : '';
|
|
23
23
|
var requiredRule = Array.isArray(rules) && (rules === null || rules === void 0 ? void 0 : rules.find(function (rule) {
|
|
24
|
-
return
|
|
24
|
+
return rule.required === true;
|
|
25
25
|
}));
|
|
26
26
|
var allRequired = required === true || Array.isArray(required) && required.every(function (item) {
|
|
27
27
|
return item === true;
|
|
@@ -94,42 +94,70 @@ var RenderColumn = function RenderColumn(props) {
|
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
if (ellipsis) {
|
|
97
|
-
var
|
|
98
|
-
var
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
97
|
+
var getPadding = function getPadding(el) {
|
|
98
|
+
var style = window.getComputedStyle(el, null);
|
|
99
|
+
var paddingLeft = Number.parseInt(style.paddingLeft, 10) || 0;
|
|
100
|
+
var paddingRight = Number.parseInt(style.paddingRight, 10) || 0;
|
|
101
|
+
var paddingTop = Number.parseInt(style.paddingTop, 10) || 0;
|
|
102
|
+
var paddingBottom = Number.parseInt(style.paddingBottom, 10) || 0;
|
|
103
|
+
return {
|
|
104
|
+
pLeft: paddingLeft,
|
|
105
|
+
pRight: paddingRight,
|
|
106
|
+
pTop: paddingTop,
|
|
107
|
+
pBottom: paddingBottom
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
var checkEllipsis = function checkEllipsis(box) {
|
|
111
|
+
var range = document.createRange();
|
|
112
|
+
range.setStart(box, 0);
|
|
113
|
+
range.setEnd(box, box.childNodes.length);
|
|
114
|
+
var rangeWidth = range.getBoundingClientRect().width;
|
|
115
|
+
var rangeHeight = range.getBoundingClientRect().height;
|
|
116
|
+
var contentWidth = rangeWidth - Math.floor(rangeWidth);
|
|
117
|
+
var _getPadding = getPadding(box),
|
|
118
|
+
pLeft = _getPadding.pLeft,
|
|
119
|
+
pRight = _getPadding.pRight,
|
|
120
|
+
pTop = _getPadding.pTop,
|
|
121
|
+
pBottom = _getPadding.pBottom;
|
|
122
|
+
var horizontalPadding = pLeft + pRight;
|
|
123
|
+
var verticalPadding = pTop + pBottom;
|
|
124
|
+
if (rangeWidth + horizontalPadding > box.clientWidth) {
|
|
125
|
+
return true;
|
|
112
126
|
}
|
|
127
|
+
return false;
|
|
113
128
|
};
|
|
114
|
-
var
|
|
129
|
+
var handleMouseOver = function handleMouseOver(e) {
|
|
115
130
|
setState({
|
|
116
|
-
tooltip:
|
|
131
|
+
tooltip: checkEllipsis(e.target)
|
|
117
132
|
});
|
|
118
133
|
};
|
|
119
|
-
var
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
134
|
+
var tooltipProps = (0, _objectSpread2.default)({
|
|
135
|
+
getPopupContainer: function getPopupContainer(triggerNode) {
|
|
136
|
+
return triggerNode.parentNode;
|
|
137
|
+
}
|
|
138
|
+
}, toolTipProps);
|
|
139
|
+
if (!value) {
|
|
140
|
+
return '-';
|
|
141
|
+
}
|
|
142
|
+
return (0, _jsxRuntime.jsx)(_antd.Tooltip, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
143
|
+
title: value,
|
|
144
|
+
onOpenChange: function onOpenChange(open) {
|
|
145
|
+
setState({
|
|
146
|
+
tooltip: false
|
|
147
|
+
});
|
|
125
148
|
},
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
149
|
+
open: tooltip
|
|
150
|
+
}, tooltipProps), {}, {
|
|
151
|
+
children: (0, _jsxRuntime.jsx)(Text, {
|
|
152
|
+
style: {
|
|
153
|
+
width: width
|
|
154
|
+
},
|
|
155
|
+
ellipsis: true,
|
|
156
|
+
onMouseOver: handleMouseOver,
|
|
157
|
+
onFocus: handleMouseOver,
|
|
158
|
+
children: node
|
|
159
|
+
})
|
|
160
|
+
}));
|
|
133
161
|
}
|
|
134
162
|
return value || value === 0 ? node : '-';
|
|
135
163
|
};
|
package/lib/ProTable/index.js
CHANGED
|
@@ -199,6 +199,18 @@ function ProTable(props) {
|
|
|
199
199
|
});
|
|
200
200
|
return newColumns;
|
|
201
201
|
}, [curColumns, handleResize]);
|
|
202
|
+
var _columns = (0, _react.useMemo)(function () {
|
|
203
|
+
return columns === null || columns === void 0 ? void 0 : columns.filter(function (item, index) {
|
|
204
|
+
var show = item.show;
|
|
205
|
+
if ((0, _lodash.isBoolean)(show)) {
|
|
206
|
+
return show;
|
|
207
|
+
}
|
|
208
|
+
if ((0, _lodash.isFunction)(show)) {
|
|
209
|
+
return show();
|
|
210
|
+
}
|
|
211
|
+
return true;
|
|
212
|
+
});
|
|
213
|
+
}, [columns]);
|
|
202
214
|
var handleColumnConfig = /*#__PURE__*/function () {
|
|
203
215
|
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(checkList) {
|
|
204
216
|
var newColumns, _columnConfig$onColum, catchColumns;
|
|
@@ -368,7 +380,7 @@ function ProTable(props) {
|
|
|
368
380
|
tableProps: {
|
|
369
381
|
value: _dataSource,
|
|
370
382
|
headerRender: headerRender,
|
|
371
|
-
columns:
|
|
383
|
+
columns: _columns,
|
|
372
384
|
renderRowSelection: renderRowSelection,
|
|
373
385
|
rowClassName: _rowClassName,
|
|
374
386
|
disabled: disabled,
|
|
@@ -40,6 +40,7 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
|
|
|
40
40
|
};
|
|
41
41
|
toolTipProps?: TooltipProps & React.RefAttributes<unknown>;
|
|
42
42
|
transform?: (value: any, record?: any) => string[];
|
|
43
|
+
show?: boolean | (() => boolean);
|
|
43
44
|
}
|
|
44
45
|
export interface CreateTreeFromArrayOptions {
|
|
45
46
|
itemKey?: string;
|