@nokecy/qc-ui 1.0.70 → 1.0.72

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 (189) hide show
  1. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +409 -206
  2. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +30 -5
  3. package/dist/cjs/ag-grid-plus/context/gridContext.js +6 -1
  4. package/dist/cjs/ag-grid-plus/errors/ErrorBoundary.d.ts +36 -0
  5. package/dist/cjs/ag-grid-plus/errors/ErrorBoundary.js +143 -0
  6. package/dist/cjs/ag-grid-plus/errors/index.d.ts +3 -0
  7. package/dist/cjs/ag-grid-plus/errors/index.js +31 -0
  8. package/dist/cjs/ag-grid-plus/errors/types.d.ts +71 -0
  9. package/dist/cjs/ag-grid-plus/errors/types.js +137 -0
  10. package/dist/cjs/ag-grid-plus/hooks/index.d.ts +7 -0
  11. package/dist/cjs/ag-grid-plus/hooks/index.js +51 -0
  12. package/dist/cjs/ag-grid-plus/hooks/useAgGridCalculation.d.ts +88 -0
  13. package/dist/cjs/ag-grid-plus/hooks/useAgGridCalculation.js +224 -0
  14. package/dist/cjs/ag-grid-plus/hooks/useAgGridData.d.ts +91 -0
  15. package/dist/cjs/ag-grid-plus/hooks/useAgGridData.js +230 -0
  16. package/dist/cjs/ag-grid-plus/hooks/useGridPlusColumnState.d.ts +1 -8
  17. package/dist/cjs/ag-grid-plus/hooks/useGridState.d.ts +153 -0
  18. package/dist/cjs/ag-grid-plus/hooks/useGridState.js +258 -0
  19. package/dist/cjs/ag-grid-plus/index.d.ts +5 -0
  20. package/dist/cjs/ag-grid-plus/index.js +164 -0
  21. package/dist/cjs/ag-grid-plus/interface.d.ts +37 -0
  22. package/dist/cjs/ag-grid-plus/querySchemes/components/QuerySchemesManager.d.ts +21 -0
  23. package/dist/cjs/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +580 -0
  24. package/dist/cjs/ag-grid-plus/querySchemes/components/QuerySchemesManager.less +86 -0
  25. package/dist/cjs/ag-grid-plus/querySchemes/components/index.d.ts +5 -0
  26. package/dist/cjs/ag-grid-plus/querySchemes/components/index.js +12 -0
  27. package/dist/cjs/ag-grid-plus/querySchemes/constants.d.ts +17 -0
  28. package/dist/cjs/ag-grid-plus/querySchemes/constants.js +30 -0
  29. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.d.ts +10 -0
  30. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.js +65 -0
  31. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.d.ts +6 -0
  32. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.js +542 -0
  33. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.d.ts +7 -0
  34. package/dist/cjs/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.js +32 -0
  35. package/dist/cjs/ag-grid-plus/querySchemes/index.d.ts +11 -0
  36. package/dist/cjs/ag-grid-plus/querySchemes/index.js +113 -0
  37. package/dist/cjs/ag-grid-plus/querySchemes/storage/localStorageAdapter.d.ts +44 -0
  38. package/dist/cjs/ag-grid-plus/querySchemes/storage/localStorageAdapter.js +261 -0
  39. package/dist/cjs/ag-grid-plus/querySchemes/types.d.ts +143 -0
  40. package/dist/cjs/ag-grid-plus/querySchemes/types.js +5 -0
  41. package/dist/cjs/ag-grid-plus/querySchemes/utils/validator.d.ts +36 -0
  42. package/dist/cjs/ag-grid-plus/querySchemes/utils/validator.js +155 -0
  43. package/dist/cjs/ag-grid-plus/schemes/components/SchemeManager.d.ts +16 -0
  44. package/dist/cjs/ag-grid-plus/schemes/components/SchemeManager.js +342 -0
  45. package/dist/cjs/ag-grid-plus/schemes/components/SchemeManager.less +35 -0
  46. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.d.ts +20 -0
  47. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.js +289 -0
  48. package/dist/cjs/ag-grid-plus/schemes/components/SchemeSelector.less +39 -0
  49. package/dist/cjs/ag-grid-plus/schemes/components/index.d.ts +4 -0
  50. package/dist/cjs/ag-grid-plus/schemes/components/index.js +19 -0
  51. package/dist/cjs/ag-grid-plus/schemes/constants.d.ts +23 -0
  52. package/dist/cjs/ag-grid-plus/schemes/constants.js +39 -0
  53. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.d.ts +6 -0
  54. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.js +542 -0
  55. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.d.ts +7 -0
  56. package/dist/cjs/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.js +32 -0
  57. package/dist/cjs/ag-grid-plus/schemes/index.d.ts +16 -0
  58. package/dist/cjs/ag-grid-plus/schemes/index.js +124 -0
  59. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts +64 -0
  60. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.js +368 -0
  61. package/dist/cjs/ag-grid-plus/schemes/types.d.ts +126 -0
  62. package/dist/cjs/ag-grid-plus/schemes/types.js +5 -0
  63. package/dist/cjs/ag-grid-plus/schemes/utils/validator.d.ts +27 -0
  64. package/dist/cjs/ag-grid-plus/schemes/utils/validator.js +113 -0
  65. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.d.ts +17 -0
  66. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +955 -0
  67. package/dist/cjs/ag-grid-plus/setting/index.d.ts +1 -1
  68. package/dist/cjs/ag-grid-plus/setting/index.js +74 -111
  69. package/dist/cjs/ag-grid-plus/shared/hooks/useSchemeManager.d.ts +66 -0
  70. package/dist/cjs/ag-grid-plus/shared/hooks/useSchemeManager.js +648 -0
  71. package/dist/cjs/ag-grid-plus/storage/MemoryStorageAdapter.d.ts +76 -0
  72. package/dist/cjs/ag-grid-plus/storage/MemoryStorageAdapter.js +276 -0
  73. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.d.ts +114 -0
  74. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.js +615 -0
  75. package/dist/cjs/ag-grid-plus/storage/globalSyncManager.d.ts +100 -0
  76. package/dist/cjs/ag-grid-plus/storage/globalSyncManager.js +335 -0
  77. package/dist/cjs/ag-grid-plus/storage/index.d.ts +8 -0
  78. package/dist/cjs/ag-grid-plus/storage/index.js +49 -0
  79. package/dist/cjs/ag-grid-plus/storage/types.d.ts +144 -0
  80. package/dist/cjs/ag-grid-plus/storage/types.js +5 -0
  81. package/dist/cjs/ag-grid-plus/types.d.ts +310 -0
  82. package/dist/cjs/ag-grid-plus/types.js +5 -0
  83. package/dist/cjs/ag-grid-plus/utils/columnProcessors.d.ts +95 -0
  84. package/dist/cjs/ag-grid-plus/utils/columnProcessors.js +265 -0
  85. package/dist/cjs/ag-grid-plus/utils/constants.d.ts +41 -0
  86. package/dist/cjs/ag-grid-plus/utils/constants.js +56 -0
  87. package/dist/cjs/ag-grid-plus/utils/logger.d.ts +34 -0
  88. package/dist/cjs/ag-grid-plus/utils/logger.js +119 -0
  89. package/dist/cjs/ag-grid-plus/utils/sanitize.d.ts +15 -0
  90. package/dist/cjs/ag-grid-plus/utils/sanitize.js +39 -0
  91. package/dist/cjs/index.d.ts +3 -2
  92. package/dist/cjs/index.js +84 -0
  93. package/dist/esm/ag-grid-plus/ag-gridPlus.js +410 -206
  94. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +30 -5
  95. package/dist/esm/ag-grid-plus/context/gridContext.js +6 -1
  96. package/dist/esm/ag-grid-plus/errors/ErrorBoundary.d.ts +36 -0
  97. package/dist/esm/ag-grid-plus/errors/ErrorBoundary.js +137 -0
  98. package/dist/esm/ag-grid-plus/errors/index.d.ts +3 -0
  99. package/dist/esm/ag-grid-plus/errors/index.js +2 -0
  100. package/dist/esm/ag-grid-plus/errors/types.d.ts +71 -0
  101. package/dist/esm/ag-grid-plus/errors/types.js +135 -0
  102. package/dist/esm/ag-grid-plus/hooks/index.d.ts +7 -0
  103. package/dist/esm/ag-grid-plus/hooks/index.js +10 -0
  104. package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.d.ts +88 -0
  105. package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.js +217 -0
  106. package/dist/esm/ag-grid-plus/hooks/useAgGridData.d.ts +91 -0
  107. package/dist/esm/ag-grid-plus/hooks/useAgGridData.js +225 -0
  108. package/dist/esm/ag-grid-plus/hooks/useGridPlusColumnState.d.ts +1 -8
  109. package/dist/esm/ag-grid-plus/hooks/useGridState.d.ts +153 -0
  110. package/dist/esm/ag-grid-plus/hooks/useGridState.js +258 -0
  111. package/dist/esm/ag-grid-plus/index.d.ts +5 -0
  112. package/dist/esm/ag-grid-plus/index.js +6 -1
  113. package/dist/esm/ag-grid-plus/interface.d.ts +37 -0
  114. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.d.ts +21 -0
  115. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +572 -0
  116. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.less +86 -0
  117. package/dist/esm/ag-grid-plus/querySchemes/components/index.d.ts +5 -0
  118. package/dist/esm/ag-grid-plus/querySchemes/components/index.js +5 -0
  119. package/dist/esm/ag-grid-plus/querySchemes/constants.d.ts +17 -0
  120. package/dist/esm/ag-grid-plus/querySchemes/constants.js +24 -0
  121. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.d.ts +10 -0
  122. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.js +60 -0
  123. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.d.ts +6 -0
  124. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.js +537 -0
  125. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.d.ts +7 -0
  126. package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.refactored.js +27 -0
  127. package/dist/esm/ag-grid-plus/querySchemes/index.d.ts +11 -0
  128. package/dist/esm/ag-grid-plus/querySchemes/index.js +20 -0
  129. package/dist/esm/ag-grid-plus/querySchemes/storage/localStorageAdapter.d.ts +44 -0
  130. package/dist/esm/ag-grid-plus/querySchemes/storage/localStorageAdapter.js +256 -0
  131. package/dist/esm/ag-grid-plus/querySchemes/types.d.ts +143 -0
  132. package/dist/esm/ag-grid-plus/querySchemes/types.js +1 -0
  133. package/dist/esm/ag-grid-plus/querySchemes/utils/validator.d.ts +36 -0
  134. package/dist/esm/ag-grid-plus/querySchemes/utils/validator.js +144 -0
  135. package/dist/esm/ag-grid-plus/schemes/components/SchemeManager.d.ts +16 -0
  136. package/dist/esm/ag-grid-plus/schemes/components/SchemeManager.js +334 -0
  137. package/dist/esm/ag-grid-plus/schemes/components/SchemeManager.less +35 -0
  138. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.d.ts +20 -0
  139. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.js +281 -0
  140. package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.less +39 -0
  141. package/dist/esm/ag-grid-plus/schemes/components/index.d.ts +4 -0
  142. package/dist/esm/ag-grid-plus/schemes/components/index.js +2 -0
  143. package/dist/esm/ag-grid-plus/schemes/constants.d.ts +23 -0
  144. package/dist/esm/ag-grid-plus/schemes/constants.js +33 -0
  145. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.d.ts +6 -0
  146. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.js +537 -0
  147. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.d.ts +7 -0
  148. package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.refactored.js +27 -0
  149. package/dist/esm/ag-grid-plus/schemes/index.d.ts +16 -0
  150. package/dist/esm/ag-grid-plus/schemes/index.js +25 -0
  151. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts +64 -0
  152. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.js +363 -0
  153. package/dist/esm/ag-grid-plus/schemes/types.d.ts +126 -0
  154. package/dist/esm/ag-grid-plus/schemes/types.js +1 -0
  155. package/dist/esm/ag-grid-plus/schemes/utils/validator.d.ts +27 -0
  156. package/dist/esm/ag-grid-plus/schemes/utils/validator.js +104 -0
  157. package/dist/esm/ag-grid-plus/setting/ColumnSetting.d.ts +17 -0
  158. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +946 -0
  159. package/dist/esm/ag-grid-plus/setting/index.d.ts +1 -1
  160. package/dist/esm/ag-grid-plus/setting/index.js +69 -107
  161. package/dist/esm/ag-grid-plus/shared/hooks/useSchemeManager.d.ts +66 -0
  162. package/dist/esm/ag-grid-plus/shared/hooks/useSchemeManager.js +643 -0
  163. package/dist/esm/ag-grid-plus/storage/MemoryStorageAdapter.d.ts +76 -0
  164. package/dist/esm/ag-grid-plus/storage/MemoryStorageAdapter.js +273 -0
  165. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.d.ts +114 -0
  166. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.js +609 -0
  167. package/dist/esm/ag-grid-plus/storage/globalSyncManager.d.ts +100 -0
  168. package/dist/esm/ag-grid-plus/storage/globalSyncManager.js +321 -0
  169. package/dist/esm/ag-grid-plus/storage/index.d.ts +8 -0
  170. package/dist/esm/ag-grid-plus/storage/index.js +9 -0
  171. package/dist/esm/ag-grid-plus/storage/types.d.ts +144 -0
  172. package/dist/esm/ag-grid-plus/storage/types.js +1 -0
  173. package/dist/esm/ag-grid-plus/types.d.ts +310 -0
  174. package/dist/esm/ag-grid-plus/types.js +1 -0
  175. package/dist/esm/ag-grid-plus/utils/columnProcessors.d.ts +95 -0
  176. package/dist/esm/ag-grid-plus/utils/columnProcessors.js +251 -0
  177. package/dist/esm/ag-grid-plus/utils/constants.d.ts +41 -0
  178. package/dist/esm/ag-grid-plus/utils/constants.js +50 -0
  179. package/dist/esm/ag-grid-plus/utils/logger.d.ts +34 -0
  180. package/dist/esm/ag-grid-plus/utils/logger.js +114 -0
  181. package/dist/esm/ag-grid-plus/utils/sanitize.d.ts +15 -0
  182. package/dist/esm/ag-grid-plus/utils/sanitize.js +32 -0
  183. package/dist/esm/index.d.ts +3 -2
  184. package/dist/esm/index.js +8 -2
  185. package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts +1 -1
  186. package/dist/esm/standardFormDialog/withStandardForm.d.ts +2 -2
  187. package/dist/umd/qc-ui.min.css +1 -1
  188. package/dist/umd/qc-ui.min.js +1 -1
  189. package/package.json +3 -2
