@nokecy/qc-ui 1.0.82 → 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 (81) 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 -121
  4. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.d.ts +1 -1
  5. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.js +1 -1
  6. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.js +60 -14
  7. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.js +12 -26
  8. package/dist/cjs/ag-grid-plus/schemes/types.d.ts +8 -5
  9. package/dist/cjs/ag-grid-plus/schemes/utils/validator.js +14 -18
  10. package/dist/cjs/ag-grid-plus/setting/ColumnConfigForm.d.ts +16 -0
  11. package/dist/cjs/ag-grid-plus/setting/ColumnConfigForm.js +348 -0
  12. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +20 -0
  13. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +940 -0
  14. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +208 -248
  15. package/dist/cjs/ag-grid-plus/setting/MoveNodeModal.d.ts +15 -0
  16. package/dist/cjs/ag-grid-plus/setting/MoveNodeModal.js +160 -0
  17. package/dist/cjs/ag-grid-plus/setting/NameColumnRenderer.d.ts +18 -0
  18. package/dist/cjs/ag-grid-plus/setting/NameColumnRenderer.js +94 -0
  19. package/dist/cjs/ag-grid-plus/setting/columnGroupTypes.d.ts +59 -0
  20. package/dist/cjs/ag-grid-plus/setting/columnGroupTypes.js +5 -0
  21. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +75 -0
  22. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +281 -0
  23. package/dist/cjs/ag-grid-plus/setting/index.d.ts +2 -1
  24. package/dist/cjs/ag-grid-plus/setting/index.js +4 -2
  25. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.d.ts +2 -1
  26. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.js +11 -8
  27. package/dist/cjs/ag-grid-plus/types.d.ts +2 -0
  28. package/dist/cjs/array-table/index.js +30 -118
  29. package/dist/cjs/draggableModal/index.d.ts +1 -1
  30. package/dist/cjs/draggableModal/index.js +251 -25
  31. package/dist/cjs/draggableModal/style.less +185 -12
  32. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts +9 -0
  33. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.js +44 -0
  34. package/dist/esm/ag-grid-plus/ag-gridPlus.js +245 -121
  35. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.d.ts +1 -1
  36. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.js +1 -1
  37. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.js +60 -14
  38. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.js +13 -27
  39. package/dist/esm/ag-grid-plus/schemes/types.d.ts +8 -5
  40. package/dist/esm/ag-grid-plus/schemes/utils/validator.js +14 -18
  41. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.d.ts +16 -0
  42. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.js +338 -0
  43. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +20 -0
  44. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +932 -0
  45. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +207 -247
  46. package/dist/esm/ag-grid-plus/setting/MoveNodeModal.d.ts +15 -0
  47. package/dist/esm/ag-grid-plus/setting/MoveNodeModal.js +150 -0
  48. package/dist/esm/ag-grid-plus/setting/NameColumnRenderer.d.ts +18 -0
  49. package/dist/esm/ag-grid-plus/setting/NameColumnRenderer.js +87 -0
  50. package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts +59 -0
  51. package/dist/esm/ag-grid-plus/setting/columnGroupTypes.js +1 -0
  52. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +75 -0
  53. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +265 -0
  54. package/dist/esm/ag-grid-plus/setting/index.d.ts +2 -1
  55. package/dist/esm/ag-grid-plus/setting/index.js +4 -2
  56. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.d.ts +2 -1
  57. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.js +11 -8
  58. package/dist/esm/ag-grid-plus/types.d.ts +2 -0
  59. package/dist/esm/array-table/index.js +31 -119
  60. package/dist/esm/draggableModal/index.d.ts +1 -1
  61. package/dist/esm/draggableModal/index.js +252 -27
  62. package/dist/esm/draggableModal/style.less +185 -12
  63. package/dist/umd/qc-ui.min.css +1 -1
  64. package/dist/umd/qc-ui.min.js +1 -1
  65. package/package.json +1 -1
  66. package/dist/cjs/ag-grid-plus/gridManager/index.d.ts +0 -7
  67. package/dist/cjs/ag-grid-plus/gridManager/index.js +0 -40
  68. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.d.ts +0 -7
  69. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.js +0 -32
  70. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.d.ts +0 -7
  71. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.js +0 -32
  72. package/dist/cjs/ag-grid-plus/setting/diySetting/index.d.ts +0 -10
  73. package/dist/cjs/ag-grid-plus/setting/diySetting/index.js +0 -268
  74. package/dist/esm/ag-grid-plus/gridManager/index.d.ts +0 -7
  75. package/dist/esm/ag-grid-plus/gridManager/index.js +0 -35
  76. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.d.ts +0 -7
  77. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.js +0 -27
  78. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.d.ts +0 -7
  79. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.js +0 -27
  80. package/dist/esm/ag-grid-plus/setting/diySetting/index.d.ts +0 -10
  81. 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,114 @@ 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;
