@nokecy/qc-ui 1.0.91 → 1.0.93

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 (224) hide show
  1. package/dist/cjs/ag-grid-plus/_utils/processColumnGroups.d.ts +2 -1
  2. package/dist/cjs/ag-grid-plus/_utils/processColumnGroups.js +6 -5
  3. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +69 -35
  4. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +5 -0
  5. package/dist/cjs/ag-grid-plus/index.d.ts +0 -1
  6. package/dist/cjs/ag-grid-plus/index.js +0 -1
  7. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +26 -20
  8. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +5 -1
  9. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +64 -1
  10. package/dist/cjs/ag-grid-plus/theme.d.ts +5 -0
  11. package/dist/cjs/ag-grid-plus/theme.js +78 -0
  12. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts +2 -1
  13. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.js +6 -5
  14. package/dist/esm/ag-grid-plus/ag-gridPlus.js +68 -35
  15. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +5 -0
  16. package/dist/esm/ag-grid-plus/errors/ErrorBoundary.d.ts +1 -1
  17. package/dist/esm/ag-grid-plus/index.d.ts +0 -1
  18. package/dist/esm/ag-grid-plus/index.js +0 -1
  19. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +27 -21
  20. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +5 -1
  21. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +64 -1
  22. package/dist/esm/ag-grid-plus/theme.d.ts +5 -0
  23. package/dist/esm/ag-grid-plus/theme.js +72 -0
  24. package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts +1 -1
  25. package/dist/umd/qc-ui.min.css +1 -1
  26. package/dist/umd/qc-ui.min.js +1 -1
  27. package/package.json +1 -1
  28. package/dist/esm/ConfirmPro/index.d.ts.map +0 -1
  29. package/dist/esm/RuleBuilder/LogicSelector.d.ts.map +0 -1
  30. package/dist/esm/RuleBuilder/RuleBuilderContainer.d.ts.map +0 -1
  31. package/dist/esm/RuleBuilder/RuleCard.d.ts.map +0 -1
  32. package/dist/esm/RuleBuilder/RuleGroupEditor.d.ts.map +0 -1
  33. package/dist/esm/RuleBuilder/constants/operators.d.ts.map +0 -1
  34. package/dist/esm/RuleBuilder/context/RuleBuilderContext.d.ts.map +0 -1
  35. package/dist/esm/RuleBuilder/index.d.ts.map +0 -1
  36. package/dist/esm/RuleBuilder/inputs/BetweenValueInput.d.ts.map +0 -1
  37. package/dist/esm/RuleBuilder/inputs/MultiValueInput.d.ts.map +0 -1
  38. package/dist/esm/RuleBuilder/inputs/SingleValueInput.d.ts.map +0 -1
  39. package/dist/esm/RuleBuilder/inputs/ValueInput.d.ts.map +0 -1
  40. package/dist/esm/RuleBuilder/selectors/FieldSelector.d.ts.map +0 -1
  41. package/dist/esm/RuleBuilder/selectors/OperatorSelector.d.ts.map +0 -1
  42. package/dist/esm/RuleBuilder/types/index.d.ts.map +0 -1
  43. package/dist/esm/RuleBuilder/utils/pathHelpers.d.ts.map +0 -1
  44. package/dist/esm/RuleBuilder/utils/ruleHelpers.d.ts.map +0 -1
  45. package/dist/esm/RuleBuilder/utils/validation.d.ts.map +0 -1
  46. package/dist/esm/ag-grid-plus/_utils/boolSelect.d.ts.map +0 -1
  47. package/dist/esm/ag-grid-plus/_utils/customGroupCellRenderer.d.ts.map +0 -1
  48. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts.map +0 -1
  49. package/dist/esm/ag-grid-plus/_utils/processFormColumnState.d.ts.map +0 -1
  50. package/dist/esm/ag-grid-plus/ag-gridPlus.d.ts.map +0 -1
  51. package/dist/esm/ag-grid-plus/context/gridContext.d.ts.map +0 -1
  52. package/dist/esm/ag-grid-plus/errors/ErrorBoundary.d.ts.map +0 -1
  53. package/dist/esm/ag-grid-plus/errors/index.d.ts.map +0 -1
  54. package/dist/esm/ag-grid-plus/errors/types.d.ts.map +0 -1
  55. package/dist/esm/ag-grid-plus/hooks/index.d.ts.map +0 -1
  56. package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.d.ts.map +0 -1
  57. package/dist/esm/ag-grid-plus/hooks/useAgGridData.d.ts.map +0 -1
  58. package/dist/esm/ag-grid-plus/hooks/useGridPlusColumnState.d.ts.map +0 -1
  59. package/dist/esm/ag-grid-plus/hooks/useGridState.d.ts.map +0 -1
  60. package/dist/esm/ag-grid-plus/index.d.ts.map +0 -1
  61. package/dist/esm/ag-grid-plus/interface.d.ts.map +0 -1
  62. package/dist/esm/ag-grid-plus/locale.d.ts.map +0 -1
  63. package/dist/esm/ag-grid-plus/queryForm/index.d.ts.map +0 -1
  64. package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts.map +0 -1
  65. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.d.ts.map +0 -1
  66. package/dist/esm/ag-grid-plus/querySchemes/components/index.d.ts.map +0 -1
  67. package/dist/esm/ag-grid-plus/querySchemes/constants.d.ts.map +0 -1
  68. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.d.ts.map +0 -1
  69. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.d.ts.map +0 -1
  70. package/dist/esm/ag-grid-plus/querySchemes/index.d.ts.map +0 -1
  71. package/dist/esm/ag-grid-plus/querySchemes/storage/localStorageAdapter.d.ts.map +0 -1
  72. package/dist/esm/ag-grid-plus/querySchemes/types.d.ts.map +0 -1
  73. package/dist/esm/ag-grid-plus/querySchemes/utils/validator.d.ts.map +0 -1
  74. package/dist/esm/ag-grid-plus/schemes/components/SchemeManager.d.ts.map +0 -1
  75. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.d.ts.map +0 -1
  76. package/dist/esm/ag-grid-plus/schemes/components/index.d.ts.map +0 -1
  77. package/dist/esm/ag-grid-plus/schemes/constants.d.ts.map +0 -1
  78. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.d.ts.map +0 -1
  79. package/dist/esm/ag-grid-plus/schemes/index.d.ts.map +0 -1
  80. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts.map +0 -1
  81. package/dist/esm/ag-grid-plus/schemes/types.d.ts.map +0 -1
  82. package/dist/esm/ag-grid-plus/schemes/utils/validator.d.ts.map +0 -1
  83. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.d.ts.map +0 -1
  84. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts.map +0 -1
  85. package/dist/esm/ag-grid-plus/setting/ColumnSetting.d.ts.map +0 -1
  86. package/dist/esm/ag-grid-plus/setting/MoveNodeModal.d.ts.map +0 -1
  87. package/dist/esm/ag-grid-plus/setting/NameColumnRenderer.d.ts.map +0 -1
  88. package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts.map +0 -1
  89. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts.map +0 -1
  90. package/dist/esm/ag-grid-plus/setting/index.d.ts.map +0 -1
  91. package/dist/esm/ag-grid-plus/settingItem/index.d.ts.map +0 -1
  92. package/dist/esm/ag-grid-plus/shared/hooks/useSchemeManager.d.ts.map +0 -1
  93. package/dist/esm/ag-grid-plus/storage/MemoryStorageAdapter.d.ts.map +0 -1
  94. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.d.ts.map +0 -1
  95. package/dist/esm/ag-grid-plus/storage/globalSyncManager.d.ts.map +0 -1
  96. package/dist/esm/ag-grid-plus/storage/index.d.ts.map +0 -1
  97. package/dist/esm/ag-grid-plus/storage/types.d.ts.map +0 -1
  98. package/dist/esm/ag-grid-plus/toolBar/index.d.ts.map +0 -1
  99. package/dist/esm/ag-grid-plus/toolBar/style.d.ts.map +0 -1
  100. package/dist/esm/ag-grid-plus/types.d.ts.map +0 -1
  101. package/dist/esm/ag-grid-plus/utils/columnProcessors.d.ts.map +0 -1
  102. package/dist/esm/ag-grid-plus/utils/constants.d.ts.map +0 -1
  103. package/dist/esm/ag-grid-plus/utils/logger.d.ts.map +0 -1
  104. package/dist/esm/ag-grid-plus/utils/sanitize.d.ts.map +0 -1
  105. package/dist/esm/ag-grid-plus/utils.d.ts.map +0 -1
  106. package/dist/esm/array-table/arrayAddBtn.d.ts.map +0 -1
  107. package/dist/esm/array-table/arrayBase.d.ts.map +0 -1
  108. package/dist/esm/array-table/columnHelper.d.ts.map +0 -1
  109. package/dist/esm/array-table/hooks.d.ts.map +0 -1
  110. package/dist/esm/array-table/index.d.ts.map +0 -1
  111. package/dist/esm/array-table/interface.d.ts.map +0 -1
  112. package/dist/esm/array-table/preview.d.ts.map +0 -1
  113. package/dist/esm/array-table/utils.d.ts.map +0 -1
  114. package/dist/esm/array-table-index/index.d.ts.map +0 -1
  115. package/dist/esm/card/index.d.ts.map +0 -1
  116. package/dist/esm/components/RegexEditor/core/RegexEditor.d.ts.map +0 -1
  117. package/dist/esm/components/RegexEditor/core/extensions/errorMarker.d.ts.map +0 -1
  118. package/dist/esm/components/RegexEditor/core/types.d.ts.map +0 -1
  119. package/dist/esm/components/RegexEditor/hooks/index.d.ts.map +0 -1
  120. package/dist/esm/components/RegexEditor/hooks/useRegexTester.d.ts.map +0 -1
  121. package/dist/esm/components/RegexEditor/hooks/useRegexValidation.d.ts.map +0 -1
  122. package/dist/esm/components/RegexEditor/hooks/useTemplateManager.d.ts.map +0 -1
  123. package/dist/esm/components/RegexEditor/index.d.ts.map +0 -1
  124. package/dist/esm/components/RegexEditor/templates/TemplateSelector.d.ts.map +0 -1
  125. package/dist/esm/components/RegexEditor/templates/builtinTemplates.d.ts.map +0 -1
  126. package/dist/esm/components/RegexEditor/templates/index.d.ts.map +0 -1
  127. package/dist/esm/components/RegexEditor/templates/storage.d.ts.map +0 -1
  128. package/dist/esm/components/RegexEditor/templates/templateManager.d.ts.map +0 -1
  129. package/dist/esm/components/RegexEditor/templates/types.d.ts.map +0 -1
  130. package/dist/esm/components/RegexEditor/testing/types.d.ts.map +0 -1
  131. package/dist/esm/components/RegexEditor/validation/complexity.d.ts.map +0 -1
  132. package/dist/esm/components/RegexEditor/validation/parser.d.ts.map +0 -1
  133. package/dist/esm/components/RegexEditor/validation/types.d.ts.map +0 -1
  134. package/dist/esm/components/RegexEditor/validation/validator.d.ts.map +0 -1
  135. package/dist/esm/components/RegexEditor/visualizer/FlagsSelector.d.ts.map +0 -1
  136. package/dist/esm/components/RegexEditor/visualizer/MatchItem.d.ts.map +0 -1
  137. package/dist/esm/components/RegexEditor/visualizer/RegexRailroadDiagram.d.ts.map +0 -1
  138. package/dist/esm/components/RegexEditor/visualizer/RegexTester.d.ts.map +0 -1
  139. package/dist/esm/components/RegexEditor/visualizer/astToRailroad.d.ts.map +0 -1
  140. package/dist/esm/components/RegexEditor/visualizer/index.d.ts.map +0 -1
  141. package/dist/esm/components/RegexEditor/visualizer/types.d.ts.map +0 -1
  142. package/dist/esm/components/RegexEditor/visualizer/utils.d.ts.map +0 -1
  143. package/dist/esm/dashboard/dashboard/components/index.d.ts.map +0 -1
  144. package/dist/esm/dashboard/dashboard/components/modal/index.d.ts.map +0 -1
  145. package/dist/esm/dashboard/dashboard/components/toolbar/index.d.ts.map +0 -1
  146. package/dist/esm/dashboard/dashboard/components/toolbar/style/index.d.ts.map +0 -1
  147. package/dist/esm/dashboard/dashboard/index.d.ts.map +0 -1
  148. package/dist/esm/dashboard/dashboard/service.d.ts.map +0 -1
  149. package/dist/esm/dashboard/dashboard/utils.d.ts.map +0 -1
  150. package/dist/esm/dashboard/index.d.ts.map +0 -1
  151. package/dist/esm/dashboard/utils.d.ts.map +0 -1
  152. package/dist/esm/dashboard/widget/index.d.ts.map +0 -1
  153. package/dist/esm/dashboard/widget/selector/index.d.ts.map +0 -1
  154. package/dist/esm/dashboard/widget/utils.d.ts.map +0 -1
  155. package/dist/esm/deleteConfirm/index.d.ts.map +0 -1
  156. package/dist/esm/dialogSelect/index.d.ts.map +0 -1
  157. package/dist/esm/draggableModal/index.d.ts.map +0 -1
  158. package/dist/esm/editable/index.d.ts.map +0 -1
  159. package/dist/esm/editable/style.d.ts.map +0 -1
  160. package/dist/esm/extensible-grid/index.d.ts.map +0 -1
  161. package/dist/esm/extensible-grid/interface.d.ts.map +0 -1
  162. package/dist/esm/formDesigner/FormDesigner.d.ts.map +0 -1
  163. package/dist/esm/formDesigner/ProCard/index.d.ts.map +0 -1
  164. package/dist/esm/formDesigner/arrayTable/arrayTableSchema.d.ts.map +0 -1
  165. package/dist/esm/formDesigner/arrayTable/index.d.ts.map +0 -1
  166. package/dist/esm/formDesigner/arrayTable/preview.d.ts.map +0 -1
  167. package/dist/esm/formDesigner/index.d.ts.map +0 -1
  168. package/dist/esm/formDesigner/preWidgets/arrayTableIndex/index.d.ts.map +0 -1
  169. package/dist/esm/formDesigner/preWidgets/arrayTableIndex/preview.d.ts.map +0 -1
  170. package/dist/esm/formDesigner/preWidgets/card/index.d.ts.map +0 -1
  171. package/dist/esm/formDesigner/preWidgets/card/preview.d.ts.map +0 -1
  172. package/dist/esm/formDesigner/preWidgets/index.d.ts.map +0 -1
  173. package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.d.ts.map +0 -1
  174. package/dist/esm/formDesigner/preWidgets/preDefineProperty1/preview.d.ts.map +0 -1
  175. package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.d.ts.map +0 -1
  176. package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.d.ts.map +0 -1
  177. package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.d.ts.map +0 -1
  178. package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.d.ts.map +0 -1
  179. package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.d.ts.map +0 -1
  180. package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.d.ts.map +0 -1
  181. package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.d.ts.map +0 -1
  182. package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.d.ts.map +0 -1
  183. package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.d.ts.map +0 -1
  184. package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.d.ts.map +0 -1
  185. package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.d.ts.map +0 -1
  186. package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.d.ts.map +0 -1
  187. package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.d.ts.map +0 -1
  188. package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.d.ts.map +0 -1
  189. package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.d.ts.map +0 -1
  190. package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.d.ts.map +0 -1
  191. package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.d.ts.map +0 -1
  192. package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.d.ts.map +0 -1
  193. package/dist/esm/formDesigner/preWidgets/utils.d.ts.map +0 -1
  194. package/dist/esm/formDesigner/widgets/ActionsWidget.d.ts.map +0 -1
  195. package/dist/esm/formDesigner/widgets/LogoWidget.d.ts.map +0 -1
  196. package/dist/esm/formDesigner/widgets/PreviewWidget.d.ts.map +0 -1
  197. package/dist/esm/formDesigner/widgets/SchemaEditorWidget.d.ts.map +0 -1
  198. package/dist/esm/formDesigner/widgets/index.d.ts.map +0 -1
  199. package/dist/esm/formPro/context/formProContext.d.ts.map +0 -1
  200. package/dist/esm/formPro/formLayoutPro.d.ts.map +0 -1
  201. package/dist/esm/formPro/index.d.ts.map +0 -1
  202. package/dist/esm/fullScreenAlert/index.d.ts.map +0 -1
  203. package/dist/esm/generatedListPage/ConfigurableToolbar.d.ts.map +0 -1
  204. package/dist/esm/generatedListPage/GeneratedListPage.d.ts.map +0 -1
  205. package/dist/esm/generatedListPage/OptionsColumn.d.ts.map +0 -1
  206. package/dist/esm/generatedListPage/PerformanceMonitor.d.ts.map +0 -1
  207. package/dist/esm/generatedListPage/RequestManager.d.ts.map +0 -1
  208. package/dist/esm/generatedListPage/_utils/AccessWrapper.d.ts.map +0 -1
  209. package/dist/esm/generatedListPage/_utils/defaultHandlers.d.ts.map +0 -1
  210. package/dist/esm/generatedListPage/index.d.ts.map +0 -1
  211. package/dist/esm/generatedListPage/types.d.ts.map +0 -1
  212. package/dist/esm/generatedListPage/usePermissionCheck.d.ts.map +0 -1
  213. package/dist/esm/generatedListPage/useRequestManager.d.ts.map +0 -1
  214. package/dist/esm/importModal/index.d.ts.map +0 -1
  215. package/dist/esm/index.d.ts.map +0 -1
  216. package/dist/esm/queryBuilder/index.d.ts.map +0 -1
  217. package/dist/esm/standardFormDialog/FormValidation.d.ts.map +0 -1
  218. package/dist/esm/standardFormDialog/PortalManager.d.ts.map +0 -1
  219. package/dist/esm/standardFormDialog/StandardFormDialog.d.ts.map +0 -1
  220. package/dist/esm/standardFormDialog/index.d.ts.map +0 -1
  221. package/dist/esm/standardFormDialog/types.d.ts.map +0 -1
  222. package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts.map +0 -1
  223. package/dist/esm/standardFormDialog/withStandardForm.d.ts.map +0 -1
  224. package/dist/esm/toolBar/index.d.ts.map +0 -1
