@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.
- package/dist/cjs/ag-grid-plus/ag-gridPlus.js +9 -6
- package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +4 -12
- package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +607 -869
- package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +6 -1
- package/dist/cjs/ag-grid-plus/setting/DebounceInputs.d.ts +39 -0
- package/dist/cjs/ag-grid-plus/setting/DebounceInputs.js +144 -0
- package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +370 -302
- package/dist/cjs/ag-grid-plus/setting/columnGroupTypes.d.ts +4 -0
- package/dist/cjs/ag-grid-plus/setting/index.js +1 -1
- package/dist/cjs/ag-grid-plus/setting/performanceMonitor.d.ts +9 -0
- package/dist/cjs/ag-grid-plus/setting/performanceMonitor.js +48 -0
- package/dist/cjs/ag-grid-plus/shared/storage/backendApiAdapter.js +8 -24
- package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +20 -6
- package/dist/cjs/ag-grid-plus/shared/utils/schemeDataMigration.d.ts +27 -0
- package/dist/cjs/ag-grid-plus/shared/utils/schemeDataMigration.js +63 -0
- package/dist/esm/ag-grid-plus/ag-gridPlus.js +9 -6
- package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +4 -12
- package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +611 -872
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +6 -1
- package/dist/esm/ag-grid-plus/setting/DebounceInputs.d.ts +39 -0
- package/dist/esm/ag-grid-plus/setting/DebounceInputs.js +136 -0
- package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +374 -305
- package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts +4 -0
- package/dist/esm/ag-grid-plus/setting/index.js +1 -1
- package/dist/esm/ag-grid-plus/setting/performanceMonitor.d.ts +9 -0
- package/dist/esm/ag-grid-plus/setting/performanceMonitor.js +42 -0
- package/dist/esm/ag-grid-plus/shared/storage/backendApiAdapter.js +8 -24
- package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +20 -6
- package/dist/esm/ag-grid-plus/shared/utils/schemeDataMigration.d.ts +27 -0
- package/dist/esm/ag-grid-plus/shared/utils/schemeDataMigration.js +54 -0
- package/dist/umd/qc-ui.min.js +1 -1
- 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,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.
|
|
220
|
-
parsedScheme.
|
|
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
|
-
//
|
|
359
|
+
// 将 queryConfig 对象字段转换为 JSON 字符串
|
|
366
360
|
schemeForBackend = _objectSpread(_objectSpread({}, scheme), {}, {
|
|
367
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
+
}
|