@@ -1,9 +1,9 @@
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); }
2
1
  import _sumBy from "lodash/sumBy";
3
2
  import _uniqueId from "lodash/uniqueId";
4
3
  import _isArray from "lodash/isArray";
5
- var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange"];
4
+ var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange", "enableQuerySchemes", "querySchemeStorageAdapter", "querySchemeManager", "enableColumnSchemes", "columnSchemeStorageAdapter", "columnSchemeManager"];
6
5
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
6
+ 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); }
7
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
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
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; }
@@ -34,12 +34,20 @@ import processColumnGroups from "./_utils/processColumnGroups";
34
34
  import flattenColumnState from "./_utils/processFormColumnState";
35
35
  import { Select } from '@formily/antd-v5';
36
36
  import { localeText } from "./locale";
37
- var Paragraph = Typography.Paragraph,
38
- Text = Typography.Text;
37
+ import { GridPlusContext } from "./context/gridContext";
38
+ import { useQuerySchemes, useQueryOrderManager } from "./querySchemes";
39
+ import { useColumnSchemes } from "./schemes";
40
+ import { useGlobalColumnAdapter, useGlobalQueryAdapter, isGlobalSyncInitialized } from "./storage/globalSyncManager";
41
+ import { createSafeHtmlTemplate } from "./utils/sanitize";
42
+ import { GridPlusError, ErrorType, ErrorSeverity } from "./errors";
43
+ import { logger } from "./utils/logger";
44
+ import { message } from 'antd';
45
+ var Text = Typography.Text;
39
46
  var getSort = function getSort(columnState) {
40
47
  return columnState ? "".concat(columnState.colId, " ").concat(columnState.sort) : "";
41
48
  };