@@ -19,9 +19,10 @@ import { flatConfigToGridState, isOldSchemeData, migrateOldScheme } from "../set
19
19
  * 2. 旧格式:{ groupName: string } (简单的分组名称)
20
20
  *
21
21
  * @param columns 列配置数组
22
+ * @param originalColumnDefs 原始列定义数组(可选),用于保留自定义属性
22
23
  * @returns AG-Grid 列定义
23
24
  */
24
- var processColumnGroups = function processColumnGroups(columns) {
25
+ var processColumnGroups = function processColumnGroups(columns, originalColumnDefs) {
25
26
  // 如果是空数组,直接返回
26
27
  if (!columns || columns.length === 0) {
27
28
  return [];
@@ -44,16 +45,16 @@ var processColumnGroups = function processColumnGroups(columns) {
44
45
  return col.id !== undefined && col.level !== undefined && col.order !== undefined && (col.type === 'group' || col.type === 'column');
45
46
  });
46
47
  if (isNewFormat) {
47
- // 新格式:使用 flatConfigToGridState 转换
48
- return flatConfigToGridState(columns);
48
+ // 新格式:使用 flatConfigToGridState 转换,传入原始列定义以保留自定义属性
49
+ return flatConfigToGridState(columns, originalColumnDefs);
49
50
  }
50
51
 
51
52
  // 旧格式:使用旧的处理逻辑
52
53
  // 检查是否需要迁移
53
54
  if (isOldSchemeData(columns)) {
54
- // 先迁移到新格式,再转换
55
+ // 先迁移到新格式,再转换,传入原始列定义
55
56
  var migrated = migrateOldScheme(columns);
56
- return flatConfigToGridState(migrated);
57
+ return flatConfigToGridState(migrated, originalColumnDefs);
57
58
  }
58
59
 
59
60
  // 兼容最原始的格式(groupName)
@@ -25,6 +25,9 @@ import { AllEnterpriseModule } from "ag-grid-enterprise";
25
25
 
26
26
  // AG-Grid v33+ 需要显式注册模块
27
27
  ModuleRegistry.registerModules([AllEnterpriseModule]);
28
+
29
+ // 导入 AG-Grid v33 主题
30
+ import { agGridTheme } from "./theme";
28
31
  import "./index.less";
29
32
  import FormRender from "./queryForm";
30
33
  import ToolBar from "./toolBar";
@@ -242,12 +245,44 @@ function AgGridPlus(props) {
242
245
  // 只在首次有数据时保存
243
246
  if (!firstRowDataRef.current && rowData.length > 0) {
244
247
  firstRowDataRef.current = rowData[0];
245
- console.log('[AgGridPlus] 保存首行数据用于类型推断:', firstRowDataRef.current);
246
248
  }
247
249
  }, [rowData]);
248
250
 
249
- // 测试列数据
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}]
251
+ // 【修复】加载列方案时,合并原始列定义和方案配置
252
+ // 确保保留 cellRenderer、valueFormatter、valueEnum 等自定义属性
253
+ useEffect(function () {
254
+ if (!gridKey || !apiRef.current) return;
255
+ var currentScheme = columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme;
256
+
257
+ // 只有当有 columnConfig 时才应用方案
258
+ if (currentScheme !== null && currentScheme !== void 0 && currentScheme.columnConfig && currentScheme.columnConfig.length > 0) {
259
+ var _require = require("./setting/columnGroupUtils"),
260
+ flatConfigToGridState = _require.flatConfigToGridState;
261
+
262
+ // 【关键】使用 flatConfigToGridState 合并原始列定义和方案配置
263
+ // 这样可以保留原始列定义中的 cellRenderer、valueFormatter、valueEnum 等属性
264
+ var mergedColumnDefs = flatConfigToGridState(currentScheme.columnConfig, allColDefsRef.current // 传入原始完整的列定义
265
+ );
266
+
267
+ // 应用合并后的列定义
268
+ apiRef.current.setGridOption("columnDefs", mergedColumnDefs);
269
+
270
+ // 设置列样式
271
+ var _require2 = require("./setting/columnGroupUtils"),
272
+ flatConfigToColumnState = _require2.flatConfigToColumnState;
273
+ var _columnState = flatConfigToColumnState(currentScheme.columnConfig);
274
+ setColumnCellClass(handelgridPlusColumnState(_columnState));
275
+ }
276
+
277
+ // 应用过滤器状态
278
+ if (currentScheme !== null && currentScheme !== void 0 && currentScheme.filterModel) {
279
+ setTimeout(function () {
280
+ if (apiRef.current) {
281
+ apiRef.current.setFilterModel(currentScheme.filterModel);
282
+ }
283
+ }, 50);
284
+ }
285
+ }, [gridKey, apiRef.current, columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme, allColDefsRef.current]);
251
286
 
