@nokecy/qc-ui 1.0.82 → 1.0.84

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 (85) hide show
  1. package/dist/cjs/ag-grid-plus/_utils/processColumnGroups.d.ts +9 -0
  2. package/dist/cjs/ag-grid-plus/_utils/processColumnGroups.js +43 -0
  3. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +252 -121
  4. package/dist/cjs/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +19 -9
  5. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.js +25 -3
  6. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.d.ts +1 -1
  7. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.js +1 -1
  8. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.js +60 -14
  9. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.js +12 -26
  10. package/dist/cjs/ag-grid-plus/schemes/types.d.ts +8 -5
  11. package/dist/cjs/ag-grid-plus/schemes/utils/validator.js +14 -18
  12. package/dist/cjs/ag-grid-plus/setting/ColumnConfigForm.d.ts +16 -0
  13. package/dist/cjs/ag-grid-plus/setting/ColumnConfigForm.js +348 -0
  14. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +20 -0
  15. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +940 -0
  16. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +208 -248
  17. package/dist/cjs/ag-grid-plus/setting/MoveNodeModal.d.ts +15 -0
  18. package/dist/cjs/ag-grid-plus/setting/MoveNodeModal.js +160 -0
  19. package/dist/cjs/ag-grid-plus/setting/NameColumnRenderer.d.ts +18 -0
  20. package/dist/cjs/ag-grid-plus/setting/NameColumnRenderer.js +94 -0
  21. package/dist/cjs/ag-grid-plus/setting/columnGroupTypes.d.ts +59 -0
  22. package/dist/cjs/ag-grid-plus/setting/columnGroupTypes.js +5 -0
  23. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +75 -0
  24. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +281 -0
  25. package/dist/cjs/ag-grid-plus/setting/index.d.ts +2 -1
  26. package/dist/cjs/ag-grid-plus/setting/index.js +4 -2
  27. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.d.ts +2 -1
  28. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.js +11 -8
  29. package/dist/cjs/ag-grid-plus/types.d.ts +2 -0
  30. package/dist/cjs/array-table/index.js +30 -118
  31. package/dist/cjs/draggableModal/index.d.ts +1 -1
  32. package/dist/cjs/draggableModal/index.js +253 -25
  33. package/dist/cjs/draggableModal/style.less +185 -12
  34. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts +9 -0
  35. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.js +44 -0
  36. package/dist/esm/ag-grid-plus/ag-gridPlus.js +252 -121
  37. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +19 -10
  38. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.js +25 -3
  39. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.d.ts +1 -1
  40. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.js +1 -1
  41. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.js +60 -14
  42. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.js +13 -27
  43. package/dist/esm/ag-grid-plus/schemes/types.d.ts +8 -5
  44. package/dist/esm/ag-grid-plus/schemes/utils/validator.js +14 -18
  45. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.d.ts +16 -0
  46. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.js +338 -0
  47. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +20 -0
  48. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +932 -0
  49. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +207 -247
  50. package/dist/esm/ag-grid-plus/setting/MoveNodeModal.d.ts +15 -0
  51. package/dist/esm/ag-grid-plus/setting/MoveNodeModal.js +150 -0
  52. package/dist/esm/ag-grid-plus/setting/NameColumnRenderer.d.ts +18 -0
  53. package/dist/esm/ag-grid-plus/setting/NameColumnRenderer.js +87 -0
  54. package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts +59 -0
  55. package/dist/esm/ag-grid-plus/setting/columnGroupTypes.js +1 -0
  56. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +75 -0
  57. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +265 -0
  58. package/dist/esm/ag-grid-plus/setting/index.d.ts +2 -1
  59. package/dist/esm/ag-grid-plus/setting/index.js +4 -2
  60. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.d.ts +2 -1
  61. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.js +11 -8
  62. package/dist/esm/ag-grid-plus/types.d.ts +2 -0
  63. package/dist/esm/array-table/index.js +31 -119
  64. package/dist/esm/draggableModal/index.d.ts +1 -1
  65. package/dist/esm/draggableModal/index.js +254 -27
  66. package/dist/esm/draggableModal/style.less +185 -12
  67. package/dist/umd/qc-ui.min.css +1 -1
  68. package/dist/umd/qc-ui.min.js +1 -1
  69. package/package.json +1 -1
  70. package/dist/cjs/ag-grid-plus/gridManager/index.d.ts +0 -7
  71. package/dist/cjs/ag-grid-plus/gridManager/index.js +0 -40
  72. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.d.ts +0 -7
  73. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.js +0 -32
  74. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.d.ts +0 -7
  75. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.js +0 -32
  76. package/dist/cjs/ag-grid-plus/setting/diySetting/index.d.ts +0 -10
  77. package/dist/cjs/ag-grid-plus/setting/diySetting/index.js +0 -268
  78. package/dist/esm/ag-grid-plus/gridManager/index.d.ts +0 -7
  79. package/dist/esm/ag-grid-plus/gridManager/index.js +0 -35
  80. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.d.ts +0 -7
  81. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.js +0 -27
  82. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.d.ts +0 -7
  83. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.js +0 -27
  84. package/dist/esm/ag-grid-plus/setting/diySetting/index.d.ts +0 -10
  85. package/dist/esm/ag-grid-plus/setting/diySetting/index.js +0 -259
