@nokecy/qc-ui 1.0.69 → 1.0.71

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