@zat-design/sisyphus-react 3.6.10 → 3.6.11
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 +52 -54
- package/dist/less.esm.css +52 -54
- 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 +27 -46
- package/es/ProEditTable/style/index.less +2 -1
- package/es/ProEditTable/utils/index.d.ts +1 -1
- package/es/ProEditTable/utils/index.js +19 -13
- package/es/ProEditTable/utils/tools.d.ts +6 -0
- package/es/ProEditTable/utils/tools.js +15 -2
- 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 +64 -0
- package/es/ProForm/components/render/Render.js +17 -37
- 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/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.d.ts +3 -1
- package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +108 -41
- package/es/ProTable/components/RcTable/components/DraggableTable/index.js +14 -1
- package/es/ProTable/index.js +6 -2
- package/es/ProTable/propsType.d.ts +22 -0
- package/es/ProTable/style/index.less +27 -32
- package/es/ProThemeTools/component/{PrdTools → ProTools}/index.d.ts +2 -2
- package/es/ProThemeTools/component/{PrdTools → ProTools}/index.js +2 -2
- package/es/ProThemeTools/component/index.d.ts +1 -2
- package/es/ProThemeTools/component/index.js +1 -2
- package/es/ProThemeTools/index.js +2 -2
- package/es/ProThemeTools/style/index.less +1 -1
- package/es/ProTreeModal/components/List.js +30 -4
- 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 +26 -41
- package/lib/ProEditTable/style/index.less +2 -1
- package/lib/ProEditTable/utils/index.d.ts +1 -1
- package/lib/ProEditTable/utils/index.js +17 -11
- package/lib/ProEditTable/utils/tools.d.ts +6 -0
- package/lib/ProEditTable/utils/tools.js +15 -1
- 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 +69 -0
- package/lib/ProForm/components/render/Render.js +17 -35
- 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/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.d.ts +3 -1
- package/lib/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +108 -41
- package/lib/ProTable/components/RcTable/components/DraggableTable/index.js +13 -1
- package/lib/ProTable/index.js +6 -2
- package/lib/ProTable/propsType.d.ts +22 -0
- package/lib/ProTable/style/index.less +27 -32
- package/lib/ProThemeTools/component/{PrdTools → ProTools}/index.d.ts +2 -2
- package/lib/ProThemeTools/component/{PrdTools → ProTools}/index.js +2 -2
- package/lib/ProThemeTools/component/index.d.ts +1 -2
- package/lib/ProThemeTools/component/index.js +3 -3
- package/lib/ProThemeTools/index.js +1 -1
- package/lib/ProThemeTools/style/index.less +1 -1
- package/lib/ProTreeModal/components/List.js +30 -4
- package/package.json +1 -1
- /package/es/ProThemeTools/component/{PrdTools → ProTools}/style/index.less +0 -0
- /package/lib/ProThemeTools/component/{PrdTools → ProTools}/style/index.less +0 -0
|
@@ -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"];
|
|
34
33
|
/* eslint-disable prefer-destructuring */
|
|
35
34
|
/* eslint-disable prefer-const */
|
|
@@ -492,21 +491,6 @@ var RenderField = function RenderField(_ref) {
|
|
|
492
491
|
return _ref3.apply(this, arguments);
|
|
493
492
|
};
|
|
494
493
|
}();
|
|
495
|
-
// 判断当前字段是否变更
|
|
496
|
-
var _useListChanged = (0, _useListChanged3.useListChanged)({
|
|
497
|
-
name: cellName,
|
|
498
|
-
names: names,
|
|
499
|
-
namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
|
|
500
|
-
rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
|
|
501
|
-
originalName: originalName,
|
|
502
|
-
originalNames: originalNames,
|
|
503
|
-
originalValues: originalValues,
|
|
504
|
-
form: form,
|
|
505
|
-
equalWith: equalWith
|
|
506
|
-
}),
|
|
507
|
-
_useListChanged2 = (0, _slicedToArray2.default)(_useListChanged, 2),
|
|
508
|
-
changed = _useListChanged2[0],
|
|
509
|
-
originalValue = _useListChanged2[1];
|
|
510
494
|
var componentProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
511
495
|
form: form,
|
|
512
496
|
name: cellName
|
|
@@ -552,16 +536,36 @@ var RenderField = function RenderField(_ref) {
|
|
|
552
536
|
if (isView) {
|
|
553
537
|
delete _formItemProps.rules;
|
|
554
538
|
}
|
|
555
|
-
var _className = (0, _classnames.default)((0, _defineProperty2.default)(
|
|
539
|
+
var _className = (0, _classnames.default)((0, _defineProperty2.default)({}, className, className));
|
|
556
540
|
var FormItem = null;
|
|
541
|
+
var FieldComponent = /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps));
|
|
542
|
+
if (originalValues) {
|
|
543
|
+
FieldComponent = (0, _jsxRuntime.jsx)(_ListChanged.default, {
|
|
544
|
+
name: cellName,
|
|
545
|
+
names: names,
|
|
546
|
+
namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
|
|
547
|
+
rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
|
|
548
|
+
originalName: originalName,
|
|
549
|
+
originalNames: originalNames,
|
|
550
|
+
originalValues: originalValues,
|
|
551
|
+
form: form,
|
|
552
|
+
equalWith: equalWith,
|
|
553
|
+
type: type,
|
|
554
|
+
onChange: _onChange,
|
|
555
|
+
children: FieldComponent
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
if ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) {
|
|
559
|
+
FieldComponent = (0, _jsxRuntime.jsx)(_ConfirmWrapper.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
|
|
560
|
+
children: FieldComponent
|
|
561
|
+
}));
|
|
562
|
+
}
|
|
557
563
|
FormItem = TargetComponent ? (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
558
564
|
validateFirst: true
|
|
559
565
|
}, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name', 'onCell'])), {}, {
|
|
560
566
|
className: _className,
|
|
561
567
|
name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
|
|
562
|
-
children:
|
|
563
|
-
children: /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps))
|
|
564
|
-
})) : /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps))
|
|
568
|
+
children: FieldComponent
|
|
565
569
|
})) : (0, _jsxRuntime.jsx)(_Container.default, {
|
|
566
570
|
viewEmpty: viewEmpty
|
|
567
571
|
});
|
|
@@ -579,28 +583,9 @@ var RenderField = function RenderField(_ref) {
|
|
|
579
583
|
}
|
|
580
584
|
}));
|
|
581
585
|
}
|
|
582
|
-
var originalTitle = originalDiffTip && originalValues ? (0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
583
|
-
children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
|
|
584
|
-
isView: true,
|
|
585
|
-
value: originalValue,
|
|
586
|
-
checked: type === 'Switch' ? originalValue : undefined
|
|
587
|
-
}))) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
|
|
588
|
-
isView: true,
|
|
589
|
-
value: originalValue,
|
|
590
|
-
checked: type === 'Switch' ? originalValue : undefined
|
|
591
|
-
}))]
|
|
592
|
-
}) : null;
|
|
593
586
|
return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
|
|
594
587
|
value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
|
|
595
|
-
children:
|
|
596
|
-
title: originalTitle,
|
|
597
|
-
placement: "topLeft",
|
|
598
|
-
open: changed ? undefined : false,
|
|
599
|
-
getPopupContainer: function getPopupContainer(target) {
|
|
600
|
-
return target.parentElement;
|
|
601
|
-
},
|
|
602
|
-
children: FormItem
|
|
603
|
-
})
|
|
588
|
+
children: FormItem
|
|
604
589
|
});
|
|
605
590
|
};
|
|
606
591
|
var _default = exports.default = RenderField;
|
|
@@ -29,16 +29,21 @@ var _excluded = ["type", "label", "show", "needConfirm", "onHandle", "onClick"],
|
|
|
29
29
|
_excluded2 = ["title", "icon"];
|
|
30
30
|
// 渲染操作栏
|
|
31
31
|
var getActionColumn = function getActionColumn(config) {
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
var _cloneDeepWith = (0, _lodash.cloneDeepWith)(config, function (value) {
|
|
33
|
+
if ( /*#__PURE__*/_react.default.isValidElement(value)) {
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
}),
|
|
37
|
+
disabled = _cloneDeepWith.disabled,
|
|
38
|
+
name = _cloneDeepWith.name,
|
|
39
|
+
form = _cloneDeepWith.form,
|
|
40
|
+
virtualKey = _cloneDeepWith.virtualKey,
|
|
41
|
+
validateKeys = _cloneDeepWith.validateKeys,
|
|
42
|
+
actionWidth = _cloneDeepWith.actionWidth,
|
|
43
|
+
actionProps = _cloneDeepWith.actionProps,
|
|
44
|
+
page = _cloneDeepWith.page,
|
|
45
|
+
rowDisabled = _cloneDeepWith.rowDisabled,
|
|
46
|
+
actionDirection = _cloneDeepWith.actionDirection;
|
|
42
47
|
var pageNum = _utils.tools.calc(page.pageNum, '-', 1);
|
|
43
48
|
var firstIndex = _utils.tools.calc(pageNum, '*', page.pageSize);
|
|
44
49
|
// actionProps配置为false 默认不插入
|
|
@@ -199,7 +204,8 @@ var transformColumns = exports.transformColumns = function transformColumns() {
|
|
|
199
204
|
setState = config.setState,
|
|
200
205
|
page = config.page;
|
|
201
206
|
var isCell = mode === 'cell';
|
|
202
|
-
var _columns = (0,
|
|
207
|
+
var _columns = (0, _tools.cloneDeepFilterNode)(columns);
|
|
208
|
+
// 你的函数代码
|
|
203
209
|
var _cacheMap = (0, _objectSpread2.default)({}, cacheMap.current);
|
|
204
210
|
var pageNum = _utils.tools.calc(page.pageNum, '-', 1);
|
|
205
211
|
var firstIndex = _utils.tools.calc(pageNum, '*', page.pageSize);
|
|
@@ -29,3 +29,9 @@ export declare const getDisabled: ({ globalControl, formDisabled, column, tabled
|
|
|
29
29
|
/** 表格自动滚动到报错位置
|
|
30
30
|
*/
|
|
31
31
|
export declare const handleScrollToError: () => void;
|
|
32
|
+
/**
|
|
33
|
+
* 深copy一个对象,并过滤掉其中的React节点
|
|
34
|
+
* @param value 需要深拷贝的对象
|
|
35
|
+
* @returns 深拷贝后的对象,其中的React节点会被保留
|
|
36
|
+
*/
|
|
37
|
+
export declare function cloneDeepFilterNode(value: any): any;
|
|
@@ -4,8 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
exports.cloneDeepFilterNode = cloneDeepFilterNode;
|
|
7
8
|
exports.splitNames = exports.onDelete = exports.handleScrollToError = exports.getRandom = exports.getNamePath = exports.getDisabled = exports.difference = exports.customValidate = void 0;
|
|
8
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
11
|
var _lodash = require("lodash");
|
|
10
12
|
var getRandom = exports.getRandom = function getRandom() {
|
|
11
13
|
return Math.random().toString(36).slice(-6);
|
|
@@ -189,4 +191,16 @@ var handleScrollToError = exports.handleScrollToError = function handleScrollToE
|
|
|
189
191
|
}
|
|
190
192
|
}
|
|
191
193
|
}, 0);
|
|
192
|
-
};
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* 深copy一个对象,并过滤掉其中的React节点
|
|
197
|
+
* @param value 需要深拷贝的对象
|
|
198
|
+
* @returns 深拷贝后的对象,其中的React节点会被保留
|
|
199
|
+
*/
|
|
200
|
+
function cloneDeepFilterNode(value) {
|
|
201
|
+
return (0, _lodash.cloneDeepWith)(value, function (val) {
|
|
202
|
+
if ( /*#__PURE__*/_react.default.isValidElement(val)) {
|
|
203
|
+
return val;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
@@ -21,6 +21,7 @@ var _ProConfigProvider = require("../../../../ProConfigProvider");
|
|
|
21
21
|
var _useEnum = _interopRequireDefault(require("../../../../ProEnum/hooks/useEnum"));
|
|
22
22
|
var _locale = _interopRequireDefault(require("../../../../locale"));
|
|
23
23
|
var _ = _interopRequireDefault(require("../../.."));
|
|
24
|
+
var _Container = _interopRequireDefault(require("../../Container"));
|
|
24
25
|
var _excluded = ["className", "hasDetail", "detailMaxLength", "fieldNames", "value", "disabled", "dataSource", "onChange", "useRequest", "transformResponse", "level", "isView", "enumCode", "code", "tooltip", "separator", "detailPlaceholder"];
|
|
25
26
|
var Text = _antd.Typography.Text;
|
|
26
27
|
var defaultFieldNames = {
|
|
@@ -82,7 +83,8 @@ var ProCascader = function ProCascader(props) {
|
|
|
82
83
|
detailPlaceholder = props.detailPlaceholder,
|
|
83
84
|
otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
84
85
|
var _ref3 = _.default.useFieldProps() || {},
|
|
85
|
-
isViewCon = _ref3.isView
|
|
86
|
+
isViewCon = _ref3.isView,
|
|
87
|
+
viewEmpty = _ref3.viewEmpty;
|
|
86
88
|
var addressCode = code || enumCode;
|
|
87
89
|
var realIsView = typeof isView === 'boolean' ? isView : isViewCon;
|
|
88
90
|
var realLevel = Math.max(2, level);
|
|
@@ -238,17 +240,9 @@ var ProCascader = function ProCascader(props) {
|
|
|
238
240
|
}
|
|
239
241
|
}
|
|
240
242
|
};
|
|
241
|
-
return realIsView ?
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
children: (0, _jsxRuntime.jsx)(Text, {
|
|
245
|
-
ellipsis: {
|
|
246
|
-
tooltip: false
|
|
247
|
-
},
|
|
248
|
-
children: viewValue
|
|
249
|
-
})
|
|
250
|
-
}) : (0, _jsxRuntime.jsx)("span", {
|
|
251
|
-
className: className,
|
|
243
|
+
return realIsView ? (0, _jsxRuntime.jsx)(_Container.default, {
|
|
244
|
+
tooltip: !!tooltip,
|
|
245
|
+
viewEmpty: viewEmpty,
|
|
252
246
|
children: viewValue
|
|
253
247
|
}) : (0, _jsxRuntime.jsxs)("div", {
|
|
254
248
|
className: "pro-address ".concat(className),
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FormInstance } from 'antd';
|
|
2
|
+
import { NamePath } from 'antd/lib/form/interface';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
interface Props {
|
|
5
|
+
name?: NamePath;
|
|
6
|
+
names?: NamePath[];
|
|
7
|
+
namesStr?: string;
|
|
8
|
+
originalValues?: any;
|
|
9
|
+
form: FormInstance;
|
|
10
|
+
equalWith?: (preValue: any, curValue: any) => boolean | undefined;
|
|
11
|
+
[name: string]: any;
|
|
12
|
+
}
|
|
13
|
+
declare const Changed: React.FC<Props>;
|
|
14
|
+
export default Changed;
|
|
@@ -0,0 +1,69 @@
|
|
|
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("../../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
|
+
var tipContent = (0, _react.useMemo)(function () {
|
|
45
|
+
if (notWatch || noChange) return undefined;
|
|
46
|
+
return /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), {}, {
|
|
47
|
+
isView: true,
|
|
48
|
+
value: originalValue,
|
|
49
|
+
checked: type === 'Switch' ? originalValue : undefined
|
|
50
|
+
})) : undefined;
|
|
51
|
+
}, [originalValue, children]);
|
|
52
|
+
if (notWatch || noChange) {
|
|
53
|
+
return /*#__PURE__*/_react.default.isValidElement(children) && /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest));
|
|
54
|
+
}
|
|
55
|
+
return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
56
|
+
open: changed ? undefined : false,
|
|
57
|
+
getPopupContainer: function getPopupContainer(target) {
|
|
58
|
+
return target.parentElement;
|
|
59
|
+
},
|
|
60
|
+
title: (0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
61
|
+
children: ["\u521D\u59CB\u503C\uFF1A", tipContent]
|
|
62
|
+
}),
|
|
63
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
64
|
+
className: changed ? 'pro-form-item-changed' : '',
|
|
65
|
+
children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest)) : undefined
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
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, {
|
|
@@ -440,6 +427,20 @@ var Render = function Render(props) {
|
|
|
440
427
|
span: 24 // 默认占一行
|
|
441
428
|
});
|
|
442
429
|
}
|
|
430
|
+
if (originalValues) {
|
|
431
|
+
child = (0, _jsxRuntime.jsx)(_Changed.default, {
|
|
432
|
+
name: formItemProps.name,
|
|
433
|
+
names: otherProps.names,
|
|
434
|
+
namesStr: namesStr,
|
|
435
|
+
originalValues: originalValues,
|
|
436
|
+
form: form,
|
|
437
|
+
equalWith: equalWith,
|
|
438
|
+
originalDiffTip: originalDiffTip,
|
|
439
|
+
type: type,
|
|
440
|
+
onChange: handleChange,
|
|
441
|
+
children: child
|
|
442
|
+
});
|
|
443
|
+
}
|
|
443
444
|
var orgFormItem = (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.omit)(_otherFormItemProps, filterFormItemKey)), {}, {
|
|
444
445
|
// @ts-ignore
|
|
445
446
|
_internalItemRender: internalItemRender,
|
|
@@ -466,26 +467,7 @@ var Render = function Render(props) {
|
|
|
466
467
|
})
|
|
467
468
|
});
|
|
468
469
|
}
|
|
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
|
-
});
|
|
470
|
+
return formItem;
|
|
489
471
|
};
|
|
490
472
|
var FormItem = (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
491
473
|
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) {
|