@nokecy/qc-ui 1.0.81 → 1.0.83

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 +245 -130
  4. package/dist/cjs/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +131 -79
  5. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.d.ts +1 -1
  6. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.js +1 -1
  7. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.js +60 -14
  8. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.js +12 -26
  9. package/dist/cjs/ag-grid-plus/schemes/types.d.ts +8 -5
  10. package/dist/cjs/ag-grid-plus/schemes/utils/validator.js +14 -18
  11. package/dist/cjs/ag-grid-plus/setting/ColumnConfigForm.d.ts +16 -0
  12. package/dist/cjs/ag-grid-plus/setting/ColumnConfigForm.js +348 -0
  13. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +20 -0
  14. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +940 -0
  15. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.d.ts +1 -1
  16. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +210 -250
  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 +5 -13
  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 +251 -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 +245 -130
  37. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +131 -79
  38. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.d.ts +1 -1
  39. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.js +1 -1
  40. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.js +60 -14
  41. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.js +13 -27
  42. package/dist/esm/ag-grid-plus/schemes/types.d.ts +8 -5
  43. package/dist/esm/ag-grid-plus/schemes/utils/validator.js +14 -18
  44. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.d.ts +16 -0
  45. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.js +338 -0
  46. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +20 -0
  47. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +932 -0
  48. package/dist/esm/ag-grid-plus/setting/ColumnSetting.d.ts +1 -1
  49. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +209 -249
  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 +5 -13
  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 +252 -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
@@ -51,7 +51,7 @@ var getSort = function getSort(columnState) {
51
51
  return columnState ? "".concat(columnState.colId, " ").concat(columnState.sort) : "";
52
52
  };
53
53
  function AgGridPlus(props) {
54
- var _querySchemeManager$c;
54
+ var _columnSchemeManager$2, _querySchemeManager$c;
55
55
  var style = props.style,
56
56
  loadingProps = props.loading,
57
57
  gridParams = props.params,
@@ -165,12 +165,16 @@ function AgGridPlus(props) {
165
165
  storageAdapter: globalColumnAdapter || columnSchemeStorageAdapter,
166
166
  enableAutoSave: true,
167
167
  onSchemeChange: function onSchemeChange(scheme) {
168
- if (scheme && apiRef.current) {
169
- apiRef.current.applyColumnState({
170
- state: scheme.columnState,
171
- applyOrder: true
172
- });
173
- }
168
+ console.log('[AgGridPlus] onSchemeChange 被调用:', {
169
+ hasScheme: !!scheme,
170
+ hasApiRef: !!apiRef.current,
171
+ schemeId: scheme === null || scheme === void 0 ? void 0 : scheme.id,
172
+ schemeName: scheme === null || scheme === void 0 ? void 0 : scheme.name,
173
+ hasColumnConfig: !!(scheme !== null && scheme !== void 0 && scheme.columnConfig)
174
+ });
175
+
176
+ // 注意: 方案应用已由 useEffect 处理
177
+ // useEffect 会在 apiRef 和 currentScheme 都准备好时自动应用方案
174
178
  }
175
179
  }) : undefined;
176
180
 
