@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
|
@@ -19,9 +19,18 @@ interface GridProps extends AgGridReactProps {
|
|
|
19
19
|
headerTitle?: React.ReactNode;
|
|
20
20
|
columnDefs?: (AgGridColumnPropsClone | ColGroupDef<any>)[] | null;
|
|
21
21
|
toolBarRender?: (gridApi?: GridApi, filter?: string, queryFilter?: any, paginationInfo?: {
|
|
22
|
+
/** @deprecated 改用 page */
|
|
22
23
|
current: number;
|
|
24
|
+
/** @deprecated 改用 page/pageSize */
|
|
23
25
|
skipCount: number;
|
|
26
|
+
/** @deprecated 改用 page/pageSize */
|
|
24
27
|
maxResultCount: number;
|
|
28
|
+
/** 当前页码(1-based)
|
|
29
|
+
* @author nokecy */
|
|
30
|
+
page?: number;
|
|
31
|
+
/** 每页条数
|
|
32
|
+
* @author nokecy */
|
|
33
|
+
pageSize?: number;
|
|
25
34
|
}) => React.ReactNode[];
|
|
26
35
|
defaultSearchExpand?: Boolean;
|
|
27
36
|
/**
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _logger = require("../utils/logger");
|
|
9
10
|
var _antd = require("antd");
|
|
10
11
|
var _icons = require("@ant-design/icons");
|
|
11
12
|
var _agGridReact = require("ag-grid-react");
|
|
@@ -286,6 +287,9 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
286
287
|
// 从根级别开始查找新增列
|
|
287
288
|
findNewColumns(originalDefs, 0);
|
|
288
289
|
if (newItems.length > 0) {
|
|
290
|
+
_logger.logger.debug('[getColumnData] 检测到新增列/分组,已追加到末尾:', newItems.map(function (i) {
|
|
291
|
+
return i.field || i.groupId;
|
|
292
|
+
}));
|
|
289
293
|
return [].concat(_toConsumableArray(config), newItems);
|
|
290
294
|
}
|
|
291
295
|
return config;
|
|
@@ -430,19 +434,20 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
430
434
|
return s.id === schemeId;
|
|
431
435
|
});
|
|
432
436
|
if (!(scheme && gridApi)) {
|
|
433
|
-
_context.next =
|
|
437
|
+
_context.next = 13;
|
|
434
438
|
break;
|
|
435
439
|
}
|
|
436
440
|
// 【关键修复】先更新 columnDefs(处理分组结构),使用 allColDefs 保留自定义属性
|
|
437
441
|
gridColumnDefs = (0, _columnGroupUtils.flatConfigToGridState)(scheme.columnConfig, allColDefs);
|
|
442
|
+
_logger.logger.debug('[ColumnSetting] 加载方案 - 更新 columnDefs');
|
|
438
443
|
gridApi.setGridOption('columnDefs', gridColumnDefs);
|
|
439
444
|
|
|
440
445
|
// 等待 columnDefs 更新完成
|
|
441
|
-
_context.next =
|
|
446
|
+
_context.next = 10;
|
|
442
447
|
return new Promise(function (resolve) {
|
|
443
448
|
return setTimeout(resolve, 100);
|
|
444
449
|
});
|
|
445
|
-
case
|
|
450
|
+
case 10:
|
|
446
451
|
// 【修复】然后应用列状态(宽度、隐藏、顺序等)
|
|
447
452
|
columnState = (0, _columnGroupUtils.flatConfigToColumnState)(scheme.columnConfig);
|
|
448
453
|
gridApi.applyColumnState({
|
|
@@ -454,7 +459,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
454
459
|
if (scheme.filterModel) {
|
|
455
460
|
gridApi.setFilterModel(scheme.filterModel);
|
|
456
461
|
}
|
|
457
|
-
case
|
|
462
|
+
case 13:
|
|
458
463
|
_antd.message.success('方案已加载');
|
|
459
464
|
|
|
460
465
|
// 等待Grid状态更新后再刷新表单
|
|
@@ -469,17 +474,17 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
469
474
|
|
|
470
475
|
// 自动关闭弹窗,让用户看到Grid的变化
|
|
471
476
|
onClose();
|
|
472
|
-
_context.next =
|
|
477
|
+
_context.next = 21;
|
|
473
478
|
break;
|
|
474
|
-
case
|
|
475
|
-
_context.prev =
|
|
479
|
+
case 18:
|
|
480
|
+
_context.prev = 18;
|
|
476
481
|
_context.t0 = _context["catch"](0);
|
|
477
482
|
_antd.message.error(_context.t0.message || '加载方案失败');
|
|
478
|
-
case
|
|
483
|
+
case 21:
|
|
479
484
|
case "end":
|
|
480
485
|
return _context.stop();
|
|
481
486
|
}
|
|
482
|
-
}, _callee, null, [[0,
|
|
487
|
+
}, _callee, null, [[0, 18]]);
|
|
483
488
|
}));
|
|
484
489
|
return function (_x) {
|
|
485
490
|
return _ref2.apply(this, arguments);
|
|
@@ -597,15 +602,24 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
597
602
|
return setTimeout(resolve, 100);
|
|
598
603
|
});
|
|
599
604
|
case 39:
|
|
605
|
+
// 【关键修复】直接应用方案到 Grid,不通过 handleLoadScheme
|
|
606
|
+
// 这样可以避免依赖 Context 状态更新的时序问题
|
|
607
|
+
_logger.logger.debug('[ColumnSetting] 保存后直接应用方案到 Grid');
|
|
608
|
+
|
|
609
|
+
// 【修复】始终更新 columnDefs,确保 cellClass 等属性能即时生效
|
|
610
|
+
// 原逻辑只在有分组时才更新 columnDefs,导致对齐方式保存后无法即时生效
|
|
611
|
+
_logger.logger.debug('[ColumnSetting] 更新 columnDefs');
|
|
600
612
|
gridColumnDefs = (0, _columnGroupUtils.flatConfigToGridState)(savedScheme.columnConfig, allColDefs);
|
|
601
613
|
gridApi.setGridOption('columnDefs', gridColumnDefs);
|
|
602
614
|
|
|
603
615
|
// 等待 columnDefs 更新完成
|
|
604
|
-
_context2.next =
|
|
616
|
+
_context2.next = 45;
|
|
605
617
|
return new Promise(function (resolve) {
|
|
606
618
|
return setTimeout(resolve, 100);
|
|
607
619
|
});
|
|
608
|
-
case
|
|
620
|
+
case 45:
|
|
621
|
+
// 2. 应用列状态(列顺序、宽度、隐藏、固定等)
|
|
622
|
+
_logger.logger.debug('[ColumnSetting] 应用列状态');
|
|
609
623
|
columnState = (0, _columnGroupUtils.flatConfigToColumnState)(savedScheme.columnConfig);
|
|
610
624
|
gridApi.applyColumnState({
|
|
611
625
|
state: columnState,
|
|
@@ -614,36 +628,37 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
614
628
|
|
|
615
629
|
// 3. 应用过滤器
|
|
616
630
|
if (savedScheme.filterModel) {
|
|
631
|
+
_logger.logger.debug('[ColumnSetting] 应用 filterModel');
|
|
617
632
|
gridApi.setFilterModel(savedScheme.filterModel);
|
|
618
633
|
}
|
|
619
634
|
|
|
620
635
|
// 4. 设置为当前方案(如果不是当前方案)
|
|
621
636
|
if (!(!currentScheme || savedScheme.id !== currentScheme.id)) {
|
|
622
|
-
_context2.next =
|
|
637
|
+
_context2.next = 52;
|
|
623
638
|
break;
|
|
624
639
|
}
|
|
625
|
-
_context2.next =
|
|
640
|
+
_context2.next = 52;
|
|
626
641
|
return setCurrentColumnScheme === null || setCurrentColumnScheme === void 0 ? void 0 : setCurrentColumnScheme(gridKey, savedScheme.id);
|
|
627
|
-
case
|
|
628
|
-
_context2.next =
|
|
642
|
+
case 52:
|
|
643
|
+
_context2.next = 54;
|
|
629
644
|
return new Promise(function (resolve) {
|
|
630
645
|
return setTimeout(resolve, 50);
|
|
631
646
|
});
|
|
632
|
-
case
|
|
647
|
+
case 54:
|
|
633
648
|
// 5. 关闭弹窗
|
|
634
649
|
onClose();
|
|
635
|
-
_context2.next =
|
|
650
|
+
_context2.next = 61;
|
|
636
651
|
break;
|
|
637
|
-
case
|
|
638
|
-
_context2.prev =
|
|
652
|
+
case 57:
|
|
653
|
+
_context2.prev = 57;
|
|
639
654
|
_context2.t0 = _context2["catch"](8);
|
|
640
655
|
console.error('保存列配置到方案失败:', _context2.t0);
|
|
641
656
|
_antd.message.error('保存列配置失败');
|
|
642
|
-
case
|
|
657
|
+
case 61:
|
|
643
658
|
case "end":
|
|
644
659
|
return _context2.stop();
|
|
645
660
|
}
|
|
646
|
-
}, _callee2, null, [[8,
|
|
661
|
+
}, _callee2, null, [[8, 57]]);
|
|
647
662
|
})), [form, gridApi, saveColumnScheme, setCurrentColumnScheme, currentScheme, schemes, gridKey, allColDefs, onClose]);
|
|
648
663
|
|
|
649
664
|
// 保存为新方案
|
|
@@ -661,21 +676,22 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
661
676
|
case 3:
|
|
662
677
|
_context3.prev = 3;
|
|
663
678
|
if (!(activeTab === 'columns' && form)) {
|
|
664
|
-
_context3.next =
|
|
679
|
+
_context3.next = 18;
|
|
665
680
|
break;
|
|
666
681
|
}
|
|
667
682
|
values = form.values;
|
|
668
683
|
columnConfigToSave = values.items; // 直接使用 FlatColumnItem[] 数据
|
|
669
684
|
// 【修复】传入 allColDefs 以保留自定义属性(cellRenderer 等)
|
|
670
685
|
gridColumnDefs = (0, _columnGroupUtils.flatConfigToGridState)(values.items, allColDefs); // 【关键修复】先更新 columnDefs(处理分组结构变化)
|
|
686
|
+
_logger.logger.debug('[ColumnSetting] 另存为方案 - 更新 columnDefs');
|
|
671
687
|
gridApi.setGridOption('columnDefs', gridColumnDefs);
|
|
672
688
|
|
|
673
689
|
// 等待 columnDefs 更新完成
|
|
674
|
-
_context3.next =
|
|
690
|
+
_context3.next = 12;
|
|
675
691
|
return new Promise(function (resolve) {
|
|
676
692
|
return setTimeout(resolve, 100);
|
|
677
693
|
});
|
|
678
|
-
case
|
|
694
|
+
case 12:
|
|
679
695
|
// 【修复】然后应用列状态(宽度、隐藏、顺序等)
|
|
680
696
|
columnState = (0, _columnGroupUtils.flatConfigToColumnState)(values.items);
|
|
681
697
|
gridApi.applyColumnState({
|
|
@@ -684,18 +700,18 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
684
700
|
});
|
|
685
701
|
|
|
686
702
|
// 等待状态更新
|
|
687
|
-
_context3.next =
|
|
703
|
+
_context3.next = 16;
|
|
688
704
|
return new Promise(function (resolve) {
|
|
689
705
|
return setTimeout(resolve, 50);
|
|
690
706
|
});
|
|
691
|
-
case
|
|
692
|
-
_context3.next =
|
|
707
|
+
case 16:
|
|
708
|
+
_context3.next = 20;
|
|
693
709
|
break;
|
|
694
|
-
case
|
|
710
|
+
case 18:
|
|
695
711
|
// 如果在"方案管理"标签页,使用当前表单数据
|
|
696
712
|
_values = form === null || form === void 0 ? void 0 : form.values;
|
|
697
713
|
columnConfigToSave = (_values === null || _values === void 0 ? void 0 : _values.items) || [];
|
|
698
|
-
case
|
|
714
|
+
case 20:
|
|
699
715
|
// 获取过滤器模型
|
|
700
716
|
filterModel = gridApi.getFilterModel();
|
|
701
717
|
newScheme = {
|
|
@@ -708,9 +724,9 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
708
724
|
isSystem: false
|
|
709
725
|
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
710
726
|
};
|
|
711
|
-
_context3.next =
|
|
727
|
+
_context3.next = 24;
|
|
712
728
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, newScheme);
|
|
713
|
-
case
|
|
729
|
+
case 24:
|
|
714
730
|
_antd.message.success('方案保存成功');
|
|
715
731
|
setSaveSchemeVisible(false);
|
|
716
732
|
setSchemeName('');
|
|
@@ -718,17 +734,17 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
718
734
|
|
|
719
735
|
// 切换到方案管理标签页,显示新创建的方案
|
|
720
736
|
setActiveTab('schemes');
|
|
721
|
-
_context3.next =
|
|
737
|
+
_context3.next = 34;
|
|
722
738
|
break;
|
|
723
|
-
case
|
|
724
|
-
_context3.prev =
|
|
739
|
+
case 31:
|
|
740
|
+
_context3.prev = 31;
|
|
725
741
|
_context3.t0 = _context3["catch"](3);
|
|
726
742
|
_antd.message.error(_context3.t0.message || '保存方案失败');
|
|
727
|
-
case
|
|
743
|
+
case 34:
|
|
728
744
|
case "end":
|
|
729
745
|
return _context3.stop();
|
|
730
746
|
}
|
|
731
|
-
}, _callee3, null, [[3,
|
|
747
|
+
}, _callee3, null, [[3, 31]]);
|
|
732
748
|
})), [gridApi, saveColumnScheme, gridKey, schemeName, schemeDescription, activeTab, form, allColDefs]);
|
|
733
749
|
|
|
734
750
|
// 设置默认方案
|
|
@@ -11,7 +11,7 @@ var _draggableModal = _interopRequireDefault(require("../../draggableModal"));
|
|
|
11
11
|
var _icons = require("@ant-design/icons");
|
|
12
12
|
var _agGridReact = require("ag-grid-react");
|
|
13
13
|
var _useSchemeManager = require("../context/useSchemeManager");
|
|
14
|
-
var
|
|
14
|
+
var _queryFormContext = require("../context/queryFormContext");
|
|
15
15
|
var _uuid = require("uuid");
|
|
16
16
|
var _schemeDataMigration = require("../shared/utils/schemeDataMigration");
|
|
17
17
|
var _theme = require("../theme");
|
|
@@ -66,11 +66,11 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
66
66
|
deleteQueryScheme = _useGridSchemes.deleteQueryScheme,
|
|
67
67
|
setCurrentQueryScheme = _useGridSchemes.setCurrentQueryScheme;
|
|
68
68
|
|
|
69
|
-
//
|
|
70
|
-
var
|
|
71
|
-
queryFormItems =
|
|
72
|
-
currentQueryOrder =
|
|
73
|
-
updateQueryOrder =
|
|
69
|
+
// 从查询表单 Context 获取查询表单项和当前顺序(已从 GridPlusContext 拆出)
|
|
70
|
+
var _useQueryForm = (0, _queryFormContext.useQueryForm)(),
|
|
71
|
+
queryFormItems = _useQueryForm.queryFormItems,
|
|
72
|
+
currentQueryOrder = _useQueryForm.currentQueryOrder,
|
|
73
|
+
updateQueryOrder = _useQueryForm.updateQueryOrder;
|
|
74
74
|
|
|
75
75
|
// 获取当前表格的查询方案列表
|
|
76
76
|
var schemes = (querySchemes === null || querySchemes === void 0 ? void 0 : querySchemes[gridKey]) || [];
|
|
@@ -13,8 +13,8 @@ exports.gridStateToFlatConfig = gridStateToFlatConfig;
|
|
|
13
13
|
exports.isOldSchemeData = isOldSchemeData;
|
|
14
14
|
exports.migrateOldScheme = migrateOldScheme;
|
|
15
15
|
exports.reorderItems = reorderItems;
|
|
16
|
-
var
|
|
17
|
-
|
|
16
|
+
var _lodash = require("lodash");
|
|
17
|
+
var _logger = require("../utils/logger");
|
|
18
18
|
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; }
|
|
19
19
|
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; }
|
|
20
20
|
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; }
|
|
@@ -26,17 +26,15 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
|
|
|
26
26
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
27
27
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
28
28
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
29
|
-
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; }
|
|
30
|
-
/**
|
|
29
|
+
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; } /**
|
|
31
30
|
* 表头分组配置工具函数
|
|
32
31
|
* 负责 Grid State 与扁平化配置之间的转换
|
|
33
32
|
*/
|
|
34
|
-
|
|
35
33
|
/**
|
|
36
34
|
* 生成唯一 ID
|
|
37
35
|
*/
|
|
38
36
|
var generateId = exports.generateId = function generateId() {
|
|
39
|
-
return (0,
|
|
37
|
+
return (0, _lodash.uniqueId)('col_');
|
|
40
38
|
};
|
|
41
39
|
|
|
42
40
|
/**
|
|
@@ -283,6 +281,12 @@ function flatConfigToGridState(flatConfig, originalColumnDefs) {
|
|
|
283
281
|
}
|
|
284
282
|
});
|
|
285
283
|
if (newColumnsWithIndex.length > 0) {
|
|
284
|
+
_logger.logger.debug('[flatConfigToGridState] 检测到新增列,将插入到原始位置:', {
|
|
285
|
+
newColumnFields: newColumnsWithIndex.map(function (item) {
|
|
286
|
+
return item.col.field;
|
|
287
|
+
})
|
|
288
|
+
});
|
|
289
|
+
|
|
286
290
|
// 将新增列插入到正确位置(基于其在原始定义中的相对位置)
|
|
287
291
|
var _iterator4 = _createForOfIteratorHelper(newColumnsWithIndex),
|
|
288
292
|
_step4;
|
|
@@ -531,6 +535,12 @@ function flatConfigToColumnState(flatConfig, originalColumnDefs) {
|
|
|
531
535
|
}
|
|
532
536
|
});
|
|
533
537
|
if (newColumnsWithIndex.length > 0) {
|
|
538
|
+
_logger.logger.debug('[flatConfigToColumnState] 检测到新增列,将插入到原始位置:', {
|
|
539
|
+
newColumnFields: newColumnsWithIndex.map(function (item) {
|
|
540
|
+
return item.col.field;
|
|
541
|
+
})
|
|
542
|
+
});
|
|
543
|
+
|
|
534
544
|
// 将新增列插入到正确位置(基于其在原始定义中的相对位置)
|
|
535
545
|
var _iterator6 = _createForOfIteratorHelper(newColumnsWithIndex),
|
|
536
546
|
_step6;
|
|
@@ -176,9 +176,18 @@ export interface ToolBarRenderParams {
|
|
|
176
176
|
queryFilter?: QueryFilterState;
|
|
177
177
|
/** 分页信息 */
|
|
178
178
|
paginationInfo?: {
|
|
179
|
+
/** @deprecated 改用 page */
|
|
179
180
|
current: number;
|
|
181
|
+
/** @deprecated 改用 page/pageSize */
|
|
180
182
|
skipCount: number;
|
|
183
|
+
/** @deprecated 改用 page/pageSize */
|
|
181
184
|
maxResultCount: number;
|
|
185
|
+
/** 当前页码(1-based)
|
|
186
|
+
* @author nokecy */
|
|
187
|
+
page?: number;
|
|
188
|
+
/** 每页条数
|
|
189
|
+
* @author nokecy */
|
|
190
|
+
pageSize?: number;
|
|
182
191
|
};
|
|
183
192
|
}
|
|
184
193
|
/**
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AG-Grid 底部汇总聚合纯函数(从 ag-gridPlus.tsx 抽出,行为原样)。
|
|
3
|
+
* @author nokecy
|
|
4
|
+
*/
|
|
5
|
+
export interface CalculationColumnConfig {
|
|
6
|
+
field: string;
|
|
7
|
+
calculateType: 'sum' | 'avg' | 'standardDeviation';
|
|
8
|
+
transactionAmount: number;
|
|
9
|
+
formatWithCommas?: boolean;
|
|
10
|
+
cellRenderer?: any;
|
|
11
|
+
}
|
|
12
|
+
export declare const isValidNumber: (value: any) => boolean;
|
|
13
|
+
export declare const sumField: (field: string, data: any[]) => number;
|
|
14
|
+
export declare const avgField: (field: string, data: any[]) => number;
|
|
15
|
+
export declare const stdDevField: (field: string, data: any[]) => number;
|
|
16
|
+
export declare const formatWithCommas: (value: number) => string;
|
|
17
|
+
export declare const computeAggregationRow: (calcColFields: CalculationColumnConfig[], data: any[]) => any[];
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
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); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.sumField = exports.stdDevField = exports.isValidNumber = exports.formatWithCommas = exports.computeAggregationRow = exports.avgField = void 0;
|
|
8
|
+
var _lodash = _interopRequireWildcard(require("lodash"));
|
|
9
|
+
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); }
|
|
10
|
+
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; }
|
|
11
|
+
/**
|
|
12
|
+
* AG-Grid 底部汇总聚合纯函数(从 ag-gridPlus.tsx 抽出,行为原样)。
|
|
13
|
+
* @author nokecy
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
var isValidNumber = exports.isValidNumber = function isValidNumber(value) {
|
|
17
|
+
return typeof value === 'number' && !isNaN(value);
|
|
18
|
+
};
|
|
19
|
+
var sumField = exports.sumField = function sumField(field, data) {
|
|
20
|
+
return _lodash.default.sumBy(data, function (cur) {
|
|
21
|
+
if (cur && isValidNumber(cur[field])) {
|
|
22
|
+
return cur[field];
|
|
23
|
+
}
|
|
24
|
+
return 0;
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
var avgField = exports.avgField = function avgField(field, data) {
|
|
28
|
+
// 分子分母口径统一为「有效数字」,避免除零得 NaN
|
|
29
|
+
var validValues = data.filter(function (cur) {
|
|
30
|
+
return cur && isValidNumber(cur[field]);
|
|
31
|
+
});
|
|
32
|
+
if (validValues.length === 0) return 0;
|
|
33
|
+
var sum = _lodash.default.sumBy(validValues, function (cur) {
|
|
34
|
+
return cur[field];
|
|
35
|
+
});
|
|
36
|
+
return sum / validValues.length;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// 注:现存口径小瑕疵——mean 的分母用有效值数,sumField 对全部行求和(无效计 0);
|
|
40
|
+
// variance 遍历全部行且判定用 !== undefined/null(非 isValidNumber)。首刀只保持原行为,不修正。
|
|
41
|
+
var stdDevField = exports.stdDevField = function stdDevField(field, data) {
|
|
42
|
+
var validValues = data.filter(function (cur) {
|
|
43
|
+
return isValidNumber(cur[field]);
|
|
44
|
+
});
|
|
45
|
+
var count = validValues.length;
|
|
46
|
+
if (count === 0) return 0;
|
|
47
|
+
var mean = sumField(field, data) / count;
|
|
48
|
+
var variance = _lodash.default.sumBy(data, function (cur) {
|
|
49
|
+
if (cur && cur[field] !== undefined && cur[field] !== null) {
|
|
50
|
+
var diff = cur[field] - mean;
|
|
51
|
+
return diff * diff;
|
|
52
|
+
}
|
|
53
|
+
return 0;
|
|
54
|
+
}) / count;
|
|
55
|
+
return Math.sqrt(variance);
|
|
56
|
+
};
|
|
57
|
+
var formatWithCommas = exports.formatWithCommas = function formatWithCommas(value) {
|
|
58
|
+
return (value / 1).toLocaleString(undefined, {
|
|
59
|
+
minimumFractionDigits: 2,
|
|
60
|
+
maximumFractionDigits: 2
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// sum 求和 / avg 平均值 / standardDeviation 标准差
|
|
65
|
+
var computeAggregationRow = exports.computeAggregationRow = function computeAggregationRow(calcColFields, data) {
|
|
66
|
+
var calculateArrCopy = [];
|
|
67
|
+
var calculateData = {
|
|
68
|
+
id: (0, _lodash.uniqueId)()
|
|
69
|
+
};
|
|
70
|
+
calcColFields.forEach(function (i) {
|
|
71
|
+
if (!i.cellRenderer) {
|
|
72
|
+
switch (i.calculateType) {
|
|
73
|
+
case 'sum':
|
|
74
|
+
{
|
|
75
|
+
var sumPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
|
|
76
|
+
var sumValue = Number(sumField(i.field, data).toFixed(sumPrecision));
|
|
77
|
+
calculateData[i.field] = i.formatWithCommas ? formatWithCommas(sumValue) : sumValue;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case 'avg':
|
|
81
|
+
{
|
|
82
|
+
var avgPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
|
|
83
|
+
calculateData[i.field] = Number(avgField(i.field, data).toFixed(avgPrecision));
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
case 'standardDeviation':
|
|
87
|
+
{
|
|
88
|
+
var stdPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
|
|
89
|
+
calculateData[i.field] = Number(stdDevField(i.field, data).toFixed(stdPrecision));
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
default:
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
if (Object.keys(calculateData).length > 0) {
|
|
98
|
+
calculateArrCopy.push(calculateData);
|
|
99
|
+
}
|
|
100
|
+
return calculateArrCopy;
|
|
101
|
+
};
|
|
@@ -11,10 +11,10 @@ exports.handleGridPlusColumnState = handleGridPlusColumnState;
|
|
|
11
11
|
exports.inferDataType = inferDataType;
|
|
12
12
|
exports.processEllipsisColumn = processEllipsisColumn;
|
|
13
13
|
exports.processEnumColumn = processEnumColumn;
|
|
14
|
-
var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
|
|
15
14
|
var _react = _interopRequireDefault(require("react"));
|
|
16
15
|
var _antd = require("antd");
|
|
17
16
|
var _antdV = require("@formily/antd-v5");
|
|
17
|
+
var _lodash = require("lodash");
|
|
18
18
|
var _constants = require("./constants");
|
|
19
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
20
|
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); }
|
|
@@ -49,7 +49,7 @@ var Text = _antd.Typography.Text;
|
|
|
49
49
|
*/
|
|
50
50
|
function handleGridPlusColumnState(columnState) {
|
|
51
51
|
var cellConfigMap = {};
|
|
52
|
-
if ((0,
|
|
52
|
+
if ((0, _lodash.isArray)(columnState)) {
|
|
53
53
|
columnState.forEach(function (item) {
|
|
54
54
|
if (item.field && (item.cellClass || item.suppressHeaderFilterButton !== undefined || item.groupName)) {
|
|
55
55
|
cellConfigMap[item.field] = {
|
|
@@ -7,17 +7,26 @@
|
|
|
7
7
|
import type { ExtendedColDef, EntityExtensionField, HostEntityExtensions } from '../types';
|
|
8
8
|
/**
|
|
9
9
|
* 将单个扩展字段转换为列定义
|
|
10
|
-
* 使用
|
|
10
|
+
* 使用 {extraPropertiesPath}.xxx 嵌套路径访问数据
|
|
11
11
|
*
|
|
12
12
|
* @param field 扩展字段定义
|
|
13
|
+
* @param extraPropertiesPath 扩展属性的路径前缀,默认 'extraProperties'(保持向后兼容)
|
|
13
14
|
* @returns AG-Grid 列定义
|
|
15
|
+
* @author nokecy
|
|
16
|
+
*
|
|
17
|
+
* @warning 请勿将此函数直接传给 Array.prototype.map()。
|
|
18
|
+
* Array.map 会将 (element, index, array) 全部传入,index(数字)会绑定到
|
|
19
|
+
* extraPropertiesPath,导致 field 路径变为 '0.foo'、'1.bar' 等非法值。
|
|
20
|
+
* 请始终用箭头函数包装:someArray.map((f) => fieldToColumnDef(f, path))
|
|
14
21
|
*/
|
|
15
|
-
export declare function fieldToColumnDef(field: EntityExtensionField): ExtendedColDef;
|
|
22
|
+
export declare function fieldToColumnDef(field: EntityExtensionField, extraPropertiesPath?: string): ExtendedColDef;
|
|
16
23
|
/**
|
|
17
24
|
* 获取指定实体的扩展列定义
|
|
18
25
|
*
|
|
19
26
|
* @param entityType 实体类型全名 (如 "Burn.Product.Domain.Product")
|
|
20
27
|
* @param extensions 实体扩展配置映射
|
|
28
|
+
* @param extraPropertiesPath 扩展属性的路径前缀,默认 'extraProperties'(保持向后兼容)
|
|
21
29
|
* @returns 扩展列定义数组,按 sortOrder 排序
|
|
30
|
+
* @author nokecy
|
|
22
31
|
*/
|
|
23
|
-
export declare function getEntityExtensionColumns(entityType: string | undefined, extensions?: HostEntityExtensions): ExtendedColDef[];
|
|
32
|
+
export declare function getEntityExtensionColumns(entityType: string | undefined, extensions?: HostEntityExtensions, extraPropertiesPath?: string): ExtendedColDef[];
|
|
@@ -93,19 +93,29 @@ var dataTypeColumnConfig = {
|
|
|
93
93
|
|
|
94
94
|
/**
|
|
95
95
|
* 将单个扩展字段转换为列定义
|
|
96
|
-
* 使用
|
|
96
|
+
* 使用 {extraPropertiesPath}.xxx 嵌套路径访问数据
|
|
97
97
|
*
|
|
98
98
|
* @param field 扩展字段定义
|
|
99
|
+
* @param extraPropertiesPath 扩展属性的路径前缀,默认 'extraProperties'(保持向后兼容)
|
|
99
100
|
* @returns AG-Grid 列定义
|
|
101
|
+
* @author nokecy
|
|
102
|
+
*
|
|
103
|
+
* @warning 请勿将此函数直接传给 Array.prototype.map()。
|
|
104
|
+
* Array.map 会将 (element, index, array) 全部传入,index(数字)会绑定到
|
|
105
|
+
* extraPropertiesPath,导致 field 路径变为 '0.foo'、'1.bar' 等非法值。
|
|
106
|
+
* 请始终用箭头函数包装:someArray.map((f) => fieldToColumnDef(f, path))
|
|
100
107
|
*/
|
|
101
108
|
function fieldToColumnDef(field) {
|
|
109
|
+
var extraPropertiesPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'extraProperties';
|
|
110
|
+
// 防御 Array.map 将 index(number)传入第二参数的情况,回退到默认路径
|
|
111
|
+
var resolvedPath = typeof extraPropertiesPath === 'string' ? extraPropertiesPath : 'extraProperties';
|
|
102
112
|
var config = dataTypeColumnConfig[field.dataType] || {
|
|
103
113
|
width: 150,
|
|
104
114
|
hideInSearch: false
|
|
105
115
|
};
|
|
106
116
|
var colDef = _objectSpread(_objectSpread({
|
|
107
|
-
//
|
|
108
|
-
field: "
|
|
117
|
+
// 使用可配置前缀的嵌套路径访问扩展属性数据
|
|
118
|
+
field: "".concat(resolvedPath, ".").concat(field.name),
|
|
109
119
|
headerName: field.displayName,
|
|
110
120
|
width: config.width,
|
|
111
121
|
hideInSearch: config.hideInSearch
|
|
@@ -122,9 +132,12 @@ function fieldToColumnDef(field) {
|
|
|
122
132
|
*
|
|
123
133
|
* @param entityType 实体类型全名 (如 "Burn.Product.Domain.Product")
|
|
124
134
|
* @param extensions 实体扩展配置映射
|
|
135
|
+
* @param extraPropertiesPath 扩展属性的路径前缀,默认 'extraProperties'(保持向后兼容)
|
|
125
136
|
* @returns 扩展列定义数组,按 sortOrder 排序
|
|
137
|
+
* @author nokecy
|
|
126
138
|
*/
|
|
127
139
|
function getEntityExtensionColumns(entityType, extensions) {
|
|
140
|
+
var extraPropertiesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'extraProperties';
|
|
128
141
|
// 边界情况处理:无效输入直接返回空数组
|
|
129
142
|
var entityConfig = entityType ? extensions === null || extensions === void 0 ? void 0 : extensions[entityType] : undefined;
|
|
130
143
|
var fields = entityConfig === null || entityConfig === void 0 ? void 0 : entityConfig.fields;
|
|
@@ -132,9 +145,11 @@ function getEntityExtensionColumns(entityType, extensions) {
|
|
|
132
145
|
return [];
|
|
133
146
|
}
|
|
134
147
|
|
|
135
|
-
// 按 sortOrder
|
|
148
|
+
// 按 sortOrder 排序后转换为列定义,透传路径前缀
|
|
136
149
|
return _toConsumableArray(fields).sort(function (a, b) {
|
|
137
150
|
var _a$sortOrder, _b$sortOrder;
|
|
138
151
|
return ((_a$sortOrder = a.sortOrder) !== null && _a$sortOrder !== void 0 ? _a$sortOrder : 0) - ((_b$sortOrder = b.sortOrder) !== null && _b$sortOrder !== void 0 ? _b$sortOrder : 0);
|
|
139
|
-
}).map(
|
|
152
|
+
}).map(function (f) {
|
|
153
|
+
return fieldToColumnDef(f, extraPropertiesPath);
|
|
154
|
+
});
|
|
140
155
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 查询表单项派生纯函数(从 ag-gridPlus.tsx 抽出,行为原样)。
|
|
3
|
+
* @author nokecy
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 按 itemsOrder 数组对查询表单项排序。
|
|
7
|
+
* - itemsOrder 为空/未传:原样返回(同一引用,memo 友好)。
|
|
8
|
+
* - 未在 itemsOrder 中的项排到末尾,两者都不在则保持相对顺序。
|
|
9
|
+
*/
|
|
10
|
+
export declare function sortFormItemsByOrder<T extends {
|
|
11
|
+
field: string;
|
|
12
|
+
}>(items: T[], itemsOrder?: string[]): T[];
|
|
13
|
+
/**
|
|
14
|
+
* 过滤掉 hiddenFields 中的查询表单项。
|
|
15
|
+
* - hiddenFields 为空:原样返回(同一引用,memo 友好)。
|
|
16
|
+
*/
|
|
17
|
+
export declare function filterHiddenFormItems<T extends {
|
|
18
|
+
field: string;
|
|
19
|
+
}>(items: T[], hiddenFields: string[]): T[];
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.filterHiddenFormItems = filterHiddenFormItems;
|
|
7
|
+
exports.sortFormItemsByOrder = sortFormItemsByOrder;
|
|
8
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
9
|
+
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."); }
|
|
10
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
12
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
13
|
+
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; }
|
|
14
|
+
/**
|
|
15
|
+
* 查询表单项派生纯函数(从 ag-gridPlus.tsx 抽出,行为原样)。
|
|
16
|
+
* @author nokecy
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 按 itemsOrder 数组对查询表单项排序。
|
|
21
|
+
* - itemsOrder 为空/未传:原样返回(同一引用,memo 友好)。
|
|
22
|
+
* - 未在 itemsOrder 中的项排到末尾,两者都不在则保持相对顺序。
|
|
23
|
+
*/
|
|
24
|
+
function sortFormItemsByOrder(items, itemsOrder) {
|
|
25
|
+
if (!itemsOrder || itemsOrder.length === 0) {
|
|
26
|
+
return items;
|
|
27
|
+
}
|
|
28
|
+
return _toConsumableArray(items).sort(function (a, b) {
|
|
29
|
+
var indexA = itemsOrder.indexOf(a.field);
|
|
30
|
+
var indexB = itemsOrder.indexOf(b.field);
|
|
31
|
+
if (indexA === -1 && indexB === -1) return 0;
|
|
32
|
+
if (indexA === -1) return 1;
|
|
33
|
+
if (indexB === -1) return -1;
|
|
34
|
+
return indexA - indexB;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* 过滤掉 hiddenFields 中的查询表单项。
|
|
40
|
+
* - hiddenFields 为空:原样返回(同一引用,memo 友好)。
|
|
41
|
+
*/
|
|
42
|
+
function filterHiddenFormItems(items, hiddenFields) {
|
|
43
|
+
if (hiddenFields.length === 0) {
|
|
44
|
+
return items;
|
|
45
|
+
}
|
|
46
|
+
return items.filter(function (item) {
|
|
47
|
+
return !hiddenFields.includes(item.field);
|
|
48
|
+
});
|
|
49
|
+
}
|