@@ -1,2 +1,11 @@
1
+ /**
2
+ * 处理列分组配置
3
+ * 兼容新旧两种数据格式:
4
+ * 1. 新格式:FlatColumnItem[] (带有 type, parentId, level)
5
+ * 2. 旧格式:{ groupName: string } (简单的分组名称)
6
+ *
7
+ * @param columns 列配置数组
8
+ * @returns AG-Grid 列定义
9
+ */
1
10
  declare const processColumnGroups: (columns: any[]) => any;
2
11
  export default processColumnGroups;
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _columnGroupUtils = require("../setting/columnGroupUtils");
7
8
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
9
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9
10
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -16,7 +17,49 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
16
17
  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; }
17
18
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
18
19
  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); }
20
+ /**
21
+ * 处理列分组配置
22
+ * 兼容新旧两种数据格式:
23
+ * 1. 新格式:FlatColumnItem[] (带有 type, parentId, level)
24
+ * 2. 旧格式:{ groupName: string } (简单的分组名称)
25
+ *
26
+ * @param columns 列配置数组
27
+ * @returns AG-Grid 列定义
28
+ */
19
29
  var processColumnGroups = function processColumnGroups(columns) {
30
+ // 如果是空数组,直接返回
31
+ if (!columns || columns.length === 0) {
32
+ return [];
33
+ }
34
+
35
+ // 检查是否已经是标准 AG-Grid 格式(带 children 的分组)
36
+ // 如果列定义中有 children 属性,说明已经是 AG-Grid 标准格式,直接返回
37
+ var hasStandardGroups = columns.some(function (col) {
38
+ return col.children && Array.isArray(col.children);
39
+ });
40
+ if (hasStandardGroups) {
41
+ // 标准格式:直接返回,不做任何处理
42
+ return columns;
43
+ }
44
+
45
+ // 检查是否是新格式(FlatColumnItem)
46
+ var isNewFormat = columns.some(function (col) {
47
+ return col.type !== undefined;
48
+ });
49
+ if (isNewFormat) {
50
+ // 新格式:使用 flatConfigToGridState 转换
51
+ return (0, _columnGroupUtils.flatConfigToGridState)(columns);
52
+ }
53
+
54
+ // 旧格式:使用旧的处理逻辑
55
+ // 检查是否需要迁移
56
+ if ((0, _columnGroupUtils.isOldSchemeData)(columns)) {
57
+ // 先迁移到新格式,再转换
58
+ var migrated = (0, _columnGroupUtils.migrateOldScheme)(columns);
59
+ return (0, _columnGroupUtils.flatConfigToGridState)(migrated);
60
+ }
61
+
62
+ // 兼容最原始的格式(groupName)
20
63
  var groupMap = new Map();
21
64
  var result = [];
22
65
  var ungrouped = [];
@@ -58,7 +58,7 @@ var getSort = function getSort(columnState) {
58
58
  return columnState ? "".concat(columnState.colId, " ").concat(columnState.sort) : "";
59
59
  };
60
60
  function AgGridPlus(props) {
61
- var _querySchemeManager$c;
61
+ var _columnSchemeManager$2, _querySchemeManager$c;
62
62
  var style = props.style,
63
63
  loadingProps = props.loading,
64
64
  gridParams = props.params,
@@ -172,12 +172,16 @@ function AgGridPlus(props) {
172
172
  storageAdapter: globalColumnAdapter || columnSchemeStorageAdapter,
173
173
  enableAutoSave: true,
174
174
  onSchemeChange: function onSchemeChange(scheme) {
175
- if (scheme && apiRef.current) {
176
- apiRef.current.applyColumnState({
177
- state: scheme.columnState,
178
- applyOrder: true
179
- });
180
- }
175
+ console.log('[AgGridPlus] onSchemeChange 被调用:', {
176
+ hasScheme: !!scheme,
177
+ hasApiRef: !!apiRef.current,
178
+ schemeId: scheme === null || scheme === void 0 ? void 0 : scheme.id,
179
+ schemeName: scheme === null || scheme === void 0 ? void 0 : scheme.name,
180
+ hasColumnConfig: !!(scheme !== null && scheme !== void 0 && scheme.columnConfig)
181
+ });
182
+
183
+ // 注意: 方案应用已由 useEffect 处理
184
+ // useEffect 会在 apiRef 和 currentScheme 都准备好时自动应用方案
181
185
  }
182
186
  }) : undefined;
183
187
 
@@ -242,37 +246,121 @@ function AgGridPlus(props) {
242
246
 
243
247
  // 加载列方案
244
248
  (0, _react.useEffect)(function () {
245
- if (!gridPlusColumnState || !gridKey || !apiRef.current) return;
246
- var currentState = gridPlusColumnState[gridKey];
247
- if (!currentState) return;
248
- setColumnCellClass(handelgridPlusColumnState(currentState));
249
- var timer = setTimeout(function () {
250
- var _apiRef$current;
251
- (_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 || _apiRef$current.applyColumnState({
252
- state: currentState,
253
- applyOrder: true
254
- });
255
- }, 10);
256
- return function () {
257
- return clearTimeout(timer);
258
- };
259
- }, [gridPlusColumnState, gridKey]);
249
+ var _columnSchemeManager$;
250
+ if (!gridKey || !apiRef.current) return;
260
251
 
261
- // 当 gridApi 就绪且有当前方案时,应用列方案
252
+ // 优先使用方案中的 columnConfig(用户在列配置界面调整后的数据)
253
+ if (columnSchemeManager !== null && columnSchemeManager !== void 0 && (_columnSchemeManager$ = columnSchemeManager.currentScheme) !== null && _columnSchemeManager$ !== void 0 && _columnSchemeManager$.columnConfig) {
254
+ var _require = require("./setting/columnGroupUtils"),
255
+ flatConfigToColumnState = _require.flatConfigToColumnState;
256
+ var _columnState = flatConfigToColumnState(columnSchemeManager.currentScheme.columnConfig);
257
+ setColumnCellClass(handelgridPlusColumnState(_columnState));
258
+ var timer = setTimeout(function () {
259
+ var _apiRef$current;
260
+ (_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 || _apiRef$current.applyColumnState({
261
+ state: _columnState,
262
+ applyOrder: true
263
+ });
264
+ }, 10);
265
+ return function () {
266
+ return clearTimeout(timer);
267
+ };
268
+ }
269
+ // 后备方案:使用旧的 gridPlusColumnState
270
+ else if (gridPlusColumnState !== null && gridPlusColumnState !== void 0 && gridPlusColumnState[gridKey]) {
271
+ var currentState = gridPlusColumnState[gridKey];
272
+ setColumnCellClass(handelgridPlusColumnState(currentState));
273
+ var _timer = setTimeout(function () {
274
+ var _apiRef$current2;
275
+ (_apiRef$current2 = apiRef.current) === null || _apiRef$current2 === void 0 || _apiRef$current2.applyColumnState({
276
+ state: currentState,
277
+ applyOrder: true
278
+ });
279
+ }, 10);
280
+ return function () {
281
+ return clearTimeout(_timer);
282
+ };
283
+ }
284
+ }, [gridKey, columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$2 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$2 === void 0 ? void 0 : _columnSchemeManager$2.columnConfig, gridPlusColumnState]);
285
+
286
+ // 同步 apiRef 和 currentScheme,确保方案在两者都准备好时应用
262
287
  (0, _react.useEffect)(function () {
288
+ var _currentScheme$column;
263
289
  var currentScheme = columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme;
264
- if (!apiRef.current || !currentScheme) return;
265
- var timer = setTimeout(function () {
266
- var _apiRef$current2;
267
- (_apiRef$current2 = apiRef.current) === null || _apiRef$current2 === void 0 || _apiRef$current2.applyColumnState({
268
- state: currentScheme.columnState,
269
- applyOrder: true
290
+
291
+ // 两个依赖都不存在时,直接返回
292
+ if (!apiRef.current || !currentScheme) {
293
+ console.log('[AgGridPlus] useEffect: 等待依赖准备', {
294
+ hasApiRef: !!apiRef.current,
295
+ hasCurrentScheme: !!currentScheme
270
296
  });
297
+ return;
298
+ }
299
+ console.log('[AgGridPlus] useEffect: 两个依赖都准备好,应用方案', {
300
+ schemeId: currentScheme.id,
301
+ schemeName: currentScheme.name,
302
+ hasColumnConfig: !!currentScheme.columnConfig,
303
+ columnConfigCount: ((_currentScheme$column = currentScheme.columnConfig) === null || _currentScheme$column === void 0 ? void 0 : _currentScheme$column.length) || 0
304
+ });
305
+ var timer = setTimeout(function () {
306
+ // 优先使用 columnConfig(包含完整的分组结构)
307
+ if (currentScheme.columnConfig) {
308
+ var _require2 = require("./setting/columnGroupUtils"),
309
+ flatConfigToGridState = _require2.flatConfigToGridState;
310
+ var gridColumnDefs = flatConfigToGridState(currentScheme.columnConfig);
311
+ console.log('[AgGridPlus] useEffect: 应用方案的 columnConfig:', {
312
+ columnConfig: currentScheme.columnConfig,
313
+ columnConfigLength: currentScheme.columnConfig.length,
314
+ gridColumnDefs: gridColumnDefs,
315
+ gridColumnDefsLength: gridColumnDefs.length,
316
+ columnConfigDetail: currentScheme.columnConfig.map(function (item) {
317
+ return {
318
+ type: item.type,
319
+ field: item.field,
320
+ headerName: item.headerName,
321
+ order: item.order,
322
+ parentId: item.parentId
323
+ };
324
+ }),
325
+ gridColumnDefsDetail: gridColumnDefs.map(function (def, idx) {
326
+ var _def$children;
327
+ return {
328
+ index: idx,
329
+ field: def.field,
330
+ headerName: def.headerName,
331
+ groupId: def.groupId,
332
+ children: (_def$children = def.children) === null || _def$children === void 0 ? void 0 : _def$children.length
333
+ };
334
+ })
335
+ });
336
+
337
+ // 1. 先设置列定义(包含分组结构)
338
+ if (apiRef.current) {
339
+ apiRef.current.setGridOption("columnDefs", gridColumnDefs);
340
+
341
+ // 等待 columnDefs 应用完成后再设置过滤器
342
+ // 原因: setGridOption("columnDefs") 会触发 Grid 重新渲染,可能重置内部状态
343
+ // 必须在下一个渲染周期后应用 filterModel,否则会被覆盖
344
+ if (currentScheme.filterModel) {
345
+ requestAnimationFrame(function () {
346
+ if (apiRef.current) {
347
+ console.log('[AgGridPlus] 应用过滤器状态:', currentScheme.filterModel);
348
+ apiRef.current.setFilterModel(currentScheme.filterModel);
349
+ }
350
+ });
351
+ }
352
+ }
353
+
354
+ // 2. 【重要修改】使用 columnConfig 时,不应用 columnState
355
+ // 原因:columnConfig 已经包含了完整的列配置(宽度、隐藏、顺序、分组等)
356
+ // 如果再应用 columnState,会导致分组子列被视为独立列,破坏分组结构
357
+ console.log('[AgGridPlus] useEffect: 使用 columnConfig,跳过 columnState 应用');
358
+ }
271
359
  }, 10);
272
360
  return function () {
273
361
  return clearTimeout(timer);
274
362
  };
275
- }, [columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme]);
363
+ }, [apiRef.current, columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme]);
276
364
  (0, _react.useEffect)(function () {
277
365
  setRowData(dataSource || propRowData || []);
278
366
  }, [dataSource, propRowData]);
@@ -308,96 +396,116 @@ function AgGridPlus(props) {
308
396
  return colDef.customCellRenderer(params);
309
397
  };
310
398
 
311
- // 获取表格列定义
312
- var getTableColumns = function getTableColumns(rowDataList) {
313
- var data = rowDataList.length > 0 ? rowDataList[0] : {};
314
- var columnProps = _react.default.Children.map(children, function (child, index) {
315
- return _objectSpread({}, child.props);
316
- });
317
- var columnDefs = !columnProps ? props.columnDefs ? props.columnDefs : [] : columnProps;
318
- columnDefs = columnDefs.map(function (col) {
319
- var dataType = getDataType(data, col.field || '', col.valueEnum);
320
- if (col.valueEnum && Array.isArray(col.valueEnum)) {
321
- var _defaultItems$0$value, _defaultItems$;
322
- // 统计默认值
323
- var valueEnum = col.valueEnum; // 保存引用以便TypeScript理解
324
- var defaultItems = valueEnum.filter(function (item) {
325
- return item.default;
399
+ // 辅助函数: 处理单个列配置
400
+ var processColumnConfig = function processColumnConfig(col, data) {
401
+ var dataType = getDataType(data, col.field || '', col.valueEnum);
402
+ if (col.valueEnum && Array.isArray(col.valueEnum)) {
403
+ var _defaultItems$0$value, _defaultItems$;
404
+ // 统计默认值
405
+ var valueEnum = col.valueEnum; // 保存引用以便TypeScript理解
406
+ var defaultItems = valueEnum.filter(function (item) {
407
+ return item.default;
408
+ });
409
+ var isMultiple = defaultItems.length > 1;
410
+ var defaultValue = isMultiple ? defaultItems.map(function (item) {
411
+ return item.value;
412
+ }) : (_defaultItems$0$value = (_defaultItems$ = defaultItems[0]) === null || _defaultItems$ === void 0 ? void 0 : _defaultItems$.value) !== null && _defaultItems$0$value !== void 0 ? _defaultItems$0$value : undefined;
413
+ var valueFormatter = function valueFormatter(params) {
414
+ var match = valueEnum.find(function (item) {
415
+ return item.value == params.value;
326
416
  });
327
- var isMultiple = defaultItems.length > 1;
328
- var defaultValue = isMultiple ? defaultItems.map(function (item) {
329
- return item.value;
330
- }) : (_defaultItems$0$value = (_defaultItems$ = defaultItems[0]) === null || _defaultItems$ === void 0 ? void 0 : _defaultItems$.value) !== null && _defaultItems$0$value !== void 0 ? _defaultItems$0$value : undefined;
331
- var valueFormatter = function valueFormatter(params) {
417
+ return match ? match.label : params.value;
418
+ };
419
+ return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
420
+ cellRenderer: function cellRenderer(params) {
332
421
  var match = valueEnum.find(function (item) {
333
422
  return item.value == params.value;
334
423
  });
335
- return match ? match.label : params.value;
336
- };
337
- return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
338
- cellRenderer: function cellRenderer(params) {
339
- var match = valueEnum.find(function (item) {
340
- return item.value == params.value;
341
- });
342
- if (match) {
343
- var color = match.color || '#ffffff';
344
- return /*#__PURE__*/_react.default.createElement("span", {
345
- style: {
346
- color: color,
347
- backgroundColor: 'transparent',
348
- fontWeight: 500
349
- }
350
- }, match.label);
351
- }
352
- return params.value;
353
- },
354
- filterParams: _objectSpread(_objectSpread({}, col.filterParams || {}), {}, {
355
- valueFormatter: valueFormatter
356
- }),
357
- searchComponent: _antdV.Select,
358
- searchComponentProps: {
359
- options: col.valueEnum.map(function (item) {
360
- return {
361
- label: item.label,
362
- value: item.value
363
- };
364
- }),
365
- mode: isMultiple ? "multiple" : undefined,
366
- defaultValue: defaultValue
367
- }
368
- });
369
- }
370
- if (col.type || typeof col.cellRenderer == "string") {
371
- return _objectSpread({}, col);
372
- }
373
- //@ts-ignore
374
- if (col !== null && col !== void 0 && col.ellipsis) {
375
- return _objectSpread(_objectSpread({}, col), {}, {
376
- cellRenderer: function cellRenderer(_ref) {
377
- var value = _ref.value;
378
- return /*#__PURE__*/_react.default.createElement(Text, {
379
- ellipsis: {
380
- tooltip: value
381
- },
424
+ if (match) {
425
+ var color = match.color || '#ffffff';
426
+ return /*#__PURE__*/_react.default.createElement("span", {
382
427
  style: {
383
- display: 'flex',
384
- justifyContent: 'center',
385
- alignItems: 'center'
428
+ color: color,
429
+ backgroundColor: 'transparent',
430
+ fontWeight: 500
386
431
  }
387
- }, value);
432
+ }, match.label);
388
433
  }
389
- });
390
- }
391
- if (col.cellRenderer) {
392
- return _objectSpread(_objectSpread({}, col), {}, {
393
- customCellRenderer: col.cellRenderer,
394
- cellRenderer: cellRenderer
395
- });
396
- }
397
- return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
434
+ return params.value;
435
+ },
436
+ filterParams: _objectSpread(_objectSpread({}, col.filterParams || {}), {}, {
437
+ valueFormatter: valueFormatter
438
+ }),
439
+ searchComponent: _antdV.Select,
440
+ searchComponentProps: {
441
+ options: col.valueEnum.map(function (item) {
442
+ return {
443
+ label: item.label,
444
+ value: item.value
445
+ };
446
+ }),
447
+ mode: isMultiple ? "multiple" : undefined,
448
+ defaultValue: defaultValue
449
+ }
450
+ });
451
+ }
452
+ if (col.type || typeof col.cellRenderer == "string") {
453
+ return _objectSpread({}, col);
454
+ }
455
+ //@ts-ignore
456
+ if (col !== null && col !== void 0 && col.ellipsis) {
457
+ return _objectSpread(_objectSpread({}, col), {}, {
458
+ cellRenderer: function cellRenderer(_ref) {
459
+ var value = _ref.value;
460
+ return /*#__PURE__*/_react.default.createElement(Text, {
461
+ ellipsis: {
462
+ tooltip: value
463
+ },
464
+ style: {
465
+ display: 'flex',
466
+ justifyContent: 'center',
467
+ alignItems: 'center'
468
+ }
469
+ }, value);
470
+ }
471
+ });
472
+ }
473
+ if (col.cellRenderer) {
474
+ return _objectSpread(_objectSpread({}, col), {}, {
398
475
  customCellRenderer: col.cellRenderer,
399
476
  cellRenderer: cellRenderer
400
477
  });
478
+ }
479
+ return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
480
+ customCellRenderer: col.cellRenderer,
481
+ cellRenderer: cellRenderer
482
+ });
483
+ };
484
+
485
+ // 获取表格列定义
486
+ var getTableColumns = function getTableColumns(rowDataList) {
487
+ var data = rowDataList.length > 0 ? rowDataList[0] : {};
488
+ var columnProps = _react.default.Children.map(children, function (child, index) {
489
+ return _objectSpread({}, child.props);
490
+ });
491
+ var columnDefs = !columnProps ? props.columnDefs ? props.columnDefs : [] : columnProps;
492
+
493
+ // 递归处理列配置(包括分组的 children)
494
+ var processColumnDefRecursively = function processColumnDefRecursively(col) {
495
+ // 如果有 children(分组列),递归处理每个子列
496
+ if (col.children && Array.isArray(col.children)) {
497
+ return _objectSpread(_objectSpread({}, col), {}, {
498
+ children: col.children.map(function (child) {
499
+ return processColumnDefRecursively(child);
500
+ })
501
+ });
502
+ }
503
+
504
+ // 处理普通列
505
+ return processColumnConfig(col, data);
506
+ };
507
+ columnDefs = columnDefs.map(function (col) {
508
+ return processColumnDefRecursively(col);
401
509
  });
402
510
  extensibleColumns && gridKey && extensibleColumns[gridKey] && extensibleColumns[gridKey].map(function (column) {
403
511
  columnDefs.push({
@@ -472,7 +580,14 @@ function AgGridPlus(props) {
472
580
  };
473
581
  }, [propsRowSelection, enableClickSelection]);
474
582
  var onGridReady = (0, _react.useCallback)(function (params) {
475
- var _apiRef$current3;
583
+ var _columnSchemeManager$3, _columnSchemeManager$4, _columnSchemeManager$5, _apiRef$current3;
584
+ console.log('[AgGridPlus] onGridReady 被调用:', {
585
+ hasColumnSchemeManager: !!columnSchemeManager,
586
+ hasCurrentScheme: !!(columnSchemeManager !== null && columnSchemeManager !== void 0 && columnSchemeManager.currentScheme),
587
+ currentSchemeId: columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$3 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$3 === void 0 ? void 0 : _columnSchemeManager$3.id,
588
+ currentSchemeName: columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$4 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$4 === void 0 ? void 0 : _columnSchemeManager$4.name,
589
+ hasColumnConfig: !!(columnSchemeManager !== null && columnSchemeManager !== void 0 && (_columnSchemeManager$5 = columnSchemeManager.currentScheme) !== null && _columnSchemeManager$5 !== void 0 && _columnSchemeManager$5.columnConfig)
590
+ });
476
591
  apiRef.current = params.api;
477
592
  onReady && onReady(params);
478
593
  ///@ts-ignore
@@ -480,7 +595,10 @@ function AgGridPlus(props) {
480
595
  setColumnState((_apiRef$current3 = apiRef.current) === null || _apiRef$current3 === void 0 ? void 0 : _apiRef$current3.getColumnState());
481
596
  sortChanged(params.api);
482
597
  setReady(true);
483
- }, [dataSource]);
598
+
599
+ // 注意: 方案应用已由 useEffect 处理,无需在这里重复应用
600
+ // useEffect 会在 apiRef 和 currentScheme 都准备好时自动应用方案
601
+ }, [dataSource, columnSchemeManager]);
484
602
  var onRequest = (0, _react.useCallback)(function (queryFilter) {
485
603
  if (!requestRef.current) return;
486
604
  setLoading(true);
@@ -814,21 +932,34 @@ function AgGridPlus(props) {
814
932
  };
815
933
  var colDefs = (0, _react.useMemo)(function () {
816
934
  var columnDefs = getTableColumns(rowData);
817
- columnDefs = columnDefs.map(function (i) {
818
- var cellConfig = columnCellClass[i.field];
935
+
936
+ // 递归应用 columnCellClass 配置
937
+ var applyCellConfig = function applyCellConfig(col) {
938
+ // 如果有 children,递归处理
939
+ if (col.children && Array.isArray(col.children)) {
940
+ return _objectSpread(_objectSpread({}, col), {}, {
941
+ children: col.children.map(applyCellConfig).filter(function (x) {
942
+ return !x.hideInTable;
943
+ })
944
+ });
945
+ }
946
+
947
+ // 处理普通列
948
+ var cellConfig = columnCellClass[col.field];
819
949
  if (cellConfig) {
820
950
  if (cellConfig.cellClass) {
821
- i.cellClass = cellConfig.cellClass;
951
+ col.cellClass = cellConfig.cellClass;
822
952
  }
823
953
  if (cellConfig.groupName) {
824
- i.groupName = cellConfig.groupName;
954
+ col.groupName = cellConfig.groupName;
825
955
  }
826
956
  if (cellConfig.suppressHeaderFilterButton !== undefined) {
827
- i.suppressHeaderFilterButton = !cellConfig.suppressHeaderFilterButton;
957
+ col.suppressHeaderFilterButton = !cellConfig.suppressHeaderFilterButton;
828
958
  }
829
959
  }
830
- return i;
831
- }).filter(function (x) {
960
+ return col;
961
+ };
962
+ columnDefs = columnDefs.map(applyCellConfig).filter(function (x) {
832
963
  return !x.hideInTable;
833
964
  });
834
965
  var processedColumns = (0, _processColumnGroups.default)(columnDefs);
@@ -991,8 +1122,8 @@ function AgGridPlus(props) {
991
1122
  onDragStopped: function onDragStopped(e) {
992
1123
  if (apiRef.current) {
993
1124
  var _apiRef$current7;
994
- var _columnState = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
995
- setColumnState(_columnState);
1125
+ var _columnState2 = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
1126
+ setColumnState(_columnState2);
996
1127
 
997
1128
  // onColumnStateChanged && onColumnStateChanged(columnState)
998
1129
  }
@@ -7,10 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.QuerySchemesManager = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _antd = require("antd");
10
+ var _draggableModal = _interopRequireDefault(require("../../../draggableModal"));
10
11
  var _icons = require("@ant-design/icons");
11
12
  var _reactDnd = require("react-dnd");
12
13
  var _reactDndHtml5Backend = require("react-dnd-html5-backend");
13
14
  require("./QuerySchemesManager.less");
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
16
  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); }
15
17
  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; }
16
18
  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; }
@@ -202,7 +204,7 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
202
204
  case 0:
203
205
  _context.prev = 0;
204
206
  if (!currentScheme) {
205
- _context.next = 4;
207
+ _context.next = 7;
206
208
  break;
207
209
  }
208
210
  _context.next = 4;
@@ -210,24 +212,32 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
210
212
  itemsOrder: editingOrder
211
213
  });
212
214
  case 4:
215
+ _antd.message.success('已应用新顺序');
216
+ _context.next = 10;
217
+ break;
218
+ case 7:
219
+ _context.next = 9;
220
+ return createScheme('默认方案', editingOrder);
221
+ case 9:
222
+ _antd.message.success('已自动创建并应用默认方案');
223
+ case 10:
213
224
  // 应用顺序到表单
214
225
  onOrderChange(editingOrder);
215
- _antd.message.success('已应用新顺序');
216
226
 
217
227
  // 关闭弹窗,让用户看到效果
218
228
  onClose();
219
- _context.next = 12;
229
+ _context.next = 17;
220
230
  break;
221
- case 9:
222
- _context.prev = 9;
231
+ case 14:
232
+ _context.prev = 14;
223
233
  _context.t0 = _context["catch"](0);
224
234
  _antd.message.error(_context.t0.message || '应用失败');
225
- case 12:
235
+ case 17:
226
236
  case "end":
227
237
  return _context.stop();
228
238
  }
229
- }, _callee, null, [[0, 9]]);
230
- })), [editingOrder, onOrderChange, currentScheme, saveScheme, onClose]);
239
+ }, _callee, null, [[0, 14]]);
240
+ })), [editingOrder, onOrderChange, currentScheme, saveScheme, createScheme, onClose]);
231
241
 
