@zat-design/sisyphus-react 3.8.3 → 3.9.0-beta.10

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 (82) hide show
  1. package/.vscode/extensions.json +5 -0
  2. package/dist/index.esm.css +48 -3
  3. package/dist/less.esm.css +47 -2
  4. package/es/ProDrawerForm/components/ProDrawer/index.js +3 -1
  5. package/es/ProDrawerForm/components/ProModal/index.js +5 -3
  6. package/es/ProDrawerForm/propsType.d.ts +1 -0
  7. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +83 -20
  8. package/es/ProEditTable/components/RenderField/index.js +6 -2
  9. package/es/ProEditTable/index.js +18 -9
  10. package/es/ProEditTable/propsType.d.ts +3 -6
  11. package/es/ProEditTable/style/index.less +0 -1
  12. package/es/ProEditTable/utils/index.js +10 -3
  13. package/es/ProEnum/index.js +1 -1
  14. package/es/ProForm/components/base/InputNumber/index.js +1 -1
  15. package/es/ProForm/components/combination/FormList/components/BlockFields.d.ts +2 -0
  16. package/es/ProForm/components/combination/FormList/components/BlockFields.js +4 -2
  17. package/es/ProForm/components/combination/FormList/components/LineFields.d.ts +2 -0
  18. package/es/ProForm/components/combination/FormList/components/LineFields.js +4 -2
  19. package/es/ProForm/components/combination/FormList/index.js +14 -3
  20. package/es/ProForm/components/combination/Group/index.js +5 -5
  21. package/es/ProForm/components/combination/ProCascader/index.js +21 -14
  22. package/es/ProForm/components/combination/ProModalSelect/index.js +19 -4
  23. package/es/ProForm/components/render/ChangedWrapper.js +30 -11
  24. package/es/ProForm/components/render/Render.js +3 -1
  25. package/es/ProForm/components/render/RenderFields.js +4 -2
  26. package/es/ProForm/propsType.d.ts +3 -0
  27. package/es/ProForm/style/index.less +35 -9
  28. package/es/ProForm/utils/diffOriginal.js +14 -2
  29. package/es/ProForm/utils/useShouldUpdate.js +1 -9
  30. package/es/ProTable/components/FormatColumn/index.d.ts +3 -2
  31. package/es/ProTable/components/FormatColumn/index.js +143 -62
  32. package/es/ProTable/components/RenderColumn/index.d.ts +2 -0
  33. package/es/ProTable/components/RenderColumn/index.js +50 -19
  34. package/es/ProTable/index.d.ts +6 -5
  35. package/es/ProTable/index.js +12 -12
  36. package/es/ProTable/propsType.d.ts +6 -0
  37. package/es/ProTable/style/index.less +24 -1
  38. package/es/ProTable/utils/index.js +2 -2
  39. package/es/ProTree/components/ProTreeSelect/index.js +32 -13
  40. package/es/style/theme/antd.less +1 -1
  41. package/es/utils/index.d.ts +2 -1
  42. package/es/utils/index.js +30 -1
  43. package/lib/ProDrawerForm/components/ProDrawer/index.js +3 -1
  44. package/lib/ProDrawerForm/components/ProModal/index.js +5 -3
  45. package/lib/ProDrawerForm/propsType.d.ts +1 -0
  46. package/lib/ProEditTable/components/RenderField/ListChangedWrapper.js +82 -21
  47. package/lib/ProEditTable/components/RenderField/index.js +6 -2
  48. package/lib/ProEditTable/index.js +18 -9
  49. package/lib/ProEditTable/propsType.d.ts +3 -6
  50. package/lib/ProEditTable/style/index.less +0 -1
  51. package/lib/ProEditTable/utils/index.js +10 -3
  52. package/lib/ProEnum/index.js +1 -1
  53. package/lib/ProForm/components/base/InputNumber/index.js +1 -1
  54. package/lib/ProForm/components/combination/FormList/components/BlockFields.d.ts +2 -0
  55. package/lib/ProForm/components/combination/FormList/components/BlockFields.js +4 -2
  56. package/lib/ProForm/components/combination/FormList/components/LineFields.d.ts +2 -0
  57. package/lib/ProForm/components/combination/FormList/components/LineFields.js +4 -2
  58. package/lib/ProForm/components/combination/FormList/index.js +14 -3
  59. package/lib/ProForm/components/combination/Group/index.js +5 -5
  60. package/lib/ProForm/components/combination/ProCascader/index.js +21 -14
  61. package/lib/ProForm/components/combination/ProModalSelect/index.js +19 -4
  62. package/lib/ProForm/components/render/ChangedWrapper.js +30 -11
  63. package/lib/ProForm/components/render/Render.js +3 -1
  64. package/lib/ProForm/components/render/RenderFields.js +4 -2
  65. package/lib/ProForm/propsType.d.ts +3 -0
  66. package/lib/ProForm/style/index.less +35 -9
  67. package/lib/ProForm/utils/diffOriginal.js +13 -1
  68. package/lib/ProForm/utils/useShouldUpdate.js +1 -9
  69. package/lib/ProTable/components/FormatColumn/index.d.ts +3 -2
  70. package/lib/ProTable/components/FormatColumn/index.js +143 -62
  71. package/lib/ProTable/components/RenderColumn/index.d.ts +2 -0
  72. package/lib/ProTable/components/RenderColumn/index.js +47 -18
  73. package/lib/ProTable/index.d.ts +6 -5
  74. package/lib/ProTable/index.js +12 -12
  75. package/lib/ProTable/propsType.d.ts +6 -0
  76. package/lib/ProTable/style/index.less +24 -1
  77. package/lib/ProTable/utils/index.js +2 -2
  78. package/lib/ProTree/components/ProTreeSelect/index.js +31 -12
  79. package/lib/style/theme/antd.less +1 -1
  80. package/lib/utils/index.d.ts +2 -1
  81. package/lib/utils/index.js +32 -2
  82. package/package.json +1 -1
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.getParentElement = exports.formatColumn = void 0;
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  var _react = require("react");
11
12
  var _moment15 = _interopRequireDefault(require("moment"));
