@nokecy/qc-ui 1.0.99 → 1.1.1

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 (42) hide show
  1. package/dist/cjs/ConfirmPro/index.js +1 -1
  2. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +49 -22
  3. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +2 -14
  4. package/dist/cjs/ag-grid-plus/context/useSchemeManager.js +52 -84
  5. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +27 -30
  6. package/dist/cjs/ag-grid-plus/shared/storage/backendApiAdapter.js +0 -2
  7. package/dist/cjs/ag-grid-plus/shared/storage/localStorageAdapter.js +0 -2
  8. package/dist/cjs/ag-grid-plus/utils/logger.js +1 -2
  9. package/dist/cjs/array-table/index.js +44 -61
  10. package/dist/cjs/components/RegexEditor/visualizer/astToRailroad.js +1 -7
  11. package/dist/cjs/dashboard/dashboard/index.js +0 -1
  12. package/dist/cjs/dashboard/widget/selector/index.js +0 -3
  13. package/dist/cjs/deleteConfirm/index.js +1 -1
  14. package/dist/cjs/formDesigner/FormDesigner.js +1 -3
  15. package/dist/cjs/formDesigner/widgets/SchemaEditorWidget.js +0 -1
  16. package/dist/cjs/generatedListPage/PerformanceMonitor.js +0 -3
  17. package/dist/cjs/generatedListPage/RequestManager.js +9 -11
  18. package/dist/cjs/standardFormDialog/PortalManager.js +2 -10
  19. package/dist/cjs/standardFormDialog/withStandardForm.js +0 -2
  20. package/dist/cjs/toolBar/index.js +1 -1
  21. package/dist/esm/ConfirmPro/index.js +1 -1
  22. package/dist/esm/ag-grid-plus/ag-gridPlus.js +49 -22
  23. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +2 -14
  24. package/dist/esm/ag-grid-plus/context/useSchemeManager.js +52 -84
  25. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +27 -30
  26. package/dist/esm/ag-grid-plus/shared/storage/backendApiAdapter.js +0 -2
  27. package/dist/esm/ag-grid-plus/shared/storage/localStorageAdapter.js +0 -2
  28. package/dist/esm/ag-grid-plus/utils/logger.js +1 -2
  29. package/dist/esm/array-table/index.js +44 -61
  30. package/dist/esm/components/RegexEditor/visualizer/astToRailroad.js +1 -7
  31. package/dist/esm/dashboard/dashboard/index.js +0 -1
  32. package/dist/esm/dashboard/widget/selector/index.js +0 -3
  33. package/dist/esm/deleteConfirm/index.js +1 -1
  34. package/dist/esm/formDesigner/FormDesigner.js +1 -3
  35. package/dist/esm/formDesigner/widgets/SchemaEditorWidget.js +0 -1
  36. package/dist/esm/generatedListPage/PerformanceMonitor.js +0 -3
  37. package/dist/esm/generatedListPage/RequestManager.js +9 -11
  38. package/dist/esm/standardFormDialog/PortalManager.js +2 -10
  39. package/dist/esm/standardFormDialog/withStandardForm.js +0 -2
  40. package/dist/esm/toolBar/index.js +1 -1
  41. package/dist/umd/qc-ui.min.js +1 -1
  42. package/package.json +2 -1
@@ -17,8 +17,6 @@ var _preview = _interopRequireDefault(require("./preview"));
17
17
  var _antd = require("antd");
18
18
  var _setting = _interopRequireDefault(require("../ag-grid-plus/setting"));
19
19
  var _gridContext = require("../ag-grid-plus/context/gridContext");
20
- var _useSchemeManager = require("../ag-grid-plus/context/useSchemeManager");
21
- var _localStorageAdapter = require("../ag-grid-plus/shared/storage/localStorageAdapter");
22
20
  var _columnGroupUtils = require("../ag-grid-plus/setting/columnGroupUtils");
23
21
  var _theme = require("../ag-grid-plus/theme");
24
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -38,7 +36,14 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
38
36
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // 导入 AG-Grid v33 主题
39
37
  //@ts-ignore
