@nokecy/qc-ui 1.1.3 → 1.1.5

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 (32) hide show
  1. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +9 -6
  2. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +4 -12
  3. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +607 -869
  4. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +6 -1
  5. package/dist/cjs/ag-grid-plus/setting/DebounceInputs.d.ts +39 -0
  6. package/dist/cjs/ag-grid-plus/setting/DebounceInputs.js +144 -0
  7. package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +370 -302
  8. package/dist/cjs/ag-grid-plus/setting/columnGroupTypes.d.ts +4 -0
  9. package/dist/cjs/ag-grid-plus/setting/index.js +1 -1
  10. package/dist/cjs/ag-grid-plus/setting/performanceMonitor.d.ts +9 -0
  11. package/dist/cjs/ag-grid-plus/setting/performanceMonitor.js +48 -0
  12. package/dist/cjs/ag-grid-plus/shared/storage/backendApiAdapter.js +8 -24
  13. package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +20 -6
  14. package/dist/cjs/ag-grid-plus/shared/utils/schemeDataMigration.d.ts +27 -0
  15. package/dist/cjs/ag-grid-plus/shared/utils/schemeDataMigration.js +63 -0
  16. package/dist/esm/ag-grid-plus/ag-gridPlus.js +9 -6
  17. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +4 -12
  18. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +611 -872
  19. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +6 -1
  20. package/dist/esm/ag-grid-plus/setting/DebounceInputs.d.ts +39 -0
  21. package/dist/esm/ag-grid-plus/setting/DebounceInputs.js +136 -0
  22. package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +374 -305
  23. package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts +4 -0
  24. package/dist/esm/ag-grid-plus/setting/index.js +1 -1
  25. package/dist/esm/ag-grid-plus/setting/performanceMonitor.d.ts +9 -0
  26. package/dist/esm/ag-grid-plus/setting/performanceMonitor.js +42 -0
  27. package/dist/esm/ag-grid-plus/shared/storage/backendApiAdapter.js +8 -24
  28. package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +20 -6
  29. package/dist/esm/ag-grid-plus/shared/utils/schemeDataMigration.d.ts +27 -0
  30. package/dist/esm/ag-grid-plus/shared/utils/schemeDataMigration.js +54 -0
  31. package/dist/umd/qc-ui.min.js +1 -1
  32. package/package.json +1 -1
@@ -35,6 +35,10 @@ export interface FlatColumnItem {
35
35
  cellClass?: string;
36
36
  /** 是否占满剩余空间 */
37
37
  flex?: number;
38
+ /** 是否可排序 */
39
+ sortable?: boolean;
40
+ /** 是否可过滤 */
41
+ filter?: boolean | string;
38
42
  /** 是否显示列过滤按钮 */
39
43
  suppressHeaderFilterButton?: boolean;
40
44
  /** 是否新添加的节点(用于高亮显示) */
@@ -61,7 +61,7 @@ var Setting = function Setting(props) {
61
61
  onClick: function onClick(e) {
62
62
  return e.preventDefault();
63
63
  }
64
- }, /*#__PURE__*/React.createElement(SettingOutlined, null))), gridApi && /*#__PURE__*/React.createElement(ColumnSetting, {
64
+ }, /*#__PURE__*/React.createElement(SettingOutlined, null))), gridApi && columnSettingVisible && /*#__PURE__*/React.createElement(ColumnSetting, {
65
65
  gridKey: gridKey,
66
66
  gridApi: gridApi,
67
67
  visible: columnSettingVisible,
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 性能监控工具
3
+ * 用于开发和生产环境的渲染性能监控
4
+ */
5
+ export declare const measureRenderTime: (componentName: string) => () => void;
6
+ /**
7
+ * 计数组件渲染次数
8
+ */
9
+ export declare const useRenderCounter: (componentName: string) => number;
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+
3
+ /**
4
+ * 性能监控工具
5
+ * 用于开发和生产环境的渲染性能监控
6
+ */
7
+
8
+ export var measureRenderTime = function measureRenderTime(componentName) {
9
+ if (typeof performance === 'undefined') {
10
+ return function () {};
11
+ }
12
+ var startTime = performance.now();
13
+ return function () {
14
+ var duration = performance.now() - startTime;
15
+
16
+ // 开发环境输出警告
17
+ if (process.env.NODE_ENV === 'development' && duration > 100) {
18
+ console.warn("[Performance] ".concat(componentName, " render took ").concat(duration.toFixed(2), "ms"));
19
+ }
20
+
21
+ // 生产环境发送到监控系统 (可选)
22
+ if (process.env.NODE_ENV === 'production' && window.gtag) {
23
+ window.gtag('event', 'component_render', {
24
+ component: componentName,
25
+ duration: Math.round(duration),
26
+ timestamp: Date.now()
27
+ });
28
+ }
29
+ };
30
+ };
31
+
32
+ /**
33
+ * 计数组件渲染次数
34
+ */
35
+ export var useRenderCounter = function useRenderCounter(componentName) {
36
+ var renderCount = React.useRef(0);
37
+ React.useEffect(function () {
38
+ renderCount.current += 1;
39
+ if (process.env.NODE_ENV === 'development') {}
40
+ });
41
+ return renderCount.current;
42
+ };
@@ -211,19 +211,13 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
211
211
  });