@@ -17,8 +18,10 @@ var _utils = require("@zat-design/utils");
17
18
  var _TooltipTitle = _interopRequireDefault(require("../TooltipTitle"));
18
19
  var _RenderColumn = _interopRequireDefault(require("../RenderColumn"));
19
20
  var _utils2 = require("../../utils");
21
+ var _utils3 = require("../../../utils");
20
22
  var _getEnumLabel = _interopRequireDefault(require("../../../ProEnum/utils/getEnumLabel"));
21
23
  var _ProForm = _interopRequireDefault(require("../../../ProForm"));
24
+ var _excluded = ["title", "valueType", "format", "precision", "ellipsis", "code", "copyable", "width", "tooltip", "transform", "prefix", "suffix", "dataIndex", "originalDiffTip", "toolTipProps", "minWidth", "onDiff"];
22
25
  var isReactElement = function isReactElement(element) {
23
26
  return /*#__PURE__*/(0, _react.isValidElement)(element);
24
27
  };
@@ -52,12 +55,13 @@ var calcMinWidth = function calcMinWidth(_ref) {
52
55
  var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
53
56
  var column = _ref2.column,
54
57
  originalObj = _ref2.originalObj,
55
- dataSourceObj = _ref2.dataSourceObj,
56
58
  rowKey = _ref2.rowKey,
57
59
  diffToolTip = _ref2.diffToolTip,
58
60
  wrapToolTipProps = _ref2.wrapToolTipProps,
59
61
  scroll = _ref2.scroll,
60
- onUpdateMinWidth = _ref2.onUpdateMinWidth;
62
+ onUpdateMinWidth = _ref2.onUpdateMinWidth,
63
+ isInNewRow = _ref2.isInNewRow,
64
+ diffConfig = _ref2.diffConfig;
61
65
  var title = column.title,
62
66
  valueType = column.valueType,
63
67
  _column$format = column.format,
@@ -73,11 +77,12 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
73
77
  prefix = column.prefix,
74
78
  suffix = column.suffix,
75
79
  dataIndex = column.dataIndex,
76
- _column$originalDiffT = column.originalDiffTip,
77
- originalDiffTip = _column$originalDiffT === void 0 ? true : _column$originalDiffT,
80
+ originalDiffTip = column.originalDiffTip,
78
81
  _column$toolTipProps = column.toolTipProps,
79
82
  toolTipProps = _column$toolTipProps === void 0 ? {} : _column$toolTipProps,
80
- minWidth = column.minWidth;
83
+ minWidth = column.minWidth,
84
+ onDiff = column.onDiff,
85
+ otherProps = (0, _objectWithoutProperties2.default)(column, _excluded);
81
86
  // 仅在 {x: 'max-content', y: 300 } 且 column无指定 width minWidth 情况下 才开启 minWidth的自动计算
82
87
  var isMaxContentOverFlow = (0, _lodash.isObject)(scroll) ? (scroll === null || scroll === void 0 ? void 0 : scroll.x) === 'max-content' && Reflect.ownKeys(scroll).includes('y') : false;
83
88
  calcMinWidth({
@@ -88,7 +93,7 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
88
93
  callback: onUpdateMinWidth
89
94
  });
90
95
  var _toolTipProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, toolTipProps), wrapToolTipProps);
