@zat-design/sisyphus-react 3.6.10 → 3.7.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/index.esm.css +52 -54
  2. package/dist/less.esm.css +52 -54
  3. package/es/ProEditTable/components/RenderField/ListChanged.d.ts +16 -0
  4. package/es/ProEditTable/components/RenderField/ListChanged.js +124 -0
  5. package/es/ProEditTable/components/RenderField/index.js +27 -46
  6. package/es/ProEditTable/style/index.less +2 -1
  7. package/es/ProEditTable/utils/index.d.ts +1 -1
  8. package/es/ProEditTable/utils/index.js +19 -13
  9. package/es/ProEditTable/utils/tools.d.ts +6 -0
  10. package/es/ProEditTable/utils/tools.js +15 -2
  11. package/es/ProEnum/hooks/useEnumRequest.js +3 -0
  12. package/es/ProEnum/utils/index.js +1 -1
  13. package/es/ProForm/components/combination/FormList/components/BlockFields.js +4 -2
  14. package/es/ProForm/components/combination/FormList/components/LineFields.js +4 -1
  15. package/es/ProForm/components/combination/FormList/utils.d.ts +1 -0
  16. package/es/ProForm/components/combination/FormList/utils.js +13 -0
  17. package/es/ProForm/components/combination/ProCascader/index.js +8 -14
  18. package/es/ProForm/components/render/Changed.d.ts +14 -0
  19. package/es/ProForm/components/render/Changed.js +64 -0
  20. package/es/ProForm/components/render/Render.js +17 -37
  21. package/es/ProForm/style/index.less +52 -52
  22. package/es/ProForm/utils/diffOriginal.d.ts +0 -1
  23. package/es/ProForm/utils/diffOriginal.js +4 -27
  24. package/es/ProForm/utils/useChanged.js +1 -2
  25. package/es/ProForm/utils/useListChanged.js +3 -3
  26. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.d.ts +3 -1
  27. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +108 -41
  28. package/es/ProTable/components/RcTable/components/DraggableTable/index.js +14 -1
  29. package/es/ProTable/index.js +6 -2
  30. package/es/ProTable/propsType.d.ts +22 -0
  31. package/es/ProTable/style/index.less +27 -32
  32. package/es/ProThemeTools/component/{PrdTools → ProTools}/index.d.ts +2 -2
  33. package/es/ProThemeTools/component/{PrdTools → ProTools}/index.js +2 -2
  34. package/es/ProThemeTools/component/index.d.ts +1 -2
  35. package/es/ProThemeTools/component/index.js +1 -2
  36. package/es/ProThemeTools/index.js +2 -2
  37. package/es/ProThemeTools/style/index.less +1 -1
  38. package/es/ProTreeModal/components/List.js +30 -4
  39. package/lib/ProEditTable/components/RenderField/ListChanged.d.ts +16 -0
  40. package/lib/ProEditTable/components/RenderField/ListChanged.js +129 -0
  41. package/lib/ProEditTable/components/RenderField/index.js +26 -41
  42. package/lib/ProEditTable/style/index.less +2 -1
  43. package/lib/ProEditTable/utils/index.d.ts +1 -1
  44. package/lib/ProEditTable/utils/index.js +17 -11
  45. package/lib/ProEditTable/utils/tools.d.ts +6 -0
  46. package/lib/ProEditTable/utils/tools.js +15 -1
  47. package/lib/ProEnum/hooks/useEnumRequest.js +3 -0
  48. package/lib/ProEnum/utils/index.js +1 -1
  49. package/lib/ProForm/components/combination/FormList/components/BlockFields.js +5 -2
  50. package/lib/ProForm/components/combination/FormList/components/LineFields.js +4 -1
  51. package/lib/ProForm/components/combination/FormList/utils.d.ts +1 -0
  52. package/lib/ProForm/components/combination/FormList/utils.js +15 -1
  53. package/lib/ProForm/components/combination/ProCascader/index.js +6 -12
  54. package/lib/ProForm/components/render/Changed.d.ts +14 -0
  55. package/lib/ProForm/components/render/Changed.js +69 -0
  56. package/lib/ProForm/components/render/Render.js +17 -35
  57. package/lib/ProForm/style/index.less +52 -52
  58. package/lib/ProForm/utils/diffOriginal.d.ts +0 -1
  59. package/lib/ProForm/utils/diffOriginal.js +3 -27
  60. package/lib/ProForm/utils/useChanged.js +1 -2
  61. package/lib/ProForm/utils/useListChanged.js +2 -2
  62. package/lib/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.d.ts +3 -1
  63. package/lib/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +108 -41
  64. package/lib/ProTable/components/RcTable/components/DraggableTable/index.js +13 -1
  65. package/lib/ProTable/index.js +6 -2
  66. package/lib/ProTable/propsType.d.ts +22 -0
  67. package/lib/ProTable/style/index.less +27 -32
  68. package/lib/ProThemeTools/component/{PrdTools → ProTools}/index.d.ts +2 -2
  69. package/lib/ProThemeTools/component/{PrdTools → ProTools}/index.js +2 -2
  70. package/lib/ProThemeTools/component/index.d.ts +1 -2
  71. package/lib/ProThemeTools/component/index.js +3 -3
  72. package/lib/ProThemeTools/index.js +1 -1
  73. package/lib/ProThemeTools/style/index.less +1 -1
  74. package/lib/ProTreeModal/components/List.js +30 -4
  75. package/package.json +1 -1
  76. /package/es/ProThemeTools/component/{PrdTools → ProTools}/style/index.less +0 -0
  77. /package/lib/ProThemeTools/component/{PrdTools → ProTools}/style/index.less +0 -0
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _antd = require("antd");
14
+ var _lodash = require("lodash");
15
+ var _diffOriginal = require("../../../ProForm/utils/diffOriginal");
16
+ var _excluded = ["name", "names", "namesStr", "originalName", "originalNames", "originalValues", "form", "equalWith", "rowKeyPath", "children", "type"];
17
+ var toNamePath = function toNamePath(name) {
18
+ if (Array.isArray(name)) {
19
+ return name;
20
+ }
21
+ return [name];
22
+ };
23
+ var toNamePaths = function toNamePaths(names) {
24
+ return names.map(function (name) {
25
+ return toNamePath(name);
26
+ });
27
+ };
28
+ var getOriginalValue = function getOriginalValue(_ref) {
29
+ var namePath = _ref.namePath,
30
+ originalName = _ref.originalName,
31
+ originalNames = _ref.originalNames,
32
+ originalValues = _ref.originalValues,
33
+ rowKeyPath = _ref.rowKeyPath,
34
+ form = _ref.form;
35
+ if (!originalValues) {
36
+ return undefined;
37
+ }
38
+ if (rowKeyPath) {
39
+ var rowValueNamePath = namePath.slice(0, rowKeyPath.length - 1); // 表单中变动值所在行
40
+ var rowKeyName = rowKeyPath[rowKeyPath.length - 1]; // rowKey在行内的name
41
+ var rowValue = form.getFieldValue(rowValueNamePath);
42
+ if (!rowValue) return undefined;
43
+ var keyValue = rowValue[rowKeyName]; // 获取表单中rowKey值
44
+ if (!keyValue) return undefined;
45
+ var originalValueList = (0, _lodash.get)(originalValues, originalName.slice(0, rowKeyPath.length - 2));
46
+ var originalValueRow = originalValueList.find(function (item) {
47
+ return item[rowKeyPath[rowKeyPath.length - 1]] === keyValue;
48
+ });
49
+ var originalValue;
50
+ if (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) {
51
+ var originalNamesValue = originalNames.map(function (originalName) {
52
+ return (0, _lodash.get)(originalValueRow, originalName.slice(rowKeyPath.length - 1));
53
+ });
54
+ // 有可能出现数组中全是undefined的情况 视为没有值
55
+ var fillUndefined = originalNamesValue.every(function (valItem) {
56
+ return valItem === undefined;
57
+ });
58
+ originalValue = fillUndefined ? undefined : originalNamesValue;
59
+ } else {
60
+ originalValue = (0, _lodash.get)(originalValueRow, originalName.slice(rowKeyPath.length - 1));
61
+ }
62
+ return originalValue;
63
+ }
64
+ // 这个方法是给editTable专用的 暂时不存在不传rowKey的情况
65
+ return (originalNames === null || originalNames === void 0 ? void 0 : originalNames.length) ? originalNames.map(function (originalName) {
66
+ return (0, _lodash.get)(originalValues, originalName);
67
+ }) : (0, _lodash.get)(originalValues, originalName);
68
+ };
69
+ var ListChanged = function ListChanged(props) {
70
+ var name = props.name,
71
+ names = props.names,
72
+ namesStr = props.namesStr,
73
+ _props$originalName = props.originalName,
74
+ originalName = _props$originalName === void 0 ? name : _props$originalName,
75
+ _props$originalNames = props.originalNames,
76
+ originalNames = _props$originalNames === void 0 ? names : _props$originalNames,
77
+ originalValues = props.originalValues,
78
+ form = props.form,
79
+ equalWith = props.equalWith,
80
+ rowKeyPath = props.rowKeyPath,
81
+ children = props.children,
82
+ type = props.type,
83
+ rest = (0, _objectWithoutProperties2.default)(props, _excluded);
84
+ var namePath = toNamePath(namesStr || name);
85
+ var originalNamePath = toNamePath(originalName);
86
+ var originalNamePaths = originalNames && toNamePaths(originalNames);
87
+ var notWatch = !originalValues || ['FormList', 'ProEditTable'].includes(type);
88
+ var originalValue = !notWatch ? getOriginalValue({
89
+ namePath: namePath,
90
+ originalName: originalNamePath,
91
+ originalNames: originalNamePaths,
92
+ originalValues: originalValues,
93
+ rowKeyPath: rowKeyPath,
94
+ form: form
95
+ }) : undefined;
96
+ var noChange = !equalWith && (!originalValues || originalValue === undefined);
97
+ var changed = (0, _react.useMemo)(function () {
98
+ if (notWatch || noChange) return false;
99
+ return (0, _diffOriginal.diffOriginal)({
100
+ value: props.value,
101
+ originalValue: originalValue,
102
+ form: form,
103
+ equalWith: equalWith
104
+ // name: isString(namesStr) ? namesStr : originalName || name,
105
+ });
106
+ }, [props.value, originalValue]);
107
+ if (notWatch || noChange) {
108
+ return /*#__PURE__*/_react.default.isValidElement(children) && /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest));
109
+ }
110
+ return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
111
+ open: changed ? undefined : false,
112
+ getPopupContainer: function getPopupContainer(target) {
113
+ return target.parentElement;
114
+ },
115
+ title: (0, _jsxRuntime.jsxs)(_antd.Space, {
116
+ children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children), {}, {
117
+ // @ts-ignore
118
+ isView: true,
119
+ value: originalValue,
120
+ checked: type === 'Switch' ? originalValue : undefined
121
+ })) : undefined]
122
+ }),
123
+ children: (0, _jsxRuntime.jsx)("div", {
124
+ className: changed ? 'pro-form-item-changed' : '',
125
+ children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest)) : undefined
126
+ })
127
+ });
128
+ };
129
+ var _default = exports.default = ListChanged;
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
10
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
12
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
12
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
@@ -26,10 +25,10 @@ var _ProConfigProvider = require("../../../ProConfigProvider");
26
25
  var _Container = _interopRequireDefault(require("../../../ProForm/components/Container"));
