@zat-design/sisyphus-react 3.6.8-beta.5 → 3.6.9-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/dist/index.esm.css +41 -41
- package/dist/less.esm.css +41 -41
- package/es/ProEditTable/components/RenderField/ListChanged.d.ts +16 -0
- package/es/ProEditTable/components/RenderField/ListChanged.js +124 -0
- package/es/ProEditTable/components/RenderField/index.js +26 -46
- package/es/ProForm/components/combination/ProCascader/index.js +8 -14
- package/es/ProForm/components/render/Changed.d.ts +14 -0
- package/es/ProForm/components/render/Changed.js +60 -0
- package/es/ProForm/components/render/Render.js +25 -39
- package/es/ProForm/style/index.less +52 -52
- package/es/ProForm/utils/diffOriginal.d.ts +0 -1
- package/es/ProForm/utils/diffOriginal.js +4 -27
- package/es/ProForm/utils/useChanged.js +1 -2
- package/es/ProForm/utils/useListChanged.js +3 -3
- package/lib/ProEditTable/components/RenderField/ListChanged.d.ts +16 -0
- package/lib/ProEditTable/components/RenderField/ListChanged.js +129 -0
- package/lib/ProEditTable/components/RenderField/index.js +25 -41
- package/lib/ProForm/components/combination/ProCascader/index.js +6 -12
- package/lib/ProForm/components/render/Changed.d.ts +14 -0
- package/lib/ProForm/components/render/Changed.js +65 -0
- package/lib/ProForm/components/render/Render.js +25 -37
- package/lib/ProForm/style/index.less +52 -52
- package/lib/ProForm/utils/diffOriginal.d.ts +0 -1
- package/lib/ProForm/utils/diffOriginal.js +3 -27
- package/lib/ProForm/utils/useChanged.js +1 -2
- package/lib/ProForm/utils/useListChanged.js +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
var _antd = require("antd");
|
|
13
|
+
var _lodash = require("lodash");
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _diffOriginal = require("@/ProForm/utils/diffOriginal");
|
|
16
|
+
var _excluded = ["name", "names", "namesStr", "originalValues", "form", "equalWith", "children", "type", "originalDiffTip"];
|
|
17
|
+
var Changed = function Changed(props) {
|
|
18
|
+
var name = props.name,
|
|
19
|
+
names = props.names,
|
|
20
|
+
namesStr = props.namesStr,
|
|
21
|
+
originalValues = props.originalValues,
|
|
22
|
+
form = props.form,
|
|
23
|
+
equalWith = props.equalWith,
|
|
24
|
+
children = props.children,
|
|
25
|
+
type = props.type,
|
|
26
|
+
originalDiffTip = props.originalDiffTip,
|
|
27
|
+
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
28
|
+
// 不渲染tooltip
|
|
29
|
+
var notWatch = !originalDiffTip || ['FormList', 'ProEditTable'].includes(type);
|
|
30
|
+
var originalValue = (names === null || names === void 0 ? void 0 : names.length) ? names.map(function (name) {
|
|
31
|
+
return (0, _lodash.get)(originalValues, name);
|
|
32
|
+
}) : (0, _lodash.get)(originalValues, name);
|
|
33
|
+
var noChange = !equalWith && (!originalValues || originalValue === undefined);
|
|
34
|
+
var changed = (0, _react.useMemo)(function () {
|
|
35
|
+
if (notWatch || noChange) return false;
|
|
36
|
+
return (0, _diffOriginal.diffOriginal)({
|
|
37
|
+
originalValue: originalValue,
|
|
38
|
+
value: props.value,
|
|
39
|
+
form: form,
|
|
40
|
+
equalWith: equalWith
|
|
41
|
+
// name: namesStr || name,
|
|
42
|
+
});
|
|
43
|
+
}, [notWatch, noChange, props.value, originalValue]);
|
|
44
|
+
if (notWatch || noChange) {
|
|
45
|
+
return /*#__PURE__*/_react.default.isValidElement(children) && /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest));
|
|
46
|
+
}
|
|
47
|
+
return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
48
|
+
open: changed ? undefined : false,
|
|
49
|
+
getPopupContainer: function getPopupContainer(target) {
|
|
50
|
+
return target.parentElement;
|
|
51
|
+
},
|
|
52
|
+
title: (0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
53
|
+
children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), {}, {
|
|
54
|
+
isView: true,
|
|
55
|
+
value: originalValue,
|
|
56
|
+
checked: type === 'Switch' ? originalValue : undefined
|
|
57
|
+
})) : undefined]
|
|
58
|
+
}),
|
|
59
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
60
|
+
className: changed ? 'pro-form-item-changed' : '',
|
|
61
|
+
children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest)) : undefined
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
var _default = exports.default = Changed;
|
|
@@ -11,7 +11,6 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
11
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
14
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
14
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
16
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
16
|
var _antd = require("antd");
|
|
@@ -24,10 +23,10 @@ var _index = require("../../utils/index");
|
|
|
24
23
|
var _ProConfigProvider = require("../../../ProConfigProvider");
|
|
25
24
|
var _transformNames = _interopRequireDefault(require("../../utils/transformNames"));
|
|
26
25
|
var _valueType = _interopRequireDefault(require("../../utils/valueType"));
|
|
27
|
-
var _useChanged3 = require("../../utils/useChanged");
|
|
28
26
|
var _tip = _interopRequireDefault(require("../../../assets/tip.svg"));
|
|
29
27
|
var _useRules = _interopRequireDefault(require("../../utils/useRules"));
|
|
30
28
|
var _ConfirmWrapper = _interopRequireDefault(require("./ConfirmWrapper"));
|
|
29
|
+
var _Changed = _interopRequireDefault(require("./Changed"));
|
|
31
30
|
var _excluded = ["labelWidth", "hiddenNames", "trim", "upperCase", "className", "rules", "required", "labelRequired", "tooltip"];
|
|
32
31
|
/* eslint-disable prefer-destructuring */
|
|
33
32
|
// 这个组件只管渲染, 参数的整理在外部处理
|
|
@@ -99,18 +98,6 @@ var Render = function Render(props) {
|
|
|
99
98
|
return Array.isArray(name) ? name.join('_') : name;
|
|
100
99
|
}).join('-');
|
|
101
100
|
}, [otherProps === null || otherProps === void 0 ? void 0 : otherProps.names]);
|
|
102
|
-
// 判断当前字段是否变更
|
|
103
|
-
var _useChanged = (0, _useChanged3.useChanged)({
|
|
104
|
-
name: formItemProps.name,
|
|
105
|
-
names: otherProps.names,
|
|
106
|
-
namesStr: namesStr,
|
|
107
|
-
originalValues: originalValues,
|
|
108
|
-
form: form,
|
|
109
|
-
equalWith: equalWith
|
|
110
|
-
}),
|
|
111
|
-
_useChanged2 = (0, _slicedToArray2.default)(_useChanged, 2),
|
|
112
|
-
changed = _useChanged2[0],
|
|
113
|
-
originalValue = _useChanged2[1];
|
|
114
101
|
var internalRule = (0, _useRules.default)({
|
|
115
102
|
names: otherProps.names,
|
|
116
103
|
label: otherFormItemProps.label,
|
|
@@ -182,7 +169,7 @@ var Render = function Render(props) {
|
|
|
182
169
|
var lastComponentProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), _fieldProps), {}, {
|
|
183
170
|
disabled: lastDisabled
|
|
184
171
|
});
|
|
185
|
-
var _className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)(
|
|
172
|
+
var _className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, className, className), 'pro-form-item-width-auto', ['Switch'].includes(type)));
|
|
186
173
|
if (formItemProps.hidden === true || _show === false) {
|
|
187
174
|
// 为了监听shouldUpdate 必须存在一个FormItem, 空Input解决 【[antd: Form.Item] `name` is only used for validate React element】
|
|
188
175
|
return (0, _jsxRuntime.jsx)(_antd.Form.Item, {
|
|
@@ -444,7 +431,17 @@ var Render = function Render(props) {
|
|
|
444
431
|
// @ts-ignore
|
|
445
432
|
_internalItemRender: internalItemRender,
|
|
446
433
|
className: _className,
|
|
447
|
-
children:
|
|
434
|
+
children: (0, _jsxRuntime.jsx)(_Changed.default, {
|
|
435
|
+
name: formItemProps.name,
|
|
436
|
+
names: otherProps.names,
|
|
437
|
+
namesStr: namesStr,
|
|
438
|
+
originalValues: originalValues,
|
|
439
|
+
form: form,
|
|
440
|
+
equalWith: equalWith,
|
|
441
|
+
originalDiffTip: originalDiffTip,
|
|
442
|
+
type: type,
|
|
443
|
+
children: child
|
|
444
|
+
})
|
|
448
445
|
}));
|
|
449
446
|
var formItem = orgFormItem;
|
|
450
447
|
// 当存在shouldUpdate时捕获所有form变更(防止表单onchange设置form值时无法更新的问题)
|
|
@@ -460,32 +457,23 @@ var Render = function Render(props) {
|
|
|
460
457
|
// @ts-ignore
|
|
461
458
|
_internalItemRender: internalItemRender,
|
|
462
459
|
className: _className,
|
|
463
|
-
children:
|
|
460
|
+
children: (0, _jsxRuntime.jsx)(_Changed.default, {
|
|
461
|
+
name: formItemProps.name,
|
|
462
|
+
names: otherProps.names,
|
|
463
|
+
namesStr: namesStr,
|
|
464
|
+
originalValues: originalValues,
|
|
465
|
+
form: form,
|
|
466
|
+
equalWith: equalWith,
|
|
467
|
+
originalDiffTip: originalDiffTip,
|
|
468
|
+
type: type,
|
|
469
|
+
children: child
|
|
470
|
+
})
|
|
464
471
|
}));
|
|
465
472
|
}
|
|
466
473
|
})
|
|
467
474
|
});
|
|
468
475
|
}
|
|
469
|
-
|
|
470
|
-
if (!originalDiffTip || ['FormList', 'ProEditTable'].includes(type)) {
|
|
471
|
-
return formItem;
|
|
472
|
-
}
|
|
473
|
-
var title = (0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
474
|
-
children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.cloneElement(child, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
475
|
-
isView: true,
|
|
476
|
-
value: originalValue,
|
|
477
|
-
checked: type === 'Switch' ? originalValue : undefined
|
|
478
|
-
}))]
|
|
479
|
-
});
|
|
480
|
-
return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
481
|
-
title: title,
|
|
482
|
-
open: changed ? undefined : false,
|
|
483
|
-
// open={true}
|
|
484
|
-
getPopupContainer: function getPopupContainer(target) {
|
|
485
|
-
return target.parentElement;
|
|
486
|
-
},
|
|
487
|
-
children: formItem
|
|
488
|
-
});
|
|
476
|
+
return formItem;
|
|
489
477
|
};
|
|
490
478
|
var FormItem = (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
491
479
|
children: [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) {
|
|
@@ -116,58 +116,6 @@
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
// 比较原始值场景下 不同时的样式
|
|
120
|
-
&.pro-form-item-changed {
|
|
121
|
-
span.@{ant-prefix}-input-affix-wrapper,
|
|
122
|
-
.@{ant-prefix}-select-selector,
|
|
123
|
-
.@{ant-prefix}-picker,
|
|
124
|
-
.@{ant-prefix}-input-number {
|
|
125
|
-
background: @zaui-contract-bg !important;
|
|
126
|
-
|
|
127
|
-
input {
|
|
128
|
-
background: transparent;
|
|
129
|
-
}
|
|
130
|
-
.@{ant-prefix}-select-selection-placeholder {
|
|
131
|
-
z-index: 9;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
.@{ant-prefix}-form-item-control:has(.@{ant-prefix}-switch-handle),
|
|
136
|
-
.@{ant-prefix}-form-item-control:has(.@{ant-prefix}-checkbox-wrapper-in-form-item) {
|
|
137
|
-
background: @zaui-contract-bg;
|
|
138
|
-
border-radius: 4px;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// 地址组件
|
|
142
|
-
.@{ant-prefix}-form-item-control-input-content {
|
|
143
|
-
// 查看模式
|
|
144
|
-
& > span {
|
|
145
|
-
border-radius: 4px;
|
|
146
|
-
padding: 5px 8px;
|
|
147
|
-
background: @zaui-contract-bg;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
& > .pro-address {
|
|
151
|
-
.@{ant-prefix}-select-selector,
|
|
152
|
-
.@{ant-prefix}-input-affix-wrapper,
|
|
153
|
-
.@{ant-prefix}-input-disabled {
|
|
154
|
-
background: @zaui-contract-bg;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
& > .@{ant-prefix}-input-group {
|
|
158
|
-
.forever-checkbox {
|
|
159
|
-
background: @zaui-contract-bg;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
.pro-form-view-container {
|
|
165
|
-
padding: 4px 8px;
|
|
166
|
-
background: @zaui-contract-bg;
|
|
167
|
-
border-radius: 4px;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
119
|
.@{ant-prefix}-row {
|
|
172
120
|
width: 100%;
|
|
173
121
|
}
|
|
@@ -373,4 +321,56 @@
|
|
|
373
321
|
}
|
|
374
322
|
}
|
|
375
323
|
}
|
|
324
|
+
|
|
325
|
+
// 比较原始值场景下 不同时的样式
|
|
326
|
+
.pro-form-item-changed {
|
|
327
|
+
span.@{ant-prefix}-input-affix-wrapper,
|
|
328
|
+
.@{ant-prefix}-select-selector,
|
|
329
|
+
.@{ant-prefix}-picker,
|
|
330
|
+
.@{ant-prefix}-input-number {
|
|
331
|
+
background: @zaui-contract-bg !important;
|
|
332
|
+
|
|
333
|
+
input {
|
|
334
|
+
background: transparent;
|
|
335
|
+
}
|
|
336
|
+
.@{ant-prefix}-select-selection-placeholder {
|
|
337
|
+
z-index: 9;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.@{ant-prefix}-form-item-control:has(.@{ant-prefix}-switch-handle),
|
|
342
|
+
.@{ant-prefix}-form-item-control:has(.@{ant-prefix}-checkbox-wrapper-in-form-item) {
|
|
343
|
+
background: @zaui-contract-bg;
|
|
344
|
+
border-radius: 4px;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// 地址组件
|
|
348
|
+
.@{ant-prefix}-form-item-control-input-content {
|
|
349
|
+
// 查看模式
|
|
350
|
+
& > span {
|
|
351
|
+
border-radius: 4px;
|
|
352
|
+
padding: 5px 8px;
|
|
353
|
+
background: @zaui-contract-bg;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
& > .pro-address {
|
|
357
|
+
.@{ant-prefix}-select-selector,
|
|
358
|
+
.@{ant-prefix}-input-affix-wrapper,
|
|
359
|
+
.@{ant-prefix}-input-disabled {
|
|
360
|
+
background: @zaui-contract-bg;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
& > .@{ant-prefix}-input-group {
|
|
364
|
+
.forever-checkbox {
|
|
365
|
+
background: @zaui-contract-bg;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
.pro-form-view-container {
|
|
371
|
+
padding: 4px 8px;
|
|
372
|
+
background: @zaui-contract-bg;
|
|
373
|
+
border-radius: 4px;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
376
|
}
|
|
@@ -1,38 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.diffOriginal = void 0;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
7
|
var _lodash = require("lodash");
|
|
10
8
|
var nullValue = [null, undefined, '']; // 输入框空值时可能存在的三种值 视为相等
|
|
11
|
-
/** 将解构后的name值,反向转回names,例如 formData {a:1, b:2} names ['a', 'b'] 返回 [1,2] */
|
|
12
|
-
var extractValues = function extractValues(form, pathString) {
|
|
13
|
-
var _pathString;
|
|
14
|
-
var result = [];
|
|
15
|
-
var PrefixesName = (0, _lodash.isString)(pathString) ? [] : pathString.slice(0, -1);
|
|
16
|
-
if ((0, _lodash.isString)(pathString)) {
|
|
17
|
-
pathString.split('-').forEach(function (item) {
|
|
18
|
-
result.push(form.getFieldValue([].concat((0, _toConsumableArray2.default)(PrefixesName), [item])));
|
|
19
|
-
});
|
|
20
|
-
return result;
|
|
21
|
-
}
|
|
22
|
-
(_pathString = pathString[pathString.length - 1]) === null || _pathString === void 0 ? void 0 : _pathString.split('-').forEach(function (item) {
|
|
23
|
-
result.push(form.getFieldValue([].concat((0, _toConsumableArray2.default)(PrefixesName), [item])));
|
|
24
|
-
});
|
|
25
|
-
return result;
|
|
26
|
-
};
|
|
27
9
|
var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
|
|
28
|
-
var _name$join;
|
|
29
10
|
var originalValue = params.originalValue,
|
|
30
|
-
|
|
31
|
-
equalWith = params.equalWith
|
|
32
|
-
form = params.form,
|
|
33
|
-
name = params.name;
|
|
34
|
-
var isNames = Array.isArray(name) && ((_name$join = name.join(',')) === null || _name$join === void 0 ? void 0 : _name$join.includes('-')) || (name === null || name === void 0 ? void 0 : name.includes('-'));
|
|
35
|
-
var value = !isNames ? _value : extractValues(form, name);
|
|
11
|
+
value = params.value,
|
|
12
|
+
equalWith = params.equalWith;
|
|
36
13
|
// 支持传入自定义比较事件
|
|
37
14
|
if ((0, _lodash.isFunction)(equalWith)) {
|
|
38
15
|
return !equalWith(originalValue, value);
|
|
@@ -47,8 +24,7 @@ var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
|
|
|
47
24
|
});
|
|
48
25
|
}
|
|
49
26
|
if (!nullValue.includes(value) || !nullValue.includes(originalValue)) {
|
|
50
|
-
|
|
51
|
-
return res;
|
|
27
|
+
return !(0, _lodash.isEqual)(value, originalValue);
|
|
52
28
|
}
|
|
53
29
|
return false;
|
|
54
30
|
};
|
|
@@ -91,8 +91,8 @@ var useListChanged = exports.useListChanged = function useListChanged(params) {
|
|
|
91
91
|
value: value,
|
|
92
92
|
originalValue: originalValue,
|
|
93
93
|
form: form,
|
|
94
|
-
equalWith: equalWith
|
|
95
|
-
name:
|
|
94
|
+
equalWith: equalWith
|
|
95
|
+
// name: isString(namesStr) ? namesStr : originalName || name,
|
|
96
96
|
});
|
|
97
97
|
return [changed, originalValue];
|
|
98
98
|
};
|