91
- var _originalDiffTip = diffToolTip !== null && diffToolTip !== void 0 ? diffToolTip : originalDiffTip;
96
+ var _originalDiffTip = (diffConfig === null || diffConfig === void 0 ? void 0 : diffConfig.originalDataSource) || (diffConfig === null || diffConfig === void 0 ? void 0 : diffConfig.toolTip);
92
97
  // 前缀处理
93
98
  var prefixNode = function prefixNode(value, record, index) {
94
99
  if (!prefix) {
@@ -114,20 +119,32 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
114
119
  }
115
120
  };
116
121
  if (column === null || column === void 0 ? void 0 : column.render) {
117
- if (!originalObj && Object.keys(originalObj !== null && originalObj !== void 0 ? originalObj : {}).length === 0) {
122
+ if (!originalObj && Object.keys(originalObj !== null && originalObj !== void 0 ? originalObj : {}).length === 0 && !onDiff) {
118
123
  return;
119
124
  }
120
125
  var originalRender = column.render; // 保存原始的 render 方法
121
126
  // 自定义render 手动重载下
122
127
  column.render = function (value, record, index) {
123
- var _originalObj$record$r;
124
128
  var isFn = (0, _lodash.isFunction)(originalRender);
125
- var _value = isFn ? originalRender === null || originalRender === void 0 ? void 0 : originalRender(value, record !== null && record !== void 0 ? record : {}, index) : undefined;
129
+ var _value = isFn ? originalRender === null || originalRender === void 0 ? void 0 : originalRender(value, record !== null && record !== void 0 ? record : {}, index) : null;
126
130
  var originalValue = (0, _utils2.getOriginalValue)(value, record !== null && record !== void 0 ? record : {}, originalObj, rowKey, dataIndex);
127
- var originalRenderValue = isFn ? originalRender === null || originalRender === void 0 ? void 0 : originalRender(originalValue, (_originalObj$record$r = originalObj === null || originalObj === void 0 ? void 0 : originalObj[record === null || record === void 0 ? void 0 : record[rowKey]]) !== null && _originalObj$record$r !== void 0 ? _originalObj$record$r : {}, index) : undefined;
128
- return (0, _jsxRuntime.jsx)(_RenderColumn.default, {
131
+ var isInNewRowFlag = isInNewRow(record);
132
+ // 存在比对
133
+ if ((0, _lodash.isFunction)(otherProps === null || otherProps === void 0 ? void 0 : otherProps.viewRender) && (diffConfig === null || diffConfig === void 0 ? void 0 : diffConfig.originalDataSource)) {
134
+ var _originalObj$record$r;
135
+ var diffResult = otherProps.viewRender({
136
+ originalValue: originalValue,
137
+ originalRecord: (_originalObj$record$r = originalObj === null || originalObj === void 0 ? void 0 : originalObj[record === null || record === void 0 ? void 0 : record[rowKey]]) !== null && _originalObj$record$r !== void 0 ? _originalObj$record$r : {},
138
+ value: value,
139
+ record: record,
140
+ index: index
141
+ });
142
+ originalValue = diffResult;
143
+ otherProps.diffChange = diffResult;
144
+ }
145
+ return (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
129
146
  valueType: valueType,
130
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
147
+ originalValue: (0, _utils3.isEmpty)(originalValue) ? null : originalValue,
131
148
  ellipsis: ellipsis,
132
149
  width: width,
133
150
  value: _value,
@@ -135,8 +152,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
135
152
  currentValue: _value,
136
153
  originalDiffTip: _originalDiffTip,
137
154
  toolTipProps: _toolTipProps,
138
- minWidth: minWidth
139
- });
155
+ minWidth: minWidth,
156
+ isInNewRowFlag: isInNewRowFlag
157
+ }));
140
158
  };
141
159
  return;
142
160
  }
@@ -162,19 +180,25 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
162
180
  var originalValue = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
163
181
  var originalRealValue = _utils.tools.calc(Number(originalValue || null), '*', multiple);
164
182
  var originalRenderValue = (0, _utils2.getDecimalDigits)(originalValue) > valueTypePrecision ? originalRealValue : originalRealValue.toFixed(valueTypePrecision);
