@zat-design/sisyphus-react 3.7.3-beta.2 → 3.7.3-beta.3

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 (38) hide show
  1. package/es/ProEditTable/components/RenderField/{ListChanged.d.ts → ListChangedWrapper.d.ts} +2 -2
  2. package/es/ProEditTable/components/RenderField/{ListChanged.js → ListChangedWrapper.js} +15 -10
  3. package/es/ProEditTable/components/RenderField/index.js +2 -2
  4. package/es/ProEnum/index.js +5 -4
  5. package/{lib/ProForm/components/render/Changed.d.ts → es/ProForm/components/render/ChangedWrapper.d.ts} +4 -3
  6. package/es/ProForm/components/render/{Changed.js → ChangedWrapper.js} +28 -14
  7. package/es/ProForm/components/render/Render.js +6 -8
  8. package/es/ProForm/components/render/RenderFields.d.ts +2 -3
  9. package/es/ProForm/components/render/RenderFields.js +2 -4
  10. package/es/ProForm/components/render/propsType.d.ts +2 -2
  11. package/es/ProForm/index.js +3 -6
  12. package/es/ProForm/propsType.d.ts +12 -2
  13. package/es/utils/index.d.ts +2 -0
  14. package/es/utils/index.js +13 -0
  15. package/lib/ProEditTable/components/RenderField/{ListChanged.d.ts → ListChangedWrapper.d.ts} +2 -2
  16. package/lib/ProEditTable/components/RenderField/{ListChanged.js → ListChangedWrapper.js} +18 -11
  17. package/lib/ProEditTable/components/RenderField/index.js +2 -2
  18. package/lib/ProEnum/index.js +5 -4
  19. package/{es/ProForm/components/render/Changed.d.ts → lib/ProForm/components/render/ChangedWrapper.d.ts} +4 -3
  20. package/lib/ProForm/components/render/{Changed.js → ChangedWrapper.js} +28 -14
  21. package/lib/ProForm/components/render/Render.js +6 -8
  22. package/lib/ProForm/components/render/RenderFields.d.ts +2 -3
  23. package/lib/ProForm/components/render/RenderFields.js +2 -4
  24. package/lib/ProForm/components/render/propsType.d.ts +2 -2
  25. package/lib/ProForm/index.js +3 -6
  26. package/lib/ProForm/propsType.d.ts +12 -2
  27. package/lib/utils/index.d.ts +2 -0
  28. package/lib/utils/index.js +19 -0
  29. package/package.json +1 -1
  30. package/.vscode/extensions.json +0 -5
  31. /package/es/ProForm/utils/{useChanged.d.ts → _useChanged.d.ts} +0 -0
  32. /package/es/ProForm/utils/{useChanged.js → _useChanged.js} +0 -0
  33. /package/es/ProForm/utils/{useListChanged.d.ts → _useListChanged.d.ts} +0 -0
  34. /package/es/ProForm/utils/{useListChanged.js → _useListChanged.js} +0 -0
  35. /package/lib/ProForm/utils/{useChanged.d.ts → _useChanged.d.ts} +0 -0
  36. /package/lib/ProForm/utils/{useChanged.js → _useChanged.js} +0 -0
  37. /package/lib/ProForm/utils/{useListChanged.d.ts → _useListChanged.d.ts} +0 -0
  38. /package/lib/ProForm/utils/{useListChanged.js → _useListChanged.js} +0 -0
@@ -12,5 +12,5 @@ interface Props {
12
12
  equalWith?: (preValue: any, curValue: any) => boolean | undefined;
13
13
  [name: string]: any;
14
14
  }
15
- declare const ListChanged: React.FC<Props>;
16
- export default ListChanged;
15
+ declare const ListChangedWrapper: React.FC<Props>;
16
+ export default ListChangedWrapper;
@@ -9,6 +9,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  import React, { useMemo } from 'react';
10
10
  import { get } from 'lodash';
11
11
  import { diffOriginal } from '../../../ProForm/utils/diffOriginal';
12
+ import { useProConfig } from '../../../ProConfigProvider';
13
+ import { isEmpty } from '../../../utils';
12
14
  var toNamePath = function toNamePath(name) {
13
15
  if (Array.isArray(name)) {
14
16
  return name;
@@ -61,7 +63,7 @@ var getOriginalValue = function getOriginalValue(_ref) {
61
63
  return get(originalValues, originalName);
62
64
  }) : get(originalValues, originalName);
63
65
  };
