@zat-design/sisyphus-react 3.9.3-beta.3 → 3.9.3-beta.5
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/ProForm/components/combination/ProCascader/index.js +11 -5
- package/es/ProForm/utils/useShouldUpdate.js +10 -2
- package/es/ProStep/components/Item/index.js +13 -4
- package/lib/ProForm/components/combination/ProCascader/index.js +10 -4
- package/lib/ProForm/utils/useShouldUpdate.js +10 -2
- package/lib/ProStep/components/Item/index.js +13 -4
- package/package.json +1 -1
@@ -16,7 +16,7 @@ import _Typography from "antd/es/typography";
|
|
16
16
|
var _excluded = ["className", "hasDetail", "detailMaxLength", "fieldNames", "value", "disabled", "dataSource", "onChange", "useRequest", "transformResponse", "level", "isView", "enumCode", "code", "tooltip", "separator", "detailPlaceholder", "scrollFollowParent"];
|
17
17
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
18
18
|
import { useEffect, useState, memo, useMemo } from 'react';
|
19
|
-
import { omit, find as _find } from 'lodash';
|
19
|
+
import { omit, find as _find, isBoolean } from 'lodash';
|
20
20
|
import { transformDataName } from './utils/index';
|
21
21
|
import { useProConfig } from '../../../../ProConfigProvider';
|
22
22
|
import useEnum from '../../../../ProEnum/hooks/useEnum';
|
@@ -111,6 +111,12 @@ var ProCascader = function ProCascader(props) {
|
|
111
111
|
var result = transformDataName(isAddressMode && realLevel === 2 ? _filterDataSource(innerDataSource, level, fieldNames) : innerDataSource, fieldNames);
|
112
112
|
return result;
|
113
113
|
}, [isAddressMode, addressCode, realLevel, dataSource, enumDataSource === null || enumDataSource === void 0 ? void 0 : enumDataSource.length]);
|
114
|
+
var lastDisabled = useMemo(function () {
|
115
|
+
if (isBoolean(disabled) || disabled === undefined) {
|
116
|
+
return [disabled, disabled];
|
117
|
+
}
|
118
|
+
return disabled;
|
119
|
+
}, [disabled]);
|
114
120
|
var _useRequest = _objectSpread({}, useRequest),
|
115
121
|
service = _useRequest.service,
|
116
122
|
_useRequest$defaultPa = _useRequest.defaultParams,
|
@@ -268,7 +274,7 @@ var ProCascader = function ProCascader(props) {
|
|
268
274
|
placeholder: locale === null || locale === void 0 ? void 0 : (_locale$ProAddressBar = locale.ProAddressBar) === null || _locale$ProAddressBar === void 0 ? void 0 : _locale$ProAddressBar.placeholder,
|
269
275
|
value: addressValue,
|
270
276
|
options: service ? serviceData : realDataSource,
|
271
|
-
disabled:
|
277
|
+
disabled: lastDisabled[0],
|
272
278
|
displayRender: displayRender,
|
273
279
|
showSearch: {
|
274
280
|
filter: handlefilter,
|
@@ -278,19 +284,19 @@ var ProCascader = function ProCascader(props) {
|
|
278
284
|
getPopupContainer: function getPopupContainer(trigger) {
|
279
285
|
return scrollFollowParent ? trigger.parentElement : document.body;
|
280
286
|
}
|
281
|
-
}, omit(otherProps, ['otherProps', 'scrollFollowParent']))), hasDetail && (tooltip &&
|
287
|
+
}, omit(otherProps, ['otherProps', 'scrollFollowParent']))), hasDetail && (tooltip && lastDisabled[1] && detail ? _jsx(_Tooltip, {
|
282
288
|
title: detail,
|
283
289
|
children: _jsx("span", {
|
284
290
|
className: "pro-address-detail",
|
285
291
|
children: _jsx(_Input, {
|
286
|
-
disabled:
|
292
|
+
disabled: lastDisabled[1],
|
287
293
|
value: detail
|
288
294
|
})
|
289
295
|
})
|
290
296
|
}) : _jsx(_Input, {
|
291
297
|
allowClear: true,
|
292
298
|
autoComplete: "off",
|
293
|
-
disabled:
|
299
|
+
disabled: lastDisabled[1],
|
294
300
|
value: detail,
|
295
301
|
maxLength: detailMaxLength,
|
296
302
|
placeholder: detailPlaceholder || (locale === null || locale === void 0 ? void 0 : (_locale$ProAddressBar2 = locale.ProAddressBar) === null || _locale$ProAddressBar2 === void 0 ? void 0 : _locale$ProAddressBar2.detailPlaceholder),
|
@@ -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,
|
@@ -64,7 +72,7 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
64
72
|
}
|
65
73
|
if (isFunction(disabled)) {
|
66
74
|
// RangePicker返回数组时,特殊处理
|
67
|
-
if (['Group', 'RangePicker'].includes(type) && Array.isArray(disabled(values, {
|
75
|
+
if (['Group', 'RangePicker', 'ProCascader'].includes(type) && Array.isArray(disabled(values, {
|
68
76
|
form: form,
|
69
77
|
index: index,
|
70
78
|
namePath: namePath
|
@@ -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,
|
@@ -111,6 +111,12 @@ var ProCascader = function ProCascader(props) {
|
|
111
111
|
var result = (0, _index.transformDataName)(isAddressMode && realLevel === 2 ? _filterDataSource(innerDataSource, level, fieldNames) : innerDataSource, fieldNames);
|
112
112
|
return result;
|
113
113
|
}, [isAddressMode, addressCode, realLevel, dataSource, enumDataSource === null || enumDataSource === void 0 ? void 0 : enumDataSource.length]);
|
114
|
+
var lastDisabled = (0, _react.useMemo)(function () {
|
115
|
+
if ((0, _lodash.isBoolean)(disabled) || disabled === undefined) {
|
116
|
+
return [disabled, disabled];
|
117
|
+
}
|
118
|
+
return disabled;
|
119
|
+
}, [disabled]);
|
114
120
|
var _useRequest = (0, _objectSpread3.default)({}, useRequest),
|
115
121
|
service = _useRequest.service,
|
116
122
|
_useRequest$defaultPa = _useRequest.defaultParams,
|
@@ -268,7 +274,7 @@ var ProCascader = function ProCascader(props) {
|
|
268
274
|
placeholder: _locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProAddressBar = _locale.default.ProAddressBar) === null || _locale$ProAddressBar === void 0 ? void 0 : _locale$ProAddressBar.placeholder,
|
269
275
|
value: addressValue,
|
270
276
|
options: service ? serviceData : realDataSource,
|
271
|
-
disabled:
|
277
|
+
disabled: lastDisabled[0],
|
272
278
|
displayRender: displayRender,
|
273
279
|
showSearch: {
|
274
280
|
filter: handlefilter,
|
@@ -278,19 +284,19 @@ var ProCascader = function ProCascader(props) {
|
|
278
284
|
getPopupContainer: function getPopupContainer(trigger) {
|
279
285
|
return scrollFollowParent ? trigger.parentElement : document.body;
|
280
286
|
}
|
281
|
-
}, (0, _lodash.omit)(otherProps, ['otherProps', 'scrollFollowParent']))), hasDetail && (tooltip &&
|
287
|
+
}, (0, _lodash.omit)(otherProps, ['otherProps', 'scrollFollowParent']))), hasDetail && (tooltip && lastDisabled[1] && detail ? (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
282
288
|
title: detail,
|
283
289
|
children: (0, _jsxRuntime.jsx)("span", {
|
284
290
|
className: "pro-address-detail",
|
285
291
|
children: (0, _jsxRuntime.jsx)(_antd.Input, {
|
286
|
-
disabled:
|
292
|
+
disabled: lastDisabled[1],
|
287
293
|
value: detail
|
288
294
|
})
|
289
295
|
})
|
290
296
|
}) : (0, _jsxRuntime.jsx)(_antd.Input, {
|
291
297
|
allowClear: true,
|
292
298
|
autoComplete: "off",
|
293
|
-
disabled:
|
299
|
+
disabled: lastDisabled[1],
|
294
300
|
value: detail,
|
295
301
|
maxLength: detailMaxLength,
|
296
302
|
placeholder: detailPlaceholder || (_locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProAddressBar2 = _locale.default.ProAddressBar) === null || _locale$ProAddressBar2 === void 0 ? void 0 : _locale$ProAddressBar2.detailPlaceholder),
|
@@ -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,
|
@@ -71,7 +79,7 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
71
79
|
}
|
72
80
|
if ((0, _lodash.isFunction)(disabled)) {
|
73
81
|
// RangePicker返回数组时,特殊处理
|
74
|
-
if (['Group', 'RangePicker'].includes(type) && Array.isArray(disabled(values, {
|
82
|
+
if (['Group', 'RangePicker', 'ProCascader'].includes(type) && Array.isArray(disabled(values, {
|
75
83
|
form: form,
|
76
84
|
index: index,
|
77
85
|
namePath: namePath
|
@@ -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,
|