165
- if (!originalValue && originalValue !== 0) {
183
+ if ((0, _utils3.isEmpty)(originalValue)) {
166
184
  originalRenderValue = '-';
167
185
  }
168
186
  if (!value && value !== 0 && renderValue === originalRenderValue) {
169
- return '-';
187
+ return (0, _jsxRuntime.jsx)("div", {
188
+ style: {
189
+ minWidth: minWidth
190
+ },
191
+ children: "-"
192
+ });
170
193
  }
171
194
  var node = (0, _jsxRuntime.jsxs)(_antd.Space, {
172
195
  size: 8,
173
196
  children: [prefixNode(value, record, index), renderValue, suffixNode(value, record, index)]
174
197
  });
175
- return (0, _jsxRuntime.jsx)(_RenderColumn.default, {
198
+ var isInNewRowFlag = isInNewRow(record);
199
+ return (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
176
200
  valueType: valueType,
177
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
201
+ originalValue: originalValue === null ? null : originalRenderValue,
178
202
  ellipsis: ellipsis,
179
203
  width: width,
180
204
  node: node,
@@ -182,8 +206,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
182
206
  currentValue: renderValue,
183
207
  originalDiffTip: _originalDiffTip,
184
208
  toolTipProps: _toolTipProps,
185
- minWidth: minWidth
186
- });
209
+ minWidth: minWidth,
210
+ isInNewRowFlag: isInNewRowFlag
211
+ }));
187
212
  };
188
213
  // 千分位, 千分位带CNY前缀
189
214
  } else if (['thousandth', 'thousandthCNY'].includes(valueType)) {
@@ -193,7 +218,7 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
193
218
  var originalValue = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
194
219
  var originalRealValue = valueTypePrecision ? "".concat(Number(originalValue).toFixed(valueTypePrecision)) : "".concat(originalValue);
195
220
  var originalRenderValue = originalRealValue.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
196
- if (!originalValue && originalValue !== 0) {
221
+ if ((0, _utils3.isEmpty)(originalValue)) {
197
222
  originalRenderValue = '-';
198
223
  }
199
224
  var node = (0, _jsxRuntime.jsxs)(_antd.Space, {
@@ -201,11 +226,17 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
201
226
  children: [prefixNode(value, record, index), renderValue, suffixNode(value, record, index)]
202
227
  });
203
228
  if (!value && value !== 0 && renderValue === originalRenderValue) {
204
- return '-';
229
+ (0, _jsxRuntime.jsx)("div", {
230
+ style: {
231
+ minWidth: minWidth
232
+ },
233
+ children: "-"
234
+ });
205
235
  }
206
- return (0, _jsxRuntime.jsx)(_RenderColumn.default, {
236
+ var isInNewRowFlag = isInNewRow(record);
237
+ return (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
207
238
  valueType: valueType,
208
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
239
+ originalValue: originalValue === null ? null : originalRenderValue,
209
240
  ellipsis: ellipsis,
210
241
  width: width,
211
242
  node: node,
@@ -213,8 +244,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
213
244
  currentValue: renderValue,
214
245
  originalDiffTip: _originalDiffTip,
215
246
  toolTipProps: _toolTipProps,
216
- minWidth: minWidth
217
- });
247
+ minWidth: minWidth,
248
+ isInNewRowFlag: isInNewRowFlag
249
+ }));
218
250
  };
219
251
  } else if (['datePicker', 'date', 'dateTime', 'dateStartTime', 'dateEndTime', 'dateStartEndTime'].includes(valueType)) {
220
252
  column.render = function (value, record, index) {
@@ -255,11 +287,17 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
255
287
  children: [prefixNode(value, record, index), renderValue, suffixNode(value, record, index)]
256
288
  });
257
289
  if (!value && renderValue === originalRenderValue) {
258
- return '-';
290
+ (0, _jsxRuntime.jsx)("div", {
291
+ style: {
292
+ minWidth: minWidth
293
+ },
294
+ children: "-"
295
+ });
259
296
  }
260
- return (0, _jsxRuntime.jsx)(_RenderColumn.default, {
297
+ var isInNewRowFlag = isInNewRow(record);
298
+ return (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
261
299
  valueType: valueType,
262
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
300
+ originalValue: originalValue === null ? null : originalRenderValue,
263
301
  ellipsis: ellipsis,
264
302
  width: width,
265
303
  node: node,
@@ -267,8 +305,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
267
305
  currentValue: renderValue,
268
306
  originalDiffTip: _originalDiffTip,
269
307
  toolTipProps: _toolTipProps,
270
- minWidth: minWidth
271
- });
308
+ minWidth: minWidth,
309
+ isInNewRowFlag: isInNewRowFlag
310
+ }));
272
311
  };
273
312
  } else if (['enumName', 'enumCodeName'].includes(valueType)) {
274
313
  column.render = function (value, record, index) {
@@ -296,9 +335,10 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
296
335
  size: 8,
297
336
  children: [prefixNode(value, record, index), renderValue, suffixNode(value, record, index)]
298
337
  });