64
- var ListChanged = function ListChanged(props) {
66
+ var ListChangedWrapper = function ListChangedWrapper(props) {
65
67
  var name = props.name,
66
68
  names = props.names,
67
69
  namesStr = props.namesStr,
@@ -76,11 +78,13 @@ var ListChanged = function ListChanged(props) {
76
78
  children = props.children,
77
79
  type = props.type,
78
80
  rest = _objectWithoutProperties(props, _excluded);
81
+ var _useProConfig = useProConfig('ProEditTable'),
82
+ isDiffAll = _useProConfig.isDiffAll;
79
83
  var namePath = toNamePath(namesStr || name);
80
84
  var originalNamePath = toNamePath(originalName);
81
85
  var originalNamePaths = originalNames && toNamePaths(originalNames);
82
- var notWatch = !originalValues || ['FormList', 'ProEditTable'].includes(type);
83
- var originalValue = !notWatch ? getOriginalValue({
86
+ var isWatch = originalValues && !['FormList', 'ProEditTable'].includes(type);
87
+ var originalValue = isWatch ? getOriginalValue({
84
88
  namePath: namePath,
85
89
  originalName: originalNamePath,
86
90
  originalNames: originalNamePaths,
@@ -88,9 +92,9 @@ var ListChanged = function ListChanged(props) {
88
92
  rowKeyPath: rowKeyPath,
89
93
  form: form
90
94
  }) : undefined;
91
- var noChange = !equalWith && (!originalValues || originalValue === undefined);
92
- var changed = useMemo(function () {
93
- if (notWatch || noChange) return false;
95
+ var noChange = !equalWith && (!originalValues || isDiffAll ? false : isEmpty(originalValue));
96
+ var isChanged = useMemo(function () {
97
+ if (!isWatch || noChange) return false;
94
98
  return diffOriginal({
95
99
  value: props.value,
96
100
  originalValue: originalValue,
@@ -99,11 +103,12 @@ var ListChanged = function ListChanged(props) {
99
103
  // name: isString(namesStr) ? namesStr : originalName || name,
100
104
  });
101
105
  }, [props.value, originalValue]);
102
- if (notWatch || noChange) {
106
+ if (!isWatch || noChange) {
103
107
  return /*#__PURE__*/React.isValidElement(children) && /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, children.props), rest));
104
108
  }
105
109
  return _jsx(_Tooltip, {
106
- open: changed ? undefined : false,
110
+ // 传入undefined 鼠标移入显示移出隐藏
111
+ open: isChanged ? undefined : false,
107
112
  getPopupContainer: function getPopupContainer(target) {
108
113
  return target.parentElement;
109
114
  },
@@ -116,9 +121,9 @@ var ListChanged = function ListChanged(props) {
116
121
  })) : undefined]
117
122
  }),
118
123
  children: _jsx("div", {
119
- className: changed ? 'pro-form-item-changed' : '',
124
+ className: isChanged ? 'pro-form-item-changed' : '',
120
125
  children: /*#__PURE__*/React.isValidElement(children) ? /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, children.props), rest)) : undefined
121
126
  })
122
127
  });
123
128
  };
124
- export default ListChanged;
129
+ export default ListChangedWrapper;
@@ -25,7 +25,7 @@ import useRules from '../../../ProForm/utils/useRules';
25
25
  import { isSelect, isTrim } from '../../../ProForm/utils';
26
26
  import ConfirmWrapper from '../../../ProForm/components/render/ConfirmWrapper';
27
27
  import { getDefaultProps } from '../../utils/getDefaultProps';
