@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
|
@@ -24,6 +24,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
24
24
|
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; } }
|
|
25
25
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
26
26
|
import React, { useState, useCallback, useMemo, useEffect } from 'react';
|
|
27
|
+
import { logger } from "../utils/logger";
|
|
27
28
|
import { Modal, Tabs, Space, Button, Input, message, Popconfirm, Tag, Tooltip, Empty } from 'antd';
|
|
28
29
|
import { SaveOutlined, ReloadOutlined, EditOutlined, DeleteOutlined, StarOutlined, StarFilled, SearchOutlined,
|
|
29
30
|
// 全局配置相关图标
|
|
@@ -279,6 +280,9 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
279
280
|
// 从根级别开始查找新增列
|
|
280
281
|
findNewColumns(originalDefs, 0);
|
|
281
282
|
if (newItems.length > 0) {
|
|
283
|
+
logger.debug('[getColumnData] 检测到新增列/分组,已追加到末尾:', newItems.map(function (i) {
|
|
284
|
+
return i.field || i.groupId;
|
|
285
|
+
}));
|
|
282
286
|
return [].concat(_toConsumableArray(config), newItems);
|
|
283
287
|
}
|
|
284
288
|
return config;
|
|
@@ -423,19 +427,20 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
423
427
|
return s.id === schemeId;
|
|
424
428
|
});
|
|
425
429
|
if (!(scheme && gridApi)) {
|
|
426
|
-
_context.next =
|
|
430
|
+
_context.next = 13;
|
|
427
431
|
break;
|
|
428
432
|
}
|
|
429
433
|
// 【关键修复】先更新 columnDefs(处理分组结构),使用 allColDefs 保留自定义属性
|
|
430
434
|
gridColumnDefs = flatConfigToGridState(scheme.columnConfig, allColDefs);
|
|
435
|
+
logger.debug('[ColumnSetting] 加载方案 - 更新 columnDefs');
|
|
431
436
|
gridApi.setGridOption('columnDefs', gridColumnDefs);
|
|
432
437
|
|
|
433
438
|
// 等待 columnDefs 更新完成
|
|
434
|
-
_context.next =
|
|
439
|
+
_context.next = 10;
|
|
435
440
|
return new Promise(function (resolve) {
|
|
436
441
|
return setTimeout(resolve, 100);
|
|
437
442
|
});
|
|
438
|
-
case
|
|
443
|
+
case 10:
|
|
439
444
|
// 【修复】然后应用列状态(宽度、隐藏、顺序等)
|
|
440
445
|
columnState = flatConfigToColumnState(scheme.columnConfig);
|
|
441
446
|
gridApi.applyColumnState({
|
|
@@ -447,7 +452,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
447
452
|
if (scheme.filterModel) {
|
|
448
453
|
gridApi.setFilterModel(scheme.filterModel);
|
|
449
454
|
}
|
|
450
|
-
case
|
|
455
|
+
case 13:
|
|
451
456
|
message.success('方案已加载');
|
|
452
457
|
|
|
453
458
|
// 等待Grid状态更新后再刷新表单
|
|
@@ -462,17 +467,17 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
462
467
|
|
|
463
468
|
// 自动关闭弹窗,让用户看到Grid的变化
|
|
464
469
|
onClose();
|
|
465
|
-
_context.next =
|
|
470
|
+
_context.next = 21;
|
|
466
471
|
break;
|
|
467
|
-
case
|
|
468
|
-
_context.prev =
|
|
472
|
+
case 18:
|
|
473
|
+
_context.prev = 18;
|
|
469
474
|
_context.t0 = _context["catch"](0);
|
|
470
475
|
message.error(_context.t0.message || '加载方案失败');
|
|
471
|
-
case
|
|
476
|
+
case 21:
|
|
472
477
|
case "end":
|
|
473
478
|
return _context.stop();
|
|
474
479
|
}
|
|
475
|
-
}, _callee, null, [[0,
|
|
480
|
+
}, _callee, null, [[0, 18]]);
|
|
476
481
|
}));
|
|
477
482
|
return function (_x) {
|
|
478
483
|
return _ref2.apply(this, arguments);
|
|
@@ -590,15 +595,24 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
590
595
|
return setTimeout(resolve, 100);
|
|
591
596
|
});
|
|
592
597
|
case 39:
|
|
598
|
+
// 【关键修复】直接应用方案到 Grid,不通过 handleLoadScheme
|
|
599
|
+
// 这样可以避免依赖 Context 状态更新的时序问题
|
|
600
|
+
logger.debug('[ColumnSetting] 保存后直接应用方案到 Grid');
|
|
601
|
+
|
|
602
|
+
// 【修复】始终更新 columnDefs,确保 cellClass 等属性能即时生效
|
|
603
|
+
// 原逻辑只在有分组时才更新 columnDefs,导致对齐方式保存后无法即时生效
|
|
604
|
+
logger.debug('[ColumnSetting] 更新 columnDefs');
|
|
593
605
|
gridColumnDefs = flatConfigToGridState(savedScheme.columnConfig, allColDefs);
|
|
594
606
|
gridApi.setGridOption('columnDefs', gridColumnDefs);
|
|
595
607
|
|
|
596
608
|
// 等待 columnDefs 更新完成
|
|
597
|
-
_context2.next =
|
|
609
|
+
_context2.next = 45;
|
|
598
610
|
return new Promise(function (resolve) {
|
|
599
611
|
return setTimeout(resolve, 100);
|
|
600
612
|
});
|
|
601
|
-
case
|
|
613
|
+
case 45:
|
|
614
|
+
// 2. 应用列状态(列顺序、宽度、隐藏、固定等)
|
|
615
|
+
logger.debug('[ColumnSetting] 应用列状态');
|
|
602
616
|
columnState = flatConfigToColumnState(savedScheme.columnConfig);
|
|
603
617
|
gridApi.applyColumnState({
|
|
604
618
|
state: columnState,
|
|
@@ -607,36 +621,37 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
607
621
|
|
|
608
622
|
// 3. 应用过滤器
|
|
609
623
|
if (savedScheme.filterModel) {
|
|
624
|
+
logger.debug('[ColumnSetting] 应用 filterModel');
|
|
610
625
|
gridApi.setFilterModel(savedScheme.filterModel);
|
|
611
626
|
}
|
|
612
627
|
|
|
613
628
|
// 4. 设置为当前方案(如果不是当前方案)
|
|
614
629
|
if (!(!currentScheme || savedScheme.id !== currentScheme.id)) {
|
|
615
|
-
_context2.next =
|
|
630
|
+
_context2.next = 52;
|
|
616
631
|
break;
|
|
617
632
|
}
|
|
618
|
-
_context2.next =
|
|
633
|
+
_context2.next = 52;
|
|
619
634
|
return setCurrentColumnScheme === null || setCurrentColumnScheme === void 0 ? void 0 : setCurrentColumnScheme(gridKey, savedScheme.id);
|
|
620
|
-
case
|
|
621
|
-
_context2.next =
|
|
635
|
+
case 52:
|
|
636
|
+
_context2.next = 54;
|
|
622
637
|
return new Promise(function (resolve) {
|
|
623
638
|
return setTimeout(resolve, 50);
|
|
624
639
|
});
|
|
625
|
-
case
|
|
640
|
+
case 54:
|
|
626
641
|
// 5. 关闭弹窗
|
|
627
642
|
onClose();
|
|
628
|
-
_context2.next =
|
|
643
|
+
_context2.next = 61;
|
|
629
644
|
break;
|
|
630
|
-
case
|
|
631
|
-
_context2.prev =
|
|
645
|
+
case 57:
|
|
646
|
+
_context2.prev = 57;
|
|
632
647
|
_context2.t0 = _context2["catch"](8);
|
|
633
648
|
console.error('保存列配置到方案失败:', _context2.t0);
|
|
634
649
|
message.error('保存列配置失败');
|
|
635
|
-
case
|
|
650
|
+
case 61:
|
|
636
651
|
case "end":
|
|
637
652
|
return _context2.stop();
|
|
638
653
|
}
|
|
639
|
-
}, _callee2, null, [[8,
|
|
654
|
+
}, _callee2, null, [[8, 57]]);
|
|
640
655
|
})), [form, gridApi, saveColumnScheme, setCurrentColumnScheme, currentScheme, schemes, gridKey, allColDefs, onClose]);
|
|
641
656
|
|
|
642
657
|
// 保存为新方案
|
|
@@ -654,21 +669,22 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
654
669
|
case 3:
|
|
655
670
|
_context3.prev = 3;
|
|
656
671
|
if (!(activeTab === 'columns' && form)) {
|
|
657
|
-
_context3.next =
|
|
672
|
+
_context3.next = 18;
|
|
658
673
|
break;
|
|
659
674
|
}
|
|
660
675
|
values = form.values;
|
|
661
676
|
columnConfigToSave = values.items; // 直接使用 FlatColumnItem[] 数据
|
|
662
677
|
// 【修复】传入 allColDefs 以保留自定义属性(cellRenderer 等)
|
|
663
678
|
gridColumnDefs = flatConfigToGridState(values.items, allColDefs); // 【关键修复】先更新 columnDefs(处理分组结构变化)
|
|
679
|
+
logger.debug('[ColumnSetting] 另存为方案 - 更新 columnDefs');
|
|
664
680
|
gridApi.setGridOption('columnDefs', gridColumnDefs);
|
|
665
681
|
|
|
666
682
|
// 等待 columnDefs 更新完成
|
|
667
|
-
_context3.next =
|
|
683
|
+
_context3.next = 12;
|
|
668
684
|
return new Promise(function (resolve) {
|
|
669
685
|
return setTimeout(resolve, 100);
|
|
670
686
|
});
|
|
671
|
-
case
|
|
687
|
+
case 12:
|
|
672
688
|
// 【修复】然后应用列状态(宽度、隐藏、顺序等)
|
|
673
689
|
columnState = flatConfigToColumnState(values.items);
|
|
674
690
|
gridApi.applyColumnState({
|
|
@@ -677,18 +693,18 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
677
693
|
});
|
|
678
694
|
|
|
679
695
|
// 等待状态更新
|
|
680
|
-
_context3.next =
|
|
696
|
+
_context3.next = 16;
|
|
681
697
|
return new Promise(function (resolve) {
|
|
682
698
|
return setTimeout(resolve, 50);
|
|
683
699
|
});
|
|
684
|
-
case
|
|
685
|
-
_context3.next =
|
|
700
|
+
case 16:
|
|
701
|
+
_context3.next = 20;
|
|
686
702
|
break;
|
|
687
|
-
case
|
|
703
|
+
case 18:
|
|
688
704
|
// 如果在"方案管理"标签页,使用当前表单数据
|
|
689
705
|
_values = form === null || form === void 0 ? void 0 : form.values;
|
|
690
706
|
columnConfigToSave = (_values === null || _values === void 0 ? void 0 : _values.items) || [];
|
|
691
|
-
case
|
|
707
|
+
case 20:
|
|
692
708
|
// 获取过滤器模型
|
|
693
709
|
filterModel = gridApi.getFilterModel();
|
|
694
710
|
newScheme = {
|
|
@@ -701,9 +717,9 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
701
717
|
isSystem: false
|
|
702
718
|
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
703
719
|
};
|
|
704
|
-
_context3.next =
|
|
720
|
+
_context3.next = 24;
|
|
705
721
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, newScheme);
|
|
706
|
-
case
|
|
722
|
+
case 24:
|
|
707
723
|
message.success('方案保存成功');
|
|
708
724
|
setSaveSchemeVisible(false);
|
|
709
725
|
setSchemeName('');
|
|
@@ -711,17 +727,17 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
711
727
|
|
|
712
728
|
// 切换到方案管理标签页,显示新创建的方案
|
|
713
729
|
setActiveTab('schemes');
|
|
714
|
-
_context3.next =
|
|
730
|
+
_context3.next = 34;
|
|
715
731
|
break;
|
|
716
|
-
case
|
|
717
|
-
_context3.prev =
|
|
732
|
+
case 31:
|
|
733
|
+
_context3.prev = 31;
|
|
718
734
|
_context3.t0 = _context3["catch"](3);
|
|
719
735
|
message.error(_context3.t0.message || '保存方案失败');
|
|
720
|
-
case
|
|
736
|
+
case 34:
|
|
721
737
|
case "end":
|
|
722
738
|
return _context3.stop();
|
|
723
739
|
}
|
|
724
|
-
}, _callee3, null, [[3,
|
|
740
|
+
}, _callee3, null, [[3, 31]]);
|
|
725
741
|
})), [gridApi, saveColumnScheme, gridKey, schemeName, schemeDescription, activeTab, form, allColDefs]);
|
|
726
742
|
|
|
727
743
|
// 设置默认方案
|
|
@@ -30,7 +30,7 @@ import DraggableModal from "../../draggableModal";
|
|
|
30
30
|
import { EditOutlined, DeleteOutlined, StarOutlined, StarFilled } from '@ant-design/icons';
|
|
31
31
|
import { AgGridReact } from 'ag-grid-react';
|
|
32
32
|
import { useGridSchemes } from "../context/useSchemeManager";
|
|
33
|
-
import {
|
|
33
|
+
import { useQueryForm } from "../context/queryFormContext";
|
|
34
34
|
import { v4 as uuidv4 } from 'uuid';
|
|
35
35
|
import { extractItemsOrder, extractHiddenFields, buildQueryConfig } from "../shared/utils/schemeDataMigration";
|
|
36
36
|
import { agGridTheme } from "../theme";
|
|
@@ -58,11 +58,11 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
58
58
|
deleteQueryScheme = _useGridSchemes.deleteQueryScheme,
|
|
59
59
|
setCurrentQueryScheme = _useGridSchemes.setCurrentQueryScheme;
|
|
60
60
|
|
|
61
|
-
//
|
|
62
|
-
var
|
|
63
|
-
queryFormItems =
|
|
64
|
-
currentQueryOrder =
|
|
65
|
-
updateQueryOrder =
|
|
61
|
+
// 从查询表单 Context 获取查询表单项和当前顺序(已从 GridPlusContext 拆出)
|
|
62
|
+
var _useQueryForm = useQueryForm(),
|
|
63
|
+
queryFormItems = _useQueryForm.queryFormItems,
|
|
64
|
+
currentQueryOrder = _useQueryForm.currentQueryOrder,
|
|
65
|
+
updateQueryOrder = _useQueryForm.updateQueryOrder;
|
|
66
66
|
|
|
67
67
|
// 获取当前表格的查询方案列表
|
|
68
68
|
var schemes = (querySchemes === null || querySchemes === void 0 ? void 0 : querySchemes[gridKey]) || [];
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
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); }
|
|
2
|
-
import _uniqueId from "lodash/uniqueId";
|
|
3
|
-
/**
|
|
4
|
-
* 表头分组配置工具函数
|
|
5
|
-
* 负责 Grid State 与扁平化配置之间的转换
|
|
6
|
-
*/
|
|
7
2
|
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; }
|
|
8
3
|
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; }
|
|
9
4
|
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; }
|
|
@@ -16,11 +11,18 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
|
|
|
16
11
|
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; } } }; }
|
|
17
12
|
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); }
|
|
18
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
|
+
* 表头分组配置工具函数
|
|
16
|
+
* 负责 Grid State 与扁平化配置之间的转换
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import { uniqueId } from 'lodash';
|
|
20
|
+
import { logger } from "../utils/logger";
|
|
19
21
|
/**
|
|
20
22
|
* 生成唯一 ID
|
|
21
23
|
*/
|
|
22
24
|
export var generateId = function generateId() {
|
|
23
|
-
return
|
|
25
|
+
return uniqueId('col_');
|
|
24
26
|
};
|
|
25
27
|
|
|
26
28
|
/**
|
|
@@ -267,6 +269,12 @@ export function flatConfigToGridState(flatConfig, originalColumnDefs) {
|
|
|
267
269
|
}
|
|
268
270
|
});
|
|
269
271
|
if (newColumnsWithIndex.length > 0) {
|
|
272
|
+
logger.debug('[flatConfigToGridState] 检测到新增列,将插入到原始位置:', {
|
|
273
|
+
newColumnFields: newColumnsWithIndex.map(function (item) {
|
|
274
|
+
return item.col.field;
|
|
275
|
+
})
|
|
276
|
+
});
|
|
277
|
+
|
|
270
278
|
// 将新增列插入到正确位置(基于其在原始定义中的相对位置)
|
|
271
279
|
var _iterator4 = _createForOfIteratorHelper(newColumnsWithIndex),
|
|
272
280
|
_step4;
|
|
@@ -515,6 +523,12 @@ export function flatConfigToColumnState(flatConfig, originalColumnDefs) {
|
|
|
515
523
|
}
|
|
516
524
|
});
|
|
517
525
|
if (newColumnsWithIndex.length > 0) {
|
|
526
|
+
logger.debug('[flatConfigToColumnState] 检测到新增列,将插入到原始位置:', {
|
|
527
|
+
newColumnFields: newColumnsWithIndex.map(function (item) {
|
|
528
|
+
return item.col.field;
|
|
529
|
+
})
|
|
530
|
+
});
|
|
531
|
+
|
|
518
532
|
// 将新增列插入到正确位置(基于其在原始定义中的相对位置)
|
|
519
533
|
var _iterator6 = _createForOfIteratorHelper(newColumnsWithIndex),
|
|
520
534
|
_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,93 @@
|
|
|
1
|
+
import _, { uniqueId } from 'lodash';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* AG-Grid 底部汇总聚合纯函数(从 ag-gridPlus.tsx 抽出,行为原样)。
|
|
5
|
+
* @author nokecy
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export var isValidNumber = function isValidNumber(value) {
|
|
9
|
+
return typeof value === 'number' && !isNaN(value);
|
|
10
|
+
};
|
|
11
|
+
export var sumField = function sumField(field, data) {
|
|
12
|
+
return _.sumBy(data, function (cur) {
|
|
13
|
+
if (cur && isValidNumber(cur[field])) {
|
|
14
|
+
return cur[field];
|
|
15
|
+
}
|
|
16
|
+
return 0;
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
export var avgField = function avgField(field, data) {
|
|
20
|
+
// 分子分母口径统一为「有效数字」,避免除零得 NaN
|
|
21
|
+
var validValues = data.filter(function (cur) {
|
|
22
|
+
return cur && isValidNumber(cur[field]);
|
|
23
|
+
});
|
|
24
|
+
if (validValues.length === 0) return 0;
|
|
25
|
+
var sum = _.sumBy(validValues, function (cur) {
|
|
26
|
+
return cur[field];
|
|
27
|
+
});
|
|
28
|
+
return sum / validValues.length;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
// 注:现存口径小瑕疵——mean 的分母用有效值数,sumField 对全部行求和(无效计 0);
|
|
32
|
+
// variance 遍历全部行且判定用 !== undefined/null(非 isValidNumber)。首刀只保持原行为,不修正。
|
|
33
|
+
export var stdDevField = function stdDevField(field, data) {
|
|
34
|
+
var validValues = data.filter(function (cur) {
|
|
35
|
+
return isValidNumber(cur[field]);
|
|
36
|
+
});
|
|
37
|
+
var count = validValues.length;
|
|
38
|
+
if (count === 0) return 0;
|
|
39
|
+
var mean = sumField(field, data) / count;
|
|
40
|
+
var variance = _.sumBy(data, function (cur) {
|
|
41
|
+
if (cur && cur[field] !== undefined && cur[field] !== null) {
|
|
42
|
+
var diff = cur[field] - mean;
|
|
43
|
+
return diff * diff;
|
|
44
|
+
}
|
|
45
|
+
return 0;
|
|
46
|
+
}) / count;
|
|
47
|
+
return Math.sqrt(variance);
|
|
48
|
+
};
|
|
49
|
+
export var formatWithCommas = function formatWithCommas(value) {
|
|
50
|
+
return (value / 1).toLocaleString(undefined, {
|
|
51
|
+
minimumFractionDigits: 2,
|
|
52
|
+
maximumFractionDigits: 2
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// sum 求和 / avg 平均值 / standardDeviation 标准差
|
|
57
|
+
export var computeAggregationRow = function computeAggregationRow(calcColFields, data) {
|
|
58
|
+
var calculateArrCopy = [];
|
|
59
|
+
var calculateData = {
|
|
60
|
+
id: uniqueId()
|
|
61
|
+
};
|
|
62
|
+
calcColFields.forEach(function (i) {
|
|
63
|
+
if (!i.cellRenderer) {
|
|
64
|
+
switch (i.calculateType) {
|
|
65
|
+
case 'sum':
|
|
66
|
+
{
|
|
67
|
+
var sumPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
|
|
68
|
+
var sumValue = Number(sumField(i.field, data).toFixed(sumPrecision));
|
|
69
|
+
calculateData[i.field] = i.formatWithCommas ? formatWithCommas(sumValue) : sumValue;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case 'avg':
|
|
73
|
+
{
|
|
74
|
+
var avgPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
|
|
75
|
+
calculateData[i.field] = Number(avgField(i.field, data).toFixed(avgPrecision));
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
case 'standardDeviation':
|
|
79
|
+
{
|
|
80
|
+
var stdPrecision = typeof i.transactionAmount === 'number' ? i.transactionAmount : 2;
|
|
81
|
+
calculateData[i.field] = Number(stdDevField(i.field, data).toFixed(stdPrecision));
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
default:
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
if (Object.keys(calculateData).length > 0) {
|
|
90
|
+
calculateArrCopy.push(calculateData);
|
|
91
|
+
}
|
|
92
|
+
return calculateArrCopy;
|
|
93
|
+
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _isArray from "lodash/isArray";
|
|
2
1
|
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); }
|
|
3
2
|
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; }
|
|
4
3
|
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; }
|
|
@@ -8,6 +7,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
8
7
|
import React from 'react';
|
|
9
8
|
import { Typography } from 'antd';
|
|
10
9
|
import { Select } from '@formily/antd-v5';
|
|
10
|
+
import { isArray } from 'lodash';
|
|
11
11
|
import { DEFAULT_SEARCH_SORT_ORDER } from "./constants";
|
|
12
12
|
var Text = Typography.Text;
|
|
13
13
|
|
|
@@ -35,7 +35,7 @@ var Text = Typography.Text;
|
|
|
35
35
|
*/
|
|
36
36
|
export function handleGridPlusColumnState(columnState) {
|
|
37
37
|
var cellConfigMap = {};
|
|
38
|
-
if (
|
|
38
|
+
if (isArray(columnState)) {
|
|
39
39
|
columnState.forEach(function (item) {
|
|
40
40
|
if (item.field && (item.cellClass || item.suppressHeaderFilterButton !== undefined || item.groupName)) {
|
|
41
41
|
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[];
|
|
@@ -86,19 +86,29 @@ var dataTypeColumnConfig = {
|
|
|
86
86
|
|
|
87
87
|
/**
|
|
88
88
|
* 将单个扩展字段转换为列定义
|
|
89
|
-
* 使用
|
|
89
|
+
* 使用 {extraPropertiesPath}.xxx 嵌套路径访问数据
|
|
90
90
|
*
|
|
91
91
|
* @param field 扩展字段定义
|
|
92
|
+
* @param extraPropertiesPath 扩展属性的路径前缀,默认 'extraProperties'(保持向后兼容)
|
|
92
93
|
* @returns AG-Grid 列定义
|
|
94
|
+
* @author nokecy
|
|
95
|
+
*
|
|
96
|
+
* @warning 请勿将此函数直接传给 Array.prototype.map()。
|
|
97
|
+
* Array.map 会将 (element, index, array) 全部传入,index(数字)会绑定到
|
|
98
|
+
* extraPropertiesPath,导致 field 路径变为 '0.foo'、'1.bar' 等非法值。
|
|
99
|
+
* 请始终用箭头函数包装:someArray.map((f) => fieldToColumnDef(f, path))
|
|
93
100
|
*/
|
|
94
101
|
export function fieldToColumnDef(field) {
|
|
102
|
+
var extraPropertiesPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'extraProperties';
|
|
103
|
+
// 防御 Array.map 将 index(number)传入第二参数的情况,回退到默认路径
|
|
104
|
+
var resolvedPath = typeof extraPropertiesPath === 'string' ? extraPropertiesPath : 'extraProperties';
|
|
95
105
|
var config = dataTypeColumnConfig[field.dataType] || {
|
|
96
106
|
width: 150,
|
|
97
107
|
hideInSearch: false
|
|
98
108
|
};
|
|
99
109
|
var colDef = _objectSpread(_objectSpread({
|
|
100
|
-
//
|
|
101
|
-
field: "
|
|
110
|
+
// 使用可配置前缀的嵌套路径访问扩展属性数据
|
|
111
|
+
field: "".concat(resolvedPath, ".").concat(field.name),
|
|
102
112
|
headerName: field.displayName,
|
|
103
113
|
width: config.width,
|
|
104
114
|
hideInSearch: config.hideInSearch
|
|
@@ -115,9 +125,12 @@ export function fieldToColumnDef(field) {
|
|
|
115
125
|
*
|
|
116
126
|
* @param entityType 实体类型全名 (如 "Burn.Product.Domain.Product")
|
|
117
127
|
* @param extensions 实体扩展配置映射
|
|
128
|
+
* @param extraPropertiesPath 扩展属性的路径前缀,默认 'extraProperties'(保持向后兼容)
|
|
118
129
|
* @returns 扩展列定义数组,按 sortOrder 排序
|
|
130
|
+
* @author nokecy
|
|
119
131
|
*/
|
|
120
132
|
export function getEntityExtensionColumns(entityType, extensions) {
|
|
133
|
+
var extraPropertiesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'extraProperties';
|
|
121
134
|
// 边界情况处理:无效输入直接返回空数组
|
|
122
135
|
var entityConfig = entityType ? extensions === null || extensions === void 0 ? void 0 : extensions[entityType] : undefined;
|
|
123
136
|
var fields = entityConfig === null || entityConfig === void 0 ? void 0 : entityConfig.fields;
|
|
@@ -125,9 +138,11 @@ export function getEntityExtensionColumns(entityType, extensions) {
|
|
|
125
138
|
return [];
|
|
126
139
|
}
|
|
127
140
|
|
|
128
|
-
// 按 sortOrder
|
|
141
|
+
// 按 sortOrder 排序后转换为列定义,透传路径前缀
|
|
129
142
|
return _toConsumableArray(fields).sort(function (a, b) {
|
|
130
143
|
var _a$sortOrder, _b$sortOrder;
|
|
131
144
|
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);
|
|
132
|
-
}).map(
|
|
145
|
+
}).map(function (f) {
|
|
146
|
+
return fieldToColumnDef(f, extraPropertiesPath);
|
|
147
|
+
});
|
|
133
148
|
}
|
|
@@ -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,42 @@
|
|
|
1
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
+
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."); }
|
|
3
|
+
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); }
|
|
4
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
5
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
6
|
+
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; }
|
|
7
|
+
/**
|
|
8
|
+
* 查询表单项派生纯函数(从 ag-gridPlus.tsx 抽出,行为原样)。
|
|
9
|
+
* @author nokecy
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 按 itemsOrder 数组对查询表单项排序。
|
|
14
|
+
* - itemsOrder 为空/未传:原样返回(同一引用,memo 友好)。
|
|
15
|
+
* - 未在 itemsOrder 中的项排到末尾,两者都不在则保持相对顺序。
|
|
16
|
+
*/
|
|
17
|
+
export function sortFormItemsByOrder(items, itemsOrder) {
|
|
18
|
+
if (!itemsOrder || itemsOrder.length === 0) {
|
|
19
|
+
return items;
|
|
20
|
+
}
|
|
21
|
+
return _toConsumableArray(items).sort(function (a, b) {
|
|
22
|
+
var indexA = itemsOrder.indexOf(a.field);
|
|
23
|
+
var indexB = itemsOrder.indexOf(b.field);
|
|
24
|
+
if (indexA === -1 && indexB === -1) return 0;
|
|
25
|
+
if (indexA === -1) return 1;
|
|
26
|
+
if (indexB === -1) return -1;
|
|
27
|
+
return indexA - indexB;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 过滤掉 hiddenFields 中的查询表单项。
|
|
33
|
+
* - hiddenFields 为空:原样返回(同一引用,memo 友好)。
|
|
34
|
+
*/
|
|
35
|
+
export function filterHiddenFormItems(items, hiddenFields) {
|
|
36
|
+
if (hiddenFields.length === 0) {
|
|
37
|
+
return items;
|
|
38
|
+
}
|
|
39
|
+
return items.filter(function (item) {
|
|
40
|
+
return !hiddenFields.includes(item.field);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { QueryFilterState, ExtendedColDef } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* 请求参数构建纯函数(从 ag-gridPlus.tsx onRequest 抽出,行为原样)。
|
|
4
|
+
* @author nokecy
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 根据查询模式构建过滤字符串:
|
|
8
|
+
* - 高级模式(__advancedMode__ 且有 __rules__):走规则转换 convertRulesToFilterString。
|
|
9
|
+
* - 简单模式:走 convertFilterModel。
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildFilterString(queryFilter: QueryFilterState, columnDefs: ExtendedColDef[]): string;
|
|
12
|
+
/**
|
|
13
|
+
* 页码 → ABP skipCount。第 1 页为 0,其余为 (current-1)*pageSize。
|
|
14
|
+
*/
|
|
15
|
+
export declare function pageToSkipCount(current: number, pageSize: number): number;
|