27
26
  var _transformNames = _interopRequireDefault(require("../../../ProForm/utils/transformNames"));
28
27
  var _useFieldProps = require("../../../ProForm/utils/useFieldProps");
29
- var _useListChanged3 = require("../../../ProForm/utils/useListChanged");
30
28
  var _useRules = _interopRequireDefault(require("../../../ProForm/utils/useRules"));
31
29
  var _utils = require("../../../ProForm/utils");
32
30
  var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
31
+ var _ListChanged = _interopRequireDefault(require("./ListChanged"));
33
32
  var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm"];
34
33
  /* eslint-disable prefer-destructuring */
35
34
  /* eslint-disable prefer-const */
@@ -492,21 +491,6 @@ var RenderField = function RenderField(_ref) {
492
491
  return _ref3.apply(this, arguments);
493
492
  };
494
493
  }();
495
- // 判断当前字段是否变更
496
- var _useListChanged = (0, _useListChanged3.useListChanged)({
497
- name: cellName,
498
- names: names,
499
- namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
500
- rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
501
- originalName: originalName,
502
- originalNames: originalNames,
503
- originalValues: originalValues,
504
- form: form,
505
- equalWith: equalWith
506
- }),
507
- _useListChanged2 = (0, _slicedToArray2.default)(_useListChanged, 2),
508
- changed = _useListChanged2[0],
509
- originalValue = _useListChanged2[1];
510
494
  var componentProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