232
242
  /**
233
243
  * 保存为新方案
@@ -445,7 +455,7 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
445
455
  return _ref9.apply(this, arguments);
446
456
  };
447
457
  }(), [loadScheme, schemes, onOrderChange]);
448
- return /*#__PURE__*/_react.default.createElement(_antd.Modal, {
458
+ return /*#__PURE__*/_react.default.createElement(_draggableModal.default, {
449
459
  title: "\u67E5\u8BE2\u65B9\u6848\u8BBE\u7F6E",
450
460
  open: visible,
451
461
  onCancel: onClose,
@@ -329,18 +329,40 @@ function useQuerySchemes(config) {
329
329
  _context5.next = 12;
330
330
  return saveSchemesToStorage(updatedSchemes);
331
331
  case 12:
332
+ // 自动激活新创建的方案
333
+ setCurrentScheme(newScheme);
334
+ setIsDirty(false);
335
+
336
+ // 保存当前方案ID,用于刷新后恢复
337
+ if (!storageAdapter.saveCurrentSchemeId) {
338
+ _context5.next = 23;
339
+ break;
340
+ }
341
+ _context5.prev = 15;
342
+ _context5.next = 18;
343
+ return storageAdapter.saveCurrentSchemeId(gridId, newScheme.id);
344
+ case 18:
345
+ _context5.next = 23;
346
+ break;
347
+ case 20:
348
+ _context5.prev = 20;
349
+ _context5.t0 = _context5["catch"](15);
350
+ console.error('[useQuerySchemes] 保存当前方案ID失败:', _context5.t0);
351
+ case 23:
352
+ // 触发方案变更回调
353
+ onSchemeChange === null || onSchemeChange === void 0 || onSchemeChange(newScheme);
332
354
  onSchemeSave === null || onSchemeSave === void 0 || onSchemeSave(newScheme);
333
355
  return _context5.abrupt("return", newScheme);
334
- case 14:
356
+ case 26:
335
357
  case "end":
336
358
  return _context5.stop();
337
359
  }
338
- }, _callee5);
360
+ }, _callee5, null, [[15, 20]]);
339
361
  }));
340
362
  return function (_x4, _x5, _x6) {
341
363
  return _ref5.apply(this, arguments);
342
364
  };
343
- }(), [schemes, saveSchemesToStorage, onSchemeSave]);
365
+ }(), [schemes, gridId, storageAdapter, saveSchemesToStorage, onSchemeChange, onSchemeSave]);
344
366
 
345
367
  /**
346
368
  * 更新方案信息(不影响 itemsOrder)