@zat-design/sisyphus-react 4.1.3-beta.1 → 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
  },
@@ -413,6 +413,10 @@ export var transformColumns = function transformColumns() {
413
413
  if ((record === null || record === void 0 ? void 0 : record.rowKey) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord.rowKey)) {
414
414
  return true;
415
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
+ }
416
420
  // 单行编辑模式下,需要检测编辑状态变化
417
421
  if (virtualKey && (record === null || record === void 0 ? void 0 : record._isEditing) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord._isEditing)) {
418
422
  return true;
@@ -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
  },
@@ -419,6 +419,10 @@ var transformColumns = exports.transformColumns = function transformColumns() {
419
419
  if ((record === null || record === void 0 ? void 0 : record.rowKey) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord.rowKey)) {
420
420
  return true;
421
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
+ }
422
426
  // 单行编辑模式下,需要检测编辑状态变化
423
427
  if (virtualKey && (record === null || record === void 0 ? void 0 : record._isEditing) !== (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord._isEditing)) {
424
428
  return true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "4.1.3-beta.1",
3
+ "version": "4.1.3-beta.2",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",