@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.
@@ -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:修复 InputNumber , DatePicker时,originalValue与最新值一致时,显示为 changed的问题
124
- var _originalValue = normalize && ['InputNumber', 'ProNumberRange', 'DatePicker'].includes(props.type) ? normalize(originalValue, undefined, undefined, true) : originalValue;
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:修复 InputNumber , DatePicker时,originalValue与最新值一致时,显示为 changed的问题
51
- var _originalValue = normalize && ['InputNumber', 'ProNumberRange', 'DatePicker'].includes(props.type) ? normalize(originalValue, undefined, undefined, true) : originalValue;
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
- register === null || register === void 0 ? void 0 : register(_objectSpread(_objectSpread({}, restProps), {}, {
18
- title: title,
19
- id: id
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:修复 InputNumber , DatePicker时,originalValue与最新值一致时,显示为 changed的问题
129
- var _originalValue = normalize && ['InputNumber', 'ProNumberRange', 'DatePicker'].includes(props.type) ? normalize(originalValue, undefined, undefined, true) : originalValue;
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:修复 InputNumber , DatePicker时,originalValue与最新值一致时,显示为 changed的问题
56
- var _originalValue = normalize && ['InputNumber', 'ProNumberRange', 'DatePicker'].includes(props.type) ? normalize(originalValue, undefined, undefined, true) : originalValue;
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
- register === null || register === void 0 ? void 0 : register((0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), {}, {
25
- title: title,
26
- id: id
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.9.3-beta.2",
3
+ "version": "3.9.3-beta.4",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -1,5 +0,0 @@
1
- {
2
- "recommendations": [
3
- "kisstkondoros.vscode-codemetrics"
4
- ]
5
- }