@nokecy/qc-ui 1.1.18 → 1.1.20

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 (29) hide show
  1. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +23 -0
  2. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +5 -0
  3. package/dist/cjs/ag-grid-plus/index.less +13 -0
  4. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +79 -76
  5. package/dist/cjs/ag-grid-plus/setting/ColumnNameCellRenderer.d.ts +22 -0
  6. package/dist/cjs/ag-grid-plus/setting/ColumnNameCellRenderer.js +211 -0
  7. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +80 -25
  8. package/dist/cjs/ag-grid-plus/setting/DebounceInputs.d.ts +1 -0
  9. package/dist/cjs/ag-grid-plus/setting/DebounceInputs.js +2 -0
  10. package/dist/cjs/ag-grid-plus/setting/columnGroupTypes.d.ts +3 -1
  11. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -1
  12. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +49 -9
  13. package/dist/cjs/draggableModal/index.js +2 -1
  14. package/dist/esm/ag-grid-plus/ag-gridPlus.js +23 -0
  15. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +5 -0
  16. package/dist/esm/ag-grid-plus/index.less +13 -0
  17. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +81 -78
  18. package/dist/esm/ag-grid-plus/setting/ColumnNameCellRenderer.d.ts +22 -0
  19. package/dist/esm/ag-grid-plus/setting/ColumnNameCellRenderer.js +204 -0
  20. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +80 -25
  21. package/dist/esm/ag-grid-plus/setting/DebounceInputs.d.ts +1 -0
  22. package/dist/esm/ag-grid-plus/setting/DebounceInputs.js +2 -0
  23. package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts +3 -1
  24. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -1
  25. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +49 -9
  26. package/dist/esm/draggableModal/index.js +2 -1
  27. package/dist/umd/qc-ui.min.css +1 -1
  28. package/dist/umd/qc-ui.min.js +1 -1
  29. package/package.json +1 -1
@@ -2,7 +2,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
2
2
  var _excluded = ["createdAt", "updatedAt"],
3
3
  _excluded2 = ["createdAt", "updatedAt"],
4
4
  _excluded3 = ["createdAt", "updatedAt"];
5
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
6
5
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
7
6
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
8
7
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
@@ -13,6 +12,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
13
12
  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; }
14
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
15
14
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
16
16
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
17
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
18
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -48,6 +48,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
48
48
  columnSchemes = _useGridSchemes.columnSchemes,
49
49
  currentSchemes = _useGridSchemes.currentSchemes,
50
50
  allColDefs = _useGridSchemes.allColDefs,
51
+ initialColumnDefs = _useGridSchemes.initialColumnDefs,
51
52
  saveColumnScheme = _useGridSchemes.saveColumnScheme,
52
53
  deleteColumnScheme = _useGridSchemes.deleteColumnScheme,
53
54
  setCurrentColumnScheme = _useGridSchemes.setCurrentColumnScheme;