299
- return (0, _jsxRuntime.jsx)(_RenderColumn.default, {
338
+ var isInNewRowFlag = isInNewRow(record);
339
+ return (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
300
340
  valueType: valueType,
301
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
341
+ originalValue: originalValue === null ? null : originalRenderValue,
302
342
  ellipsis: ellipsis,
303
343
  width: width,
304
344
  node: node,
@@ -306,8 +346,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
306
346
  currentValue: renderValue,
307
347
  originalDiffTip: _originalDiffTip,
308
348
  toolTipProps: _toolTipProps,
309
- minWidth: minWidth
310
- });
349
+ minWidth: minWidth,
350
+ isInNewRowFlag: isInNewRowFlag
351
+ }));
311
352
  };
312
353
  } else if (precision || prefix || suffix) {
313
354
  column.render = function (value, record, index) {
@@ -318,15 +359,21 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
318
359
  size: 8,
319
360
  children: [prefixNode(value, record, index), renderValue, suffixNode(value, record, index)]
320
361
  });
321
- if (!originalValue && originalValue !== 0) {
362
+ if ((0, _utils3.isEmpty)(originalValue)) {
322
363
  originalRenderValue = '-';
323
364
  }
324
365
  if (!value && value !== 0 && renderValue === originalRenderValue) {
325
- return '-';
366
+ (0, _jsxRuntime.jsx)("div", {
367
+ style: {
368
+ minWidth: minWidth
369
+ },
370
+ children: "-"
371
+ });
326
372
  }
327
- return (0, _jsxRuntime.jsx)(_RenderColumn.default, {
373
+ var isInNewRowFlag = isInNewRow(record);
374
+ return (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
328
375
  valueType: valueType,
329
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
376
+ originalValue: originalValue === null ? null : originalRenderValue,
330
377
  ellipsis: ellipsis,
331
378
  width: width,
332
379
  node: node,
@@ -334,8 +381,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
334
381
  currentValue: renderValue,
335
382
  originalDiffTip: _originalDiffTip,
336
383
  toolTipProps: _toolTipProps,
337
- minWidth: minWidth
338
- });
384
+ minWidth: minWidth,
385
+ isInNewRowFlag: isInNewRowFlag
386
+ }));
339
387
  };
340
388
  } else if (valueType === 'address') {
341
389
  column.render = function (value, record, index) {
@@ -347,10 +395,17 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
347
395
  return !!item;
348
396
  })) === null || _realValue$filter === void 0 ? void 0 : _realValue$filter.length) === 0;
349
397
  if ((0, _lodash.isEqual)(value, originalValue) && isEmpty) {
350
- return '-';
398
+ (0, _jsxRuntime.jsx)("div", {
399
+ style: {
400
+ minWidth: minWidth
401
+ },
402
+ children: "-"
403
+ });
404
+ }
405
+ if (originalValue && !(0, _lodash.isEqual)(realValue, originalRealValue)) {
406
+ otherProps.diffChange = true;
351
407
  }
352
408
  var className = (0, _classnames.default)({
353
- 'varied-cell': originalValue !== undefined,
354
409
  'empty-cell': isEmpty
355
410
  });
356
411
  var renderValue = (0, _jsxRuntime.jsx)(_ProForm.default.ProCascader, {
@@ -365,24 +420,35 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
365
420
  code: code,
366
421
  value: originalRealValue
367
422
  });
368
- return (0, _jsxRuntime.jsx)(_ProForm.default.ProCascader, {
423
+ var renderNode = (0, _jsxRuntime.jsx)(_ProForm.default.ProCascader, {
369
424
  className: className,
370
425
  isView: true,
371
426
  mode: "address",
372
427
  code: code,
373
428
  value: realValue,
374
- tooltip: originalValue !== undefined ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
375
- children: ["\u521D\u59CB\u503C\uFF1A", originalRenderValue, (0, _jsxRuntime.jsx)("br", {}), ellipsis ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
376
- children: ["\u5F53\u524D\u503C\uFF1A", renderValue]
377
- }) : undefined]
378
- }) : ellipsis
429
+ tooltip: false
379
430
  });
431
+ var isInNewRowFlag = isInNewRow(record);
432
+ return (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
433
+ valueType: valueType,
434
+ originalValue: originalValue === null ? null : originalRenderValue,
435
+ ellipsis: ellipsis,
436
+ width: width,
437
+ node: renderNode,
438
+ value: renderValue,
439
+ currentValue: renderValue,
440
+ originalDiffTip: _originalDiffTip,
441
+ toolTipProps: _toolTipProps,
442
+ minWidth: minWidth,
443
+ isInNewRowFlag: isInNewRowFlag
444
+ }));
380
445
  };
