@zat-design/sisyphus-react 3.6.5-beta.9 → 3.6.6-beta.1
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 +26 -18
- package/es/ProEditTable/propsType.d.ts +1 -0
- package/es/ProForm/utils/useWatch.js +8 -18
- package/lib/ProEditTable/components/RenderField/index.js +26 -18
- package/lib/ProEditTable/propsType.d.ts +1 -0
- package/lib/ProForm/utils/useWatch.js +8 -18
- package/package.json +1 -1
|
@@ -11,7 +11,7 @@ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
|
11
11
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
12
12
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
13
13
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
14
|
-
var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm"];
|
|
14
|
+
var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm", "validateTrigger"];
|
|
15
15
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
16
|
/* eslint-disable prefer-destructuring */
|
|
17
17
|
/* eslint-disable prefer-const */
|
|
@@ -60,6 +60,8 @@ var RenderField = function RenderField(_ref) {
|
|
|
60
60
|
className = column.className,
|
|
61
61
|
trim = column.trim,
|
|
62
62
|
confirm = column.confirm,
|
|
63
|
+
_column$validateTrigg = column.validateTrigger,
|
|
64
|
+
validateTrigger = _column$validateTrigg === void 0 ? ['onChange', 'onBlur', 'onSumbit'] : _column$validateTrigg,
|
|
63
65
|
resetProps = _objectWithoutProperties(column, _excluded);
|
|
64
66
|
// editRender弃用使用component同ProForm
|
|
65
67
|
var _editRender = component || editRender;
|
|
@@ -158,7 +160,9 @@ var RenderField = function RenderField(_ref) {
|
|
|
158
160
|
// 分离form item参数,防止对于参数透传(如onChange,防止重复触发)并优先级高于 _fieldProps 内部参数
|
|
159
161
|
var formItemChildProps = _objectSpread({}, _fieldProps);
|
|
160
162
|
// 允许formItem的属性放在column最外层
|
|
161
|
-
var _formItemProps = _objectSpread(_objectSpread({}, resetProps), internalRule)
|
|
163
|
+
var _formItemProps = _objectSpread(_objectSpread(_objectSpread({}, resetProps), internalRule), {}, {
|
|
164
|
+
validateTrigger: validateTrigger
|
|
165
|
+
});
|
|
162
166
|
if (['Switch', 'SwitchCheckbox'].includes(type)) {
|
|
163
167
|
_formItemProps.valuePropName = 'checked';
|
|
164
168
|
valueType = 'switch';
|
|
@@ -375,15 +379,17 @@ var RenderField = function RenderField(_ref) {
|
|
|
375
379
|
case 29:
|
|
376
380
|
// 判断属性是否变动
|
|
377
381
|
form.setFieldValue(rowPath, row);
|
|
378
|
-
if (
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
382
|
+
if (validateTrigger && validateTrigger.includes('onChange')) {
|
|
383
|
+
if (!isEqual(orgRow, row)) {
|
|
384
|
+
diff = difference(row, orgRow) || {};
|
|
385
|
+
validateFieldKeys = (_Object$keys = Object.keys(diff)) === null || _Object$keys === void 0 ? void 0 : (_Object$keys$map = _Object$keys.map) === null || _Object$keys$map === void 0 ? void 0 : _Object$keys$map.call(_Object$keys, function (key) {
|
|
386
|
+
return [].concat(_toConsumableArray(rowPath), [key]);
|
|
387
|
+
});
|
|
388
|
+
if (validateFieldKeys === null || validateFieldKeys === void 0 ? void 0 : validateFieldKeys.length) {
|
|
389
|
+
setTimeout(function () {
|
|
390
|
+
form.validateFields(validateFieldKeys);
|
|
391
|
+
}, 100);
|
|
392
|
+
}
|
|
387
393
|
}
|
|
388
394
|
}
|
|
389
395
|
setState({
|
|
@@ -447,13 +453,15 @@ var RenderField = function RenderField(_ref) {
|
|
|
447
453
|
case 16:
|
|
448
454
|
// 判断属性是否变动
|
|
449
455
|
form.setFieldValue(rowPath, row);
|
|
450
|
-
if (
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
456
|
+
if (validateTrigger && validateTrigger.includes('onBlur')) {
|
|
457
|
+
if (!isEqual(orgRow, row)) {
|
|
458
|
+
diff = difference(row, orgRow) || {};
|
|
459
|
+
validateFieldKeys = (_Object$keys2 = Object.keys(diff)) === null || _Object$keys2 === void 0 ? void 0 : (_Object$keys2$map = _Object$keys2.map) === null || _Object$keys2$map === void 0 ? void 0 : _Object$keys2$map.call(_Object$keys2, function (key) {
|
|
460
|
+
return [].concat(_toConsumableArray(rowPath), [key]);
|
|
461
|
+
});
|
|
462
|
+
if (validateFieldKeys === null || validateFieldKeys === void 0 ? void 0 : validateFieldKeys.length) {
|
|
463
|
+
debounceValidate(validateFieldKeys);
|
|
464
|
+
}
|
|
457
465
|
}
|
|
458
466
|
}
|
|
459
467
|
if (!isCell) {
|
|
@@ -100,6 +100,7 @@ export interface ProColumnsProps<Values = any, T = any> extends Omit<FormItemPro
|
|
|
100
100
|
hiddenNames?: NamePath[] | NamePath[][];
|
|
101
101
|
rules?: ProRule[] | RulesFn<T>;
|
|
102
102
|
confirm?: boolean | ModalFuncProps | FunctionArgs<Values, boolean | ModalFuncProps | void>;
|
|
103
|
+
validateTrigger?: string | string[];
|
|
103
104
|
[key: string]: any;
|
|
104
105
|
}
|
|
105
106
|
export type ProEditTableColumnsProps<K = any> = ProColumnsProps & ColumnPropsMap<K, 'ProEditTable'>;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
2
|
import { debounce } from 'lodash';
|
|
5
3
|
import { HOOK_MARK } from 'rc-field-form/es/FieldContext';
|
|
6
|
-
import get from 'rc-util/lib/utils/get';
|
|
7
4
|
import warning from 'rc-util/lib/warning';
|
|
8
5
|
import { useState, useEffect, useRef, useMemo } from 'react';
|
|
9
6
|
export function toArray(value) {
|
|
@@ -29,7 +26,8 @@ var useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath
|
|
|
29
26
|
warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');
|
|
30
27
|
} : function () {};
|
|
31
28
|
function useWatch(dependencies, form, wait) {
|
|
32
|
-
var
|
|
29
|
+
var isSingle = typeof dependencies === 'string';
|
|
30
|
+
var _useState = useState({}),
|
|
33
31
|
_useState2 = _slicedToArray(_useState, 2),
|
|
34
32
|
value = _useState2[0],
|
|
35
33
|
setValue = _useState2[1];
|
|
@@ -40,7 +38,7 @@ function useWatch(dependencies, form, wait) {
|
|
|
40
38
|
valueStrRef.current = valueStr;
|
|
41
39
|
var formInstance = form;
|
|
42
40
|
var isValidForm = formInstance && formInstance._init;
|
|
43
|
-
var _dependencies =
|
|
41
|
+
var _dependencies = isSingle ? [dependencies] : dependencies;
|
|
44
42
|
var namePaths = _dependencies === null || _dependencies === void 0 ? void 0 : _dependencies.map(function (item) {
|
|
45
43
|
return getNamePath(item);
|
|
46
44
|
});
|
|
@@ -53,17 +51,13 @@ function useWatch(dependencies, form, wait) {
|
|
|
53
51
|
getInternalHooks = formInstance.getInternalHooks;
|
|
54
52
|
var _getInternalHooks = getInternalHooks(HOOK_MARK),
|
|
55
53
|
registerWatch = _getInternalHooks.registerWatch;
|
|
56
|
-
var callback = function callback(
|
|
57
|
-
var newValue =
|
|
58
|
-
return get(store, namePath);
|
|
59
|
-
});
|
|
54
|
+
var callback = function callback() {
|
|
55
|
+
var newValue = getFieldsValue(_dependencies);
|
|
60
56
|
var nextValueStr = stringify(newValue);
|
|
61
57
|
// Compare stringify in case it's nest object
|
|
62
58
|
if (valueStrRef.current !== nextValueStr) {
|
|
63
59
|
valueStrRef.current = nextValueStr;
|
|
64
|
-
setValue(_dependencies
|
|
65
|
-
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, newValue[index]));
|
|
66
|
-
}, {}));
|
|
60
|
+
setValue(getFieldsValue(_dependencies));
|
|
67
61
|
}
|
|
68
62
|
};
|
|
69
63
|
// 增加防抖
|
|
@@ -71,12 +65,8 @@ function useWatch(dependencies, form, wait) {
|
|
|
71
65
|
callback = debounce(callback, wait);
|
|
72
66
|
}
|
|
73
67
|
var cancelRegister = registerWatch(callback);
|
|
74
|
-
var initialValue =
|
|
75
|
-
|
|
76
|
-
});
|
|
77
|
-
setValue(_dependencies.reduce(function (acc, key, index) {
|
|
78
|
-
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, initialValue[index]));
|
|
79
|
-
}, {}));
|
|
68
|
+
var initialValue = getFieldsValue(_dependencies);
|
|
69
|
+
setValue(initialValue);
|
|
80
70
|
return cancelRegister;
|
|
81
71
|
},
|
|
82
72
|
// We do not need re-register since namePath content is the same
|
|
@@ -30,7 +30,7 @@ var _useListChanged3 = require("../../../ProForm/utils/useListChanged");
|
|
|
30
30
|
var _useRules = _interopRequireDefault(require("../../../ProForm/utils/useRules"));
|
|
31
31
|
var _utils = require("../../../ProForm/utils");
|
|
32
32
|
var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
|
|
33
|
-
var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm"];
|
|
33
|
+
var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm", "validateTrigger"];
|
|
34
34
|
/* eslint-disable prefer-destructuring */
|
|
35
35
|
/* eslint-disable prefer-const */
|
|
36
36
|
var RenderField = function RenderField(_ref) {
|
|
@@ -63,6 +63,8 @@ var RenderField = function RenderField(_ref) {
|
|
|
63
63
|
className = column.className,
|
|
64
64
|
trim = column.trim,
|
|
65
65
|
confirm = column.confirm,
|
|
66
|
+
_column$validateTrigg = column.validateTrigger,
|
|
67
|
+
validateTrigger = _column$validateTrigg === void 0 ? ['onChange', 'onBlur', 'onSumbit'] : _column$validateTrigg,
|
|
66
68
|
resetProps = (0, _objectWithoutProperties2.default)(column, _excluded);
|
|
67
69
|
// editRender弃用使用component同ProForm
|
|
68
70
|
var _editRender = component || editRender;
|
|
@@ -161,7 +163,9 @@ var RenderField = function RenderField(_ref) {
|
|
|
161
163
|
// 分离form item参数,防止对于参数透传(如onChange,防止重复触发)并优先级高于 _fieldProps 内部参数
|
|
162
164
|
var formItemChildProps = (0, _objectSpread2.default)({}, _fieldProps);
|
|
163
165
|
// 允许formItem的属性放在column最外层
|
|
164
|
-
var _formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, resetProps), internalRule)
|
|
166
|
+
var _formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, resetProps), internalRule), {}, {
|
|
167
|
+
validateTrigger: validateTrigger
|
|
168
|
+
});
|
|
165
169
|
if (['Switch', 'SwitchCheckbox'].includes(type)) {
|
|
166
170
|
_formItemProps.valuePropName = 'checked';
|
|
167
171
|
valueType = 'switch';
|
|
@@ -378,15 +382,17 @@ var RenderField = function RenderField(_ref) {
|
|
|
378
382
|
case 29:
|
|
379
383
|
// 判断属性是否变动
|
|
380
384
|
form.setFieldValue(rowPath, row);
|
|
381
|
-
if (
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
385
|
+
if (validateTrigger && validateTrigger.includes('onChange')) {
|
|
386
|
+
if (!(0, _lodash.isEqual)(orgRow, row)) {
|
|
387
|
+
diff = (0, _tools.difference)(row, orgRow) || {};
|
|
388
|
+
validateFieldKeys = (_Object$keys = Object.keys(diff)) === null || _Object$keys === void 0 ? void 0 : (_Object$keys$map = _Object$keys.map) === null || _Object$keys$map === void 0 ? void 0 : _Object$keys$map.call(_Object$keys, function (key) {
|
|
389
|
+
return [].concat((0, _toConsumableArray2.default)(rowPath), [key]);
|
|
390
|
+
});
|
|
391
|
+
if (validateFieldKeys === null || validateFieldKeys === void 0 ? void 0 : validateFieldKeys.length) {
|
|
392
|
+
setTimeout(function () {
|
|
393
|
+
form.validateFields(validateFieldKeys);
|
|
394
|
+
}, 100);
|
|
395
|
+
}
|
|
390
396
|
}
|
|
391
397
|
}
|
|
392
398
|
setState({
|
|
@@ -450,13 +456,15 @@ var RenderField = function RenderField(_ref) {
|
|
|
450
456
|
case 16:
|
|
451
457
|
// 判断属性是否变动
|
|
452
458
|
form.setFieldValue(rowPath, row);
|
|
453
|
-
if (
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
459
|
+
if (validateTrigger && validateTrigger.includes('onBlur')) {
|
|
460
|
+
if (!(0, _lodash.isEqual)(orgRow, row)) {
|
|
461
|
+
diff = (0, _tools.difference)(row, orgRow) || {};
|
|
462
|
+
validateFieldKeys = (_Object$keys2 = Object.keys(diff)) === null || _Object$keys2 === void 0 ? void 0 : (_Object$keys2$map = _Object$keys2.map) === null || _Object$keys2$map === void 0 ? void 0 : _Object$keys2$map.call(_Object$keys2, function (key) {
|
|
463
|
+
return [].concat((0, _toConsumableArray2.default)(rowPath), [key]);
|
|
464
|
+
});
|
|
465
|
+
if (validateFieldKeys === null || validateFieldKeys === void 0 ? void 0 : validateFieldKeys.length) {
|
|
466
|
+
debounceValidate(validateFieldKeys);
|
|
467
|
+
}
|
|
460
468
|
}
|
|
461
469
|
}
|
|
462
470
|
if (!isCell) {
|
|
@@ -100,6 +100,7 @@ export interface ProColumnsProps<Values = any, T = any> extends Omit<FormItemPro
|
|
|
100
100
|
hiddenNames?: NamePath[] | NamePath[][];
|
|
101
101
|
rules?: ProRule[] | RulesFn<T>;
|
|
102
102
|
confirm?: boolean | ModalFuncProps | FunctionArgs<Values, boolean | ModalFuncProps | void>;
|
|
103
|
+
validateTrigger?: string | string[];
|
|
103
104
|
[key: string]: any;
|
|
104
105
|
}
|
|
105
106
|
export type ProEditTableColumnsProps<K = any> = ProColumnsProps & ColumnPropsMap<K, 'ProEditTable'>;
|
|
@@ -8,12 +8,9 @@ exports.default = void 0;
|
|
|
8
8
|
exports.getNamePath = getNamePath;
|
|
9
9
|
exports.stringify = stringify;
|
|
10
10
|
exports.toArray = toArray;
|
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
var _objectSpread4 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
12
|
var _lodash = require("lodash");
|
|
15
13
|
var _FieldContext = require("rc-field-form/es/FieldContext");
|
|
16
|
-
var _get = _interopRequireDefault(require("rc-util/lib/utils/get"));
|
|
17
14
|
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
|
|
18
15
|
var _react = require("react");
|
|
19
16
|
function toArray(value) {
|
|
@@ -39,7 +36,8 @@ var useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath
|
|
|
39
36
|
(0, _warning.default)(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');
|
|
40
37
|
} : function () {};
|
|
41
38
|
function useWatch(dependencies, form, wait) {
|
|
42
|
-
var
|
|
39
|
+
var isSingle = typeof dependencies === 'string';
|
|
40
|
+
var _useState = (0, _react.useState)({}),
|
|
43
41
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
44
42
|
value = _useState2[0],
|
|
45
43
|
setValue = _useState2[1];
|
|
@@ -50,7 +48,7 @@ function useWatch(dependencies, form, wait) {
|
|
|
50
48
|
valueStrRef.current = valueStr;
|
|
51
49
|
var formInstance = form;
|
|
52
50
|
var isValidForm = formInstance && formInstance._init;
|
|
53
|
-
var _dependencies =
|
|
51
|
+
var _dependencies = isSingle ? [dependencies] : dependencies;
|
|
54
52
|
var namePaths = _dependencies === null || _dependencies === void 0 ? void 0 : _dependencies.map(function (item) {
|
|
55
53
|
return getNamePath(item);
|
|
56
54
|
});
|
|
@@ -63,17 +61,13 @@ function useWatch(dependencies, form, wait) {
|
|
|
63
61
|
getInternalHooks = formInstance.getInternalHooks;
|
|
64
62
|
var _getInternalHooks = getInternalHooks(_FieldContext.HOOK_MARK),
|
|
65
63
|
registerWatch = _getInternalHooks.registerWatch;
|
|
66
|
-
var callback = function callback(
|
|
67
|
-
var newValue =
|
|
68
|
-
return (0, _get.default)(store, namePath);
|
|
69
|
-
});
|
|
64
|
+
var callback = function callback() {
|
|
65
|
+
var newValue = getFieldsValue(_dependencies);
|
|
70
66
|
var nextValueStr = stringify(newValue);
|
|
71
67
|
// Compare stringify in case it's nest object
|
|
72
68
|
if (valueStrRef.current !== nextValueStr) {
|
|
73
69
|
valueStrRef.current = nextValueStr;
|
|
74
|
-
setValue(_dependencies
|
|
75
|
-
return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, acc), {}, (0, _defineProperty2.default)({}, key, newValue[index]));
|
|
76
|
-
}, {}));
|
|
70
|
+
setValue(getFieldsValue(_dependencies));
|
|
77
71
|
}
|
|
78
72
|
};
|
|
79
73
|
// 增加防抖
|
|
@@ -81,12 +75,8 @@ function useWatch(dependencies, form, wait) {
|
|
|
81
75
|
callback = (0, _lodash.debounce)(callback, wait);
|
|
82
76
|
}
|
|
83
77
|
var cancelRegister = registerWatch(callback);
|
|
84
|
-
var initialValue =
|
|
85
|
-
|
|
86
|
-
});
|
|
87
|
-
setValue(_dependencies.reduce(function (acc, key, index) {
|
|
88
|
-
return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, acc), {}, (0, _defineProperty2.default)({}, key, initialValue[index]));
|
|
89
|
-
}, {}));
|
|
78
|
+
var initialValue = getFieldsValue(_dependencies);
|
|
79
|
+
setValue(initialValue);
|
|
90
80
|
return cancelRegister;
|
|
91
81
|
},
|
|
92
82
|
// We do not need re-register since namePath content is the same
|