42
49
  function AgGridPlus(props) {
50
+ var _querySchemeManager$c;
43
51
  var style = props.style,
44
52
  loadingProps = props.loading,
45
53
  gridParams = props.params,
@@ -60,6 +68,14 @@ function AgGridPlus(props) {
60
68
  overlayNoRowsTemplateText = props.overlayNoRowsTemplateText,
61
69
  queryDefaultRows = props.queryDefaultRows,
62
70
  onSelectedRowsChange = props.onSelectedRowsChange,
71
+ _props$enableQuerySch = props.enableQuerySchemes,
72
+ enableQuerySchemes = _props$enableQuerySch === void 0 ? true : _props$enableQuerySch,
73
+ querySchemeStorageAdapter = props.querySchemeStorageAdapter,
74
+ propsQuerySchemeManager = props.querySchemeManager,
75
+ _props$enableColumnSc = props.enableColumnSchemes,
76
+ enableColumnSchemes = _props$enableColumnSc === void 0 ? true : _props$enableColumnSc,
77
+ columnSchemeStorageAdapter = props.columnSchemeStorageAdapter,
78
+ propsColumnSchemeManager = props.columnSchemeManager,
63
79
  rest = _objectWithoutProperties(props, _excluded);
64
80
  var _useGridPlusColumnSta = useGridPlusColumnState(),
65
81
  onSaveColumnState = _useGridPlusColumnSta.onSaveColumnState,
@@ -111,6 +127,51 @@ function AgGridPlus(props) {
111
127
  _useState18 = _slicedToArray(_useState17, 2),
112
128
  pagination = _useState18[0],
113
129
  setPagination = _useState18[1];
130
+
131
+ // ============ 查询方案管理 ============
132
+ var _useState19 = useState([]),
133
+ _useState20 = _slicedToArray(_useState19, 2),
134
+ queryItemsOrder = _useState20[0],
135
+ setQueryItemsOrder = _useState20[1];
136
+
137
+ // 尝试获取全局适配器(如果已初始化)
138
+ var globalQueryAdapter = isGlobalSyncInitialized() ? useGlobalQueryAdapter() : undefined;
139
+ var globalColumnAdapter = isGlobalSyncInitialized() ? useGlobalColumnAdapter() : undefined;
140
+
141
+ // 自动创建查询方案管理器(如果未通过 props 提供)
142
+ var autoQuerySchemeManager = enableQuerySchemes && gridKey && !propsQuerySchemeManager ? useQuerySchemes({
143
+ gridId: gridKey,
144
+ // 优先使用全局适配器,否则使用 props 传入的适配器
145
+ storageAdapter: globalQueryAdapter || querySchemeStorageAdapter,
146
+ onSchemeChange: function onSchemeChange(scheme) {
147
+ if (scheme) {
148
+ setQueryItemsOrder(scheme.itemsOrder);
149
+ }
150
+ }
151
+ }) : undefined;
152
+
153
+ // 优先使用 props 提供的管理器,否则使用自动创建的
154
+ var querySchemeManager = propsQuerySchemeManager || autoQuerySchemeManager;
155
+
156
+ // ============ 列配置方案管理 ============
157
+ // 自动创建列配置方案管理器(如果未通过 props 提供)
158
+ var autoColumnSchemeManager = enableColumnSchemes && gridKey && !propsColumnSchemeManager ? useColumnSchemes({
159
+ gridId: gridKey,
160
+ // 优先使用全局适配器,否则使用 props 传入的适配器
161
+ storageAdapter: globalColumnAdapter || columnSchemeStorageAdapter,
162
+ enableAutoSave: true,
163
+ onSchemeChange: function onSchemeChange(scheme) {
164
+ if (scheme && apiRef.current) {
165
+ apiRef.current.applyColumnState({
166
+ state: scheme.columnState,
167
+ applyOrder: true
168
+ });
169
+ }
170
+ }
171
+ }) : undefined;
172
+
173
+ // 优先使用 props 提供的管理器,否则使用自动创建的
174
+ var columnSchemeManager = propsColumnSchemeManager || autoColumnSchemeManager;
114
175
  useImperativeHandle(propsGridRef, function () {
115
176
  return gridRef.current;
116
177
  });
@@ -165,27 +226,42 @@ function AgGridPlus(props) {
165
226
  };
166
227
  }, []);
167
228
 
168
- //请求数据
169
- useEffect(function () {
170
- if (ready && request) {
171
- onRequest(queryFilter);
172
- }
173
- }, [ready, JSON.stringify(gridParams), JSON.stringify(sortColumn), pagination.pageSize, pagination.current]);
174
229
  // 测试列数据
175
230
  // 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}]
176
231
 
177
232
  // 加载列方案
178
233
  useEffect(function () {
179
- if (gridPlusColumnState && gridKey && gridPlusColumnState[gridKey] && apiRef.current) {
180
- setColumnCellClass(handelgridPlusColumnState(gridPlusColumnState[gridKey]));
181
- setTimeout(function () {
182
- apiRef.current.applyColumnState({
183
- state: gridPlusColumnState[gridKey],
184
- applyOrder: true
185
- });
186
- }, 10);
187
- }
188
- }, [gridPlusColumnState, apiRef.current]);
234
+ if (!gridPlusColumnState || !gridKey || !apiRef.current) return;
235
+ var currentState = gridPlusColumnState[gridKey];
236
+ if (!currentState) return;
237
+ setColumnCellClass(handelgridPlusColumnState(currentState));
238
+ var timer = setTimeout(function () {
239
+ var _apiRef$current;
240
+ (_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 || _apiRef$current.applyColumnState({
241
+ state: currentState,
242
+ applyOrder: true
243
+ });
244
+ }, 10);
245
+ return function () {
246
+ return clearTimeout(timer);
247
+ };
248
+ }, [gridPlusColumnState, gridKey]);
249
+
250
+ // 当 gridApi 就绪且有当前方案时,应用列方案
251
+ useEffect(function () {
252
+ var currentScheme = columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme;
253
+ if (!apiRef.current || !currentScheme) return;
254
+ var timer = setTimeout(function () {
255
+ var _apiRef$current2;
256
+ (_apiRef$current2 = apiRef.current) === null || _apiRef$current2 === void 0 || _apiRef$current2.applyColumnState({
257
+ state: currentScheme.columnState,
258
+ applyOrder: true
259
+ });
260
+ }, 10);
261
+ return function () {
262
+ return clearTimeout(timer);
263
+ };
264
+ }, [columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme]);
189
265
  useEffect(function () {
190
266
  setRowData(dataSource || propRowData || []);
191
267
  }, [dataSource, propRowData]);