40
38
  var ArrayTableInner = (0, _react2.observer)(function (props) {
41
- var height = props.height;
39
+ var height = props.height,
40
+ gridKey = props.gridKey;
41
+
42
+ // 【新增】运行时验证 gridKey
43
+ if (!gridKey) {
44
+ console.error('[ArrayTable] gridKey 是必需的属性,用于方案管理和状态持久化');
45
+ throw new Error('[ArrayTable] gridKey 属性是必需的。请在 x-component-props 中提供 gridKey');
46
+ }
42
47
  var _useState = (0, _react.useState)(false),
43
48
  _useState2 = _slicedToArray(_useState, 2),
44
49
  isAdd = _useState2[0],
@@ -71,10 +76,12 @@ var ArrayTableInner = (0, _react2.observer)(function (props) {
71
76
  var _useRowDrag = (0, _hooks.useRowDrag)(field),
72
77
  handleRowDragMove = _useRowDrag.handleRowDragMove;
73
78
 
74
- // 从 Context 获取方案管理相关的状态和方法
75
- var _useContext = (0, _react.useContext)(_gridContext.GridPlusContext),
76
- currentSchemes = _useContext.currentSchemes,
77
- columnSchemes = _useContext.columnSchemes;
79
+ // 直接使用 Context 获取方案管理状态
80
+ // ArrayTable 外层已经提供了完整的 GridPlusContext.Provider
81
+ var context = (0, _react.useContext)(_gridContext.GridPlusContext);
82
+ var _ref = context || {},
83
+ currentSchemes = _ref.currentSchemes,
84
+ columnSchemes = _ref.columnSchemes;
78
85
 
79
86
  // 获取当前表格的激活方案
80
87
  var currentScheme = (0, _react.useMemo)(function () {
@@ -115,17 +122,8 @@ var ArrayTableInner = (0, _react2.observer)(function (props) {
115
122
  firstCol: (_currentScheme$column = currentScheme.columnConfig[0]) === null || _currentScheme$column === void 0 ? void 0 : _currentScheme$column.field,
116
123
  updatedAt: currentScheme.updatedAt
117
124
  });
118
- console.log('[ArrayTable] 方案恢复检查:', {
119
- schemeId: currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.id,
120
- schemeName: currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.name,
121
- configHash: configHash,
122
- lastHash: lastAppliedRef.current.configHash,
123
- shouldApply: configHash !== lastAppliedRef.current.configHash
124
- });
125
-
126
125
  // 【关键】检查配置是否真正变化,避免重复应用
127
126
  if (configHash === lastAppliedRef.current.configHash) {
128
- console.log('[ArrayTable] 配置未变化,跳过应用');
129
127
  return;
130
128
  }
131
129
 
@@ -141,12 +139,9 @@ var ArrayTableInner = (0, _react2.observer)(function (props) {
141
139
  state: columnState,
142
140
  applyOrder: true // 强制应用列顺序
143
141
  });
144
- console.log('[ArrayTable] 方案已成功应用');
145
-
146
142
  // 如果方案中包含过滤器配置,也一并应用
147
143
  if (currentScheme.filterModel) {
148
144
  gridApiState.setFilterModel(currentScheme.filterModel);
149
- console.log('[ArrayTable] 过滤器已应用');
150
145
  }
151
146
 
152
147
  // 记录本次应用的配置哈希
@@ -159,19 +154,14 @@ var ArrayTableInner = (0, _react2.observer)(function (props) {
159
154
  // 使用 requestAnimationFrame 延迟应用
160
155
  var rafId = requestAnimationFrame(function () {
161
156
  try {
162
- console.log('[ArrayTable] 正在应用方案:', currentScheme.name);
163
-
164
157
  // 【关键检测】检查是否包含分组配置
165
158
  var hasGroups = currentScheme.columnConfig.some(function (item) {
166
159
  return item.type === 'group';
167
160
  });
168
- console.log('[ArrayTable] 是否包含分组:', hasGroups);
169
-
170
161
  // 【条件更新】只有在包含分组时才更新 columnDefs
171
162
  // 原因:array-table 的列是动态生成的,无分组时不应该覆盖动态列定义
172
163
  if (hasGroups) {
173
164
  var gridColumnDefs = (0, _columnGroupUtils.flatConfigToGridState)(currentScheme.columnConfig);
174
- console.log('[ArrayTable] 检测到分组,更新 columnDefs');
175
165
  gridApiState.setGridOption('columnDefs', gridColumnDefs);
176
166
 
177
167
  // 等待 columnDefs 更新完成后再应用列状态
@@ -184,7 +174,7 @@ var ArrayTableInner = (0, _react2.observer)(function (props) {
184
174
  }, 100);
185
175
  } else {
186
176
  // 无分组时,直接应用列状态即可
187
- console.log('[ArrayTable] 无分组,仅应用列状态');
177
+
188
178
  applyColumnStateAndFilter();
189
179
  }
190
180
  } catch (error) {
@@ -311,8 +301,8 @@ var ArrayTableInner = (0, _react2.observer)(function (props) {
311
301
  ' <span data-ref="eSortAsc" class="ag-header-icon ag-sort-ascending-icon"></span>' + ' <span data-ref="eSortDesc" class="ag-header-icon ag-sort-descending-icon"></span>' + ' <span data-ref="eSortNone" class="ag-header-icon ag-sort-none-icon"></span>' + " </div>" + "</div>"
312
302
  }
313
303
  },
314
- getRowId: function getRowId(_ref) {
315
- var data = _ref.data;
304
+ getRowId: function getRowId(_ref2) {
305
+ var data = _ref2.data;
316
306
  return data._id || data.id;
317
307
  }
318
308
  // rowDragEntireRow={true}
@@ -346,43 +336,36 @@ var ArrayTableInner = (0, _react2.observer)(function (props) {
346
336
  ArrayTableInner.displayName = "ArrayTableInner";
347
337
 
348
338
  /**
349
- * ArrayTable 组件 - 带 GridPlusContext Provider 包装
339
+ * ArrayTable 组件
340
+ *
341
+ * 注意:需要在外部使用 GridPlusContext.Provider 包裹以提供方案管理功能
350
342
  *
351
- * 提供完整的列方案管理功能支持
343
+ * @example
344
+ * ```tsx
345
+ * const adapter = useMemo(() => new LocalStorageSchemeAdapter({
346
+ * storageKey: `array-table-schemes-${gridKey}`
347
+ * }), [gridKey]);
348
+ *
349
+ * const schemeManager = useSchemeManager({ adapter, autoLoad: true });
350
+ *
351
+ * const contextValue = useMemo(() => ({
352
+ * extensibleColumns: [],
353
+ * columnState: undefined,
354
+ * onSaveColumnState: () => {},
355
+ * applyToGlobal: () => {},
356
+ * resetCurrent: () => {},
357
+ * resetAll: () => {},
358
+ * queryFormItems: [],
359
+ * ...schemeManager
360
+ * }), [schemeManager]);
361
+ *
362
+ * <GridPlusContext.Provider value={contextValue}>
363
+ * <ArrayTable gridKey="my-table" height={400} />
364
+ * </GridPlusContext.Provider>
365
+ * ```
352
366
  */
353
367
  //@ts-ignore
354
- var ArrayTable = (0, _react2.observer)(function (props) {
355
- // 创建 LocalStorage 适配器实例 (使用 useMemo 避免重复创建)
356
- var adapter = (0, _react.useMemo)(function () {
357
- return new _localStorageAdapter.LocalStorageSchemeAdapter({
358
- storageKey: "array-table-schemes-".concat(props.gridKey || 'default'),
359
- enableDebugLog: false
360
- });
361
- }, [props.gridKey]);
362
-
363
- // 初始化方案管理器
364
- var schemeManager = (0, _useSchemeManager.useSchemeManager)({
365
- adapter: adapter,
366
- autoLoad: true,
367
- showErrorMessage: true
368
- });
369
-
370
- // 构建 Context Value
371
- var contextValue = (0, _react.useMemo)(function () {
372
- return _objectSpread({
373
- extensibleColumns: [],
374
- columnState: undefined,
375
- onSaveColumnState: function onSaveColumnState() {},
376
- applyToGlobal: function applyToGlobal() {},
377
- resetCurrent: function resetCurrent() {},
378
- resetAll: function resetAll() {},
379
- queryFormItems: []
380
- }, schemeManager);
381
- }, [schemeManager]);
382
- return /*#__PURE__*/_react.default.createElement(_gridContext.GridPlusContext.Provider, {
383
- value: contextValue
384
- }, /*#__PURE__*/_react.default.createElement(ArrayTableInner, props));
385
- });
368
+ var ArrayTable = ArrayTableInner;
386
369
  ArrayTable.displayName = "ArrayTable";
387
370
  ArrayTable.Column = function () {
388
371
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null);
@@ -22,13 +22,7 @@ function convertASTToRailroad(ast) {
22
22
  }
23
23
 
24
24
  // 调试日志
25
- if (ast.type === 'Alternative' || ast.type === 'CharacterClass') {
26
- console.log("\u5904\u7406 ".concat(ast.type, " \u8282\u70B9:"), {
27
- type: ast.type,
28
- expressions: ast.expressions,
29
- isArray: Array.isArray(ast.expressions)
30
- });
31
- }
25
+ if (ast.type === 'Alternative' || ast.type === 'CharacterClass') {}
32
26
  switch (ast.type) {
33
27
  case 'RegExp':
34
28
  // 正则表达式根节点,提取 body
@@ -344,7 +344,6 @@ var Dashboard = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
344
344
  var res = (0, _utils3.formatLayout)(currentLayout);
345
345
  (0, _utils3.copy)(JSON.stringify(res));
346
346
  _antd.message.success('已复制布局数据到剪切板');
347
- console.log('currentLayout', res);
348
347
  }, [currentLayout]);
349
348
 
350
349
  //默认存储
@@ -113,13 +113,10 @@ var WidgetSelector = function WidgetSelector(props) {
113
113
  finData[key].visible = false;
114
114
  }
115
115
  });
116
- console.log('finData', finData);
117
116
  //已添加次数
118
117
  currentLayout.forEach(function (item) {
119
118
  var _finData$key;
120
119
  var key = item.i.split('-')[0];
121
- console.log('item.i', item.i);
122
- console.log('finData[key]', finData[key]);
123
120
  finData[key].length = finData[key].length ? ((_finData$key = finData[key]) === null || _finData$key === void 0 ? void 0 : _finData$key.length) + 1 : 1;
124
121
  });
125
122
  return finData;
@@ -51,7 +51,7 @@ var DeleteConfirm = function DeleteConfirm(props) {
51
51
  reject();
52
52
  });
53
53
  }).catch(function () {
54
- return console.log('Oops errors!');
54
+ return void 0;
55
55
  });
56
56
  },
57
57
  onCancel: function onCancel() {}
@@ -63,9 +63,7 @@ var FormDesigner = function FormDesigner(props) {
63
63
  var getComponents = function getComponents() {
64
64
  var components = {};
65
65
  businessComponents.map(function (x) {
66
- if (!x.Behavior) {
67
- console.log(x);
68
- }
66
+ if (!x.Behavior) {}
69
67
  components[x.Behavior[0].name] = x;
70
68
  });
71
69
  return components;
@@ -12,7 +12,6 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
12
12
  // import MonacoEditor from 'react-monaco-editor';
13
13
 
14
14
  var SchemaEditorWidget = exports.SchemaEditorWidget = function SchemaEditorWidget(props) {
15
- console.log(JSON.stringify((0, _designableFormilyTransformer.transformToSchema)(props.tree), null, 2));
16
15
  return /*#__PURE__*/_react.default.createElement(_designableReactSettingsForm.MonacoInput, _extends({}, props, {
17
16
  value: JSON.stringify((0, _designableFormilyTransformer.transformToSchema)(props.tree), null, 2),
18
17
  onChange: function onChange(value) {
@@ -208,9 +208,6 @@ var PerformanceDevTools = exports.PerformanceDevTools = function PerformanceDevT
208
208
  }
209
209
  var handleShowReport = function handleShowReport() {
210
210
  var report = onGetReport();
211
- console.group("\uD83D\uDE80 Performance Report: ".concat(componentName));
212
- console.table(report);
213
- console.groupEnd();
214
211
  setShowDetails(!showDetails);
215
212
  };
216
213
  var getPerformanceColor = function getPerformanceColor(value, thresholds) {
@@ -210,32 +210,30 @@ var RequestManager = exports.RequestManager = /*#__PURE__*/function () {
210
210
  case 0:
211
211
  key = this.generateCacheKey(params); // 1. 检查缓存
212
212
  if (!this.options.enableCache) {
213
- _context3.next = 6;
213
+ _context3.next = 5;
214
214
  break;
215
215
  }
216
216
  cachedData = this.getFromCache(key);
217
217
  if (!(cachedData !== null)) {
218
- _context3.next = 6;
218
+ _context3.next = 5;
219
219
  break;
220
220
  }
221
- console.debug('[RequestManager] Cache hit:', key);
222
221
  return _context3.abrupt("return", cachedData);
223
- case 6:
222
+ case 5:
224
223
  if (!this.options.enableDedup) {
225
- _context3.next = 11;
224
+ _context3.next = 9;
226
225
  break;
227
226
  }
228
227
  pending = this.pendingRequests.get(key);
229
228
  if (!pending) {
230
- _context3.next = 11;
229
+ _context3.next = 9;
231
230
  break;
232
231
  }
233
- console.debug('[RequestManager] Dedup request:', key);
234
232
  return _context3.abrupt("return", pending.promise);
235
- case 11:
236
- _context3.next = 13;
233
+ case 9:
234
+ _context3.next = 11;
237
235
  return this.waitForSlot();
238
- case 13:
236
+ case 11:
239
237
  // 4. 创建新请求
240
238
  abortController = new AbortController();
241
239
  this.activeRequests++;
@@ -289,7 +287,7 @@ var RequestManager = exports.RequestManager = /*#__PURE__*/function () {
289
287
  key: key
290
288
  });
291
289
  return _context3.abrupt("return", promise);
292
- case 18:
290
+ case 16:
293
291
  case "end":
294
292
  return _context3.stop();
295
293
  }
@@ -74,7 +74,6 @@ var PortalManager = /*#__PURE__*/function () {
74
74
  lastAccessedAt: now,
75
75
  isOpen: true
76
76
  });
77
- console.debug("[PortalManager] Registered portal: ".concat(id));
78
77
  }
79
78
 
80
79
  /**
@@ -101,7 +100,6 @@ var PortalManager = /*#__PURE__*/function () {
101
100
  if (portal) {
102
101
  portal.isOpen = false;
103
102
  portal.lastAccessedAt = Date.now();
104
- console.debug("[PortalManager] Marked portal as closed: ".concat(id));
105
103
  }
106
104
  }
107
105
 
@@ -112,9 +110,7 @@ var PortalManager = /*#__PURE__*/function () {
112
110
  }, {
113
111
  key: "unregister",
114
112
  value: function unregister(id) {
115
- if (this.portals.delete(id)) {
116
- console.debug("[PortalManager] Unregistered portal: ".concat(id));
117
- }
113
+ if (this.portals.delete(id)) {}
118
114
  }
119
115
 
120
116
  /**
@@ -176,12 +172,9 @@ var PortalManager = /*#__PURE__*/function () {
176
172
  if (shouldClean) {
177
173
  _this.portals.delete(id);
178
174
  cleanedCount++;
179
- console.debug("[PortalManager] Cleaned up portal: ".concat(id));
180
175
  }
181
176
  });
182
- if (cleanedCount > 0) {
183
- console.info("[PortalManager] Cleanup completed: removed ".concat(cleanedCount, " portals"));
184
- }
177
+ if (cleanedCount > 0) {}
185
178
  }
186
179
 
187
180
  /**
@@ -216,7 +209,6 @@ var PortalManager = /*#__PURE__*/function () {
216
209
  key: "clear",
217
210
  value: function clear() {
218
211
  this.portals.clear();
219
- console.info('[PortalManager] All portals cleared');
220
212
  }
221
213
 
222
214
  /**
@@ -86,7 +86,6 @@ var withStandardForm = exports.withStandardForm = function withStandardForm(conf
86
86
  // 使用外部传入的schema配置
87
87
  finalFormConfig = externalSchema.form;
88
88
  finalFormSchema = externalSchema.schema;
89
- console.log("\u2705 withStandardForm: ".concat(formId, " \u4F7F\u7528\u5916\u90E8Schema\u914D\u7F6E"));
90
89
  } else {
91
90
  // 构建表单 Schema(向后兼容)
92
91
  finalFormSchema = {
@@ -138,7 +137,6 @@ var withStandardForm = exports.withStandardForm = function withStandardForm(conf
138
137
  maxColumns: 2
139
138
  }
140
139
  };
141
- console.log("\u2705 withStandardForm: ".concat(formId, " \u4F7F\u7528\u5185\u90E8\u6784\u5EFASchema"));
142
140
  }
143
141
 
144
142
  // 创建自定义的 useSchemaField hook
@@ -24,7 +24,7 @@ var ToolBar = function ToolBar(props) {
24
24
  style: style,
25
25
  offsetBottom: 2,
26
26
  onChange: function onChange(affixed) {
27
- return console.log(affixed);
27
+ return void 0;
28
28
  },
29
29
  target: getTargetContainer
30
30
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -26,7 +26,7 @@ var ConfirmPro = function ConfirmPro(props) {
26
26
  resolve("");
27
27
  }
28
28
  }).catch(function () {
29
- return console.log('Oops errors!');
29
+ return void 0;
30
30
  });
31
31
  },
32
32
  onCancel: function onCancel() {}
@@ -314,13 +314,6 @@ function AgGridPlus(props) {
314
314
  * 4. 使用 Promise 链和 requestAnimationFrame 解决竞态条件
315
315
  */
316
316
  useEffect(function () {
317
- console.log('[AgGridPlus] 方案应用 useEffect 触发:', {
318
- hasGridKey: !!gridKey,
319
- hasApiRef: !!apiRef.current,
320
- hasDerivedColumnState: !!derivedColumnState,
321
- derivedColumnStateLength: derivedColumnState === null || derivedColumnState === void 0 ? void 0 : derivedColumnState.length,
322
- currentSchemeId: currentColumnScheme === null || currentColumnScheme === void 0 ? void 0 : currentColumnScheme.id
323
- });
324
317
  if (!gridKey || !apiRef.current) return;
325
318
 
326
319
  // 使用 Promise 链确保顺序执行,避免竞态条件
@@ -330,17 +323,11 @@ function AgGridPlus(props) {
330
323
 
331
324
  // 1. 应用派生的列状态(使用 applyColumnState API)
332
325
  if (derivedColumnState && derivedColumnState.length > 0) {
333
- console.log('[AgGridPlus] 正在应用 derivedColumnState:', {
334
- length: derivedColumnState.length,
335
- firstState: derivedColumnState[0]
336
- });
337
-
338
326
  // 使用 applyColumnState 而不是 setGridOption("columnDefs")
339
327
  apiRef.current.applyColumnState({
340
328
  state: derivedColumnState,
341
329
  applyOrder: true // 应用列顺序
342
330
  });
343
- console.log('[AgGridPlus] derivedColumnState 已应用');
344
331
  }
345
332
 
346
333
  // 2. 应用派生的列样式
@@ -366,9 +353,7 @@ function AgGridPlus(props) {
366
353
 
367
354
  // 3. 应用过滤器(在列状态稳定后执行)
368
355
  if (currentColumnScheme !== null && currentColumnScheme !== void 0 && currentColumnScheme.filterModel) {
369
- console.log('[AgGridPlus] 正在应用 filterModel');
370
356
  apiRef.current.setFilterModel(currentColumnScheme.filterModel);
371
- console.log('[AgGridPlus] filterModel 已应用');
372
357
  }
373
358
  }).catch(function (error) {
374
359
  if (!cancelled) {
@@ -381,7 +366,55 @@ function AgGridPlus(props) {
381
366
  return function () {
382
367
  cancelled = true;
383
368
  };
384
- }, [gridKey, currentColumnScheme === null || currentColumnScheme === void 0 ? void 0 : currentColumnScheme.id, derivedColumnState]);
369
+ }, [gridKey, currentColumnScheme === null || currentColumnScheme === void 0 ? void 0 : currentColumnScheme.id, derivedColumnState, ready // 添加 ready 依赖,确保 Grid 初始化完成后再应用方案
370
+ ]);
371
+
372
+ /**
373
+ * 【新增】监听当前方案 ID 变化,当方案被删除时重置列状态
374
+ *
375
+ * 场景:
376
+ * - 用户删除当前正在使用的方案
377
+ * - currentColumnScheme?.id 从有值变为 null
378
+ *
379
+ * 行为:
380
+ * - 重置列状态为初始状态(默认顺序、宽度等)
381
+ * - 清除所有过滤器
382
+ * - 清除列样式配置
383
+ *
384
+ * 优势:
385
+ * - 符合单向数据流架构
386
+ * - 适用于所有方案切换场景(删除/取消选择)
387
+ * - 用户体验好,自动恢复到初始状态
388
+ */
389
+ var prevSchemeIdRef = useRef(currentColumnScheme === null || currentColumnScheme === void 0 ? void 0 : currentColumnScheme.id);
390
+ useEffect(function () {
391
+ if (!gridKey || !apiRef.current || !ready) return;
392
+ var prevSchemeId = prevSchemeIdRef.current;
393
+ var currentSchemeId = currentColumnScheme === null || currentColumnScheme === void 0 ? void 0 : currentColumnScheme.id;
394
+ // 检测方案被删除:从有值变为 null/undefined
395
+ if (prevSchemeId && !currentSchemeId) {
396
+ Promise.resolve().then(function () {
397
+ if (!apiRef.current) return;
398
+
399
+ // 1. 重置列状态为初始状态
400
+
401
+ apiRef.current.resetColumnState();
402
+
403
+ // 2. 清除所有过滤器
404
+
405
+ apiRef.current.setFilterModel(null);
406
+
407
+ // 3. 清除列样式配置
408
+ setColumnCellClass({});
409
+ }).catch(function (error) {
410
+ console.error('[AgGridPlus] 重置列状态失败:', error);
411
+ logger.error('[AgGridPlus] 重置列状态失败', error);
412
+ });
413
+ }
414
+
415
+ // 更新引用
416
+ prevSchemeIdRef.current = currentSchemeId;
417
+ }, [gridKey, currentColumnScheme === null || currentColumnScheme === void 0 ? void 0 : currentColumnScheme.id, ready]);
385
418
  useEffect(function () {
386
419
  setRowData(dataSource || propRowData || []);
387
420
  }, [dataSource, propRowData]);
@@ -605,12 +638,6 @@ function AgGridPlus(props) {
605
638
  }, [propsRowSelection, enableClickSelection]);
606
639
  var onGridReady = useCallback(function (params) {
607
640
  var _apiRef$current;
608
- console.log('[AgGridPlus] onGridReady 被调用:', {
609
- hasCurrentScheme: !!currentColumnScheme,
610
- currentSchemeId: currentColumnScheme === null || currentColumnScheme === void 0 ? void 0 : currentColumnScheme.id,
611
- currentSchemeName: currentColumnScheme === null || currentColumnScheme === void 0 ? void 0 : currentColumnScheme.name,
612
- hasColumnConfig: !!(currentColumnScheme !== null && currentColumnScheme !== void 0 && currentColumnScheme.columnConfig)
613
- });
614
641
  apiRef.current = params.api;
615
642
  onReady && onReady(params);
616
643
  ///@ts-ignore
@@ -69,28 +69,15 @@ export function useSchemeSource(gridKey, schemeData) {
69
69
  */
70
70
  export function useDerivedGridState(currentScheme, allColDefs) {
71
71
  return useMemo(function () {
72
- var _currentScheme$column;
73
- console.log('[useDerivedGridState] 输入参数:', {
74
- hasScheme: !!currentScheme,
75
- schemeId: currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.id,
76
- configLength: currentScheme === null || currentScheme === void 0 || (_currentScheme$column = currentScheme.columnConfig) === null || _currentScheme$column === void 0 ? void 0 : _currentScheme$column.length,
77
- allColDefsLength: allColDefs === null || allColDefs === void 0 ? void 0 : allColDefs.length
78
- });
79
72
  if (!(currentScheme !== null && currentScheme !== void 0 && currentScheme.columnConfig) || !allColDefs || allColDefs.length === 0) {
80
- console.log('[useDerivedGridState] 返回 null (缺少必要数据)');
81
73
  return null;
82
74
  }
83
75
  try {
84
- var _result$;
85
76
  var _require = require("../setting/columnGroupUtils"),
86
77
  flatConfigToGridState = _require.flatConfigToGridState;
87
78
 
88
79
  // 转换并缓存结果
89
80
  var result = flatConfigToGridState(currentScheme.columnConfig, allColDefs);
90
- console.log('[useDerivedGridState] 转换成功:', {
91
- resultLength: result === null || result === void 0 ? void 0 : result.length,
92
- firstColumn: result === null || result === void 0 || (_result$ = result[0]) === null || _result$ === void 0 ? void 0 : _result$.field
93
- });
94
81
  return result;
95
82
  } catch (error) {
96
83
  console.error('[useDerivedGridState] 转换失败:', error);
@@ -116,7 +103,8 @@ export function useDerivedColumnState(currentScheme) {
116
103
  flatConfigToColumnState = _require2.flatConfigToColumnState;
117
104
 
118
105
  // 转换列状态
119
- return flatConfigToColumnState(currentScheme.columnConfig);
106
+ var result = flatConfigToColumnState(currentScheme.columnConfig);
107
+ return result;
120
108
  } catch (error) {
121
109
  console.error('[useDerivedColumnState] 转换失败:', error);
122
110
  return null;