28
- import ListChanged from './ListChanged';
28
+ import ListChangedWrapper from './ListChangedWrapper';
29
29
  var RenderField = function RenderField(_ref) {
30
30
  var _type, _type$replace, _fieldProps2, _names, _TargetComponent4, _componentProps2;
31
31
  var value = _ref.text,
@@ -547,7 +547,7 @@ var RenderField = function RenderField(_ref) {
547
547
  var FormItem = null;
548
548
  var FieldComponent = /*#__PURE__*/React.isValidElement(TargetComponent) ? ( /*#__PURE__*/React.cloneElement(TargetComponent, componentProps)) : _jsx(TargetComponent, _objectSpread({}, componentProps));
549
549
  if (originalValues) {
550
- FieldComponent = _jsx(ListChanged, {
550
+ FieldComponent = _jsx(ListChangedWrapper, {
551
551
  name: cellName,
552
552
  names: names,
553
553
  namesStr: [].concat(_toConsumableArray(baseName), [index, dataIndex]),
@@ -11,7 +11,7 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
11
11
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
12
12
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
13
13
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
14
- var _excluded = ["code", "type", "dataSource", "useRequest", "value", "component", "onChange", "transformResponse", "otherProps"],
14
+ var _excluded = ["code", "type", "dataSource", "useRequest", "value", "component", "onChange", "transformResponse", "otherProps", "isView"],
15
15
  _excluded2 = ["fieldNames", "clear", "cacheKey", "showCodeName"];
16
16
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
17
17
  import { useDeepCompareEffect, useRequest as useRequestFunc } from 'ahooks';
@@ -39,10 +39,11 @@ var ProEnum = function ProEnum(props) {
39
39
  onChange = props.onChange,
40
40
  transformResponse = props.transformResponse,
41
41
  otherProps = props.otherProps,
42
+ isView = props.isView,
42
43
  enumProps = _objectWithoutProperties(props, _excluded);
43
44
  var _ref = otherProps || {},
44
- isView = _ref.isView,
45
45
  viewEmpty = _ref.viewEmpty;
46
+ var _isView = isView || otherProps.isView;
46
47
  var _ref2 = useProConfig('ProEnum') || {},
47
48
  fieldNames = _ref2.fieldNames,
48
49
  _ref2$clear = _ref2.clear,
@@ -226,7 +227,7 @@ var ProEnum = function ProEnum(props) {
226
227
  if (!code && !dataSource && !useRequest) {
227
228
  var _locale$ProEnum4;
228
229
  _message.error(locale === null || locale === void 0 ? void 0 : (_locale$ProEnum4 = locale.ProEnum) === null || _locale$ProEnum4 === void 0 ? void 0 : _locale$ProEnum4.errorNoEnumType);
229
- return;
230
+ // return;
230
231
  }
231
232
  var transToLabel = function transToLabel(value) {
232
233
  var list = dataList && dataList.length ? dataList : enumLists;
@@ -271,7 +272,7 @@ var ProEnum = function ProEnum(props) {
271
272
  };
272
273
  return isFunction(props.optionRender) && record.length ? _optionRender() : labelList === null || labelList === void 0 ? void 0 : labelList.join(',');
273
274
  };
274
- if (isView) {
275
+ if (_isView) {
275
276
  if (Array.isArray(value)) {
276
277
  return _jsx(Container, {
277
278
  tooltip: true,
@@ -1,14 +1,15 @@
1
1
  import { FormInstance } from 'antd';
2
2
  import { NamePath } from 'antd/lib/form/interface';
3
3
  import React from 'react';
4
+ import { DiffConfigProps } from '../../propsType';
4
5
  interface Props {
5
6
  name?: NamePath;
6
7
  names?: NamePath[];
7
8
  namesStr?: string;
8
- originalValues?: any;
9
+ diffConfig?: DiffConfigProps;
9
10
  form: FormInstance;
10
11
  equalWith?: (preValue: any, curValue: any) => boolean | undefined;
11
12
  [name: string]: any;
12
13
  }
13
- declare const Changed: React.FC<Props>;
14
- export default Changed;
14
+ declare const ChangedWrapper: React.FC<Props>;
15
+ export default ChangedWrapper;
@@ -4,30 +4,36 @@ import "antd/es/tooltip/style";
4
4
  import _Tooltip from "antd/es/tooltip";
5
5
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
6
6
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
7
- var _excluded = ["name", "names", "namesStr", "originalValues", "form", "equalWith", "children", "type", "originalDiffTip"];
7
+ var _excluded = ["name", "names", "namesStr", "form", "equalWith", "children", "type", "diffConfig"];
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  import { get } from 'lodash';
10
10
  import React, { useMemo } from 'react';
11
11
  import { diffOriginal } from '../../utils/diffOriginal';
12
- var Changed = function Changed(props) {
12
+ import { useProConfig } from '../../../ProConfigProvider';
13
+ import { isEmpty } from '../../../utils';
14
+ var ChangedWrapper = function ChangedWrapper(props) {
15
+ var _diffConfig$toolTip;
13
16
  var name = props.name,
14
17
  names = props.names,
15
18
  namesStr = props.namesStr,
16
- originalValues = props.originalValues,
17
19
  form = props.form,
18
20
  equalWith = props.equalWith,
19
21
  children = props.children,
20
22
  type = props.type,
21
- originalDiffTip = props.originalDiffTip,
23
+ diffConfig = props.diffConfig,
22
24
  rest = _objectWithoutProperties(props, _excluded);
25
+ var _useProConfig = useProConfig('ProForm'),
26
+ isDiffAll = _useProConfig.isDiffAll;
27
+ var originalValues = diffConfig.originalValues;
28
+ var toolTip = (_diffConfig$toolTip = diffConfig.toolTip) !== null && _diffConfig$toolTip !== void 0 ? _diffConfig$toolTip : true;
23
29
  // 不渲染tooltip
24
- var notWatch = !originalDiffTip || ['FormList', 'ProEditTable'].includes(type);
30
+ var isWatch = toolTip && !['FormList', 'ProEditTable'].includes(type);
25
31
  var originalValue = (names === null || names === void 0 ? void 0 : names.length) ? names.map(function (name) {
26
32
  return get(originalValues, name);
27
33
  }) : get(originalValues, name);
28
- var noChange = !equalWith && (!originalValues || originalValue === undefined);
29
- var changed = useMemo(function () {
30
- if (notWatch || noChange) return false;
34
+ var noChange = !equalWith && (!originalValues || isDiffAll ? false : isEmpty(originalValue));
35
+ var isChanged = useMemo(function () {
36
+ if (!isWatch || noChange) return false;
31
37
  return diffOriginal({
32
38
  originalValue: originalValue,
33
39
  value: props.value,
@@ -35,30 +41,38 @@ var Changed = function Changed(props) {
35
41
  equalWith: equalWith
36
42
  // name: namesStr || name,
37
43
  });
38
- }, [notWatch, noChange, props.value, originalValue]);
44
+ }, [isWatch, noChange, props.value, originalValue]);
39
45
  var tipContent = useMemo(function () {
40
- if (notWatch || noChange) return undefined;
46
+ if (!isWatch || noChange) return undefined;
41
47
  return /*#__PURE__*/React.isValidElement(children) ? /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, children.props), {}, {
42
48
  isView: true,
43
49
  value: originalValue,
44
50
  checked: type === 'Switch' ? originalValue : undefined
45
51
  })) : undefined;
46
52
  }, [originalValue, children]);
47
- if (notWatch || noChange) {
53
+ if (!isWatch || noChange) {
48
54
  return /*#__PURE__*/React.isValidElement(children) && /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, children.props), rest));
49
55
  }
56
+ var tipOpenCalc = function tipOpenCalc() {
57
+ if (!toolTip) {
58
+ return false;
59
+ }
60
+ // 传入undefined 鼠标移入显示移出隐藏
61
+ return isChanged ? undefined : false;
62
+ };
50
63
  return _jsx(_Tooltip, {
51
- open: changed ? undefined : false,
64
+ open: tipOpenCalc(),
52
65
  getPopupContainer: function getPopupContainer(target) {
53
66
  return target.parentElement;
54
67
  },
55
68
  title: _jsxs(_Space, {
56
69
  children: ["\u521D\u59CB\u503C\uFF1A", tipContent]
57
70
  }),
71
+ placement: "topLeft",
58
72
  children: _jsx("div", {
59
- className: changed ? 'pro-form-item-changed' : '',
73
+ className: isChanged ? 'pro-form-item-changed' : '',
60
74
  children: /*#__PURE__*/React.isValidElement(children) ? /*#__PURE__*/React.cloneElement(children, _objectSpread(_objectSpread({}, children.props), rest)) : undefined
61
75
  })
62
76
  });
63
77
  };
64
- export default Changed;
78
+ export default ChangedWrapper;
@@ -28,7 +28,7 @@ import valueTypeMap from '../../utils/valueType';
28
28
  import tipSvg from '../../../assets/tip.svg';
29
29
  import useRules from '../../utils/useRules';
30
30
  import ConfirmWrapper from './ConfirmWrapper';
31
- import Changed from './Changed';
31
+ import ChangedWrapper from './ChangedWrapper';
32
32
  // 这个组件只管渲染, 参数的整理在外部处理
33
33
  var Render = function Render(props) {
34
34
  var _ref2, _ref3, _ref4, _ref5, _otherProps$names2;
@@ -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,15 +426,14 @@ var Render = function Render(props) {
427
426
  span: 24 // 默认占一行
428
427
  });
429
428
  }
430
- if (originalValues) {
431
- child = _jsx(Changed, {
429
+ if (diffConfig) {
430
+ child = _jsx(ChangedWrapper, {
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,
441
439
  children: child
@@ -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>;
@@ -22,11 +22,10 @@ var RenderFields = function RenderFields(props) {
22
22
  viewEmpty = _props$viewEmpty === void 0 ? '-' : _props$viewEmpty,
23
23
  openState = props.openState,
24
24
  labelWidth = props.labelWidth,
25
- originalValues = props.originalValues,
26
25
  outerClearNotShow = props.clearNotShow,
27
26
  requiredOnView = props.requiredOnView,
28
27
  required = props.required,
29
- originalDiffTip = props.originalDiffTip,
28
+ diffConfig = props.diffConfig,
30
29
  globalControl = props.globalControl;
31
30
  // 是否包含隐藏字段
32
31
  var hiddenData = columns.filter(function (item) {
@@ -206,10 +205,9 @@ var RenderFields = function RenderFields(props) {
206
205
  otherProps: otherProps,
207
206
  fieldProps: isFunction(fieldProps) ? fieldProps : null,
208
207
  isSelect: _isSelect,
209
- originalValues: originalValues,
208
+ diffConfig: diffConfig,
210
209
  equalWith: equalWith,
211
210
  requiredOnView: requiredOnView,
212
- originalDiffTip: originalDiffTip,
213
211
  globalControl: globalControl
214
212
  })
215
213
  }, "".concat(_formItemProps.name || _formItemProps.label).concat(index));
@@ -30,7 +30,7 @@ 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
34
  export type ComponentMap = keyof typeof componentMap;
35
35
  type ValidateKey = keyof typeof validate;
36
36
  type RegExpKey = keyof typeof regExp;
@@ -267,7 +267,7 @@ export interface RenderProps<Values = any> {
267
267
  form: FormInstance<Values>;
268
268
  fieldProps?: ReactiveFunction<Values, React.ReactNode>;
269
269
  isSelect: boolean;
270
- originalValues?: Values;
270
+ diffConfig: DiffConfigProps;
271
271
  requiredOnView?: boolean;
272
272
  confirm?: ProFormColumnProps['confirm'];
273
273
  globalControl?: boolean;
@@ -11,7 +11,7 @@ import _Space from "antd/es/space";
11
11
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
12
12
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
13
13
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
14
- 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"];
14
+ 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"];
15
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  import { DoubleLeftOutlined } from '@ant-design/icons';
17
17
  import classnames from 'classnames';
@@ -53,7 +53,7 @@ var ProForm = function ProForm(props, ref) {
53
53
  labelWidth = props.labelWidth,
54
54
  onValuesChange = props.onValuesChange,
55
55
  onFinish = props.onFinish,
56
- originalValues = props.originalValues,
56
+ diffConfig = props.diffConfig,
57
57
  submitOnEnter = props.submitOnEnter,
58
58
  _props$clearNotShow = props.clearNotShow,
59
59
  clearNotShow = _props$clearNotShow === void 0 ? true : _props$clearNotShow,
@@ -62,8 +62,6 @@ var ProForm = function ProForm(props, ref) {
62
62
  requiredOnView = _props$requiredOnView === void 0 ? true : _props$requiredOnView,
63
63
  formId = props.formId,
64
64
  required = props.required,
65
- _props$originalDiffTi = props.originalDiffTip,
66
- originalDiffTip = _props$originalDiffTi === void 0 ? true : _props$originalDiffTi,
67
65
  formKey = props.formKey,
68
66
  globalControl = props.globalControl,
69
67
  _props$scrollToError = props.scrollToError,
@@ -261,11 +259,10 @@ var ProForm = function ProForm(props, ref) {
261
259
  colProps: colProps,
262
260
  viewEmpty: viewEmpty,
263
261
  labelWidth: labelWidth,
264
- originalValues: originalValues,
262
+ diffConfig: diffConfig,
265
263
  clearNotShow: clearNotShow,
266
264
  requiredOnView: requiredOnView,
267
265
  required: required,
268
- originalDiffTip: originalDiffTip,
269
266
  globalControl: globalControl
270
267
  }), footerRender()]
271
268
  })), 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的中间态值
@@ -0,0 +1,2 @@
1
+ /** 判断一个值是否是空值 */
2
+ export declare const isEmpty: (value: any) => boolean;
@@ -0,0 +1,13 @@
1
+ var EMPTY_VALUE = [undefined, null, ''];
2
+ /** 判断一个值是否是空值 */
3
+ export var isEmpty = function isEmpty(value) {
4
+ if (EMPTY_VALUE.includes(value)) {
5
+ return true;
6
+ }
7
+ if (Array.isArray(value)) {
8
+ return !(value === null || value === void 0 ? void 0 : value.length) || value.every(function (item) {
9
+ return EMPTY_VALUE.includes(item);
10
+ });
11
+ }
12
+ return false;
13
+ };
@@ -12,5 +12,5 @@ interface Props {
12
12
  equalWith?: (preValue: any, curValue: any) => boolean | undefined;
13
13
  [name: string]: any;
14
14
  }
15
- declare const ListChanged: React.FC<Props>;
16
- export default ListChanged;
15
+ declare const ListChangedWrapper: React.FC<Props>;
16
+ export default ListChangedWrapper;
@@ -13,6 +13,8 @@ var _react = _interopRequireWildcard(require("react"));
13
13
  var _antd = require("antd");
14
14
  var _lodash = require("lodash");
15
15
  var _diffOriginal = require("../../../ProForm/utils/diffOriginal");
16
+ var _ProConfigProvider = require("../../../ProConfigProvider");
17
+ var _utils = require("../../../utils");
16
18
  var _excluded = ["name", "names", "namesStr", "originalName", "originalNames", "originalValues", "form", "equalWith", "rowKeyPath", "children", "type"];
17
19
  var toNamePath = function toNamePath(name) {
18
20
  if (Array.isArray(name)) {
@@ -66,7 +68,7 @@ var getOriginalValue = function getOriginalValue(_ref) {
66
68
  return (0, _lodash.get)(originalValues, originalName);
67
69
  }) : (0, _lodash.get)(originalValues, originalName);
68
70
  };
69
- var ListChanged = function ListChanged(props) {
71
+ var ListChangedWrapper = function ListChangedWrapper(props) {
70
72
  var name = props.name,
71
73
  names = props.names,
72
74
  namesStr = props.namesStr,
@@ -81,11 +83,13 @@ var ListChanged = function ListChanged(props) {
81
83
  children = props.children,
82
84
  type = props.type,
83
85
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
86
+ var _useProConfig = (0, _ProConfigProvider.useProConfig)('ProEditTable'),
87
+ isDiffAll = _useProConfig.isDiffAll;
84
88
  var namePath = toNamePath(namesStr || name);
85
89
  var originalNamePath = toNamePath(originalName);
86
90
  var originalNamePaths = originalNames && toNamePaths(originalNames);
87
- var notWatch = !originalValues || ['FormList', 'ProEditTable'].includes(type);
88
- var originalValue = !notWatch ? getOriginalValue({
91
+ var isWatch = originalValues && !['FormList', 'ProEditTable'].includes(type);
92
+ var originalValue = isWatch ? getOriginalValue({
89
93
  namePath: namePath,
90
94
  originalName: originalNamePath,
91
95
  originalNames: originalNamePaths,
@@ -93,9 +97,9 @@ var ListChanged = function ListChanged(props) {
93
97
  rowKeyPath: rowKeyPath,
94
98
  form: form
95
99
  }) : undefined;
96
- var noChange = !equalWith && (!originalValues || originalValue === undefined);
97
- var changed = (0, _react.useMemo)(function () {
98
- if (notWatch || noChange) return false;
100
+ var noChange = !equalWith && (!originalValues || isDiffAll ? false : (0, _utils.isEmpty)(originalValue));
101
+ var isChanged = (0, _react.useMemo)(function () {
102
+ if (!isWatch || noChange) return false;
99
103
  return (0, _diffOriginal.diffOriginal)({
100
104
  value: props.value,
101
105
  originalValue: originalValue,
@@ -104,11 +108,14 @@ var ListChanged = function ListChanged(props) {
104
108
  // name: isString(namesStr) ? namesStr : originalName || name,
105
109
  });
106
110
  }, [props.value, originalValue]);
107
- if (notWatch || noChange) {
111
+ if (!isWatch || noChange) {
108
112
  return /*#__PURE__*/_react.default.isValidElement(children) && /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest));
109
113
  }
110
- return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
111
- open: changed ? undefined : false,
114
+ return (0, _jsxRuntime.jsx)(_antd.Tooltip
115
+ // 传入undefined 鼠标移入显示移出隐藏
116
+ , {
117
+ // 传入undefined 鼠标移入显示移出隐藏
118
+ open: isChanged ? undefined : false,
112
119
  getPopupContainer: function getPopupContainer(target) {
113
120
  return target.parentElement;
114
121
  },
@@ -121,9 +128,9 @@ var ListChanged = function ListChanged(props) {
121
128
  })) : undefined]
122
129
  }),
123
130
  children: (0, _jsxRuntime.jsx)("div", {
124
- className: changed ? 'pro-form-item-changed' : '',
131
+ className: isChanged ? 'pro-form-item-changed' : '',
125
132
  children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest)) : undefined
126
133
  })
127
134
  });
128
135
  };
129
- var _default = exports.default = ListChanged;
136
+ 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.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,
@@ -1,14 +1,15 @@
1
1
  import { FormInstance } from 'antd';
2
2
  import { NamePath } from 'antd/lib/form/interface';
3
3
  import React from 'react';
4
+ import { DiffConfigProps } from '../../propsType';
4
5
  interface Props {
5
6
  name?: NamePath;
6
7
  names?: NamePath[];
7
8
  namesStr?: string;
8
- originalValues?: any;
9
+ diffConfig?: DiffConfigProps;
9
10
  form: FormInstance;
10
11
  equalWith?: (preValue: any, curValue: any) => boolean | undefined;
11
12
  [name: string]: any;
12
13
  }
13
- declare const Changed: React.FC<Props>;
14
- export default Changed;
14
+ declare const ChangedWrapper: React.FC<Props>;
15
+ export default ChangedWrapper;
@@ -13,26 +13,32 @@ var _antd = require("antd");
13
13
  var _lodash = require("lodash");
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
  var _diffOriginal = require("../../utils/diffOriginal");
16
- var _excluded = ["name", "names", "namesStr", "originalValues", "form", "equalWith", "children", "type", "originalDiffTip"];
17
- var Changed = function Changed(props) {
16
+ var _ProConfigProvider = require("../../../ProConfigProvider");
17
+ var _utils = require("../../../utils");
18
+ var _excluded = ["name", "names", "namesStr", "form", "equalWith", "children", "type", "diffConfig"];
19
+ var ChangedWrapper = function ChangedWrapper(props) {
20
+ var _diffConfig$toolTip;
18
21
  var name = props.name,
19
22
  names = props.names,
20
23
  namesStr = props.namesStr,
21
- originalValues = props.originalValues,
22
24
  form = props.form,
23
25
  equalWith = props.equalWith,
24
26
  children = props.children,
25
27
  type = props.type,
26
- originalDiffTip = props.originalDiffTip,
28
+ diffConfig = props.diffConfig,
27
29
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
30
+ var _useProConfig = (0, _ProConfigProvider.useProConfig)('ProForm'),
31
+ isDiffAll = _useProConfig.isDiffAll;
32
+ var originalValues = diffConfig.originalValues;
33
+ var toolTip = (_diffConfig$toolTip = diffConfig.toolTip) !== null && _diffConfig$toolTip !== void 0 ? _diffConfig$toolTip : true;
28
34
  // 不渲染tooltip
29
- var notWatch = !originalDiffTip || ['FormList', 'ProEditTable'].includes(type);
35
+ var isWatch = toolTip && !['FormList', 'ProEditTable'].includes(type);
30
36
  var originalValue = (names === null || names === void 0 ? void 0 : names.length) ? names.map(function (name) {
31
37
  return (0, _lodash.get)(originalValues, name);
32
38
  }) : (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;
39
+ var noChange = !equalWith && (!originalValues || isDiffAll ? false : (0, _utils.isEmpty)(originalValue));
40
+ var isChanged = (0, _react.useMemo)(function () {
41
+ if (!isWatch || noChange) return false;
36
42
  return (0, _diffOriginal.diffOriginal)({
37
43
  originalValue: originalValue,
38
44
  value: props.value,
@@ -40,30 +46,38 @@ var Changed = function Changed(props) {
40
46
  equalWith: equalWith
41
47
  // name: namesStr || name,
42
48
  });
43
- }, [notWatch, noChange, props.value, originalValue]);
49
+ }, [isWatch, noChange, props.value, originalValue]);
44
50
  var tipContent = (0, _react.useMemo)(function () {
45
- if (notWatch || noChange) return undefined;
51
+ if (!isWatch || noChange) return undefined;
46
52
  return /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), {}, {
47
53
  isView: true,
48
54
  value: originalValue,
49
55
  checked: type === 'Switch' ? originalValue : undefined
50
56
  })) : undefined;
51
57
  }, [originalValue, children]);
52
- if (notWatch || noChange) {
58
+ if (!isWatch || noChange) {
53
59
  return /*#__PURE__*/_react.default.isValidElement(children) && /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest));
54
60
  }
61
+ var tipOpenCalc = function tipOpenCalc() {
62
+ if (!toolTip) {
63
+ return false;
64
+ }
65
+ // 传入undefined 鼠标移入显示移出隐藏
66
+ return isChanged ? undefined : false;
67
+ };
55
68
  return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
56
- open: changed ? undefined : false,
69
+ open: tipOpenCalc(),
57
70
  getPopupContainer: function getPopupContainer(target) {
58
71
  return target.parentElement;
59
72
  },
60
73
  title: (0, _jsxRuntime.jsxs)(_antd.Space, {
61
74
  children: ["\u521D\u59CB\u503C\uFF1A", tipContent]
62
75
  }),
76
+ placement: "topLeft",
63
77
  children: (0, _jsxRuntime.jsx)("div", {
64
- className: changed ? 'pro-form-item-changed' : '',
78
+ className: isChanged ? 'pro-form-item-changed' : '',
65
79
  children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest)) : undefined
66
80
  })
67
81
  });
68
82
  };
69
- var _default = exports.default = Changed;
83
+ 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,15 +426,14 @@ 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,
441
439
  children: child
@@ -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) {
@@ -214,10 +213,9 @@ var RenderFields = function RenderFields(props) {
214
213
  otherProps: otherProps,
215
214
  fieldProps: (0, _lodash.isFunction)(fieldProps) ? fieldProps : null,
216
215
  isSelect: _isSelect,
217
- originalValues: originalValues,
216
+ diffConfig: diffConfig,
218
217
  equalWith: equalWith,
219
218
  requiredOnView: requiredOnView,
220
- originalDiffTip: originalDiffTip,
221
219
  globalControl: globalControl
222
220
  })
223
221
  }, "".concat(_formItemProps.name || _formItemProps.label).concat(index));
@@ -30,7 +30,7 @@ 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
34
  export type ComponentMap = keyof typeof componentMap;
35
35
  type ValidateKey = keyof typeof validate;
36
36
  type RegExpKey = keyof typeof regExp;
@@ -267,7 +267,7 @@ export interface RenderProps<Values = any> {
267
267
  form: FormInstance<Values>;
268
268
  fieldProps?: ReactiveFunction<Values, React.ReactNode>;
269
269
  isSelect: boolean;
270
- originalValues?: Values;
270
+ diffConfig: DiffConfigProps;
271
271
  requiredOnView?: boolean;
272
272
  confirm?: ProFormColumnProps['confirm'];
273
273
  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的中间态值
@@ -0,0 +1,2 @@
1
+ /** 判断一个值是否是空值 */
2
+ export declare const isEmpty: (value: any) => boolean;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isEmpty = void 0;
7
+ var EMPTY_VALUE = [undefined, null, ''];
8
+ /** 判断一个值是否是空值 */
9
+ var isEmpty = exports.isEmpty = function isEmpty(value) {
10
+ if (EMPTY_VALUE.includes(value)) {
11
+ return true;
12
+ }
13
+ if (Array.isArray(value)) {
14
+ return !(value === null || value === void 0 ? void 0 : value.length) || value.every(function (item) {
15
+ return EMPTY_VALUE.includes(item);
16
+ });
17
+ }
18
+ return false;
19
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.7.3-beta.2",
3
+ "version": "3.7.3-beta.3",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -1,5 +0,0 @@
1
- {
2
- "recommendations": [
3
- "kisstkondoros.vscode-codemetrics"
4
- ]
5
- }