@nokecy/qc-ui 1.0.85 → 1.0.87

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 (202) hide show
  1. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +64 -41
  2. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +20 -11
  3. package/dist/esm/ag-grid-plus/ag-gridPlus.js +64 -41
  4. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +20 -11
  5. package/dist/umd/qc-ui.min.js +1 -1
  6. package/package.json +1 -1
  7. package/dist/esm/ConfirmPro/index.d.ts.map +0 -1
  8. package/dist/esm/RuleBuilder/LogicSelector.d.ts.map +0 -1
  9. package/dist/esm/RuleBuilder/RuleBuilderContainer.d.ts.map +0 -1
  10. package/dist/esm/RuleBuilder/RuleCard.d.ts.map +0 -1
  11. package/dist/esm/RuleBuilder/RuleGroupEditor.d.ts.map +0 -1
  12. package/dist/esm/RuleBuilder/constants/operators.d.ts.map +0 -1
  13. package/dist/esm/RuleBuilder/context/RuleBuilderContext.d.ts.map +0 -1
  14. package/dist/esm/RuleBuilder/index.d.ts.map +0 -1
  15. package/dist/esm/RuleBuilder/inputs/BetweenValueInput.d.ts.map +0 -1
  16. package/dist/esm/RuleBuilder/inputs/MultiValueInput.d.ts.map +0 -1
  17. package/dist/esm/RuleBuilder/inputs/SingleValueInput.d.ts.map +0 -1
  18. package/dist/esm/RuleBuilder/inputs/ValueInput.d.ts.map +0 -1
  19. package/dist/esm/RuleBuilder/selectors/FieldSelector.d.ts.map +0 -1
  20. package/dist/esm/RuleBuilder/selectors/OperatorSelector.d.ts.map +0 -1
  21. package/dist/esm/RuleBuilder/types/index.d.ts.map +0 -1
  22. package/dist/esm/RuleBuilder/utils/pathHelpers.d.ts.map +0 -1
  23. package/dist/esm/RuleBuilder/utils/ruleHelpers.d.ts.map +0 -1
  24. package/dist/esm/RuleBuilder/utils/validation.d.ts.map +0 -1
  25. package/dist/esm/ag-grid-plus/_utils/boolSelect.d.ts.map +0 -1
  26. package/dist/esm/ag-grid-plus/_utils/customGroupCellRenderer.d.ts.map +0 -1
  27. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts.map +0 -1
  28. package/dist/esm/ag-grid-plus/_utils/processFormColumnState.d.ts.map +0 -1
  29. package/dist/esm/ag-grid-plus/ag-gridPlus.d.ts.map +0 -1
  30. package/dist/esm/ag-grid-plus/context/gridContext.d.ts.map +0 -1
  31. package/dist/esm/ag-grid-plus/errors/ErrorBoundary.d.ts.map +0 -1
  32. package/dist/esm/ag-grid-plus/errors/index.d.ts.map +0 -1
  33. package/dist/esm/ag-grid-plus/errors/types.d.ts.map +0 -1
  34. package/dist/esm/ag-grid-plus/hooks/index.d.ts.map +0 -1
  35. package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.d.ts.map +0 -1
  36. package/dist/esm/ag-grid-plus/hooks/useAgGridData.d.ts.map +0 -1
  37. package/dist/esm/ag-grid-plus/hooks/useGridPlusColumnState.d.ts.map +0 -1
  38. package/dist/esm/ag-grid-plus/hooks/useGridState.d.ts.map +0 -1
  39. package/dist/esm/ag-grid-plus/index.d.ts.map +0 -1
  40. package/dist/esm/ag-grid-plus/interface.d.ts.map +0 -1
  41. package/dist/esm/ag-grid-plus/locale.d.ts.map +0 -1
  42. package/dist/esm/ag-grid-plus/queryForm/index.d.ts.map +0 -1
  43. package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts.map +0 -1
  44. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.d.ts.map +0 -1
  45. package/dist/esm/ag-grid-plus/querySchemes/components/index.d.ts.map +0 -1
  46. package/dist/esm/ag-grid-plus/querySchemes/constants.d.ts.map +0 -1
  47. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.d.ts.map +0 -1
  48. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.d.ts.map +0 -1
  49. package/dist/esm/ag-grid-plus/querySchemes/index.d.ts.map +0 -1
  50. package/dist/esm/ag-grid-plus/querySchemes/storage/localStorageAdapter.d.ts.map +0 -1
  51. package/dist/esm/ag-grid-plus/querySchemes/types.d.ts.map +0 -1
  52. package/dist/esm/ag-grid-plus/querySchemes/utils/validator.d.ts.map +0 -1
  53. package/dist/esm/ag-grid-plus/schemes/components/SchemeManager.d.ts.map +0 -1
  54. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.d.ts.map +0 -1
  55. package/dist/esm/ag-grid-plus/schemes/components/index.d.ts.map +0 -1
  56. package/dist/esm/ag-grid-plus/schemes/constants.d.ts.map +0 -1
  57. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.d.ts.map +0 -1
  58. package/dist/esm/ag-grid-plus/schemes/index.d.ts.map +0 -1
  59. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts.map +0 -1
  60. package/dist/esm/ag-grid-plus/schemes/types.d.ts.map +0 -1
  61. package/dist/esm/ag-grid-plus/schemes/utils/validator.d.ts.map +0 -1
  62. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.d.ts.map +0 -1
  63. package/dist/esm/ag-grid-plus/setting/ColumnSetting.d.ts.map +0 -1
  64. package/dist/esm/ag-grid-plus/setting/MoveNodeModal.d.ts.map +0 -1
  65. package/dist/esm/ag-grid-plus/setting/NameColumnRenderer.d.ts.map +0 -1
  66. package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts.map +0 -1
  67. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts.map +0 -1
  68. package/dist/esm/ag-grid-plus/setting/index.d.ts.map +0 -1
  69. package/dist/esm/ag-grid-plus/settingItem/index.d.ts.map +0 -1
  70. package/dist/esm/ag-grid-plus/shared/hooks/useSchemeManager.d.ts.map +0 -1
  71. package/dist/esm/ag-grid-plus/storage/MemoryStorageAdapter.d.ts.map +0 -1
  72. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.d.ts.map +0 -1
  73. package/dist/esm/ag-grid-plus/storage/globalSyncManager.d.ts.map +0 -1
  74. package/dist/esm/ag-grid-plus/storage/index.d.ts.map +0 -1
  75. package/dist/esm/ag-grid-plus/storage/types.d.ts.map +0 -1
  76. package/dist/esm/ag-grid-plus/toolBar/index.d.ts.map +0 -1
  77. package/dist/esm/ag-grid-plus/toolBar/style.d.ts.map +0 -1
  78. package/dist/esm/ag-grid-plus/types.d.ts.map +0 -1
  79. package/dist/esm/ag-grid-plus/utils/columnProcessors.d.ts.map +0 -1
  80. package/dist/esm/ag-grid-plus/utils/constants.d.ts.map +0 -1
  81. package/dist/esm/ag-grid-plus/utils/logger.d.ts.map +0 -1
  82. package/dist/esm/ag-grid-plus/utils/sanitize.d.ts.map +0 -1
  83. package/dist/esm/ag-grid-plus/utils.d.ts.map +0 -1
  84. package/dist/esm/array-table/arrayAddBtn.d.ts.map +0 -1
  85. package/dist/esm/array-table/arrayBase.d.ts.map +0 -1
  86. package/dist/esm/array-table/columnHelper.d.ts.map +0 -1
  87. package/dist/esm/array-table/hooks.d.ts.map +0 -1
  88. package/dist/esm/array-table/index.d.ts.map +0 -1
  89. package/dist/esm/array-table/interface.d.ts.map +0 -1
  90. package/dist/esm/array-table/preview.d.ts.map +0 -1
  91. package/dist/esm/array-table/utils.d.ts.map +0 -1
  92. package/dist/esm/array-table-index/index.d.ts.map +0 -1
  93. package/dist/esm/card/index.d.ts.map +0 -1
  94. package/dist/esm/components/RegexEditor/core/RegexEditor.d.ts.map +0 -1
  95. package/dist/esm/components/RegexEditor/core/extensions/errorMarker.d.ts.map +0 -1
  96. package/dist/esm/components/RegexEditor/core/types.d.ts.map +0 -1
  97. package/dist/esm/components/RegexEditor/hooks/index.d.ts.map +0 -1
  98. package/dist/esm/components/RegexEditor/hooks/useRegexTester.d.ts.map +0 -1
  99. package/dist/esm/components/RegexEditor/hooks/useRegexValidation.d.ts.map +0 -1
  100. package/dist/esm/components/RegexEditor/hooks/useTemplateManager.d.ts.map +0 -1
  101. package/dist/esm/components/RegexEditor/index.d.ts.map +0 -1
  102. package/dist/esm/components/RegexEditor/templates/TemplateSelector.d.ts.map +0 -1
  103. package/dist/esm/components/RegexEditor/templates/builtinTemplates.d.ts.map +0 -1
  104. package/dist/esm/components/RegexEditor/templates/index.d.ts.map +0 -1
  105. package/dist/esm/components/RegexEditor/templates/storage.d.ts.map +0 -1
  106. package/dist/esm/components/RegexEditor/templates/templateManager.d.ts.map +0 -1
  107. package/dist/esm/components/RegexEditor/templates/types.d.ts.map +0 -1
  108. package/dist/esm/components/RegexEditor/testing/types.d.ts.map +0 -1
  109. package/dist/esm/components/RegexEditor/validation/complexity.d.ts.map +0 -1
  110. package/dist/esm/components/RegexEditor/validation/parser.d.ts.map +0 -1
  111. package/dist/esm/components/RegexEditor/validation/types.d.ts.map +0 -1
  112. package/dist/esm/components/RegexEditor/validation/validator.d.ts.map +0 -1
  113. package/dist/esm/components/RegexEditor/visualizer/FlagsSelector.d.ts.map +0 -1
  114. package/dist/esm/components/RegexEditor/visualizer/MatchItem.d.ts.map +0 -1
  115. package/dist/esm/components/RegexEditor/visualizer/RegexRailroadDiagram.d.ts.map +0 -1
  116. package/dist/esm/components/RegexEditor/visualizer/RegexTester.d.ts.map +0 -1
  117. package/dist/esm/components/RegexEditor/visualizer/astToRailroad.d.ts.map +0 -1
  118. package/dist/esm/components/RegexEditor/visualizer/index.d.ts.map +0 -1
  119. package/dist/esm/components/RegexEditor/visualizer/types.d.ts.map +0 -1
  120. package/dist/esm/components/RegexEditor/visualizer/utils.d.ts.map +0 -1
  121. package/dist/esm/dashboard/dashboard/components/index.d.ts.map +0 -1
  122. package/dist/esm/dashboard/dashboard/components/modal/index.d.ts.map +0 -1
  123. package/dist/esm/dashboard/dashboard/components/toolbar/index.d.ts.map +0 -1
  124. package/dist/esm/dashboard/dashboard/components/toolbar/style/index.d.ts.map +0 -1
  125. package/dist/esm/dashboard/dashboard/index.d.ts.map +0 -1
  126. package/dist/esm/dashboard/dashboard/service.d.ts.map +0 -1
  127. package/dist/esm/dashboard/dashboard/utils.d.ts.map +0 -1
  128. package/dist/esm/dashboard/index.d.ts.map +0 -1
  129. package/dist/esm/dashboard/utils.d.ts.map +0 -1
  130. package/dist/esm/dashboard/widget/index.d.ts.map +0 -1
  131. package/dist/esm/dashboard/widget/selector/index.d.ts.map +0 -1
  132. package/dist/esm/dashboard/widget/utils.d.ts.map +0 -1
  133. package/dist/esm/deleteConfirm/index.d.ts.map +0 -1
  134. package/dist/esm/dialogSelect/index.d.ts.map +0 -1
  135. package/dist/esm/draggableModal/index.d.ts.map +0 -1
  136. package/dist/esm/editable/index.d.ts.map +0 -1
  137. package/dist/esm/editable/style.d.ts.map +0 -1
  138. package/dist/esm/extensible-grid/index.d.ts.map +0 -1
  139. package/dist/esm/extensible-grid/interface.d.ts.map +0 -1
  140. package/dist/esm/formDesigner/FormDesigner.d.ts.map +0 -1
  141. package/dist/esm/formDesigner/ProCard/index.d.ts.map +0 -1
  142. package/dist/esm/formDesigner/arrayTable/arrayTableSchema.d.ts.map +0 -1
  143. package/dist/esm/formDesigner/arrayTable/index.d.ts.map +0 -1
  144. package/dist/esm/formDesigner/arrayTable/preview.d.ts.map +0 -1
  145. package/dist/esm/formDesigner/index.d.ts.map +0 -1
  146. package/dist/esm/formDesigner/preWidgets/arrayTableIndex/index.d.ts.map +0 -1
  147. package/dist/esm/formDesigner/preWidgets/arrayTableIndex/preview.d.ts.map +0 -1
  148. package/dist/esm/formDesigner/preWidgets/card/index.d.ts.map +0 -1
  149. package/dist/esm/formDesigner/preWidgets/card/preview.d.ts.map +0 -1
  150. package/dist/esm/formDesigner/preWidgets/index.d.ts.map +0 -1
  151. package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.d.ts.map +0 -1
  152. package/dist/esm/formDesigner/preWidgets/preDefineProperty1/preview.d.ts.map +0 -1
  153. package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.d.ts.map +0 -1
  154. package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.d.ts.map +0 -1
  155. package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.d.ts.map +0 -1
  156. package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.d.ts.map +0 -1
  157. package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.d.ts.map +0 -1
  158. package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.d.ts.map +0 -1
  159. package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.d.ts.map +0 -1
  160. package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.d.ts.map +0 -1
  161. package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.d.ts.map +0 -1
  162. package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.d.ts.map +0 -1
  163. package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.d.ts.map +0 -1
  164. package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.d.ts.map +0 -1
  165. package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.d.ts.map +0 -1
  166. package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.d.ts.map +0 -1
  167. package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.d.ts.map +0 -1
  168. package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.d.ts.map +0 -1
  169. package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.d.ts.map +0 -1
  170. package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.d.ts.map +0 -1
  171. package/dist/esm/formDesigner/preWidgets/utils.d.ts.map +0 -1
  172. package/dist/esm/formDesigner/widgets/ActionsWidget.d.ts.map +0 -1
  173. package/dist/esm/formDesigner/widgets/LogoWidget.d.ts.map +0 -1
  174. package/dist/esm/formDesigner/widgets/PreviewWidget.d.ts.map +0 -1
  175. package/dist/esm/formDesigner/widgets/SchemaEditorWidget.d.ts.map +0 -1
  176. package/dist/esm/formDesigner/widgets/index.d.ts.map +0 -1
  177. package/dist/esm/formPro/context/formProContext.d.ts.map +0 -1
  178. package/dist/esm/formPro/formLayoutPro.d.ts.map +0 -1
  179. package/dist/esm/formPro/index.d.ts.map +0 -1
  180. package/dist/esm/fullScreenAlert/index.d.ts.map +0 -1
  181. package/dist/esm/generatedListPage/ConfigurableToolbar.d.ts.map +0 -1
  182. package/dist/esm/generatedListPage/GeneratedListPage.d.ts.map +0 -1
  183. package/dist/esm/generatedListPage/OptionsColumn.d.ts.map +0 -1
  184. package/dist/esm/generatedListPage/PerformanceMonitor.d.ts.map +0 -1
  185. package/dist/esm/generatedListPage/RequestManager.d.ts.map +0 -1
  186. package/dist/esm/generatedListPage/_utils/AccessWrapper.d.ts.map +0 -1
  187. package/dist/esm/generatedListPage/_utils/defaultHandlers.d.ts.map +0 -1
  188. package/dist/esm/generatedListPage/index.d.ts.map +0 -1
  189. package/dist/esm/generatedListPage/types.d.ts.map +0 -1
  190. package/dist/esm/generatedListPage/usePermissionCheck.d.ts.map +0 -1
  191. package/dist/esm/generatedListPage/useRequestManager.d.ts.map +0 -1
  192. package/dist/esm/importModal/index.d.ts.map +0 -1
  193. package/dist/esm/index.d.ts.map +0 -1
  194. package/dist/esm/queryBuilder/index.d.ts.map +0 -1
  195. package/dist/esm/standardFormDialog/FormValidation.d.ts.map +0 -1
  196. package/dist/esm/standardFormDialog/PortalManager.d.ts.map +0 -1
  197. package/dist/esm/standardFormDialog/StandardFormDialog.d.ts.map +0 -1
  198. package/dist/esm/standardFormDialog/index.d.ts.map +0 -1
  199. package/dist/esm/standardFormDialog/types.d.ts.map +0 -1
  200. package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts.map +0 -1
  201. package/dist/esm/standardFormDialog/withStandardForm.d.ts.map +0 -1
  202. package/dist/esm/toolBar/index.d.ts.map +0 -1
