@zat-design/sisyphus-react 3.9.3-beta.2 → 3.9.3-beta.4
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/ListChangedWrapper.js +6 -2
- package/es/ProForm/components/render/ChangedWrapper.js +6 -2
- package/es/ProForm/utils/useShouldUpdate.js +9 -1
- package/es/ProStep/components/Item/index.js +13 -4
- package/lib/ProEditTable/components/RenderField/ListChangedWrapper.js +6 -2
- package/lib/ProForm/components/render/ChangedWrapper.js +6 -2
- package/lib/ProForm/utils/useShouldUpdate.js +9 -1
- package/lib/ProStep/components/Item/index.js +13 -4
- package/package.json +1 -1
- package/.vscode/extensions.json +0 -5
@@ -120,8 +120,12 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
|
|
120
120
|
if (!isWatch || noChange) return 'same';
|
121
121
|
var _value = normalize ? normalize(props[valuePropName], undefined, undefined, true) // true 代表是值比对时的调用
|
122
122
|
: props[valuePropName];
|
123
|
-
// fix:修复
|
124
|
-
var _originalValue = normalize && ['
|
123
|
+
// fix:修复 DatePicker时,originalValue与最新值一致时,显示为 changed的问题
|
124
|
+
var _originalValue = normalize && ['DatePicker'].includes(props.type) ? normalize(originalValue, undefined, undefined, true) : originalValue;
|
125
|
+
// fix:修复 InputNumber 时,originalValue与最新值一致都为'0'时,显示为 changed的问题
|
126
|
+
if (['InputNumber'].includes(props.type) && normalize && _value === Number(originalValue)) {
|
127
|
+
return 'same';
|
128
|
+
}
|
125
129
|
return diffOriginal({
|
126
130
|
value: _value,
|
127
131
|
originalValue: _originalValue,
|
@@ -47,8 +47,12 @@ var ChangedWrapper = function ChangedWrapper(props) {
|
|
47
47
|
if (!isWatch || noChange) return 'same';
|
48
48
|
var _value = normalize ? normalize(props[valuePropName], undefined, undefined, true) // true 代表是值比对时的调用
|
49
49
|
: props[valuePropName];
|
50
|
-
// fix:修复
|
51
|
-
var _originalValue = normalize && ['
|
50
|
+
// fix:修复 DatePicker时,originalValue与最新值一致时,显示为 changed的问题
|
51
|
+
var _originalValue = normalize && ['DatePicker'].includes(props.type) ? normalize(originalValue, undefined, undefined, true) : originalValue;
|
52
|
+
// fix:修复 InputNumber 时,originalValue与最新值一致都为'0'时,显示为 changed的问题
|
53
|
+
if (['InputNumber'].includes(props.type) && normalize && _value === Number(originalValue)) {
|
54
|
+
return 'same';
|
55
|
+
}
|
52
56
|
return diffOriginal({
|
53
57
|
value: _value,
|
54
58
|
originalValue: _originalValue,
|
@@ -2,6 +2,14 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import { useRef, useState } from 'react';
|
3
3
|
import { isFunction, isEqualWith, get } from 'lodash';
|
4
4
|
import { customEqualForFun } from './index';
|
5
|
+
/** FormList中被删除的行也会再触发一次响应式函数 排除这种场景 */
|
6
|
+
var isDeleteLine = function isDeleteLine(form, namePath) {
|
7
|
+
if (namePath) {
|
8
|
+
var line = form.getFieldValue(namePath);
|
9
|
+
return line === undefined;
|
10
|
+
}
|
11
|
+
return false;
|
12
|
+
};
|
5
13
|
// 代理shouldUpdate事件, 执行函数值的[show, disabled], 当[show, disabled]与上一次值不相同时更新状态
|
6
14
|
var useShouldUpdate = function useShouldUpdate(props) {
|
7
15
|
var show = props.show,
|
@@ -169,7 +177,7 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
169
177
|
namePath: namePath
|
170
178
|
}) : fieldProps;
|
171
179
|
// 清值防抖 多次刷新时以最后一次为准
|
172
|
-
if (clearNotShow !== false && (name || names)) {
|
180
|
+
if (clearNotShow !== false && (name || names) && !isDeleteLine(form, namePath)) {
|
173
181
|
// 当show为其他变为false的时候记录一次需要清值
|
174
182
|
if (_show !== showRef.current && _show === false) {
|
175
183
|
needClear.current = true;
|
@@ -2,6 +2,7 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
3
3
|
var _excluded = ["id", "title", "collapse", "children"];
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
5
|
+
import { useEffect } from 'react';
|
5
6
|
import { useStep } from '../../index';
|
6
7
|
import ProCollapse from '../../../ProLayout/components/ProCollapse';
|
7
8
|
export default (function (_ref) {
|
@@ -14,10 +15,18 @@ export default (function (_ref) {
|
|
14
15
|
var _useStep = useStep(),
|
15
16
|
register = _useStep.register,
|
16
17
|
collapse = _useStep.collapse;
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
useEffect(function () {
|
19
|
+
// 子组件更新父组件 延迟状态更新,避免重渲染
|
20
|
+
var timeoutId = setTimeout(function () {
|
21
|
+
register === null || register === void 0 ? void 0 : register(_objectSpread(_objectSpread({}, restProps), {}, {
|
22
|
+
title: title,
|
23
|
+
id: id
|
24
|
+
}));
|
25
|
+
}, 0);
|
26
|
+
return function () {
|
27
|
+
return clearTimeout(timeoutId);
|
28
|
+
};
|
29
|
+
}, [register]);
|
21
30
|
return _jsx("div", {
|
22
31
|
className: "pro-step-item",
|
23
32
|
id: id,
|
@@ -125,8 +125,12 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
|
|
125
125
|
if (!isWatch || noChange) return 'same';
|
126
126
|
var _value = normalize ? normalize(props[valuePropName], undefined, undefined, true) // true 代表是值比对时的调用
|
127
127
|
: props[valuePropName];
|
128
|
-
// fix:修复
|
129
|
-
var _originalValue = normalize && ['
|
128
|
+
// fix:修复 DatePicker时,originalValue与最新值一致时,显示为 changed的问题
|
129
|
+
var _originalValue = normalize && ['DatePicker'].includes(props.type) ? normalize(originalValue, undefined, undefined, true) : originalValue;
|
130
|
+
// fix:修复 InputNumber 时,originalValue与最新值一致都为'0'时,显示为 changed的问题
|
131
|
+
if (['InputNumber'].includes(props.type) && normalize && _value === Number(originalValue)) {
|
132
|
+
return 'same';
|
133
|
+
}
|
130
134
|
return (0, _diffOriginal.diffOriginal)({
|
131
135
|
value: _value,
|
132
136
|
originalValue: _originalValue,
|
@@ -52,8 +52,12 @@ var ChangedWrapper = function ChangedWrapper(props) {
|
|
52
52
|
if (!isWatch || noChange) return 'same';
|
53
53
|
var _value = normalize ? normalize(props[valuePropName], undefined, undefined, true) // true 代表是值比对时的调用
|
54
54
|
: props[valuePropName];
|
55
|
-
// fix:修复
|
56
|
-
var _originalValue = normalize && ['
|
55
|
+
// fix:修复 DatePicker时,originalValue与最新值一致时,显示为 changed的问题
|
56
|
+
var _originalValue = normalize && ['DatePicker'].includes(props.type) ? normalize(originalValue, undefined, undefined, true) : originalValue;
|
57
|
+
// fix:修复 InputNumber 时,originalValue与最新值一致都为'0'时,显示为 changed的问题
|
58
|
+
if (['InputNumber'].includes(props.type) && normalize && _value === Number(originalValue)) {
|
59
|
+
return 'same';
|
60
|
+
}
|
57
61
|
return (0, _diffOriginal.diffOriginal)({
|
58
62
|
value: _value,
|
59
63
|
originalValue: _originalValue,
|
@@ -9,6 +9,14 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
9
9
|
var _react = require("react");
|
10
10
|
var _lodash = require("lodash");
|
11
11
|
var _index = require("./index");
|
12
|
+
/** FormList中被删除的行也会再触发一次响应式函数 排除这种场景 */
|
13
|
+
var isDeleteLine = function isDeleteLine(form, namePath) {
|
14
|
+
if (namePath) {
|
15
|
+
var line = form.getFieldValue(namePath);
|
16
|
+
return line === undefined;
|
17
|
+
}
|
18
|
+
return false;
|
19
|
+
};
|
12
20
|
// 代理shouldUpdate事件, 执行函数值的[show, disabled], 当[show, disabled]与上一次值不相同时更新状态
|
13
21
|
var useShouldUpdate = function useShouldUpdate(props) {
|
14
22
|
var show = props.show,
|
@@ -176,7 +184,7 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
176
184
|
namePath: namePath
|
177
185
|
}) : fieldProps;
|
178
186
|
// 清值防抖 多次刷新时以最后一次为准
|
179
|
-
if (clearNotShow !== false && (name || names)) {
|
187
|
+
if (clearNotShow !== false && (name || names) && !isDeleteLine(form, namePath)) {
|
180
188
|
// 当show为其他变为false的时候记录一次需要清值
|
181
189
|
if (_show !== showRef.current && _show === false) {
|
182
190
|
needClear.current = true;
|
@@ -8,6 +8,7 @@ exports.default = void 0;
|
|
8
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
9
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
11
|
+
var _react = require("react");
|
11
12
|
var _index = require("../../index");
|
12
13
|
var _ProCollapse = _interopRequireDefault(require("../../../ProLayout/components/ProCollapse"));
|
13
14
|
var _excluded = ["id", "title", "collapse", "children"];
|
@@ -21,10 +22,18 @@ var _default = exports.default = function _default(_ref) {
|
|
21
22
|
var _useStep = (0, _index.useStep)(),
|
22
23
|
register = _useStep.register,
|
23
24
|
collapse = _useStep.collapse;
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
(0, _react.useEffect)(function () {
|
26
|
+
// 子组件更新父组件 延迟状态更新,避免重渲染
|
27
|
+
var timeoutId = setTimeout(function () {
|
28
|
+
register === null || register === void 0 ? void 0 : register((0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), {}, {
|
29
|
+
title: title,
|
30
|
+
id: id
|
31
|
+
}));
|
32
|
+
}, 0);
|
33
|
+
return function () {
|
34
|
+
return clearTimeout(timeoutId);
|
35
|
+
};
|
36
|
+
}, [register]);
|
28
37
|
return (0, _jsxRuntime.jsx)("div", {
|
29
38
|
className: "pro-step-item",
|
30
39
|
id: id,
|
package/package.json
CHANGED