511
495
  form: form,
512
496
  name: cellName
@@ -552,16 +536,36 @@ var RenderField = function RenderField(_ref) {
552
536
  if (isView) {
553
537
  delete _formItemProps.rules;
554
538
  }
555
- var _className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, className, className), 'pro-form-item-changed', changed));
539
+ var _className = (0, _classnames.default)((0, _defineProperty2.default)({}, className, className));
556
540
  var FormItem = null;
541
+ var FieldComponent = /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps));
542
+ if (originalValues) {
543
+ FieldComponent = (0, _jsxRuntime.jsx)(_ListChanged.default, {
544
+ name: cellName,
545
+ names: names,
546
+ namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
547
+ rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
548
+ originalName: originalName,
549
+ originalNames: originalNames,
550
+ originalValues: originalValues,
551
+ form: form,
552
+ equalWith: equalWith,
553
+ type: type,
554
+ onChange: _onChange,
555
+ children: FieldComponent
556
+ });
557
+ }
558
+ if ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) {
559
+ FieldComponent = (0, _jsxRuntime.jsx)(_ConfirmWrapper.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
560
+ children: FieldComponent
561
+ }));
562
+ }
557
563
  FormItem = TargetComponent ? (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
558
564
  validateFirst: true
559
565
  }, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name', 'onCell'])), {}, {