@@ -241,47 +241,48 @@ function AgGridPlus(props) {
241
241
  };
242
242
  }, []);
243
243
 
244
+ // 【修复】缓存第一次数据用于类型推断,避免 rowData 更新时重新计算 colDefs
245
+ // 原因: getTableColumns 只需要第一行数据来推断列的数据类型(数字列自动求和)
246
+ // 类型推断应该只在初始化时进行一次,后续数据更新不应改变列定义
247
+ var firstRowDataRef = (0, _react.useRef)(null);
248
+ (0, _react.useEffect)(function () {
249
+ // 只在首次有数据时保存
250
+ if (!firstRowDataRef.current && rowData.length > 0) {
251
+ firstRowDataRef.current = rowData[0];
252
+ console.log('[AgGridPlus] 保存首行数据用于类型推断:', firstRowDataRef.current);
253
+ }
254
+ }, [rowData]);
255
+
244
256
  // 测试列数据
245
257
  // const restData = [{"id":"47","field":"code","headerName":"编码","width":110,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"code","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"48","field":"name","headerName":"名称","width":110,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"name","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"49","field":"abbName","headerName":"简称","width":110,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"abbName","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"50","field":"address","headerName":"地址","width":662,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"address","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":1},{"id":"51","field":"creator","headerName":"创建人","width":90,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"creator","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"52","field":"creationTime","headerName":"创建时间","width":160,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"creationTime","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"53","field":"lastModifier","headerName":"最后修改人","width":90,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"lastModifier","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"54","field":"lastModificationTime","headerName":"最后修改时间","width":160,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"lastModificationTime","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"55","field":"","headerName":"操作","width":160,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"0","pinned":"right","sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null}]