251
+
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]);
260
285
 
261
- // 当 gridApi 就绪且有当前方案时,应用列方案
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
+
342
+ // 2. 【重要修改】使用 columnConfig 时,不应用 columnState
343
+ // 原因:columnConfig 已经包含了完整的列配置(宽度、隐藏、顺序、分组等)
344
+ // 如果再应用 columnState,会导致分组子列被视为独立列,破坏分组结构
345
+ console.log('[AgGridPlus] useEffect: 使用 columnConfig,跳过 columnState 应用');
346
+ }
347
+
348
+ // 应用过滤器状态
349
+ if (currentScheme.filterModel && apiRef.current) {
350
+ apiRef.current.setFilterModel(currentScheme.filterModel);
351
+ }
271
352
  }, 10);
272
353
  return function () {
273
354
  return clearTimeout(timer);
274
355
  };
275
- }, [columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme]);
356
+ }, [apiRef.current, columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme]);
276
357
  (0, _react.useEffect)(function () {
277
358
  setRowData(dataSource || propRowData || []);
278
359
  }, [dataSource, propRowData]);
@@ -308,96 +389,116 @@ function AgGridPlus(props) {
308
389
  return colDef.customCellRenderer(params);
309
390
  };
310
391
 
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;
392
+ // 辅助函数: 处理单个列配置
393
+ var processColumnConfig = function processColumnConfig(col, data) {
394
+ var dataType = getDataType(data, col.field || '', col.valueEnum);
395
+ if (col.valueEnum && Array.isArray(col.valueEnum)) {
396
+ var _defaultItems$0$value, _defaultItems$;
397
+ // 统计默认值
398
+ var valueEnum = col.valueEnum; // 保存引用以便TypeScript理解
399
+ var defaultItems = valueEnum.filter(function (item) {
400
+ return item.default;
401
+ });
402
+ var isMultiple = defaultItems.length > 1;
403
+ var defaultValue = isMultiple ? defaultItems.map(function (item) {
404
+ return item.value;
405
+ }) : (_defaultItems$0$value = (_defaultItems$ = defaultItems[0]) === null || _defaultItems$ === void 0 ? void 0 : _defaultItems$.value) !== null && _defaultItems$0$value !== void 0 ? _defaultItems$0$value : undefined;
406
+ var valueFormatter = function valueFormatter(params) {
407
+ var match = valueEnum.find(function (item) {
408
+ return item.value == params.value;
326
409
  });
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) {
410
+ return match ? match.label : params.value;
411
+ };
412
+ return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
413
+ cellRenderer: function cellRenderer(params) {
332
414
  var match = valueEnum.find(function (item) {
333
415
  return item.value == params.value;
334
416
  });
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
- },
417
+ if (match) {
418
+ var color = match.color || '#ffffff';
419
+ return /*#__PURE__*/_react.default.createElement("span", {
382
420
  style: {
383
- display: 'flex',
384
- justifyContent: 'center',
385
- alignItems: 'center'
421
+ color: color,
422
+ backgroundColor: 'transparent',
423
+ fontWeight: 500
386
424
  }
387
- }, value);
425
+ }, match.label);
388
426
  }
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), {}, {
427
+ return params.value;
428
+ },
429
+ filterParams: _objectSpread(_objectSpread({}, col.filterParams || {}), {}, {
430
+ valueFormatter: valueFormatter
431
+ }),
432
+ searchComponent: _antdV.Select,
433
+ searchComponentProps: {
434
+ options: col.valueEnum.map(function (item) {
435
+ return {
436
+ label: item.label,
437
+ value: item.value
438
+ };
439
+ }),
440
+ mode: isMultiple ? "multiple" : undefined,
441
+ defaultValue: defaultValue
442
+ }
443
+ });
444
+ }
445
+ if (col.type || typeof col.cellRenderer == "string") {
446
+ return _objectSpread({}, col);
447
+ }
448
+ //@ts-ignore
449
+ if (col !== null && col !== void 0 && col.ellipsis) {
450
+ return _objectSpread(_objectSpread({}, col), {}, {
451
+ cellRenderer: function cellRenderer(_ref) {
452
+ var value = _ref.value;
453
+ return /*#__PURE__*/_react.default.createElement(Text, {
454
+ ellipsis: {
455
+ tooltip: value
456
+ },
457
+ style: {
458
+ display: 'flex',
459
+ justifyContent: 'center',
460
+ alignItems: 'center'
461
+ }
462
+ }, value);
463
+ }
464
+ });
465
+ }
466
+ if (col.cellRenderer) {
467
+ return _objectSpread(_objectSpread({}, col), {}, {
398
468
  customCellRenderer: col.cellRenderer,
399
469
  cellRenderer: cellRenderer
400
470
  });
471
+ }
472
+ return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
473
+ customCellRenderer: col.cellRenderer,
474
+ cellRenderer: cellRenderer
475
+ });
476
+ };
477
+
478
+ // 获取表格列定义
479
+ var getTableColumns = function getTableColumns(rowDataList) {
480
+ var data = rowDataList.length > 0 ? rowDataList[0] : {};
481
+ var columnProps = _react.default.Children.map(children, function (child, index) {
482
+ return _objectSpread({}, child.props);
483
+ });
484
+ var columnDefs = !columnProps ? props.columnDefs ? props.columnDefs : [] : columnProps;
485
+
486
+ // 递归处理列配置(包括分组的 children)
487
+ var processColumnDefRecursively = function processColumnDefRecursively(col) {
488
+ // 如果有 children(分组列),递归处理每个子列
489
+ if (col.children && Array.isArray(col.children)) {
490
+ return _objectSpread(_objectSpread({}, col), {}, {
491
+ children: col.children.map(function (child) {
492
+ return processColumnDefRecursively(child);
493
+ })
494
+ });
495
+ }
496
+
497
+ // 处理普通列
498
+ return processColumnConfig(col, data);
499
+ };
500
+ columnDefs = columnDefs.map(function (col) {
501
+ return processColumnDefRecursively(col);
401
502
  });
402
503
  extensibleColumns && gridKey && extensibleColumns[gridKey] && extensibleColumns[gridKey].map(function (column) {
403
504
  columnDefs.push({
@@ -472,7 +573,14 @@ function AgGridPlus(props) {
472
573
  };
473
574
  }, [propsRowSelection, enableClickSelection]);
474
575
  var onGridReady = (0, _react.useCallback)(function (params) {
475
- var _apiRef$current3;
576
+ var _columnSchemeManager$3, _columnSchemeManager$4, _columnSchemeManager$5, _apiRef$current3;
577
+ console.log('[AgGridPlus] onGridReady 被调用:', {
578
+ hasColumnSchemeManager: !!columnSchemeManager,
579
+ hasCurrentScheme: !!(columnSchemeManager !== null && columnSchemeManager !== void 0 && columnSchemeManager.currentScheme),
580
+ currentSchemeId: columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$3 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$3 === void 0 ? void 0 : _columnSchemeManager$3.id,
581
+ currentSchemeName: columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$4 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$4 === void 0 ? void 0 : _columnSchemeManager$4.name,
582
+ hasColumnConfig: !!(columnSchemeManager !== null && columnSchemeManager !== void 0 && (_columnSchemeManager$5 = columnSchemeManager.currentScheme) !== null && _columnSchemeManager$5 !== void 0 && _columnSchemeManager$5.columnConfig)
583
+ });
476
584
  apiRef.current = params.api;
477
585
  onReady && onReady(params);
478
586
  ///@ts-ignore
@@ -480,7 +588,10 @@ function AgGridPlus(props) {
480
588
  setColumnState((_apiRef$current3 = apiRef.current) === null || _apiRef$current3 === void 0 ? void 0 : _apiRef$current3.getColumnState());
481
589
  sortChanged(params.api);
482
590
  setReady(true);
483
- }, [dataSource]);
591
+
592
+ // 注意: 方案应用已由 useEffect 处理,无需在这里重复应用
593
+ // useEffect 会在 apiRef 和 currentScheme 都准备好时自动应用方案
594
+ }, [dataSource, columnSchemeManager]);
484
595
  var onRequest = (0, _react.useCallback)(function (queryFilter) {
485
596
  if (!requestRef.current) return;
486
597
  setLoading(true);
@@ -814,21 +925,34 @@ function AgGridPlus(props) {
814
925
  };
815
926
  var colDefs = (0, _react.useMemo)(function () {
816
927
  var columnDefs = getTableColumns(rowData);
817
- columnDefs = columnDefs.map(function (i) {
818
- var cellConfig = columnCellClass[i.field];
928
+
929
+ // 递归应用 columnCellClass 配置
930
+ var applyCellConfig = function applyCellConfig(col) {
931
+ // 如果有 children,递归处理
932
+ if (col.children && Array.isArray(col.children)) {
933
+ return _objectSpread(_objectSpread({}, col), {}, {
934
+ children: col.children.map(applyCellConfig).filter(function (x) {
935
+ return !x.hideInTable;
936
+ })
937
+ });
938
+ }
939
+
940
+ // 处理普通列
941
+ var cellConfig = columnCellClass[col.field];
819
942
  if (cellConfig) {
820
943
  if (cellConfig.cellClass) {
821
- i.cellClass = cellConfig.cellClass;
944
+ col.cellClass = cellConfig.cellClass;
822
945
  }
823
946
  if (cellConfig.groupName) {
824
- i.groupName = cellConfig.groupName;
947
+ col.groupName = cellConfig.groupName;
825
948
  }
826
949
  if (cellConfig.suppressHeaderFilterButton !== undefined) {
827
- i.suppressHeaderFilterButton = !cellConfig.suppressHeaderFilterButton;
950
+ col.suppressHeaderFilterButton = !cellConfig.suppressHeaderFilterButton;
828
951
  }
829
952
  }
830
- return i;
831
- }).filter(function (x) {
953
+ return col;
954
+ };
955
+ columnDefs = columnDefs.map(applyCellConfig).filter(function (x) {
832
956
  return !x.hideInTable;
833
957
  });
834
958
  var processedColumns = (0, _processColumnGroups.default)(columnDefs);
@@ -991,8 +1115,8 @@ function AgGridPlus(props) {
991
1115
  onDragStopped: function onDragStopped(e) {
992
1116
  if (apiRef.current) {
993
1117
  var _apiRef$current7;
994
- var _columnState = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
995
- setColumnState(_columnState);
1118
+ var _columnState2 = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
1119
+ setColumnState(_columnState2);
996
1120
 
997
1121
  // onColumnStateChanged && onColumnStateChanged(columnState)
998
1122
  }
@@ -4,7 +4,7 @@ import './SchemeSelector.less';
4
4
  export interface SchemeSelectorProps {
5
5
  /** 方案管理器 */
6
6
  schemeManager: UseColumnSchemesReturn;
7
- /** 当前表格的列状态(用于创建/更新方案) */
7
+ /** 当前表格的列配置(用于创建/更新方案) */
8
8
  currentColumnState: any[];
9
9
  /** 样式类名 */
10
10
  className?: string;
@@ -133,7 +133,7 @@ var SchemeSelector = exports.SchemeSelector = function SchemeSelector(_ref) {
133
133
  _context3.prev = 6;
134
134
  _context3.next = 9;
135
135
  return saveScheme({
136
- columnState: currentColumnState
136
+ columnConfig: currentColumnState
137
137
  });
138
138
  case 9:
139
139
  _antd.message.success('保存成功');