@zat-design/sisyphus-react 3.9.0 → 3.9.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 (71) hide show
  1. package/dist/index.esm.css +36 -16
  2. package/dist/less.esm.css +32 -14
  3. package/es/ProDrawerForm/components/ProDrawer/index.js +3 -1
  4. package/es/ProDrawerForm/components/ProModal/index.js +5 -3
  5. package/es/ProDrawerForm/propsType.d.ts +1 -0
  6. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +7 -3
  7. package/es/ProEditTable/components/RenderField/index.js +3 -2
  8. package/es/ProEditTable/index.js +23 -16
  9. package/es/ProEditTable/style/index.less +14 -2
  10. package/es/ProEnum/index.js +6 -4
  11. package/es/ProEnum/propsType.d.ts +1 -0
  12. package/es/ProForm/components/base/SwitchCheckbox/index.js +9 -2
  13. package/es/ProForm/components/combination/Group/component/ComRender.d.ts +1 -0
  14. package/es/ProForm/components/combination/Group/component/ComRender.js +12 -1
  15. package/es/ProForm/components/combination/Group/index.js +4 -3
  16. package/es/ProForm/components/combination/ProModalSelect/index.js +30 -29
  17. package/es/ProForm/components/render/ChangedWrapper.js +3 -3
  18. package/es/ProForm/components/render/RenderFields.js +3 -2
  19. package/es/ProForm/components/render/propsType.d.ts +1 -0
  20. package/es/ProForm/style/index.less +10 -6
  21. package/es/ProForm/utils/diffOriginal.js +18 -12
  22. package/es/ProTable/components/FormatColumn/index.d.ts +5 -3
  23. package/es/ProTable/components/FormatColumn/index.js +93 -72
  24. package/es/ProTable/components/RenderColumn/index.d.ts +1 -1
  25. package/es/ProTable/components/RenderColumn/index.js +41 -23
  26. package/es/ProTable/components/TableResizable/index.js +1 -5
  27. package/es/ProTable/index.d.ts +6 -5
  28. package/es/ProTable/index.js +4 -6
  29. package/es/ProTable/propsType.d.ts +2 -1
  30. package/es/ProTable/style/index.less +10 -1
  31. package/es/ProTable/utils/index.d.ts +5 -2
  32. package/es/ProTable/utils/index.js +13 -4
  33. package/es/ProTree/components/ProTreeSelect/index.js +32 -13
  34. package/es/style/theme/antd.less +4 -2
  35. package/es/utils/index.d.ts +1 -1
  36. package/es/utils/index.js +4 -1
  37. package/lib/ProDrawerForm/components/ProDrawer/index.js +3 -1
  38. package/lib/ProDrawerForm/components/ProModal/index.js +5 -3
  39. package/lib/ProDrawerForm/propsType.d.ts +1 -0
  40. package/lib/ProEditTable/components/RenderField/ListChangedWrapper.js +5 -1
  41. package/lib/ProEditTable/components/RenderField/index.js +3 -2
  42. package/lib/ProEditTable/index.js +23 -16
  43. package/lib/ProEditTable/style/index.less +14 -2
  44. package/lib/ProEnum/index.js +6 -4
  45. package/lib/ProEnum/propsType.d.ts +1 -0
  46. package/lib/ProForm/components/base/SwitchCheckbox/index.js +9 -2
  47. package/lib/ProForm/components/combination/Group/component/ComRender.d.ts +1 -0
  48. package/lib/ProForm/components/combination/Group/component/ComRender.js +12 -1
  49. package/lib/ProForm/components/combination/Group/index.js +4 -3
  50. package/lib/ProForm/components/combination/ProModalSelect/index.js +29 -28
  51. package/lib/ProForm/components/render/ChangedWrapper.js +3 -3
  52. package/lib/ProForm/components/render/RenderFields.js +3 -2
  53. package/lib/ProForm/components/render/propsType.d.ts +1 -0
  54. package/lib/ProForm/style/index.less +10 -6
  55. package/lib/ProForm/utils/diffOriginal.js +18 -12
  56. package/lib/ProTable/components/FormatColumn/index.d.ts +5 -3
  57. package/lib/ProTable/components/FormatColumn/index.js +92 -71
  58. package/lib/ProTable/components/RenderColumn/index.d.ts +1 -1
  59. package/lib/ProTable/components/RenderColumn/index.js +41 -23
  60. package/lib/ProTable/components/TableResizable/index.js +0 -4
  61. package/lib/ProTable/index.d.ts +6 -5
  62. package/lib/ProTable/index.js +4 -6
  63. package/lib/ProTable/propsType.d.ts +2 -1
  64. package/lib/ProTable/style/index.less +10 -1
  65. package/lib/ProTable/utils/index.d.ts +5 -2
  66. package/lib/ProTable/utils/index.js +13 -4
  67. package/lib/ProTree/components/ProTreeSelect/index.js +31 -12
  68. package/lib/style/theme/antd.less +4 -2
  69. package/lib/utils/index.d.ts +1 -1
  70. package/lib/utils/index.js +4 -1
  71. package/package.json +1 -1