560
566
  className: _className,
561
567
  name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
562
- children: ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) ? (0, _jsxRuntime.jsx)(_ConfirmWrapper.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
563
- children: /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps))
564
- })) : /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps))
568
+ children: FieldComponent
565
569
  })) : (0, _jsxRuntime.jsx)(_Container.default, {
566
570
  viewEmpty: viewEmpty
567
571
  });
@@ -579,28 +583,9 @@ var RenderField = function RenderField(_ref) {
579
583
  }
580
584
  }));
581
585
  }
582
- var originalTitle = originalDiffTip && originalValues ? (0, _jsxRuntime.jsxs)(_antd.Space, {
583
- children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
584
- isView: true,
585
- value: originalValue,
586
- checked: type === 'Switch' ? originalValue : undefined
587
- }))) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
588
- isView: true,
589
- value: originalValue,
590
- checked: type === 'Switch' ? originalValue : undefined
591
- }))]
592
- }) : null;
593
586
  return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
594
587
  value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
595
- children: !originalTitle || ['FormList', 'ProEditTable'].includes(type) ? FormItem : (0, _jsxRuntime.jsx)(_antd.Tooltip, {
596
- title: originalTitle,
597
- placement: "topLeft",
598
- open: changed ? undefined : false,
599
- getPopupContainer: function getPopupContainer(target) {
600
- return target.parentElement;
601
- },
602
- children: FormItem
603
- })
588
+ children: FormItem
604
589
  });
605
590
  };