246
258
 
247
259
  // 加载列方案
260
+ // 仅用于设置列样式,不改变列结构
261
+ // 列结构(包括分组)由 useEffect #2 通过 setGridOption("columnDefs") 处理
248
262
  (0, _react.useEffect)(function () {
249
263
  var _columnSchemeManager$;
250
264
  if (!gridKey || !apiRef.current) return;
251
265
 
252
- // 优先使用方案中的 columnConfig(用户在列配置界面调整后的数据)
266
+ // 只有当有 columnConfig 时才设置列样式
253
267
  if (columnSchemeManager !== null && columnSchemeManager !== void 0 && (_columnSchemeManager$ = columnSchemeManager.currentScheme) !== null && _columnSchemeManager$ !== void 0 && _columnSchemeManager$.columnConfig) {
254
268
  var _require = require("./setting/columnGroupUtils"),
255
269
  flatConfigToColumnState = _require.flatConfigToColumnState;
256
270
  var _columnState = flatConfigToColumnState(columnSchemeManager.currentScheme.columnConfig);
271
+ console.log('[AgGridPlus] useEffect #1: 设置列样式', {
272
+ gridKey: gridKey,
273
+ schemeId: columnSchemeManager.currentScheme.id,
274
+ schemeName: columnSchemeManager.currentScheme.name,
275
+ columnCount: _columnState.length
276
+ });
257
277
  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
- };
278
+
279
+ // 【重要】不再调用 applyColumnState
280
+ // 原因:
281
+ // 1. 如果有分组,applyColumnState 会破坏分组结构
282
+ // 2. 列顺序、宽度、隐藏等属性已由 useEffect #2 的 setGridOption("columnDefs") 应用
283
+ // 3. 这里只负责设置列样式(cellClass)
283
284
  }
284
- }, [gridKey, columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$2 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$2 === void 0 ? void 0 : _columnSchemeManager$2.columnConfig, gridPlusColumnState]);
285
+ }, [gridKey, columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$2 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$2 === void 0 ? void 0 : _columnSchemeManager$2.columnConfig]);
285
286
 
