@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.
Files changed (75) hide show
  1. package/dist/index.esm.css +79 -0
  2. package/dist/less.esm.css +76 -0
  3. package/es/ProEditTable/components/RenderField/{ListChanged.d.ts → ListChangedWrapper.d.ts} +4 -3
  4. package/es/ProEditTable/components/RenderField/{ListChanged.js → ListChangedWrapper.js} +22 -10
  5. package/es/ProEditTable/components/RenderField/index.js +2 -2
  6. package/es/ProEnum/index.js +5 -4
  7. package/es/ProEnum/style/index.less +12 -4
  8. package/es/ProEnum/utils/index.d.ts +1 -1
  9. package/es/ProEnum/utils/index.js +4 -0
  10. package/es/ProForm/components/combination/Container/index.js +5 -3
  11. package/es/ProForm/components/combination/Container/propsType.d.ts +2 -1
  12. package/es/ProForm/components/combination/ProNumberRange/index.js +3 -1
  13. package/es/ProForm/components/render/ChangedWrapper.d.ts +16 -0
  14. package/es/ProForm/components/render/{Changed.js → ChangedWrapper.js} +43 -15
  15. package/es/ProForm/components/render/Render.js +7 -8
  16. package/es/ProForm/components/render/RenderFields.d.ts +2 -3
  17. package/es/ProForm/components/render/RenderFields.js +3 -4
  18. package/es/ProForm/components/render/propsType.d.ts +4 -3
  19. package/es/ProForm/index.js +3 -6
  20. package/es/ProForm/propsType.d.ts +12 -2
  21. package/es/ProForm/style/index.less +102 -4
  22. package/es/ProForm/utils/diffOriginal.d.ts +4 -4
  23. package/es/ProForm/utils/diffOriginal.js +18 -7
  24. package/es/ProStep/components/Listener/index.d.ts +1 -1
  25. package/es/ProStep/components/Listener/index.js +5 -2
  26. package/es/ProStep/index.d.ts +1 -1
  27. package/es/ProStep/index.js +24 -17
  28. package/es/ProTree/components/ProTreeSelect/style/index.less +2 -2
  29. package/es/style/theme/antd.less +5 -0
  30. package/es/style/theme/index.less +1 -0
  31. package/es/style/theme/tokens.less +1 -0
  32. package/es/utils/index.d.ts +2 -0
  33. package/es/utils/index.js +13 -0
  34. package/lib/ProEditTable/components/RenderField/{ListChanged.d.ts → ListChangedWrapper.d.ts} +4 -3
  35. package/lib/ProEditTable/components/RenderField/{ListChanged.js → ListChangedWrapper.js} +25 -11
  36. package/lib/ProEditTable/components/RenderField/index.js +2 -2
  37. package/lib/ProEnum/index.js +5 -4
  38. package/lib/ProEnum/style/index.less +12 -4
  39. package/lib/ProEnum/utils/index.d.ts +1 -1
  40. package/lib/ProEnum/utils/index.js +4 -0
  41. package/lib/ProForm/components/combination/Container/index.js +5 -3
  42. package/lib/ProForm/components/combination/Container/propsType.d.ts +2 -1
  43. package/lib/ProForm/components/combination/ProNumberRange/index.js +3 -1
  44. package/lib/ProForm/components/render/ChangedWrapper.d.ts +16 -0
  45. package/lib/ProForm/components/render/{Changed.js → ChangedWrapper.js} +43 -15
  46. package/lib/ProForm/components/render/Render.js +7 -8
  47. package/lib/ProForm/components/render/RenderFields.d.ts +2 -3
  48. package/lib/ProForm/components/render/RenderFields.js +3 -4
  49. package/lib/ProForm/components/render/propsType.d.ts +4 -3
  50. package/lib/ProForm/index.js +3 -6
  51. package/lib/ProForm/propsType.d.ts +12 -2
  52. package/lib/ProForm/style/index.less +102 -4
  53. package/lib/ProForm/utils/diffOriginal.d.ts +4 -4
  54. package/lib/ProForm/utils/diffOriginal.js +18 -7
  55. package/lib/ProStep/components/Listener/index.d.ts +1 -1
  56. package/lib/ProStep/components/Listener/index.js +5 -2
  57. package/lib/ProStep/index.d.ts +1 -1
  58. package/lib/ProStep/index.js +24 -17
  59. package/lib/ProTree/components/ProTreeSelect/style/index.less +2 -2
  60. package/lib/style/theme/antd.less +5 -0
  61. package/lib/style/theme/index.less +1 -0
  62. package/lib/style/theme/tokens.less +1 -0
  63. package/lib/utils/index.d.ts +2 -0
  64. package/lib/utils/index.js +19 -0
  65. package/package.json +2 -1
  66. package/es/ProForm/components/render/Changed.d.ts +0 -14
  67. package/lib/ProForm/components/render/Changed.d.ts +0 -14
  68. /package/es/ProForm/utils/{useChanged.d.ts → _useChanged.d.ts} +0 -0
  69. /package/es/ProForm/utils/{useChanged.js → _useChanged.js} +0 -0
  70. /package/es/ProForm/utils/{useListChanged.d.ts → _useListChanged.d.ts} +0 -0
  71. /package/es/ProForm/utils/{useListChanged.js → _useListChanged.js} +0 -0
  72. /package/lib/ProForm/utils/{useChanged.d.ts → _useChanged.d.ts} +0 -0
  73. /package/lib/ProForm/utils/{useChanged.js → _useChanged.js} +0 -0
  74. /package/lib/ProForm/utils/{useListChanged.d.ts → _useListChanged.d.ts} +0 -0
  75. /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 ListChanged = function ListChanged(props) {
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 notWatch = !originalValues || ['FormList', 'ProEditTable'].includes(type);
88
- var originalValue = !notWatch ? getOriginalValue({
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 || originalValue === undefined);
97
- var changed = (0, _react.useMemo)(function () {
98
- if (notWatch || noChange) return false;
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
- if (notWatch || noChange) {
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
- return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
111
- open: changed ? undefined : false,
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: changed ? 'pro-form-item-changed' : '',
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 = ListChanged;
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 _ListChanged = _interopRequireDefault(require("./ListChanged"));
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)(_ListChanged.default, {
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]),
@@ -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 (isView) {
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: #f5f5f5;
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: #f5f5f5;
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: #f5f5f5;
93
+ background: var(--zaui-disabled-bg);
94
94
  cursor: not-allowed;
95
95
  }
96
96
  }
97
97
 
98
98
  &-group-root-disabled {
99
- opacity: 0.7;
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: Object): void;
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 _excluded = ["name", "names", "namesStr", "originalValues", "form", "equalWith", "children", "type", "originalDiffTip"];
17
- var Changed = function Changed(props) {
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
- originalDiffTip = props.originalDiffTip,
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 notWatch = !originalDiffTip || ['FormList', 'ProEditTable'].includes(type);
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 || originalValue === undefined);
34
- var changed = (0, _react.useMemo)(function () {
35
- if (notWatch || noChange) return false;
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.value,
49
+ value: props[valuePropName],
39
50
  form: form,
40
51
  equalWith: equalWith
41
52
  // name: namesStr || name,
42
53
  });
43
- }, [notWatch, noChange, props.value, originalValue]);
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 (notWatch || noChange) return undefined;
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 (notWatch || noChange) {
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: changed ? undefined : false,
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: changed ? 'pro-form-item-changed' : '',
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 = Changed;
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 _Changed = _interopRequireDefault(require("./Changed"));
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 (originalValues) {
431
- child = (0, _jsxRuntime.jsx)(_Changed.default, {
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
- originalValues: originalValues,
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 { ProFormProps } from '../../propsType';
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
- originalValues?: ProFormProps<T>['originalValues'];
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
- originalDiffTip = props.originalDiffTip,
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
- originalValues: originalValues,
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?: (originValue: any, currentValue: any) => boolean;
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
- originalValues?: Values;
271
+ diffConfig: DiffConfigProps;
271
272
  requiredOnView?: boolean;
272
273
  confirm?: ProFormColumnProps['confirm'];
273
274
  globalControl?: boolean;
@@ -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", "originalValues", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "originalDiffTip", "formKey", "globalControl", "scrollToError", "optimize"];
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
- originalValues = props.originalValues,
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
- originalValues: originalValues,
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
- originalDiffTip?: boolean;
86
+ /** 表单比对配置 */
87
+ diffConfig?: DiffConfigProps;
78
88
  scrollToError?: boolean;
79
89
  /** 性能模式,谨慎使用,默认不开启
80
90
  * 1. 开启不过滤names的中间态值