@zat-design/sisyphus-react 3.7.3-beta.1 → 3.7.3-beta.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 +79 -0
- package/dist/less.esm.css +76 -0
- package/es/ProEditTable/components/RenderField/{ListChanged.d.ts → ListChangedWrapper.d.ts} +4 -3
- package/es/ProEditTable/components/RenderField/{ListChanged.js → ListChangedWrapper.js} +22 -10
- package/es/ProEditTable/components/RenderField/index.js +2 -2
- package/es/ProEnum/index.js +5 -4
- package/es/ProEnum/style/index.less +12 -4
- package/es/ProEnum/utils/index.d.ts +1 -1
- package/es/ProEnum/utils/index.js +4 -0
- package/es/ProForm/components/combination/Container/index.js +5 -3
- package/es/ProForm/components/combination/Container/propsType.d.ts +2 -1
- package/es/ProForm/components/combination/ProNumberRange/index.js +3 -1
- package/es/ProForm/components/render/ChangedWrapper.d.ts +16 -0
- package/es/ProForm/components/render/{Changed.js → ChangedWrapper.js} +43 -15
- package/es/ProForm/components/render/Render.js +7 -8
- package/es/ProForm/components/render/RenderFields.d.ts +2 -3
- package/es/ProForm/components/render/RenderFields.js +3 -4
- package/es/ProForm/components/render/propsType.d.ts +4 -3
- package/es/ProForm/index.js +3 -6
- package/es/ProForm/propsType.d.ts +12 -2
- package/es/ProForm/style/index.less +102 -4
- package/es/ProForm/utils/diffOriginal.d.ts +4 -4
- package/es/ProForm/utils/diffOriginal.js +18 -7
- package/es/ProStep/components/Listener/index.d.ts +1 -1
- package/es/ProStep/components/Listener/index.js +5 -2
- package/es/ProStep/index.d.ts +1 -1
- package/es/ProStep/index.js +24 -17
- package/es/ProTree/components/ProTreeSelect/style/index.less +2 -2
- package/es/style/theme/antd.less +5 -0
- package/es/style/theme/index.less +1 -0
- package/es/style/theme/tokens.less +1 -0
- package/es/utils/index.d.ts +2 -0
- package/es/utils/index.js +13 -0
- package/lib/ProEditTable/components/RenderField/{ListChanged.d.ts → ListChangedWrapper.d.ts} +4 -3
- package/lib/ProEditTable/components/RenderField/{ListChanged.js → ListChangedWrapper.js} +25 -11
- package/lib/ProEditTable/components/RenderField/index.js +2 -2
- package/lib/ProEnum/index.js +5 -4
- package/lib/ProEnum/style/index.less +12 -4
- package/lib/ProEnum/utils/index.d.ts +1 -1
- package/lib/ProEnum/utils/index.js +4 -0
- package/lib/ProForm/components/combination/Container/index.js +5 -3
- package/lib/ProForm/components/combination/Container/propsType.d.ts +2 -1
- package/lib/ProForm/components/combination/ProNumberRange/index.js +3 -1
- package/lib/ProForm/components/render/ChangedWrapper.d.ts +16 -0
- package/lib/ProForm/components/render/{Changed.js → ChangedWrapper.js} +43 -15
- package/lib/ProForm/components/render/Render.js +7 -8
- package/lib/ProForm/components/render/RenderFields.d.ts +2 -3
- package/lib/ProForm/components/render/RenderFields.js +3 -4
- package/lib/ProForm/components/render/propsType.d.ts +4 -3
- package/lib/ProForm/index.js +3 -6
- package/lib/ProForm/propsType.d.ts +12 -2
- package/lib/ProForm/style/index.less +102 -4
- package/lib/ProForm/utils/diffOriginal.d.ts +4 -4
- package/lib/ProForm/utils/diffOriginal.js +18 -7
- package/lib/ProStep/components/Listener/index.d.ts +1 -1
- package/lib/ProStep/components/Listener/index.js +5 -2
- package/lib/ProStep/index.d.ts +1 -1
- package/lib/ProStep/index.js +24 -17
- package/lib/ProTree/components/ProTreeSelect/style/index.less +2 -2
- package/lib/style/theme/antd.less +5 -0
- package/lib/style/theme/index.less +1 -0
- package/lib/style/theme/tokens.less +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +19 -0
- package/package.json +2 -1
- package/es/ProForm/components/render/Changed.d.ts +0 -14
- package/lib/ProForm/components/render/Changed.d.ts +0 -14
- /package/es/ProForm/utils/{useChanged.d.ts → _useChanged.d.ts} +0 -0
- /package/es/ProForm/utils/{useChanged.js → _useChanged.js} +0 -0
- /package/es/ProForm/utils/{useListChanged.d.ts → _useListChanged.d.ts} +0 -0
- /package/es/ProForm/utils/{useListChanged.js → _useListChanged.js} +0 -0
- /package/lib/ProForm/utils/{useChanged.d.ts → _useChanged.d.ts} +0 -0
- /package/lib/ProForm/utils/{useChanged.js → _useChanged.js} +0 -0
- /package/lib/ProForm/utils/{useListChanged.d.ts → _useListChanged.d.ts} +0 -0
- /package/lib/ProForm/utils/{useListChanged.js → _useListChanged.js} +0 -0
|
@@ -11,8 +11,11 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _antd = require("antd");
|
|
14
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
15
|
var _lodash = require("lodash");
|
|
15
16
|
var _diffOriginal = require("../../../ProForm/utils/diffOriginal");
|
|
17
|
+
var _ProConfigProvider = require("../../../ProConfigProvider");
|
|
18
|
+
var _utils = require("../../../utils");
|
|
16
19
|
var _excluded = ["name", "names", "namesStr", "originalName", "originalNames", "originalValues", "form", "equalWith", "rowKeyPath", "children", "type"];
|
|
17
20
|
var toNamePath = function toNamePath(name) {
|
|
18
21
|
if (Array.isArray(name)) {
|
|
@@ -66,7 +69,7 @@ var getOriginalValue = function getOriginalValue(_ref) {
|
|
|
66
69
|
return (0, _lodash.get)(originalValues, originalName);
|
|
67
70
|
}) : (0, _lodash.get)(originalValues, originalName);
|
|
68
71
|
};
|
|
69
|
-
var
|
|
72
|
+
var ListChangedWrapper = function ListChangedWrapper(props) {
|
|
70
73
|
var name = props.name,
|
|
71
74
|
names = props.names,
|
|
72
75
|
namesStr = props.namesStr,
|
|
@@ -81,11 +84,13 @@ var ListChanged = function ListChanged(props) {
|
|
|
81
84
|
children = props.children,
|
|
82
85
|
type = props.type,
|
|
83
86
|
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
87
|
+
var _ref2 = (0, _ProConfigProvider.useProConfig)('ProEditTable') || {},
|
|
88
|
+
isDiffAll = _ref2.isDiffAll;
|
|
84
89
|
var namePath = toNamePath(namesStr || name);
|
|
85
90
|
var originalNamePath = toNamePath(originalName);
|
|
86
91
|
var originalNamePaths = originalNames && toNamePaths(originalNames);
|
|
87
|
-
var
|
|
88
|
-
var originalValue =
|
|
92
|
+
var isWatch = originalValues && !['FormList', 'ProEditTable'].includes(type);
|
|
93
|
+
var originalValue = isWatch ? getOriginalValue({
|
|
89
94
|
namePath: namePath,
|
|
90
95
|
originalName: originalNamePath,
|
|
91
96
|
originalNames: originalNamePaths,
|
|
@@ -93,9 +98,9 @@ var ListChanged = function ListChanged(props) {
|
|
|
93
98
|
rowKeyPath: rowKeyPath,
|
|
94
99
|
form: form
|
|
95
100
|
}) : undefined;
|
|
96
|
-
var noChange = !equalWith && (!originalValues ||
|
|
97
|
-
var
|
|
98
|
-
if (
|
|
101
|
+
var noChange = !equalWith && (!originalValues || isDiffAll ? false : (0, _utils.isEmpty)(originalValue));
|
|
102
|
+
var diffType = (0, _react.useMemo)(function () {
|
|
103
|
+
if (!isWatch || noChange) return 'same';
|
|
99
104
|
return (0, _diffOriginal.diffOriginal)({
|
|
100
105
|
value: props.value,
|
|
101
106
|
originalValue: originalValue,
|
|
@@ -104,11 +109,20 @@ var ListChanged = function ListChanged(props) {
|
|
|
104
109
|
// name: isString(namesStr) ? namesStr : originalName || name,
|
|
105
110
|
});
|
|
106
111
|
}, [props.value, originalValue]);
|
|
107
|
-
|
|
112
|
+
var isAdd = diffType === 'add';
|
|
113
|
+
var isChanged = diffType === 'changed';
|
|
114
|
+
if (!isWatch || noChange) {
|
|
108
115
|
return /*#__PURE__*/_react.default.isValidElement(children) && /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest));
|
|
109
116
|
}
|
|
110
|
-
|
|
111
|
-
|
|
117
|
+
var diffClassName = (0, _classnames.default)({
|
|
118
|
+
'pro-form-item-changed': isChanged,
|
|
119
|
+
'pro-form-item-add': isAdd
|
|
120
|
+
});
|
|
121
|
+
return (0, _jsxRuntime.jsx)(_antd.Tooltip
|
|
122
|
+
// 传入undefined 鼠标移入显示移出隐藏
|
|
123
|
+
, {
|
|
124
|
+
// 传入undefined 鼠标移入显示移出隐藏
|
|
125
|
+
open: isChanged ? undefined : false,
|
|
112
126
|
getPopupContainer: function getPopupContainer(target) {
|
|
113
127
|
return target.parentElement;
|
|
114
128
|
},
|
|
@@ -121,9 +135,9 @@ var ListChanged = function ListChanged(props) {
|
|
|
121
135
|
})) : undefined]
|
|
122
136
|
}),
|
|
123
137
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
124
|
-
className:
|
|
138
|
+
className: diffClassName,
|
|
125
139
|
children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest)) : undefined
|
|
126
140
|
})
|
|
127
141
|
});
|
|
128
142
|
};
|
|
129
|
-
var _default = exports.default =
|
|
143
|
+
var _default = exports.default = ListChangedWrapper;
|
|
@@ -29,7 +29,7 @@ var _useRules = _interopRequireDefault(require("../../../ProForm/utils/useRules"
|
|
|
29
29
|
var _utils = require("../../../ProForm/utils");
|
|
30
30
|
var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
|
|
31
31
|
var _getDefaultProps = require("../../utils/getDefaultProps");
|
|
32
|
-
var
|
|
32
|
+
var _ListChangedWrapper = _interopRequireDefault(require("./ListChangedWrapper"));
|
|
33
33
|
var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm"];
|
|
34
34
|
/* eslint-disable prefer-destructuring */
|
|
35
35
|
/* eslint-disable prefer-const */
|
|
@@ -554,7 +554,7 @@ var RenderField = function RenderField(_ref) {
|
|
|
554
554
|
var FormItem = null;
|
|
555
555
|
var FieldComponent = /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps));
|
|
556
556
|
if (originalValues) {
|
|
557
|
-
FieldComponent = (0, _jsxRuntime.jsx)(
|
|
557
|
+
FieldComponent = (0, _jsxRuntime.jsx)(_ListChangedWrapper.default, {
|
|
558
558
|
name: cellName,
|
|
559
559
|
names: names,
|
|
560
560
|
namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
|
package/lib/ProEnum/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var _getEnumLabel = _interopRequireDefault(require("./utils/getEnumLabel"));
|
|
|
26
26
|
var _useEnum = _interopRequireDefault(require("./hooks/useEnum"));
|
|
27
27
|
var _locale = _interopRequireDefault(require("../locale"));
|
|
28
28
|
require("./style/index.less");
|
|
29
|
-
var _excluded = ["code", "type", "dataSource", "useRequest", "value", "component", "onChange", "transformResponse", "otherProps"],
|
|
29
|
+
var _excluded = ["code", "type", "dataSource", "useRequest", "value", "component", "onChange", "transformResponse", "otherProps", "isView"],
|
|
30
30
|
_excluded2 = ["fieldNames", "clear", "cacheKey", "showCodeName"];
|
|
31
31
|
var ProEnum = function ProEnum(props) {
|
|
32
32
|
var _enumProps$showCodeNa;
|
|
@@ -40,10 +40,11 @@ var ProEnum = function ProEnum(props) {
|
|
|
40
40
|
onChange = props.onChange,
|
|
41
41
|
transformResponse = props.transformResponse,
|
|
42
42
|
otherProps = props.otherProps,
|
|
43
|
+
isView = props.isView,
|
|
43
44
|
enumProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
44
45
|
var _ref = otherProps || {},
|
|
45
|
-
isView = _ref.isView,
|
|
46
46
|
viewEmpty = _ref.viewEmpty;
|
|
47
|
+
var _isView = isView || (otherProps === null || otherProps === void 0 ? void 0 : otherProps.isView);
|
|
47
48
|
var _ref2 = (0, _ProConfigProvider.useProConfig)('ProEnum') || {},
|
|
48
49
|
fieldNames = _ref2.fieldNames,
|
|
49
50
|
_ref2$clear = _ref2.clear,
|
|
@@ -227,7 +228,7 @@ var ProEnum = function ProEnum(props) {
|
|
|
227
228
|
if (!code && !dataSource && !useRequest) {
|
|
228
229
|
var _locale$ProEnum4;
|
|
229
230
|
_antd.message.error(_locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProEnum4 = _locale.default.ProEnum) === null || _locale$ProEnum4 === void 0 ? void 0 : _locale$ProEnum4.errorNoEnumType);
|
|
230
|
-
return;
|
|
231
|
+
// return;
|
|
231
232
|
}
|
|
232
233
|
var transToLabel = function transToLabel(value) {
|
|
233
234
|
var list = dataList && dataList.length ? dataList : enumLists;
|
|
@@ -272,7 +273,7 @@ var ProEnum = function ProEnum(props) {
|
|
|
272
273
|
};
|
|
273
274
|
return (0, _lodash.isFunction)(props.optionRender) && record.length ? _optionRender() : labelList === null || labelList === void 0 ? void 0 : labelList.join(',');
|
|
274
275
|
};
|
|
275
|
-
if (
|
|
276
|
+
if (_isView) {
|
|
276
277
|
if (Array.isArray(value)) {
|
|
277
278
|
return (0, _jsxRuntime.jsx)(_Container.default, {
|
|
278
279
|
tooltip: true,
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
justify-content: center;
|
|
20
20
|
margin-right: var(--zaui-space-size-sm);
|
|
21
21
|
padding: var(--zaui-space-size-xs) 10px;
|
|
22
|
-
background-color:
|
|
22
|
+
background-color: var(--zaui-disabled-bg);
|
|
23
23
|
border-radius: var(--zaui-space-size-xs);
|
|
24
24
|
cursor: pointer;
|
|
25
25
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
background-color: var(--zaui-brand);
|
|
30
30
|
}
|
|
31
31
|
&-tag-item-disabled {
|
|
32
|
-
background-color:
|
|
32
|
+
background-color: var(--zaui-disabled-bg);
|
|
33
33
|
pointer-events: none;
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -90,12 +90,20 @@
|
|
|
90
90
|
|
|
91
91
|
.pro-enum-group-item-disabled {
|
|
92
92
|
color: rgba(0, 0, 0, 0.25);
|
|
93
|
-
background:
|
|
93
|
+
background: var(--zaui-disabled-bg);
|
|
94
94
|
cursor: not-allowed;
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
&-group-root-disabled {
|
|
99
|
-
|
|
99
|
+
color: #bfbfbf;
|
|
100
|
+
|
|
101
|
+
.pro-enum-group-item {
|
|
102
|
+
background: var(--zaui-disabled-bg);
|
|
103
|
+
&.pro-enum-group-item-selected {
|
|
104
|
+
background: #6b95f5;
|
|
105
|
+
border-color: #6b95f5;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
100
108
|
}
|
|
101
109
|
}
|
|
@@ -5,7 +5,7 @@ interface EnumRes {
|
|
|
5
5
|
[key: string]: any;
|
|
6
6
|
}
|
|
7
7
|
export declare function getEnumData(storage: StorageType, cacheKey: string, baseEnumStorage?: any): EnumRes;
|
|
8
|
-
export declare function setEnumData(storage: StorageType, cacheKey: string, data:
|
|
8
|
+
export declare function setEnumData(storage: StorageType, cacheKey: string, data: any): boolean;
|
|
9
9
|
export declare function hasEnumList(storage: StorageType, cacheKey: any, code: string): DataOption[];
|
|
10
10
|
export declare function isObject(obj: any): boolean;
|
|
11
11
|
export declare function mergeCacheData(storage: string, code: string, cacheKey: string, responseData: any): void;
|
|
@@ -26,6 +26,10 @@ function getEnumData(storage, cacheKey, baseEnumStorage) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
function setEnumData(storage, cacheKey, data) {
|
|
29
|
+
var _Object$keys;
|
|
30
|
+
if (!((_Object$keys = Object.keys(data === null || data === void 0 ? void 0 : data.data)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length)) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
29
33
|
if (storage === 'localStorage') {
|
|
30
34
|
window.localStorage.setItem(cacheKey, JSON.stringify(data));
|
|
31
35
|
} else if (storage === 'sessionStorage') {
|
|
@@ -16,11 +16,12 @@ var _ProCollapse = _interopRequireDefault(require("../../../../ProLayout/compone
|
|
|
16
16
|
var _ProForm = _interopRequireDefault(require("../../../../ProForm"));
|
|
17
17
|
var Container = function Container(props) {
|
|
18
18
|
var children = props.children,
|
|
19
|
-
otherProps = props.otherProps,
|
|
20
19
|
className = props.className,
|
|
21
20
|
container = props.container,
|
|
22
21
|
show = props.show,
|
|
23
|
-
clearNotShow = props.clearNotShow
|
|
22
|
+
clearNotShow = props.clearNotShow,
|
|
23
|
+
diffConfig = props.diffConfig,
|
|
24
|
+
otherProps = props.otherProps;
|
|
24
25
|
var _ref = _ProForm.default.useFieldProps() || {},
|
|
25
26
|
type = _ref.type,
|
|
26
27
|
form = _ref.form,
|
|
@@ -45,7 +46,8 @@ var Container = function Container(props) {
|
|
|
45
46
|
var childRender = function childRender() {
|
|
46
47
|
var child = (0, _jsxRuntime.jsx)(_RenderFields.default, (0, _objectSpread2.default)({
|
|
47
48
|
columns: _children,
|
|
48
|
-
form: form
|
|
49
|
+
form: form,
|
|
50
|
+
diffConfig: diffConfig
|
|
49
51
|
}, otherProps));
|
|
50
52
|
if (type === 'ProCollapse') {
|
|
51
53
|
return (0, _jsxRuntime.jsx)(_ProCollapse.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.omit)(props, ['otherProps', 'children', 'onBlur', 'onChange', 'placeholder', 'className'])), {}, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { RowProps } from 'antd';
|
|
3
|
-
import { ProColumnProps, ProFormOtherProps } from '../../../propsType';
|
|
3
|
+
import { ProColumnProps, ProFormOtherProps, DiffConfigProps } from '../../../propsType';
|
|
4
4
|
export interface ContainerProps {
|
|
5
5
|
children?: ProColumnProps[];
|
|
6
6
|
otherProps?: ProFormOtherProps;
|
|
@@ -8,5 +8,6 @@ export interface ContainerProps {
|
|
|
8
8
|
className?: string;
|
|
9
9
|
container?: string | React.ReactNode;
|
|
10
10
|
show?: boolean | (() => boolean);
|
|
11
|
+
diffConfig?: DiffConfigProps;
|
|
11
12
|
clearNotShow?: boolean;
|
|
12
13
|
}
|
|
@@ -95,7 +95,9 @@ var ProNumberRange = function ProNumberRange(props) {
|
|
|
95
95
|
});
|
|
96
96
|
// 查看模式
|
|
97
97
|
if (isView || props.isView) {
|
|
98
|
-
if ((0, _lodash.isEmpty)(value)) {
|
|
98
|
+
if ((0, _lodash.isEmpty)(value) || (value === null || value === void 0 ? void 0 : value.every(function (item) {
|
|
99
|
+
return typeof item !== 'number';
|
|
100
|
+
}))) {
|
|
99
101
|
return viewEmpty;
|
|
100
102
|
}
|
|
101
103
|
switch (valueType) {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FormInstance } from 'antd';
|
|
2
|
+
import { NamePath } from 'antd/lib/form/interface';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { DiffOriginalParams } from '../../utils/diffOriginal';
|
|
5
|
+
import { DiffConfigProps } from '../../propsType';
|
|
6
|
+
interface Props {
|
|
7
|
+
name?: NamePath;
|
|
8
|
+
names?: NamePath[];
|
|
9
|
+
namesStr?: string;
|
|
10
|
+
diffConfig?: DiffConfigProps;
|
|
11
|
+
form: FormInstance;
|
|
12
|
+
equalWith?: DiffOriginalParams['equalWith'];
|
|
13
|
+
[name: string]: any;
|
|
14
|
+
}
|
|
15
|
+
declare const ChangedWrapper: React.FC<Props>;
|
|
16
|
+
export default ChangedWrapper;
|
|
@@ -10,60 +10,88 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
|
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
var _antd = require("antd");
|
|
13
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
14
|
var _lodash = require("lodash");
|
|
14
15
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
16
|
var _diffOriginal = require("../../utils/diffOriginal");
|
|
16
|
-
var
|
|
17
|
-
var
|
|
17
|
+
var _ProConfigProvider = require("../../../ProConfigProvider");
|
|
18
|
+
var _utils = require("../../../utils");
|
|
19
|
+
var _excluded = ["name", "names", "namesStr", "form", "equalWith", "children", "type", "diffConfig", "valuePropName"];
|
|
20
|
+
var ChangedWrapper = function ChangedWrapper(props) {
|
|
21
|
+
var _diffConfig$toolTip;
|
|
18
22
|
var name = props.name,
|
|
19
23
|
names = props.names,
|
|
20
24
|
namesStr = props.namesStr,
|
|
21
|
-
originalValues = props.originalValues,
|
|
22
25
|
form = props.form,
|
|
23
26
|
equalWith = props.equalWith,
|
|
24
27
|
children = props.children,
|
|
25
28
|
type = props.type,
|
|
26
|
-
|
|
29
|
+
diffConfig = props.diffConfig,
|
|
30
|
+
_props$valuePropName = props.valuePropName,
|
|
31
|
+
valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName,
|
|
27
32
|
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
33
|
+
var _useProConfig = (0, _ProConfigProvider.useProConfig)('ProForm'),
|
|
34
|
+
isDiffAll = _useProConfig.isDiffAll;
|
|
35
|
+
var originalValues = diffConfig.originalValues,
|
|
36
|
+
changeTipColor = diffConfig.changeTipColor,
|
|
37
|
+
addTipColor = diffConfig.addTipColor;
|
|
38
|
+
var toolTip = (_diffConfig$toolTip = diffConfig.toolTip) !== null && _diffConfig$toolTip !== void 0 ? _diffConfig$toolTip : true;
|
|
28
39
|
// 不渲染tooltip
|
|
29
|
-
var
|
|
40
|
+
var isWatch = toolTip && !['FormList', 'ProEditTable'].includes(type);
|
|
30
41
|
var originalValue = (names === null || names === void 0 ? void 0 : names.length) ? names.map(function (name) {
|
|
31
42
|
return (0, _lodash.get)(originalValues, name);
|
|
32
43
|
}) : (0, _lodash.get)(originalValues, name);
|
|
33
|
-
var noChange = !equalWith && (!originalValues ||
|
|
34
|
-
var
|
|
35
|
-
if (
|
|
44
|
+
var noChange = !equalWith && (!originalValues || isDiffAll ? false : (0, _utils.isEmpty)(originalValue));
|
|
45
|
+
var diffType = (0, _react.useMemo)(function () {
|
|
46
|
+
if (!isWatch || noChange) return 'same';
|
|
36
47
|
return (0, _diffOriginal.diffOriginal)({
|
|
37
48
|
originalValue: originalValue,
|
|
38
|
-
value: props
|
|
49
|
+
value: props[valuePropName],
|
|
39
50
|
form: form,
|
|
40
51
|
equalWith: equalWith
|
|
41
52
|
// name: namesStr || name,
|
|
42
53
|
});
|
|
43
|
-
}, [
|
|
54
|
+
}, [isWatch, noChange, props[valuePropName], originalValue]);
|
|
55
|
+
var isAdd = diffType === 'add';
|
|
56
|
+
var isChanged = diffType === 'changed';
|
|
44
57
|
var tipContent = (0, _react.useMemo)(function () {
|
|
45
|
-
if (
|
|
58
|
+
if (!isWatch || noChange) return undefined;
|
|
46
59
|
return /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), {}, {
|
|
47
60
|
isView: true,
|
|
48
61
|
value: originalValue,
|
|
49
62
|
checked: type === 'Switch' ? originalValue : undefined
|
|
50
63
|
})) : undefined;
|
|
51
64
|
}, [originalValue, children]);
|
|
52
|
-
if (
|
|
65
|
+
if (!isWatch || noChange) {
|
|
53
66
|
return /*#__PURE__*/_react.default.isValidElement(children) && /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest));
|
|
54
67
|
}
|
|
68
|
+
var tipOpenCalc = function tipOpenCalc() {
|
|
69
|
+
if (!toolTip) return false;
|
|
70
|
+
// 传入undefined 鼠标移入显示移出隐藏
|
|
71
|
+
return isChanged ? undefined : false;
|
|
72
|
+
};
|
|
73
|
+
var style = {
|
|
74
|
+
'--zaui-contract-bg': changeTipColor,
|
|
75
|
+
'--zaui-contract-bg-add': addTipColor
|
|
76
|
+
};
|
|
77
|
+
var diffClassName = (0, _classnames.default)({
|
|
78
|
+
'pro-form-item-changed': isChanged,
|
|
79
|
+
'pro-form-item-add': isAdd
|
|
80
|
+
});
|
|
55
81
|
return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
56
|
-
open:
|
|
82
|
+
open: tipOpenCalc(),
|
|
57
83
|
getPopupContainer: function getPopupContainer(target) {
|
|
58
84
|
return target.parentElement;
|
|
59
85
|
},
|
|
60
86
|
title: (0, _jsxRuntime.jsxs)(_antd.Space, {
|
|
61
87
|
children: ["\u521D\u59CB\u503C\uFF1A", tipContent]
|
|
62
88
|
}),
|
|
89
|
+
placement: "topLeft",
|
|
63
90
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
64
|
-
className:
|
|
91
|
+
className: diffClassName,
|
|
92
|
+
style: style,
|
|
65
93
|
children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest)) : undefined
|
|
66
94
|
})
|
|
67
95
|
});
|
|
68
96
|
};
|
|
69
|
-
var _default = exports.default =
|
|
97
|
+
var _default = exports.default = ChangedWrapper;
|
|
@@ -26,7 +26,7 @@ var _valueType = _interopRequireDefault(require("../../utils/valueType"));
|
|
|
26
26
|
var _tip = _interopRequireDefault(require("../../../assets/tip.svg"));
|
|
27
27
|
var _useRules = _interopRequireDefault(require("../../utils/useRules"));
|
|
28
28
|
var _ConfirmWrapper = _interopRequireDefault(require("./ConfirmWrapper"));
|
|
29
|
-
var
|
|
29
|
+
var _ChangedWrapper = _interopRequireDefault(require("./ChangedWrapper"));
|
|
30
30
|
var _excluded = ["labelWidth", "hiddenNames", "trim", "upperCase", "className", "rules", "required", "labelRequired", "tooltip"];
|
|
31
31
|
/* eslint-disable prefer-destructuring */
|
|
32
32
|
// 这个组件只管渲染, 参数的整理在外部处理
|
|
@@ -46,12 +46,11 @@ var Render = function Render(props) {
|
|
|
46
46
|
formDisabled = props.formDisabled,
|
|
47
47
|
type = props.type,
|
|
48
48
|
isSelect = props.isSelect,
|
|
49
|
-
originalValues = props.originalValues,
|
|
50
49
|
equalWith = props.equalWith,
|
|
51
50
|
requiredOnView = props.requiredOnView,
|
|
52
|
-
originalDiffTip = props.originalDiffTip,
|
|
53
51
|
confirm = props.confirm,
|
|
54
|
-
globalControl = props.globalControl
|
|
52
|
+
globalControl = props.globalControl,
|
|
53
|
+
diffConfig = props.diffConfig;
|
|
55
54
|
var colProps = props.colProps;
|
|
56
55
|
// 剔除一些不是FormItem的属性, 防止控制台报warning
|
|
57
56
|
var labelWidth = formItemProps.labelWidth,
|
|
@@ -427,17 +426,17 @@ var Render = function Render(props) {
|
|
|
427
426
|
span: 24 // 默认占一行
|
|
428
427
|
});
|
|
429
428
|
}
|
|
430
|
-
if (
|
|
431
|
-
child = (0, _jsxRuntime.jsx)(
|
|
429
|
+
if (diffConfig) {
|
|
430
|
+
child = (0, _jsxRuntime.jsx)(_ChangedWrapper.default, {
|
|
432
431
|
name: formItemProps.name,
|
|
433
432
|
names: otherProps.names,
|
|
434
433
|
namesStr: namesStr,
|
|
435
|
-
|
|
434
|
+
diffConfig: diffConfig,
|
|
436
435
|
form: form,
|
|
437
436
|
equalWith: equalWith,
|
|
438
|
-
originalDiffTip: originalDiffTip,
|
|
439
437
|
type: type,
|
|
440
438
|
onChange: handleChange,
|
|
439
|
+
valuePropName: _otherFormItemProps.valuePropName,
|
|
441
440
|
children: child
|
|
442
441
|
});
|
|
443
442
|
}
|
|
@@ -2,7 +2,7 @@ import { ColProps } from 'antd';
|
|
|
2
2
|
import { FormInstance } from 'antd/es/form/Form';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { ProColumnProps } from './propsType';
|
|
5
|
-
import {
|
|
5
|
+
import { DiffConfigProps } from '../../propsType';
|
|
6
6
|
interface Props<T = any> {
|
|
7
7
|
isView?: boolean;
|
|
8
8
|
columns: ProColumnProps[];
|
|
@@ -13,11 +13,10 @@ interface Props<T = any> {
|
|
|
13
13
|
viewEmpty?: React.ReactNode;
|
|
14
14
|
openState?: boolean;
|
|
15
15
|
labelWidth?: string | number;
|
|
16
|
-
|
|
16
|
+
diffConfig?: DiffConfigProps;
|
|
17
17
|
clearNotShow?: boolean;
|
|
18
18
|
requiredOnView?: boolean;
|
|
19
19
|
required?: boolean | boolean[] | (() => boolean | boolean[]);
|
|
20
|
-
originalDiffTip?: boolean;
|
|
21
20
|
globalControl?: boolean;
|
|
22
21
|
}
|
|
23
22
|
declare const RenderFields: React.FC<Props>;
|
|
@@ -30,11 +30,10 @@ var RenderFields = function RenderFields(props) {
|
|
|
30
30
|
viewEmpty = _props$viewEmpty === void 0 ? '-' : _props$viewEmpty,
|
|
31
31
|
openState = props.openState,
|
|
32
32
|
labelWidth = props.labelWidth,
|
|
33
|
-
originalValues = props.originalValues,
|
|
34
33
|
outerClearNotShow = props.clearNotShow,
|
|
35
34
|
requiredOnView = props.requiredOnView,
|
|
36
35
|
required = props.required,
|
|
37
|
-
|
|
36
|
+
diffConfig = props.diffConfig,
|
|
38
37
|
globalControl = props.globalControl;
|
|
39
38
|
// 是否包含隐藏字段
|
|
40
39
|
var hiddenData = columns.filter(function (item) {
|
|
@@ -162,6 +161,7 @@ var RenderFields = function RenderFields(props) {
|
|
|
162
161
|
if (['ProCollapse', 'Container'].includes(_type)) {
|
|
163
162
|
componentProps.show = show;
|
|
164
163
|
componentProps.clearNotShow = clearNotShow;
|
|
164
|
+
componentProps.diffConfig = diffConfig;
|
|
165
165
|
}
|
|
166
166
|
// switch与SwitchCheckbox单独添加valuePropName
|
|
167
167
|
if (['Switch', 'SwitchCheckbox'].includes(_type)) {
|
|
@@ -214,10 +214,9 @@ var RenderFields = function RenderFields(props) {
|
|
|
214
214
|
otherProps: otherProps,
|
|
215
215
|
fieldProps: (0, _lodash.isFunction)(fieldProps) ? fieldProps : null,
|
|
216
216
|
isSelect: _isSelect,
|
|
217
|
-
|
|
217
|
+
diffConfig: diffConfig,
|
|
218
218
|
equalWith: equalWith,
|
|
219
219
|
requiredOnView: requiredOnView,
|
|
220
|
-
originalDiffTip: originalDiffTip,
|
|
221
220
|
globalControl: globalControl
|
|
222
221
|
})
|
|
223
222
|
}, "".concat(_formItemProps.name || _formItemProps.label).concat(index));
|
|
@@ -30,7 +30,8 @@ import { ProUploadProps } from '../../../ProUpload/propsType';
|
|
|
30
30
|
import { ProTreeProps } from '../../../ProTree/propsType';
|
|
31
31
|
import { GroupProps as GroupCopyProps } from '../combination/Group/propsType';
|
|
32
32
|
import { ProCollapseProps } from '../../../ProLayout/components/ProCollapse/PropTypes';
|
|
33
|
-
import { DistributiveOmit } from '../../propsType';
|
|
33
|
+
import { DistributiveOmit, DiffConfigProps } from '../../propsType';
|
|
34
|
+
import { DiffOriginalParams } from '../../utils/diffOriginal';
|
|
34
35
|
export type ComponentMap = keyof typeof componentMap;
|
|
35
36
|
type ValidateKey = keyof typeof validate;
|
|
36
37
|
type RegExpKey = keyof typeof regExp;
|
|
@@ -201,7 +202,7 @@ export interface ProFormColumnProps<Values = any> extends Omit<FormItemProps<Val
|
|
|
201
202
|
upperCase?: boolean;
|
|
202
203
|
hiddenNames?: string[] | any[];
|
|
203
204
|
rules?: ProRule[] | ReactiveFunction<Values, ProRule[]>;
|
|
204
|
-
equalWith?:
|
|
205
|
+
equalWith?: DiffOriginalParams['equalWith'];
|
|
205
206
|
required?: boolean | boolean[] | ReactiveFunction<Values, boolean | boolean[]>;
|
|
206
207
|
labelRequired?: boolean;
|
|
207
208
|
toISOString?: boolean;
|
|
@@ -267,7 +268,7 @@ export interface RenderProps<Values = any> {
|
|
|
267
268
|
form: FormInstance<Values>;
|
|
268
269
|
fieldProps?: ReactiveFunction<Values, React.ReactNode>;
|
|
269
270
|
isSelect: boolean;
|
|
270
|
-
|
|
271
|
+
diffConfig: DiffConfigProps;
|
|
271
272
|
requiredOnView?: boolean;
|
|
272
273
|
confirm?: ProFormColumnProps['confirm'];
|
|
273
274
|
globalControl?: boolean;
|
package/lib/ProForm/index.js
CHANGED
|
@@ -25,7 +25,7 @@ var _useForm3 = require("./utils/useForm");
|
|
|
25
25
|
var _useFieldProps = require("./utils/useFieldProps");
|
|
26
26
|
var _locale = _interopRequireDefault(require("../locale"));
|
|
27
27
|
var _useWatch = _interopRequireDefault(require("./utils/useWatch"));
|
|
28
|
-
var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "
|
|
28
|
+
var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "diffConfig", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "formKey", "globalControl", "scrollToError", "optimize"];
|
|
29
29
|
var ProForm = function ProForm(props, ref) {
|
|
30
30
|
var _forms$formKey, _localStorage, _ref;
|
|
31
31
|
var _props$mode = props.mode,
|
|
@@ -54,7 +54,7 @@ var ProForm = function ProForm(props, ref) {
|
|
|
54
54
|
labelWidth = props.labelWidth,
|
|
55
55
|
onValuesChange = props.onValuesChange,
|
|
56
56
|
onFinish = props.onFinish,
|
|
57
|
-
|
|
57
|
+
diffConfig = props.diffConfig,
|
|
58
58
|
submitOnEnter = props.submitOnEnter,
|
|
59
59
|
_props$clearNotShow = props.clearNotShow,
|
|
60
60
|
clearNotShow = _props$clearNotShow === void 0 ? true : _props$clearNotShow,
|
|
@@ -63,8 +63,6 @@ var ProForm = function ProForm(props, ref) {
|
|
|
63
63
|
requiredOnView = _props$requiredOnView === void 0 ? true : _props$requiredOnView,
|
|
64
64
|
formId = props.formId,
|
|
65
65
|
required = props.required,
|
|
66
|
-
_props$originalDiffTi = props.originalDiffTip,
|
|
67
|
-
originalDiffTip = _props$originalDiffTi === void 0 ? true : _props$originalDiffTi,
|
|
68
66
|
formKey = props.formKey,
|
|
69
67
|
globalControl = props.globalControl,
|
|
70
68
|
_props$scrollToError = props.scrollToError,
|
|
@@ -262,11 +260,10 @@ var ProForm = function ProForm(props, ref) {
|
|
|
262
260
|
colProps: colProps,
|
|
263
261
|
viewEmpty: viewEmpty,
|
|
264
262
|
labelWidth: labelWidth,
|
|
265
|
-
|
|
263
|
+
diffConfig: diffConfig,
|
|
266
264
|
clearNotShow: clearNotShow,
|
|
267
265
|
requiredOnView: requiredOnView,
|
|
268
266
|
required: required,
|
|
269
|
-
originalDiffTip: originalDiffTip,
|
|
270
267
|
globalControl: globalControl
|
|
271
268
|
}), footerRender()]
|
|
272
269
|
})), children]
|
|
@@ -45,6 +45,16 @@ export interface ProFormOtherProps {
|
|
|
45
45
|
globalControl?: boolean;
|
|
46
46
|
formDisabled?: boolean;
|
|
47
47
|
}
|
|
48
|
+
export interface DiffConfigProps<Values = any> {
|
|
49
|
+
/** 比对原始数据源 */
|
|
50
|
+
originalValues: Values;
|
|
51
|
+
/** 是否显示对比值气泡 */
|
|
52
|
+
toolTip?: boolean;
|
|
53
|
+
/** 变更提示颜色 */
|
|
54
|
+
changeTipColor?: string;
|
|
55
|
+
/** 新增提示颜色 */
|
|
56
|
+
addTipColor?: string;
|
|
57
|
+
}
|
|
48
58
|
export interface ProFormProps<Values = any> extends FormProps<Values> {
|
|
49
59
|
disabled?: boolean;
|
|
50
60
|
/** 全局控制优先 */
|
|
@@ -67,14 +77,14 @@ export interface ProFormProps<Values = any> extends FormProps<Values> {
|
|
|
67
77
|
viewEmpty?: React.ReactNode | string;
|
|
68
78
|
confirmLoading?: boolean;
|
|
69
79
|
labelWidth?: string | number;
|
|
70
|
-
originalValues?: Values;
|
|
71
80
|
/** 是否回车提交 */
|
|
72
81
|
submitOnEnter?: boolean;
|
|
73
82
|
clearNotShow?: boolean;
|
|
74
83
|
requiredOnView?: boolean;
|
|
75
84
|
formId?: string;
|
|
76
85
|
required?: boolean | boolean[];
|
|
77
|
-
|
|
86
|
+
/** 表单比对配置 */
|
|
87
|
+
diffConfig?: DiffConfigProps;
|
|
78
88
|
scrollToError?: boolean;
|
|
79
89
|
/** 性能模式,谨慎使用,默认不开启
|
|
80
90
|
* 1. 开启不过滤names的中间态值
|