@@ -1,16 +1,22 @@
1
1
  import "antd/es/space/style";
2
2
  import _Space from "antd/es/space";
3
3
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
+ var _excluded = ["title", "valueType", "format", "precision", "ellipsis", "code", "copyable", "width", "tooltip", "transform", "prefix", "suffix", "dataIndex", "toolTipProps", "minWidth", "onDiff"];
4
6
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
7
+ /**
8
+ * 调整点:
9
+ */
5
10
  import { isValidElement } from 'react';
6
11
  import moment from 'moment';
7
12
  import classnames from 'classnames';
8
13
  import ReactDOM from 'react-dom';
9
- import { isEqual, isFunction, isString, isObject } from 'lodash';
14
+ import { isEqual, isFunction, isString, isObject, isBoolean } from 'lodash';
10
15
  import { tools } from '@zat-design/utils';
11
16
  import TooltipTitle from '../TooltipTitle';
12
17
  import RenderColumn from '../RenderColumn';
13
18
  import { getDecimalDigits, getOriginalValue } from '../../utils';
19
+ import { isEmpty } from '../../../utils';
14
20
  import getEnumLabel from '../../../ProEnum/utils/getEnumLabel';
15
21
  import ProForm from '../../../ProForm';
16
22
  var isReactElement = function isReactElement(element) {
@@ -46,13 +52,12 @@ var calcMinWidth = function calcMinWidth(_ref) {
46
52
  export var formatColumn = function formatColumn(_ref2) {
47
53
  var column = _ref2.column,
48
54
  originalObj = _ref2.originalObj,
49
- dataSourceObj = _ref2.dataSourceObj,
50
55
  rowKey = _ref2.rowKey,
51
- diffToolTip = _ref2.diffToolTip,
52
56
  wrapToolTipProps = _ref2.wrapToolTipProps,
53
57
  scroll = _ref2.scroll,
54
58
  onUpdateMinWidth = _ref2.onUpdateMinWidth,
55
- isInNewRow = _ref2.isInNewRow;
59
+ isInNewRow = _ref2.isInNewRow,
60
+ diffConfig = _ref2.diffConfig;
56
61
  var title = column.title,
57
62
  valueType = column.valueType,
58
63
  _column$format = column.format,
@@ -68,12 +73,11 @@ export var formatColumn = function formatColumn(_ref2) {
68
73
  prefix = column.prefix,
69
74
  suffix = column.suffix,
70
75
  dataIndex = column.dataIndex,
71
- _column$originalDiffT = column.originalDiffTip,
72
- originalDiffTip = _column$originalDiffT === void 0 ? true : _column$originalDiffT,
73
76
  _column$toolTipProps = column.toolTipProps,
74
77
  toolTipProps = _column$toolTipProps === void 0 ? {} : _column$toolTipProps,
75
78
  minWidth = column.minWidth,
76
- onDiff = column.onDiff;
79
+ onDiff = column.onDiff,
80
+ otherProps = _objectWithoutProperties(column, _excluded);
77
81
  // 仅在 {x: 'max-content', y: 300 } 且 column无指定 width minWidth 情况下 才开启 minWidth的自动计算
78
82
  var isMaxContentOverFlow = isObject(scroll) ? (scroll === null || scroll === void 0 ? void 0 : scroll.x) === 'max-content' && Reflect.ownKeys(scroll).includes('y') : false;
79
83
  calcMinWidth({
@@ -84,7 +88,6 @@ export var formatColumn = function formatColumn(_ref2) {
84
88
  callback: onUpdateMinWidth
85
89
  });
86
90
  var _toolTipProps = _objectSpread(_objectSpread({}, toolTipProps), wrapToolTipProps);
87
- var _originalDiffTip = diffToolTip !== null && diffToolTip !== void 0 ? diffToolTip : originalDiffTip;
88
91
  // 前缀处理
89
92
  var prefixNode = function prefixNode(value, record, index) {
90
93
  if (!prefix) {
@@ -116,39 +119,41 @@ export var formatColumn = function formatColumn(_ref2) {
116
119
  var originalRender = column.render; // 保存原始的 render 方法
117
120
  // 自定义render 手动重载下
118
121
  column.render = function (value, record, index) {
119
- var _originalObj$record$r;
120
122
  var isFn = isFunction(originalRender);
121
123
  var _value = isFn ? originalRender === null || originalRender === void 0 ? void 0 : originalRender(value, record !== null && record !== void 0 ? record : {}, index) : null;
122
- var originalValue = getOriginalValue(value, record !== null && record !== void 0 ? record : {}, originalObj, rowKey, dataIndex);
123
- 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) : null;
124
+ var originalResult = getOriginalValue(value, record !== null && record !== void 0 ? record : {}, originalObj, rowKey, dataIndex);
125
+ var originalValue = originalResult.originalValue;
126
+ var isChanged = originalResult.isChanged;
124
127
  var isInNewRowFlag = isInNewRow(record);
125
- var extraDiffFlag = false;
126
- // 把比对结果告诉我
127
- if (onDiff) {
128
- var isDiff = onDiff({
129
- value: record,
130
- originValue: originalObj === null || originalObj === void 0 ? void 0 : originalObj[record === null || record === void 0 ? void 0 : record[rowKey]]
128
+ otherProps.isChanged = isChanged;
129
+ // 存在比对
130
+ if (isFunction(otherProps === null || otherProps === void 0 ? void 0 : otherProps.viewRender) && (diffConfig === null || diffConfig === void 0 ? void 0 : diffConfig.originalDataSource)) {
131
+ var _originalObj$record$r;
132
+ var diffResult = otherProps.viewRender({
133
+ originalValue: originalValue,
134
+ 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 : {},
135
+ value: value,
136
+ record: record,
137
+ index: index
131
138
  });
132
- if (!isDiff) {
133
- originalValue = null;
134
- } else {
135
- originalValue = true;
136
- extraDiffFlag = true;
139
+ // viewRender 返回值为 false 时,不显示对比
140
+ if (isBoolean(diffResult)) {
141
+ otherProps.isChanged = false;
137
142
  }
143
+ originalValue = diffResult;
138
144
  }
139
- return _jsx(RenderColumn, {
145
+ return _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
140
146
  valueType: valueType,
141
- originalValue: !originalValue && originalValue !== 0 ? null : extraDiffFlag ? originalRenderValue !== null && originalRenderValue !== void 0 ? originalRenderValue : originalValue : originalRenderValue,
147
+ originalValue: isEmpty(originalValue) ? null : originalValue,
142
148
  ellipsis: ellipsis,
143
149
  width: width,
144
150
  value: _value,
145
151
  node: _value,
146
152
  currentValue: _value,
147
- originalDiffTip: _originalDiffTip,
148
153
  toolTipProps: _toolTipProps,
149
154
  minWidth: minWidth,
150
155
  isInNewRowFlag: isInNewRowFlag
151
- });
156
+ }));
152
157
  };
153
158
  return;
154
159
  }
@@ -171,10 +176,13 @@ export var formatColumn = function formatColumn(_ref2) {
171
176
  var multiple = valueType === 'percentage' ? 100 : 1000;
172
177
  var realValue = tools.calc(Number(value !== null && value !== void 0 ? value : 0), '*', multiple);
173
178
  var renderValue = getDecimalDigits(value) > valueTypePrecision ? realValue : realValue.toFixed(valueTypePrecision);
174
- var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
179
+ var originalResult = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
180
+ var originalValue = originalResult.originalValue;
181
+ var isChanged = originalResult.isChanged;
182
+ otherProps.isChanged = isChanged;
175
183
  var originalRealValue = tools.calc(Number(originalValue || null), '*', multiple);
176
184
  var originalRenderValue = getDecimalDigits(originalValue) > valueTypePrecision ? originalRealValue : originalRealValue.toFixed(valueTypePrecision);
177
- if (!originalValue && originalValue !== 0) {
185
+ if (isEmpty(originalValue)) {
178
186
  originalRenderValue = '-';
179
187
  }
180
188
  if (!value && value !== 0 && renderValue === originalRenderValue) {
@@ -190,29 +198,31 @@ export var formatColumn = function formatColumn(_ref2) {
190
198
  children: [prefixNode(value, record, index), renderValue, suffixNode(value, record, index)]
191
199
  });
192
200
  var isInNewRowFlag = isInNewRow(record);
193
- return _jsx(RenderColumn, {
201
+ return _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
194
202
  valueType: valueType,
195
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
203
+ originalValue: originalValue === null ? null : originalRenderValue,
196
204
  ellipsis: ellipsis,
197
205
  width: width,
198
206
  node: node,
199
207
  value: value,
200
208
  currentValue: renderValue,
201
- originalDiffTip: _originalDiffTip,
202
209
  toolTipProps: _toolTipProps,
203
210
  minWidth: minWidth,
204
211
  isInNewRowFlag: isInNewRowFlag
205
- });
212
+ }));
206
213
  };
207
214
  // 千分位, 千分位带CNY前缀
208
215
  } else if (['thousandth', 'thousandthCNY'].includes(valueType)) {
209
216
  column.render = function (value, record, index) {
210
217
  var valueStr = valueTypePrecision ? "".concat(Number(value).toFixed(valueTypePrecision)) : "".concat(value);
211
218
  var renderValue = valueStr.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
212
- var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
219
+ var originalResult = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
220
+ var originalValue = originalResult.originalValue;
221
+ var isChanged = originalResult.isChanged;
222
+ otherProps.isChanged = isChanged;
213
223
  var originalRealValue = valueTypePrecision ? "".concat(Number(originalValue).toFixed(valueTypePrecision)) : "".concat(originalValue);
214
224
  var originalRenderValue = originalRealValue.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
215
- if (!originalValue && originalValue !== 0) {
225
+ if (isEmpty(originalValue)) {
216
226
  originalRenderValue = '-';
217
227
  }
218
228
  var node = _jsxs(_Space, {
@@ -228,25 +238,27 @@ export var formatColumn = function formatColumn(_ref2) {
228
238
  });
229
239
  }
230
240
  var isInNewRowFlag = isInNewRow(record);
231
- return _jsx(RenderColumn, {
241
+ return _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
232
242
  valueType: valueType,
233
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
243
+ originalValue: originalValue === null ? null : originalRenderValue,
234
244
  ellipsis: ellipsis,
235
245
  width: width,
236
246
  node: node,
237
247
  value: value,
238
248
  currentValue: renderValue,
239
- originalDiffTip: _originalDiffTip,
240
249
  toolTipProps: _toolTipProps,
241
250
  minWidth: minWidth,
242
251
  isInNewRowFlag: isInNewRowFlag
243
- });
252
+ }));
244
253
  };
245
254
  } else if (['datePicker', 'date', 'dateTime', 'dateStartTime', 'dateEndTime', 'dateStartEndTime'].includes(valueType)) {
246
255
  column.render = function (value, record, index) {
247
256
  var _moment, _moment2, _moment3, _moment4, _moment5, _moment6, _moment7, _moment8, _moment9, _moment10, _moment11, _moment12, _moment13, _moment14;
248
257
  var renderValue = (_moment = moment(value)) === null || _moment === void 0 ? void 0 : _moment.format(format);
249
- var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
258
+ var originalResult = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
259
+ var originalValue = originalResult.originalValue;
260
+ var isChanged = originalResult.isChanged;
261
+ otherProps.isChanged = isChanged;
250
262
  var originalRenderValue = (_moment2 = moment(originalValue)) === null || _moment2 === void 0 ? void 0 : _moment2.format(format);
251
263
  switch (valueType) {
252
264
  case 'date':
@@ -289,25 +301,27 @@ export var formatColumn = function formatColumn(_ref2) {
289
301
  });
290
302
  }
291
303
  var isInNewRowFlag = isInNewRow(record);
292
- return _jsx(RenderColumn, {
304
+ return _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
293
305
  valueType: valueType,
294
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
306
+ originalValue: originalValue === null ? null : originalRenderValue,
295
307
  ellipsis: ellipsis,
296
308
  width: width,
297
309
  node: node,
298
310
  value: value,
299
311
  currentValue: renderValue,
300
- originalDiffTip: _originalDiffTip,
301
312
  toolTipProps: _toolTipProps,
302
313
  minWidth: minWidth,
303
314
  isInNewRowFlag: isInNewRowFlag
304
- });
315
+ }));
305
316
  };