252
287
  // 加载列方案
253
288
  // 仅用于设置列样式,不改变列结构
@@ -258,16 +293,10 @@ function AgGridPlus(props) {
258
293
 
259
294
  // 只有当有 columnConfig 时才设置列样式
260
295
  if (columnSchemeManager !== null && columnSchemeManager !== void 0 && (_columnSchemeManager$ = columnSchemeManager.currentScheme) !== null && _columnSchemeManager$ !== void 0 && _columnSchemeManager$.columnConfig) {
261
- var _require = require("./setting/columnGroupUtils"),
262
- flatConfigToColumnState = _require.flatConfigToColumnState;
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
- });
270
- setColumnCellClass(handelgridPlusColumnState(_columnState));
296
+ var _require3 = require("./setting/columnGroupUtils"),
297
+ flatConfigToColumnState = _require3.flatConfigToColumnState;
298
+ var _columnState2 = flatConfigToColumnState(columnSchemeManager.currentScheme.columnConfig);
299
+ setColumnCellClass(handelgridPlusColumnState(_columnState2));
271
300
 
272
301
  // 【重要】不再调用 applyColumnState
273
302
  // 原因:
@@ -279,6 +308,7 @@ function AgGridPlus(props) {
279
308
 
280
309
  // 【修复】使用 applyColumnState 来应用列的顺序、宽度、隐藏等状态
281
310
  // applyColumnState 是 AG-Grid 推荐的方式,专门用于控制列状态
311
+ // 【重要】使用 defaultState: false 确保只更新方案中保存的属性,保留其他原始列属性
282
312
  useEffect(function () {
283
313
  var currentScheme = columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme;
284
314
  if (!apiRef.current || !currentScheme) {
@@ -287,15 +317,18 @@ function AgGridPlus(props) {
287
317
 
288
318
  // 如果有 columnConfig,使用 applyColumnState 应用列状态
289
319
  if (currentScheme.columnConfig && currentScheme.columnConfig.length > 0) {
290
- var _require2 = require("./setting/columnGroupUtils"),
291
- flatConfigToColumnState = _require2.flatConfigToColumnState;
292
- var _columnState2 = flatConfigToColumnState(currentScheme.columnConfig);
320
+ var _require4 = require("./setting/columnGroupUtils"),
321
+ flatConfigToColumnState = _require4.flatConfigToColumnState;
322
+ var _columnState3 = flatConfigToColumnState(currentScheme.columnConfig);
293
323
 
294
324
  // 使用 applyColumnState 应用列状态
295
- // applyOrder: true 表示按照 state 数组的顺序重新排列列
325
+ // applyOrder: true - 按照 state 数组的顺序重新排列列
326
+ // defaultState: undefined - 【关键】不提供默认状态,只更新方案中指定的属性,保留其他原始列属性
296
327
  apiRef.current.applyColumnState({
297
- state: _columnState2,
328
+ state: _columnState3,
298
329
  applyOrder: true
330
+ // 不设置 defaultState,这样只会更新 state 中指定的属性
331
+ // 保留列定义中的 cellRenderer、valueFormatter、headerName 等属性
299
332
  });
300
333
  }
301
334
 
@@ -474,14 +507,6 @@ function AgGridPlus(props) {
474
507
  var cols = getTableColumns([dataForTypeInference]);
475
508
  allColDefsRef.current = cols; // 同步更新 ref
476
509
 
477
- console.log('[AgGridPlus] allColDefs 重新计算:', {
478
- childrenCount: React.Children.count(children),
479
- hasPropsColumnDefs: !!props.columnDefs,
480
- extensibleColumnsCount: Object.keys(extensibleColumns || {}).length,
481
- gridKey: gridKey,
482
- colsCount: cols.length,
483
- usingCachedData: !!firstRowDataRef.current
484
- });
485
510
  return cols;
486
511
  }, [React.Children.count(children), props.columnDefs, extensibleColumns, gridKey]);
487
512
 
@@ -892,10 +917,12 @@ function AgGridPlus(props) {
892
917
  var currentScheme = columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme;
893
918
 
894
919
  // 【修复】优先使用方案的 columnConfig,避免被默认逻辑覆盖
920
+ // 【关键修复】传入 allColDefsRef.current 以保留 cellRenderer、valueEnum 等属性
895
921
  if (currentScheme !== null && currentScheme !== void 0 && currentScheme.columnConfig && currentScheme.columnConfig.length > 0) {
896
- var _require3 = require("./setting/columnGroupUtils"),
897
- flatConfigToGridState = _require3.flatConfigToGridState;
898
- var gridColumnDefs = flatConfigToGridState(currentScheme.columnConfig);
922
+ var _require5 = require("./setting/columnGroupUtils"),
923
+ flatConfigToGridState = _require5.flatConfigToGridState;
924
+ var gridColumnDefs = flatConfigToGridState(currentScheme.columnConfig, allColDefsRef.current // 传入原始完整的列定义
925
+ );
899
926
  return gridColumnDefs;
900
927
  }
901
928
 
@@ -936,7 +963,8 @@ function AgGridPlus(props) {
936
963
  });
937
964
  var processedColumns = processColumnGroups(columnDefs);
938
965
  return processedColumns;
939
- }, [columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme, React.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass]);
966
+ }, [columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme, React.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass, allColDefsRef.current // 添加到依赖项
967
+ ]);
940
968
 
