@nokecy/qc-ui 1.1.38 → 1.1.40
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/adapters/abpPagedApiAdapter.d.ts +8 -0
- package/dist/cjs/adapters/abpPagedApiAdapter.js +35 -0
- package/dist/cjs/adapters/index.d.ts +6 -0
- package/dist/cjs/adapters/index.js +12 -0
- package/dist/cjs/adapters/pagedApiAdapter.d.ts +25 -0
- package/dist/cjs/adapters/pagedApiAdapter.js +5 -0
- package/dist/cjs/ag-grid-plus/ag-gridPlus.js +81 -222
- package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +3 -0
- package/dist/cjs/ag-grid-plus/context/queryFormContext.d.ts +20 -0
- package/dist/cjs/ag-grid-plus/context/queryFormContext.js +25 -0
- package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +37 -1
- package/dist/cjs/ag-grid-plus/context/useSchemeManager.js +120 -79
- package/dist/cjs/ag-grid-plus/errors/ErrorBoundary.d.ts +1 -1
- package/dist/cjs/ag-grid-plus/hooks/index.d.ts +1 -3
- package/dist/cjs/ag-grid-plus/hooks/index.js +7 -39
- package/dist/cjs/ag-grid-plus/hooks/useRowId.d.ts +13 -0
- package/dist/cjs/ag-grid-plus/hooks/useRowId.js +57 -0
- package/dist/cjs/ag-grid-plus/interface.d.ts +9 -0
- package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +52 -36
- package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +6 -6
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +16 -6
- package/dist/cjs/ag-grid-plus/types.d.ts +9 -0
- package/dist/cjs/ag-grid-plus/utils/aggregation.d.ts +17 -0
- package/dist/cjs/ag-grid-plus/utils/aggregation.js +101 -0
- package/dist/cjs/ag-grid-plus/utils/columnProcessors.js +2 -2
- package/dist/cjs/ag-grid-plus/utils/entityExtensionColumns.d.ts +12 -3
- package/dist/cjs/ag-grid-plus/utils/entityExtensionColumns.js +20 -5
- package/dist/cjs/ag-grid-plus/utils/queryFormDerivation.d.ts +19 -0
- package/dist/cjs/ag-grid-plus/utils/queryFormDerivation.js +49 -0
- package/dist/cjs/ag-grid-plus/utils/requestParams.d.ts +15 -0
- package/dist/cjs/ag-grid-plus/utils/requestParams.js +31 -0
- package/dist/cjs/ag-grid-plus/utils/rowSelection.d.ts +9 -0
- package/dist/cjs/ag-grid-plus/utils/rowSelection.js +24 -0
- package/dist/cjs/ag-grid-plus/utils.js +2 -2
- package/dist/cjs/array-table/arrayAddBtn.js +26 -17
- package/dist/cjs/array-table/arrayBase.js +2 -0
- package/dist/cjs/array-table/hooks.d.ts +2 -1
- package/dist/cjs/array-table/hooks.js +23 -43
- package/dist/cjs/array-table/index.js +105 -25
- package/dist/cjs/array-table/preview.js +1 -1
- package/dist/cjs/array-table/readOnlyFormatters.d.ts +28 -0
- package/dist/cjs/array-table/readOnlyFormatters.js +113 -0
- package/dist/cjs/array-table/utils.d.ts +2 -2
- package/dist/cjs/array-table/utils.js +180 -11
- package/dist/cjs/components/RegexEditor/hooks/useRegexValidation.js +2 -3
- package/dist/cjs/components/RegexEditor/hooks/useTemplateManager.js +1 -0
- package/dist/cjs/components/RegexEditor/validation/types.d.ts +1 -3
- package/dist/cjs/components/RegexEditor/visualizer/astToRailroad.d.ts +0 -2
- package/dist/cjs/dashboard/dashboard/index.js +8 -11
- package/dist/cjs/dashboard/dashboard/utils.js +3 -6
- package/dist/cjs/dashboard/widget/index.js +3 -3
- package/dist/cjs/dashboard/widget/selector/index.js +5 -7
- package/dist/cjs/dashboard/widget/utils.js +3 -4
- package/dist/cjs/dialogSelect/index.d.ts +3 -0
- package/dist/cjs/dialogSelect/index.js +16 -13
- package/dist/cjs/editable/index.js +3 -1
- package/dist/cjs/formDesigner/FormDesigner.js +3 -2
- package/dist/cjs/formDesigner/preWidgets/index.d.ts +1 -10
- package/dist/cjs/formDesigner/preWidgets/index.js +1 -100
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty.d.ts +11 -0
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty.js +70 -0
- package/dist/cjs/generatedListPage/GeneratedListPage.js +20 -19
- package/dist/cjs/generatedListPage/_utils/toAbpPagedRequest.d.ts +15 -0
- package/dist/cjs/generatedListPage/_utils/toAbpPagedRequest.js +26 -0
- package/dist/cjs/generatedListPage/types.d.ts +3 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +57 -0
- package/dist/cjs/standardFormDialog/types.d.ts +7 -0
- package/dist/cjs/standardFormDialog/useStandardFormSchema.d.ts +1 -1
- package/dist/cjs/standardFormDialog/withStandardForm.js +5 -4
- package/dist/esm/adapters/abpPagedApiAdapter.d.ts +8 -0
- package/dist/esm/adapters/abpPagedApiAdapter.js +29 -0
- package/dist/esm/adapters/index.d.ts +6 -0
- package/dist/esm/adapters/index.js +6 -0
- package/dist/esm/adapters/pagedApiAdapter.d.ts +25 -0
- package/dist/esm/adapters/pagedApiAdapter.js +1 -0
- package/dist/esm/ag-grid-plus/ag-gridPlus.js +79 -220
- package/dist/esm/ag-grid-plus/context/gridContext.d.ts +3 -0
- package/dist/esm/ag-grid-plus/context/queryFormContext.d.ts +20 -0
- package/dist/esm/ag-grid-plus/context/queryFormContext.js +19 -0
- package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +37 -1
- package/dist/esm/ag-grid-plus/context/useSchemeManager.js +120 -79
- package/dist/esm/ag-grid-plus/hooks/index.d.ts +1 -3
- package/dist/esm/ag-grid-plus/hooks/index.js +2 -6
- package/dist/esm/ag-grid-plus/hooks/useRowId.d.ts +13 -0
- package/dist/esm/ag-grid-plus/hooks/useRowId.js +52 -0
- package/dist/esm/ag-grid-plus/interface.d.ts +9 -0
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +52 -36
- package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +6 -6
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +20 -6
- package/dist/esm/ag-grid-plus/types.d.ts +9 -0
- package/dist/esm/ag-grid-plus/utils/aggregation.d.ts +17 -0
- package/dist/esm/ag-grid-plus/utils/aggregation.js +93 -0
- package/dist/esm/ag-grid-plus/utils/columnProcessors.js +2 -2
- package/dist/esm/ag-grid-plus/utils/entityExtensionColumns.d.ts +12 -3
- package/dist/esm/ag-grid-plus/utils/entityExtensionColumns.js +20 -5
- package/dist/esm/ag-grid-plus/utils/queryFormDerivation.d.ts +19 -0
- package/dist/esm/ag-grid-plus/utils/queryFormDerivation.js +42 -0
- package/dist/esm/ag-grid-plus/utils/requestParams.d.ts +15 -0
- package/dist/esm/ag-grid-plus/utils/requestParams.js +24 -0
- package/dist/esm/ag-grid-plus/utils/rowSelection.d.ts +9 -0
- package/dist/esm/ag-grid-plus/utils/rowSelection.js +18 -0
- package/dist/esm/ag-grid-plus/utils.js +2 -2
- package/dist/esm/array-table/arrayAddBtn.js +26 -17
- package/dist/esm/array-table/arrayBase.js +2 -0
- package/dist/esm/array-table/hooks.d.ts +2 -1
- package/dist/esm/array-table/hooks.js +23 -43
- package/dist/esm/array-table/index.js +107 -27
- package/dist/esm/array-table/preview.js +2 -2
- package/dist/esm/array-table/readOnlyFormatters.d.ts +28 -0
- package/dist/esm/array-table/readOnlyFormatters.js +107 -0
- package/dist/esm/array-table/utils.d.ts +2 -2
- package/dist/esm/array-table/utils.js +180 -11
- package/dist/esm/components/RegexEditor/hooks/useRegexValidation.js +2 -2
- package/dist/esm/components/RegexEditor/hooks/useTemplateManager.js +1 -0
- package/dist/esm/components/RegexEditor/validation/types.d.ts +0 -1
- package/dist/esm/components/RegexEditor/visualizer/astToRailroad.d.ts +0 -1
- package/dist/esm/dashboard/dashboard/index.js +8 -11
- package/dist/esm/dashboard/dashboard/utils.js +3 -2
- package/dist/esm/dashboard/widget/index.js +3 -3
- package/dist/esm/dashboard/widget/selector/index.js +5 -7
- package/dist/esm/dashboard/widget/utils.js +3 -3
- package/dist/esm/dialogSelect/index.d.ts +3 -0
- package/dist/esm/dialogSelect/index.js +16 -13
- package/dist/esm/editable/index.js +3 -1
- package/dist/esm/formDesigner/FormDesigner.js +3 -2
- package/dist/esm/formDesigner/preWidgets/index.d.ts +1 -10
- package/dist/esm/formDesigner/preWidgets/index.js +1 -10
- package/dist/esm/formDesigner/preWidgets/preDefineProperty.d.ts +11 -0
- package/dist/esm/formDesigner/preWidgets/{preDefineProperty1/preview.js → preDefineProperty.js} +49 -30
- package/dist/esm/generatedListPage/GeneratedListPage.js +20 -19
- package/dist/esm/generatedListPage/_utils/toAbpPagedRequest.d.ts +15 -0
- package/dist/esm/generatedListPage/_utils/toAbpPagedRequest.js +20 -0
- package/dist/esm/generatedListPage/types.d.ts +3 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/standardFormDialog/types.d.ts +7 -0
- package/dist/esm/standardFormDialog/withStandardForm.js +5 -4
- package/dist/umd/qc-ui.min.css +1 -1
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +52 -13
- package/dist/cjs/ag-grid-plus/hooks/useAgGridCalculation.d.ts +0 -88
- package/dist/cjs/ag-grid-plus/hooks/useAgGridCalculation.js +0 -224
- package/dist/cjs/ag-grid-plus/hooks/useAgGridData.d.ts +0 -91
- package/dist/cjs/ag-grid-plus/hooks/useAgGridData.js +0 -230
- package/dist/cjs/ag-grid-plus/hooks/useGridState.d.ts +0 -153
- package/dist/cjs/ag-grid-plus/hooks/useGridState.js +0 -258
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty1/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty1/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty1/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty1/preview.js +0 -51
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty10/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty10/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty10/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty10/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty2/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty2/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty2/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty2/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty3/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty3/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty3/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty3/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty4/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty4/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty4/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty4/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty5/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty5/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty5/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty5/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty6/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty6/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty6/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty6/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty7/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty7/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty7/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty7/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty8/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty8/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty8/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty8/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty9/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty9/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty9/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty9/preview.js +0 -50
- package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.d.ts +0 -88
- package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.js +0 -217
- package/dist/esm/ag-grid-plus/hooks/useAgGridData.d.ts +0 -91
- package/dist/esm/ag-grid-plus/hooks/useAgGridData.js +0 -225
- package/dist/esm/ag-grid-plus/hooks/useGridState.d.ts +0 -153
- package/dist/esm/ag-grid-plus/hooks/useGridState.js +0 -258
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.js +0 -43
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PagedApiAdapter } from './pagedApiAdapter';
|
|
2
|
+
/**
|
|
3
|
+
* ABP 默认分页适配器。
|
|
4
|
+
* 请求映射为 { Filter, Sorting, SkipCount, MaxResultCount }(有 maxResultCount 时才带分页字段);
|
|
5
|
+
* 响应读取 { items, totalCount }。字节级复刻库内现有 ABP 行为。
|
|
6
|
+
* @author nokecy
|
|
7
|
+
*/
|
|
8
|
+
export declare const abpPagedApiAdapter: PagedApiAdapter;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.abpPagedApiAdapter = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* ABP 默认分页适配器。
|
|
9
|
+
* 请求映射为 { Filter, Sorting, SkipCount, MaxResultCount }(有 maxResultCount 时才带分页字段);
|
|
10
|
+
* 响应读取 { items, totalCount }。字节级复刻库内现有 ABP 行为。
|
|
11
|
+
* @author nokecy
|
|
12
|
+
*/
|
|
13
|
+
var abpPagedApiAdapter = exports.abpPagedApiAdapter = {
|
|
14
|
+
toRequest: function toRequest(_ref) {
|
|
15
|
+
var skipCount = _ref.skipCount,
|
|
16
|
+
maxResultCount = _ref.maxResultCount,
|
|
17
|
+
filter = _ref.filter,
|
|
18
|
+
sorter = _ref.sorter;
|
|
19
|
+
var request = {
|
|
20
|
+
Filter: filter,
|
|
21
|
+
Sorting: sorter
|
|
22
|
+
};
|
|
23
|
+
if (maxResultCount != null) {
|
|
24
|
+
request.SkipCount = skipCount !== null && skipCount !== void 0 ? skipCount : 0;
|
|
25
|
+
request.MaxResultCount = maxResultCount;
|
|
26
|
+
}
|
|
27
|
+
return request;
|
|
28
|
+
},
|
|
29
|
+
getItems: function getItems(response) {
|
|
30
|
+
return (response === null || response === void 0 ? void 0 : response.items) || [];
|
|
31
|
+
},
|
|
32
|
+
getTotal: function getTotal(response) {
|
|
33
|
+
return (response === null || response === void 0 ? void 0 : response.totalCount) || 0;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "abpPagedApiAdapter", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _abpPagedApiAdapter.abpPagedApiAdapter;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _abpPagedApiAdapter = require("./abpPagedApiAdapter");
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 分页 API 适配器接口:把库内部的通用分页查询/响应,在"通用形状"与"具体后端形状"
|
|
3
|
+
* 之间转换。默认实现 abpPagedApiAdapter 保持现有 ABP 行为;非 ABP 后端可注入自定义实现。
|
|
4
|
+
* @author nokecy
|
|
5
|
+
*/
|
|
6
|
+
/** 通用分页查询参数(后端无关)。 */
|
|
7
|
+
export interface GenericPagedQuery {
|
|
8
|
+
/** 跳过条数(偏移量)。 */
|
|
9
|
+
skipCount?: number;
|
|
10
|
+
/** 取回条数(页大小)。 */
|
|
11
|
+
maxResultCount?: number;
|
|
12
|
+
/** 过滤表达式(已序列化为字符串)。 */
|
|
13
|
+
filter?: string;
|
|
14
|
+
/** 排序表达式,如 "name asc"。 */
|
|
15
|
+
sorter?: string;
|
|
16
|
+
}
|
|
17
|
+
/** 分页 API 适配器。 */
|
|
18
|
+
export interface PagedApiAdapter {
|
|
19
|
+
/** 通用查询 → 后端请求对象(透传给业务方的 list/request 函数)。 */
|
|
20
|
+
toRequest(query: GenericPagedQuery): Record<string, any>;
|
|
21
|
+
/** 后端响应 → 数据项数组。 */
|
|
22
|
+
getItems<T = any>(response: any): T[];
|
|
23
|
+
/** 后端响应 → 总条数。 */
|
|
24
|
+
getTotal(response: any): number;
|
|
25
|
+
}
|
|
@@ -4,9 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _sumBy2 = _interopRequireDefault(require("lodash/sumBy"));
|
|
8
|
-
var _uniqueId2 = _interopRequireDefault(require("lodash/uniqueId"));
|
|
9
|
-
var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
|
|
10
7
|
var _agGridCommunity = require("ag-grid-community");
|
|
11
8
|
var _agGridReact = require("ag-grid-react");
|
|
12
9
|
var _antd = require("antd");
|
|
@@ -22,25 +19,33 @@ var _utils = require("./utils");
|
|
|
22
19
|
var _AdvancedQueryBuilder = _interopRequireDefault(require("./queryForm/AdvancedQueryBuilder"));
|
|
23
20
|
var _uuid = require("uuid");
|
|
24
21
|
var _setting = _interopRequireDefault(require("./setting"));
|
|
25
|
-
var
|
|
22
|
+
var _2 = require(".");
|
|
23
|
+
var _useRowId2 = require("./hooks/useRowId");
|
|
24
|
+
var _lodash = _interopRequireWildcard(require("lodash"));
|
|
26
25
|
var _customGroupCellRenderer = _interopRequireDefault(require("./_utils/customGroupCellRenderer"));
|
|
27
26
|
var _processColumnGroups = _interopRequireDefault(require("./_utils/processColumnGroups"));
|
|
28
27
|
var _processFormColumnState = _interopRequireDefault(require("./_utils/processFormColumnState"));
|
|
29
28
|
var _antdV = require("@formily/antd-v5");
|
|
30
29
|
var _locale = require("./locale");
|
|
31
30
|
var _gridContext = require("./context/gridContext");
|
|
31
|
+
var _queryFormContext = require("./context/queryFormContext");
|
|
32
32
|
var _useSchemeManager = require("./context/useSchemeManager");
|
|
33
33
|
var _useSchemeDataFlow = require("./context/useSchemeDataFlow");
|
|
34
34
|
var _schemeDataMigration = require("./shared/utils/schemeDataMigration");
|
|
35
35
|
var _sanitize = require("./utils/sanitize");
|
|
36
|
+
var _aggregation = require("./utils/aggregation");
|
|
37
|
+
var _queryFormDerivation = require("./utils/queryFormDerivation");
|
|
38
|
+
var _rowSelection = require("./utils/rowSelection");
|
|
39
|
+
var _requestParams = require("./utils/requestParams");
|
|
36
40
|
var _errors = require("./errors");
|
|
37
41
|
var _logger = require("./utils/logger");
|
|
38
42
|
var _entityExtensionColumns = require("./utils/entityExtensionColumns");
|
|
39
43
|
var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange", "enableClickSelection", "rowSelection", "useNativeTreeFilter", "entityType"];
|
|
44
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
40
45
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
41
46
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
42
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
43
47
|
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); }
|
|
48
|
+
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); }
|
|
44
49
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
45
50
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
46
51
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
@@ -56,7 +61,6 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
56
61
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
57
62
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
58
63
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
59
|
-
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); }
|
|
60
64
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
61
65
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
62
66
|
// AG-Grid v33+ 需要显式注册模块
|
|
@@ -68,6 +72,16 @@ var Text = _antd.Typography.Text;
|
|
|
68
72
|
var getSort = function getSort(columnState) {
|
|
69
73
|
return columnState ? "".concat(columnState.colId, " ").concat(columnState.sort) : "";
|
|
70
74
|
};
|
|
75
|
+
|
|
76
|
+
// 深比较稳定引用:内容不变时返回同一引用。替代 JSON.stringify 作 memo 依赖——
|
|
77
|
+
// 避免每次渲染序列化大对象,且 isEqual 差异早退、对 Date/undefined 比较语义正确 @author nokecy
|
|
78
|
+
function useDeepCompareStable(value) {
|
|
79
|
+
var ref = (0, _react.useRef)(value);
|
|
80
|
+
if (!_lodash.default.isEqual(ref.current, value)) {
|
|
81
|
+
ref.current = value;
|
|
82
|
+
}
|
|
83
|
+
return ref.current;
|
|
84
|
+
}
|
|
71
85
|
function AgGridPlus(props) {
|
|
72
86
|
var style = props.style,
|
|
73
87
|
loadingProps = props.loading,
|
|
@@ -96,7 +110,7 @@ function AgGridPlus(props) {
|
|
|
96
110
|
useNativeTreeFilter = _props$useNativeTreeF === void 0 ? false : _props$useNativeTreeF,
|
|
97
111
|
entityType = props.entityType,
|
|
98
112
|
rest = _objectWithoutProperties(props, _excluded);
|
|
99
|
-
var _useGridPlusColumnSta = (0,
|
|
113
|
+
var _useGridPlusColumnSta = (0, _2.useGridPlusColumnState)(),
|
|
100
114
|
onSaveColumnState = _useGridPlusColumnSta.onSaveColumnState,
|
|
101
115
|
gridPlusColumnState = _useGridPlusColumnSta.columnState,
|
|
102
116
|
extensibleColumns = _useGridPlusColumnSta.extensibleColumns,
|
|
@@ -111,72 +125,16 @@ function AgGridPlus(props) {
|
|
|
111
125
|
var gridRef = (0, _react.useRef)();
|
|
112
126
|
var apiRef = (0, _react.useRef)();
|
|
113
127
|
var allColDefsRef = (0, _react.useRef)([]);
|
|
128
|
+
// 请求序号:只接受最新一次请求的响应,防止快速翻页/连续查询时慢请求乱序覆盖新结果 @author nokecy
|
|
129
|
+
var requestSeqRef = (0, _react.useRef)(0);
|
|
114
130
|
|
|
115
131
|
// 【新增】缓存初始的 columnDefs,用于保留原始 headerName
|
|
116
132
|
// 这个值在组件生命周期中保持不变,不会被列方案修改
|
|
117
133
|
var initialColumnDefsRef = (0, _react.useRef)([]);
|
|
118
134
|
|
|
119
135
|
// 【新增】用于缓存每个数据对象的唯一 ID(降级方案)
|
|
120
|
-
var
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* 【新增】智能生成唯一行 ID 的降级函数
|
|
125
|
-
*
|
|
126
|
-
* 策略(按优先级):
|
|
127
|
-
* 1. 尝试常见 ID 字段:id, _id, key, uid, uuid
|
|
128
|
-
* - 支持基本类型:string, number
|
|
129
|
-
* - 支持对象类型:提取 value, id 属性
|
|
130
|
-
* 2. 如果对象在 WeakMap 中已有缓存,直接返回
|
|
131
|
-
* 3. 生成新的唯一 ID:grid-key-{counter}-{timestamp}
|
|
132
|
-
*
|
|
133
|
-
* @param data 行数据对象
|
|
134
|
-
* @returns 唯一的行 ID 字符串
|
|
135
|
-
*/
|
|
136
|
-
var generateUniqueRowId = (0, _react.useCallback)(function (data) {
|
|
137
|
-
if (!data || _typeof(data) !== 'object') {
|
|
138
|
-
return "row-empty-".concat(rowIdCounterRef.current++);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// 1. 尝试常见 ID 字段
|
|
142
|
-
var commonIdFields = ['id', '_id', 'key', 'uid', 'uuid'];
|
|
143
|
-
for (var _i = 0, _commonIdFields = commonIdFields; _i < _commonIdFields.length; _i++) {
|
|
144
|
-
var field = _commonIdFields[_i];
|
|
145
|
-
var value = data[field];
|
|
146
|
-
if (value !== undefined && value !== null && value !== '') {
|
|
147
|
-
// 【修复】处理对象类型的 ID
|
|
148
|
-
var fieldId = void 0;
|
|
149
|
-
if (_typeof(value) === 'object' && value !== null) {
|
|
150
|
-
// 对象类型:尝试提取常见的 ID 属性
|
|
151
|
-
if (value.value !== undefined) {
|
|
152
|
-
fieldId = String(value.value);
|
|
153
|
-
} else if (value.id !== undefined) {
|
|
154
|
-
fieldId = String(value.id);
|
|
155
|
-
} else {
|
|
156
|
-
// 无法提取,使用 JSON 序列化 + 字段名
|
|
157
|
-
fieldId = "".concat(field, "-").concat(JSON.stringify(value));
|
|
158
|
-
}
|
|
159
|
-
} else {
|
|
160
|
-
// 基本类型:直接转换
|
|
161
|
-
fieldId = String(value);
|
|
162
|
-
}
|
|
163
|
-
return fieldId;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// 2. 检查 WeakMap 缓存
|
|
168
|
-
var cachedId = rowIdCacheRef.current.get(data);
|
|
169
|
-
if (cachedId) {
|
|
170
|
-
return cachedId;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// 3. 生成新的唯一 ID
|
|
174
|
-
var uniqueId = "".concat(gridKey || 'grid', "-row-").concat(rowIdCounterRef.current++, "-").concat(Date.now());
|
|
175
|
-
|
|
176
|
-
// 缓存到 WeakMap(对象被回收时自动清理)
|
|
177
|
-
rowIdCacheRef.current.set(data, uniqueId);
|
|
178
|
-
return uniqueId;
|
|
179
|
-
}, [gridKey]);
|
|
136
|
+
var _useRowId = (0, _useRowId2.useRowId)(gridKey),
|
|
137
|
+
generateUniqueRowId = _useRowId.generateUniqueRowId;
|
|
180
138
|
var _useState = (0, _react.useState)(false),
|
|
181
139
|
_useState2 = _slicedToArray(_useState, 2),
|
|
182
140
|
ready = _useState2[0],
|
|
@@ -609,7 +567,7 @@ function AgGridPlus(props) {
|
|
|
609
567
|
columnDefs = columnDefs.map(function (col) {
|
|
610
568
|
return processColumnDefRecursively(col);
|
|
611
569
|
});
|
|
612
|
-
extensibleColumns && gridKey && extensibleColumns[gridKey] && extensibleColumns[gridKey].
|
|
570
|
+
extensibleColumns && gridKey && extensibleColumns[gridKey] && extensibleColumns[gridKey].forEach(function (column) {
|
|
613
571
|
columnDefs.push({
|
|
614
572
|
field: column.name,
|
|
615
573
|
headerName: column.displayName,
|
|
@@ -671,16 +629,10 @@ function AgGridPlus(props) {
|
|
|
671
629
|
return cols;
|
|
672
630
|
}, [_react.default.Children.count(children), props.columnDefs, extensibleColumns, gridKey, entityType, hostEntityExtensions]);
|
|
673
631
|
|
|
674
|
-
// 稳定化 gridParams 和 sortColumn 的引用
|
|
675
|
-
var stableGridParams = (
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
var stableSortColumn = (0, _react.useMemo)(function () {
|
|
679
|
-
return sortColumn;
|
|
680
|
-
}, [JSON.stringify(sortColumn)]);
|
|
681
|
-
var stableQueryFilter = (0, _react.useMemo)(function () {
|
|
682
|
-
return queryFilter;
|
|
683
|
-
}, [JSON.stringify(queryFilter)]);
|
|
632
|
+
// 稳定化 gridParams 和 sortColumn 的引用(深比较,内容不变即复用旧引用)
|
|
633
|
+
var stableGridParams = useDeepCompareStable(gridParams);
|
|
634
|
+
var stableSortColumn = useDeepCompareStable(sortColumn);
|
|
635
|
+
var stableQueryFilter = useDeepCompareStable(queryFilter);
|
|
684
636
|
|
|
685
637
|
// AG-Grid v33+ 行选择配置(使用对象 API)
|
|
686
638
|
var rowSelectionConfig = (0, _react.useMemo)(function () {
|
|
@@ -743,29 +695,22 @@ function AgGridPlus(props) {
|
|
|
743
695
|
pagination: pagination
|
|
744
696
|
});
|
|
745
697
|
try {
|
|
746
|
-
// 处理高级查询模式
|
|
747
|
-
var filter;
|
|
748
|
-
if (queryFilter.__advancedMode__ && queryFilter.__rules__) {
|
|
749
|
-
// 高级模式:使用规则转换
|
|
750
|
-
filter = (0, _utils.convertRulesToFilterString)(queryFilter.__rules__, allColDefsRef.current);
|
|
751
|
-
_logger.logger.debug('高级模式 Filter', {
|
|
752
|
-
rules: queryFilter.__rules__,
|
|
753
|
-
filter: filter
|
|
754
|
-
});
|
|
755
|
-
} else {
|
|
756
|
-
// 简单模式:使用原有的转换逻辑
|
|
757
|
-
filter = (0, _utils.convertFilterModel)(queryFilter, allColDefsRef.current);
|
|
758
|
-
}
|
|
698
|
+
// 处理高级查询模式 / 简单模式的过滤字符串构建
|
|
699
|
+
var filter = (0, _requestParams.buildFilterString)(queryFilter, allColDefsRef.current);
|
|
759
700
|
var params = _objectSpread(_objectSpread({
|
|
760
701
|
filter: filter
|
|
761
702
|
}, stableGridParams), {}, {
|
|
762
703
|
current: pagination.current,
|
|
763
|
-
skipCount:
|
|
704
|
+
skipCount: (0, _requestParams.pageToSkipCount)(pagination.current, pagination.pageSize),
|
|
764
705
|
maxResultCount: pagination.pageSize,
|
|
765
706
|
sorter: getSort(stableSortColumn)
|
|
766
707
|
});
|
|
708
|
+
var requestSeq = ++requestSeqRef.current;
|
|
767
709
|
requestRef.current(params, undefined, queryFilter).then(function (response) {
|
|
768
710
|
var _apiRef$current2;
|
|
711
|
+
// 过期响应(期间已发起更新的请求),直接丢弃 @author nokecy
|
|
712
|
+
if (requestSeq !== requestSeqRef.current) return;
|
|
713
|
+
|
|
769
714
|
// 验证响应数据格式
|
|
770
715
|
if (!response || _typeof(response) !== 'object') {
|
|
771
716
|
throw new _errors.GridPlusError('服务器返回数据格式错误', _errors.ErrorType.DATA_FORMAT_ERROR, _errors.ErrorSeverity.HIGH, {
|
|
@@ -841,6 +786,8 @@ function AgGridPlus(props) {
|
|
|
841
786
|
});
|
|
842
787
|
}
|
|
843
788
|
}).catch(function (error) {
|
|
789
|
+
// 过期请求的失败不再提示/改状态,避免干扰最新请求 @author nokecy
|
|
790
|
+
if (requestSeq !== requestSeqRef.current) return;
|
|
844
791
|
setLoading(false);
|
|
845
792
|
|
|
846
793
|
// 包装错误为 GridPlusError
|
|
@@ -921,7 +868,7 @@ function AgGridPlus(props) {
|
|
|
921
868
|
}, [ready, formInitialized, stableQueryFilter, stableGridParams, pagination.current, pagination.pageSize, stableSortColumn]);
|
|
922
869
|
var handelgridPlusColumnState = function handelgridPlusColumnState(columnState) {
|
|
923
870
|
var cellMap = {};
|
|
924
|
-
if ((0,
|
|
871
|
+
if ((0, _lodash.isArray)(columnState)) {
|
|
925
872
|
columnState.forEach(function (item) {
|
|
926
873
|
if (item.field && (item.cellClass || item.suppressHeaderFilterButton !== undefined || item.groupName)) {
|
|
927
874
|
// 使用对象存储多个字段的值
|
|
@@ -990,21 +937,12 @@ function AgGridPlus(props) {
|
|
|
990
937
|
};
|
|
991
938
|
|
|
992
939
|
// 只保留既被选中又在当前显示的行
|
|
993
|
-
var visibleSelectedRows =
|
|
994
|
-
return
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
context: null
|
|
1000
|
-
});
|
|
1001
|
-
var displayedRowId = getRowIdMethod({
|
|
1002
|
-
data: displayedRow,
|
|
1003
|
-
level: 0,
|
|
1004
|
-
api: apiRef.current,
|
|
1005
|
-
context: null
|
|
1006
|
-
});
|
|
1007
|
-
return selectedRowId && displayedRowId && selectedRowId === displayedRowId;
|
|
940
|
+
var visibleSelectedRows = (0, _rowSelection.filterVisibleSelectedRows)(allSelectedRows, displayedRows, function (row) {
|
|
941
|
+
return getRowIdMethod({
|
|
942
|
+
data: row,
|
|
943
|
+
level: 0,
|
|
944
|
+
api: apiRef.current,
|
|
945
|
+
context: null
|
|
1008
946
|
});
|
|
1009
947
|
});
|
|
1010
948
|
onSelectedRowsChangeRef.current(visibleSelectedRows);
|
|
@@ -1019,82 +957,6 @@ function AgGridPlus(props) {
|
|
|
1019
957
|
setColumnCellClass(handelgridPlusColumnState(columnState));
|
|
1020
958
|
}
|
|
1021
959
|
};
|
|
1022
|
-
var isValidNumber = function isValidNumber(value) {
|
|
1023
|
-
return typeof value === 'number' && !isNaN(value);
|
|
1024
|
-
};
|
|
1025
|
-
var sumFun = function sumFun(field, displayedData) {
|
|
1026
|
-
return (0, _sumBy2.default)(displayedData, function (cur) {
|
|
1027
|
-
if (cur && isValidNumber(cur[field])) {
|
|
1028
|
-
return cur[field];
|
|
1029
|
-
}
|
|
1030
|
-
return 0;
|
|
1031
|
-
});
|
|
1032
|
-
};
|
|
1033
|
-
var avgFun = function avgFun(field, displayedData) {
|
|
1034
|
-
// 修正:分子分母口径统一为「有效数字」,避免 count 误用数组(恒真)及除零得 NaN @author nokecy
|
|
1035
|
-
var validValues = displayedData.filter(function (cur) {
|
|
1036
|
-
return cur && isValidNumber(cur[field]);
|
|
1037
|
-
});
|
|
1038
|
-
if (validValues.length === 0) return 0;
|
|
1039
|
-
var sum = (0, _sumBy2.default)(validValues, function (cur) {
|
|
1040
|
-
return cur[field];
|
|
1041
|
-
});
|
|
1042
|
-
return sum / validValues.length;
|
|
1043
|
-
};
|
|
1044
|
-
var standardDeviationFun = function standardDeviationFun(field, displayedData) {
|
|
1045
|
-
var validValues = displayedData.filter(function (cur) {
|
|
1046
|
-
return isValidNumber(cur[field]);
|
|
1047
|
-
});
|
|
1048
|
-
var count = validValues.length;
|
|
1049
|
-
if (count === 0) return 0;
|
|
1050
|
-
var mean = sumFun(field, displayedData) / count;
|
|
1051
|
-
var variance = (0, _sumBy2.default)(displayedData, function (cur) {
|
|
1052
|
-
if (cur && cur[field] !== undefined && cur[field] !== null) {
|
|
1053
|
-
var diff = cur[field] - mean;
|
|
1054
|
-
return diff * diff;
|
|
1055
|
-
}
|
|
1056
|
-
return 0;
|
|
1057
|
-
}) / count;
|
|
1058
|
-
return Math.sqrt(variance);
|
|
1059
|
-
};
|
|
1060
|
-
var handelNumber = function handelNumber(value) {
|
|
1061
|
-
return (value / 1).toLocaleString(undefined, {
|
|
1062
|
-
minimumFractionDigits: 2,
|
|
1063
|
-
maximumFractionDigits: 2
|
|
1064
|
-
});
|
|
1065
|
-
};
|
|
1066
|
-
// sum 求和 avg 平均值 standardDeviation 标准差
|
|
1067
|
-
var calculatefun = function calculatefun(calcColFields, displayedData) {
|
|
1068
|
-
var calculateArrCopy = [];
|
|
1069
|
-
var calculateData = {
|
|
1070
|
-
id: (0, _uniqueId2.default)()
|
|
1071
|
-
};
|
|
1072
|
-
calcColFields.forEach(function (i) {
|
|
1073
|
-
if (!i.cellRenderer) {
|
|
1074
|
-
switch (i.calculateType) {
|
|
1075
|
-
case "sum":
|
|
1076
|
-
var sumPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
|
|
1077
|
-
var sumValue = Number(sumFun(i.field, displayedData).toFixed(sumPrecision));
|
|
1078
|
-
calculateData[i.field] = i.formatWithCommas ? handelNumber(sumValue) : sumValue;
|
|
1079
|
-
break;
|
|
1080
|
-
case "avg":
|
|
1081
|
-
var avgPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
|
|
1082
|
-
calculateData[i.field] = Number(avgFun(i.field, displayedData).toFixed(avgPrecision));
|
|
1083
|
-
break;
|
|
1084
|
-
case "standardDeviation":
|
|
1085
|
-
var stdPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
|
|
1086
|
-
calculateData[i.field] = Number(standardDeviationFun(i.field, displayedData).toFixed(stdPrecision));
|
|
1087
|
-
break;
|
|
1088
|
-
default:
|
|
1089
|
-
break;
|
|
1090
|
-
}
|
|
1091
|
-
}
|
|
1092
|
-
});
|
|
1093
|
-
if (Object.keys(calculateData).length > 0) {
|
|
1094
|
-
calculateArrCopy.push(calculateData);
|
|
1095
|
-
}
|
|
1096
|
-
return calculateArrCopy;
|
|
1097
|
-
};
|
|
1098
960
|
var calculateSum = (0, _react.useCallback)(function () {
|
|
1099
961
|
var displayedData = [];
|
|
1100
962
|
if (apiRef.current) {
|
|
@@ -1119,10 +981,10 @@ function AgGridPlus(props) {
|
|
|
1119
981
|
});
|
|
1120
982
|
if (calcColFields.length > 0) {
|
|
1121
983
|
var _apiRef$current5;
|
|
1122
|
-
var calculatedValues =
|
|
984
|
+
var calculatedValues = (0, _aggregation.computeAggregationRow)(calcColFields, displayedData);
|
|
1123
985
|
(_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 || _apiRef$current5.setGridOption('pinnedBottomRowData', calculatedValues);
|
|
1124
986
|
}
|
|
1125
|
-
}, [allColDefs
|
|
987
|
+
}, [allColDefs]);
|
|
1126
988
|
var onFilterChanged = function onFilterChanged(event) {
|
|
1127
989
|
calculateSum();
|
|
1128
990
|
};
|
|
@@ -1180,7 +1042,9 @@ function AgGridPlus(props) {
|
|
|
1180
1042
|
return processedColumns;
|
|
1181
1043
|
}, [
|
|
1182
1044
|
// 【关键】优先依赖派生状态
|
|
1183
|
-
derivedColumnDefs, _react.default.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass,
|
|
1045
|
+
derivedColumnDefs, _react.default.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass,
|
|
1046
|
+
// ref.current 变更不触发重渲染,作依赖无效;改依赖真正的数据源 allColDefs(memo 值) @author nokecy
|
|
1047
|
+
allColDefs]);
|
|
1184
1048
|
|
|
1185
1049
|
// 构建查询表单项(带 order 属性)
|
|
1186
1050
|
var queryFormItems = (0, _react.useMemo)(function () {
|
|
@@ -1202,36 +1066,22 @@ function AgGridPlus(props) {
|
|
|
1202
1066
|
var orderedFormItems = (0, _react.useMemo)(function () {
|
|
1203
1067
|
// 从查询方案提取字段顺序
|
|
1204
1068
|
var itemsOrder = currentQueryScheme ? (0, _schemeDataMigration.extractItemsOrder)(currentQueryScheme) : queryItemsOrder;
|
|
1205
|
-
|
|
1206
|
-
return queryFormItems;
|
|
1207
|
-
}
|
|
1208
|
-
|
|
1209
|
-
// 按照 itemsOrder 排序
|
|
1210
|
-
var ordered = _toConsumableArray(queryFormItems).sort(function (a, b) {
|
|
1211
|
-
var indexA = itemsOrder.indexOf(a.field);
|
|
1212
|
-
var indexB = itemsOrder.indexOf(b.field);
|
|
1213
|
-
if (indexA === -1 && indexB === -1) return 0;
|
|
1214
|
-
if (indexA === -1) return 1;
|
|
1215
|
-
if (indexB === -1) return -1;
|
|
1216
|
-
return indexA - indexB;
|
|
1217
|
-
});
|
|
1218
|
-
return ordered;
|
|
1069
|
+
return (0, _queryFormDerivation.sortFormItemsByOrder)(queryFormItems, itemsOrder);
|
|
1219
1070
|
}, [queryFormItems, currentQueryScheme, queryItemsOrder]);
|
|
1220
1071
|
|
|
1221
1072
|
// 根据方案的隐藏字段过滤表单项
|
|
1222
1073
|
var visibleFormItems = (0, _react.useMemo)(function () {
|
|
1223
1074
|
// 从查询方案提取隐藏字段
|
|
1224
1075
|
var hiddenFields = currentQueryScheme ? (0, _schemeDataMigration.extractHiddenFields)(currentQueryScheme) : [];
|
|
1225
|
-
|
|
1226
|
-
return orderedFormItems;
|
|
1227
|
-
}
|
|
1228
|
-
return orderedFormItems.filter(function (item) {
|
|
1229
|
-
return !hiddenFields.includes(item.field);
|
|
1230
|
-
});
|
|
1076
|
+
return (0, _queryFormDerivation.filterHiddenFormItems)(orderedFormItems, hiddenFields);
|
|
1231
1077
|
}, [orderedFormItems, currentQueryScheme]);
|
|
1078
|
+
|
|
1079
|
+
// 依赖 rowData:数据刷新(翻页/查询)后需重算底部汇总行。
|
|
1080
|
+
// 原内联 calculatefun 每渲染重建使本 effect 每渲染都跑而隐式覆盖此触发;
|
|
1081
|
+
// 抽出后 calculateSum 变稳定,须显式依赖 rowData 以保持原行为。@author nokecy
|
|
1232
1082
|
(0, _react.useEffect)(function () {
|
|
1233
1083
|
calculateSum();
|
|
1234
|
-
}, [calculateSum]);
|
|
1084
|
+
}, [calculateSum, rowData]);
|
|
1235
1085
|
var rowDataMemo = (0, _react.useMemo)(function () {
|
|
1236
1086
|
// 【兼容】根据 useNativeTreeFilter 决定是否使用原生树形过滤
|
|
1237
1087
|
// - useNativeTreeFilter=true: 直接传入原始数据,由 AG-Grid 原生处理树形结构(支持列头过滤所有层级)
|
|
@@ -1244,7 +1094,9 @@ function AgGridPlus(props) {
|
|
|
1244
1094
|
var actionDom = toolBarRender && toolBarRender(apiRef.current, (0, _utils.convertFilterModel)(queryFilter, allColDefsRef.current), queryFilter, {
|
|
1245
1095
|
current: pagination.current,
|
|
1246
1096
|
skipCount: pagination.current == 1 ? 0 : (pagination.current - 1) * pagination.pageSize,
|
|
1247
|
-
maxResultCount: pagination.pageSize
|
|
1097
|
+
maxResultCount: pagination.pageSize,
|
|
1098
|
+
page: pagination.current,
|
|
1099
|
+
pageSize: pagination.pageSize
|
|
1248
1100
|
});
|
|
1249
1101
|
var autoGroupColumnDef = (0, _react.useMemo)(function () {
|
|
1250
1102
|
var _props$autoGroupColum;
|
|
@@ -1253,22 +1105,29 @@ function AgGridPlus(props) {
|
|
|
1253
1105
|
});
|
|
1254
1106
|
}, [props.autoGroupColumnDef]);
|
|
1255
1107
|
|
|
1256
|
-
//
|
|
1108
|
+
// 查询表单上下文值:从 GridPlusContext 拆出,使查询表单的高频变化(顺序调整)
|
|
1109
|
+
// 不再触发 GridPlusContext 全量重渲染。@author nokecy
|
|
1110
|
+
var queryFormContextValue = (0, _react.useMemo)(function () {
|
|
1111
|
+
return {
|
|
1112
|
+
queryFormItems: queryFormItems,
|
|
1113
|
+
currentQueryOrder: currentQueryScheme ? (0, _schemeDataMigration.extractItemsOrder)(currentQueryScheme) : queryItemsOrder,
|
|
1114
|
+
updateQueryOrder: setQueryItemsOrder
|
|
1115
|
+
};
|
|
1116
|
+
}, [queryFormItems, currentQueryScheme, queryItemsOrder]);
|
|
1117
|
+
|
|
1118
|
+
// 准备 GridPlusContext 的值(包含方案管理的完整 API;查询表单字段已移至 QueryFormContext)
|
|
1257
1119
|
var gridPlusContextValue = (0, _react.useMemo)(function () {
|
|
1258
1120
|
return {
|
|
1259
1121
|
extensibleColumns: extensibleColumns,
|
|
1260
1122
|
columnState: gridPlusColumnState,
|
|
1261
|
-
allColDefs:
|
|
1262
|
-
//
|
|
1123
|
+
allColDefs: allColDefs,
|
|
1124
|
+
// 直接用 memo 值(与 ref 同源,引用变化能正确触发 memo 更新) @author nokecy
|
|
1263
1125
|
initialColumnDefs: initialColumnDefsRef.current,
|
|
1264
|
-
//
|
|
1126
|
+
// 初始列定义在 allColDefs 首次计算时填充,之后不变(用于获取原始 headerName)
|
|
1265
1127
|
onSaveColumnState: onSaveColumnState,
|
|
1266
1128
|
applyToGlobal: applyToGlobal,
|
|
1267
1129
|
resetCurrent: resetCurrent,
|
|
1268
1130
|
resetAll: resetAll,
|
|
1269
|
-
currentQueryOrder: currentQueryScheme ? (0, _schemeDataMigration.extractItemsOrder)(currentQueryScheme) : queryItemsOrder,
|
|
1270
|
-
updateQueryOrder: setQueryItemsOrder,
|
|
1271
|
-
queryFormItems: queryFormItems,
|
|
1272
1131
|
// ========== 方案管理 API(透传给子组件) ==========
|
|
1273
1132
|
columnSchemes: columnSchemes,
|
|
1274
1133
|
querySchemes: querySchemes,
|
|
@@ -1296,11 +1155,9 @@ function AgGridPlus(props) {
|
|
|
1296
1155
|
// ========== 实体扩展字段配置 @author nokecy ==========
|
|
1297
1156
|
hostEntityExtensions: hostEntityExtensions
|
|
1298
1157
|
};
|
|
1299
|
-
}, [extensibleColumns, gridPlusColumnState,
|
|
1300
|
-
//
|
|
1301
|
-
|
|
1302
|
-
// 【新增】添加初始列定义到依赖数组
|
|
1303
|
-
onSaveColumnState, applyToGlobal, resetCurrent, resetAll, currentQueryScheme, queryItemsOrder, queryFormItems,
|
|
1158
|
+
}, [extensibleColumns, gridPlusColumnState,
|
|
1159
|
+
// ref.current 作依赖无效(变更不触发重渲染);依赖数据源 allColDefs,initialColumnDefs 随其首次计算填充 @author nokecy
|
|
1160
|
+
allColDefs, onSaveColumnState, applyToGlobal, resetCurrent, resetAll,
|
|
1304
1161
|
// 方案管理依赖
|
|
1305
1162
|
columnSchemes, querySchemes, currentSchemes, schemesLoading, lastSyncTime, saveColumnScheme, deleteColumnScheme, saveQueryScheme, deleteQueryScheme, setCurrentColumnScheme, setCurrentQueryScheme, refreshSchemes, getColumnSchemes, getQuerySchemes, getCurrentScheme,
|
|
1306
1163
|
// 全局配置依赖
|
|
@@ -1311,6 +1168,8 @@ function AgGridPlus(props) {
|
|
|
1311
1168
|
hostEntityExtensions]);
|
|
1312
1169
|
return /*#__PURE__*/_react.default.createElement(_gridContext.GridPlusContext.Provider, {
|
|
1313
1170
|
value: gridPlusContextValue
|
|
1171
|
+
}, /*#__PURE__*/_react.default.createElement(_queryFormContext.QueryFormContext.Provider, {
|
|
1172
|
+
value: queryFormContextValue
|
|
1314
1173
|
}, /*#__PURE__*/_react.default.createElement(_antd.Spin, {
|
|
1315
1174
|
spinning: loading,
|
|
1316
1175
|
wrapperClassName: "grid-spin"
|
|
@@ -1560,6 +1419,6 @@ function AgGridPlus(props) {
|
|
|
1560
1419
|
pageSizeOptions: props.pageSizeOptions || [10, 20, 50, 100, 200, 500, 1000, 10000],
|
|
1561
1420
|
hideOnSinglePage: false,
|
|
1562
1421
|
showQuickJumper: false
|
|
1563
|
-
}))))));
|
|
1422
|
+
})))))));
|
|
1564
1423
|
}
|
|
1565
1424
|
var _default = exports.default = AgGridPlus;
|
|
@@ -129,14 +129,17 @@ export interface GridPlusContextValue extends SchemeManagementAPI {
|
|
|
129
129
|
resetAll: (gridKey: string) => void;
|
|
130
130
|
/**
|
|
131
131
|
* 查询表单项列表(用于查询方案管理器)
|
|
132
|
+
* @deprecated 已移至 QueryFormContext(useQueryForm);保留此声明仅为向后兼容,AgGridPlus 不再经本 Context 提供。
|
|
132
133
|
*/
|
|
133
134
|
queryFormItems?: any[];
|
|
134
135
|
/**
|
|
135
136
|
* 当前查询项顺序
|
|
137
|
+
* @deprecated 已移至 QueryFormContext(useQueryForm)。
|
|
136
138
|
*/
|
|
137
139
|
currentQueryOrder?: string[];
|
|
138
140
|
/**
|
|
139
141
|
* 更新查询项顺序
|
|
142
|
+
* @deprecated 已移至 QueryFormContext(useQueryForm)。
|
|
140
143
|
*/
|
|
141
144
|
updateQueryOrder?: (order: string[]) => void;
|
|
142
145
|
/**
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 查询表单上下文。
|
|
4
|
+
*
|
|
5
|
+
* 从 GridPlusContext 中拆出"查询表单"相关字段(查询项列表/顺序/更新函数),
|
|
6
|
+
* 使查询表单的高频变化(如拖动调整顺序)不再触发 GridPlusContext 全量重渲染。
|
|
7
|
+
* 当前仅 QuerySchemeManager 消费;由 AgGridPlus 内部 Provider 提供。
|
|
8
|
+
* @author nokecy
|
|
9
|
+
*/
|
|
10
|
+
export interface QueryFormContextValue {
|
|
11
|
+
/** 查询表单项列表(用于查询方案管理器) */
|
|
12
|
+
queryFormItems?: any[];
|
|
13
|
+
/** 当前查询项顺序 */
|
|
14
|
+
currentQueryOrder?: string[];
|
|
15
|
+
/** 更新查询项顺序 */
|
|
16
|
+
updateQueryOrder?: (order: string[]) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare const QueryFormContext: React.Context<QueryFormContextValue>;
|
|
19
|
+
/** 读取查询表单上下文。@author nokecy */
|
|
20
|
+
export declare const useQueryForm: () => QueryFormContextValue;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useQueryForm = exports.QueryFormContext = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
/**
|
|
10
|
+
* 查询表单上下文。
|
|
11
|
+
*
|
|
12
|
+
* 从 GridPlusContext 中拆出"查询表单"相关字段(查询项列表/顺序/更新函数),
|
|
13
|
+
* 使查询表单的高频变化(如拖动调整顺序)不再触发 GridPlusContext 全量重渲染。
|
|
14
|
+
* 当前仅 QuerySchemeManager 消费;由 AgGridPlus 内部 Provider 提供。
|
|
15
|
+
* @author nokecy
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
var QueryFormContext = exports.QueryFormContext = /*#__PURE__*/_react.default.createContext({
|
|
19
|
+
queryFormItems: []
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
/** 读取查询表单上下文。@author nokecy */
|
|
23
|
+
var useQueryForm = exports.useQueryForm = function useQueryForm() {
|
|
24
|
+
return _react.default.useContext(QueryFormContext);
|
|
25
|
+
};
|