306
317
  } else if (['enumName', 'enumCodeName'].includes(valueType)) {
307
318
  column.render = function (value, record, index) {
308
319
  var realCode = typeof code === 'function' ? code(value, record) : code;
309
320
  var renderValue = getEnumLabel(realCode, value, valueType === 'enumCodeName');
310
- var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
321
+ var originalResult = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
322
+ var originalValue = originalResult.originalValue;
323
+ var isChanged = originalResult.isChanged;
324
+ otherProps.isChanged = isChanged;
311
325
  var originalRenderValue = getEnumLabel(realCode, originalValue, valueType === 'enumCodeName');
312
326
  if (Array.isArray(column === null || column === void 0 ? void 0 : column.codeValues) && !realCode) {
313
327
  var _column$codeValues$fi;
@@ -330,30 +344,32 @@ export var formatColumn = function formatColumn(_ref2) {
330
344
  children: [prefixNode(value, record, index), renderValue, suffixNode(value, record, index)]
331
345
  });
332
346
  var isInNewRowFlag = isInNewRow(record);
333
- return _jsx(RenderColumn, {
347
+ return _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
334
348
  valueType: valueType,
335
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
349
+ originalValue: originalValue === null ? null : originalRenderValue,
336
350
  ellipsis: ellipsis,
337
351
  width: width,
338
352
  node: node,
339
353
  value: value,
340
354
  currentValue: renderValue,
341
- originalDiffTip: _originalDiffTip,
342
355
  toolTipProps: _toolTipProps,
343
356
  minWidth: minWidth,
344
357
  isInNewRowFlag: isInNewRowFlag
345
- });
358
+ }));
346
359
  };