381
446
  } else if (copyable) {
382
447
  column.render = function (value, record, index) {
448
+ var isInNewRowFlag = isInNewRow(record);
383
449
  return (0, _jsxRuntime.jsxs)(_antd.Space, {
384
450
  size: 8,
385
- children: [prefixNode(value, record, index), (0, _jsxRuntime.jsx)(_RenderColumn.default, {
451
+ children: [prefixNode(value, record, index), (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
386
452
  valueType: valueType,
387
453
  copyable: copyable,
388
454
  ellipsis: ellipsis,
@@ -391,21 +457,28 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
391
457
  value: value,
392
458
  currentValue: value,
393
459
  toolTipProps: _toolTipProps,
394
- minWidth: minWidth
395
- }), suffixNode(value, record, index)]
460
+ minWidth: minWidth,
461
+ isInNewRowFlag: isInNewRowFlag
462
+ })), suffixNode(value, record, index)]
396
463
  });
397
464
  };
398
465
  } else if (ellipsis) {
399
466
  column.render = function (value, record, index) {
400
467
  var originalValue = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
401
468
  if (!value && value !== 0 && value === originalValue) {
402
- return '-';
469
+ (0, _jsxRuntime.jsx)("div", {
470
+ style: {
471
+ minWidth: minWidth
472
+ },
473
+ children: "-"
474
+ });
403
475
  }
476
+ var isInNewRowFlag = isInNewRow(record);
404
477
  return (0, _jsxRuntime.jsxs)(_antd.Space, {
405
478
  size: 8,
406
- children: [prefixNode(value, record, index), (0, _jsxRuntime.jsx)(_RenderColumn.default, {
479
+ children: [prefixNode(value, record, index), (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
407
480
  valueType: valueType,
408
- originalValue: originalValue === undefined ? undefined : originalValue || '-',
481
+ originalValue: originalValue === null ? null : originalValue || '-',
409
482
  ellipsis: ellipsis,
410
483
  width: width,
411
484
  node: value,
@@ -413,8 +486,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
413
486
  currentValue: value || '-',
414
487
  originalDiffTip: _originalDiffTip,
415
488
  toolTipProps: _toolTipProps,
416
- minWidth: minWidth
417
- }), suffixNode(value, record, index)]
489
+ minWidth: minWidth,
490
+ isInNewRowFlag: isInNewRowFlag
491
+ })), suffixNode(value, record, index)]
418
492
  });
419
493
  };
420
494
  } else {
@@ -425,11 +499,17 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
425
499
  children: [prefixNode(value, record, index), value, suffixNode(value, record, index)]
426
500
  });
427
501
  if (!value && value !== 0 && value === originalValue) {
428
- return '-';
502
+ (0, _jsxRuntime.jsx)("div", {
503
+ style: {
504
+ minWidth: minWidth
505
+ },
506
+ children: "-"
507
+ });
429
508
  }
430
- return (0, _jsxRuntime.jsx)(_RenderColumn.default, {
509
+ var isInNewRowFlag = isInNewRow(record);
510
+ return (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
431
511
  valueType: valueType,
432
- originalValue: originalValue === undefined ? undefined : originalValue || '-',
512
+ originalValue: originalValue === null ? null : originalValue || '-',
433
513
  ellipsis: ellipsis,
434
514
  width: width,
435
515
  node: node,
@@ -437,8 +517,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
437
517
  currentValue: value || '-',
438
518
  originalDiffTip: _originalDiffTip,
439
519
  toolTipProps: _toolTipProps,
440
- minWidth: minWidth
441
- });
520
+ minWidth: minWidth,
521
+ isInNewRowFlag: isInNewRowFlag
522
+ }));
442
523
  };
443
524
  }
444
525
  };
@@ -12,6 +12,8 @@ interface Props {
12
12
  originalValue?: any;
13
13
  toolTipProps?: TooltipProps & React.RefAttributes<unknown>;
14
14
  minWidth?: number;
15
+ isInNewRowFlag?: boolean;
16
+ diffChange?: boolean;
15
17
  }
16
18
  declare const RenderColumn: FC<Props>;
17
19
  export default RenderColumn;
@@ -10,8 +10,10 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  var _antd = require("antd");
12
12
  var _ahooks = require("ahooks");
13
+ var _classnames = _interopRequireDefault(require("classnames"));
13
14
  var _icons = require("@ant-design/icons");
14
15
  var _reactSvg = require("react-svg");
16
+ var _utils = require("../../../utils");
15
17
  var _copy = _interopRequireDefault(require("../../../assets/copy.svg"));
16
18
  var Paragraph = _antd.Typography.Paragraph,
17
19
  Text = _antd.Typography.Text;