@@ -194,49 +270,252 @@ function AgGridPlus(props) {
194
270
  useEffect(function () {
195
271
  loadingProps !== undefined && setLoading(loadingProps);
196
272
  }, [loadingProps]);
273
+
274
+ // 辅助函数: 获取数据类型
275
+ var getDataType = function getDataType(data, colName, valueEnum) {
276
+ if (typeof data[colName] === 'number') {
277
+ // 如果有枚举值,说明是分类数据,不进行计算;否则默认求和
278
+ var shouldCalculate = !valueEnum || valueEnum.length === 0;
279
+ return {
280
+ type: "number",
281
+ calculateType: shouldCalculate ? "sum" : false
282
+ };
283
+ }
284
+ return undefined;
285
+ };
286
+
287
+ // 辅助函数: 自定义单元格渲染器
288
+ var cellRenderer = function cellRenderer(params) {
289
+ var value = params.value,
290
+ node = params.node,
291
+ colDef = params.colDef;
292
+ //@ts-ignore
293
+ if (node.isRowPinned() || !colDef.customCellRenderer) {
294
+ return value;
295
+ }
296
+ //@ts-ignore
297
+ return colDef.customCellRenderer(params);
298
+ };
299
+
300
+ // 获取表格列定义
301
+ var getTableColumns = function getTableColumns(rowDataList) {
302
+ var data = rowDataList.length > 0 ? rowDataList[0] : {};
303
+ var columnProps = React.Children.map(children, function (child, index) {
304
+ return _objectSpread({}, child.props);
305
+ });
306
+ var columnDefs = !columnProps ? props.columnDefs ? props.columnDefs : [] : columnProps;
307
+ columnDefs = columnDefs.map(function (col) {
308
+ var dataType = getDataType(data, col.field || '', col.valueEnum);
309
+ if (col.valueEnum && Array.isArray(col.valueEnum)) {
310
+ var _defaultItems$0$value, _defaultItems$;
311
+ // 统计默认值
312
+ var valueEnum = col.valueEnum; // 保存引用以便TypeScript理解
313
+ var defaultItems = valueEnum.filter(function (item) {
314
+ return item.default;
315
+ });
316
+ var isMultiple = defaultItems.length > 1;
317
+ var defaultValue = isMultiple ? defaultItems.map(function (item) {
318
+ return item.value;
319
+ }) : (_defaultItems$0$value = (_defaultItems$ = defaultItems[0]) === null || _defaultItems$ === void 0 ? void 0 : _defaultItems$.value) !== null && _defaultItems$0$value !== void 0 ? _defaultItems$0$value : undefined;
320
+ var valueFormatter = function valueFormatter(params) {
321
+ var match = valueEnum.find(function (item) {
322
+ return item.value == params.value;
323
+ });
324
+ return match ? match.label : params.value;
325
+ };
326
+ return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
327
+ cellRenderer: function cellRenderer(params) {
328
+ var match = valueEnum.find(function (item) {
329
+ return item.value == params.value;
330
+ });
331
+ if (match) {
332
+ var color = match.color || '#ffffff';
333
+ return /*#__PURE__*/React.createElement("span", {
334
+ style: {
335
+ color: color,
336
+ backgroundColor: 'transparent',
337
+ fontWeight: 500
338
+ }
339
+ }, match.label);
340
+ }
341
+ return params.value;
342
+ },
343
+ filterParams: _objectSpread(_objectSpread({}, col.filterParams || {}), {}, {
344
+ valueFormatter: valueFormatter
345
+ }),
346
+ searchComponent: Select,
347
+ searchComponentProps: {
348
+ options: col.valueEnum.map(function (item) {
349
+ return {
350
+ label: item.label,
351
+ value: item.value
352
+ };
353
+ }),
354
+ mode: isMultiple ? "multiple" : undefined,
355
+ defaultValue: defaultValue
356
+ }
357
+ });
358
+ }
359
+ if (col.type || typeof col.cellRenderer == "string") {
360
+ return _objectSpread({}, col);
361
+ }
362
+ //@ts-ignore
363
+ if (col !== null && col !== void 0 && col.ellipsis) {
364
+ return _objectSpread(_objectSpread({}, col), {}, {
365
+ cellRenderer: function cellRenderer(_ref) {
366
+ var value = _ref.value;
367
+ return /*#__PURE__*/React.createElement(Text, {
368
+ ellipsis: {
369
+ tooltip: value
370
+ },
371
+ style: {
372
+ display: 'flex',
373
+ justifyContent: 'center',
374
+ alignItems: 'center'
375
+ }
376
+ }, value);
377
+ }
378
+ });
379
+ }
380
+ if (col.cellRenderer) {
381
+ return _objectSpread(_objectSpread({}, col), {}, {
382
+ customCellRenderer: col.cellRenderer,
383
+ cellRenderer: cellRenderer
384
+ });
385
+ }
386
+ return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
387
+ customCellRenderer: col.cellRenderer,
388
+ cellRenderer: cellRenderer
389
+ });
390
+ });
391
+ extensibleColumns && gridKey && extensibleColumns[gridKey] && extensibleColumns[gridKey].map(function (column) {
392
+ columnDefs.push({
393
+ field: column.name,
394
+ headerName: column.displayName,
395
+ type: column.propertyType,
396
+ width: column.width,
397
+ customCellRenderer: column.cellRenderer,
398
+ cellRenderer: cellRenderer
399
+ });
400
+ });
401
+ return columnDefs;
402
+ };
403
+
404
+ // 计算所有列定义(包括隐藏的列)
405
+ var allColDefs = useMemo(function () {
406
+ return getTableColumns(rowData);
407
+ }, [React.Children.count(children), props.columnDefs, extensibleColumns, rowData, gridKey]);
408
+
409
+ // 稳定化 gridParams 和 sortColumn 的引用
410
+ var stableGridParams = useMemo(function () {
411
+ return gridParams;
412
+ }, [JSON.stringify(gridParams)]);
413
+ var stableSortColumn = useMemo(function () {
414
+ return sortColumn;
415
+ }, [JSON.stringify(sortColumn)]);
197
416
  var onGridReady = useCallback(function (params) {
198
- var _apiRef$current;
417
+ var _apiRef$current3;
199
418
  apiRef.current = params.api;
200
419
  onReady && onReady(params);
201
420
  ///@ts-ignore
202
421
  dataSource && setRowData(dataSource);
203
- setColumnState((_apiRef$current = apiRef.current) === null || _apiRef$current === void 0 ? void 0 : _apiRef$current.getColumnState());
422
+ setColumnState((_apiRef$current3 = apiRef.current) === null || _apiRef$current3 === void 0 ? void 0 : _apiRef$current3.getColumnState());
204
423
  sortChanged(params.api);
205
424
  setReady(true);
206
425
  }, [dataSource]);
