@nokecy/qc-ui 1.1.4 → 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.
@@ -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
  /** 是否新添加的节点(用于高亮显示) */
@@ -71,7 +71,7 @@ var Setting = function Setting(props) {
71
71
  onClick: function onClick(e) {
72
72
  return e.preventDefault();
73
73
  }
74
- }, /*#__PURE__*/_react.default.createElement(_icons.SettingOutlined, null))), gridApi && /*#__PURE__*/_react.default.createElement(_ColumnSetting.default, {
74
+ }, /*#__PURE__*/_react.default.createElement(_icons.SettingOutlined, null))), gridApi && columnSettingVisible && /*#__PURE__*/_react.default.createElement(_ColumnSetting.default, {
75
75
  gridKey: gridKey,
76
76
  gridApi: gridApi,
77
77
  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,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRenderCounter = exports.measureRenderTime = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ /**
10
+ * 性能监控工具
11
+ * 用于开发和生产环境的渲染性能监控
12
+ */
13
+
14
+ var measureRenderTime = exports.measureRenderTime = function measureRenderTime(componentName) {
15
+ if (typeof performance === 'undefined') {
16
+ return function () {};
17
+ }
18
+ var startTime = performance.now();
19
+ return function () {
20
+ var duration = performance.now() - startTime;
21
+
22
+ // 开发环境输出警告
23
+ if (process.env.NODE_ENV === 'development' && duration > 100) {
24
+ console.warn("[Performance] ".concat(componentName, " render took ").concat(duration.toFixed(2), "ms"));
25
+ }
26
+
27
+ // 生产环境发送到监控系统 (可选)
28
+ if (process.env.NODE_ENV === 'production' && window.gtag) {
29
+ window.gtag('event', 'component_render', {
30
+ component: componentName,
31
+ duration: Math.round(duration),
32
+ timestamp: Date.now()
33
+ });
34
+ }
35
+ };
36
+ };
37
+
38
+ /**
39
+ * 计数组件渲染次数
40
+ */
41
+ var useRenderCounter = exports.useRenderCounter = function useRenderCounter(componentName) {
42
+ var renderCount = _react.default.useRef(0);
43
+ _react.default.useEffect(function () {
44
+ renderCount.current += 1;
45
+ if (process.env.NODE_ENV === 'development') {}
46
+ });
47
+ return renderCount.current;
48
+ };
@@ -1,22 +1,14 @@
1
1
  /**
2
- * 列配置表格组件
3
- * 使用简单的 Ant Design Table 替代 Formily ArrayTable
4
- * 通过 React useState 直接管理数据状态,确保 type 字段不会丢失
2
+ * 列配置表格组件 - AG-Grid 版本
3
+ * 使用 AG-Grid 替代 Ant Design Table,性能更优
5
4
  */
6
5
  import React from 'react';
7
6
  import type { FlatColumnItem } from './columnGroupTypes';
8
- interface ColumnConfigTableProps {
9
- /** 扁平化的列配置数据 */
7
+ interface ColumnConfigTableAGProps {
10
8
  items: FlatColumnItem[];
11
- /** 数据变更回调 */
12
9
  onChange: (items: FlatColumnItem[]) => void;
13
- /** 简化模式 - 隐藏分组相关功能 (用于 formArrayTable) */
14
10
  simple?: boolean;
15
- /** 表格滚动高度 */
16
11
  scrollY?: number;
17
12
  }
18
- /**
19
- * 列配置表格组件
20
- */
21
- declare const ColumnConfigTable: React.FC<ColumnConfigTableProps>;
13
+ declare const ColumnConfigTable: React.FC<ColumnConfigTableAGProps>;
22
14
  export default ColumnConfigTable;