@zat-design/sisyphus-react 4.1.2 → 4.1.3-beta.2

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.
@@ -1,4 +1,5 @@
1
- var _excluded = ["value", "onChange", "onDrag", "onDragEnd", "className", "columns", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "toolbarSticky", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "requiredAlign", "summary", "max", "headerRender", "pagination", "rowKey", "rowDisabled", "rowDraggable", "footerRender", "scroll", "actionDirection", "diffConfig"];
1
+ var _excluded = ["value", "onChange", "onDrag", "onDragEnd", "className", "columns", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "toolbarSticky", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "requiredAlign", "summary", "max", "headerRender", "pagination", "rowKey", "rowDisabled", "rowDraggable", "footerRender", "scroll", "actionDirection", "diffConfig"],
2
+ _excluded2 = ["_dragIndex"];
2
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -426,12 +427,15 @@ var ProEditTable = (_ref, ref) => {
426
427
  var TableComponent = draggable ? DraggableTable : BaseTable;
427
428
 
428
429
  // 给每个 record 附加编辑状态标识,让 shouldCellUpdate 能检测到状态变化
430
+ // draggable 时同时注入 _dragIndex,供 shouldCellUpdate 感知行位置变化(拖拽后同一行数据不变但位置变了)
429
431
  var enrichedValue = useMemo(() => {
430
- if (!virtualKey) return value;
431
- return value === null || value === void 0 ? void 0 : value.map(record => _objectSpread(_objectSpread({}, record), {}, {
432
+ if (!virtualKey && !draggable) return value;
433
+ return value === null || value === void 0 ? void 0 : value.map((record, idx) => _objectSpread(_objectSpread(_objectSpread({}, record), virtualKey ? {
432
434
  _isEditing: editingKeys.includes(record.rowKey) || record._addFlag
433
- }));
434
- }, [value, virtualKey, editingKeys]);
435
+ } : {}), draggable ? {
436
+ _dragIndex: idx
437
+ } : {}));
438
+ }, [value, virtualKey, editingKeys, draggable]);
435
439
  var tableProps = useMemo(() => ({
436
440
  rowKey,
437
441
  value: enrichedValue,
@@ -454,12 +458,22 @@ var ProEditTable = (_ref, ref) => {
454
458
  locale,
455
459
  handlePageChange
456
460
  }), [_className, _columns, _rowClassName, disabled, editingKeys, formatMessage, handlePageChange, headerRender, isHideCheckBox, locale, page, pagination, renderRowSelection, rowDraggable, rowKey, scroll, _summary, tableRef, enrichedValue, virtualKey]);
461
+
462
+ // 拖拽排序后,enrichedValue 中含 _dragIndex(内部字段),需清除后再传给外部 onChange
463
+ var handleDragChange = useCallback(newValue => {
464
+ var cleanValue = newValue === null || newValue === void 0 ? void 0 : newValue.map(_ref6 => {
465
+ var _ = _ref6._dragIndex,
466
+ rest = _objectWithoutProperties(_ref6, _excluded2);
467
+ return rest;
468
+ });
469
+ onChange === null || onChange === void 0 || onChange(cleanValue);
470
+ }, [onChange]);
457
471
  return /*#__PURE__*/_jsxs(_Fragment, {
458
472
  children: [/*#__PURE__*/_jsx(ConfigProvider, {
459
473
  renderEmpty: value !== null && value !== void 0 && value.length ? undefined : emptyDom,
460
474
  children: /*#__PURE__*/_jsx(TableComponent, _objectSpread(_objectSpread({}, resetProps), {}, {
461
475
  draggableProps: {
462
- onChange,
476
+ onChange: draggable ? handleDragChange : onChange,
463
477
  onDrag,
464
478
  onDragEnd,
465
479
  draggable
@@ -18,7 +18,7 @@ export declare const defaultToolbarKeys: string[];
18
18
  export declare const actions: {
19
19
  edit: ({ record, editingKeys, setState, form, virtualRowName, virtualKey, onlyOneLineMsg }: any) => boolean;
20
20
  save: ({ record, editingKeys, setState, form, rowName, virtualRowName, result }: any) => Promise<void>;
21
- cancel: ({ name, record, editingKeys, setState, form, virtualRowName, virtualKey }: any) => void;
21
+ cancel: ({ name, record, editingKeys, setState, form, virtualRowName, virtualKey, rowName }: any) => void;
22
22
  delete: ({ name, record, editingKeys, setState, form, virtualKey, onlyOneLineMsg }: any) => boolean;
23
23
  add: ({ result, insertType, editingKeys, setState, form, name, virtualName, virtualKey, onlyOneLineMsg, tableRef, prefixCls, page, handlePageChange, }: any) => Promise<boolean>;
24
24
  mulDelete: ({ form, name, virtualKey, setState, selectedRowKeys, editingKeys }: any) => void;
@@ -111,7 +111,8 @@ export var actions = {
111
111
  setState = _ref3.setState,
112
112
  form = _ref3.form,
113
113
  virtualRowName = _ref3.virtualRowName,
114
- virtualKey = _ref3.virtualKey;
114
+ virtualKey = _ref3.virtualKey,
115
+ rowName = _ref3.rowName;
115
116
  var nextEditingKeys = editingKeys.filter(key => key !== record.rowKey);
116
117
  // 保存后取消编辑状态,供validator做保存校验
117
118
  if (nextEditingKeys !== null && nextEditingKeys !== void 0 && nextEditingKeys.length) {
@@ -131,9 +132,10 @@ export var actions = {
131
132
  selectedRowKeys: [record.rowKey]
132
133
  });
133
134
  } else {
134
- // 防止value引用不变, 值不更新 - (自定义组件)
135
+ // 取消时使用主 form 原始行数据重置虚拟 form,避免编辑值残留
136
+ var originalRecord = form.getFieldValue(rowName);
135
137
  var values = form.getFieldsValue();
136
- set(values, virtualRowName, record);
138
+ set(values, virtualRowName, originalRecord !== null && originalRecord !== void 0 ? originalRecord : record);
137
139
  form.setFieldsValue(values);
138
140
  }
139
141
  },
@@ -27,6 +27,8 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
27
27
  var columnDataSourceRefCache = new Map();
28
28
  /** 追踪 component 函数引用,用于检测外部状态(如异步 list)变化导致的闭包更新 */
29
29
  var columnComponentRefCache = new Map();
30
+ /** 追踪 filterInList 列表长度,用于检测行增删导致的索引偏移 */
31
+ var columnListLengthCache = new Map();
30
32
 
31
33
  // 渲染操作栏
32
34
  var getActionColumn = config => {
@@ -377,21 +379,44 @@ export var transformColumns = function transformColumns() {
377
379
 
378
380
  // 精准控制单元格更新,减少不必要的渲染
379
381
  if (!item.shouldCellUpdate) {
382
+ var _index, _item$fieldProps;
380
383
  var hasComponent = isFunction(item.component);
381
384
  var columnCacheKey = `${Array.isArray(name) ? name.join('.') : String(name)}::${String(columnName)}`;
382
- item.shouldCellUpdate = (record, prevRecord) => {
383
- var _item$fieldProps;
384
- var currentDataSourceRef = !isFunction(item === null || item === void 0 ? void 0 : item.fieldProps) ? item === null || item === void 0 || (_item$fieldProps = item.fieldProps) === null || _item$fieldProps === void 0 ? void 0 : _item$fieldProps.dataSource : undefined;
385
- if (currentDataSourceRef !== undefined) {
386
- var prevDataSourceRef = columnDataSourceRefCache.get(columnCacheKey);
387
- if (prevDataSourceRef !== currentDataSourceRef) {
388
- columnDataSourceRefCache.set(columnCacheKey, currentDataSourceRef);
389
- return true;
390
- }
385
+
386
+ // Fix 问题1:用原始列引用(克隆前)比对 dataSource
387
+ // cloneDeepFilterNode 每次产生新引用,在 shouldCellUpdate 内更新 cache 只会让第一行触发更新,其余行跳过
388
+ var originalFieldProps = (_index = columns[index]) === null || _index === void 0 ? void 0 : _index.fieldProps;
389
+ var originalDataSourceRef = !isFunction(originalFieldProps) ? originalFieldProps === null || originalFieldProps === void 0 ? void 0 : originalFieldProps.dataSource : undefined;
390
+ var prevDataSourceRef = columnDataSourceRefCache.get(columnCacheKey);
391
+ var dataSourceChanged = originalDataSourceRef !== undefined && prevDataSourceRef !== originalDataSourceRef;
392
+ if (dataSourceChanged) {
393
+ columnDataSourceRefCache.set(columnCacheKey, originalDataSourceRef);
394
+ }
395
+
396
+ // Fix 问题2:检测 filterInList 列的行增删,避免行索引移位时 shouldUpdate 闭包中 index 失效
397
+ var filterInListEnabled = !isFunction(item === null || item === void 0 ? void 0 : item.fieldProps) && (item === null || item === void 0 || (_item$fieldProps = item.fieldProps) === null || _item$fieldProps === void 0 ? void 0 : _item$fieldProps.filterInList);
398
+ var filterListChanged = false;
399
+ if (filterInListEnabled) {
400
+ var _config$tableLength, _columnListLengthCach;
401
+ var currentListLen = (_config$tableLength = config.tableLength) !== null && _config$tableLength !== void 0 ? _config$tableLength : 0;
402
+ var prevListLen = (_columnListLengthCach = columnListLengthCache.get(columnCacheKey)) !== null && _columnListLengthCach !== void 0 ? _columnListLengthCach : -1;
403
+ if (prevListLen !== currentListLen) {
404
+ filterListChanged = true;
405
+ columnListLengthCache.set(columnCacheKey, currentListLen);
391
406
  }
407
+ }
408
+ item.shouldCellUpdate = (record, prevRecord) => {
409
+ // dataSource 变化:所有行均需更新(修复异步加载 dataSource 只更新第一行的问题)
410
+ if (dataSourceChanged) return true;
411
+ // filterInList 列的行数变化:强制全量重渲染,避免行索引移位时闭包失效导致显示错误
412
+ if (filterListChanged) return true;
392
413
  if ((record === null || record === void 0 ? void 0 : record.rowKey) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord.rowKey)) {
393
414
  return true;
394
415
  }
416
+ // 拖拽排序时,行数据不变但位置(_dragIndex)变化,需强制重渲染以更新 cellName(Form.Item name)
417
+ if ((record === null || record === void 0 ? void 0 : record._dragIndex) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord._dragIndex)) {
418
+ return true;
419
+ }
395
420
  // 单行编辑模式下,需要检测编辑状态变化
396
421
  if (virtualKey && (record === null || record === void 0 ? void 0 : record._isEditing) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord._isEditing)) {
397
422
  return true;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * 返回当前组件可以显示的数据源
3
3
  */
4
- export declare const getSelectList: ({ otherProps, value, dataSource, labelInValue, fieldNames, mode, }: any) => any;
4
+ export declare const getSelectList: ({ otherProps, value, dataSource, labelInValue, fieldNames, mode }: any) => any;
@@ -17,7 +17,8 @@ var _empty = _interopRequireDefault(require("../assets/empty.png"));
17
17
  var _locale = _interopRequireWildcard(require("../locale"));
18
18
  var _RcTable = require("./components/RcTable");
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
- var _excluded = ["value", "onChange", "onDrag", "onDragEnd", "className", "columns", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "toolbarSticky", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "requiredAlign", "summary", "max", "headerRender", "pagination", "rowKey", "rowDisabled", "rowDraggable", "footerRender", "scroll", "actionDirection", "diffConfig"];
20
+ var _excluded = ["value", "onChange", "onDrag", "onDragEnd", "className", "columns", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "toolbarSticky", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "requiredAlign", "summary", "max", "headerRender", "pagination", "rowKey", "rowDisabled", "rowDraggable", "footerRender", "scroll", "actionDirection", "diffConfig"],
21
+ _excluded2 = ["_dragIndex"];
21
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -433,12 +434,15 @@ var ProEditTable = (_ref, ref) => {
433
434
  var TableComponent = draggable ? _RcTable.DraggableTable : _RcTable.BaseTable;
434
435
 
435
436
  // 给每个 record 附加编辑状态标识,让 shouldCellUpdate 能检测到状态变化
437
+ // draggable 时同时注入 _dragIndex,供 shouldCellUpdate 感知行位置变化(拖拽后同一行数据不变但位置变了)
436
438
  var enrichedValue = (0, _react.useMemo)(() => {
437
- if (!virtualKey) return value;
438
- return value === null || value === void 0 ? void 0 : value.map(record => _objectSpread(_objectSpread({}, record), {}, {
439
+ if (!virtualKey && !draggable) return value;
440
+ return value === null || value === void 0 ? void 0 : value.map((record, idx) => _objectSpread(_objectSpread(_objectSpread({}, record), virtualKey ? {
439
441
  _isEditing: editingKeys.includes(record.rowKey) || record._addFlag
440
- }));
441
- }, [value, virtualKey, editingKeys]);
442
+ } : {}), draggable ? {
443
+ _dragIndex: idx
444
+ } : {}));
445
+ }, [value, virtualKey, editingKeys, draggable]);
442
446
  var tableProps = (0, _react.useMemo)(() => ({
443
447
  rowKey,
444
448
  value: enrichedValue,
@@ -461,12 +465,22 @@ var ProEditTable = (_ref, ref) => {
461
465
  locale: _locale.default,
462
466
  handlePageChange
463
467
  }), [_className, _columns, _rowClassName, disabled, editingKeys, _locale.formatMessage, handlePageChange, headerRender, isHideCheckBox, _locale.default, page, pagination, renderRowSelection, rowDraggable, rowKey, scroll, _summary, tableRef, enrichedValue, virtualKey]);
468
+
469
+ // 拖拽排序后,enrichedValue 中含 _dragIndex(内部字段),需清除后再传给外部 onChange
470
+ var handleDragChange = (0, _react.useCallback)(newValue => {
471
+ var cleanValue = newValue === null || newValue === void 0 ? void 0 : newValue.map(_ref6 => {
472
+ var _ = _ref6._dragIndex,
473
+ rest = _objectWithoutProperties(_ref6, _excluded2);
474
+ return rest;
475
+ });
476
+ onChange === null || onChange === void 0 || onChange(cleanValue);
477
+ }, [onChange]);
464
478
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
465
479
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.ConfigProvider, {
466
480
  renderEmpty: value !== null && value !== void 0 && value.length ? undefined : emptyDom,
467
481
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(TableComponent, _objectSpread(_objectSpread({}, resetProps), {}, {
468
482
  draggableProps: {
469
- onChange,
483
+ onChange: draggable ? handleDragChange : onChange,
470
484
  onDrag,
471
485
  onDragEnd,
472
486
  draggable
@@ -18,7 +18,7 @@ export declare const defaultToolbarKeys: string[];
18
18
  export declare const actions: {
19
19
  edit: ({ record, editingKeys, setState, form, virtualRowName, virtualKey, onlyOneLineMsg }: any) => boolean;
20
20
  save: ({ record, editingKeys, setState, form, rowName, virtualRowName, result }: any) => Promise<void>;
21
- cancel: ({ name, record, editingKeys, setState, form, virtualRowName, virtualKey }: any) => void;
21
+ cancel: ({ name, record, editingKeys, setState, form, virtualRowName, virtualKey, rowName }: any) => void;
22
22
  delete: ({ name, record, editingKeys, setState, form, virtualKey, onlyOneLineMsg }: any) => boolean;
23
23
  add: ({ result, insertType, editingKeys, setState, form, name, virtualName, virtualKey, onlyOneLineMsg, tableRef, prefixCls, page, handlePageChange, }: any) => Promise<boolean>;
24
24
  mulDelete: ({ form, name, virtualKey, setState, selectedRowKeys, editingKeys }: any) => void;
@@ -118,7 +118,8 @@ var actions = exports.actions = {
118
118
  setState = _ref3.setState,
119
119
  form = _ref3.form,
120
120
  virtualRowName = _ref3.virtualRowName,
121
- virtualKey = _ref3.virtualKey;
121
+ virtualKey = _ref3.virtualKey,
122
+ rowName = _ref3.rowName;
122
123
  var nextEditingKeys = editingKeys.filter(key => key !== record.rowKey);
123
124
  // 保存后取消编辑状态,供validator做保存校验
124
125
  if (nextEditingKeys !== null && nextEditingKeys !== void 0 && nextEditingKeys.length) {
@@ -138,9 +139,10 @@ var actions = exports.actions = {
138
139
  selectedRowKeys: [record.rowKey]
139
140
  });
140
141
  } else {
141
- // 防止value引用不变, 值不更新 - (自定义组件)
142
+ // 取消时使用主 form 原始行数据重置虚拟 form,避免编辑值残留
143
+ var originalRecord = form.getFieldValue(rowName);
142
144
  var values = form.getFieldsValue();
143
- (0, _lodash.set)(values, virtualRowName, record);
145
+ (0, _lodash.set)(values, virtualRowName, originalRecord !== null && originalRecord !== void 0 ? originalRecord : record);
144
146
  form.setFieldsValue(values);
145
147
  }
146
148
  },
@@ -33,6 +33,8 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
33
33
  var columnDataSourceRefCache = new Map();
34
34
  /** 追踪 component 函数引用,用于检测外部状态(如异步 list)变化导致的闭包更新 */
35
35
  var columnComponentRefCache = new Map();
36
+ /** 追踪 filterInList 列表长度,用于检测行增删导致的索引偏移 */
37
+ var columnListLengthCache = new Map();
36
38
 
37
39
  // 渲染操作栏
38
40
  var getActionColumn = config => {
@@ -383,21 +385,44 @@ var transformColumns = exports.transformColumns = function transformColumns() {
383
385
 
384
386
  // 精准控制单元格更新,减少不必要的渲染
385
387
  if (!item.shouldCellUpdate) {
388
+ var _index, _item$fieldProps;
386
389
  var hasComponent = (0, _lodash.isFunction)(item.component);
387
390
  var columnCacheKey = `${Array.isArray(name) ? name.join('.') : String(name)}::${String(columnName)}`;
388
- item.shouldCellUpdate = (record, prevRecord) => {
389
- var _item$fieldProps;
390
- var currentDataSourceRef = !(0, _lodash.isFunction)(item === null || item === void 0 ? void 0 : item.fieldProps) ? item === null || item === void 0 || (_item$fieldProps = item.fieldProps) === null || _item$fieldProps === void 0 ? void 0 : _item$fieldProps.dataSource : undefined;
391
- if (currentDataSourceRef !== undefined) {
392
- var prevDataSourceRef = columnDataSourceRefCache.get(columnCacheKey);
393
- if (prevDataSourceRef !== currentDataSourceRef) {
394
- columnDataSourceRefCache.set(columnCacheKey, currentDataSourceRef);
395
- return true;
396
- }
391
+
392
+ // Fix 问题1:用原始列引用(克隆前)比对 dataSource
393
+ // cloneDeepFilterNode 每次产生新引用,在 shouldCellUpdate 内更新 cache 只会让第一行触发更新,其余行跳过
394
+ var originalFieldProps = (_index = columns[index]) === null || _index === void 0 ? void 0 : _index.fieldProps;
395
+ var originalDataSourceRef = !(0, _lodash.isFunction)(originalFieldProps) ? originalFieldProps === null || originalFieldProps === void 0 ? void 0 : originalFieldProps.dataSource : undefined;
396
+ var prevDataSourceRef = columnDataSourceRefCache.get(columnCacheKey);
397
+ var dataSourceChanged = originalDataSourceRef !== undefined && prevDataSourceRef !== originalDataSourceRef;
398
+ if (dataSourceChanged) {
399
+ columnDataSourceRefCache.set(columnCacheKey, originalDataSourceRef);
400
+ }
401
+
402
+ // Fix 问题2:检测 filterInList 列的行增删,避免行索引移位时 shouldUpdate 闭包中 index 失效
403
+ var filterInListEnabled = !(0, _lodash.isFunction)(item === null || item === void 0 ? void 0 : item.fieldProps) && (item === null || item === void 0 || (_item$fieldProps = item.fieldProps) === null || _item$fieldProps === void 0 ? void 0 : _item$fieldProps.filterInList);
404
+ var filterListChanged = false;
405
+ if (filterInListEnabled) {
406
+ var _config$tableLength, _columnListLengthCach;
407
+ var currentListLen = (_config$tableLength = config.tableLength) !== null && _config$tableLength !== void 0 ? _config$tableLength : 0;
408
+ var prevListLen = (_columnListLengthCach = columnListLengthCache.get(columnCacheKey)) !== null && _columnListLengthCach !== void 0 ? _columnListLengthCach : -1;
409
+ if (prevListLen !== currentListLen) {
410
+ filterListChanged = true;
411
+ columnListLengthCache.set(columnCacheKey, currentListLen);
397
412
  }
413
+ }
414
+ item.shouldCellUpdate = (record, prevRecord) => {
415
+ // dataSource 变化:所有行均需更新(修复异步加载 dataSource 只更新第一行的问题)
416
+ if (dataSourceChanged) return true;
417
+ // filterInList 列的行数变化:强制全量重渲染,避免行索引移位时闭包失效导致显示错误
418
+ if (filterListChanged) return true;
398
419
  if ((record === null || record === void 0 ? void 0 : record.rowKey) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord.rowKey)) {
399
420
  return true;
400
421
  }
422
+ // 拖拽排序时,行数据不变但位置(_dragIndex)变化,需强制重渲染以更新 cellName(Form.Item name)
423
+ if ((record === null || record === void 0 ? void 0 : record._dragIndex) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord._dragIndex)) {
424
+ return true;
425
+ }
401
426
  // 单行编辑模式下,需要检测编辑状态变化
402
427
  if (virtualKey && (record === null || record === void 0 ? void 0 : record._isEditing) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord._isEditing)) {
403
428
  return true;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * 返回当前组件可以显示的数据源
3
3
  */
4
- export declare const getSelectList: ({ otherProps, value, dataSource, labelInValue, fieldNames, mode, }: any) => any;
4
+ export declare const getSelectList: ({ otherProps, value, dataSource, labelInValue, fieldNames, mode }: any) => any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "4.1.2",
3
+ "version": "4.1.3-beta.2",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",