347
360
  } else if (precision || prefix || suffix) {
348
361
  column.render = function (value, record, index) {
349
362
  var renderValue = value === 'number' ? value.toFixed(precision) : value;
350
- var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
363
+ var originalResult = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
364
+ var originalValue = originalResult.originalValue;
365
+ var isChanged = originalResult.isChanged;
366
+ otherProps.isChanged = isChanged;
351
367
  var originalRenderValue = originalValue === 'number' ? originalValue.toFixed(precision) : originalValue;
352
368
  var node = _jsxs(_Space, {
353
369
  size: 8,
354
370
  children: [prefixNode(value, record, index), renderValue, suffixNode(value, record, index)]
355
371
  });
356
- if (!originalValue && originalValue !== 0) {
372
+ if (isEmpty(originalValue)) {
357
373
  originalRenderValue = '-';
358
374
  }
359
375
  if (!value && value !== 0 && renderValue === originalRenderValue) {
@@ -365,25 +381,27 @@ export var formatColumn = function formatColumn(_ref2) {
365
381
  });
366
382
  }
367
383
  var isInNewRowFlag = isInNewRow(record);
368
- return _jsx(RenderColumn, {
384
+ return _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
369
385
  valueType: valueType,
370
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
386
+ originalValue: originalValue === null ? null : originalRenderValue,
371
387
  ellipsis: ellipsis,
372
388
  width: width,
373
389
  node: node,
374
390
  value: value,
375
391
  currentValue: renderValue,
376
- originalDiffTip: _originalDiffTip,
377
392
  toolTipProps: _toolTipProps,
378
393
  minWidth: minWidth,
379
394
  isInNewRowFlag: isInNewRowFlag
380
- });
395
+ }));
381
396
  };