606
591
  var _default = exports.default = RenderField;
@@ -327,6 +327,7 @@
327
327
 
328
328
  .pro-edit-table-drag {
329
329
  table tr th.@{ant-prefix}-table-selection-column.@{ant-prefix}-table-cell-fix-left{
330
- text-align: right;
330
+ text-align: left;
331
+ padding-left: 52px;
331
332
  }
332
333
  }
@@ -6,4 +6,4 @@
6
6
  * @param columns 表格配置数据
7
7
  * @param config
8
8
  */
9
- export declare const transformColumns: (columns: any[], config: any) => any[];
9
+ export declare const transformColumns: (columns: any[], config: any) => any;
@@ -29,16 +29,21 @@ var _excluded = ["type", "label", "show", "needConfirm", "onHandle", "onClick"],
29
29
  _excluded2 = ["title", "icon"];
30
30
  // 渲染操作栏
31
31
  var getActionColumn = function getActionColumn(config) {
32
- var disabled = config.disabled,
33
- name = config.name,
34
- form = config.form,
35
- virtualKey = config.virtualKey,
36
- validateKeys = config.validateKeys,
37
- actionWidth = config.actionWidth,
38
- actionProps = config.actionProps,
39
- page = config.page,
40
- rowDisabled = config.rowDisabled,
41
- actionDirection = config.actionDirection;
32
+ var _cloneDeepWith = (0, _lodash.cloneDeepWith)(config, function (value) {
33
+ if ( /*#__PURE__*/_react.default.isValidElement(value)) {
34
+ return value;
35
+ }
36
+ }),
37
+ disabled = _cloneDeepWith.disabled,
38
+ name = _cloneDeepWith.name,
39
+ form = _cloneDeepWith.form,
40
+ virtualKey = _cloneDeepWith.virtualKey,
41
+ validateKeys = _cloneDeepWith.validateKeys,
42
+ actionWidth = _cloneDeepWith.actionWidth,
43
+ actionProps = _cloneDeepWith.actionProps,
44
+ page = _cloneDeepWith.page,
45
+ rowDisabled = _cloneDeepWith.rowDisabled,
46
+ actionDirection = _cloneDeepWith.actionDirection;
42
47
  var pageNum = _utils.tools.calc(page.pageNum, '-', 1);
43
48
  var firstIndex = _utils.tools.calc(pageNum, '*', page.pageSize);
44
49
  // actionProps配置为false 默认不插入
@@ -199,7 +204,8 @@ var transformColumns = exports.transformColumns = function transformColumns() {
199
204
  setState = config.setState,
200
205
  page = config.page;
201
206
  var isCell = mode === 'cell';
202
- var _columns = (0, _toConsumableArray2.default)(columns);
207
+ var _columns = (0, _tools.cloneDeepFilterNode)(columns);
208
+ // 你的函数代码
203
209
  var _cacheMap = (0, _objectSpread2.default)({}, cacheMap.current);
204
210
  var pageNum = _utils.tools.calc(page.pageNum, '-', 1);
205
211
  var firstIndex = _utils.tools.calc(pageNum, '*', page.pageSize);
@@ -29,3 +29,9 @@ export declare const getDisabled: ({ globalControl, formDisabled, column, tabled
29
29
  /** 表格自动滚动到报错位置
30
30
  */
31
31
  export declare const handleScrollToError: () => void;
32
+ /**
33
+ * 深copy一个对象,并过滤掉其中的React节点
34
+ * @param value 需要深拷贝的对象
35
+ * @returns 深拷贝后的对象,其中的React节点会被保留
36
+ */
37
+ export declare function cloneDeepFilterNode(value: any): any;
@@ -4,8 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ exports.cloneDeepFilterNode = cloneDeepFilterNode;
7
8
  exports.splitNames = exports.onDelete = exports.handleScrollToError = exports.getRandom = exports.getNamePath = exports.getDisabled = exports.difference = exports.customValidate = void 0;
8
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _react = _interopRequireDefault(require("react"));
9
11
  var _lodash = require("lodash");
10
12
  var getRandom = exports.getRandom = function getRandom() {
11
13
  return Math.random().toString(36).slice(-6);
@@ -189,4 +191,16 @@ var handleScrollToError = exports.handleScrollToError = function handleScrollToE
189
191
  }
190
192
  }
191
193
  }, 0);
192
- };
194
+ };
195
+ /**
196
+ * 深copy一个对象,并过滤掉其中的React节点
197
+ * @param value 需要深拷贝的对象
198
+ * @returns 深拷贝后的对象,其中的React节点会被保留
199
+ */
200
+ function cloneDeepFilterNode(value) {
201
+ return (0, _lodash.cloneDeepWith)(value, function (val) {
202
+ if ( /*#__PURE__*/_react.default.isValidElement(val)) {
203
+ return val;
204
+ }
205
+ });
206
+ }
@@ -98,6 +98,9 @@ var useEnumRequest = function useEnumRequest(props, dispatch) {
98
98
  // 忽略清洗的 codes
99
99
  ignoreCodes = (useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options = useRequest.options) === null || _useRequest$options === void 0 ? void 0 : _useRequest$options.ignoreCodes) || [];