@@ -95,8 +96,10 @@ var ColumnSetting = function ColumnSetting(_ref) {
95
96
  searchText = _useState16[0],
96
97
  setSearchText = _useState16[1];
97
98
 
98
- // 【修复】从 Context 获取原始完整的列定义
99
- var originalColumnDefs = allColDefs || undefined;
99
+ // 【修复】从 Context 获取初始列定义(用于获取原始 headerName)
100
+ // initialColumnDefs 来自组件初始化时的 props,不会被列方案修改
101
+ // allColDefs 包含自定义属性(cellRenderer 等),用于方案应用时保留这些属性
102
+ var originalColumnDefs = initialColumnDefs || allColDefs || undefined;
100
103
 
101
104
  // 【修复】保存快照用于取消时恢复(改名避免与Context的originalColumnDefs冲突)
102
105
  var _useState17 = useState(null),
@@ -104,6 +107,57 @@ var ColumnSetting = function ColumnSetting(_ref) {
104
107
  snapshotColumnDefs = _useState18[0],
105
108
  setSnapshotColumnDefs = _useState18[1];
106
109
 
110
+ /**
111
+ * 修正列配置中的 originalHeaderName
112
+ * 确保 originalHeaderName 始终从 initialColumnDefs 中获取,而不是使用方案中保存的值
113
+ */
114
+ var fixOriginalHeaderName = useCallback(function (items) {
115
+ if (!originalColumnDefs || originalColumnDefs.length === 0) {
116
+ return items;
117
+ }
118
+
119
+ // 递归查找 originalColumnDefs 中指定 field 的 headerName
120
+ var findOriginalHeaderName = function findOriginalHeaderName(field) {
121
+ var _iterator = _createForOfIteratorHelper(originalColumnDefs),
122
+ _step;
123
+ try {
124
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
125
+ var def = _step.value;
126
+ // 检查分组
127
+ if ('children' in def && def.children) {
128
+ for (var _i = 0, _arr = def.children; _i < _arr.length; _i++) {
129
+ var child = _arr[_i];
130
+ if (child.field === field) {
131
+ return child.headerName;
132
+ }
133
+ }
134
+ } else {
135
+ // 检查普通列
136
+ if (def.field === field) {
137
+ return def.headerName;
138
+ }
139
+ }
140
+ }
141
+ } catch (err) {
142
+ _iterator.e(err);
143
+ } finally {
144
+ _iterator.f();
145
+ }
146
+ return undefined;
147
+ };
148
+ return items.map(function (item) {
149
+ if (item.type === 'column' && item.field) {
150
+ var originalHeaderName = findOriginalHeaderName(item.field);
151
+ if (originalHeaderName) {
152
+ return _objectSpread(_objectSpread({}, item), {}, {
153
+ originalHeaderName: originalHeaderName
154
+ });
155
+ }
156
+ }
157
+ return item;
158
+ });
159
+ }, [originalColumnDefs]);
160
+
107
161
  /**
108
162
  * 获取列数据 - 将 Grid 的列定义转换为扁平化配置
109
163
  * 新版本使用树形结构,兼容旧版本的 groupName 结构
@@ -111,15 +165,16 @@ var ColumnSetting = function ColumnSetting(_ref) {
111
165
  var getColumnData = useCallback(function () {
112
166
  // 优先使用当前方案中保存的完整列配置(包含分组结构)
113
167
  if (currentScheme !== null && currentScheme !== void 0 && currentScheme.columnConfig) {
114
- return currentScheme.columnConfig;
168
+ // 【修复】修正 originalHeaderName,确保使用 initialColumnDefs 中的原始值
169
+ return fixOriginalHeaderName(currentScheme.columnConfig);
115
170
  }
116
171
 
117
172
  // 如果方案中没有 columnConfig,则从 Grid 读取
118
173
  var columnDefs = gridApi.getColumnDefs() || [];
119
174
  var columnStates = gridApi.getColumnState();
120
175
 
121
- // 将 Grid 状态转换为扁平化配置
122
- var flatConfig = gridStateToFlatConfig(columnDefs);
176
+ // 将 Grid 状态转换为扁平化配置,传入原始列定义以获取 originalHeaderName
177
+ var flatConfig = gridStateToFlatConfig(columnDefs, originalColumnDefs);
123
178
 
124
179
  // 同步列状态(宽度、隐藏等)
125
180
  flatConfig = flatConfig.map(function (item) {
@@ -151,7 +206,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
151
206
  return item;
152
207
  });
153
208
  return flatConfig;
154
- }, [gridApi, currentScheme]);
209
+ }, [gridApi, currentScheme, fixOriginalHeaderName, originalColumnDefs]);
155
210
 
156
211
  // 创建 Formily Form 实例
157
212
  var form = useMemo(function () {
@@ -192,8 +247,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
192
247
  items: newItems
193
248
  });
194
249
 
195
- // 2. 【修复】转换为 AG-Grid 列定义,传入原始列定义以保留自定义属性
196
- var gridColumnDefs = flatConfigToGridState(newItems, originalColumnDefs);
250
+ // 2. 【修复】转换为 AG-Grid 列定义,传入 allColDefs 以保留自定义属性(cellRenderer 等)
251
+ var gridColumnDefs = flatConfigToGridState(newItems, allColDefs);
197
252
 
198
253
  // 3. 立即应用到 Grid(实时预览,不保存到方案)
199
254
  // 【修复】同时应用列顺序和状态,确保拖拽排序能够生效
@@ -202,7 +257,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
202
257
  state: columnState,
203
258
  applyOrder: true // 强制应用列顺序
204
259
  });
205
- }, [form, gridApi, originalColumnDefs]);
260
+ }, [form, gridApi, allColDefs]);
206
261
 
207
262
  /**
208
263
  * 关闭弹窗处理 - 取消时恢复原始状态
@@ -238,8 +293,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
238
293
  _context.next = 12;
239
294
  break;
240
295
  }
241
- // 【关键修复】先更新 columnDefs(处理分组结构)
242
- gridColumnDefs = flatConfigToGridState(scheme.columnConfig, originalColumnDefs);
296
+ // 【关键修复】先更新 columnDefs(处理分组结构),使用 allColDefs 保留自定义属性
297
+ gridColumnDefs = flatConfigToGridState(scheme.columnConfig, allColDefs);
243
298
  gridApi.setGridOption('columnDefs', gridColumnDefs);
244
299
 
245
300
  // 等待 columnDefs 更新完成
@@ -289,7 +344,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
289
344
  return function (_x) {
290
345
  return _ref2.apply(this, arguments);
291
346
  };
292
- }(), [setCurrentColumnScheme, gridKey, schemes, gridApi, originalColumnDefs, form, getColumnData, onClose]);
347
+ }(), [setCurrentColumnScheme, gridKey, schemes, gridApi, allColDefs, form, getColumnData, onClose]);
293
348
 
294
349
  /**
295
350
  * 保存列配置
@@ -396,7 +451,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
396
451
  _context2.next = 39;
397
452
  break;
398
453
  }
399
- gridColumnDefs = flatConfigToGridState(savedScheme.columnConfig, originalColumnDefs);
454
+ gridColumnDefs = flatConfigToGridState(savedScheme.columnConfig, allColDefs);
400
455
  gridApi.setGridOption('columnDefs', gridColumnDefs);
401
456
 
402
457
  // 等待 columnDefs 更新完成
@@ -443,7 +498,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
443
498
  return _context2.stop();
444
499
  }
445
500
  }, _callee2, null, [[8, 50]]);
446
- })), [form, gridApi, saveColumnScheme, setCurrentColumnScheme, currentScheme, schemes, gridKey, originalColumnDefs, onClose]);
501
+ })), [form, gridApi, saveColumnScheme, setCurrentColumnScheme, currentScheme, schemes, gridKey, allColDefs, onClose]);
447
502
 
448
503
  // 保存为新方案
449
504
  var handleSaveScheme = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
@@ -465,8 +520,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
465
520
  }
466
521
  values = form.values;
467
522
  columnConfigToSave = values.items; // 直接使用 FlatColumnItem[] 数据
468
- // 【修复】传入原始列定义以保留自定义属性
469
- gridColumnDefs = flatConfigToGridState(values.items, originalColumnDefs); // 【关键修复】先更新 columnDefs(处理分组结构变化)
523
+ // 【修复】传入 allColDefs 以保留自定义属性(cellRenderer 等)
524
+ gridColumnDefs = flatConfigToGridState(values.items, allColDefs); // 【关键修复】先更新 columnDefs(处理分组结构变化)
470
525
  gridApi.setGridOption('columnDefs', gridColumnDefs);
471
526
 
472
527
  // 等待 columnDefs 更新完成
@@ -528,12 +583,12 @@ var ColumnSetting = function ColumnSetting(_ref) {
528
583
  return _context3.stop();
529
584
  }
530
585
  }, _callee3, null, [[3, 30]]);
531
- })), [gridApi, saveColumnScheme, gridKey, schemeName, schemeDescription, activeTab, form, originalColumnDefs]);
586
+ })), [gridApi, saveColumnScheme, gridKey, schemeName, schemeDescription, activeTab, form, allColDefs]);
532
587
 
533
588
  // 设置默认方案
534
589
  var handleSetDefault = useCallback( /*#__PURE__*/function () {
535
590
  var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(schemeId) {
536
- var scheme, _iterator, _step, s;
591
+ var scheme, _iterator2, _step2, s;
537
592
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
538
593
  while (1) switch (_context4.prev = _context4.next) {
539
594
  case 0:
@@ -546,15 +601,15 @@ var ColumnSetting = function ColumnSetting(_ref) {
546
601
  break;
547
602
  }
548
603
  // 将其他方案设为非默认
549
- _iterator = _createForOfIteratorHelper(schemes);
604
+ _iterator2 = _createForOfIteratorHelper(schemes);
550
605
  _context4.prev = 4;
551
- _iterator.s();
606
+ _iterator2.s();
552
607
  case 6:
553
- if ((_step = _iterator.n()).done) {
608
+ if ((_step2 = _iterator2.n()).done) {
554
609
  _context4.next = 13;
555
610
  break;
556
611
  }
557
- s = _step.value;
612
+ s = _step2.value;
558
613
  if (!(s.isDefault && s.id !== schemeId)) {
559
614
  _context4.next = 11;
560
615
  break;
@@ -572,10 +627,10 @@ var ColumnSetting = function ColumnSetting(_ref) {
572
627
  case 15:
573
628
  _context4.prev = 15;
574
629
  _context4.t0 = _context4["catch"](4);
575
- _iterator.e(_context4.t0);
630
+ _iterator2.e(_context4.t0);
576
631
  case 18:
577
632
  _context4.prev = 18;
578
- _iterator.f();
633
+ _iterator2.f();
579
634
  return _context4.finish(18);
580
635
  case 21:
581
636
  _context4.next = 23;
@@ -10,6 +10,7 @@ export declare const DebounceNumberInput: React.FC<{
10
10
  min?: number;
11
11
  max?: number;
12
12
  step?: number;
13
+ size?: 'large' | 'middle' | 'small';
13
14
  style?: React.CSSProperties;
14
15
  }>;
15
16
  /**
@@ -18,6 +18,7 @@ export var DebounceNumberInput = function DebounceNumberInput(_ref) {
18
18
  min = _ref.min,
19
19
  max = _ref.max,
20
20
  step = _ref.step,
21
+ size = _ref.size,
21
22
  style = _ref.style;
22
23
  var _useState = useState(value),
23
24
  _useState2 = _slicedToArray(_useState, 2),
@@ -53,6 +54,7 @@ export var DebounceNumberInput = function DebounceNumberInput(_ref) {
53
54
  min: min,
54
55
  max: max,
55
56
  step: step,
57
+ size: size,
56
58
  style: style || {
57
59
  width: '100%'
58
60
  }
@@ -17,8 +17,10 @@ export interface FlatColumnItem {
17
17
  level: number;
18
18
  /** 排序序号,用于维护节点顺序 */
19
19
  order: number;
20
- /** 显示名称 */
20
+ /** 显示名称 (当前值,可被用户修改) */
21
21
  headerName: string;
22
+ /** 原始显示名称 (用于对比和重置) */
23
+ originalHeaderName?: string;
22
24
  /** AG-Grid 分组标识(仅分组类型) */
23
25
  groupId?: string;
24
26
  /** 子列是否必须保持一起(仅分组类型) */
@@ -13,9 +13,10 @@ export declare const generateId: () => string;
13
13
  * 将 AG-Grid 的树形结构转换为扁平化数组,用于 UI 展示和编辑
14
14
  *
15
15
  * @param columnDefs AG-Grid 列定义数组
16
+ * @param originalColumnDefs 原始列定义数组(可选),用于获取 originalHeaderName
16
17
  * @returns 扁平化配置数组
17
18
  */
18
- export declare function gridStateToFlatConfig(columnDefs: (ColDef | ColGroupDef)[]): FlatColumnItem[];
19
+ export declare function gridStateToFlatConfig(columnDefs: (ColDef | ColGroupDef)[], originalColumnDefs?: (ColDef | ColGroupDef)[]): FlatColumnItem[];
19
20
  /**
20
21
  * 扁平化配置 → Grid State
21
22
  * 将扁平化数组重建为 AG-Grid 的树形结构
@@ -24,12 +24,44 @@ export var generateId = function generateId() {
24
24
  * 将 AG-Grid 的树形结构转换为扁平化数组,用于 UI 展示和编辑
25
25
  *
26
26
  * @param columnDefs AG-Grid 列定义数组
27
+ * @param originalColumnDefs 原始列定义数组(可选),用于获取 originalHeaderName
27
28
  * @returns 扁平化配置数组
28
29
  */
29
- export function gridStateToFlatConfig(columnDefs) {
30
+ export function gridStateToFlatConfig(columnDefs, originalColumnDefs) {
30
31
  var result = [];
31
32
  var order = 0;
32
33
 
34
+ /**
35
+ * 从原始列定义中查找指定字段的原始 headerName
36
+ */
37
+ function findOriginalHeaderName(field, defs) {
38
+ if (!defs || !field) return undefined;
39
+ var _iterator = _createForOfIteratorHelper(defs),
40
+ _step;
41
+ try {
42
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
43
+ var def = _step.value;
44
+ // 检查是否是分组
45
+ if ('children' in def && def.children) {
46
+ // 递归查找分组内的列
47
+ var found = findOriginalHeaderName(field, def.children);
48
+ if (found) return found;
49
+ } else {
50
+ // 检查是否是目标列
51
+ var colDef = def;
52
+ if (colDef.field === field) {
53
+ return colDef.headerName;
54
+ }
55
+ }
56
+ }
57
+ } catch (err) {
58
+ _iterator.e(err);
59
+ } finally {
60
+ _iterator.f();
61
+ }
62
+ return undefined;
63
+ }
64
+
33
65
  /**
34
66
  * 递归遍历列定义树
35
67
  */
@@ -38,13 +70,16 @@ export function gridStateToFlatConfig(columnDefs) {
38
70
  if (item.children && item.children.length > 0) {
39
71
  // 这是一个分组节点
40
72
  var groupId = generateId();
73
+ var headerName = item.headerName || '未命名分组';
41
74
  result.push({
42
75
  id: groupId,
43
76
  type: 'group',
44
77
  parentId: parentId,
45
78
  level: level,
46
79
  order: order++,
47
- headerName: item.headerName || '未命名分组',
80
+ headerName: headerName,
81
+ originalHeaderName: headerName,
82
+ // 保存原始 headerName
48
83
  groupId: item.groupId || item.field || generateId(),
49
84
  marryChildren: item.marryChildren
50
85
  });
@@ -52,6 +87,9 @@ export function gridStateToFlatConfig(columnDefs) {
52
87
  traverse(item.children, level + 1, groupId);
53
88
  } else {
54
89
  // 这是一个列节点
90
+ var _headerName = item.headerName || item.field || '未命名列';
91
+ // 从原始列定义中获取 originalHeaderName,如果没有则使用当前 headerName
92
+ var originalHeaderName = item.field ? findOriginalHeaderName(item.field, originalColumnDefs) || _headerName : _headerName;
55
93
  result.push({
56
94
  id: generateId(),
57
95
  type: 'column',
@@ -59,7 +97,9 @@ export function gridStateToFlatConfig(columnDefs) {
59
97
  level: level,
60
98
  order: order++,
61
99
  field: item.field,
62
- headerName: item.headerName || item.field || '未命名列',
100
+ headerName: _headerName,
101
+ originalHeaderName: originalHeaderName,
102
+ // 从原始定义获取,或使用当前值
63
103
  width: item.width,
64
104
  hide: item.hide,
65
105
  pinned: item.pinned === null ? 'notPinned' : item.pinned,
@@ -91,11 +131,11 @@ export function flatConfigToGridState(flatConfig, originalColumnDefs) {
91
131
  */
92
132
  function findOriginalColDef(field, defs) {
93
133
  if (!defs) return undefined;
94
- var _iterator = _createForOfIteratorHelper(defs),
95
- _step;
134
+ var _iterator2 = _createForOfIteratorHelper(defs),
135
+ _step2;
96
136
  try {
97
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
98
- var def = _step.value;
137
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
138
+ var def = _step2.value;
99
139
  // 检查是否是分组
100
140
  if ('children' in def && def.children) {
101
141
  // 递归查找分组内的列
@@ -110,9 +150,9 @@ export function flatConfigToGridState(flatConfig, originalColumnDefs) {
110
150
  }
111
151
  }
112
152
  } catch (err) {
113
- _iterator.e(err);
153
+ _iterator2.e(err);
114
154
  } finally {
115
- _iterator.f();
155
+ _iterator2.f();
116
156
  }
117
157
  return undefined;
118
158
  }
@@ -197,7 +197,8 @@ var DraggableModal = function DraggableModal(props) {
197
197
  return /*#__PURE__*/React.createElement(Modal, _extends({
198
198
  maskClosable: false,
199
199
  width: width,
200
- open: open
200
+ open: open,
201
+ destroyOnClose: true
201
202
  }, restProps, {
202
203
  wrapClassName: mergedWrapClassName,
203
204
  title: /*#__PURE__*/React.createElement("div", {