941
969
  // 构建查询表单项(带 order 属性)
942
970
  var queryFormItems = useMemo(function () {
@@ -981,6 +1009,8 @@ function AgGridPlus(props) {
981
1009
  return {
982
1010
  extensibleColumns: extensibleColumns,
983
1011
  columnState: gridPlusColumnState,
1012
+ allColDefs: allColDefsRef.current,
1013
+ // 【修复】传入原始完整的列定义
984
1014
  onSaveColumnState: onSaveColumnState,
985
1015
  applyToGlobal: applyToGlobal,
986
1016
  resetCurrent: resetCurrent,
@@ -991,7 +1021,9 @@ function AgGridPlus(props) {
991
1021
  updateQueryOrder: setQueryItemsOrder,
992
1022
  queryFormItems: queryFormItems
993
1023
  };
994
- }, [extensibleColumns, gridPlusColumnState, onSaveColumnState, applyToGlobal, resetCurrent, resetAll, columnSchemeManager, querySchemeManager, queryItemsOrder, queryFormItems]);
1024
+ }, [extensibleColumns, gridPlusColumnState, allColDefsRef.current,
1025
+ // 【修复】添加到依赖数组
1026
+ onSaveColumnState, applyToGlobal, resetCurrent, resetAll, columnSchemeManager, querySchemeManager, queryItemsOrder, queryFormItems]);
995
1027
  return /*#__PURE__*/React.createElement(GridPlusContext.Provider, {
996
1028
  value: gridPlusContextValue
997
1029
  }, /*#__PURE__*/React.createElement(Spin, {
@@ -1061,12 +1093,13 @@ function AgGridPlus(props) {
1061
1093
  onSaveColumnState: onColumnStateChanged
1062
1094
  })]
1063
1095
  }), /*#__PURE__*/React.createElement(AgGridReact, _extends({
1064
- className: "ag-theme-custom"
1096
+ theme: agGridTheme
1065
1097
  }, rest, {
1066
1098
  localeText: localeText,
1067
1099
  gridOptions: {
1068
1100
  enableCellTextSelection: true,
1069
- ensureDomOrder: true
1101
+ ensureDomOrder: true,
1102
+ columnHoverHighlight: true
1070
1103
  },
1071
1104
  overlayNoRowsTemplate: createSafeHtmlTemplate(overlayNoRowsTemplateText || '没有找到数据,试试调整筛选条件吧!'),
1072
1105
  enableRangeSelection: true,
@@ -1094,8 +1127,8 @@ function AgGridPlus(props) {
1094
1127
  onDragStopped: function onDragStopped(e) {
1095
1128
  if (apiRef.current) {
1096
1129
  var _apiRef$current5;
1097
- var _columnState3 = (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 ? void 0 : _apiRef$current5.getColumnState();
1098
- setColumnState(_columnState3);
1130
+ var _columnState4 = (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 ? void 0 : _apiRef$current5.getColumnState();
1131
+ setColumnState(_columnState4);
1099
1132
 
1100
1133
  // onColumnStateChanged && onColumnStateChanged(columnState)
1101
1134
  }
@@ -10,6 +10,11 @@ export interface GridPlusContextValue {
10
10
  * 当前表格的列状态信息,包括列的显示/隐藏、顺序、宽度等
11
11
  */
12
12
  columnState: any;
13
+ /**
14
+ * 原始完整的列定义,包含所有自定义属性(cellRenderer、valueFormatter、valueEnum 等)
15
+ * 用于列方案应用时保留这些属性
16
+ */
17
+ allColDefs?: any[];
13
18
  /**
14
19
  * 保存当前表格的列状态到服务器(仅保存当前表格)
15
20
  * @param gridKey 表格唯一标识
@@ -31,6 +31,6 @@ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBo
31
31
  * 重置错误状态,重新渲染组件
32
32
  */
33
33
  handleRetry: () => void;
34
- render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
34
+ render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
35
35
  }
36
36
  export {};
@@ -2,7 +2,6 @@ import AgGridPlus from "./ag-gridPlus";
2
2
  import { AgGridColumn } from "./interface";
3
3
  import { GridPlusContext } from "./context/gridContext";
4
4
  import { useGridPlusColumnState } from "./hooks/useGridPlusColumnState";
5
- import "./ag-grid-theme-builder.css";
6
5
  export { AgGridPlus, AgGridColumn, GridPlusContext, useGridPlusColumnState };
7
6
  export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
8
7
  export { useColumnSchemes, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, SchemeSelector, SchemeManager } from "./schemes";
@@ -2,7 +2,6 @@ import AgGridPlus from "./ag-gridPlus";
2
2
  import { AgGridColumn } from "./interface";
3
3
  import { GridPlusContext } from "./context/gridContext";
4
4
  import { useGridPlusColumnState } from "./hooks/useGridPlusColumnState";
5
- import "./ag-grid-theme-builder.css";
6
5
  export { AgGridPlus, AgGridColumn, GridPlusContext, useGridPlusColumnState };
7
6
  export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
8
7
 
@@ -13,7 +13,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
13
13
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
14
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
15
15
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
- import React, { useState, useCallback, useMemo, useEffect } from 'react';
16
+ import React, { useState, useCallback, useMemo, useEffect, useContext } from 'react';
17
17
  import { Modal, Tabs, Space, Button, Input, message, Popconfirm, Table, Tag, Tooltip, Card, Row, Col, Empty, Radio } from 'antd';
18
18
  import { SaveOutlined, ReloadOutlined, EditOutlined, DeleteOutlined, StarOutlined, StarFilled, AppstoreOutlined, UnorderedListOutlined, SearchOutlined } from '@ant-design/icons';
19
19
  import { createForm, onFormInit } from '@formily/core';
@@ -21,6 +21,7 @@ import { gridStateToFlatConfig, flatConfigToGridState, isOldSchemeData, migrateO
21
21
  import ColumnConfigTable from "./ColumnConfigTable";
22
22
  import processColumnGroups from "../_utils/processColumnGroups";
23
23
  import DraggableModal from "../../draggableModal";
24
+ import { GridPlusContext } from "../context/gridContext";
24
25
  var TabPane = Tabs.TabPane;
25
26
  var TextArea = Input.TextArea;
26
27
  /**
@@ -75,11 +76,15 @@ var ColumnSetting = function ColumnSetting(_ref) {
75
76
  viewMode = _useState18[0],
76
77
  setViewMode = _useState18[1];
77
78
 
78
- // 保存原始列定义,用于取消时恢复
79
+ // 【修复】从 Context 获取原始完整的列定义
80
+ var gridPlusContext = useContext(GridPlusContext);
81
+ var originalColumnDefs = (gridPlusContext === null || gridPlusContext === void 0 ? void 0 : gridPlusContext.allColDefs) || undefined;
82
+
83
+ // 【修复】保存快照用于取消时恢复(改名避免与Context的originalColumnDefs冲突)
79
84
  var _useState19 = useState(null),
80
85
  _useState20 = _slicedToArray(_useState19, 2),
81
- originalColumnDefs = _useState20[0],
82
- setOriginalColumnDefs = _useState20[1];
86
+ snapshotColumnDefs = _useState20[0],
87
+ setSnapshotColumnDefs = _useState20[1];
83
88
 
84
89
  /**
85
90
  * 获取列数据 - 将 Grid 的列定义转换为扁平化配置
@@ -152,11 +157,11 @@ var ColumnSetting = function ColumnSetting(_ref) {
152
157
  }
153
158
  }, [schemeManager === null || schemeManager === void 0 ? void 0 : schemeManager.currentScheme, visible, form, getColumnData]);
154
159
 
155
- // 弹窗打开时保存原始列定义,用于取消时恢复
160
+ // 【修复】弹窗打开时保存快照,用于取消时恢复
156
161
  useEffect(function () {
157
162
  if (visible) {
158
163
  var currentDefs = gridApi.getColumnDefs();
159
- setOriginalColumnDefs(currentDefs);
164
+ setSnapshotColumnDefs(currentDefs);
160
165
  }
161
166
  }, [visible, gridApi]);
162
167
 
@@ -170,31 +175,31 @@ var ColumnSetting = function ColumnSetting(_ref) {
170
175
  items: newItems
171
176
  });
172
177
 
173
- // 2. 转换为 AG-Grid 列定义
174
- var gridColumnDefs = flatConfigToGridState(newItems);
178
+ // 2. 【修复】转换为 AG-Grid 列定义,传入原始列定义以保留自定义属性
179
+ var gridColumnDefs = flatConfigToGridState(newItems, originalColumnDefs);
175
180
 
176
181
  // 3. 立即应用到 Grid(实时预览,不保存到方案)
177
182
  if (type !== 'formArrayTable') {
178
183
  gridApi.setGridOption("columnDefs", gridColumnDefs);
179
184
  }
180
- }, [form, gridApi, type]);
185
+ }, [form, gridApi, type, originalColumnDefs]);
181
186
 
182
187
  /**
183
188
  * 关闭弹窗处理 - 取消时恢复原始状态
184
189
  * 如果用户取消操作,恢复到打开弹窗前的列定义状态
185
190
  */
186
191
  var handleClose = useCallback(function () {
187
- // 如果有保存的原始状态,恢复它
188
- if (originalColumnDefs && type !== 'formArrayTable') {
189
- gridApi.setGridOption("columnDefs", originalColumnDefs);
192
+ // 【修复】如果有保存的快照,恢复它
193
+ if (snapshotColumnDefs && type !== 'formArrayTable') {
194
+ gridApi.setGridOption("columnDefs", snapshotColumnDefs);
190
195
  }
191
196
 
192
- // 清空备份
193
- setOriginalColumnDefs(null);
197
+ // 清空快照
198
+ setSnapshotColumnDefs(null);
194
199
 
195
200
  // 调用父组件的 onClose
196
201
  onClose();
197
- }, [originalColumnDefs, gridApi, type, onClose]);
202
+ }, [snapshotColumnDefs, gridApi, type, onClose]);
198
203
 
199
204
  /**
200
205
  * 保存列配置
@@ -219,8 +224,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
219
224
  message.info('检测到旧版本配置,已自动迁移到新格式');
220
225
  }
221
226
 
222
- // 转换为 AG-Grid 的列定义
223
- gridColumnDefs = flatConfigToGridState(configToSave); // 先应用列配置到 Grid
227
+ // 【修复】转换为 AG-Grid 的列定义,传入原始列定义以保留自定义属性
228
+ gridColumnDefs = flatConfigToGridState(configToSave, originalColumnDefs); // 先应用列配置到 Grid
224
229
  if (type !== 'formArrayTable') {
225
230
  gridApi.setGridOption("columnDefs", gridColumnDefs);
226
231
  }
@@ -301,8 +306,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
301
306
  }, _callee, null, [[1, 22]]);
302
307
  })), 50);
303
308
 
304
- // 保存成功后清除备份
305
- setOriginalColumnDefs(null);
309
+ // 【修复】保存成功后清除快照
310
+ setSnapshotColumnDefs(null);
306
311
  message.success('列配置已保存');
307
312
  onClose();
308
313
  case 12:
@@ -310,7 +315,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
310
315
  return _context2.stop();
311
316
  }
312
317
  }, _callee2);
313
- })), [form, gridApi, onSaveColumnState, type, onClose, schemeManager, gridKey]);
318
+ })), [form, gridApi, onSaveColumnState, type, onClose, schemeManager, gridKey, originalColumnDefs]);
314
319
 
315
320
  // 保存为新方案
316
321
  var handleSaveScheme = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
@@ -332,7 +337,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
332
337
  }
333
338
  values = form.values;
334
339
  columnConfigToSave = values.items; // 直接使用 FlatColumnItem[] 数据
335
- processedColumns = processColumnGroups(values.items); // 先应用到 Grid
340
+ // 【修复】传入原始列定义以保留自定义属性
341
+ processedColumns = processColumnGroups(values.items, originalColumnDefs); // 先应用到 Grid
336
342
  if (type !== 'formArrayTable') {
337
343
  gridApi.setGridOption("columnDefs", processedColumns);
338
344
  }
@@ -20,10 +20,14 @@ export declare function gridStateToFlatConfig(columnDefs: (ColDef | ColGroupDef)
20
20
  * 扁平化配置 → Grid State
21
21
  * 将扁平化数组重建为 AG-Grid 的树形结构
22
22
  *
23
+ * 【重要】如果提供了 originalColumnDefs,会合并原始列定义中的所有属性
24
+ * 这样可以保留 cellRenderer、valueFormatter、valueEnum 等自定义渲染属性
25
+ *
23
26
  * @param flatConfig 扁平化配置数组
27
+ * @param originalColumnDefs 原始列定义数组(可选),用于保留自定义属性
24
28
  * @returns AG-Grid 列定义数组
25
29
  */
26
- export declare function flatConfigToGridState(flatConfig: FlatColumnItem[]): (ColDef | ColGroupDef)[];
30
+ export declare function flatConfigToGridState(flatConfig: FlatColumnItem[], originalColumnDefs?: (ColDef | ColGroupDef)[]): (ColDef | ColGroupDef)[];
27
31
  /**
28
32
  * 旧版本数据迁移
29
33
  * 将旧的 { groupName } 结构迁移为新的树形结构
@@ -1,8 +1,17 @@
1
+ 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); }
1
2
  import _uniqueId from "lodash/uniqueId";
2
3
  /**
3
4
  * 表头分组配置工具函数
4
5
  * 负责 Grid State 与扁平化配置之间的转换
5
6
  */
7
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
+ 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; }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
11
+ 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); }
12
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
13
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
15
  /**
7
16
  * 生成唯一 ID
8
17
  */
@@ -69,10 +78,45 @@ export function gridStateToFlatConfig(columnDefs) {
69
78
  * 扁平化配置 → Grid State
70
79
  * 将扁平化数组重建为 AG-Grid 的树形结构
71
80
  *
81
+ * 【重要】如果提供了 originalColumnDefs,会合并原始列定义中的所有属性
82
+ * 这样可以保留 cellRenderer、valueFormatter、valueEnum 等自定义渲染属性
83
+ *
72
84
  * @param flatConfig 扁平化配置数组
85
+ * @param originalColumnDefs 原始列定义数组(可选),用于保留自定义属性
73
86
  * @returns AG-Grid 列定义数组
74
87
  */
75
- export function flatConfigToGridState(flatConfig) {
88
+ export function flatConfigToGridState(flatConfig, originalColumnDefs) {
89
+ /**
90
+ * 从原始列定义中查找指定字段的列定义(支持递归查找分组内的列)
91
+ */
92
+ function findOriginalColDef(field, defs) {
93
+ if (!defs) return undefined;
94
+ var _iterator = _createForOfIteratorHelper(defs),
95
+ _step;
96
+ try {
97
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
98
+ var def = _step.value;
99
+ // 检查是否是分组
100
+ if ('children' in def && def.children) {
101
+ // 递归查找分组内的列
102
+ var found = findOriginalColDef(field, def.children);
103
+ if (found) return found;
104
+ } else {
105
+ // 检查是否是目标列(使用类型守卫)
106
+ var colDef = def;
107
+ if (colDef.field === field) {
108
+ return colDef;
109
+ }
110
+ }
111
+ }
112
+ } catch (err) {
113
+ _iterator.e(err);
114
+ } finally {
115
+ _iterator.f();
116
+ }
117
+ return undefined;
118
+ }
119
+
76
120
  /**
77
121
  * 递归构建树形结构
78
122
  */
@@ -95,6 +139,25 @@ export function flatConfigToGridState(flatConfig) {
95
139
  };
96
140
  } else {
97
141
  // 构建列节点
142
+ // 查找原始列定义
143
+ var originalDef = item.field ? findOriginalColDef(item.field, originalColumnDefs) : undefined;
144
+
145
+ // 如果找到原始列定义,合并所有属性
146
+ if (originalDef) {
147
+ return _objectSpread(_objectSpread({}, originalDef), {}, {
148
+ // 保留所有原始属性(cellRenderer、valueFormatter、valueEnum 等)
149
+ // 只覆盖方案中保存的属性
150
+ headerName: item.headerName,
151
+ width: item.width,
152
+ hide: item.hide,
153
+ pinned: item.pinned === 'notPinned' ? null : item.pinned,
154
+ cellClass: item.cellClass,
155
+ flex: item.flex,
156
+ suppressHeaderFilterButton: item.suppressHeaderFilterButton
157
+ });
158
+ }
159
+
160
+ // 如果没有找到原始定义,使用基本属性
98
161
  return {
99
162
  field: item.field,
100
163
  headerName: item.headerName,
@@ -0,0 +1,5 @@
1
+ /**
2
+ * AG-Grid v33 主题配置
3
+ * 使用 themeQuartz API 替代 CSS 变量方式
4
+ */
5
+ export declare const agGridTheme: import("ag-grid-community").Theme<import("ag-grid-community").ThemeDefaultParams>;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * AG-Grid v33 主题配置
3
+ * 使用 themeQuartz API 替代 CSS 变量方式
4
+ */
5
+
6
+ import { themeQuartz } from 'ag-grid-community';
7
+ export var agGridTheme = themeQuartz.withParams({
8
+ // 基础颜色
9
+ backgroundColor: '#FFFFFF',
10
+ foregroundColor: '#555B62',
11
+ accentColor: '#087AD1',
12
+ invalidColor: '#e02525',
13
+ borderColor: '#F0F0F0',
14
+ // 浏览器配置
15
+ browserColorScheme: 'light',
16
+ // 边框配置
17
+ wrapperBorder: true,
18
+ rowBorder: true,
19
+ columnBorder: true,
20
+ // 表头配置
21
+ headerBackgroundColor: '#FAFAFA',
22
+ headerFontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',
23
+ headerFontWeight: 600,
24
+ headerFontSize: 12,
25
+ headerHeight: 25,
26
+ headerTextColor: '#000000E1',
27
+ headerColumnBorder: true,
28
+ headerColumnBorderHeight: '100%',
29
+ headerVerticalPaddingScale: 0.8,
30
+ // 字体配置
31
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',
32
+ fontSize: 12,
33
+ // 单元格配置
34
+ cellTextColor: '#000000E1',
35
+ cellHorizontalPaddingScale: 0.7,
36
+ // 行配置
37
+ rowVerticalPaddingScale: 0.8,
38
+ rowHoverColor: 'color-mix(in srgb, transparent, #087AD1 12%)',
39
+ selectedRowBackgroundColor: 'color-mix(in srgb, transparent, #087AD1 8%)',
40
+ oddRowBackgroundColor: '#FFFFFF',
41
+ // 列 hover 配置
42
+ columnHoverColor: 'color-mix(in srgb, transparent, #087AD1 8%)',
43
+ // 图标尺寸
44
+ iconSize: 14,
45
+ // 边角配置
46
+ borderRadius: 2,
47
+ wrapperBorderRadius: 2,
48
+ // 范围选择
49
+ rangeSelectionBorderStyle: 'solid',
50
+ rangeSelectionBorderColor: '#087AD1',
51
+ rangeSelectionBackgroundColor: 'color-mix(in srgb, transparent, #087AD1 20%)',
52
+ // 弹窗阴影
53
+ popupShadow: '0 0 16px 0 #00000026',
54
+ dropdownShadow: '0 1px 4px 1px #babfc766',
55
+ // 拖拽配置
56
+ dragAndDropImageBackgroundColor: '#FFFFFF',
57
+ dragAndDropImageBorder: true,
58
+ // 焦点阴影
59
+ focusShadow: '0 0 0 3px color-mix(in srgb, transparent, #087AD1 50%)',
60
+ // 复选框配置
61
+ checkboxBorderWidth: 1,
62
+ checkboxUncheckedBackgroundColor: '#FFFFFF',
63
+ checkboxCheckedBackgroundColor: '#087AD1',
64
+ checkboxCheckedBorderColor: '#087AD1',
65
+ // 切换按钮配置
66
+ toggleButtonWidth: 28,
67
+ toggleButtonHeight: 18,
68
+ toggleButtonOnBackgroundColor: '#087AD1',
69
+ // 侧边栏配置
70
+ sideBarPanelWidth: 250,
71
+ spacing: 6
72
+ });
@@ -32,7 +32,7 @@ export declare const createSelectField: (title: string, options: Array<{
32
32
  required?: boolean | undefined;
33
33
  placeholder?: string | undefined;
34
34
  gridSpan?: number | undefined;
35
- mode?: "tags" | "multiple" | undefined;
35
+ mode?: "multiple" | "tags" | undefined;
36
36
  } | undefined) => any;
37
37
  /**
38
38
  * 快速创建常用字段的工具函数集合