100
100
  Object.keys(response).forEach(function (key) {
101
+ if (!response[key] || !Array.isArray(response[key])) {
102
+ return;
103
+ }
101
104
  var options = (0, _toConsumableArray2.default)(response[key]) || [];
102
105
  if (ignoreCodes.includes(key)) {
103
106
  response[key] = options;
@@ -87,7 +87,7 @@ function cacheFieldNames(fieldNames, dataSource) {
87
87
  });
88
88
  // 递归去对数据进行清洗
89
89
  if (children && Array.isArray(dataSource[children])) {
90
- result[children] = dataSource[children].map(function (item) {
90
+ result.children = dataSource[children].map(function (item) {
91
91
  return cacheFieldNames(fieldNames, item);
92
92
  });
93
93
  }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
@@ -8,12 +9,14 @@ exports.default = void 0;
8
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  var _antd = require("antd");
11
- var _react = require("react");
12
+ var _react = _interopRequireWildcard(require("react"));
12
13
  var _lodash = require("lodash");
13
14
  var _classnames = _interopRequireDefault(require("classnames"));
14
15
  var _ActionButton = _interopRequireDefault(require("./ActionButton"));
15
16
  var _RenderFields = _interopRequireDefault(require("../../../render/RenderFields"));
16
17
  var _ProCollapse = _interopRequireDefault(require("../../../../../ProLayout/components/ProCollapse"));
18
+ var _utils = require("../utils");
19
+ var MemoRenderFields = /*#__PURE__*/_react.default.memo(_RenderFields.default, _utils.memoWith);
17
20
  var BlockFields = function BlockFields(props) {
18
21
  var title = props.title,
19
22
  mode = props.mode,
@@ -70,7 +73,7 @@ var BlockFields = function BlockFields(props) {
70
73
  }),
71
74
  children: (0, _jsxRuntime.jsx)(_antd.Row, {
72
75
  gutter: 24,
73
- children: (0, _jsxRuntime.jsx)(_RenderFields.default, {
76
+ children: (0, _jsxRuntime.jsx)(MemoRenderFields, {
74
77
  columns: columns,
75
78
  form: form,
76
79
  colProps: colProps,
@@ -9,12 +9,15 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  var _antd = require("antd");
12
+ var _react = _interopRequireDefault(require("react"));
12
13
  var _classnames = _interopRequireDefault(require("classnames"));
13
14
  var _sortable = require("@dnd-kit/sortable");
14
15
  var _utilities = require("@dnd-kit/utilities");
15
16
  var _ProIcon = _interopRequireDefault(require("../../../../../ProIcon"));
16
17
  var _ActionButton = _interopRequireDefault(require("./ActionButton"));
17
18
  var _RenderFields = _interopRequireDefault(require("../../../render/RenderFields"));
19
+ var _utils = require("../utils");
20
+ var MemoRenderFields = /*#__PURE__*/_react.default.memo(_RenderFields.default, _utils.memoWith);
18
21
  var LineFields = function LineFields(props) {
19
22
  var mode = props.mode,
20
23
  index = props.index,
@@ -68,7 +71,7 @@ var LineFields = function LineFields(props) {
68
71
  })
69
72
  })), (0, _jsxRuntime.jsx)(_antd.Row, {
70
73
  gutter: isLess ? 0 : 24,
71
- children: (0, _jsxRuntime.jsx)(_RenderFields.default, {
74
+ children: (0, _jsxRuntime.jsx)(MemoRenderFields, {
72
75
  columns: columns,
73
76
  form: form,
74
77
  colProps: colProps,
@@ -9,3 +9,4 @@ export declare const namesPathTransform: ({ names, prefixNamePath, type, }: {
9
9
  prefixNamePath: any[];
10
10
  type: string;
11
11
  }) => string;
12
+ export declare const memoWith: (pre: any, next: any) => boolean;
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.namesPathTransform = void 0;
7
+ exports.namesPathTransform = exports.memoWith = void 0;
8
+ var _lodash = require("lodash");
9
+ var _react = _interopRequireDefault(require("react"));
7
10
  /**
8
11
  * namesPath生产 [['list', 0, 'min'], ['list', 0, 'max']] => list_0_min-list_0_max
9
12
  * @param names name的集合
@@ -23,4 +26,15 @@ var namesPathTransform = exports.namesPathTransform = function namesPathTransfor
23
26
  return newNamePath === null || newNamePath === void 0 ? void 0 : newNamePath.map(function (name) {
24
27
  return Array.isArray(name) ? name.join('_') : name;
25
28
  }).join('-');
29
+ };
30
+ // 比较memo
31
+ var memoWith = exports.memoWith = function memoWith(pre, next) {
32
+ return (0, _lodash.isEqualWith)(pre, next, function (objValue, othValue) {
33
+ if ( /*#__PURE__*/_react.default.isValidElement(objValue) && /*#__PURE__*/_react.default.isValidElement(othValue)) {
34
+ return true;
35
+ }
36
+ if ((0, _lodash.isFunction)(objValue) && (0, _lodash.isFunction)(othValue)) {
37
+ return true;
38
+ }
39
+ });
26
40
  };
@@ -21,6 +21,7 @@ var _ProConfigProvider = require("../../../../ProConfigProvider");
21
21
  var _useEnum = _interopRequireDefault(require("../../../../ProEnum/hooks/useEnum"));
22
22
  var _locale = _interopRequireDefault(require("../../../../locale"));
23
23
  var _ = _interopRequireDefault(require("../../.."));
24
+ var _Container = _interopRequireDefault(require("../../Container"));
24
25
  var _excluded = ["className", "hasDetail", "detailMaxLength", "fieldNames", "value", "disabled", "dataSource", "onChange", "useRequest", "transformResponse", "level", "isView", "enumCode", "code", "tooltip", "separator", "detailPlaceholder"];
25
26
  var Text = _antd.Typography.Text;
26
27
  var defaultFieldNames = {
@@ -82,7 +83,8 @@ var ProCascader = function ProCascader(props) {
82
83
  detailPlaceholder = props.detailPlaceholder,
83
84
  otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
84
85
  var _ref3 = _.default.useFieldProps() || {},
85
- isViewCon = _ref3.isView;
86
+ isViewCon = _ref3.isView,
87
+ viewEmpty = _ref3.viewEmpty;
86
88
  var addressCode = code || enumCode;
87
89
  var realIsView = typeof isView === 'boolean' ? isView : isViewCon;
88
90
  var realLevel = Math.max(2, level);
@@ -238,17 +240,9 @@ var ProCascader = function ProCascader(props) {
238
240
  }
239
241
  }
240
242
  };
241
- return realIsView ? tooltip ? (0, _jsxRuntime.jsx)(_antd.Tooltip, {
242
- className: className,
243
- title: tooltip === true ? viewValue : tooltip,
244
- children: (0, _jsxRuntime.jsx)(Text, {
245
- ellipsis: {
246
- tooltip: false
247
- },
248
- children: viewValue
249
- })
250
- }) : (0, _jsxRuntime.jsx)("span", {
251
- className: className,
243
+ return realIsView ? (0, _jsxRuntime.jsx)(_Container.default, {
244
+ tooltip: !!tooltip,
245
+ viewEmpty: viewEmpty,
252
246
  children: viewValue
253
247
  }) : (0, _jsxRuntime.jsxs)("div", {
254
248
  className: "pro-address ".concat(className),
@@ -0,0 +1,14 @@
1
+ import { FormInstance } from 'antd';
2
+ import { NamePath } from 'antd/lib/form/interface';
3
+ import React from 'react';
4
+ interface Props {
5
+ name?: NamePath;
6
+ names?: NamePath[];
7
+ namesStr?: string;
8
+ originalValues?: any;
9
+ form: FormInstance;
10
+ equalWith?: (preValue: any, curValue: any) => boolean | undefined;
11
+ [name: string]: any;
12
+ }
13
+ declare const Changed: React.FC<Props>;
14
+ export default Changed;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ var _antd = require("antd");
13
+ var _lodash = require("lodash");
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _diffOriginal = require("../../utils/diffOriginal");
16
+ var _excluded = ["name", "names", "namesStr", "originalValues", "form", "equalWith", "children", "type", "originalDiffTip"];
17
+ var Changed = function Changed(props) {
18
+ var name = props.name,
19
+ names = props.names,
20
+ namesStr = props.namesStr,
21
+ originalValues = props.originalValues,
22
+ form = props.form,
23
+ equalWith = props.equalWith,
24
+ children = props.children,
25
+ type = props.type,
26
+ originalDiffTip = props.originalDiffTip,
27
+ rest = (0, _objectWithoutProperties2.default)(props, _excluded);
28
+ // 不渲染tooltip
29
+ var notWatch = !originalDiffTip || ['FormList', 'ProEditTable'].includes(type);
30
+ var originalValue = (names === null || names === void 0 ? void 0 : names.length) ? names.map(function (name) {
31
+ return (0, _lodash.get)(originalValues, name);
32
+ }) : (0, _lodash.get)(originalValues, name);
33
+ var noChange = !equalWith && (!originalValues || originalValue === undefined);
34
+ var changed = (0, _react.useMemo)(function () {
35
+ if (notWatch || noChange) return false;
36
+ return (0, _diffOriginal.diffOriginal)({
37
+ originalValue: originalValue,
38
+ value: props.value,
39
+ form: form,
40
+ equalWith: equalWith
41
+ // name: namesStr || name,
42
+ });
43
+ }, [notWatch, noChange, props.value, originalValue]);
44
+ var tipContent = (0, _react.useMemo)(function () {
45
+ if (notWatch || noChange) return undefined;
46
+ return /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), {}, {
47
+ isView: true,
48
+ value: originalValue,
49
+ checked: type === 'Switch' ? originalValue : undefined
50
+ })) : undefined;
51
+ }, [originalValue, children]);
52
+ if (notWatch || noChange) {
53
+ return /*#__PURE__*/_react.default.isValidElement(children) && /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest));
54
+ }
55
+ return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
56
+ open: changed ? undefined : false,
57
+ getPopupContainer: function getPopupContainer(target) {
58
+ return target.parentElement;
59
+ },
60
+ title: (0, _jsxRuntime.jsxs)(_antd.Space, {
61
+ children: ["\u521D\u59CB\u503C\uFF1A", tipContent]
62
+ }),
63
+ children: (0, _jsxRuntime.jsx)("div", {
64
+ className: changed ? 'pro-form-item-changed' : '',
65
+ children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), rest)) : undefined
66
+ })
67
+ });
68
+ };
69
+ var _default = exports.default = Changed;