@@ -28,37 +30,61 @@ var RenderColumn = function RenderColumn(props) {
28
30
  originalDiffTip = props.originalDiffTip,
29
31
  _props$toolTipProps = props.toolTipProps,
30
32
  toolTipProps = _props$toolTipProps === void 0 ? {} : _props$toolTipProps,
31
- minWidth = props.minWidth;
33
+ minWidth = props.minWidth,
34
+ isInNewRowFlag = props.isInNewRowFlag;
32
35
  var _useSetState = (0, _ahooks.useSetState)({
33
36
  tooltip: false
34
37
  }),
35
38
  _useSetState2 = (0, _slicedToArray2.default)(_useSetState, 2),
36
39
  tooltip = _useSetState2[0].tooltip,
37
40
  setState = _useSetState2[1];
38
- if (originalValue !== undefined) {
41
+ var cellDiffCls = (0, _classnames.default)({
42
+ 'varied-cell': originalDiffTip
43
+ });
44
+ if (!(0, _utils.isEmpty)(originalValue, '-') && !isInNewRowFlag) {
39
45
  var renderNode = value ? node : '-';
40
46
  if (ellipsis || originalDiffTip) {
41
- if (ellipsis) {
42
- renderNode = (0, _jsxRuntime.jsx)(Text, {
43
- style: {
44
- width: currentValue === '-' ? 32.5 : width,
45
- minWidth: minWidth
46
- },
47
- ellipsis: {
48
- tooltip: false
49
- },
50
- children: ellipsis ? currentValue : renderNode
51
- });
47
+ renderNode = (0, _jsxRuntime.jsx)(Text, {
48
+ style: {
49
+ width: currentValue === '-' ? 32.5 : width,
50
+ minWidth: minWidth
51
+ },
52
+ ellipsis: {
53
+ tooltip: false
54
+ },
55
+ children: ellipsis ? currentValue : renderNode
56
+ });
57
+ if ((props === null || props === void 0 ? void 0 : props.diffChange) === false) {
58
+ return renderNode;
59
+ }
60
+ if (Array.isArray(originalValue)) {
61
+ console.error('Error: When enabled, dataIndex corresponds to an array, which needs to be converted using viewRender');
52
62
  }
53
63
  return (0, _jsxRuntime.jsx)(_antd.Tooltip, (0, _objectSpread2.default)((0, _objectSpread2.default)({
54
- className: "varied-cell",
64
+ className: cellDiffCls,
55
65
  style: {
56
66
  width: width,
57
67
  minWidth: minWidth
58
68
  },
59
- title: originalDiffTip ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
60
- children: ["\u521D\u59CB\u503C\uFF1A", originalValue, (0, _jsxRuntime.jsx)("br", {}), ellipsis ? "\u5F53\u524D\u503C\uFF1A".concat(currentValue) : undefined]
61
- }) : node,
69
+ overlayClassName: "original-value-tootip",
70
+ placement: "topLeft",
71
+ autoAdjustOverflow: false,
72
+ title: (0, _jsxRuntime.jsx)(_antd.Space, {
73
+ direction: "vertical",
74
+ className: "changed-tooltip",
75
+ children: originalDiffTip ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
76
+ children: [(0, _jsxRuntime.jsxs)(_antd.Space, {
77
+ align: "start",
78
+ className: "original-value-container",
79
+ children: ["\u521D\u59CB\u503C\uFF1A", !Array.isArray(originalValue) ? originalValue : null]
80
+ }), (0, _jsxRuntime.jsx)(_antd.Space, {
81
+ className: "current-value-container",
82
+ children: ellipsis ? (0, _jsxRuntime.jsxs)(_antd.Space, {
83
+ children: ["\u5F53\u524D\u503C\uFF1A", currentValue]
84
+ }) : null
85
+ })]
86
+ }) : node
87
+ }),
62
88
  getPopupContainer: function getPopupContainer(triggerNode) {
63
89
  return triggerNode.parentNode;
64
90
  }
@@ -66,8 +92,11 @@ var RenderColumn = function RenderColumn(props) {
66
92
  children: renderNode
67
93
  }));
68
94
  }
95
+ if ((props === null || props === void 0 ? void 0 : props.diffChange) === false) {
96
+ return renderNode;
97
+ }
69
98
  return (0, _jsxRuntime.jsx)("span", {
70
- className: "varied-cell",
99
+ className: cellDiffCls,
71
100
  style: {
72
101
  width: width,
73
102
  minWidth: minWidth
@@ -1,19 +1,20 @@
1
1
  /// <reference types="react" />
2
2
  import { ProTableProps } from './propsType';
3
+ import useAntdTable from './hooks/useAntdTable';
3
4
  export declare const TableContext: import("react").Context<{}>;
4
5
  export declare const defaultPage: {
5
6
  pageNum: number;
6
7
  pageSize: number;
7
8
  };
8
- declare function ProTable(props: ProTableProps): import("react/jsx-runtime").JSX.Element;
9
- declare namespace ProTable {
10
- var defaultProps: {
9
+ declare const ProTable: {
10
+ (props: ProTableProps): import("react/jsx-runtime").JSX.Element;
11
+ defaultProps: {
11
12
  quickConfig: boolean;
12
13
  stripe: boolean;
13
14
  draggable: boolean;
14
15
  disabled: boolean;
15
16
  isView: boolean;
16
17
  };
17
- var useAntdTable: typeof import("./hooks/useAntdTable").default;
18
- }
18
+ useAntdTable: typeof useAntdTable;
19
+ };
19
20
  export default ProTable;
@@ -36,7 +36,7 @@ var defaultPage = exports.defaultPage = {
36
36
  pageNum: 1,
37
37
  pageSize: 10
38
38
  };
39
- function ProTable(props) {
39
+ var ProTable = function ProTable(props) {
40
40
  var _locale$ProTable, _props$scroll, _curTableConfig$pathK;
41
41
  var _ref = (0, _index.useProConfig)('globalConfig') || {},
42
42
  configStorage = _ref.storage; // 获取全局缓存位置配置
@@ -121,7 +121,6 @@ function ProTable(props) {
121
121
  });
122
122
  });
123
123
  var originalObj = _originalDataSource ? (0, _lodash.keyBy)(_originalDataSource, 'rowKey') : undefined;
124
- var dataSourceObj = _dataSource ? (0, _lodash.keyBy)(_dataSource, 'rowKey') : {};
125
124
  var propsColumnObj = (0, _react.useMemo)(function () {
126
125
  return propsColumns.reduce(function (acc, cur) {
127
126
  // @ts-ignore
@@ -190,6 +189,11 @@ function ProTable(props) {
190
189
  setCurColumns(nextColumns);
191
190
  };
192
191
  };
192
+ var _rowClassName = function _rowClassName(record, index) {
193
+ if (originalDataSource && !originalObj.hasOwnProperty((0, _lodash.get)(record, 'rowKey'))) {
194
+ return 'new-cell';
195
+ }
196
+ };
193
197
  var columns = (0, _react.useMemo)(function () {
194
198
  var newColumns = curColumns.map(function (item, index) {
195
199
  var _propsColumnObj$getCo2;
@@ -215,18 +219,19 @@ function ProTable(props) {
215
219
  (0, _FormatColumn.formatColumn)({
216
220
  column: item,
217
221
  originalObj: originalObj,
218
- dataSourceObj: dataSourceObj,
219
- rowKey: 'rowKey',
222
+ rowKey: props.rowKey,
223
+ diffConfig: diffConfig,
220
224
  diffToolTip: toolTip,
221
225
  wrapToolTipProps: wrapToolTipProps,
222
226
  scroll: _scroll,
223
227
  onUpdateMinWidth: function onUpdateMinWidth(w) {
224
228
  curColumns[index].minWidth = w;
225
- }
229
+ },
230
+ isInNewRow: _rowClassName
226
231
  });
227
232
  });
228
233
  return newColumns;
229
- }, [curColumns, handleResize, _scroll]);
234
+ }, [curColumns, handleResize, _scroll, originalDataSource, originalObj, _rowClassName]);
230
235
  var _columns = (0, _react.useMemo)(function () {
231
236
  return columns === null || columns === void 0 ? void 0 : columns.filter(function (item, index) {
232
237
  var show = item.show;
@@ -375,11 +380,6 @@ function ProTable(props) {
375
380
  return _ref7.apply(this, arguments);
376
381
  };
377
382
  }();
378
- var _rowClassName = function _rowClassName(record, index) {
379
- if (originalDataSource && !originalObj.hasOwnProperty((0, _lodash.get)(record, 'rowKey'))) {
380
- return 'new-cell';
381
- }
382
- };
383
383
  var TableComponent = draggable ? _RcTable.DraggableTable : _RcTable.BaseTable;
384
384
  // 标记样式
385
385
  var tagStyle = {
@@ -453,7 +453,7 @@ function ProTable(props) {
453
453
  })]
454
454
  })
455
455
  });
456
- }
456
+ };
457
457
  ProTable.defaultProps = {
458
458
  quickConfig: false,
459
459
  stripe: true,
@@ -41,6 +41,12 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
41
41
  toolTipProps?: TooltipProps & React.RefAttributes<unknown>;
42
42
  transform?: (value: any, record?: any) => string[];
43
43
  show?: boolean | (() => boolean);
44
+ onDiff?: ({ value, originValue }: {
45
+ value: any;
46
+ originValue: any;
47
+ }) => boolean;
48
+ viewRender?: ({ value, record, index, originalValue, originalRecord }: any) => any;
49
+ diffChange?: boolean;
44
50
  }
45
51
  export interface CreateTreeFromArrayOptions {
46
52
  itemKey?: string;