286
287
  // 同步 apiRef 和 currentScheme,确保方案在两者都准备好时应用
287
288
  (0, _react.useEffect)(function () {
@@ -521,11 +522,22 @@ function AgGridPlus(props) {
521
522
  };
522
523
 
523
524
  // 计算所有列定义(包括隐藏的列)
525
+ // 【修复】移除 rowData 依赖,使用缓存的首行数据进行类型推断
524
526
  var allColDefs = (0, _react.useMemo)(function () {
525
- var cols = getTableColumns(rowData);
527
+ var dataForTypeInference = firstRowDataRef.current || (rowData.length > 0 ? rowData[0] : {});
528
+ var cols = getTableColumns([dataForTypeInference]);
526
529
  allColDefsRef.current = cols; // 同步更新 ref
530
+
531
+ console.log('[AgGridPlus] allColDefs 重新计算:', {
532
+ childrenCount: _react.default.Children.count(children),
533
+ hasPropsColumnDefs: !!props.columnDefs,
534
+ extensibleColumnsCount: Object.keys(extensibleColumns || {}).length,
535
+ gridKey: gridKey,
536
+ colsCount: cols.length,
537
+ usingCachedData: !!firstRowDataRef.current
538
+ });
527
539
  return cols;
528
- }, [_react.default.Children.count(children), props.columnDefs, extensibleColumns, rowData, gridKey]);
540
+ }, [_react.default.Children.count(children), props.columnDefs, extensibleColumns, gridKey]);
529
541
 
530
542
  // 稳定化 gridParams 和 sortColumn 的引用
531
543
  var stableGridParams = (0, _react.useMemo)(function () {
@@ -580,7 +592,7 @@ function AgGridPlus(props) {
580
592
  };
581
593
  }, [propsRowSelection, enableClickSelection]);
