@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.
- package/dist/cjs/ag-grid-plus/ag-gridPlus.js +23 -0
- package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +5 -0
- package/dist/cjs/ag-grid-plus/index.less +13 -0
- package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +79 -76
- package/dist/cjs/ag-grid-plus/setting/ColumnNameCellRenderer.d.ts +22 -0
- package/dist/cjs/ag-grid-plus/setting/ColumnNameCellRenderer.js +211 -0
- package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +80 -25
- package/dist/cjs/ag-grid-plus/setting/DebounceInputs.d.ts +1 -0
- package/dist/cjs/ag-grid-plus/setting/DebounceInputs.js +2 -0
- package/dist/cjs/ag-grid-plus/setting/columnGroupTypes.d.ts +3 -1
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -1
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +49 -9
- package/dist/cjs/draggableModal/index.js +2 -1
- package/dist/esm/ag-grid-plus/ag-gridPlus.js +23 -0
- package/dist/esm/ag-grid-plus/context/gridContext.d.ts +5 -0
- package/dist/esm/ag-grid-plus/index.less +13 -0
- package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +81 -78
- package/dist/esm/ag-grid-plus/setting/ColumnNameCellRenderer.d.ts +22 -0
- package/dist/esm/ag-grid-plus/setting/ColumnNameCellRenderer.js +204 -0
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +80 -25
- package/dist/esm/ag-grid-plus/setting/DebounceInputs.d.ts +1 -0
- package/dist/esm/ag-grid-plus/setting/DebounceInputs.js +2 -0
- package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts +3 -1
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -1
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +49 -9
- package/dist/esm/draggableModal/index.js +2 -1
- package/dist/umd/qc-ui.min.css +1 -1
- package/dist/umd/qc-ui.min.js +1 -1
- 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
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
-
|
|
604
|
+
_iterator2 = _createForOfIteratorHelper(schemes);
|
|
550
605
|
_context4.prev = 4;
|
|
551
|
-
|
|
606
|
+
_iterator2.s();
|
|
552
607
|
case 6:
|
|
553
|
-
if ((
|
|
608
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
554
609
|
_context4.next = 13;
|
|
555
610
|
break;
|
|
556
611
|
}
|
|
557
|
-
s =
|
|
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
|
-
|
|
630
|
+
_iterator2.e(_context4.t0);
|
|
576
631
|
case 18:
|
|
577
632
|
_context4.prev = 18;
|
|
578
|
-
|
|
633
|
+
_iterator2.f();
|
|
579
634
|
return _context4.finish(18);
|
|
580
635
|
case 21:
|
|
581
636
|
_context4.next = 23;
|
|
@@ -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:
|
|
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:
|
|
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
|
|
95
|
-
|
|
134
|
+
var _iterator2 = _createForOfIteratorHelper(defs),
|
|
135
|
+
_step2;
|
|
96
136
|
try {
|
|
97
|
-
for (
|
|
98
|
-
var def =
|
|
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
|
-
|
|
153
|
+
_iterator2.e(err);
|
|
114
154
|
} finally {
|
|
115
|
-
|
|
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", {
|