212
212
  }
213
213
 
214
- // 将所有查询方案的字段从字符串解析为数组和对象
214
+ // 将所有查询方案的 queryConfig 字段从字符串解析为对象
215
215
  if (response.querySchemes) {
216
216
  Object.keys(response.querySchemes).forEach(function (gridId) {
217
217
  response.querySchemes[gridId] = response.querySchemes[gridId].map(function (scheme) {
218
218
  var parsedScheme = _objectSpread({}, scheme);
219
- if (typeof parsedScheme.itemsOrder === 'string') {
220
- parsedScheme.itemsOrder = JSON.parse(parsedScheme.itemsOrder);
221
- }
222
- if (typeof parsedScheme.hiddenFields === 'string') {
223
- parsedScheme.hiddenFields = JSON.parse(parsedScheme.hiddenFields);
224
- }
225
- if (typeof parsedScheme.formValues === 'string') {
226
- parsedScheme.formValues = JSON.parse(parsedScheme.formValues);
219
+ if (typeof parsedScheme.queryConfig === 'string') {
220
+ parsedScheme.queryConfig = JSON.parse(parsedScheme.queryConfig);
227
221
  }
228
222
  return parsedScheme;
229
223
  });
@@ -362,11 +356,9 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
362
356
  _context5.prev = 0;
363
357
  this.log("\u4FDD\u5B58\u67E5\u8BE2\u65B9\u6848: ".concat(gridId, " - ").concat(scheme.name));
364
358
 
365
- // 将数组和对象字段转换为 JSON 字符串
359
+ // 将 queryConfig 对象字段转换为 JSON 字符串
366
360
  schemeForBackend = _objectSpread(_objectSpread({}, scheme), {}, {
367
- itemsOrder: scheme.itemsOrder ? JSON.stringify(scheme.itemsOrder) : undefined,
368
- hiddenFields: scheme.hiddenFields ? JSON.stringify(scheme.hiddenFields) : undefined,
369
- formValues: scheme.formValues ? JSON.stringify(scheme.formValues) : undefined
361
+ queryConfig: scheme.queryConfig ? JSON.stringify(scheme.queryConfig) : undefined
370
362
  });
371
363
  url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/save-query-scheme");
372
364
  _context5.next = 6;
@@ -385,18 +377,10 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
385
377
  }
386
378
  throw new Error(response.message || '保存失败');
387
379
  case 9:
388
- // 将返回的字符串字段解析为数组和对象
380
+ // 将返回的 queryConfig 字符串字段解析为对象
389
381
  savedScheme = response.scheme;
390
- if (savedScheme) {
391
- if (typeof savedScheme.itemsOrder === 'string') {
392
- savedScheme.itemsOrder = JSON.parse(savedScheme.itemsOrder);
393
- }
394
- if (typeof savedScheme.hiddenFields === 'string') {
395
- savedScheme.hiddenFields = JSON.parse(savedScheme.hiddenFields);
396
- }
397
- if (typeof savedScheme.formValues === 'string') {
398
- savedScheme.formValues = JSON.parse(savedScheme.formValues);
399
- }
382
+ if (savedScheme && typeof savedScheme.queryConfig === 'string') {
383
+ savedScheme.queryConfig = JSON.parse(savedScheme.queryConfig);
400
384
  }
401
385
  this.log('保存成功', savedScheme);
402
386
  return _context5.abrupt("return", savedScheme);
@@ -1,4 +1,22 @@
1
1
  import type { FlatColumnItem } from '../../setting/columnGroupTypes';
2
+ /**
3
+ * 查询项配置
4
+ */
5
+ export interface QueryItem {
6
+ /** 字段名 */
7
+ field: string;
8
+ /** 是否隐藏 */
9
+ hidden?: boolean;
10
+ }
11
+ /**
12
+ * 查询配置结构
13
+ */
14
+ export interface QueryConfig {
15
+ /** 查询项配置列表 (按顺序排列) */
16
+ items: QueryItem[];
17
+ /** 查询表单默认值 */
18
+ defaultValues?: Record<string, any>;
19
+ }
2
20
  /**
3
21
  * 查询方案
4
22
  */
@@ -9,12 +27,8 @@ export interface QueryScheme {
9
27
  name: string;
10
28
  /** 方案描述 */
11
29
  description?: string;
12
- /** 查询表单字段排序 */
13
- itemsOrder?: string[];
14
- /** 隐藏的字段列表 */
15
- hiddenFields?: string[];
16
- /** 查询表单值 */
17
- formValues?: Record<string, any>;
30
+ /** 查询配置 */
31
+ queryConfig: QueryConfig;
18
32
  /** 是否为默认方案 */
19
33
  isDefault: boolean;
20
34
  /** 是否为系统方案(不可删除) */
@@ -0,0 +1,27 @@
1
+ import type { QueryScheme, QueryConfig } from '../storage/schemeStorageAdapter';
2
+ /**
3
+ * 从查询方案提取字段顺序数组
4
+ * @param scheme 查询方案对象
5
+ * @returns 字段顺序数组
6
+ */
7
+ export declare function extractItemsOrder(scheme: QueryScheme): string[];
8
+ /**
9
+ * 从查询方案提取隐藏字段数组
10
+ * @param scheme 查询方案对象
11
+ * @returns 隐藏字段数组
12
+ */
13
+ export declare function extractHiddenFields(scheme: QueryScheme): string[];
14
+ /**
15
+ * 从查询方案提取表单默认值
16
+ * @param scheme 查询方案对象
17
+ * @returns 表单默认值对象
18
+ */
19
+ export declare function extractFormValues(scheme: QueryScheme): Record<string, any>;
20
+ /**
21
+ * 构建 QueryConfig 对象
22
+ * @param itemsOrder 字段顺序数组
23
+ * @param hiddenFields 隐藏字段数组
24
+ * @param formValues 表单默认值
25
+ * @returns QueryConfig 对象
26
+ */
27
+ export declare function buildQueryConfig(itemsOrder: string[], hiddenFields?: string[], formValues?: Record<string, any>): QueryConfig;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * 从查询方案提取字段顺序数组
3
+ * @param scheme 查询方案对象
4
+ * @returns 字段顺序数组
5
+ */
6
+ export function extractItemsOrder(scheme) {
7
+ return scheme.queryConfig.items.map(function (item) {
8
+ return item.field;
9
+ });
10
+ }
11
+
12
+ /**
13
+ * 从查询方案提取隐藏字段数组
14
+ * @param scheme 查询方案对象
15
+ * @returns 隐藏字段数组
16
+ */
17
+ export function extractHiddenFields(scheme) {
18
+ return scheme.queryConfig.items.filter(function (item) {
19
+ return item.hidden;
20
+ }).map(function (item) {
21
+ return item.field;
22
+ });
23
+ }
24
+
25
+ /**
26
+ * 从查询方案提取表单默认值
27
+ * @param scheme 查询方案对象
28
+ * @returns 表单默认值对象
29
+ */
30
+ export function extractFormValues(scheme) {
31
+ return scheme.queryConfig.defaultValues || {};
32
+ }
33
+
34
+ /**
35
+ * 构建 QueryConfig 对象
36
+ * @param itemsOrder 字段顺序数组
37
+ * @param hiddenFields 隐藏字段数组
38
+ * @param formValues 表单默认值
39
+ * @returns QueryConfig 对象
40
+ */
41
+ export function buildQueryConfig(itemsOrder) {
42
+ var hiddenFields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
43
+ var formValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
44
+ var items = itemsOrder.map(function (field) {
45
+ return {
46
+ field: field,
47
+ hidden: hiddenFields.includes(field)
48
+ };
49
+ });
50
+ return {
51
+ items: items,
52
+ defaultValues: Object.keys(formValues).length > 0 ? formValues : undefined
53
+ };
54
+ }