@@ -235,37 +239,114 @@ function AgGridPlus(props) {
235
239
 
236
240
  // 加载列方案
237
241
  useEffect(function () {
238
- if (!gridPlusColumnState || !gridKey || !apiRef.current) return;
239
- var currentState = gridPlusColumnState[gridKey];
240
- if (!currentState) return;
241
- setColumnCellClass(handelgridPlusColumnState(currentState));
242
- var timer = setTimeout(function () {
243
- var _apiRef$current;
244
- (_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 || _apiRef$current.applyColumnState({
245
- state: currentState,
246
- applyOrder: true
247
- });
248
- }, 10);
249
- return function () {
250
- return clearTimeout(timer);
251
- };
252
- }, [gridPlusColumnState, gridKey]);
242
+ var _columnSchemeManager$;
243
+ if (!gridKey || !apiRef.current) return;
253
244
 
254
- // 当 gridApi 就绪且有当前方案时,应用列方案
245
+ // 优先使用方案中的 columnConfig(用户在列配置界面调整后的数据)
246
+ if (columnSchemeManager !== null && columnSchemeManager !== void 0 && (_columnSchemeManager$ = columnSchemeManager.currentScheme) !== null && _columnSchemeManager$ !== void 0 && _columnSchemeManager$.columnConfig) {
247
+ var _require = require("./setting/columnGroupUtils"),
248
+ flatConfigToColumnState = _require.flatConfigToColumnState;
249
+ var _columnState = flatConfigToColumnState(columnSchemeManager.currentScheme.columnConfig);
250
+ setColumnCellClass(handelgridPlusColumnState(_columnState));
251
+ var timer = setTimeout(function () {
252
+ var _apiRef$current;
253
+ (_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 || _apiRef$current.applyColumnState({
254
+ state: _columnState,
255
+ applyOrder: true
256
+ });
257
+ }, 10);
258
+ return function () {
259
+ return clearTimeout(timer);
260
+ };
261
+ }
262
+ // 后备方案:使用旧的 gridPlusColumnState
263
+ else if (gridPlusColumnState !== null && gridPlusColumnState !== void 0 && gridPlusColumnState[gridKey]) {
264
+ var currentState = gridPlusColumnState[gridKey];
265
+ setColumnCellClass(handelgridPlusColumnState(currentState));
266
+ var _timer = setTimeout(function () {
267
+ var _apiRef$current2;
268
+ (_apiRef$current2 = apiRef.current) === null || _apiRef$current2 === void 0 || _apiRef$current2.applyColumnState({
269
+ state: currentState,
270
+ applyOrder: true
271
+ });
272
+ }, 10);
273
+ return function () {
274
+ return clearTimeout(_timer);
275
+ };
276
+ }
277
+ }, [gridKey, columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$2 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$2 === void 0 ? void 0 : _columnSchemeManager$2.columnConfig, gridPlusColumnState]);
278
+
279
+ // 同步 apiRef 和 currentScheme,确保方案在两者都准备好时应用
255
280
  useEffect(function () {
281
+ var _currentScheme$column;
256
282
  var currentScheme = columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme;
257
- if (!apiRef.current || !currentScheme) return;
258
- var timer = setTimeout(function () {
259
- var _apiRef$current2;
260
- (_apiRef$current2 = apiRef.current) === null || _apiRef$current2 === void 0 || _apiRef$current2.applyColumnState({
261
- state: currentScheme.columnState,
262
- applyOrder: true
283
+
284
+ // 两个依赖都不存在时,直接返回
285
+ if (!apiRef.current || !currentScheme) {
286
+ console.log('[AgGridPlus] useEffect: 等待依赖准备', {
287
+ hasApiRef: !!apiRef.current,
288
+ hasCurrentScheme: !!currentScheme
263
289
  });
290
+ return;
291
+ }
292
+ console.log('[AgGridPlus] useEffect: 两个依赖都准备好,应用方案', {
293
+ schemeId: currentScheme.id,
294
+ schemeName: currentScheme.name,
295
+ hasColumnConfig: !!currentScheme.columnConfig,
296
+ columnConfigCount: ((_currentScheme$column = currentScheme.columnConfig) === null || _currentScheme$column === void 0 ? void 0 : _currentScheme$column.length) || 0
297
+ });
298
+ var timer = setTimeout(function () {
299
+ // 优先使用 columnConfig(包含完整的分组结构)
300
+ if (currentScheme.columnConfig) {
301
+ var _require2 = require("./setting/columnGroupUtils"),
302
+ flatConfigToGridState = _require2.flatConfigToGridState;
303
+ var gridColumnDefs = flatConfigToGridState(currentScheme.columnConfig);
304
+ console.log('[AgGridPlus] useEffect: 应用方案的 columnConfig:', {
305
+ columnConfig: currentScheme.columnConfig,
306
+ columnConfigLength: currentScheme.columnConfig.length,
307
+ gridColumnDefs: gridColumnDefs,
308
+ gridColumnDefsLength: gridColumnDefs.length,
309
+ columnConfigDetail: currentScheme.columnConfig.map(function (item) {
310
+ return {
311
+ type: item.type,
312
+ field: item.field,
313
+ headerName: item.headerName,
314
+ order: item.order,
315
+ parentId: item.parentId
316
+ };
317
+ }),
318
+ gridColumnDefsDetail: gridColumnDefs.map(function (def, idx) {
319
+ var _def$children;
320
+ return {
321
+ index: idx,
322
+ field: def.field,
323
+ headerName: def.headerName,
324
+ groupId: def.groupId,
325
+ children: (_def$children = def.children) === null || _def$children === void 0 ? void 0 : _def$children.length
326
+ };
327
+ })
328
+ });
329
+
330
+ // 1. 先设置列定义(包含分组结构)
331
+ if (apiRef.current) {
332
+ apiRef.current.setGridOption("columnDefs", gridColumnDefs);
333
+ }
334
+
335
+ // 2. 【重要修改】使用 columnConfig 时,不应用 columnState
336
+ // 原因:columnConfig 已经包含了完整的列配置(宽度、隐藏、顺序、分组等)
337
+ // 如果再应用 columnState,会导致分组子列被视为独立列,破坏分组结构
338
+ console.log('[AgGridPlus] useEffect: 使用 columnConfig,跳过 columnState 应用');
339
+ }
340
+
341
+ // 应用过滤器状态
342
+ if (currentScheme.filterModel && apiRef.current) {
343
+ apiRef.current.setFilterModel(currentScheme.filterModel);
344
+ }
264
345
  }, 10);
265
346
  return function () {
266
347
  return clearTimeout(timer);
267
348
  };
268
- }, [columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme]);
349
+ }, [apiRef.current, columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme]);
269
350
  useEffect(function () {
270
351
  setRowData(dataSource || propRowData || []);
271
352
  }, [dataSource, propRowData]);
@@ -301,96 +382,116 @@ function AgGridPlus(props) {
301
382
  return colDef.customCellRenderer(params);
302
383
  };
303
384
 
304
- // 获取表格列定义
305
- var getTableColumns = function getTableColumns(rowDataList) {
306
- var data = rowDataList.length > 0 ? rowDataList[0] : {};
307
- var columnProps = React.Children.map(children, function (child, index) {
308
- return _objectSpread({}, child.props);
309
- });
310
- var columnDefs = !columnProps ? props.columnDefs ? props.columnDefs : [] : columnProps;
311
- columnDefs = columnDefs.map(function (col) {
312
- var dataType = getDataType(data, col.field || '', col.valueEnum);
313
- if (col.valueEnum && Array.isArray(col.valueEnum)) {
314
- var _defaultItems$0$value, _defaultItems$;
315
- // 统计默认值
316
- var valueEnum = col.valueEnum; // 保存引用以便TypeScript理解
317
- var defaultItems = valueEnum.filter(function (item) {
318
- return item.default;
385
+ // 辅助函数: 处理单个列配置
386
+ var processColumnConfig = function processColumnConfig(col, data) {
387
+ var dataType = getDataType(data, col.field || '', col.valueEnum);
388
+ if (col.valueEnum && Array.isArray(col.valueEnum)) {
389
+ var _defaultItems$0$value, _defaultItems$;
390
+ // 统计默认值
391
+ var valueEnum = col.valueEnum; // 保存引用以便TypeScript理解
392
+ var defaultItems = valueEnum.filter(function (item) {
393
+ return item.default;
394
+ });
395
+ var isMultiple = defaultItems.length > 1;
396
+ var defaultValue = isMultiple ? defaultItems.map(function (item) {
397
+ return item.value;
398
+ }) : (_defaultItems$0$value = (_defaultItems$ = defaultItems[0]) === null || _defaultItems$ === void 0 ? void 0 : _defaultItems$.value) !== null && _defaultItems$0$value !== void 0 ? _defaultItems$0$value : undefined;
399
+ var valueFormatter = function valueFormatter(params) {
400
+ var match = valueEnum.find(function (item) {
401
+ return item.value == params.value;
319
402
  });
320
- var isMultiple = defaultItems.length > 1;
321
- var defaultValue = isMultiple ? defaultItems.map(function (item) {
322
- return item.value;
323
- }) : (_defaultItems$0$value = (_defaultItems$ = defaultItems[0]) === null || _defaultItems$ === void 0 ? void 0 : _defaultItems$.value) !== null && _defaultItems$0$value !== void 0 ? _defaultItems$0$value : undefined;
324
- var valueFormatter = function valueFormatter(params) {
403
+ return match ? match.label : params.value;
404
+ };
405
+ return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
406
+ cellRenderer: function cellRenderer(params) {
325
407
  var match = valueEnum.find(function (item) {
326
408
  return item.value == params.value;
327
409
  });
328
- return match ? match.label : params.value;
329
- };
330
- return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
331
- cellRenderer: function cellRenderer(params) {
332
- var match = valueEnum.find(function (item) {
333
- return item.value == params.value;
334
- });
335
- if (match) {
336
- var color = match.color || '#ffffff';
337
- return /*#__PURE__*/React.createElement("span", {
338
- style: {
339
- color: color,
340
- backgroundColor: 'transparent',
341
- fontWeight: 500
342
- }
343
- }, match.label);
344
- }
345
- return params.value;
346
- },
347
- filterParams: _objectSpread(_objectSpread({}, col.filterParams || {}), {}, {
348
- valueFormatter: valueFormatter
349
- }),
350
- searchComponent: Select,
351
- searchComponentProps: {
352
- options: col.valueEnum.map(function (item) {
353
- return {
354
- label: item.label,
355
- value: item.value
356
- };
357
- }),
358
- mode: isMultiple ? "multiple" : undefined,
359
- defaultValue: defaultValue
360
- }
361
- });
362
- }
363
- if (col.type || typeof col.cellRenderer == "string") {
364
- return _objectSpread({}, col);
365
- }
366
- //@ts-ignore
367
- if (col !== null && col !== void 0 && col.ellipsis) {
368
- return _objectSpread(_objectSpread({}, col), {}, {
369
- cellRenderer: function cellRenderer(_ref) {
370
- var value = _ref.value;
371
- return /*#__PURE__*/React.createElement(Text, {
372
- ellipsis: {
373
- tooltip: value
374
- },
410
+ if (match) {
411
+ var color = match.color || '#ffffff';
412
+ return /*#__PURE__*/React.createElement("span", {
375
413
  style: {
376
- display: 'flex',
377
- justifyContent: 'center',
378
- alignItems: 'center'
414
+ color: color,
415
+ backgroundColor: 'transparent',
416
+ fontWeight: 500
379
417
  }
380
- }, value);
418
+ }, match.label);
381
419
  }
382
- });
383
- }
384
- if (col.cellRenderer) {
385
- return _objectSpread(_objectSpread({}, col), {}, {
386
- customCellRenderer: col.cellRenderer,
387
- cellRenderer: cellRenderer
388
- });
389
- }
390
- return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
420
+ return params.value;
421
+ },
422
+ filterParams: _objectSpread(_objectSpread({}, col.filterParams || {}), {}, {
423
+ valueFormatter: valueFormatter
424
+ }),
425
+ searchComponent: Select,
426
+ searchComponentProps: {
427
+ options: col.valueEnum.map(function (item) {
428
+ return {
429
+ label: item.label,
430
+ value: item.value
431
+ };
432
+ }),
433
+ mode: isMultiple ? "multiple" : undefined,
434
+ defaultValue: defaultValue
435
+ }
436
+ });
437
+ }
438
+ if (col.type || typeof col.cellRenderer == "string") {
439
+ return _objectSpread({}, col);
440
+ }
441
+ //@ts-ignore
442
+ if (col !== null && col !== void 0 && col.ellipsis) {
443
+ return _objectSpread(_objectSpread({}, col), {}, {
444
+ cellRenderer: function cellRenderer(_ref) {
445
+ var value = _ref.value;
446
+ return /*#__PURE__*/React.createElement(Text, {
447
+ ellipsis: {
448
+ tooltip: value
449
+ },
450
+ style: {
451
+ display: 'flex',
452
+ justifyContent: 'center',
453
+ alignItems: 'center'
454
+ }
455
+ }, value);
456
+ }
457
+ });
458
+ }
459
+ if (col.cellRenderer) {
460
+ return _objectSpread(_objectSpread({}, col), {}, {
391
461
  customCellRenderer: col.cellRenderer,
392
462
  cellRenderer: cellRenderer
393
463
  });
464
+ }
465
+ return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
466
+ customCellRenderer: col.cellRenderer,
467
+ cellRenderer: cellRenderer
468
+ });
469
+ };
470
+
471
+ // 获取表格列定义
472
+ var getTableColumns = function getTableColumns(rowDataList) {
473
+ var data = rowDataList.length > 0 ? rowDataList[0] : {};
474
+ var columnProps = React.Children.map(children, function (child, index) {
475
+ return _objectSpread({}, child.props);
476
+ });
477
+ var columnDefs = !columnProps ? props.columnDefs ? props.columnDefs : [] : columnProps;
478
+
479
+ // 递归处理列配置(包括分组的 children)
480
+ var processColumnDefRecursively = function processColumnDefRecursively(col) {
481
+ // 如果有 children(分组列),递归处理每个子列
482
+ if (col.children && Array.isArray(col.children)) {
483
+ return _objectSpread(_objectSpread({}, col), {}, {
484
+ children: col.children.map(function (child) {
485
+ return processColumnDefRecursively(child);
486
+ })
487
+ });
488
+ }
489
+
490
+ // 处理普通列
491
+ return processColumnConfig(col, data);
492
+ };
493
+ columnDefs = columnDefs.map(function (col) {
494
+ return processColumnDefRecursively(col);
394
495
  });
395
496
  extensibleColumns && gridKey && extensibleColumns[gridKey] && extensibleColumns[gridKey].map(function (column) {
396
497
  columnDefs.push({
@@ -464,9 +565,15 @@ function AgGridPlus(props) {
464
565
  enableClickSelection: false
465
566
  };
466
567
  }, [propsRowSelection, enableClickSelection]);
467
- console.log('[AgGridPlus] rowSelection config:', JSON.stringify(rowSelectionConfig));
468
568
  var onGridReady = useCallback(function (params) {
469
- var _apiRef$current3;
569
+ var _columnSchemeManager$3, _columnSchemeManager$4, _columnSchemeManager$5, _apiRef$current3;
570
+ console.log('[AgGridPlus] onGridReady 被调用:', {
571
+ hasColumnSchemeManager: !!columnSchemeManager,
572
+ hasCurrentScheme: !!(columnSchemeManager !== null && columnSchemeManager !== void 0 && columnSchemeManager.currentScheme),
573
+ currentSchemeId: columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$3 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$3 === void 0 ? void 0 : _columnSchemeManager$3.id,
574
+ currentSchemeName: columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$4 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$4 === void 0 ? void 0 : _columnSchemeManager$4.name,
575
+ hasColumnConfig: !!(columnSchemeManager !== null && columnSchemeManager !== void 0 && (_columnSchemeManager$5 = columnSchemeManager.currentScheme) !== null && _columnSchemeManager$5 !== void 0 && _columnSchemeManager$5.columnConfig)
576
+ });
470
577
  apiRef.current = params.api;
471
578
  onReady && onReady(params);
472
579
  ///@ts-ignore
@@ -474,7 +581,10 @@ function AgGridPlus(props) {
474
581
  setColumnState((_apiRef$current3 = apiRef.current) === null || _apiRef$current3 === void 0 ? void 0 : _apiRef$current3.getColumnState());
475
582
  sortChanged(params.api);
476
583
  setReady(true);
477
- }, [dataSource]);
584
+
585
+ // 注意: 方案应用已由 useEffect 处理,无需在这里重复应用
586
+ // useEffect 会在 apiRef 和 currentScheme 都准备好时自动应用方案
587
+ }, [dataSource, columnSchemeManager]);
478
588
  var onRequest = useCallback(function (queryFilter) {
479
589
  if (!requestRef.current) return;
480
590
  setLoading(true);
@@ -577,9 +687,6 @@ function AgGridPlus(props) {
577
687
  if (prevDeps.paginationCurrent !== pagination.current) changedDeps.push('pagination.current');
578
688
  if (prevDeps.paginationPageSize !== pagination.pageSize) changedDeps.push('pagination.pageSize');
579
689
  if (prevDeps.stableSortColumn !== stableSortColumn) changedDeps.push('stableSortColumn');
580
- if (changedDeps.length > 0) {
581
- console.log('🔍 useEffect 依赖项变化:', changedDeps.join(', '));
582
- }
583
690
  depsRef.current = {
584
691
  ready: ready,
585
692
  stableQueryFilter: stableQueryFilter,
@@ -811,21 +918,34 @@ function AgGridPlus(props) {
811
918
  };
812
919
  var colDefs = useMemo(function () {
813
920
  var columnDefs = getTableColumns(rowData);
814
- columnDefs = columnDefs.map(function (i) {
815
- var cellConfig = columnCellClass[i.field];
921
+
922
+ // 递归应用 columnCellClass 配置
923
+ var applyCellConfig = function applyCellConfig(col) {
924
+ // 如果有 children,递归处理
925
+ if (col.children && Array.isArray(col.children)) {
926
+ return _objectSpread(_objectSpread({}, col), {}, {
927
+ children: col.children.map(applyCellConfig).filter(function (x) {
928
+ return !x.hideInTable;
929
+ })
930
+ });
931
+ }
932
+
933
+ // 处理普通列
934
+ var cellConfig = columnCellClass[col.field];
816
935
  if (cellConfig) {
817
936
  if (cellConfig.cellClass) {
818
- i.cellClass = cellConfig.cellClass;
937
+ col.cellClass = cellConfig.cellClass;
819
938
  }
820
939
  if (cellConfig.groupName) {
821
- i.groupName = cellConfig.groupName;
940
+ col.groupName = cellConfig.groupName;
822
941
  }
823
942
  if (cellConfig.suppressHeaderFilterButton !== undefined) {
824
- i.suppressHeaderFilterButton = !cellConfig.suppressHeaderFilterButton;
943
+ col.suppressHeaderFilterButton = !cellConfig.suppressHeaderFilterButton;
825
944
  }
826
945
  }
827
- return i;
828
- }).filter(function (x) {
946
+ return col;
947
+ };
948
+ columnDefs = columnDefs.map(applyCellConfig).filter(function (x) {
829
949
  return !x.hideInTable;
830
950
  });
831
951
  var processedColumns = processColumnGroups(columnDefs);
@@ -845,11 +965,6 @@ function AgGridPlus(props) {
845
965
  order: (_col$searchSort = col.searchSort) !== null && _col$searchSort !== void 0 ? _col$searchSort : 999
846
966
  }, col);
847
967
  })) || [];
848
- console.log('[AgGridPlus] queryFormItems构建:', {
849
- allColDefsLength: allColDefs === null || allColDefs === void 0 ? void 0 : allColDefs.length,
850
- queryFormItemsLength: items.length,
851
- queryFormItems: items
852
- });
853
968
  return items;
854
969
  }, [allColDefs]);
855
970
 
@@ -993,8 +1108,8 @@ function AgGridPlus(props) {
993
1108
  onDragStopped: function onDragStopped(e) {
994
1109
  if (apiRef.current) {
995
1110
  var _apiRef$current7;
996
- var _columnState = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
997
- setColumnState(_columnState);
1111
+ var _columnState2 = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
1112
+ setColumnState(_columnState2);
998
1113
 
999
1114
  // onColumnStateChanged && onColumnStateChanged(columnState)
1000
1115
  }