582
594
  var onGridReady = (0, _react.useCallback)(function (params) {
583
- var _columnSchemeManager$3, _columnSchemeManager$4, _columnSchemeManager$5, _apiRef$current3;
595
+ var _columnSchemeManager$3, _columnSchemeManager$4, _columnSchemeManager$5, _apiRef$current;
584
596
  console.log('[AgGridPlus] onGridReady 被调用:', {
585
597
  hasColumnSchemeManager: !!columnSchemeManager,
586
598
  hasCurrentScheme: !!(columnSchemeManager !== null && columnSchemeManager !== void 0 && columnSchemeManager.currentScheme),
@@ -592,7 +604,7 @@ function AgGridPlus(props) {
592
604
  onReady && onReady(params);
593
605
  ///@ts-ignore
594
606
  dataSource && setRowData(dataSource);
595
- setColumnState((_apiRef$current3 = apiRef.current) === null || _apiRef$current3 === void 0 ? void 0 : _apiRef$current3.getColumnState());
607
+ setColumnState((_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 ? void 0 : _apiRef$current.getColumnState());
596
608
  sortChanged(params.api);
597
609
  setReady(true);
598
610
 
@@ -617,7 +629,7 @@ function AgGridPlus(props) {
617
629
  sorter: getSort(stableSortColumn)
618
630
  });
619
631
  requestRef.current(params, undefined, queryFilter).then(function (response) {
620
- var _apiRef$current4;
632
+ var _apiRef$current2;
621
633
  // 验证响应数据格式
622
634
  if (!response || _typeof(response) !== 'object') {
623
635
  throw new _errors.GridPlusError('服务器返回数据格式错误', _errors.ErrorType.DATA_FORMAT_ERROR, _errors.ErrorSeverity.HIGH, {
@@ -633,7 +645,7 @@ function AgGridPlus(props) {
633
645
  var rowCount = response.total;
634
646
  setRowData(rowData);
635
647
  // 刷新所有单元格
636
- (_apiRef$current4 = apiRef.current) === null || _apiRef$current4 === void 0 || _apiRef$current4.refreshCells({
648
+ (_apiRef$current2 = apiRef.current) === null || _apiRef$current2 === void 0 || _apiRef$current2.refreshCells({
637
649
  force: true
638
650
  });
639
651
  setPagination(function (prev) {
@@ -907,8 +919,8 @@ function AgGridPlus(props) {
907
919
  });
908
920
  }
909
921
  if (!allColDefs || displayedData.length === 0) {
910
- var _apiRef$current5;
911
- (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 || _apiRef$current5.setGridOption('pinnedBottomRowData', undefined);
922
+ var _apiRef$current3;
923
+ (_apiRef$current3 = apiRef.current) === null || _apiRef$current3 === void 0 || _apiRef$current3.setGridOption('pinnedBottomRowData', undefined);
912
924
  return;
913
925
  }
914
926
  var calcColFields = allColDefs.filter(function (col) {
@@ -922,16 +934,19 @@ function AgGridPlus(props) {
922
934
  };
923
935
  });
924
936
  if (calcColFields.length > 0) {
925
- var _apiRef$current6;
937
+ var _apiRef$current4;
926
938
  var calculatedValues = calculatefun(calcColFields, displayedData);
927
- (_apiRef$current6 = apiRef.current) === null || _apiRef$current6 === void 0 || _apiRef$current6.setGridOption('pinnedBottomRowData', calculatedValues);
939
+ (_apiRef$current4 = apiRef.current) === null || _apiRef$current4 === void 0 || _apiRef$current4.setGridOption('pinnedBottomRowData', calculatedValues);
928
940
  }
929
941
  }, [allColDefs, calculatefun]);
930
942
  var onFilterChanged = function onFilterChanged(event) {
931
943
  calculateSum();
932
944
  };
933
945
  var colDefs = (0, _react.useMemo)(function () {
934
- var columnDefs = getTableColumns(rowData);
946
+ // 使用缓存的首行数据进行类型推断,而不是当前的 rowData
947
+ // 这样 rowData 更新时不会触发 colDefs 重新计算
948
+ var dataForTypeInference = firstRowDataRef.current || (rowData.length > 0 ? rowData[0] : {});
949
+ var columnDefs = getTableColumns([dataForTypeInference]);
935
950
 
936
951
  // 递归应用 columnCellClass 配置
937
952
  var applyCellConfig = function applyCellConfig(col) {
@@ -963,8 +978,16 @@ function AgGridPlus(props) {
963
978
  return !x.hideInTable;
964
979
  });
965
980
  var processedColumns = (0, _processColumnGroups.default)(columnDefs);
981
+ console.log('[AgGridPlus] colDefs 重新计算:', {
982
+ childrenCount: _react.default.Children.count(children),
983
+ hasPropsColumnDefs: !!props.columnDefs,
984
+ extensibleColumnsCount: Object.keys(extensibleColumns || {}).length,
985
+ columnCellClassCount: Object.keys(columnCellClass).length,
986
+ processedColumnsCount: processedColumns.length,
987
+ usingCachedData: !!firstRowDataRef.current
988
+ });
966
989
  return processedColumns;
967
- }, [_react.default.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass, rowData]);
990
+ }, [_react.default.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass]);
968
991
 
969
992
  // 构建查询表单项(带 order 属性)
970
993
  var queryFormItems = (0, _react.useMemo)(function () {
@@ -1121,8 +1144,8 @@ function AgGridPlus(props) {
1121
1144
  rowSelection: rowSelectionConfig,
1122
1145
  onDragStopped: function onDragStopped(e) {
1123
1146
  if (apiRef.current) {
1124
- var _apiRef$current7;
1125
- var _columnState2 = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
1147
+ var _apiRef$current5;
1148
+ var _columnState2 = (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 ? void 0 : _apiRef$current5.getColumnState();
1126
1149
  setColumnState(_columnState2);
1127
1150
 
1128
1151
  // onColumnStateChanged && onColumnStateChanged(columnState)
@@ -249,12 +249,12 @@ var ColumnSetting = function ColumnSetting(_ref) {
249
249
 
250
250
  // 等待 Grid 状态更新完成后再保存到方案
251
251
  setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
252
- var updatedState, filterModel, defaultScheme, newScheme;
252
+ var updatedState, filterModel, defaultScheme, _newScheme$columnConf, newScheme;
253
253
  return _regeneratorRuntime().wrap(function _callee$(_context) {
254
254
  while (1) switch (_context.prev = _context.next) {
255
255
  case 0:
256
256
  if (!(schemeManager && gridKey)) {
257
- _context.next = 28;
257
+ _context.next = 29;
258
258
  break;
259
259
  }
260
260
  _context.prev = 1;
@@ -287,7 +287,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
287
287
  filterModel: filterModel
288
288
  });
289
289
  case 8:
290
- _context.next = 23;
290
+ _context.next = 24;
291
291
  break;
292
292
  case 10:
293
293
  // 如果没有激活的方案,查找或创建"默认配置"方案
@@ -308,7 +308,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
308
308
  filterModel: filterModel
309
309
  });
310
310
  case 16:
311
- _context.next = 23;
311
+ _context.next = 24;
312
312
  break;
313
313
  case 18:
314
314
  _context.next = 20;
@@ -321,20 +321,29 @@ var ColumnSetting = function ColumnSetting(_ref) {
321
321
  });
322
322
  case 20:
323
323
  newScheme = _context.sent;
324
- _context.next = 23;
324
+ console.log('[ColumnSetting] 创建默认方案成功,准备应用:', {
325
+ schemeId: newScheme.id,
326
+ schemeName: newScheme.name,
327
+ hasColumnConfig: !!newScheme.columnConfig,
328
+ columnConfigLength: ((_newScheme$columnConf = newScheme.columnConfig) === null || _newScheme$columnConf === void 0 ? void 0 : _newScheme$columnConf.length) || 0
329
+ });
330
+
331
+ // 【修复】直接加载方案,确保立即应用
332
+ // loadScheme 会设置 currentScheme 并触发 onSchemeChange
333
+ _context.next = 24;
325
334
  return schemeManager.loadScheme(newScheme.id);
326
- case 23:
327
- _context.next = 28;
335
+ case 24:
336
+ _context.next = 29;
328
337
  break;
329
- case 25:
330
- _context.prev = 25;
338
+ case 26:
339
+ _context.prev = 26;
331
340
  _context.t0 = _context["catch"](1);
332
341
  console.error('[ColumnSetting] 保存列配置到方案失败:', _context.t0);
333
- case 28:
342
+ case 29:
334
343
  case "end":
335
344
  return _context.stop();
336
345
  }
337
- }, _callee, null, [[1, 25]]);
346
+ }, _callee, null, [[1, 26]]);
338
347
  })), 50);
339
348
 
340
349
  // 保存成功后清除备份
@@ -234,47 +234,48 @@ function AgGridPlus(props) {
234
234
  };
235
235
  }, []);
236
236
 
237
+ // 【修复】缓存第一次数据用于类型推断,避免 rowData 更新时重新计算 colDefs
238
+ // 原因: getTableColumns 只需要第一行数据来推断列的数据类型(数字列自动求和)
239
+ // 类型推断应该只在初始化时进行一次,后续数据更新不应改变列定义
240
+ var firstRowDataRef = useRef(null);
241
+ useEffect(function () {
242
+ // 只在首次有数据时保存
243
+ if (!firstRowDataRef.current && rowData.length > 0) {
244
+ firstRowDataRef.current = rowData[0];
245
+ console.log('[AgGridPlus] 保存首行数据用于类型推断:', firstRowDataRef.current);
246
+ }
247
+ }, [rowData]);
248
+
237
249
  // 测试列数据
238
250
  // const restData = [{"id":"47","field":"code","headerName":"编码","width":110,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"code","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"48","field":"name","headerName":"名称","width":110,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"name","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"49","field":"abbName","headerName":"简称","width":110,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"abbName","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"50","field":"address","headerName":"地址","width":662,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"address","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":1},{"id":"51","field":"creator","headerName":"创建人","width":90,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"creator","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"52","field":"creationTime","headerName":"创建时间","width":160,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"creationTime","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"53","field":"lastModifier","headerName":"最后修改人","width":90,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"lastModifier","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"54","field":"lastModificationTime","headerName":"最后修改时间","width":160,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"lastModificationTime","pinned":null,"sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null},{"id":"55","field":"","headerName":"操作","width":160,"hide":false,"cellClass":"custom-cell-left","suppressHeaderFilterButton":true,"colId":"0","pinned":"right","sort":null,"sortIndex":null,"aggFunc":null,"rowGroup":false,"rowGroupIndex":null,"pivot":false,"pivotIndex":null,"flex":null}]
239
251
 
240
252
  // 加载列方案
253
+ // 仅用于设置列样式,不改变列结构
254
+ // 列结构(包括分组)由 useEffect #2 通过 setGridOption("columnDefs") 处理
241
255
  useEffect(function () {
242
256
  var _columnSchemeManager$;
243
257
  if (!gridKey || !apiRef.current) return;
244
258
 
245
- // 优先使用方案中的 columnConfig(用户在列配置界面调整后的数据)
259
+ // 只有当有 columnConfig 时才设置列样式
246
260
  if (columnSchemeManager !== null && columnSchemeManager !== void 0 && (_columnSchemeManager$ = columnSchemeManager.currentScheme) !== null && _columnSchemeManager$ !== void 0 && _columnSchemeManager$.columnConfig) {
247
261
  var _require = require("./setting/columnGroupUtils"),
248
262
  flatConfigToColumnState = _require.flatConfigToColumnState;
249
263
  var _columnState = flatConfigToColumnState(columnSchemeManager.currentScheme.columnConfig);
264
+ console.log('[AgGridPlus] useEffect #1: 设置列样式', {
265
+ gridKey: gridKey,
266
+ schemeId: columnSchemeManager.currentScheme.id,
267
+ schemeName: columnSchemeManager.currentScheme.name,
268
+ columnCount: _columnState.length
269
+ });
250
270
  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
- };
271
+
272
+ // 【重要】不再调用 applyColumnState
273
+ // 原因:
274
+ // 1. 如果有分组,applyColumnState 会破坏分组结构
275
+ // 2. 列顺序、宽度、隐藏等属性已由 useEffect #2 的 setGridOption("columnDefs") 应用
276
+ // 3. 这里只负责设置列样式(cellClass)
276
277
  }
277
- }, [gridKey, columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$2 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$2 === void 0 ? void 0 : _columnSchemeManager$2.columnConfig, gridPlusColumnState]);
278
+ }, [gridKey, columnSchemeManager === null || columnSchemeManager === void 0 || (_columnSchemeManager$2 = columnSchemeManager.currentScheme) === null || _columnSchemeManager$2 === void 0 ? void 0 : _columnSchemeManager$2.columnConfig]);
278
279
 
279
280
  // 同步 apiRef 和 currentScheme,确保方案在两者都准备好时应用
280
281
  useEffect(function () {
@@ -514,11 +515,22 @@ function AgGridPlus(props) {
514
515
  };
515
516
 
516
517
  // 计算所有列定义(包括隐藏的列)
518
+ // 【修复】移除 rowData 依赖,使用缓存的首行数据进行类型推断
517
519
  var allColDefs = useMemo(function () {
518
- var cols = getTableColumns(rowData);
520
+ var dataForTypeInference = firstRowDataRef.current || (rowData.length > 0 ? rowData[0] : {});
521
+ var cols = getTableColumns([dataForTypeInference]);
519
522
  allColDefsRef.current = cols; // 同步更新 ref
523
+
524
+ console.log('[AgGridPlus] allColDefs 重新计算:', {
525
+ childrenCount: React.Children.count(children),
526
+ hasPropsColumnDefs: !!props.columnDefs,
527
+ extensibleColumnsCount: Object.keys(extensibleColumns || {}).length,
528
+ gridKey: gridKey,
529
+ colsCount: cols.length,
530
+ usingCachedData: !!firstRowDataRef.current
531
+ });
520
532
  return cols;
521
- }, [React.Children.count(children), props.columnDefs, extensibleColumns, rowData, gridKey]);
533
+ }, [React.Children.count(children), props.columnDefs, extensibleColumns, gridKey]);
522
534
 
523
535
  // 稳定化 gridParams 和 sortColumn 的引用
524
536
  var stableGridParams = useMemo(function () {
@@ -573,7 +585,7 @@ function AgGridPlus(props) {
573
585
  };
574
586
  }, [propsRowSelection, enableClickSelection]);
575
587
  var onGridReady = useCallback(function (params) {
576
- var _columnSchemeManager$3, _columnSchemeManager$4, _columnSchemeManager$5, _apiRef$current3;
588
+ var _columnSchemeManager$3, _columnSchemeManager$4, _columnSchemeManager$5, _apiRef$current;
577
589
  console.log('[AgGridPlus] onGridReady 被调用:', {
578
590
  hasColumnSchemeManager: !!columnSchemeManager,
579
591
  hasCurrentScheme: !!(columnSchemeManager !== null && columnSchemeManager !== void 0 && columnSchemeManager.currentScheme),
@@ -585,7 +597,7 @@ function AgGridPlus(props) {
585
597
  onReady && onReady(params);
586
598
  ///@ts-ignore
587
599
  dataSource && setRowData(dataSource);
588
- setColumnState((_apiRef$current3 = apiRef.current) === null || _apiRef$current3 === void 0 ? void 0 : _apiRef$current3.getColumnState());
600
+ setColumnState((_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 ? void 0 : _apiRef$current.getColumnState());
589
601
  sortChanged(params.api);
590
602
  setReady(true);
591
603
 
@@ -610,7 +622,7 @@ function AgGridPlus(props) {
610
622
  sorter: getSort(stableSortColumn)
611
623
  });
612
624
  requestRef.current(params, undefined, queryFilter).then(function (response) {
613
- var _apiRef$current4;
625
+ var _apiRef$current2;
614
626
  // 验证响应数据格式
615
627
  if (!response || _typeof(response) !== 'object') {
616
628
  throw new GridPlusError('服务器返回数据格式错误', ErrorType.DATA_FORMAT_ERROR, ErrorSeverity.HIGH, {
@@ -626,7 +638,7 @@ function AgGridPlus(props) {
626
638
  var rowCount = response.total;
627
639
  setRowData(rowData);
628
640
  // 刷新所有单元格
629
- (_apiRef$current4 = apiRef.current) === null || _apiRef$current4 === void 0 || _apiRef$current4.refreshCells({
641
+ (_apiRef$current2 = apiRef.current) === null || _apiRef$current2 === void 0 || _apiRef$current2.refreshCells({
630
642
  force: true
631
643
  });
632
644
  setPagination(function (prev) {
@@ -900,8 +912,8 @@ function AgGridPlus(props) {
900
912
  });
901
913
  }
902
914
  if (!allColDefs || displayedData.length === 0) {
903
- var _apiRef$current5;
904
- (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 || _apiRef$current5.setGridOption('pinnedBottomRowData', undefined);
915
+ var _apiRef$current3;
916
+ (_apiRef$current3 = apiRef.current) === null || _apiRef$current3 === void 0 || _apiRef$current3.setGridOption('pinnedBottomRowData', undefined);
905
917
  return;
906
918
  }
907
919
  var calcColFields = allColDefs.filter(function (col) {
@@ -915,16 +927,19 @@ function AgGridPlus(props) {
915
927
  };
916
928
  });
917
929
  if (calcColFields.length > 0) {
918
- var _apiRef$current6;
930
+ var _apiRef$current4;
919
931
  var calculatedValues = calculatefun(calcColFields, displayedData);
920
- (_apiRef$current6 = apiRef.current) === null || _apiRef$current6 === void 0 || _apiRef$current6.setGridOption('pinnedBottomRowData', calculatedValues);
932
+ (_apiRef$current4 = apiRef.current) === null || _apiRef$current4 === void 0 || _apiRef$current4.setGridOption('pinnedBottomRowData', calculatedValues);
921
933
  }
922
934
  }, [allColDefs, calculatefun]);
923
935
  var onFilterChanged = function onFilterChanged(event) {
924
936
  calculateSum();
925
937
  };
926
938
  var colDefs = useMemo(function () {
927
- var columnDefs = getTableColumns(rowData);
939
+ // 使用缓存的首行数据进行类型推断,而不是当前的 rowData
940
+ // 这样 rowData 更新时不会触发 colDefs 重新计算
941
+ var dataForTypeInference = firstRowDataRef.current || (rowData.length > 0 ? rowData[0] : {});
942
+ var columnDefs = getTableColumns([dataForTypeInference]);
928
943
 
929
944
  // 递归应用 columnCellClass 配置
930
945
  var applyCellConfig = function applyCellConfig(col) {
@@ -956,8 +971,16 @@ function AgGridPlus(props) {
956
971
  return !x.hideInTable;
957
972
  });
958
973
  var processedColumns = processColumnGroups(columnDefs);
974
+ console.log('[AgGridPlus] colDefs 重新计算:', {
975
+ childrenCount: React.Children.count(children),
976
+ hasPropsColumnDefs: !!props.columnDefs,
977
+ extensibleColumnsCount: Object.keys(extensibleColumns || {}).length,
978
+ columnCellClassCount: Object.keys(columnCellClass).length,
979
+ processedColumnsCount: processedColumns.length,
980
+ usingCachedData: !!firstRowDataRef.current
981
+ });
959
982
  return processedColumns;
960
- }, [React.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass, rowData]);
983
+ }, [React.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass]);
961
984
 
962
985
  // 构建查询表单项(带 order 属性)
963
986
  var queryFormItems = useMemo(function () {
@@ -1114,8 +1137,8 @@ function AgGridPlus(props) {
1114
1137
  rowSelection: rowSelectionConfig,
1115
1138
  onDragStopped: function onDragStopped(e) {
1116
1139
  if (apiRef.current) {
1117
- var _apiRef$current7;
1118
- var _columnState2 = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
1140
+ var _apiRef$current5;
1141
+ var _columnState2 = (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 ? void 0 : _apiRef$current5.getColumnState();
1119
1142
  setColumnState(_columnState2);
1120
1143
 
1121
1144
  // onColumnStateChanged && onColumnStateChanged(columnState)
@@ -240,12 +240,12 @@ var ColumnSetting = function ColumnSetting(_ref) {
240
240
 
241
241
  // 等待 Grid 状态更新完成后再保存到方案
242
242
  setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
243
- var updatedState, filterModel, defaultScheme, newScheme;
243
+ var updatedState, filterModel, defaultScheme, _newScheme$columnConf, newScheme;
244
244
  return _regeneratorRuntime().wrap(function _callee$(_context) {
245
245
  while (1) switch (_context.prev = _context.next) {
246
246
  case 0:
247
247
  if (!(schemeManager && gridKey)) {
248
- _context.next = 28;
248
+ _context.next = 29;
249
249
  break;
250
250
  }
251
251
  _context.prev = 1;
@@ -278,7 +278,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
278
278
  filterModel: filterModel
279
279
  });
280
280
  case 8:
281
- _context.next = 23;
281
+ _context.next = 24;
282
282
  break;
283
283
  case 10:
284
284
  // 如果没有激活的方案,查找或创建"默认配置"方案
@@ -299,7 +299,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
299
299
  filterModel: filterModel
300
300
  });
301
301
  case 16:
302
- _context.next = 23;
302
+ _context.next = 24;
303
303
  break;
304
304
  case 18:
305
305
  _context.next = 20;
@@ -312,20 +312,29 @@ var ColumnSetting = function ColumnSetting(_ref) {
312
312
  });
313
313
  case 20:
314
314
  newScheme = _context.sent;
315
- _context.next = 23;
315
+ console.log('[ColumnSetting] 创建默认方案成功,准备应用:', {
316
+ schemeId: newScheme.id,
317
+ schemeName: newScheme.name,
318
+ hasColumnConfig: !!newScheme.columnConfig,
319
+ columnConfigLength: ((_newScheme$columnConf = newScheme.columnConfig) === null || _newScheme$columnConf === void 0 ? void 0 : _newScheme$columnConf.length) || 0
320
+ });
321
+
322
+ // 【修复】直接加载方案,确保立即应用
323
+ // loadScheme 会设置 currentScheme 并触发 onSchemeChange
324
+ _context.next = 24;
316
325
  return schemeManager.loadScheme(newScheme.id);
317
- case 23:
318
- _context.next = 28;
326
+ case 24:
327
+ _context.next = 29;
319
328
  break;
320
- case 25:
321
- _context.prev = 25;
329
+ case 26:
330
+ _context.prev = 26;
322
331
  _context.t0 = _context["catch"](1);
323
332
  console.error('[ColumnSetting] 保存列配置到方案失败:', _context.t0);
324
- case 28:
333
+ case 29:
325
334
  case "end":
326
335
  return _context.stop();
327
336
  }
328
- }, _callee, null, [[1, 25]]);
337
+ }, _callee, null, [[1, 26]]);
329
338
  })), 50);
330
339
 
331
340
  // 保存成功后清除备份