@zat-design/sisyphus-react 3.6.8 → 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 +49 -41
- package/dist/less.esm.css +49 -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 +10 -15
- package/es/ProForm/components/combination/ProModalSelect/style/index.less +13 -1
- 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/es/ProSelect/index.js +4 -5
- package/es/ProSelect/index.less +2 -2
- package/es/global.less +2 -2
- 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 +8 -13
- package/lib/ProForm/components/combination/ProModalSelect/style/index.less +13 -1
- 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/lib/ProSelect/index.js +2 -3
- package/lib/ProSelect/index.less +2 -2
- package/lib/global.less +2 -2
- package/package.json +1 -1
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import "antd/es/col/style";
|
|
2
2
|
import _Col from "antd/es/col";
|
|
3
|
-
import "antd/es/tooltip/style";
|
|
4
|
-
import _Tooltip from "antd/es/tooltip";
|
|
5
3
|
import "antd/es/space/style";
|
|
6
4
|
import _Space from "antd/es/space";
|
|
7
5
|
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
@@ -13,7 +11,6 @@ import "antd/es/form/style";
|
|
|
13
11
|
import _Form from "antd/es/form";
|
|
14
12
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
15
13
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
16
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
17
14
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
18
15
|
var _excluded = ["labelWidth", "hiddenNames", "trim", "upperCase", "className", "rules", "required", "labelRequired", "tooltip"];
|
|
19
16
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
@@ -28,10 +25,10 @@ import { isTrim, isUpperCase, findOptionByValue, parseNamePath } from '../../uti
|
|
|
28
25
|
import { useProConfig } from '../../../ProConfigProvider';
|
|
29
26
|
import transformNames from '../../utils/transformNames';
|
|
30
27
|
import valueTypeMap from '../../utils/valueType';
|
|
31
|
-
import { useChanged } from '../../utils/useChanged';
|
|
32
28
|
import tipSvg from '../../../assets/tip.svg';
|
|
33
29
|
import useRules from '../../utils/useRules';
|
|
34
30
|
import ConfirmWrapper from './ConfirmWrapper';
|
|
31
|
+
import Changed from './Changed';
|
|
35
32
|
// 这个组件只管渲染, 参数的整理在外部处理
|
|
36
33
|
var Render = function Render(props) {
|
|
37
34
|
var _ref2, _ref3, _ref4, _ref5, _otherProps$names2;
|
|
@@ -101,18 +98,6 @@ var Render = function Render(props) {
|
|
|
101
98
|
return Array.isArray(name) ? name.join('_') : name;
|
|
102
99
|
}).join('-');
|
|
103
100
|
}, [otherProps === null || otherProps === void 0 ? void 0 : otherProps.names]);
|
|
104
|
-
// 判断当前字段是否变更
|
|
105
|
-
var _useChanged = useChanged({
|
|
106
|
-
name: formItemProps.name,
|
|
107
|
-
names: otherProps.names,
|
|
108
|
-
namesStr: namesStr,
|
|
109
|
-
originalValues: originalValues,
|
|
110
|
-
form: form,
|
|
111
|
-
equalWith: equalWith
|
|
112
|
-
}),
|
|
113
|
-
_useChanged2 = _slicedToArray(_useChanged, 2),
|
|
114
|
-
changed = _useChanged2[0],
|
|
115
|
-
originalValue = _useChanged2[1];
|
|
116
101
|
var internalRule = useRules({
|
|
117
102
|
names: otherProps.names,
|
|
118
103
|
label: otherFormItemProps.label,
|
|
@@ -184,7 +169,7 @@ var Render = function Render(props) {
|
|
|
184
169
|
var lastComponentProps = _objectSpread(_objectSpread(_objectSpread({}, componentProps), _fieldProps), {}, {
|
|
185
170
|
disabled: lastDisabled
|
|
186
171
|
});
|
|
187
|
-
var _className = classNames(_defineProperty(_defineProperty(
|
|
172
|
+
var _className = classNames(_defineProperty(_defineProperty({}, className, className), 'pro-form-item-width-auto', ['Switch'].includes(type)));
|
|
188
173
|
if (formItemProps.hidden === true || _show === false) {
|
|
189
174
|
// 为了监听shouldUpdate 必须存在一个FormItem, 空Input解决 【[antd: Form.Item] `name` is only used for validate React element】
|
|
190
175
|
return _jsx(_Form.Item, {
|
|
@@ -446,7 +431,17 @@ var Render = function Render(props) {
|
|
|
446
431
|
// @ts-ignore
|
|
447
432
|
_internalItemRender: internalItemRender,
|
|
448
433
|
className: _className,
|
|
449
|
-
children:
|
|
434
|
+
children: _jsx(Changed, {
|
|
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
|
+
})
|
|
450
445
|
}));
|
|
451
446
|
var formItem = orgFormItem;
|
|
452
447
|
// 当存在shouldUpdate时捕获所有form变更(防止表单onchange设置form值时无法更新的问题)
|
|
@@ -462,32 +457,23 @@ var Render = function Render(props) {
|
|
|
462
457
|
// @ts-ignore
|
|
463
458
|
_internalItemRender: internalItemRender,
|
|
464
459
|
className: _className,
|
|
465
|
-
children:
|
|
460
|
+
children: _jsx(Changed, {
|
|
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
|
+
})
|
|
466
471
|
}));
|
|
467
472
|
}
|
|
468
473
|
})
|
|
469
474
|
});
|
|
470
475
|
}
|
|
471
|
-
|
|
472
|
-
if (!originalDiffTip || ['FormList', 'ProEditTable'].includes(type)) {
|
|
473
|
-
return formItem;
|
|
474
|
-
}
|
|
475
|
-
var title = _jsxs(_Space, {
|
|
476
|
-
children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, child), {}, {
|
|
477
|
-
isView: true,
|
|
478
|
-
value: originalValue,
|
|
479
|
-
checked: type === 'Switch' ? originalValue : undefined
|
|
480
|
-
}))]
|
|
481
|
-
});
|
|
482
|
-
return _jsx(_Tooltip, {
|
|
483
|
-
title: title,
|
|
484
|
-
open: changed ? undefined : false,
|
|
485
|
-
// open={true}
|
|
486
|
-
getPopupContainer: function getPopupContainer(target) {
|
|
487
|
-
return target.parentElement;
|
|
488
|
-
},
|
|
489
|
-
children: formItem
|
|
490
|
-
});
|
|
476
|
+
return formItem;
|
|
491
477
|
};
|
|
492
478
|
var FormItem = _jsxs(_Fragment, {
|
|
493
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,31 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { isEqual, isFunction, isString } from 'lodash';
|
|
1
|
+
import { isEqual, isFunction } from 'lodash';
|
|
3
2
|
var nullValue = [null, undefined, '']; // 输入框空值时可能存在的三种值 视为相等
|
|
4
|
-
/** 将解构后的name值,反向转回names,例如 formData {a:1, b:2} names ['a', 'b'] 返回 [1,2] */
|
|
5
|
-
var extractValues = function extractValues(form, pathString) {
|
|
6
|
-
var _pathString;
|
|
7
|
-
var result = [];
|
|
8
|
-
var PrefixesName = isString(pathString) ? [] : pathString.slice(0, -1);
|
|
9
|
-
if (isString(pathString)) {
|
|
10
|
-
pathString.split('-').forEach(function (item) {
|
|
11
|
-
result.push(form.getFieldValue([].concat(_toConsumableArray(PrefixesName), [item])));
|
|
12
|
-
});
|
|
13
|
-
return result;
|
|
14
|
-
}
|
|
15
|
-
(_pathString = pathString[pathString.length - 1]) === null || _pathString === void 0 ? void 0 : _pathString.split('-').forEach(function (item) {
|
|
16
|
-
result.push(form.getFieldValue([].concat(_toConsumableArray(PrefixesName), [item])));
|
|
17
|
-
});
|
|
18
|
-
return result;
|
|
19
|
-
};
|
|
20
3
|
export var diffOriginal = function diffOriginal(params) {
|
|
21
|
-
var _name$join;
|
|
22
4
|
var originalValue = params.originalValue,
|
|
23
|
-
|
|
24
|
-
equalWith = params.equalWith
|
|
25
|
-
form = params.form,
|
|
26
|
-
name = params.name;
|
|
27
|
-
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('-'));
|
|
28
|
-
var value = !isNames ? _value : extractValues(form, name);
|
|
5
|
+
value = params.value,
|
|
6
|
+
equalWith = params.equalWith;
|
|
29
7
|
// 支持传入自定义比较事件
|
|
30
8
|
if (isFunction(equalWith)) {
|
|
31
9
|
return !equalWith(originalValue, value);
|
|
@@ -40,8 +18,7 @@ export var diffOriginal = function diffOriginal(params) {
|
|
|
40
18
|
});
|
|
41
19
|
}
|
|
42
20
|
if (!nullValue.includes(value) || !nullValue.includes(originalValue)) {
|
|
43
|
-
|
|
44
|
-
return res;
|
|
21
|
+
return !isEqual(value, originalValue);
|
|
45
22
|
}
|
|
46
23
|
return false;
|
|
47
24
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "antd/es/form/style";
|
|
2
2
|
import _Form from "antd/es/form";
|
|
3
|
-
import { get
|
|
3
|
+
import { get } from 'lodash';
|
|
4
4
|
import { diffOriginal } from './diffOriginal';
|
|
5
5
|
var toNamePath = function toNamePath(name) {
|
|
6
6
|
if (Array.isArray(name)) {
|
|
@@ -86,8 +86,8 @@ export var useListChanged = function useListChanged(params) {
|
|
|
86
86
|
value: value,
|
|
87
87
|
originalValue: originalValue,
|
|
88
88
|
form: form,
|
|
89
|
-
equalWith: equalWith
|
|
90
|
-
name: isString(namesStr) ? namesStr : originalName || name
|
|
89
|
+
equalWith: equalWith
|
|
90
|
+
// name: isString(namesStr) ? namesStr : originalName || name,
|
|
91
91
|
});
|
|
92
92
|
return [changed, originalValue];
|
|
93
93
|
};
|
package/es/ProSelect/index.js
CHANGED
|
@@ -12,8 +12,8 @@ import _Select from "antd/es/select";
|
|
|
12
12
|
var _excluded = ["dataSource", "defaultDisableValue", "useRequest", "fieldNames", "tooltip", "otherProps", "labelInValue", "filterInList", "scrollFollowParent", "defaultOne", "onSearch", "optionRender", "onChange", "updateDataSource", "transformResponse", "isView"];
|
|
13
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
14
|
import { useDeepCompareEffect, useRequest as useRequestFunc } from 'ahooks';
|
|
15
|
-
import React, { useImperativeHandle, useState, forwardRef
|
|
16
|
-
import { isFunction, isObject, isString, omit,
|
|
15
|
+
import React, { useImperativeHandle, useState, forwardRef } from 'react';
|
|
16
|
+
import { isFunction, isObject, isString, omit, isNumber } from 'lodash';
|
|
17
17
|
import { useProConfig } from '../ProConfigProvider';
|
|
18
18
|
import Container from '../ProForm/components/Container';
|
|
19
19
|
import AdaptiveTooltip from './components/AdaptiveTooltip';
|
|
@@ -55,7 +55,6 @@ export var ProSelect = function ProSelect(props, ref) {
|
|
|
55
55
|
transformResponse = props.transformResponse,
|
|
56
56
|
isViewPro = props.isView,
|
|
57
57
|
selectProps = _objectWithoutProperties(props, _excluded);
|
|
58
|
-
var refSelect1 = useRef();
|
|
59
58
|
selectProps.showCodeName = (_selectProps$showCode = selectProps.showCodeName) !== null && _selectProps$showCode !== void 0 ? _selectProps$showCode : showCodeName;
|
|
60
59
|
var value = props.value;
|
|
61
60
|
var _ref2 = ProForm.useFieldProps() || {},
|
|
@@ -283,7 +282,7 @@ export var ProSelect = function ProSelect(props, ref) {
|
|
|
283
282
|
}
|
|
284
283
|
return _jsx("div", {
|
|
285
284
|
style: props.style,
|
|
286
|
-
className: "
|
|
285
|
+
className: "pro-select",
|
|
287
286
|
children: _jsx(_Select, _objectSpread(_objectSpread({
|
|
288
287
|
placeholder: locale === null || locale === void 0 ? void 0 : (_locale$ProSelect = locale.ProSelect) === null || _locale$ProSelect === void 0 ? void 0 : _locale$ProSelect.select,
|
|
289
288
|
allowClear: true,
|
|
@@ -304,7 +303,7 @@ export var ProSelect = function ProSelect(props, ref) {
|
|
|
304
303
|
getPopupContainer: function getPopupContainer(trigger) {
|
|
305
304
|
return scrollFollowParent ? trigger.parentElement : document.body;
|
|
306
305
|
}
|
|
307
|
-
}, omit(
|
|
306
|
+
}, omit(_objectSpread({}, selectProps), ['isView', 'showCodeName', 'form', 'name', 'style', 'onFieldChange'])), {}, {
|
|
308
307
|
value: transformValue(),
|
|
309
308
|
children: Array.isArray(newSelectList) && newSelectList.map(function (item) {
|
|
310
309
|
return _jsx(Option, {
|
package/es/ProSelect/index.less
CHANGED
package/es/global.less
CHANGED
|
@@ -17,7 +17,7 @@ pre {
|
|
|
17
17
|
|
|
18
18
|
// 轨道
|
|
19
19
|
::-webkit-scrollbar-track {
|
|
20
|
-
background
|
|
20
|
+
background: transparent;
|
|
21
21
|
border-radius: 10px;
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -51,6 +51,6 @@ pre {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
:hover::-webkit-scrollbar-track {
|
|
54
|
-
background
|
|
54
|
+
background: transparent;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormInstance } from 'antd';
|
|
3
|
+
import { NamePath } from 'antd/lib/form/interface';
|
|
4
|
+
interface Props {
|
|
5
|
+
name?: NamePath;
|
|
6
|
+
names?: NamePath[];
|
|
7
|
+
originalName?: NamePath;
|
|
8
|
+
originalNames?: NamePath[];
|
|
9
|
+
namesStr?: NamePath;
|
|
10
|
+
originalValues?: any;
|
|
11
|
+
form: FormInstance;
|
|
12
|
+
equalWith?: (preValue: any, curValue: any) => boolean | undefined;
|
|
13
|
+
[name: string]: any;
|
|
14
|
+
}
|
|
15
|
+
declare const ListChanged: React.FC<Props>;
|
|
16
|
+
export default ListChanged;
|
|
@@ -0,0 +1,129 @@
|
|
|
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 _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _antd = require("antd");
|
|
14
|
+
var _lodash = require("lodash");
|
|
15
|
+
var _diffOriginal = require("@/ProForm/utils/diffOriginal");
|
|
16
|
+
var _excluded = ["name", "names", "namesStr", "originalName", "originalNames", "originalValues", "form", "equalWith", "rowKeyPath", "children", "type"];
|
|
17
|
+
var toNamePath = function toNamePath(name) {
|
|
18
|
+
if (Array.isArray(name)) {
|
|
19
|
+
return name;
|
|
20
|
+
}
|
|
21
|
+
return [name];
|
|
22
|
+
};
|
|
23
|
+
var toNamePaths = function toNamePaths(names) {
|
|
24
|
+
return names.map(function (name) {
|
|
25
|
+
return toNamePath(name);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
var getOriginalValue = function getOriginalValue(_ref) {
|
|
29
|
+
var namePath = _ref.namePath,
|
|
30
|
+
originalName = _ref.originalName,
|
|
31
|
+
originalNames = _ref.originalNames,
|
|
32
|
+
originalValues = _ref.originalValues,
|
|
33
|
+
rowKeyPath = _ref.rowKeyPath,
|
|
34
|
+
form = _ref.form;
|
|
35
|
+
if (!originalValues) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
if (rowKeyPath) {
|
|
39
|
+
var rowValueNamePath = namePath.slice(0, rowKeyPath.length - 1); // 表单中变动值所在行
|
|
40
|
+
var rowKeyName = rowKeyPath[rowKeyPath.length - 1]; // rowKey在行内的name
|
|
41
|
+
var rowValue = form.getFieldValue(rowValueNamePath);
|
|
42
|
+
if (!rowValue) return undefined;
|
|
43
|
+
var keyValue = rowValue[rowKeyName]; // 获取表单中rowKey值
|
|
44
|
+
if (!keyValue) return undefined;
|
|
45
|
+
var originalValueList = (0, _lodash.get)(originalValues, originalName.slice(0, rowKeyPath.length - 2));
|
|
46
|
+
var originalValueRow = originalValueList.find(function (item) {
|
|
47
|
+
return item[rowKeyPath[rowKeyPath.length - 1]] === keyValue;
|
|
48
|
+
});
|
|
49
|
+
var originalValue;
|
|
50
|
+
if (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) {
|
|
51
|
+
var originalNamesValue = originalNames.map(function (originalName) {
|
|
52
|
+
return (0, _lodash.get)(originalValueRow, originalName.slice(rowKeyPath.length - 1));
|
|
53
|
+
});
|
|
54
|
+
// 有可能出现数组中全是undefined的情况 视为没有值
|
|
55
|
+
var fillUndefined = originalNamesValue.every(function (valItem) {
|
|
56
|
+
return valItem === undefined;
|
|
57
|
+
});
|
|
58
|
+
originalValue = fillUndefined ? undefined : originalNamesValue;
|
|
59
|
+
} else {
|
|
60
|
+
originalValue = (0, _lodash.get)(originalValueRow, originalName.slice(rowKeyPath.length - 1));
|
|
61
|
+
}
|
|
62
|
+
return originalValue;
|
|
63
|
+
}
|
|
64
|
+
// 这个方法是给editTable专用的 暂时不存在不传rowKey的情况
|
|
65
|
+
return (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) ? originalNames.map(function (originalName) {
|
|
66
|
+
return (0, _lodash.get)(originalValues, originalName);
|
|
67
|
+
}) : (0, _lodash.get)(originalValues, originalName);
|
|
68
|
+
};
|
|
69
|
+
var ListChanged = function ListChanged(props) {
|
|
70
|
+
var name = props.name,
|
|
71
|
+
names = props.names,
|
|
72
|
+
namesStr = props.namesStr,
|
|
73
|
+
_props$originalName = props.originalName,
|
|
74
|
+
originalName = _props$originalName === void 0 ? name : _props$originalName,
|
|
75
|
+
_props$originalNames = props.originalNames,
|
|
76
|
+
originalNames = _props$originalNames === void 0 ? names : _props$originalNames,
|
|
77
|
+
originalValues = props.originalValues,
|
|
78
|
+
form = props.form,
|
|
79
|
+
equalWith = props.equalWith,
|
|
80
|
+
rowKeyPath = props.rowKeyPath,
|
|
81
|
+
children = props.children,
|
|
82
|
+
type = props.type,
|
|
83
|
+
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
84
|
+
var namePath = toNamePath(namesStr || name);
|
|
85
|
+
var originalNamePath = toNamePath(originalName);
|
|
86
|
+
var originalNamePaths = originalNames && toNamePaths(originalNames);
|
|
87
|
+
var notWatch = !originalValues || ['FormList', 'ProEditTable'].includes(type);
|
|
88
|
+
var originalValue = !notWatch ? getOriginalValue({
|
|
89
|
+
namePath: namePath,
|
|
90
|
+
originalName: originalNamePath,
|
|
91
|
+
originalNames: originalNamePaths,
|
|
92
|
+
originalValues: originalValues,
|
|
93
|
+
rowKeyPath: rowKeyPath,
|
|
94
|
+
form: form
|
|
95
|
+
}) : undefined;
|
|
96
|
+
var noChange = !equalWith && (!originalValues || originalValue === undefined);
|
|
97
|
+
var changed = (0, _react.useMemo)(function () {
|
|
98
|
+
if (notWatch || noChange) return false;
|
|
99
|
+
return (0, _diffOriginal.diffOriginal)({
|
|
100
|
+
value: props.value,
|
|
101
|
+
originalValue: originalValue,
|
|
102
|
+
form: form,
|
|
103
|
+
equalWith: equalWith
|
|
104
|
+
// name: isString(namesStr) ? namesStr : originalName || name,
|
|
105
|
+
});
|
|
106
|
+
}, [props.value, originalValue]);
|
|
107
|
+
if (notWatch || noChange) {
|
|
108
|
+
return /*#__PURE__*/_react.default.isValidElement(children) && /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest));
|
|
109
|
+
}
|
|
110
|
+
return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
111
|
+
open: changed ? undefined : false,
|
|
112
|
+
getPopupContainer: function getPopupContainer(target) {
|
|
113
|
+
return target.parentElement;
|
|
114
|
+
},
|
|
115
|
+
title: (0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
116
|
+
children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children), {}, {
|
|
117
|
+
// @ts-ignore
|
|
118
|
+
isView: true,
|
|
119
|
+
value: originalValue,
|
|
120
|
+
checked: type === 'Switch' ? originalValue : undefined
|
|
121
|
+
})) : undefined]
|
|
122
|
+
}),
|
|
123
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
124
|
+
className: changed ? 'pro-form-item-changed' : '',
|
|
125
|
+
children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest)) : undefined
|
|
126
|
+
})
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
var _default = exports.default = ListChanged;
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
10
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
12
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
12
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
@@ -26,10 +25,10 @@ var _ProConfigProvider = require("../../../ProConfigProvider");
|
|
|
26
25
|
var _Container = _interopRequireDefault(require("../../../ProForm/components/Container"));
|
|
27
26
|
var _transformNames = _interopRequireDefault(require("../../../ProForm/utils/transformNames"));
|
|
28
27
|
var _useFieldProps = require("../../../ProForm/utils/useFieldProps");
|
|
29
|
-
var _useListChanged3 = require("../../../ProForm/utils/useListChanged");
|
|
30
28
|
var _useRules = _interopRequireDefault(require("../../../ProForm/utils/useRules"));
|
|
31
29
|
var _utils = require("../../../ProForm/utils");
|
|
32
30
|
var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
|
|
31
|
+
var _ListChanged = _interopRequireDefault(require("./ListChanged"));
|
|
33
32
|
var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm", "validateTrigger"];
|
|
34
33
|
/* eslint-disable prefer-destructuring */
|
|
35
34
|
/* eslint-disable prefer-const */
|
|
@@ -494,21 +493,6 @@ var RenderField = function RenderField(_ref) {
|
|
|
494
493
|
return _ref3.apply(this, arguments);
|
|
495
494
|
};
|
|
496
495
|
}();
|
|
497
|
-
// 判断当前字段是否变更
|
|
498
|
-
var _useListChanged = (0, _useListChanged3.useListChanged)({
|
|
499
|
-
name: cellName,
|
|
500
|
-
names: names,
|
|
501
|
-
namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
|
|
502
|
-
rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
|
|
503
|
-
originalName: originalName,
|
|
504
|
-
originalNames: originalNames,
|
|
505
|
-
originalValues: originalValues,
|
|
506
|
-
form: form,
|
|
507
|
-
equalWith: equalWith
|
|
508
|
-
}),
|
|
509
|
-
_useListChanged2 = (0, _slicedToArray2.default)(_useListChanged, 2),
|
|
510
|
-
changed = _useListChanged2[0],
|
|
511
|
-
originalValue = _useListChanged2[1];
|
|
512
496
|
var componentProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
513
497
|
form: form,
|
|
514
498
|
name: cellName
|
|
@@ -554,16 +538,35 @@ var RenderField = function RenderField(_ref) {
|
|
|
554
538
|
if (isView) {
|
|
555
539
|
delete _formItemProps.rules;
|
|
556
540
|
}
|
|
557
|
-
var _className = (0, _classnames.default)((0, _defineProperty2.default)(
|
|
541
|
+
var _className = (0, _classnames.default)((0, _defineProperty2.default)({}, className, className));
|
|
558
542
|
var FormItem = null;
|
|
543
|
+
var FieldComponent = /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps));
|
|
544
|
+
if (originalValues) {
|
|
545
|
+
FieldComponent = (0, _jsxRuntime.jsx)(_ListChanged.default, {
|
|
546
|
+
name: cellName,
|
|
547
|
+
names: names,
|
|
548
|
+
namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
|
|
549
|
+
rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
|
|
550
|
+
originalName: originalName,
|
|
551
|
+
originalNames: originalNames,
|
|
552
|
+
originalValues: originalValues,
|
|
553
|
+
form: form,
|
|
554
|
+
equalWith: equalWith,
|
|
555
|
+
type: type,
|
|
556
|
+
children: FieldComponent
|
|
557
|
+
});
|
|
558
|
+
}
|
|
559
|
+
if ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) {
|
|
560
|
+
FieldComponent = (0, _jsxRuntime.jsx)(_ConfirmWrapper.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
|
|
561
|
+
children: FieldComponent
|
|
562
|
+
}));
|
|
563
|
+
}
|
|
559
564
|
FormItem = TargetComponent ? (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
560
565
|
validateFirst: true
|
|
561
566
|
}, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name', 'onCell'])), {}, {
|
|
562
567
|
className: _className,
|
|
563
568
|
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
|
|
564
|
-
children:
|
|
565
|
-
children: /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps))
|
|
566
|
-
})) : /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps))
|
|
569
|
+
children: FieldComponent
|
|
567
570
|
})) : (0, _jsxRuntime.jsx)(_Container.default, {
|
|
568
571
|
viewEmpty: viewEmpty
|
|
569
572
|
});
|
|
@@ -581,28 +584,9 @@ var RenderField = function RenderField(_ref) {
|
|
|
581
584
|
}
|
|
582
585
|
}));
|
|
583
586
|
}
|
|
584
|
-
var originalTitle = originalDiffTip && originalValues ? (0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
585
|
-
children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
|
|
586
|
-
isView: true,
|
|
587
|
-
value: originalValue,
|
|
588
|
-
checked: type === 'Switch' ? originalValue : undefined
|
|
589
|
-
}))) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
|
|
590
|
-
isView: true,
|
|
591
|
-
value: originalValue,
|
|
592
|
-
checked: type === 'Switch' ? originalValue : undefined
|
|
593
|
-
}))]
|
|
594
|
-
}) : null;
|
|
595
587
|
return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
|
|
596
588
|
value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
|
|
597
|
-
children:
|
|
598
|
-
title: originalTitle,
|
|
599
|
-
placement: "topLeft",
|
|
600
|
-
open: changed ? undefined : false,
|
|
601
|
-
getPopupContainer: function getPopupContainer(target) {
|
|
602
|
-
return target.parentElement;
|
|
603
|
-
},
|
|
604
|
-
children: FormItem
|
|
605
|
-
})
|
|
589
|
+
children: FormItem
|
|
606
590
|
});
|
|
607
591
|
};
|
|
608
592
|
var _default = exports.default = RenderField;
|