@nokecy/qc-ui-components 2.0.0-beta.0 → 2.0.0-beta.1
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/ConfirmPro/index.d.ts +12 -9
- package/dist/cjs/ConfirmPro/index.js +11 -34
- package/dist/cjs/ag-grid-plus/ag-gridPlus.js +422 -156
- package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +12 -1
- package/dist/cjs/ag-grid-plus/context/queryFormContext.d.ts +2 -0
- package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
- package/dist/cjs/ag-grid-plus/density.d.ts +25 -0
- package/dist/cjs/ag-grid-plus/density.js +52 -0
- package/dist/cjs/ag-grid-plus/index.less +36 -0
- package/dist/cjs/ag-grid-plus/interface.d.ts +58 -1
- package/dist/cjs/ag-grid-plus/interface.js +1 -1
- package/dist/cjs/ag-grid-plus/queryForm/index.d.ts +11 -0
- package/dist/cjs/ag-grid-plus/queryForm/index.js +62 -10
- package/dist/cjs/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
- package/dist/cjs/ag-grid-plus/queryForm/queryForm.js +63 -26
- package/dist/cjs/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
- package/dist/cjs/ag-grid-plus/queryForm/queryValues.js +61 -0
- package/dist/cjs/ag-grid-plus/rowColors.d.ts +12 -0
- package/dist/cjs/ag-grid-plus/rowColors.js +58 -0
- package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
- package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
- package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +108 -76
- package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
- package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
- package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.js +206 -0
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +19 -1
- package/dist/cjs/ag-grid-plus/setting/index.js +5 -14
- package/dist/cjs/ag-grid-plus/settingItem/index.d.ts +11 -1
- package/dist/cjs/ag-grid-plus/settingItem/index.js +34 -12
- package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
- package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.js +87 -0
- package/dist/cjs/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
- package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
- package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.js +40 -0
- package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
- package/dist/cjs/ag-grid-plus/theme.d.ts +7 -1
- package/dist/cjs/ag-grid-plus/theme.js +31 -6
- package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
- package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.js +128 -0
- package/dist/cjs/ag-grid-plus/toolBar/index.d.ts +3 -1
- package/dist/cjs/ag-grid-plus/toolBar/index.js +43 -35
- package/dist/cjs/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
- package/dist/cjs/ag-grid-plus/toolBar/leftContent.js +2 -2
- package/dist/cjs/ag-grid-plus/toolBar/overflow.d.ts +20 -0
- package/dist/cjs/ag-grid-plus/toolBar/overflow.js +48 -0
- package/dist/cjs/ag-grid-plus/toolBar/style.js +71 -15
- package/dist/cjs/ag-grid-plus/types.d.ts +6 -0
- package/dist/cjs/ag-grid-plus/utils/agGridCompat.js +12 -3
- package/dist/cjs/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
- package/dist/cjs/ag-grid-plus/utils/columnProcessors.js +13 -2
- package/dist/cjs/ag-grid-plus/utils/constants.d.ts +3 -2
- package/dist/cjs/ag-grid-plus/utils/constants.js +3 -2
- package/dist/cjs/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
- package/dist/cjs/ag-grid-plus/utils/crossPageSelection.js +58 -0
- package/dist/cjs/ag-grid-plus/utils/emptyState.d.ts +2 -0
- package/dist/cjs/ag-grid-plus/utils/emptyState.js +9 -5
- package/dist/cjs/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
- package/dist/cjs/ag-grid-plus/utils/listKeyboard.js +83 -0
- package/dist/cjs/ag-grid-plus/utils/pagination.d.ts +26 -0
- package/dist/cjs/ag-grid-plus/utils/pagination.js +69 -0
- package/dist/cjs/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
- package/dist/cjs/ag-grid-plus/utils/queryDispatch.js +17 -0
- package/dist/cjs/ag-grid-plus/utils/statusPill.d.ts +25 -0
- package/dist/cjs/ag-grid-plus/utils/statusPill.js +196 -0
- package/dist/cjs/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
- package/dist/cjs/ag-grid-plus/utils/valueEnumColor.js +13 -9
- package/dist/cjs/ag-grid-plus/utils/valueFormat.d.ts +19 -0
- package/dist/cjs/ag-grid-plus/utils/valueFormat.js +73 -0
- package/dist/cjs/ag-grid-plus/utils.js +3 -2
- package/dist/cjs/array-table/arrayAddBtn.d.ts +1 -0
- package/dist/cjs/array-table/arrayAddBtn.js +2 -2
- package/dist/cjs/array-table/autoHeight.d.ts +18 -0
- package/dist/cjs/array-table/autoHeight.js +30 -0
- package/dist/cjs/array-table/batchRemove.d.ts +2 -2
- package/dist/cjs/array-table/cellEditorMarker.d.ts +18 -0
- package/dist/cjs/array-table/cellEditorMarker.js +92 -0
- package/dist/cjs/array-table/errorLocator.d.ts +29 -0
- package/dist/cjs/array-table/errorLocator.js +101 -0
- package/dist/cjs/array-table/hooks.d.ts +52 -4
- package/dist/cjs/array-table/hooks.js +251 -18
- package/dist/cjs/array-table/index.d.ts +6 -0
- package/dist/cjs/array-table/index.js +167 -23
- package/dist/cjs/array-table/interface.d.ts +22 -0
- package/dist/cjs/array-table/preview.js +39 -5
- package/dist/cjs/array-table/rowFeedback.d.ts +2 -2
- package/dist/cjs/array-table/rowFeedback.js +8 -8
- package/dist/cjs/array-table/summary.d.ts +25 -0
- package/dist/cjs/array-table/summary.js +70 -0
- package/dist/cjs/array-table/theme.d.ts +35 -5
- package/dist/cjs/array-table/theme.js +49 -12
- package/dist/cjs/array-table/title.d.ts +3 -0
- package/dist/cjs/array-table/title.js +29 -0
- package/dist/cjs/array-table/utils.d.ts +2 -1
- package/dist/cjs/array-table/utils.js +94 -23
- package/dist/cjs/card/pro-card/Card/useLegacyItems.d.ts +1 -1
- package/dist/cjs/dateCellEditor/DateCellEditor.d.ts +5 -0
- package/dist/cjs/dateCellEditor/DateCellEditor.js +42 -17
- package/dist/cjs/deleteConfirm/index.d.ts +14 -0
- package/dist/cjs/deleteConfirm/index.js +73 -12
- package/dist/cjs/dialogSelect/index.d.ts +19 -0
- package/dist/cjs/dialogSelect/index.js +189 -15
- package/dist/cjs/dialogSelect/index.less +18 -0
- package/dist/cjs/documentPage/documentPage.d.ts +6 -3
- package/dist/cjs/documentPage/documentPage.js +23 -8
- package/dist/cjs/documentPage/index.d.ts +2 -0
- package/dist/cjs/documentPage/index.js +19 -0
- package/dist/cjs/documentPage/leaveGuard.d.ts +31 -0
- package/dist/cjs/documentPage/leaveGuard.js +91 -0
- package/dist/cjs/draggableModal/index.d.ts +24 -1
- package/dist/cjs/draggableModal/index.js +36 -6
- package/dist/cjs/fullScreenAlert/index.less +10 -10
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +15 -0
- package/dist/cjs/readPretty/arrayTable.js +5 -1
- package/dist/cjs/scanCollect/ScanFeedbackInput.d.ts +26 -0
- package/dist/cjs/scanCollect/ScanFeedbackInput.js +113 -0
- package/dist/cjs/scanCollect/index.d.ts +4 -0
- package/dist/cjs/scanCollect/index.js +14 -0
- package/dist/cjs/scanCollect/scanSound.d.ts +15 -0
- package/dist/cjs/scanCollect/scanSound.js +91 -0
- package/dist/esm/ConfirmPro/index.d.ts +12 -9
- package/dist/esm/ConfirmPro/index.js +11 -34
- package/dist/esm/ag-grid-plus/ag-gridPlus.js +423 -156
- package/dist/esm/ag-grid-plus/context/gridContext.d.ts +12 -1
- package/dist/esm/ag-grid-plus/context/queryFormContext.d.ts +2 -0
- package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
- package/dist/esm/ag-grid-plus/density.d.ts +25 -0
- package/dist/esm/ag-grid-plus/density.js +45 -0
- package/dist/esm/ag-grid-plus/index.less +36 -0
- package/dist/esm/ag-grid-plus/interface.d.ts +58 -1
- package/dist/esm/ag-grid-plus/interface.js +2 -0
- package/dist/esm/ag-grid-plus/queryForm/index.d.ts +11 -0
- package/dist/esm/ag-grid-plus/queryForm/index.js +62 -10
- package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
- package/dist/esm/ag-grid-plus/queryForm/queryForm.js +64 -26
- package/dist/esm/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
- package/dist/esm/ag-grid-plus/queryForm/queryValues.js +54 -0
- package/dist/esm/ag-grid-plus/rowColors.d.ts +12 -0
- package/dist/esm/ag-grid-plus/rowColors.js +50 -0
- package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
- package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +110 -78
- package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
- package/dist/esm/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
- package/dist/esm/ag-grid-plus/setting/autoColumnMemory.js +198 -0
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +18 -1
- package/dist/esm/ag-grid-plus/setting/index.js +6 -15
- package/dist/esm/ag-grid-plus/settingItem/index.d.ts +11 -1
- package/dist/esm/ag-grid-plus/settingItem/index.js +35 -13
- package/dist/esm/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
- package/dist/esm/ag-grid-plus/shared/EmptyIllustration.js +82 -0
- package/dist/esm/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
- package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
- package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.js +34 -0
- package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
- package/dist/esm/ag-grid-plus/theme.d.ts +7 -1
- package/dist/esm/ag-grid-plus/theme.js +31 -6
- package/dist/esm/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
- package/dist/esm/ag-grid-plus/toolBar/OverflowActions.js +120 -0
- package/dist/esm/ag-grid-plus/toolBar/index.d.ts +3 -1
- package/dist/esm/ag-grid-plus/toolBar/index.js +43 -35
- package/dist/esm/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
- package/dist/esm/ag-grid-plus/toolBar/leftContent.js +2 -2
- package/dist/esm/ag-grid-plus/toolBar/overflow.d.ts +20 -0
- package/dist/esm/ag-grid-plus/toolBar/overflow.js +41 -0
- package/dist/esm/ag-grid-plus/toolBar/style.js +71 -15
- package/dist/esm/ag-grid-plus/types.d.ts +6 -0
- package/dist/esm/ag-grid-plus/utils/agGridCompat.js +12 -3
- package/dist/esm/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
- package/dist/esm/ag-grid-plus/utils/columnProcessors.js +14 -3
- package/dist/esm/ag-grid-plus/utils/constants.d.ts +3 -2
- package/dist/esm/ag-grid-plus/utils/constants.js +3 -2
- package/dist/esm/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
- package/dist/esm/ag-grid-plus/utils/crossPageSelection.js +52 -0
- package/dist/esm/ag-grid-plus/utils/emptyState.d.ts +2 -0
- package/dist/esm/ag-grid-plus/utils/emptyState.js +9 -5
- package/dist/esm/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
- package/dist/esm/ag-grid-plus/utils/listKeyboard.js +77 -0
- package/dist/esm/ag-grid-plus/utils/pagination.d.ts +26 -0
- package/dist/esm/ag-grid-plus/utils/pagination.js +60 -0
- package/dist/esm/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
- package/dist/esm/ag-grid-plus/utils/queryDispatch.js +11 -0
- package/dist/esm/ag-grid-plus/utils/statusPill.d.ts +25 -0
- package/dist/esm/ag-grid-plus/utils/statusPill.js +192 -0
- package/dist/esm/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
- package/dist/esm/ag-grid-plus/utils/valueEnumColor.js +12 -8
- package/dist/esm/ag-grid-plus/utils/valueFormat.d.ts +19 -0
- package/dist/esm/ag-grid-plus/utils/valueFormat.js +63 -0
- package/dist/esm/ag-grid-plus/utils.js +3 -2
- package/dist/esm/array-table/arrayAddBtn.d.ts +1 -0
- package/dist/esm/array-table/arrayAddBtn.js +1 -1
- package/dist/esm/array-table/autoHeight.d.ts +18 -0
- package/dist/esm/array-table/autoHeight.js +25 -0
- package/dist/esm/array-table/batchRemove.d.ts +2 -2
- package/dist/esm/array-table/cellEditorMarker.d.ts +18 -0
- package/dist/esm/array-table/cellEditorMarker.js +84 -0
- package/dist/esm/array-table/errorLocator.d.ts +29 -0
- package/dist/esm/array-table/errorLocator.js +95 -0
- package/dist/esm/array-table/hooks.d.ts +52 -4
- package/dist/esm/array-table/hooks.js +251 -17
- package/dist/esm/array-table/index.d.ts +6 -0
- package/dist/esm/array-table/index.js +170 -25
- package/dist/esm/array-table/interface.d.ts +22 -0
- package/dist/esm/array-table/preview.js +43 -7
- package/dist/esm/array-table/rowFeedback.d.ts +2 -2
- package/dist/esm/array-table/rowFeedback.js +8 -8
- package/dist/esm/array-table/summary.d.ts +25 -0
- package/dist/esm/array-table/summary.js +66 -0
- package/dist/esm/array-table/theme.d.ts +35 -5
- package/dist/esm/array-table/theme.js +47 -12
- package/dist/esm/array-table/title.d.ts +3 -0
- package/dist/esm/array-table/title.js +24 -0
- package/dist/esm/array-table/utils.d.ts +2 -1
- package/dist/esm/array-table/utils.js +93 -22
- package/dist/esm/card/pro-card/Card/useLegacyItems.d.ts +1 -1
- package/dist/esm/dateCellEditor/DateCellEditor.d.ts +5 -0
- package/dist/esm/dateCellEditor/DateCellEditor.js +42 -17
- package/dist/esm/deleteConfirm/index.d.ts +14 -0
- package/dist/esm/deleteConfirm/index.js +72 -12
- package/dist/esm/dialogSelect/index.d.ts +19 -0
- package/dist/esm/dialogSelect/index.js +190 -16
- package/dist/esm/dialogSelect/index.less +18 -0
- package/dist/esm/documentPage/documentPage.d.ts +6 -3
- package/dist/esm/documentPage/documentPage.js +23 -8
- package/dist/esm/documentPage/index.d.ts +2 -0
- package/dist/esm/documentPage/index.js +1 -0
- package/dist/esm/documentPage/leaveGuard.d.ts +31 -0
- package/dist/esm/documentPage/leaveGuard.js +86 -0
- package/dist/esm/draggableModal/index.d.ts +24 -1
- package/dist/esm/draggableModal/index.js +35 -5
- package/dist/esm/fullScreenAlert/index.less +10 -10
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/readPretty/arrayTable.js +6 -2
- package/dist/esm/scanCollect/ScanFeedbackInput.d.ts +26 -0
- package/dist/esm/scanCollect/ScanFeedbackInput.js +107 -0
- package/dist/esm/scanCollect/index.d.ts +4 -0
- package/dist/esm/scanCollect/index.js +2 -0
- package/dist/esm/scanCollect/scanSound.d.ts +15 -0
- package/dist/esm/scanCollect/scanSound.js +84 -0
- package/package.json +2 -2
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 悬浮行 / 选中行 / 选中且悬浮行底色(DESIGN.md §3.5):主色朝白混合,
|
|
3
|
+
* 浅底文字(链接色)压其上必须 ≥ 4.5:1,不达标就逐步变浅。
|
|
4
|
+
* 不直接用 antd 的 colorPrimaryBg 系列:那是对主色的通用派生,绿主题下链接压其上只有 2.3~2.9。
|
|
5
|
+
* @author nokecy
|
|
6
|
+
*/
|
|
7
|
+
import { contrastRatio } from "../shared/contrast";
|
|
8
|
+
var HEX = /^#[0-9a-f]{6}$/i;
|
|
9
|
+
var toHexRgb = function toHexRgb(hex) {
|
|
10
|
+
var v = parseInt(hex.slice(1), 16);
|
|
11
|
+
return [v >> 16 & 255, v >> 8 & 255, v & 255];
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/** 主色占 percent%,其余为白。 */
|
|
15
|
+
export var mixWithWhite = function mixWithWhite(hex, percent) {
|
|
16
|
+
var rgb = toHexRgb(hex);
|
|
17
|
+
var out = rgb.map(function (c) {
|
|
18
|
+
return Math.round(255 - (255 - c) * (percent / 100));
|
|
19
|
+
});
|
|
20
|
+
return "#".concat(out.map(function (c) {
|
|
21
|
+
return c.toString(16).padStart(2, '0');
|
|
22
|
+
}).join(''));
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/** 悬浮 6% / 选中 9% / 选中且悬浮 14%(对应规范的 94% / 91% / 86% 起混白)。 */
|
|
26
|
+
var START = {
|
|
27
|
+
hover: 6,
|
|
28
|
+
selected: 9,
|
|
29
|
+
selectedHover: 14
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* @param primary 主色,非 6 位 hex 时返回 undefined,由调用方退回 antd token
|
|
33
|
+
* @param linkText 浅底文字(链接色),缺省按主色
|
|
34
|
+
*/
|
|
35
|
+
export function deriveRowColors(primary, linkText) {
|
|
36
|
+
if (!HEX.test(primary)) return undefined;
|
|
37
|
+
var text = linkText && HEX.test(linkText) ? linkText : primary;
|
|
38
|
+
var pick = function pick(start) {
|
|
39
|
+
for (var p = start; p > 0; p--) {
|
|
40
|
+
var bg = mixWithWhite(primary, p);
|
|
41
|
+
if (contrastRatio(text, bg) >= 4.5) return bg;
|
|
42
|
+
}
|
|
43
|
+
return '#ffffff';
|
|
44
|
+
};
|
|
45
|
+
return {
|
|
46
|
+
hover: pick(START.hover),
|
|
47
|
+
selected: pick(START.selected),
|
|
48
|
+
selectedHover: pick(START.selectedHover)
|
|
49
|
+
};
|
|
50
|
+
}
|
|
@@ -3,12 +3,17 @@
|
|
|
3
3
|
* 使用 AG-Grid 替代 Ant Design Table,性能更优
|
|
4
4
|
*/
|
|
5
5
|
import React from 'react';
|
|
6
|
+
import type { ICellRendererParams } from 'ag-grid-community';
|
|
6
7
|
import type { FlatColumnItem } from './columnGroupTypes';
|
|
7
8
|
interface ColumnConfigTableAGProps {
|
|
8
9
|
items: FlatColumnItem[];
|
|
9
10
|
onChange: (items: FlatColumnItem[]) => void;
|
|
10
11
|
simple?: boolean;
|
|
11
12
|
scrollY?: number;
|
|
13
|
+
/** 不可隐藏的业务列标识(列定义声明 lockVisible),其「隐藏」开关禁用且恒为显示 */
|
|
14
|
+
lockedColumnIds?: string[];
|
|
12
15
|
}
|
|
16
|
+
/** Switch 渲染器工厂 */
|
|
17
|
+
export declare const createSwitchRenderer: (field: keyof FlatColumnItem) => (props: ICellRendererParams<FlatColumnItem>) => React.JSX.Element;
|
|
13
18
|
declare const ColumnConfigTable: React.FC<ColumnConfigTableAGProps>;
|
|
14
19
|
export default ColumnConfigTable;
|
|
@@ -23,7 +23,7 @@ import React, { useCallback, useMemo, useState, useRef, useEffect } from 'react'
|
|
|
23
23
|
import { Button, Select, Switch, Space, Popconfirm, message, Tag, theme } from 'antd';
|
|
24
24
|
import { DeleteOutlined, FolderOutlined, FolderAddOutlined, FileOutlined } from '@ant-design/icons';
|
|
25
25
|
import { AgGridReact } from 'ag-grid-react';
|
|
26
|
-
import { generateId, normalizeCellAlign } from "./columnGroupUtils";
|
|
26
|
+
import { generateId, getColumnIdentity, normalizeCellAlign } from "./columnGroupUtils";
|
|
27
27
|
import { DebounceNumberInput } from "./DebounceInputs";
|
|
28
28
|
import { useAgGridTheme } from "../theme";
|
|
29
29
|
import { ColumnNameCellRenderer } from "./ColumnNameCellRenderer";
|
|
@@ -74,8 +74,9 @@ var WidthCellRenderer = function WidthCellRenderer(props) {
|
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
/** Switch 渲染器工厂 */
|
|
77
|
-
var createSwitchRenderer = function createSwitchRenderer(field) {
|
|
77
|
+
export var createSwitchRenderer = function createSwitchRenderer(field) {
|
|
78
78
|
return function (props) {
|
|
79
|
+
var _lockedIds;
|
|
79
80
|
var item = props.data;
|
|
80
81
|
if (!item || item.type !== 'column') return /*#__PURE__*/_jsx("span", {
|
|
81
82
|
children: "-"
|
|
@@ -84,10 +85,14 @@ var createSwitchRenderer = function createSwitchRenderer(field) {
|
|
|
84
85
|
// 获取字段值
|
|
85
86
|
var fieldValue = item[field];
|
|
86
87
|
|
|
88
|
+
// 业务列不可被隐藏:开关禁用,恒为显示
|
|
89
|
+
var locked = field === 'hide' && ((_lockedIds = props.lockedIds) === null || _lockedIds === void 0 ? void 0 : _lockedIds.includes(getColumnIdentity(item)));
|
|
90
|
+
|
|
87
91
|
// 只检查布尔值
|
|
88
|
-
var isChecked = fieldValue === true;
|
|
92
|
+
var isChecked = locked ? false : fieldValue === true;
|
|
89
93
|
return /*#__PURE__*/_jsx(Switch, {
|
|
90
94
|
checked: isChecked,
|
|
95
|
+
disabled: locked,
|
|
91
96
|
onChange: function onChange(checked) {
|
|
92
97
|
if (props.node) {
|
|
93
98
|
// 保存时统一为布尔值
|
|
@@ -257,7 +262,8 @@ var ColumnConfigTable = function ColumnConfigTable(_ref2) {
|
|
|
257
262
|
_ref2$simple = _ref2.simple,
|
|
258
263
|
simple = _ref2$simple === void 0 ? false : _ref2$simple,
|
|
259
264
|
_ref2$scrollY = _ref2.scrollY,
|
|
260
|
-
scrollY = _ref2$scrollY === void 0 ? 480 : _ref2$scrollY
|
|
265
|
+
scrollY = _ref2$scrollY === void 0 ? 480 : _ref2$scrollY,
|
|
266
|
+
lockedColumnIds = _ref2.lockedColumnIds;
|
|
261
267
|
var gridTheme = useAgGridTheme();
|
|
262
268
|
var _theme$useToken = theme.useToken(),
|
|
263
269
|
token = _theme$useToken.token; // 颜色取主题 token,跟随亮/暗主题 @author nokecy
|
|
@@ -657,6 +663,9 @@ var ColumnConfigTable = function ColumnConfigTable(_ref2) {
|
|
|
657
663
|
headerName: '隐藏',
|
|
658
664
|
width: 80,
|
|
659
665
|
cellRenderer: createSwitchRenderer('hide'),
|
|
666
|
+
cellRendererParams: {
|
|
667
|
+
lockedIds: lockedColumnIds
|
|
668
|
+
},
|
|
660
669
|
cellStyle: commonCellStyle
|
|
661
670
|
}, {
|
|
662
671
|
field: 'suppressHeaderFilterButton',
|
|
@@ -677,7 +686,7 @@ var ColumnConfigTable = function ColumnConfigTable(_ref2) {
|
|
|
677
686
|
cellStyle: commonCellStyle
|
|
678
687
|
}];
|
|
679
688
|
return cols;
|
|
680
|
-
}, [handleDelete, handleAddChildGroup, simple, expandedKeys, toggleExpand, localItems]);
|
|
689
|
+
}, [handleDelete, handleAddChildGroup, simple, expandedKeys, toggleExpand, localItems, lockedColumnIds]);
|
|
681
690
|
|
|
682
691
|
// 根据展开状态过滤数据
|
|
683
692
|
var visibleItems = useMemo(function () {
|
|
@@ -1,6 +1,6 @@
|
|
|
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
|
-
var _excluded = ["createdAt", "updatedAt"],
|
|
3
|
-
_excluded2 = ["createdAt", "updatedAt"],
|
|
2
|
+
var _excluded = ["createdAt", "updatedAt", "filterModel"],
|
|
3
|
+
_excluded2 = ["createdAt", "updatedAt", "filterModel"],
|
|
4
4
|
_excluded3 = ["createdAt", "updatedAt"];
|
|
5
5
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
6
6
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
@@ -26,13 +26,13 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
26
26
|
import { sanitizeColDefs } from "../utils/agGridCompat";
|
|
27
27
|
import React, { useState, useCallback, useMemo, useEffect } from 'react';
|
|
28
28
|
import { logger } from "../utils/logger";
|
|
29
|
-
import { Modal, Tabs, Space, Button, Input, message, Popconfirm, Tag, Tooltip, Empty, theme } from 'antd';
|
|
29
|
+
import { Modal, Tabs, Space, Button, Input, message, Popconfirm, Segmented, Tag, Tooltip, Empty, theme } from 'antd';
|
|
30
30
|
import { SaveOutlined, ReloadOutlined, EditOutlined, DeleteOutlined, StarOutlined, StarFilled, SearchOutlined, GlobalOutlined, RollbackOutlined, ClearOutlined, ExclamationCircleOutlined } from '@ant-design/icons';
|
|
31
31
|
import { AgGridReact } from 'ag-grid-react';
|
|
32
32
|
import { useAgGridTheme } from "../theme";
|
|
33
33
|
import { localeText } from "../locale";
|
|
34
34
|
import { createForm, onFormInit } from '@nokecy/formily-core';
|
|
35
|
-
import { gridStateToFlatConfig, flatConfigToGridState, flatConfigToColumnState, dropQueryOnlyItems, excludeQueryOnlyColumns, isOldSchemeData, migrateOldScheme, generateId, getColumnIdentity, normalizeColumnConfig } from "./columnGroupUtils";
|
|
35
|
+
import { gridStateToFlatConfig, flatConfigToGridState, flatConfigToColumnState, dropQueryOnlyItems, excludeQueryOnlyColumns, isOldSchemeData, migrateOldScheme, generateId, getColumnIdentity, getLockedColumnIds, normalizeColumnConfig } from "./columnGroupUtils";
|
|
36
36
|
import ColumnConfigTable from "./ColumnConfigTable";
|
|
37
37
|
import DraggableModal from "../../draggableModal/index";
|
|
38
38
|
import { useGridSchemes } from "../context/useSchemeManager";
|
|
@@ -68,7 +68,9 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
68
68
|
resetToGlobal = _useGridSchemes.resetToGlobal,
|
|
69
69
|
resetAllUsers = _useGridSchemes.resetAllUsers,
|
|
70
70
|
globalConfigPermissions = _useGridSchemes.globalConfigPermissions,
|
|
71
|
-
isUsingGlobalFallback = _useGridSchemes.isUsingGlobalFallback
|
|
71
|
+
isUsingGlobalFallback = _useGridSchemes.isUsingGlobalFallback,
|
|
72
|
+
density = _useGridSchemes.density,
|
|
73
|
+
onDensityChange = _useGridSchemes.onDensityChange;
|
|
72
74
|
|
|
73
75
|
// 调用方传入的列定义优先:Context 里的属于外层 AgGridPlus 或为空 @author nokecy
|
|
74
76
|
var allColDefs = allColDefsProp !== null && allColDefsProp !== void 0 ? allColDefsProp : contextAllColDefs;
|
|
@@ -126,6 +128,11 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
126
128
|
// allColDefs 包含自定义属性(cellRenderer 等),用于方案应用时保留这些属性
|
|
127
129
|
var originalColumnDefs = initialColumnDefs || allColDefs || undefined;
|
|
128
130
|
|
|
131
|
+
// 业务列(序号等 lockVisible)不可隐藏
|
|
132
|
+
var lockedColumnIds = useMemo(function () {
|
|
133
|
+
return getLockedColumnIds(originalColumnDefs);
|
|
134
|
+
}, [originalColumnDefs]);
|
|
135
|
+
|
|
129
136
|
// 【修复】保存快照用于取消时恢复(改名避免与Context的originalColumnDefs冲突)
|
|
130
137
|
var _useState17 = useState(null),
|
|
131
138
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
@@ -368,6 +375,18 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
368
375
|
});
|
|
369
376
|
}, [form, gridApi, allColDefs]);
|
|
370
377
|
|
|
378
|
+
/**
|
|
379
|
+
* 恢复默认:列配置还原为列定义里写的初始值(宽度、显隐、固定、顺序),先在表格上预览,保存后才落到方案。
|
|
380
|
+
* 只动列配置,密度偏好不受影响。
|
|
381
|
+
*/
|
|
382
|
+
var handleRestoreDefault = useCallback(function () {
|
|
383
|
+
var _excludeQueryOnlyColu;
|
|
384
|
+
var defaults = (_excludeQueryOnlyColu = excludeQueryOnlyColumns(originalColumnDefs !== null && originalColumnDefs !== void 0 ? originalColumnDefs : [])) !== null && _excludeQueryOnlyColu !== void 0 ? _excludeQueryOnlyColu : [];
|
|
385
|
+
if (defaults.length === 0) return;
|
|
386
|
+
handleColumnChange(normalizeColumnConfig(gridStateToFlatConfig(defaults, originalColumnDefs), originalColumnDefs));
|
|
387
|
+
message.info('已恢复为默认列配置,点击「保存配置」后生效');
|
|
388
|
+
}, [originalColumnDefs, handleColumnChange]);
|
|
389
|
+
|
|
371
390
|
/**
|
|
372
391
|
* 关闭弹窗处理 - 取消时恢复原始状态
|
|
373
392
|
* 如果用户取消操作,恢复到打开弹窗前的列定义状态
|
|
@@ -399,7 +418,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
399
418
|
return s.id === schemeId;
|
|
400
419
|
});
|
|
401
420
|
if (!(scheme && gridApi)) {
|
|
402
|
-
_context.next =
|
|
421
|
+
_context.next = 12;
|
|
403
422
|
break;
|
|
404
423
|
}
|
|
405
424
|
// 【关键修复】先更新 columnDefs(处理分组结构),使用 allColDefs 保留自定义属性
|
|
@@ -419,12 +438,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
419
438
|
state: columnState,
|
|
420
439
|
applyOrder: true // 强制应用列顺序
|
|
421
440
|
});
|
|
422
|
-
|
|
423
|
-
// 应用过滤器
|
|
424
|
-
if (scheme.filterModel) {
|
|
425
|
-
gridApi.setFilterModel(scheme.filterModel);
|
|
426
|
-
}
|
|
427
|
-
case 13:
|
|
441
|
+
case 12:
|
|
428
442
|
message.success('方案已加载');
|
|
429
443
|
|
|
430
444
|
// 等待Grid状态更新后再刷新表单
|
|
@@ -439,17 +453,17 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
439
453
|
|
|
440
454
|
// 自动关闭弹窗,让用户看到Grid的变化
|
|
441
455
|
onClose();
|
|
442
|
-
_context.next =
|
|
456
|
+
_context.next = 20;
|
|
443
457
|
break;
|
|
444
|
-
case
|
|
445
|
-
_context.prev =
|
|
458
|
+
case 17:
|
|
459
|
+
_context.prev = 17;
|
|
446
460
|
_context.t0 = _context["catch"](0);
|
|
447
461
|
message.error(_context.t0.message || '加载方案失败');
|
|
448
|
-
case
|
|
462
|
+
case 20:
|
|
449
463
|
case "end":
|
|
450
464
|
return _context.stop();
|
|
451
465
|
}
|
|
452
|
-
}, _callee, null, [[0,
|
|
466
|
+
}, _callee, null, [[0, 17]]);
|
|
453
467
|
}));
|
|
454
468
|
return function (_x) {
|
|
455
469
|
return _ref2.apply(this, arguments);
|
|
@@ -461,7 +475,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
461
475
|
* 优化逻辑:先保存配置到存储,再直接应用到 Grid,不依赖 handleLoadScheme
|
|
462
476
|
*/
|
|
463
477
|
var handleSaveColumns = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
464
|
-
var values, flatConfig, configToSave, invalidColumns,
|
|
478
|
+
var values, flatConfig, configToSave, invalidColumns, savedScheme, createdAt, updatedAt, _legacyFilter, schemeWithoutTimestamps, defaultScheme, _createdAt, _updatedAt, _legacyFilter2, _schemeWithoutTimestamps, gridColumnDefs, columnState;
|
|
465
479
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
466
480
|
while (1) switch (_context2.prev = _context2.next) {
|
|
467
481
|
case 0:
|
|
@@ -492,82 +506,79 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
492
506
|
});
|
|
493
507
|
}
|
|
494
508
|
_context2.prev = 9;
|
|
495
|
-
filterModel = gridApi.getFilterModel();
|
|
496
509
|
if (!currentScheme) {
|
|
497
|
-
_context2.next =
|
|
510
|
+
_context2.next = 21;
|
|
498
511
|
break;
|
|
499
512
|
}
|
|
500
513
|
if (!(currentScheme.isGlobal && !canApplyToGlobal)) {
|
|
501
|
-
_context2.next =
|
|
514
|
+
_context2.next = 14;
|
|
502
515
|
break;
|
|
503
516
|
}
|
|
504
517
|
message.error('没有权限修改全局方案');
|
|
505
518
|
return _context2.abrupt("return");
|
|
506
|
-
case
|
|
519
|
+
case 14:
|
|
507
520
|
// 如果有激活的方案,更新该方案
|
|
508
|
-
|
|
521
|
+
// 列头筛选属于数据而非视图偏好,不随方案保存;同时丢弃旧方案里遗留的 filterModel
|
|
522
|
+
createdAt = currentScheme.createdAt, updatedAt = currentScheme.updatedAt, _legacyFilter = currentScheme.filterModel, schemeWithoutTimestamps = _objectWithoutProperties(currentScheme, _excluded);
|
|
509
523
|
savedScheme = _objectSpread(_objectSpread({}, schemeWithoutTimestamps), {}, {
|
|
510
|
-
columnConfig: configToSave
|
|
511
|
-
filterModel: filterModel
|
|
524
|
+
columnConfig: configToSave
|
|
512
525
|
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
513
526
|
});
|
|
514
|
-
_context2.next =
|
|
527
|
+
_context2.next = 18;
|
|
515
528
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, savedScheme);
|
|
516
|
-
case
|
|
529
|
+
case 18:
|
|
517
530
|
message.success('列配置已保存到方案');
|
|
518
|
-
_context2.next =
|
|
531
|
+
_context2.next = 37;
|
|
519
532
|
break;
|
|
520
|
-
case
|
|
533
|
+
case 21:
|
|
521
534
|
// 如果没有激活的方案,自动创建或更新默认方案
|
|
522
535
|
defaultScheme = schemes.find(function (s) {
|
|
523
536
|
return s.isDefault;
|
|
524
537
|
});
|
|
525
538
|
if (!defaultScheme) {
|
|
526
|
-
_context2.next =
|
|
539
|
+
_context2.next = 33;
|
|
527
540
|
break;
|
|
528
541
|
}
|
|
529
542
|
if (!(defaultScheme.isGlobal && !canApplyToGlobal)) {
|
|
530
|
-
_context2.next =
|
|
543
|
+
_context2.next = 26;
|
|
531
544
|
break;
|
|
532
545
|
}
|
|
533
546
|
message.error('没有权限修改全局方案');
|
|
534
547
|
return _context2.abrupt("return");
|
|
535
|
-
case
|
|
548
|
+
case 26:
|
|
536
549
|
// 更新默认方案
|
|
537
|
-
_createdAt = defaultScheme.createdAt, _updatedAt = defaultScheme.updatedAt, _schemeWithoutTimestamps = _objectWithoutProperties(defaultScheme, _excluded2);
|
|
550
|
+
_createdAt = defaultScheme.createdAt, _updatedAt = defaultScheme.updatedAt, _legacyFilter2 = defaultScheme.filterModel, _schemeWithoutTimestamps = _objectWithoutProperties(defaultScheme, _excluded2);
|
|
538
551
|
savedScheme = _objectSpread(_objectSpread({}, _schemeWithoutTimestamps), {}, {
|
|
539
|
-
columnConfig: configToSave
|
|
540
|
-
filterModel: filterModel
|
|
552
|
+
columnConfig: configToSave
|
|
541
553
|
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
542
554
|
});
|
|
543
|
-
_context2.next =
|
|
555
|
+
_context2.next = 30;
|
|
544
556
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, savedScheme);
|
|
545
|
-
case
|
|
557
|
+
case 30:
|
|
546
558
|
message.success('列配置已保存到默认方案');
|
|
547
|
-
_context2.next =
|
|
559
|
+
_context2.next = 37;
|
|
548
560
|
break;
|
|
549
|
-
case
|
|
561
|
+
case 33:
|
|
550
562
|
// 创建新的默认方案
|
|
551
563
|
savedScheme = {
|
|
552
564
|
id: uuidv4(),
|
|
553
565
|
name: '默认配置',
|
|
554
566
|
description: '自动创建的默认列配置',
|
|
555
567
|
columnConfig: configToSave,
|
|
556
|
-
filterModel: filterModel,
|
|
557
568
|
isDefault: true,
|
|
558
569
|
isSystem: false
|
|
559
570
|
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
560
571
|
};
|
|
561
|
-
_context2.next =
|
|
572
|
+
_context2.next = 36;
|
|
562
573
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, savedScheme);
|
|
563
|
-
case
|
|
574
|
+
case 36:
|
|
564
575
|
message.success('已创建并保存到默认方案');
|
|
565
|
-
case
|
|
566
|
-
_context2.next =
|
|
576
|
+
case 37:
|
|
577
|
+
_context2.next = 39;
|
|
567
578
|
return new Promise(function (resolve) {
|
|
568
579
|
return setTimeout(resolve, 100);
|
|
569
580
|
});
|
|
570
|
-
case
|
|
581
|
+
case 39:
|
|
571
582
|
// 【关键修复】直接应用方案到 Grid,不通过 handleLoadScheme
|
|
572
583
|
// 这样可以避免依赖 Context 状态更新的时序问题
|
|
573
584
|
logger.debug('[ColumnSetting] 保存后直接应用方案到 Grid');
|
|
@@ -579,11 +590,11 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
579
590
|
gridApi.setGridOption('columnDefs', sanitizeColDefs(gridColumnDefs));
|
|
580
591
|
|
|
581
592
|
// 等待 columnDefs 更新完成
|
|
582
|
-
_context2.next =
|
|
593
|
+
_context2.next = 45;
|
|
583
594
|
return new Promise(function (resolve) {
|
|
584
595
|
return setTimeout(resolve, 100);
|
|
585
596
|
});
|
|
586
|
-
case
|
|
597
|
+
case 45:
|
|
587
598
|
// 2. 应用列状态(列顺序、宽度、隐藏、固定等)
|
|
588
599
|
logger.debug('[ColumnSetting] 应用列状态');
|
|
589
600
|
columnState = flatConfigToColumnState(savedScheme.columnConfig, allColDefs);
|
|
@@ -592,44 +603,38 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
592
603
|
applyOrder: true
|
|
593
604
|
});
|
|
594
605
|
|
|
595
|
-
// 3. 应用过滤器
|
|
596
|
-
if (savedScheme.filterModel) {
|
|
597
|
-
logger.debug('[ColumnSetting] 应用 filterModel');
|
|
598
|
-
gridApi.setFilterModel(savedScheme.filterModel);
|
|
599
|
-
}
|
|
600
|
-
|
|
601
606
|
// 4. 设置为当前方案(如果不是当前方案)
|
|
602
607
|
if (!(!currentScheme || savedScheme.id !== currentScheme.id)) {
|
|
603
|
-
_context2.next =
|
|
608
|
+
_context2.next = 51;
|
|
604
609
|
break;
|
|
605
610
|
}
|
|
606
|
-
_context2.next =
|
|
611
|
+
_context2.next = 51;
|
|
607
612
|
return setCurrentColumnScheme === null || setCurrentColumnScheme === void 0 ? void 0 : setCurrentColumnScheme(gridKey, savedScheme.id);
|
|
608
|
-
case
|
|
609
|
-
_context2.next =
|
|
613
|
+
case 51:
|
|
614
|
+
_context2.next = 53;
|
|
610
615
|
return new Promise(function (resolve) {
|
|
611
616
|
return setTimeout(resolve, 50);
|
|
612
617
|
});
|
|
613
|
-
case
|
|
618
|
+
case 53:
|
|
614
619
|
// 5. 关闭弹窗
|
|
615
620
|
onClose();
|
|
616
|
-
_context2.next =
|
|
621
|
+
_context2.next = 60;
|
|
617
622
|
break;
|
|
618
|
-
case
|
|
619
|
-
_context2.prev =
|
|
623
|
+
case 56:
|
|
624
|
+
_context2.prev = 56;
|
|
620
625
|
_context2.t0 = _context2["catch"](9);
|
|
621
626
|
console.error('保存列配置到方案失败:', _context2.t0);
|
|
622
627
|
message.error('保存列配置失败');
|
|
623
|
-
case
|
|
628
|
+
case 60:
|
|
624
629
|
case "end":
|
|
625
630
|
return _context2.stop();
|
|
626
631
|
}
|
|
627
|
-
}, _callee2, null, [[9,
|
|
632
|
+
}, _callee2, null, [[9, 56]]);
|
|
628
633
|
})), [form, gridApi, saveColumnScheme, setCurrentColumnScheme, currentScheme, schemes, gridKey, allColDefs, onClose]);
|
|
629
634
|
|
|
630
635
|
// 保存为新方案
|
|
631
636
|
var handleSaveScheme = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
632
|
-
var columnConfigToSave, values, gridColumnDefs, columnState, _values,
|
|
637
|
+
var columnConfigToSave, values, gridColumnDefs, columnState, _values, newScheme;
|
|
633
638
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
634
639
|
while (1) switch (_context3.prev = _context3.next) {
|
|
635
640
|
case 0:
|
|
@@ -678,21 +683,18 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
678
683
|
_values = form === null || form === void 0 ? void 0 : form.values;
|
|
679
684
|
columnConfigToSave = (_values === null || _values === void 0 ? void 0 : _values.items) || [];
|
|
680
685
|
case 20:
|
|
681
|
-
// 获取过滤器模型
|
|
682
|
-
filterModel = gridApi.getFilterModel();
|
|
683
686
|
newScheme = {
|
|
684
687
|
id: uuidv4(),
|
|
685
688
|
name: schemeName.trim(),
|
|
686
689
|
description: schemeDescription.trim() || "\u521B\u5EFA\u4E8E ".concat(new Date().toLocaleString()),
|
|
687
690
|
columnConfig: columnConfigToSave,
|
|
688
|
-
filterModel: filterModel,
|
|
689
691
|
isDefault: false,
|
|
690
692
|
isSystem: false
|
|
691
693
|
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
692
694
|
};
|
|
693
|
-
_context3.next =
|
|
695
|
+
_context3.next = 23;
|
|
694
696
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, newScheme);
|
|
695
|
-
case
|
|
697
|
+
case 23:
|
|
696
698
|
message.success('方案保存成功');
|
|
697
699
|
setSaveSchemeVisible(false);
|
|
698
700
|
setSchemeName('');
|
|
@@ -700,17 +702,17 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
700
702
|
|
|
701
703
|
// 切换到方案管理标签页,显示新创建的方案
|
|
702
704
|
setActiveTab('schemes');
|
|
703
|
-
_context3.next =
|
|
705
|
+
_context3.next = 33;
|
|
704
706
|
break;
|
|
705
|
-
case
|
|
706
|
-
_context3.prev =
|
|
707
|
+
case 30:
|
|
708
|
+
_context3.prev = 30;
|
|
707
709
|
_context3.t0 = _context3["catch"](3);
|
|
708
710
|
message.error(_context3.t0.message || '保存方案失败');
|
|
709
|
-
case
|
|
711
|
+
case 33:
|
|
710
712
|
case "end":
|
|
711
713
|
return _context3.stop();
|
|
712
714
|
}
|
|
713
|
-
}, _callee3, null, [[3,
|
|
715
|
+
}, _callee3, null, [[3, 30]]);
|
|
714
716
|
})), [gridApi, saveColumnScheme, gridKey, schemeName, schemeDescription, activeTab, form, allColDefs]);
|
|
715
717
|
|
|
716
718
|
// 设置默认方案
|
|
@@ -1226,12 +1228,42 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
1226
1228
|
items: [{
|
|
1227
1229
|
key: 'columns',
|
|
1228
1230
|
label: '列配置',
|
|
1229
|
-
children: /*#__PURE__*/
|
|
1230
|
-
children: /*#__PURE__*/
|
|
1231
|
+
children: /*#__PURE__*/_jsxs(_Fragment, {
|
|
1232
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
1233
|
+
style: {
|
|
1234
|
+
display: 'flex',
|
|
1235
|
+
alignItems: 'center',
|
|
1236
|
+
justifyContent: 'space-between',
|
|
1237
|
+
marginBottom: 12
|
|
1238
|
+
},
|
|
1239
|
+
children: [density && onDensityChange ? /*#__PURE__*/_jsx(Segmented, {
|
|
1240
|
+
"aria-label": "\u8868\u683C\u5BC6\u5EA6",
|
|
1241
|
+
value: density,
|
|
1242
|
+
onChange: function onChange(value) {
|
|
1243
|
+
return onDensityChange(value);
|
|
1244
|
+
},
|
|
1245
|
+
options: [{
|
|
1246
|
+
label: '舒适',
|
|
1247
|
+
value: 'comfort'
|
|
1248
|
+
}, {
|
|
1249
|
+
label: '紧凑',
|
|
1250
|
+
value: 'compact'
|
|
1251
|
+
}, {
|
|
1252
|
+
label: '高密',
|
|
1253
|
+
value: 'dense'
|
|
1254
|
+
}]
|
|
1255
|
+
}) : /*#__PURE__*/_jsx("span", {}), /*#__PURE__*/_jsx(Button, {
|
|
1256
|
+
type: "link",
|
|
1257
|
+
size: "small",
|
|
1258
|
+
onClick: handleRestoreDefault,
|
|
1259
|
+
children: "\u6062\u590D\u9ED8\u8BA4"
|
|
1260
|
+
})]
|
|
1261
|
+
}), /*#__PURE__*/_jsx(ColumnConfigTable, {
|
|
1231
1262
|
items: memoizedColumnData,
|
|
1232
1263
|
onChange: handleColumnChange,
|
|
1233
|
-
simple: false
|
|
1234
|
-
|
|
1264
|
+
simple: false,
|
|
1265
|
+
lockedColumnIds: lockedColumnIds
|
|
1266
|
+
})]
|
|
1235
1267
|
})
|
|
1236
1268
|
}, {
|
|
1237
1269
|
key: 'schemes',
|
|
@@ -66,7 +66,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
66
66
|
var _useQueryForm = useQueryForm(),
|
|
67
67
|
queryFormItems = _useQueryForm.queryFormItems,
|
|
68
68
|
currentQueryOrder = _useQueryForm.currentQueryOrder,
|
|
69
|
-
updateQueryOrder = _useQueryForm.updateQueryOrder
|
|
69
|
+
updateQueryOrder = _useQueryForm.updateQueryOrder,
|
|
70
|
+
getQueryValues = _useQueryForm.getQueryValues;
|
|
70
71
|
|
|
71
72
|
// 获取当前表格的查询方案列表
|
|
72
73
|
var schemes = (querySchemes === null || querySchemes === void 0 ? void 0 : querySchemes[gridKey]) || [];
|
|
@@ -197,7 +198,7 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
197
198
|
* 应用当前顺序和隐藏设置
|
|
198
199
|
*/
|
|
199
200
|
var handleApplyOrder = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
200
|
-
var editingOrder, hiddenFields, queryConfig, createdAt, updatedAt, schemeWithoutTimestamps, newScheme;
|
|
201
|
+
var _getQueryValues, editingOrder, hiddenFields, queryConfig, createdAt, updatedAt, schemeWithoutTimestamps, newScheme;
|
|
201
202
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
202
203
|
while (1) switch (_context.prev = _context.next) {
|
|
203
204
|
case 0:
|
|
@@ -209,8 +210,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
209
210
|
return item.hidden;
|
|
210
211
|
}).map(function (item) {
|
|
211
212
|
return item.field;
|
|
212
|
-
}); //
|
|
213
|
-
queryConfig = buildQueryConfig(editingOrder, hiddenFields); // 如果有当前方案,更新方案
|
|
213
|
+
}); // 构建新格式的配置:查询区当前的条件值一并存入方案,应用方案时带回
|
|
214
|
+
queryConfig = buildQueryConfig(editingOrder, hiddenFields, (_getQueryValues = getQueryValues === null || getQueryValues === void 0 ? void 0 : getQueryValues()) !== null && _getQueryValues !== void 0 ? _getQueryValues : {}); // 如果有当前方案,更新方案
|
|
214
215
|
if (!currentScheme) {
|
|
215
216
|
_context.next = 11;
|
|
216
217
|
break;
|
|
@@ -258,13 +259,13 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
258
259
|
return _context.stop();
|
|
259
260
|
}
|
|
260
261
|
}, _callee, null, [[0, 21]]);
|
|
261
|
-
})), [queryItemsData, currentScheme, saveQueryScheme, gridKey, updateQueryOrder, onClose, setCurrentQueryScheme]);
|
|
262
|
+
})), [queryItemsData, currentScheme, saveQueryScheme, gridKey, updateQueryOrder, onClose, setCurrentQueryScheme, getQueryValues]);
|
|
262
263
|
|
|
263
264
|
/**
|
|
264
265
|
* 保存为新方案
|
|
265
266
|
*/
|
|
266
267
|
var handleSaveAsNew = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
267
|
-
var editingOrder, hiddenFields, queryConfig, newScheme;
|
|
268
|
+
var _getQueryValues2, editingOrder, hiddenFields, queryConfig, newScheme;
|
|
268
269
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
269
270
|
while (1) switch (_context2.prev = _context2.next) {
|
|
270
271
|
case 0:
|
|
@@ -283,8 +284,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
283
284
|
return item.hidden;
|
|
284
285
|
}).map(function (item) {
|
|
285
286
|
return item.field;
|
|
286
|
-
}); //
|
|
287
|
-
queryConfig = buildQueryConfig(editingOrder, hiddenFields);
|
|
287
|
+
}); // 构建新格式的配置:查询区当前的条件值一并存入方案,应用方案时带回
|
|
288
|
+
queryConfig = buildQueryConfig(editingOrder, hiddenFields, (_getQueryValues2 = getQueryValues === null || getQueryValues === void 0 ? void 0 : getQueryValues()) !== null && _getQueryValues2 !== void 0 ? _getQueryValues2 : {});
|
|
288
289
|
newScheme = {
|
|
289
290
|
id: uuidv4(),
|
|
290
291
|
name: schemeName.trim(),
|
|
@@ -310,7 +311,7 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
310
311
|
return _context2.stop();
|
|
311
312
|
}
|
|
312
313
|
}, _callee2, null, [[3, 14]]);
|
|
313
|
-
})), [schemeName, queryItemsData, saveQueryScheme, gridKey]);
|
|
314
|
+
})), [schemeName, queryItemsData, saveQueryScheme, gridKey, getQueryValues]);
|
|
314
315
|
|
|
315
316
|
/**
|
|
316
317
|
* 开始编辑方案
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { GridApi } from 'ag-grid-community';
|
|
2
|
+
import type { ColumnScheme } from '../shared/storage/schemeStorageAdapter';
|
|
3
|
+
import type { FlatColumnItem } from './columnGroupTypes';
|
|
4
|
+
/** 表头上拖拽列宽、列序后,等这么久没有新的拖拽再自动保存(毫秒)。 */
|
|
5
|
+
export declare const AUTO_REMEMBER_DELAY = 600;
|
|
6
|
+
/** 自动记忆关心的 AG Grid 列状态字段。 */
|
|
7
|
+
export interface LayoutColumnState {
|
|
8
|
+
colId: string;
|
|
9
|
+
width?: number;
|
|
10
|
+
flex?: number | null;
|
|
11
|
+
hide?: boolean | null;
|
|
12
|
+
pinned?: boolean | 'left' | 'right' | null;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 把表格当前的列宽、列序、固定、显隐并入列方案配置,其余设置(标题、对齐、分组、过滤按钮)原样保留。
|
|
16
|
+
* 列序只重排列节点的 order 值,分组节点和层级不动。
|
|
17
|
+
*/
|
|
18
|
+
export declare function mergeColumnLayout(config: FlatColumnItem[], state: LayoutColumnState[]): FlatColumnItem[];
|
|
19
|
+
/** 合并后的布局是否与原配置不同。 */
|
|
20
|
+
export declare function layoutChanged(before: FlatColumnItem[], after: FlatColumnItem[]): boolean;
|
|
21
|
+
export interface AutoColumnMemoryOptions {
|
|
22
|
+
/** 关闭后不监听表头拖拽,行为回到「必须进列方案管理保存」 */
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
gridKey?: string;
|
|
25
|
+
ready: boolean;
|
|
26
|
+
api?: GridApi;
|
|
27
|
+
originalColumnDefs?: any[];
|
|
28
|
+
currentScheme?: ColumnScheme;
|
|
29
|
+
saveColumnScheme?: (gridKey: string, scheme: ColumnScheme) => Promise<void>;
|
|
30
|
+
setCurrentColumnScheme?: (gridKey: string, schemeId: string | null) => Promise<void>;
|
|
31
|
+
delay?: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 列宽、列序在表头上拖拽后自动记忆(DESIGN.md §7.5),不必再进「列方案管理」保存。
|
|
35
|
+
* 全局方案不会被改写:在个人方案上叠加布局,没有个人方案时新建一个。@author nokecy
|
|
36
|
+
*/
|
|
37
|
+
export declare function useAutoColumnMemory(options: AutoColumnMemoryOptions): void;
|