207
- var onRequest = function onRequest(queryFilter) {
426
+ var onRequest = useCallback(function (queryFilter) {
427
+ if (!request) return;
208
428
  setLoading(true);
209
- var filter = convertFilterModel(queryFilter, allColDefs);
210
- var params = _objectSpread(_objectSpread({
211
- filter: filter
212
- }, gridParams), {}, {
213
- current: pagination.current,
214
- skipCount: pagination.current == 1 ? 0 : (pagination.current - 1) * pagination.pageSize,
215
- maxResultCount: pagination.pageSize,
216
- sorter: getSort(sortColumn)
429
+ logger.debug('开始请求数据', {
430
+ queryFilter: queryFilter,
431
+ pagination: pagination
217
432
  });
218
- request && request(params, undefined, queryFilter).then(function (response) {
219
- var _apiRef$current2;
220
- var rowData = response.data;
221
- var rowCount = response.total;
222
- setRowData(rowData);
223
- // 刷新所有单元格
224
- (_apiRef$current2 = apiRef.current) === null || _apiRef$current2 === void 0 || _apiRef$current2.refreshCells({
225
- force: true
433
+ try {
434
+ var filter = convertFilterModel(queryFilter, allColDefs);
435
+ var params = _objectSpread(_objectSpread({
436
+ filter: filter
437
+ }, stableGridParams), {}, {
438
+ current: pagination.current,
439
+ skipCount: pagination.current == 1 ? 0 : (pagination.current - 1) * pagination.pageSize,
440
+ maxResultCount: pagination.pageSize,
441
+ sorter: getSort(stableSortColumn)
226
442
  });
227
- setPagination(_objectSpread(_objectSpread({}, pagination), {}, {
228
- total: rowCount
229
- }));
230
- setLoading(false);
231
- }).catch(function () {
443
+ request(params, undefined, queryFilter).then(function (response) {
444
+ var _apiRef$current4;
445
+ // 验证响应数据格式
446
+ if (!response || _typeof(response) !== 'object') {
447
+ throw new GridPlusError('服务器返回数据格式错误', ErrorType.DATA_FORMAT_ERROR, ErrorSeverity.HIGH, {
448
+ response: response
449
+ });
450
+ }
451
+ if (!Array.isArray(response.data)) {
452
+ throw new GridPlusError('返回的数据列表格式错误', ErrorType.DATA_FORMAT_ERROR, ErrorSeverity.HIGH, {
453
+ responseData: response.data
454
+ });
455
+ }
456
+ var rowData = response.data;
457
+ var rowCount = response.total;
458
+ setRowData(rowData);
459
+ // 刷新所有单元格
460
+ (_apiRef$current4 = apiRef.current) === null || _apiRef$current4 === void 0 || _apiRef$current4.refreshCells({
461
+ force: true
462
+ });
463
+ setPagination(function (prev) {
464
+ return _objectSpread(_objectSpread({}, prev), {}, {
465
+ total: rowCount
466
+ });
467
+ });
468
+ setLoading(false);
469
+ logger.info('数据请求成功', {
470
+ rowCount: rowCount
471
+ });
472
+ }).catch(function (error) {
473
+ setLoading(false);
474
+
475
+ // 包装错误为 GridPlusError
476
+ var gridError = error instanceof GridPlusError ? error : new GridPlusError(error.message || '数据加载失败', error.name === 'NetworkError' || error.code === 'ECONNABORTED' ? ErrorType.NETWORK_ERROR : ErrorType.SERVER_ERROR, ErrorSeverity.MEDIUM, {
477
+ params: params,
478
+ originalError: error
479
+ }, error);
480
+
481
+ // 记录错误
482
+ logger.error('数据请求失败', gridError.getDetails());
483
+
484
+ // 显示用户友好的错误提示
485
+ message.error(gridError.getUserMessage());
486
+
487
+ // 如果用户提供了错误处理回调,调用它
488
+ if (props.onError) {
489
+ props.onError(gridError);
490
+ }
491
+ });
492
+ } catch (error) {
232
493
  setLoading(false);
233
- });
234
- };
494
+
495
+ // 处理同步错误(如 convertFilterModel 抛出的错误)
496
+ var gridError = new GridPlusError(error instanceof Error ? error.message : '数据处理失败', ErrorType.DATA_FORMAT_ERROR, ErrorSeverity.HIGH, {
497
+ queryFilter: queryFilter,
498
+ allColDefs: allColDefs
499
+ }, error instanceof Error ? error : undefined);
500
+ logger.error('数据请求处理失败', gridError.getDetails());
501
+ message.error(gridError.getUserMessage());
502
+ if (props.onError) {
503
+ props.onError(gridError);
504
+ }
505
+ }
506
+ }, [request, stableGridParams, stableSortColumn, pagination.pageSize, pagination.current, allColDefs, props.onError]);
507
+
508
+ // 请求数据 - 当 ready 状态变化或 request 函数变化时触发
509
+ useEffect(function () {
510
+ if (ready && request) {
511
+ onRequest(queryFilter);
512
+ }
513
+ }, [ready, request, queryFilter, onRequest]);
235
514
  var handelgridPlusColumnState = function handelgridPlusColumnState(columnState) {
236
515
  var cellMap = {};
237
516
  if (_isArray(columnState)) {
238
- columnState.map(function (item) {
239
- if (item.cellClass || item.suppressHeaderFilterButton !== undefined) {
517
+ columnState.forEach(function (item) {
518
+ if (item.field && (item.cellClass || item.suppressHeaderFilterButton !== undefined || item.groupName)) {
240
519
  // 使用对象存储多个字段的值
241
520
  cellMap[item.field] = {
242
521
  cellClass: item.cellClass,
@@ -256,19 +535,21 @@ function AgGridPlus(props) {
256
535
  });
257
536
  setSortColumn(sortedColumn);
258
537
  };
259
- var onRefresh = function onRefresh() {
260
- request && onRequest(queryFilter);
261
- };
538
+ var onRefresh = useCallback(function () {
539
+ if (request) {
540
+ onRequest(queryFilter);
541
+ }
542
+ }, [request, onRequest, queryFilter]);
262
543
  useEffect(function () {
263
544
  gridRef.current = {
264
- onRefresh: function onRefresh() {
265
- request && onRequest(queryFilter);
266
- }
545
+ onRefresh: onRefresh
267
546
  };
268
- }, [queryFilter, JSON.stringify(gridParams), JSON.stringify(sortColumn), pagination]);
547
+ }, [onRefresh]);
269
548
  var onRowChanged = useCallback(function (e) {
270
- props.onSelectionChanged && props.onSelectionChanged(e);
271
- }, []);
549
+ if (props.onSelectionChanged) {
550
+ props.onSelectionChanged(e);
551
+ }
552
+ }, [props.onSelectionChanged]);
272
553
  var onRowSelected = useCallback(function (e) {
273
554
  setSelectRow(e.data);
274
555
 
@@ -309,8 +590,10 @@ function AgGridPlus(props) {
309
590
  });
310
591
  onSelectedRowsChange(visibleSelectedRows);
311
592
  }
312
- props.onRowSelected && props.onRowSelected(e);
313
- }, [onSelectedRowsChange, props.getRowId]);
593
+ if (props.onRowSelected) {
594
+ props.onRowSelected(e);
595
+ }
596
+ }, [onSelectedRowsChange, props.getRowId, props.onRowSelected]);
314
597
  var onColumnStateChanged = function onColumnStateChanged(columnState) {
315
598
  if (gridKey) {
316
599
  onSaveColumnState && onSaveColumnState(gridKey, columnState);
@@ -362,24 +645,27 @@ function AgGridPlus(props) {
362
645
  maximumFractionDigits: 2
363
646
  });
364
647
  };
365
-
366
648
  // sum 求和 avg 平均值 standardDeviation 标准差
367
649
  var calculatefun = function calculatefun(calcColFields, displayedData) {
368
650
  var calculateArrCopy = [];
369
651
  var calculateData = {
370
652
  id: _uniqueId()
371
653
  };
372
- calcColFields.map(function (i) {
654
+ calcColFields.forEach(function (i) {
373
655
  if (!i.cellRenderer) {
374
656
  switch (i.calculateType) {
375
657
  case "sum":
376
- calculateData[i.field] = i.formatWithCommas ? handelNumber(sumFun(i.field, displayedData).toFixed(i.transactionAmount)) : Number(sumFun(i.field, displayedData).toFixed(i.transactionAmount));
658
+ var sumPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
659
+ var sumValue = Number(sumFun(i.field, displayedData).toFixed(sumPrecision));
660
+ calculateData[i.field] = i.formatWithCommas ? handelNumber(sumValue) : sumValue;
377
661
  break;
378
662
  case "avg":
379
- calculateData[i.field] = Number(avgFun(i.field, displayedData).toFixed(i.transactionAmount));
663
+ var avgPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
664
+ calculateData[i.field] = Number(avgFun(i.field, displayedData).toFixed(avgPrecision));
380
665
  break;
381
666
  case "standardDeviation":
382
- calculateData[i.field] = Number(standardDeviationFun(i.field, displayedData).toFixed(i.transactionAmount));
667
+ var stdPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
668
+ calculateData[i.field] = Number(standardDeviationFun(i.field, displayedData).toFixed(stdPrecision));
383
669
  break;
384
670
  default:
385
671
  break;
@@ -391,131 +677,7 @@ function AgGridPlus(props) {
391
677
  }
392
678
  return calculateArrCopy;
393
679
  };
394
- var getDataType = function getDataType(data, colName, valueEnum) {
395
- if (typeof data[colName] === 'number') {
396
- // 如果有枚举值,说明是分类数据,不进行计算;否则默认求和
397
- var shouldCalculate = !valueEnum || valueEnum.length === 0;
398
- return {
399
- type: "number",
400
- calculateType: shouldCalculate ? "sum" : false
401
- // cellStyle: { 'text-align': 'right' }
402
- };
403
- }
404
- return undefined;
405
- };
406
- var cellRenderer = function cellRenderer(params) {
407
- var value = params.value,
408
- node = params.node,
409
- colDef = params.colDef;
410
- //@ts-ignore
411
- if (node.isRowPinned() || !colDef.customCellRenderer) {
412
- return value;
413
- }
414
- //@ts-ignore
415
- return colDef.customCellRenderer(params);
416
- };
417
- var getTableColumns = function getTableColumns(rowDataList) {
418
- var data = rowDataList.length > 0 ? rowDataList[0] : {};
419
- var columnProps = React.Children.map(children, function (child, index) {
420
- return _objectSpread({}, child.props);
421
- });
422
- var columnDefs = !columnProps ? props.columnDefs ? props.columnDefs : [] : columnProps;
423
- columnDefs = columnDefs.map(function (col) {
424
- var dataType = getDataType(data, col.field, col.valueEnum);
425
- if (col.valueEnum && Array.isArray(col.valueEnum)) {
426
- var _defaultItems$0$value, _defaultItems$;
427
- // 统计默认值
428
- var defaultItems = col.valueEnum.filter(function (item) {
429
- return item.default;
430
- });
431
- var isMultiple = defaultItems.length > 1;
432
- var defaultValue = isMultiple ? defaultItems.map(function (item) {
433
- return item.value;
434
- }) : (_defaultItems$0$value = (_defaultItems$ = defaultItems[0]) === null || _defaultItems$ === void 0 ? void 0 : _defaultItems$.value) !== null && _defaultItems$0$value !== void 0 ? _defaultItems$0$value : undefined;
435
- var valueFormatter = function valueFormatter(params) {
436
- var match = col.valueEnum.find(function (item) {
437
- return item.value == params.value;
438
- });
439
- return match ? match.label : params.value;
440
- };
441
- return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
442
- cellRenderer: function cellRenderer(params) {
443
- var match = col.valueEnum.find(function (item) {
444
- return item.value == params.value;
445
- });
446
- if (match) {
447
- var color = match.color || '#ffffff';
448
- return /*#__PURE__*/React.createElement("span", {
449
- style: {
450
- color: color,
451
- backgroundColor: 'transparent',
452
- fontWeight: 500
453
- }
454
- }, match.label);
455
- }
456
- return params.value;
457
- },
458
- filterParams: _objectSpread(_objectSpread({}, col.filterParams || {}), {}, {
459
- valueFormatter: valueFormatter
460
- }),
461
- searchComponent: Select,
462
- searchComponentProps: {
463
- options: col.valueEnum.map(function (item) {
464
- return {
465
- label: item.label,
466
- value: item.value
467
- };
468
- }),
469
- mode: isMultiple ? "multiple" : undefined,
470
- defaultValue: defaultValue
471
- }
472
- });
473
- }
474
- if (col.type || typeof col.cellRenderer == "string") {
475
- return _objectSpread({}, col);
476
- }
477
- //@ts-ignore
478
- if (col !== null && col !== void 0 && col.ellipsis) {
479
- return _objectSpread(_objectSpread({}, col), {}, {
480
- cellRenderer: function cellRenderer(_ref) {
481
- var value = _ref.value;
482
- return /*#__PURE__*/React.createElement(Text, {
483
- ellipsis: {
484
- tooltip: value
485
- },
486
- style: {
487
- display: 'flex',
488
- justifyContent: 'center',
489
- alignItems: 'center'
490
- }
491
- }, value);
492
- }
493
- });
494
- }
495
- if (col.cellRenderer) {
496
- return _objectSpread(_objectSpread({}, col), {}, {
497
- customCellRenderer: col.cellRenderer,
498
- cellRenderer: cellRenderer
499
- });
500
- }
501
- return _objectSpread(_objectSpread(_objectSpread({}, dataType), col), {}, {
502
- customCellRenderer: col.cellRenderer,
503
- cellRenderer: cellRenderer
504
- });
505
- });
506
- extensibleColumns && gridKey && extensibleColumns[gridKey] && extensibleColumns[gridKey].map(function (column) {
507
- columnDefs.push({
508
- field: column.name,
509
- headerName: column.displayName,
510
- type: column.propertyType,
511
- width: column.width,
512
- customCellRenderer: column.cellRenderer,
513
- cellRenderer: cellRenderer
514
- });
515
- });
516
- return columnDefs;
517
- };
518
- var calculateSum = function calculateSum() {
680
+ var calculateSum = useCallback(function () {
519
681
  var displayedData = [];
520
682
  if (apiRef.current) {
521
683
  apiRef.current.forEachNodeAfterFilter(function (node) {
@@ -523,8 +685,8 @@ function AgGridPlus(props) {
523
685
  });
524
686
  }
525
687
  if (!allColDefs || displayedData.length === 0) {
526
- var _apiRef$current3;
527
- (_apiRef$current3 = apiRef.current) === null || _apiRef$current3 === void 0 || _apiRef$current3.setGridOption('pinnedBottomRowData', undefined);
688
+ var _apiRef$current5;
689
+ (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 || _apiRef$current5.setGridOption('pinnedBottomRowData', undefined);
528
690
  return;
529
691
  }
530
692
  var calcColFields = allColDefs.filter(function (col) {
@@ -538,11 +700,11 @@ function AgGridPlus(props) {
538
700
  };
539
701
  });
540
702
  if (calcColFields.length > 0) {
541
- var _apiRef$current4;
703
+ var _apiRef$current6;
542
704
  var calculatedValues = calculatefun(calcColFields, displayedData);
543
- (_apiRef$current4 = apiRef.current) === null || _apiRef$current4 === void 0 || _apiRef$current4.setGridOption('pinnedBottomRowData', calculatedValues);
705
+ (_apiRef$current6 = apiRef.current) === null || _apiRef$current6 === void 0 || _apiRef$current6.setGridOption('pinnedBottomRowData', calculatedValues);
544
706
  }
545
- };
707
+ }, [allColDefs, calculatefun]);
546
708
  var onFilterChanged = function onFilterChanged(event) {
547
709
  calculateSum();
548
710
  };
@@ -567,16 +729,38 @@ function AgGridPlus(props) {
567
729
  });
568
730
  var processedColumns = processColumnGroups(columnDefs);
569
731
  return processedColumns;
570
- }, [children === null || children === void 0 ? void 0 : children.length, props.columnDefs, extensibleColumns, columnCellClass]);
571
- var allColDefs = useMemo(function () {
572
- return getTableColumns(rowData);
573
- }, [children === null || children === void 0 ? void 0 : children.length, props.columnDefs, extensibleColumns]);
732
+ }, [React.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass, rowData]);
733
+
734
+ // 构建查询表单项(带 order 属性)
735
+ var queryFormItems = useMemo(function () {
736
+ var _allColDefs$filter;
737
+ var items = (allColDefs === null || allColDefs === void 0 || (_allColDefs$filter = allColDefs.filter(function (col) {
738
+ return col.filter !== false && !col.hideInSearch;
739
+ })) === null || _allColDefs$filter === void 0 ? void 0 : _allColDefs$filter.map(function (col) {
740
+ var _col$queryField, _col$searchSort;
741
+ return _objectSpread({
742
+ field: (_col$queryField = col.queryField) !== null && _col$queryField !== void 0 ? _col$queryField : col.field,
743
+ headerName: col.headerName,
744
+ order: (_col$searchSort = col.searchSort) !== null && _col$searchSort !== void 0 ? _col$searchSort : 999
745
+ }, col);
746
+ })) || [];
747
+ console.log('[AgGridPlus] queryFormItems构建:', {
748
+ allColDefsLength: allColDefs === null || allColDefs === void 0 ? void 0 : allColDefs.length,
749
+ queryFormItemsLength: items.length,
750
+ queryFormItems: items
751
+ });
752
+ return items;
753
+ }, [allColDefs]);
754
+
755
+ // 使用顺序管理器处理排序
756
+ var _useQueryOrderManager = useQueryOrderManager(queryFormItems, (querySchemeManager === null || querySchemeManager === void 0 || (_querySchemeManager$c = querySchemeManager.currentScheme) === null || _querySchemeManager$c === void 0 ? void 0 : _querySchemeManager$c.itemsOrder) || queryItemsOrder),
757
+ orderedFormItems = _useQueryOrderManager.orderedFormItems;
574
758
  useEffect(function () {
575
759
  calculateSum();
576
- }, [allColDefs, rowData]);
760
+ }, [calculateSum]);
577
761
  var rowDataMemo = useMemo(function () {
578
762
  return props.treeData ? flatten(toTree(rowData, treeKeyName !== null && treeKeyName !== void 0 ? treeKeyName : "id", treeParentName !== null && treeParentName !== void 0 ? treeParentName : "parentId"), treeKeyName !== null && treeKeyName !== void 0 ? treeKeyName : "id") : rowData;
579
- }, [rowData, props.treeData]);
763
+ }, [rowData, props.treeData, treeKeyName, treeParentName]);
580
764
  var actionDom = toolBarRender && toolBarRender(apiRef.current, convertFilterModel(queryFilter, allColDefs), queryFilter, {
581
765
  current: pagination.current,
582
766
  skipCount: pagination.current == 1 ? 0 : (pagination.current - 1) * pagination.pageSize,
@@ -588,7 +772,27 @@ function AgGridPlus(props) {
588
772
  cellRenderer: CustomGroupCellRenderer
589
773
  });
590
774
  }, [props.autoGroupColumnDef]);