382
397
  } else if (valueType === 'address') {
383
398
  column.render = function (value, record, index) {
384
399
  var _realValue$filter;
385
400
  var realValue = transform ? transform(value, record) : value;
386
- var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
401
+ var originalResult = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
402
+ var originalValue = originalResult.originalValue;
403
+ var isChanged = originalResult.isChanged;
404
+ otherProps.isChanged = isChanged;
387
405
  var originalRealValue = transform ? transform(originalValue, record) : originalValue;
388
406
  var isEmpty = !realValue || Array.isArray(realValue) && (realValue === null || realValue === void 0 ? void 0 : (_realValue$filter = realValue.filter(function (item) {
389
407
  return !!item;
@@ -420,26 +438,25 @@ export var formatColumn = function formatColumn(_ref2) {
420
438
  tooltip: false
421
439
  });
422
440
  var isInNewRowFlag = isInNewRow(record);
423
- return _jsx(RenderColumn, {
441
+ return _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
424
442
  valueType: valueType,
425
- originalValue: originalValue === undefined ? undefined : originalRenderValue,
426
- ellipsis: ellipsis !== null && ellipsis !== void 0 ? ellipsis : true,
443
+ originalValue: originalValue === null ? null : originalRenderValue,
444
+ ellipsis: ellipsis,
427
445
  width: width,
428
446
  node: renderNode,
429
447
  value: renderValue,
430
448
  currentValue: renderValue,
431
- originalDiffTip: _originalDiffTip,
432
449
  toolTipProps: _toolTipProps,
433
450
  minWidth: minWidth,
434
451
  isInNewRowFlag: isInNewRowFlag
435
- });
452
+ }));
436
453
  };
437
454
  } else if (copyable) {
438
455
  column.render = function (value, record, index) {
439
456
  var isInNewRowFlag = isInNewRow(record);
440
457
  return _jsxs(_Space, {
441
458
  size: 8,
442
- children: [prefixNode(value, record, index), _jsx(RenderColumn, {
459
+ children: [prefixNode(value, record, index), _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
443
460
  valueType: valueType,
444
461
  copyable: copyable,
445
462
  ellipsis: ellipsis,
@@ -450,12 +467,15 @@ export var formatColumn = function formatColumn(_ref2) {
450
467
  toolTipProps: _toolTipProps,
451
468
  minWidth: minWidth,
452
469
  isInNewRowFlag: isInNewRowFlag
453
- }), suffixNode(value, record, index)]
470
+ })), suffixNode(value, record, index)]
454
471
  });
