@zat-design/sisyphus-react 3.7.1 → 3.7.2-beta.10
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 +91 -69
- package/es/ProEditTable/propsType.d.ts +1 -1
- package/es/ProEditTable/utils/getDefaultProps.d.ts +1 -0
- package/es/ProEditTable/utils/getDefaultProps.js +32 -0
- package/es/ProForm/components/combination/Group/component/ComRender.js +3 -1
- package/es/ProForm/components/combination/Group/utils.js +24 -3
- 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/rulesCreator.d.ts +1 -1
- package/es/ProForm/utils/rulesCreator.js +25 -22
- package/es/ProForm/utils/useRules.js +1 -1
- package/es/ProForm/utils/valueType.js +2 -2
- package/es/ProSelect/index.js +2 -1
- package/es/ProSelect/utils/index.d.ts +1 -7
- package/es/ProSelect/utils/index.js +13 -5
- 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/es/ProUpload/index.js +1 -1
- package/es/ProUpload/propsType.d.ts +5 -0
- package/lib/ProEditTable/components/RenderField/index.js +92 -70
- package/lib/ProEditTable/propsType.d.ts +1 -1
- package/lib/ProEditTable/utils/getDefaultProps.d.ts +1 -0
- package/lib/ProEditTable/utils/getDefaultProps.js +39 -0
- package/lib/ProForm/components/combination/Group/component/ComRender.js +3 -1
- package/lib/ProForm/components/combination/Group/utils.js +24 -3
- 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/rulesCreator.d.ts +1 -1
- package/lib/ProForm/utils/rulesCreator.js +25 -22
- package/lib/ProForm/utils/useRules.js +1 -1
- package/lib/ProForm/utils/valueType.js +2 -2
- package/lib/ProSelect/index.js +2 -1
- package/lib/ProSelect/utils/index.d.ts +1 -7
- package/lib/ProSelect/utils/index.js +13 -5
- 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/lib/ProUpload/index.js +1 -1
- package/lib/ProUpload/propsType.d.ts +5 -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,
|
|
@@ -78,6 +79,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
78
79
|
var _fieldProps = fieldProps || formItemProps || {};
|
|
79
80
|
var _rules = rules || [];
|
|
80
81
|
var _required = required;
|
|
82
|
+
var _valueType = valueType;
|
|
81
83
|
var _disabled = false;
|
|
82
84
|
var isCell = mode === 'cell';
|
|
83
85
|
if (isCell) {
|
|
@@ -102,11 +104,18 @@ var RenderField = function RenderField(_ref) {
|
|
|
102
104
|
};
|
|
103
105
|
// 行参数
|
|
104
106
|
var rowParams = [currentValue, rowData, options];
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
// required & rules & fieldProps & disabled & valueType 函数化处理
|
|
108
|
+
if (isFunction(required)) {
|
|
109
|
+
_required = required.apply(void 0, rowParams);
|
|
110
|
+
}
|
|
111
|
+
if (isFunction(fieldProps)) {
|
|
112
|
+
_fieldProps = fieldProps.apply(void 0, rowParams);
|
|
113
|
+
}
|
|
114
|
+
if (isFunction(rules)) {
|
|
115
|
+
_rules = rules.apply(void 0, rowParams);
|
|
116
|
+
}
|
|
117
|
+
if (isFunction(valueType)) {
|
|
118
|
+
_valueType = valueType.apply(void 0, rowParams);
|
|
110
119
|
}
|
|
111
120
|
// 获取最终的disabled
|
|
112
121
|
_disabled = getDisabled({
|
|
@@ -117,6 +126,12 @@ var RenderField = function RenderField(_ref) {
|
|
|
117
126
|
columnFieldProps: _fieldProps,
|
|
118
127
|
params: rowParams
|
|
119
128
|
});
|
|
129
|
+
if (typeof isEditable === 'function') {
|
|
130
|
+
isEditable = isEditable.apply(void 0, rowParams);
|
|
131
|
+
setTimeout(function () {
|
|
132
|
+
!isEditable && form.validateFields([cellName]);
|
|
133
|
+
}, 100);
|
|
134
|
+
}
|
|
120
135
|
// 是否只读文本
|
|
121
136
|
var isView = !isEditable || (record === null || record === void 0 ? void 0 : record['is-view']) || config.isView || virtualKey && !isEditing || getDisabled({
|
|
122
137
|
globalControl: otherProps === null || otherProps === void 0 ? void 0 : otherProps.globalControl,
|
|
@@ -130,15 +145,6 @@ var RenderField = function RenderField(_ref) {
|
|
|
130
145
|
// 只读文本时,采用当前formItem的name,单行编辑时,使用生成的虚拟的name
|
|
131
146
|
var baseName = isView ? name : namePath;
|
|
132
147
|
var TargetComponent;
|
|
133
|
-
if (isFunction(required)) {
|
|
134
|
-
_required = required.apply(void 0, rowParams);
|
|
135
|
-
}
|
|
136
|
-
if (isFunction(fieldProps)) {
|
|
137
|
-
_fieldProps = fieldProps.apply(void 0, rowParams);
|
|
138
|
-
}
|
|
139
|
-
if (isFunction(rules)) {
|
|
140
|
-
_rules = rules.apply(void 0, rowParams);
|
|
141
|
-
}
|
|
142
148
|
// 设置校验规则
|
|
143
149
|
var internalRule = useRules({
|
|
144
150
|
names: names,
|
|
@@ -154,11 +160,17 @@ var RenderField = function RenderField(_ref) {
|
|
|
154
160
|
});
|
|
155
161
|
// 分离form item参数,防止对于参数透传(如onChange,防止重复触发)并优先级高于 _fieldProps 内部参数
|
|
156
162
|
var formItemChildProps = _objectSpread({}, _fieldProps);
|
|
163
|
+
var defaultProps = getDefaultProps({
|
|
164
|
+
name: name,
|
|
165
|
+
namePath: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
|
|
166
|
+
type: column === null || column === void 0 ? void 0 : column.type,
|
|
167
|
+
fieldProps: column === null || column === void 0 ? void 0 : column.fieldProps
|
|
168
|
+
});
|
|
157
169
|
// 允许formItem的属性放在column最外层
|
|
158
|
-
var _formItemProps = _objectSpread(_objectSpread({}, resetProps), internalRule);
|
|
170
|
+
var _formItemProps = _objectSpread(_objectSpread(_objectSpread({}, defaultProps), resetProps), internalRule);
|
|
159
171
|
if (['Switch', 'SwitchCheckbox'].includes(type)) {
|
|
160
172
|
_formItemProps.valuePropName = 'checked';
|
|
161
|
-
|
|
173
|
+
_valueType = 'switch';
|
|
162
174
|
}
|
|
163
175
|
/**
|
|
164
176
|
* 针对一些特殊类型,基于formItem的normalize与getValueProps进行默认值类型转换
|
|
@@ -166,7 +178,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
166
178
|
*/
|
|
167
179
|
var defaultTransform = function defaultTransform() {
|
|
168
180
|
var types = ['DatePicker', 'RangePicker'];
|
|
169
|
-
if (!
|
|
181
|
+
if (!_valueType && types.includes(type)) {
|
|
170
182
|
var _transformMap$type;
|
|
171
183
|
return transformMap === null || transformMap === void 0 ? void 0 : (_transformMap$type = transformMap[type]) === null || _transformMap$type === void 0 ? void 0 : _transformMap$type.call(transformMap, _fieldProps || {});
|
|
172
184
|
}
|
|
@@ -179,18 +191,18 @@ var RenderField = function RenderField(_ref) {
|
|
|
179
191
|
var valueTypeTransform = useCallback(function () {
|
|
180
192
|
var _fieldProps3;
|
|
181
193
|
// 不存在valueType返回空
|
|
182
|
-
if (!
|
|
194
|
+
if (!_valueType) {
|
|
183
195
|
return {};
|
|
184
196
|
}
|
|
185
197
|
// SwitchCheckbox默认YN, 兼容已有组件
|
|
186
198
|
if (type === 'SwitchCheckbox') {
|
|
187
|
-
|
|
199
|
+
_valueType = 'switch';
|
|
188
200
|
}
|
|
189
201
|
var params = _objectSpread(_objectSpread({}, column), {}, {
|
|
190
202
|
mode: (_fieldProps3 = _fieldProps) === null || _fieldProps3 === void 0 ? void 0 : _fieldProps3.mode
|
|
191
203
|
});
|
|
192
|
-
return isFunction(valueTypeMap[
|
|
193
|
-
}, [
|
|
204
|
+
return isFunction(valueTypeMap[_valueType]) ? valueTypeMap[_valueType](params) : {};
|
|
205
|
+
}, [_valueType]);
|
|
194
206
|
if ((_names = names) === null || _names === void 0 ? void 0 : _names.length) {
|
|
195
207
|
// 支持names配置,临时生成对应的formItem,用来存储单个对应的值
|
|
196
208
|
names = names.map(function (key) {
|
|
@@ -221,7 +233,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
221
233
|
}
|
|
222
234
|
var namesStr = [].concat(_toConsumableArray(baseName), [index, dataIndex]);
|
|
223
235
|
var transform = {};
|
|
224
|
-
if (
|
|
236
|
+
if (_valueType) {
|
|
225
237
|
transform = valueTypeTransform();
|
|
226
238
|
}
|
|
227
239
|
return transformNames(_objectSpread(_objectSpread({}, _formItemProps), transform), form, names, namesStr, type);
|
|
@@ -501,7 +513,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
501
513
|
name: cellName,
|
|
502
514
|
listName: cellName,
|
|
503
515
|
viewEmpty: viewEmpty,
|
|
504
|
-
valueType:
|
|
516
|
+
valueType: _valueType,
|
|
505
517
|
isView: isView
|
|
506
518
|
}
|
|
507
519
|
});
|
|
@@ -530,55 +542,65 @@ var RenderField = function RenderField(_ref) {
|
|
|
530
542
|
delete _formItemProps.rules;
|
|
531
543
|
}
|
|
532
544
|
var _className = classNames(_defineProperty({}, className, className));
|
|
533
|
-
var
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
FieldComponent = _jsx(
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
545
|
+
var getFieldItem = function getFieldItem() {
|
|
546
|
+
var _componentProps;
|
|
547
|
+
var FormItem = null;
|
|
548
|
+
var FieldComponent = /*#__PURE__*/React.isValidElement(TargetComponent) ? ( /*#__PURE__*/React.cloneElement(TargetComponent, componentProps)) : _jsx(TargetComponent, _objectSpread({}, componentProps));
|
|
549
|
+
if (originalValues) {
|
|
550
|
+
FieldComponent = _jsx(ListChanged, {
|
|
551
|
+
name: cellName,
|
|
552
|
+
names: names,
|
|
553
|
+
namesStr: [].concat(_toConsumableArray(baseName), [index, dataIndex]),
|
|
554
|
+
rowKeyPath: [].concat(_toConsumableArray(baseName), [index, 'rowKey']),
|
|
555
|
+
originalName: originalName,
|
|
556
|
+
originalNames: originalNames,
|
|
557
|
+
originalValues: originalValues,
|
|
558
|
+
form: form,
|
|
559
|
+
equalWith: equalWith,
|
|
560
|
+
type: type,
|
|
561
|
+
onChange: _onChange,
|
|
562
|
+
children: FieldComponent
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
if ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) {
|
|
566
|
+
FieldComponent = _jsx(ConfirmWrapper, _objectSpread(_objectSpread({}, componentProps), {}, {
|
|
567
|
+
children: FieldComponent
|
|
568
|
+
}));
|
|
569
|
+
}
|
|
570
|
+
FormItem = TargetComponent ? _jsx(_Form.Item, _objectSpread(_objectSpread({
|
|
571
|
+
validateFirst: true
|
|
572
|
+
}, omit(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name', 'onCell', _fieldProps.shouldUpdate ? 'shouldUpdate' : null])), {}, {
|
|
573
|
+
className: _className,
|
|
574
|
+
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
|
|
548
575
|
children: FieldComponent
|
|
576
|
+
})) : _jsx(Container, {
|
|
577
|
+
viewEmpty: viewEmpty
|
|
549
578
|
});
|
|
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
|
-
}
|
|
579
|
+
if (type === 'FormList') {
|
|
580
|
+
FormItem = _jsx(_Form.List, _objectSpread(_objectSpread({
|
|
581
|
+
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName
|
|
582
|
+
}, omit(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
|
|
583
|
+
children: function children(fields, operation, meta) {
|
|
584
|
+
return _jsx(TargetComponent, _objectSpread(_objectSpread({}, componentProps), {}, {
|
|
585
|
+
otherProps: otherProps,
|
|
586
|
+
fields: fields,
|
|
587
|
+
operation: operation,
|
|
588
|
+
meta: meta
|
|
589
|
+
}));
|
|
590
|
+
}
|
|
591
|
+
}));
|
|
592
|
+
}
|
|
593
|
+
return FormItem;
|
|
594
|
+
};
|
|
579
595
|
return _jsx(FieldProvider, {
|
|
580
596
|
value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
|
|
581
|
-
children:
|
|
597
|
+
children: _formItemProps.shouldUpdate ? _jsx(_Form.Item, {
|
|
598
|
+
noStyle: true,
|
|
599
|
+
shouldUpdate: _formItemProps.shouldUpdate,
|
|
600
|
+
children: function children() {
|
|
601
|
+
return getFieldItem();
|
|
602
|
+
}
|
|
603
|
+
}) : getFieldItem()
|
|
582
604
|
});
|
|
583
605
|
};
|
|
584
606
|
export default RenderField;
|
|
@@ -96,7 +96,7 @@ export interface ProColumnsProps<Values = any, T = any> extends Omit<FormItemPro
|
|
|
96
96
|
names?: NamePath[];
|
|
97
97
|
cache?: boolean;
|
|
98
98
|
isEditable?: boolean | RequiredFn<T>;
|
|
99
|
-
valueType?: ProFormValueType;
|
|
99
|
+
valueType?: ProFormValueType | ((text?: any, record?: any, options?: OptionsProps) => ProFormValueType);
|
|
100
100
|
tooltip?: string | ({
|
|
101
101
|
icon?: string | ReactNode;
|
|
102
102
|
} & TooltipProps);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getDefaultProps: (props: any) => any;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import { get, isEqual } from 'lodash';
|
|
3
|
+
var defaultPropsMap = {
|
|
4
|
+
ProSelect: function ProSelect(props) {
|
|
5
|
+
var fieldProps = props.fieldProps,
|
|
6
|
+
name = props.name,
|
|
7
|
+
namePath = props.namePath;
|
|
8
|
+
var _ref = fieldProps || {},
|
|
9
|
+
filterInList = _ref.filterInList;
|
|
10
|
+
var defaultProps = {};
|
|
11
|
+
// formList场景传入列表过滤时
|
|
12
|
+
if (filterInList && namePath && name) {
|
|
13
|
+
var _namePath = _toConsumableArray(namePath).splice(2, namePath.length - 1);
|
|
14
|
+
defaultProps.shouldUpdate = function (preValues, curValues) {
|
|
15
|
+
var _get, _get$map, _get2, _get2$map;
|
|
16
|
+
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) {
|
|
17
|
+
return get(item, _namePath);
|
|
18
|
+
});
|
|
19
|
+
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) {
|
|
20
|
+
return get(item, _namePath);
|
|
21
|
+
});
|
|
22
|
+
return !isEqual(preListValue, curListValue);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return defaultProps;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export var getDefaultProps = function getDefaultProps(props) {
|
|
29
|
+
var _defaultPropsMap$type;
|
|
30
|
+
var type = props.type;
|
|
31
|
+
return (_defaultPropsMap$type = defaultPropsMap[type]) === null || _defaultPropsMap$type === void 0 ? void 0 : _defaultPropsMap$type.call(defaultPropsMap, props);
|
|
32
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
3
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
|
-
var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after", "getValueProps", "valuePropName"];
|
|
4
|
+
var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after", "getValueProps", "valuePropName", "valueType"];
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import ConfirmWrapper from '../../../../components/render/ConfirmWrapper';
|
|
@@ -40,6 +40,7 @@ var ComRender = function ComRender(props) {
|
|
|
40
40
|
getValueProps = props.getValueProps,
|
|
41
41
|
_props$valuePropName = props.valuePropName,
|
|
42
42
|
valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName,
|
|
43
|
+
valueType = props.valueType,
|
|
43
44
|
rest = _objectWithoutProperties(props, _excluded);
|
|
44
45
|
var TypeComponent = componentMap[type];
|
|
45
46
|
var mergedGetValueProps = getValueProps || function (val) {
|
|
@@ -51,6 +52,7 @@ var ComRender = function ComRender(props) {
|
|
|
51
52
|
var Com = getComRender(Component, props, componentProps);
|
|
52
53
|
return _jsx(FieldProvider, {
|
|
53
54
|
value: _objectSpread(_objectSpread({}, contextProps), {}, {
|
|
55
|
+
valueType: valueType,
|
|
54
56
|
type: type
|
|
55
57
|
}),
|
|
56
58
|
children: Com
|
|
@@ -87,7 +87,7 @@ export var getReactiveProps = function getReactiveProps(params) {
|
|
|
87
87
|
component = params.component,
|
|
88
88
|
fieldProps = params.fieldProps,
|
|
89
89
|
name = params.name;
|
|
90
|
-
var values = form.
|
|
90
|
+
var values = namePath ? form.getFieldValue(namePath) : form.getFieldsValue();
|
|
91
91
|
var _disabled = isFunction(disabled) ? disabled(values, {
|
|
92
92
|
form: form,
|
|
93
93
|
index: index,
|
|
@@ -182,7 +182,8 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
|
182
182
|
mode = _ref.mode,
|
|
183
183
|
onChange = _ref.onChange,
|
|
184
184
|
onFieldChange = _ref.onFieldChange,
|
|
185
|
-
comDisabled = _ref.disabled
|
|
185
|
+
comDisabled = _ref.disabled,
|
|
186
|
+
onBlur = _ref.onBlur;
|
|
186
187
|
var _disabled = disabled || comDisabled;
|
|
187
188
|
var columnName = names ? names[index] : [].concat(name, index);
|
|
188
189
|
// 响应式字段改变后的回调
|
|
@@ -192,7 +193,13 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
|
192
193
|
if ((current === null || current === void 0 ? void 0 : current.show) === false) {
|
|
193
194
|
clearInterval(timerRef.current[index]);
|
|
194
195
|
timerRef.current[index] = setTimeout(function () {
|
|
195
|
-
|
|
196
|
+
if (names) {
|
|
197
|
+
form.resetFields([columnName]);
|
|
198
|
+
}
|
|
199
|
+
if (!names && (value === null || value === void 0 ? void 0 : value.length)) {
|
|
200
|
+
value[index] = null;
|
|
201
|
+
form.setFieldValue(columnName, _toConsumableArray(value));
|
|
202
|
+
}
|
|
196
203
|
}, 200);
|
|
197
204
|
} else {
|
|
198
205
|
clearInterval(timerRef.current[index]);
|
|
@@ -261,6 +268,19 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
|
261
268
|
}
|
|
262
269
|
}
|
|
263
270
|
};
|
|
271
|
+
var handleBlur = function handleBlur() {
|
|
272
|
+
if (!onBlur) return;
|
|
273
|
+
var values = form.getFieldValue(namePath);
|
|
274
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
275
|
+
args[_key2] = arguments[_key2];
|
|
276
|
+
}
|
|
277
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(args[0], values, {
|
|
278
|
+
index: outerIndex,
|
|
279
|
+
namePath: namePath,
|
|
280
|
+
form: form,
|
|
281
|
+
option: args === null || args === void 0 ? void 0 : args[1]
|
|
282
|
+
});
|
|
283
|
+
};
|
|
264
284
|
return _objectSpread(_objectSpread(_objectSpread({}, column), {}, {
|
|
265
285
|
name: columnName
|
|
266
286
|
}, reactiveProps), {}, {
|
|
@@ -268,6 +288,7 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
|
268
288
|
getValueProps: transform === null || transform === void 0 ? void 0 : transform.getValueProps,
|
|
269
289
|
fieldProps: _objectSpread(_objectSpread({}, column === null || column === void 0 ? void 0 : column.fieldProps), {}, {
|
|
270
290
|
onChange: handleChange,
|
|
291
|
+
onBlur: handleBlur,
|
|
271
292
|
value: value === null || value === void 0 ? void 0 : value[index]
|
|
272
293
|
})
|
|
273
294
|
});
|
|
@@ -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,35 +14,38 @@ var getNonEmptyValuesByIndex = function getNonEmptyValuesByIndex(required, value
|
|
|
14
14
|
};
|
|
15
15
|
export var rulesCreator = function rulesCreator(_ref) {
|
|
16
16
|
var _result;
|
|
17
|
-
var rules = _ref.rules,
|
|
17
|
+
var _ref$rules = _ref.rules,
|
|
18
|
+
rules = _ref$rules === void 0 ? [] : _ref$rules,
|
|
18
19
|
label = _ref.label,
|
|
19
20
|
isSelect = _ref.isSelect,
|
|
20
21
|
names = _ref.names,
|
|
21
22
|
required = _ref.required;
|
|
22
23
|
var message = "".concat(isSelect ? "".concat(locale.ProForm.selectPlaceHolder) : "".concat(locale.ProForm.inputPlaceholder)).concat(locale.ProForm.ruleText).concat(isString(label) ? label : '');
|
|
23
24
|
var result = [];
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (Object
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
if (Array.isArray(rules)) {
|
|
26
|
+
result = rules.map(function (ruleItem) {
|
|
27
|
+
var rule = _objectSpread({}, ruleItem);
|
|
28
|
+
if (rule instanceof Object && 'type' in rule) {
|
|
29
|
+
if (Object.keys(regExp).includes(rule.type)) {
|
|
30
|
+
rule.validator = function (rule, value) {
|
|
31
|
+
if (!isNullValue(value) && !regExp[rule.type].test(value)) {
|
|
32
|
+
return Promise.reject(new Error(rule.message || message));
|
|
33
|
+
}
|
|
34
|
+
return Promise.resolve();
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (Object.keys(validate).includes(rule.type)) {
|
|
38
|
+
rule.validator = function (rule, value) {
|
|
39
|
+
if (!isNullValue(value) && !validate[rule.type](value)) {
|
|
40
|
+
return Promise.reject(new Error(rule.message || message));
|
|
41
|
+
}
|
|
42
|
+
return Promise.resolve();
|
|
43
|
+
};
|
|
44
|
+
}
|
|
42
45
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
+
return rule;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
46
49
|
if ((names === null || names === void 0 ? void 0 : names.length) && (required === null || required === void 0 ? void 0 : required.length)) {
|
|
47
50
|
var customRequired = {
|
|
48
51
|
validator: function validator(rules, value) {
|
|
@@ -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;
|
|
@@ -18,7 +18,7 @@ var transformRatio = function transformRatio(_ref) {
|
|
|
18
18
|
return {
|
|
19
19
|
normalize: function normalize(value) {
|
|
20
20
|
if (!value || !value.some(function (item) {
|
|
21
|
-
return item;
|
|
21
|
+
return item || item === 0;
|
|
22
22
|
})) {
|
|
23
23
|
return {};
|
|
24
24
|
}
|
|
@@ -26,7 +26,7 @@ var transformRatio = function transformRatio(_ref) {
|
|
|
26
26
|
},
|
|
27
27
|
getValueProps: function getValueProps(value) {
|
|
28
28
|
if (!value || !value.some(function (item) {
|
|
29
|
-
return item;
|
|
29
|
+
return item || item === 0;
|
|
30
30
|
})) {
|
|
31
31
|
return {
|
|
32
32
|
value: []
|
package/es/ProSelect/index.js
CHANGED
|
@@ -281,7 +281,8 @@ export var ProSelect = function ProSelect(props, ref) {
|
|
|
281
281
|
value: props.value,
|
|
282
282
|
dataSource: selectList,
|
|
283
283
|
labelInValue: labelInValue,
|
|
284
|
-
fieldNames: fieldNames
|
|
284
|
+
fieldNames: fieldNames,
|
|
285
|
+
mode: selectProps.mode
|
|
285
286
|
});
|
|
286
287
|
}
|
|
287
288
|
return _jsx("div", {
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 返回当前组件可以显示的数据源
|
|
3
3
|
*/
|
|
4
|
-
export declare const getSelectList: ({ otherProps, value, dataSource, labelInValue, fieldNames, }:
|
|
5
|
-
otherProps: any;
|
|
6
|
-
value: any;
|
|
7
|
-
dataSource: any;
|
|
8
|
-
labelInValue: any;
|
|
9
|
-
fieldNames: any;
|
|
10
|
-
}) => any;
|
|
4
|
+
export declare const getSelectList: ({ otherProps, value, dataSource, labelInValue, fieldNames, mode, }: any) => any;
|