591
- return /*#__PURE__*/React.createElement(Spin, {
775
+
776
+ // 准备 GridPlusContext 的值
777
+ var gridPlusContextValue = useMemo(function () {
778
+ var _querySchemeManager$c2;
779
+ return {
780
+ extensibleColumns: extensibleColumns,
781
+ columnState: gridPlusColumnState,
782
+ onSaveColumnState: onSaveColumnState,
783
+ applyToGlobal: applyToGlobal,
784
+ resetCurrent: resetCurrent,
785
+ resetAll: resetAll,
786
+ schemeManager: columnSchemeManager,
787
+ querySchemeManager: querySchemeManager,
788
+ currentQueryOrder: (querySchemeManager === null || querySchemeManager === void 0 || (_querySchemeManager$c2 = querySchemeManager.currentScheme) === null || _querySchemeManager$c2 === void 0 ? void 0 : _querySchemeManager$c2.itemsOrder) || queryItemsOrder,
789
+ updateQueryOrder: setQueryItemsOrder,
790
+ queryFormItems: queryFormItems
791
+ };
792
+ }, [extensibleColumns, gridPlusColumnState, onSaveColumnState, applyToGlobal, resetCurrent, resetAll, columnSchemeManager, querySchemeManager, queryItemsOrder, queryFormItems]);
793
+ return /*#__PURE__*/React.createElement(GridPlusContext.Provider, {
794
+ value: gridPlusContextValue
795
+ }, /*#__PURE__*/React.createElement(Spin, {
592
796
  spinning: loading,
593
797
  wrapperClassName: "grid-spin"
594
798
  }, /*#__PURE__*/React.createElement("div", {
@@ -600,7 +804,7 @@ function AgGridPlus(props) {
600
804
  height: "100%"
601
805
  }
602
806
  }, search == false ? null : /*#__PURE__*/React.createElement(FormRender, {
603
- colDefs: flattenColumnState(allColDefs),
807
+ colDefs: flattenColumnState(orderedFormItems),
604
808
  defaultRows: queryDefaultRows,
605
809
  columnStates: columnState || [],
606
810
  defaultExpand: defaultSearchExpand,
@@ -662,7 +866,7 @@ function AgGridPlus(props) {
662
866
  enableCellTextSelection: true,
663
867
  ensureDomOrder: true
664
868
  },
665
- overlayNoRowsTemplate: "<span style=\"\n display: flex; \n justify-content: center; \n align-items: center; \n height: 100%; \n font-size: 14px; \n color: #aaa; \n line-height: 1.5;\n text-align: center;\">\n ".concat(overlayNoRowsTemplateText || '没有找到数据,试试调整筛选条件吧!', "\n </span>"),
869
+ overlayNoRowsTemplate: createSafeHtmlTemplate(overlayNoRowsTemplateText || '没有找到数据,试试调整筛选条件吧!'),
666
870
  enableRangeSelection: true,
667
871
  suppressCopyRowsToClipboard: true,
668
872
  autoGroupColumnDef: autoGroupColumnDef
@@ -684,8 +888,8 @@ function AgGridPlus(props) {
684
888
  onRowSelected: onRowSelected,
685
889
  onDragStopped: function onDragStopped(e) {
686
890
  if (apiRef.current) {
687
- var _apiRef$current5;
688
- var _columnState = (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 ? void 0 : _apiRef$current5.getColumnState();
891
+ var _apiRef$current7;
892
+ var _columnState = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
689
893
  setColumnState(_columnState);
690
894
 
691
895
  // onColumnStateChanged && onColumnStateChanged(columnState)
@@ -732,6 +936,6 @@ function AgGridPlus(props) {
732
936
  pageSizeOptions: props.pageSizeOptions || [10, 20, 50, 100, 200, 500, 1000, 10000],
733
937
  hideOnSinglePage: false,
734
938
  showQuickJumper: false
735
- })))));
939
+ }))))));
736
940
  }
737
941
  export default AgGridPlus;