455
472
  };
456
473
  } else if (ellipsis) {
457
474
  column.render = function (value, record, index) {
458
- var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
475
+ var originalResult = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
476
+ var originalValue = originalResult.originalValue;
477
+ var isChanged = originalResult.isChanged;
478
+ otherProps.isChanged = isChanged;
459
479
  if (!value && value !== 0 && value === originalValue) {
460
480
  _jsx("div", {
461
481
  style: {
@@ -467,24 +487,26 @@ export var formatColumn = function formatColumn(_ref2) {
467
487
  var isInNewRowFlag = isInNewRow(record);
468
488
  return _jsxs(_Space, {
469
489
  size: 8,
470
- children: [prefixNode(value, record, index), _jsx(RenderColumn, {
490
+ children: [prefixNode(value, record, index), _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
471
491
  valueType: valueType,
472
- originalValue: originalValue === undefined ? undefined : originalValue || '-',
492
+ originalValue: originalValue === null ? null : originalValue || '-',
473
493
  ellipsis: ellipsis,
474
494
  width: width,
475
495
  node: value,
476
496
  value: value,
477
497
  currentValue: value || '-',
478
- originalDiffTip: _originalDiffTip,
479
498
  toolTipProps: _toolTipProps,
480
499
  minWidth: minWidth,
481
500
  isInNewRowFlag: isInNewRowFlag
482
- }), suffixNode(value, record, index)]
501
+ })), suffixNode(value, record, index)]
483
502
  });
484
503
  };
485
504
  } else {
486
505
  column.render = function (value, record, index) {
487
- var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
506
+ var originalResult = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
507
+ var originalValue = originalResult.originalValue;
508
+ var isChanged = originalResult.isChanged;
509
+ otherProps.isChanged = isChanged;
488
510
  var node = _jsxs(_Space, {
489
511
  size: 8,
490
512
  children: [prefixNode(value, record, index), value, suffixNode(value, record, index)]
@@ -498,19 +520,18 @@ export var formatColumn = function formatColumn(_ref2) {
498
520
  });
499
521
  }
500
522
  var isInNewRowFlag = isInNewRow(record);
501
- return _jsx(RenderColumn, {
523
+ return _jsx(RenderColumn, _objectSpread(_objectSpread({}, otherProps), {}, {
502
524
  valueType: valueType,
503
- originalValue: originalValue === undefined ? undefined : originalValue || '-',
525
+ originalValue: originalValue === null ? null : originalValue || '-',
504
526
  ellipsis: ellipsis,
505
527
  width: width,
506
528
  node: node,
507
529
  value: value,
508
530
  currentValue: value || '-',
509
- originalDiffTip: _originalDiffTip,
510
531
  toolTipProps: _toolTipProps,
511
532
  minWidth: minWidth,
512
533
  isInNewRowFlag: isInNewRowFlag
513
- });
534
+ }));
514
535
  };
515
536
  }
516
537
  };
@@ -6,13 +6,13 @@ interface Props {
6
6
  value?: any;
7
7
  currentValue?: any;
8
8
  copyable?: boolean;
9
- originalDiffTip?: boolean;
10
9
  ellipsis?: any;
11
10
  width?: number | string;
12
11
  originalValue?: any;
13
12
  toolTipProps?: TooltipProps & React.RefAttributes<unknown>;
14
13
  minWidth?: number;
15
14
  isInNewRowFlag?: boolean;
15
+ isChanged?: boolean;
16
16
  }
17
17
  declare const RenderColumn: FC<Props>;
18
18
  export default RenderColumn;
@@ -8,8 +8,11 @@ import "antd/es/typography/style";
8
8
  import _Typography from "antd/es/typography";
9
9
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
10
  import { useSetState } from 'ahooks';
11
+ import { isBoolean } from 'lodash';
12
+ import classNames from 'classnames';
11
13
  import { CheckOutlined } from '@ant-design/icons';
12
14
  import { ReactSVG } from 'react-svg';
15
+ import { isEmpty } from '../../../utils';
13
16
  import copySvg from '../../../assets/copy.svg';
14
17
  var Paragraph = _Typography.Paragraph,
15
18
  Text = _Typography.Text;
@@ -23,7 +26,6 @@ var RenderColumn = function RenderColumn(props) {
23
26
  ellipsis = props.ellipsis,
24
27
  width = props.width,
25
28
  originalValue = props.originalValue,
26
- originalDiffTip = props.originalDiffTip,
27
29
  _props$toolTipProps = props.toolTipProps,
28
30
  toolTipProps = _props$toolTipProps === void 0 ? {} : _props$toolTipProps,
29
31
  minWidth = props.minWidth,
@@ -34,39 +36,55 @@ var RenderColumn = function RenderColumn(props) {
34
36
  _useSetState2 = _slicedToArray(_useSetState, 2),
35
37
  tooltip = _useSetState2[0].tooltip,
36
38
  setState = _useSetState2[1];
37
- if ((originalValue || originalValue === 0) && !isInNewRowFlag) {
39
+ var cellDiffCls = classNames({
40
+ 'varied-cell': props === null || props === void 0 ? void 0 : props.isChanged
41
+ });
42
+ // 比对场景走的逻辑
43
+ if (!isInNewRowFlag && isBoolean(props === null || props === void 0 ? void 0 : props.isChanged)) {
38
44
  var renderNode = value ? node : '-';
39
- if (ellipsis || originalDiffTip) {
40
- if (ellipsis) {
41
- renderNode = _jsx(Text, {
42
- style: {
43
- width: currentValue === '-' ? 32.5 : width,
44
- minWidth: minWidth
45
- },
46
- ellipsis: {
47
- tooltip: false
48
- },
49
- children: ellipsis ? currentValue : renderNode
50
- });
45
+ if (ellipsis || (props === null || props === void 0 ? void 0 : props.isChanged)) {
46
+ renderNode = _jsx(Text, {
47
+ style: {
48
+ width: currentValue === '-' ? 32.5 : width,
49
+ minWidth: minWidth
50
+ },
51
+ ellipsis: {
52
+ tooltip: false
53
+ },
54
+ children: ellipsis ? currentValue : renderNode
55
+ });
56
+ if ((props === null || props === void 0 ? void 0 : props.isChanged) === false) {
57
+ return renderNode;
58
+ }
59
+ if (Array.isArray(originalValue)) {
60
+ console.error('Error: When enabled, dataIndex corresponds to an array, which needs to be converted using viewRender');
51
61
  }
62
+ var originalValueCalc = function originalValueCalc() {
63
+ if (Array.isArray(originalValue)) {
64
+ return null;
65
+ }
66
+ return !isEmpty(originalValue) ? originalValue : '-';
67
+ };
52
68
  return _jsx(_Tooltip, _objectSpread(_objectSpread({
53
- className: "varied-cell",
69
+ className: cellDiffCls,
54
70
  style: {
55
71
  width: width,
56
72
  minWidth: minWidth
57
73
  },
58
- overlayClassName: "original-value-tootip",
74
+ overlayClassName: "original-value-tooltip",
75
+ placement: "topLeft",
76
+ autoAdjustOverflow: false,
59
77
  title: _jsx(_Space, {
60
78
  direction: "vertical",
61
79
  className: "changed-tooltip",
62
- children: originalDiffTip ? _jsxs(_Fragment, {
80
+ children: (props === null || props === void 0 ? void 0 : props.isChanged) ? _jsxs(_Fragment, {
63
81
  children: [_jsxs(_Space, {
64
82
  align: "start",
65
83
  className: "original-value-container",
66
- children: ["\u521D\u59CB\u503C\uFF1A", originalValue]
84
+ children: ["\u521D\u59CB\u503C\uFF1A", originalValueCalc()]
67
85
  }), _jsx(_Space, {
68
86
  className: "current-value-container",
69
- children: ellipsis ? _jsxs("span", {
87
+ children: ellipsis ? _jsxs(_Space, {
70
88
  children: ["\u5F53\u524D\u503C\uFF1A", currentValue]
71
89
  }) : null
72
90
  })]
@@ -79,8 +97,11 @@ var RenderColumn = function RenderColumn(props) {
79
97
  children: renderNode
80
98
  }));
81
99
  }
100
+ if ((props === null || props === void 0 ? void 0 : props.isChanged) === false) {
101
+ return renderNode;
102
+ }
82
103
  return _jsx("span", {
83
- className: "varied-cell",
104
+ className: cellDiffCls,
84
105
  style: {
85
106
  width: width,
86
107
  minWidth: minWidth
@@ -129,15 +150,12 @@ var RenderColumn = function RenderColumn(props) {
129
150
  range.setStart(box, 0);
130
151
  range.setEnd(box, box.childNodes.length);
131
152
  var rangeWidth = range.getBoundingClientRect().width;
132
- var rangeHeight = range.getBoundingClientRect().height;
133
- var contentWidth = rangeWidth - Math.floor(rangeWidth);
134
153
  var _getPadding = getPadding(box),
135
154
  pLeft = _getPadding.pLeft,
136
155
  pRight = _getPadding.pRight,
137
156
  pTop = _getPadding.pTop,
138
157
  pBottom = _getPadding.pBottom;
139
158
  var horizontalPadding = pLeft + pRight;
140
- var verticalPadding = pTop + pBottom;
141
159
  if (rangeWidth + horizontalPadding > box.clientWidth) {
142
160
  return true;
143
161
  }
@@ -3,10 +3,9 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
4
  var _excluded = ["onDrag", "width", "minwidth"];
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
- import { useState, useContext } from 'react';
6
+ import { useState } from 'react';
7
7
  import { Resizable } from 'react-resizable';
8
8
  import classnames from 'classnames';
9
- import { TableContext } from '../../index';
10
9
  import { getParentElement } from '../FormatColumn';
11
10
  var ResizableTitle = function ResizableTitle(props) {
12
11
  var _restProps$className;
@@ -15,9 +14,6 @@ var ResizableTitle = function ResizableTitle(props) {
15
14
  _props$minwidth = props.minwidth,
16
15
  minwidth = _props$minwidth === void 0 ? 50 : _props$minwidth,
17
16
  restProps = _objectWithoutProperties(props, _excluded);
18
- var _useContext = useContext(TableContext),
19
- tableConfig = _useContext.tableConfig,
20
- Storage = _useContext.Storage;
21
17
  // 添加偏移量
22
18
  var _useState = useState(0),
23
19
  _useState2 = _slicedToArray(_useState, 2),
@@ -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;
@@ -29,7 +29,7 @@ export var defaultPage = {
29
29
  pageNum: 1,
30
30
  pageSize: 10
31
31
  };
32
- function ProTable(props) {
32
+ var ProTable = function ProTable(props) {
33
33
  var _locale$ProTable, _props$scroll, _curTableConfig$pathK;
34
34
  var _ref = useProConfig('globalConfig') || {},
35
35
  configStorage = _ref.storage; // 获取全局缓存位置配置
@@ -114,7 +114,6 @@ function ProTable(props) {
114
114
  });
115
115
  });
116
116
  var originalObj = _originalDataSource ? keyBy(_originalDataSource, 'rowKey') : undefined;
117
- var dataSourceObj = _dataSource ? keyBy(_dataSource, 'rowKey') : {};
118
117
  var propsColumnObj = useMemo(function () {
119
118
  return propsColumns.reduce(function (acc, cur) {
120
119
  // @ts-ignore
@@ -213,9 +212,8 @@ function ProTable(props) {
213
212
  formatColumn({
214
213
  column: item,
215
214
  originalObj: originalObj,
216
- dataSourceObj: dataSourceObj,
217
- rowKey: 'rowKey',
218
- diffToolTip: toolTip,
215
+ rowKey: props.rowKey,
216
+ diffConfig: diffConfig,
219
217
  wrapToolTipProps: wrapToolTipProps,
220
218
  scroll: _scroll,
221
219
  onUpdateMinWidth: function onUpdateMinWidth(w) {
@@ -447,7 +445,7 @@ function ProTable(props) {
447
445
  })]
448
446
  })
449
447
  });
450
- }
448
+ };
451
449
  ProTable.defaultProps = {
452
450
  quickConfig: false,
453
451
  stripe: true,
@@ -31,7 +31,6 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
31
31
  value: string | number;
32
32
  }[];
33
33
  copyable?: boolean;
34
- originalDiffTip?: boolean;
35
34
  prefix?: string | ReactNode | ((value: any, record?: any, index?: number) => any);
36
35
  suffix?: string | ReactNode | ((value: any, record?: any, index?: number) => any);
37
36
  tooltip?: ReactNode | {
@@ -45,6 +44,8 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
45
44
  value: any;
46
45
  originValue: any;
47
46
  }) => boolean;
47
+ viewRender?: ({ value, record, index, originalValue, originalRecord }: any) => any;
48
+ isChanged?: boolean | null;
48
49
  }
49
50
  export interface CreateTreeFromArrayOptions {
50
51
  itemKey?: string;