@nokecy/qc-ui 1.0.91 → 1.0.93
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ag-grid-plus/_utils/processColumnGroups.d.ts +2 -1
- package/dist/cjs/ag-grid-plus/_utils/processColumnGroups.js +6 -5
- package/dist/cjs/ag-grid-plus/ag-gridPlus.js +69 -35
- package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +5 -0
- package/dist/cjs/ag-grid-plus/index.d.ts +0 -1
- package/dist/cjs/ag-grid-plus/index.js +0 -1
- package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +26 -20
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +5 -1
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +64 -1
- package/dist/cjs/ag-grid-plus/theme.d.ts +5 -0
- package/dist/cjs/ag-grid-plus/theme.js +78 -0
- package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts +2 -1
- package/dist/esm/ag-grid-plus/_utils/processColumnGroups.js +6 -5
- package/dist/esm/ag-grid-plus/ag-gridPlus.js +68 -35
- package/dist/esm/ag-grid-plus/context/gridContext.d.ts +5 -0
- package/dist/esm/ag-grid-plus/errors/ErrorBoundary.d.ts +1 -1
- package/dist/esm/ag-grid-plus/index.d.ts +0 -1
- package/dist/esm/ag-grid-plus/index.js +0 -1
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +27 -21
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +5 -1
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +64 -1
- package/dist/esm/ag-grid-plus/theme.d.ts +5 -0
- package/dist/esm/ag-grid-plus/theme.js +72 -0
- package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts +1 -1
- package/dist/umd/qc-ui.min.css +1 -1
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
- package/dist/esm/ConfirmPro/index.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/LogicSelector.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/RuleBuilderContainer.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/RuleCard.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/RuleGroupEditor.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/constants/operators.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/context/RuleBuilderContext.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/index.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/inputs/BetweenValueInput.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/inputs/MultiValueInput.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/inputs/SingleValueInput.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/inputs/ValueInput.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/selectors/FieldSelector.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/selectors/OperatorSelector.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/types/index.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/utils/pathHelpers.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/utils/ruleHelpers.d.ts.map +0 -1
- package/dist/esm/RuleBuilder/utils/validation.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/boolSelect.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/customGroupCellRenderer.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/processFormColumnState.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/ag-gridPlus.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/context/gridContext.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/errors/ErrorBoundary.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/errors/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/errors/types.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/hooks/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/hooks/useAgGridData.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/hooks/useGridPlusColumnState.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/hooks/useGridState.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/interface.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/locale.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/queryForm/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/querySchemes/components/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/querySchemes/constants.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/querySchemes/hooks/useQueryOrderManager.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/querySchemes/hooks/useQuerySchemes.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/querySchemes/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/querySchemes/storage/localStorageAdapter.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/querySchemes/types.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/querySchemes/utils/validator.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/schemes/components/SchemeManager.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/schemes/components/SchemeSelector.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/schemes/components/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/schemes/constants.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/schemes/hooks/useColumnSchemes.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/schemes/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/schemes/types.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/schemes/utils/validator.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/MoveNodeModal.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/NameColumnRenderer.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/columnGroupTypes.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/settingItem/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/shared/hooks/useSchemeManager.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/storage/MemoryStorageAdapter.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/storage/globalSyncManager.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/storage/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/storage/types.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/toolBar/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/toolBar/style.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/types.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/utils/columnProcessors.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/utils/constants.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/utils/logger.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/utils/sanitize.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/utils.d.ts.map +0 -1
- package/dist/esm/array-table/arrayAddBtn.d.ts.map +0 -1
- package/dist/esm/array-table/arrayBase.d.ts.map +0 -1
- package/dist/esm/array-table/columnHelper.d.ts.map +0 -1
- package/dist/esm/array-table/hooks.d.ts.map +0 -1
- package/dist/esm/array-table/index.d.ts.map +0 -1
- package/dist/esm/array-table/interface.d.ts.map +0 -1
- package/dist/esm/array-table/preview.d.ts.map +0 -1
- package/dist/esm/array-table/utils.d.ts.map +0 -1
- package/dist/esm/array-table-index/index.d.ts.map +0 -1
- package/dist/esm/card/index.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/core/RegexEditor.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/core/extensions/errorMarker.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/core/types.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/hooks/index.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/hooks/useRegexTester.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/hooks/useRegexValidation.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/hooks/useTemplateManager.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/index.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/templates/TemplateSelector.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/templates/builtinTemplates.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/templates/index.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/templates/storage.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/templates/templateManager.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/templates/types.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/testing/types.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/validation/complexity.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/validation/parser.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/validation/types.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/validation/validator.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/visualizer/FlagsSelector.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/visualizer/MatchItem.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/visualizer/RegexRailroadDiagram.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/visualizer/RegexTester.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/visualizer/astToRailroad.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/visualizer/index.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/visualizer/types.d.ts.map +0 -1
- package/dist/esm/components/RegexEditor/visualizer/utils.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/modal/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/toolbar/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/toolbar/style/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/service.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/utils.d.ts.map +0 -1
- package/dist/esm/dashboard/index.d.ts.map +0 -1
- package/dist/esm/dashboard/utils.d.ts.map +0 -1
- package/dist/esm/dashboard/widget/index.d.ts.map +0 -1
- package/dist/esm/dashboard/widget/selector/index.d.ts.map +0 -1
- package/dist/esm/dashboard/widget/utils.d.ts.map +0 -1
- package/dist/esm/deleteConfirm/index.d.ts.map +0 -1
- package/dist/esm/dialogSelect/index.d.ts.map +0 -1
- package/dist/esm/draggableModal/index.d.ts.map +0 -1
- package/dist/esm/editable/index.d.ts.map +0 -1
- package/dist/esm/editable/style.d.ts.map +0 -1
- package/dist/esm/extensible-grid/index.d.ts.map +0 -1
- package/dist/esm/extensible-grid/interface.d.ts.map +0 -1
- package/dist/esm/formDesigner/FormDesigner.d.ts.map +0 -1
- package/dist/esm/formDesigner/ProCard/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/arrayTable/arrayTableSchema.d.ts.map +0 -1
- package/dist/esm/formDesigner/arrayTable/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/arrayTable/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/arrayTableIndex/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/arrayTableIndex/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/card/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/card/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/utils.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/ActionsWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/LogoWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/PreviewWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/SchemaEditorWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/index.d.ts.map +0 -1
- package/dist/esm/formPro/context/formProContext.d.ts.map +0 -1
- package/dist/esm/formPro/formLayoutPro.d.ts.map +0 -1
- package/dist/esm/formPro/index.d.ts.map +0 -1
- package/dist/esm/fullScreenAlert/index.d.ts.map +0 -1
- package/dist/esm/generatedListPage/ConfigurableToolbar.d.ts.map +0 -1
- package/dist/esm/generatedListPage/GeneratedListPage.d.ts.map +0 -1
- package/dist/esm/generatedListPage/OptionsColumn.d.ts.map +0 -1
- package/dist/esm/generatedListPage/PerformanceMonitor.d.ts.map +0 -1
- package/dist/esm/generatedListPage/RequestManager.d.ts.map +0 -1
- package/dist/esm/generatedListPage/_utils/AccessWrapper.d.ts.map +0 -1
- package/dist/esm/generatedListPage/_utils/defaultHandlers.d.ts.map +0 -1
- package/dist/esm/generatedListPage/index.d.ts.map +0 -1
- package/dist/esm/generatedListPage/types.d.ts.map +0 -1
- package/dist/esm/generatedListPage/usePermissionCheck.d.ts.map +0 -1
- package/dist/esm/generatedListPage/useRequestManager.d.ts.map +0 -1
- package/dist/esm/importModal/index.d.ts.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/queryBuilder/index.d.ts.map +0 -1
- package/dist/esm/standardFormDialog/FormValidation.d.ts.map +0 -1
- package/dist/esm/standardFormDialog/PortalManager.d.ts.map +0 -1
- package/dist/esm/standardFormDialog/StandardFormDialog.d.ts.map +0 -1
- package/dist/esm/standardFormDialog/index.d.ts.map +0 -1
- package/dist/esm/standardFormDialog/types.d.ts.map +0 -1
- package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts.map +0 -1
- package/dist/esm/standardFormDialog/withStandardForm.d.ts.map +0 -1
- package/dist/esm/toolBar/index.d.ts.map +0 -1
|
@@ -19,9 +19,10 @@ import { flatConfigToGridState, isOldSchemeData, migrateOldScheme } from "../set
|
|
|
19
19
|
* 2. 旧格式:{ groupName: string } (简单的分组名称)
|
|
20
20
|
*
|
|
21
21
|
* @param columns 列配置数组
|
|
22
|
+
* @param originalColumnDefs 原始列定义数组(可选),用于保留自定义属性
|
|
22
23
|
* @returns AG-Grid 列定义
|
|
23
24
|
*/
|
|
24
|
-
var processColumnGroups = function processColumnGroups(columns) {
|
|
25
|
+
var processColumnGroups = function processColumnGroups(columns, originalColumnDefs) {
|
|
25
26
|
// 如果是空数组,直接返回
|
|
26
27
|
if (!columns || columns.length === 0) {
|
|
27
28
|
return [];
|
|
@@ -44,16 +45,16 @@ var processColumnGroups = function processColumnGroups(columns) {
|
|
|
44
45
|
return col.id !== undefined && col.level !== undefined && col.order !== undefined && (col.type === 'group' || col.type === 'column');
|
|
45
46
|
});
|
|
46
47
|
if (isNewFormat) {
|
|
47
|
-
// 新格式:使用 flatConfigToGridState
|
|
48
|
-
return flatConfigToGridState(columns);
|
|
48
|
+
// 新格式:使用 flatConfigToGridState 转换,传入原始列定义以保留自定义属性
|
|
49
|
+
return flatConfigToGridState(columns, originalColumnDefs);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
// 旧格式:使用旧的处理逻辑
|
|
52
53
|
// 检查是否需要迁移
|
|
53
54
|
if (isOldSchemeData(columns)) {
|
|
54
|
-
//
|
|
55
|
+
// 先迁移到新格式,再转换,传入原始列定义
|
|
55
56
|
var migrated = migrateOldScheme(columns);
|
|
56
|
-
return flatConfigToGridState(migrated);
|
|
57
|
+
return flatConfigToGridState(migrated, originalColumnDefs);
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
// 兼容最原始的格式(groupName)
|
|
@@ -25,6 +25,9 @@ import { AllEnterpriseModule } from "ag-grid-enterprise";
|
|
|
25
25
|
|
|
26
26
|
// AG-Grid v33+ 需要显式注册模块
|
|
27
27
|
ModuleRegistry.registerModules([AllEnterpriseModule]);
|
|
28
|
+
|
|
29
|
+
// 导入 AG-Grid v33 主题
|
|
30
|
+
import { agGridTheme } from "./theme";
|
|
28
31
|
import "./index.less";
|
|
29
32
|
import FormRender from "./queryForm";
|
|
30
33
|
import ToolBar from "./toolBar";
|
|
@@ -242,12 +245,44 @@ function AgGridPlus(props) {
|
|
|
242
245
|
// 只在首次有数据时保存
|
|
243
246
|
if (!firstRowDataRef.current && rowData.length > 0) {
|
|
244
247
|
firstRowDataRef.current = rowData[0];
|
|
245
|
-
console.log('[AgGridPlus] 保存首行数据用于类型推断:', firstRowDataRef.current);
|
|
246
248
|
}
|
|
247
249
|
}, [rowData]);
|
|
248
250
|
|
|
249
|
-
//
|
|
250
|
-
//
|
|
251
|
+
// 【修复】加载列方案时,合并原始列定义和方案配置
|
|
252
|
+
// 确保保留 cellRenderer、valueFormatter、valueEnum 等自定义属性
|
|
253
|
+
useEffect(function () {
|
|
254
|
+
if (!gridKey || !apiRef.current) return;
|
|
255
|
+
var currentScheme = columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme;
|
|
256
|
+
|
|
257
|
+
// 只有当有 columnConfig 时才应用方案
|
|
258
|
+
if (currentScheme !== null && currentScheme !== void 0 && currentScheme.columnConfig && currentScheme.columnConfig.length > 0) {
|
|
259
|
+
var _require = require("./setting/columnGroupUtils"),
|
|
260
|
+
flatConfigToGridState = _require.flatConfigToGridState;
|
|
261
|
+
|
|
262
|
+
// 【关键】使用 flatConfigToGridState 合并原始列定义和方案配置
|
|
263
|
+
// 这样可以保留原始列定义中的 cellRenderer、valueFormatter、valueEnum 等属性
|
|
264
|
+
var mergedColumnDefs = flatConfigToGridState(currentScheme.columnConfig, allColDefsRef.current // 传入原始完整的列定义
|
|
265
|
+
);
|
|
266
|
+
|
|
267
|
+
// 应用合并后的列定义
|
|
268
|
+
apiRef.current.setGridOption("columnDefs", mergedColumnDefs);
|
|
269
|
+
|
|
270
|
+
// 设置列样式
|
|
271
|
+
var _require2 = require("./setting/columnGroupUtils"),
|
|
272
|
+
flatConfigToColumnState = _require2.flatConfigToColumnState;
|
|
273
|
+
var _columnState = flatConfigToColumnState(currentScheme.columnConfig);
|
|
274
|
+
setColumnCellClass(handelgridPlusColumnState(_columnState));
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// 应用过滤器状态
|
|
278
|
+
if (currentScheme !== null && currentScheme !== void 0 && currentScheme.filterModel) {
|
|
279
|
+
setTimeout(function () {
|
|
280
|
+
if (apiRef.current) {
|
|
281
|
+
apiRef.current.setFilterModel(currentScheme.filterModel);
|
|
282
|
+
}
|
|
283
|
+
}, 50);
|
|
284
|
+
}
|
|
285
|
+
}, [gridKey, apiRef.current, columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme, allColDefsRef.current]);
|
|
251
286
|
|
|
252
287
|
// 加载列方案
|
|
253
288
|
// 仅用于设置列样式,不改变列结构
|
|
@@ -258,16 +293,10 @@ function AgGridPlus(props) {
|
|
|
258
293
|
|
|
259
294
|
// 只有当有 columnConfig 时才设置列样式
|
|
260
295
|
if (columnSchemeManager !== null && columnSchemeManager !== void 0 && (_columnSchemeManager$ = columnSchemeManager.currentScheme) !== null && _columnSchemeManager$ !== void 0 && _columnSchemeManager$.columnConfig) {
|
|
261
|
-
var
|
|
262
|
-
flatConfigToColumnState =
|
|
263
|
-
var
|
|
264
|
-
|
|
265
|
-
gridKey: gridKey,
|
|
266
|
-
schemeId: columnSchemeManager.currentScheme.id,
|
|
267
|
-
schemeName: columnSchemeManager.currentScheme.name,
|
|
268
|
-
columnCount: _columnState.length
|
|
269
|
-
});
|
|
270
|
-
setColumnCellClass(handelgridPlusColumnState(_columnState));
|
|
296
|
+
var _require3 = require("./setting/columnGroupUtils"),
|
|
297
|
+
flatConfigToColumnState = _require3.flatConfigToColumnState;
|
|
298
|
+
var _columnState2 = flatConfigToColumnState(columnSchemeManager.currentScheme.columnConfig);
|
|
299
|
+
setColumnCellClass(handelgridPlusColumnState(_columnState2));
|
|
271
300
|
|
|
272
301
|
// 【重要】不再调用 applyColumnState
|
|
273
302
|
// 原因:
|
|
@@ -279,6 +308,7 @@ function AgGridPlus(props) {
|
|
|
279
308
|
|
|
280
309
|
// 【修复】使用 applyColumnState 来应用列的顺序、宽度、隐藏等状态
|
|
281
310
|
// applyColumnState 是 AG-Grid 推荐的方式,专门用于控制列状态
|
|
311
|
+
// 【重要】使用 defaultState: false 确保只更新方案中保存的属性,保留其他原始列属性
|
|
282
312
|
useEffect(function () {
|
|
283
313
|
var currentScheme = columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme;
|
|
284
314
|
if (!apiRef.current || !currentScheme) {
|
|
@@ -287,15 +317,18 @@ function AgGridPlus(props) {
|
|
|
287
317
|
|
|
288
318
|
// 如果有 columnConfig,使用 applyColumnState 应用列状态
|
|
289
319
|
if (currentScheme.columnConfig && currentScheme.columnConfig.length > 0) {
|
|
290
|
-
var
|
|
291
|
-
flatConfigToColumnState =
|
|
292
|
-
var
|
|
320
|
+
var _require4 = require("./setting/columnGroupUtils"),
|
|
321
|
+
flatConfigToColumnState = _require4.flatConfigToColumnState;
|
|
322
|
+
var _columnState3 = flatConfigToColumnState(currentScheme.columnConfig);
|
|
293
323
|
|
|
294
324
|
// 使用 applyColumnState 应用列状态
|
|
295
|
-
// applyOrder: true
|
|
325
|
+
// applyOrder: true - 按照 state 数组的顺序重新排列列
|
|
326
|
+
// defaultState: undefined - 【关键】不提供默认状态,只更新方案中指定的属性,保留其他原始列属性
|
|
296
327
|
apiRef.current.applyColumnState({
|
|
297
|
-
state:
|
|
328
|
+
state: _columnState3,
|
|
298
329
|
applyOrder: true
|
|
330
|
+
// 不设置 defaultState,这样只会更新 state 中指定的属性
|
|
331
|
+
// 保留列定义中的 cellRenderer、valueFormatter、headerName 等属性
|
|
299
332
|
});
|
|
300
333
|
}
|
|
301
334
|
|
|
@@ -474,14 +507,6 @@ function AgGridPlus(props) {
|
|
|
474
507
|
var cols = getTableColumns([dataForTypeInference]);
|
|
475
508
|
allColDefsRef.current = cols; // 同步更新 ref
|
|
476
509
|
|
|
477
|
-
console.log('[AgGridPlus] allColDefs 重新计算:', {
|
|
478
|
-
childrenCount: React.Children.count(children),
|
|
479
|
-
hasPropsColumnDefs: !!props.columnDefs,
|
|
480
|
-
extensibleColumnsCount: Object.keys(extensibleColumns || {}).length,
|
|
481
|
-
gridKey: gridKey,
|
|
482
|
-
colsCount: cols.length,
|
|
483
|
-
usingCachedData: !!firstRowDataRef.current
|
|
484
|
-
});
|
|
485
510
|
return cols;
|
|
486
511
|
}, [React.Children.count(children), props.columnDefs, extensibleColumns, gridKey]);
|
|
487
512
|
|
|
@@ -892,10 +917,12 @@ function AgGridPlus(props) {
|
|
|
892
917
|
var currentScheme = columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme;
|
|
893
918
|
|
|
894
919
|
// 【修复】优先使用方案的 columnConfig,避免被默认逻辑覆盖
|
|
920
|
+
// 【关键修复】传入 allColDefsRef.current 以保留 cellRenderer、valueEnum 等属性
|
|
895
921
|
if (currentScheme !== null && currentScheme !== void 0 && currentScheme.columnConfig && currentScheme.columnConfig.length > 0) {
|
|
896
|
-
var
|
|
897
|
-
flatConfigToGridState =
|
|
898
|
-
var gridColumnDefs = flatConfigToGridState(currentScheme.columnConfig
|
|
922
|
+
var _require5 = require("./setting/columnGroupUtils"),
|
|
923
|
+
flatConfigToGridState = _require5.flatConfigToGridState;
|
|
924
|
+
var gridColumnDefs = flatConfigToGridState(currentScheme.columnConfig, allColDefsRef.current // 传入原始完整的列定义
|
|
925
|
+
);
|
|
899
926
|
return gridColumnDefs;
|
|
900
927
|
}
|
|
901
928
|
|
|
@@ -936,7 +963,8 @@ function AgGridPlus(props) {
|
|
|
936
963
|
});
|
|
937
964
|
var processedColumns = processColumnGroups(columnDefs);
|
|
938
965
|
return processedColumns;
|
|
939
|
-
}, [columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme, React.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass
|
|
966
|
+
}, [columnSchemeManager === null || columnSchemeManager === void 0 ? void 0 : columnSchemeManager.currentScheme, React.Children.count(children), props.columnDefs, extensibleColumns, columnCellClass, allColDefsRef.current // 添加到依赖项
|
|
967
|
+
]);
|
|
940
968
|
|
|
941
969
|
// 构建查询表单项(带 order 属性)
|
|
942
970
|
var queryFormItems = useMemo(function () {
|
|
@@ -981,6 +1009,8 @@ function AgGridPlus(props) {
|
|
|
981
1009
|
return {
|
|
982
1010
|
extensibleColumns: extensibleColumns,
|
|
983
1011
|
columnState: gridPlusColumnState,
|
|
1012
|
+
allColDefs: allColDefsRef.current,
|
|
1013
|
+
// 【修复】传入原始完整的列定义
|
|
984
1014
|
onSaveColumnState: onSaveColumnState,
|
|
985
1015
|
applyToGlobal: applyToGlobal,
|
|
986
1016
|
resetCurrent: resetCurrent,
|
|
@@ -991,7 +1021,9 @@ function AgGridPlus(props) {
|
|
|
991
1021
|
updateQueryOrder: setQueryItemsOrder,
|
|
992
1022
|
queryFormItems: queryFormItems
|
|
993
1023
|
};
|
|
994
|
-
}, [extensibleColumns, gridPlusColumnState,
|
|
1024
|
+
}, [extensibleColumns, gridPlusColumnState, allColDefsRef.current,
|
|
1025
|
+
// 【修复】添加到依赖数组
|
|
1026
|
+
onSaveColumnState, applyToGlobal, resetCurrent, resetAll, columnSchemeManager, querySchemeManager, queryItemsOrder, queryFormItems]);
|
|
995
1027
|
return /*#__PURE__*/React.createElement(GridPlusContext.Provider, {
|
|
996
1028
|
value: gridPlusContextValue
|
|
997
1029
|
}, /*#__PURE__*/React.createElement(Spin, {
|
|
@@ -1061,12 +1093,13 @@ function AgGridPlus(props) {
|
|
|
1061
1093
|
onSaveColumnState: onColumnStateChanged
|
|
1062
1094
|
})]
|
|
1063
1095
|
}), /*#__PURE__*/React.createElement(AgGridReact, _extends({
|
|
1064
|
-
|
|
1096
|
+
theme: agGridTheme
|
|
1065
1097
|
}, rest, {
|
|
1066
1098
|
localeText: localeText,
|
|
1067
1099
|
gridOptions: {
|
|
1068
1100
|
enableCellTextSelection: true,
|
|
1069
|
-
ensureDomOrder: true
|
|
1101
|
+
ensureDomOrder: true,
|
|
1102
|
+
columnHoverHighlight: true
|
|
1070
1103
|
},
|
|
1071
1104
|
overlayNoRowsTemplate: createSafeHtmlTemplate(overlayNoRowsTemplateText || '没有找到数据,试试调整筛选条件吧!'),
|
|
1072
1105
|
enableRangeSelection: true,
|
|
@@ -1094,8 +1127,8 @@ function AgGridPlus(props) {
|
|
|
1094
1127
|
onDragStopped: function onDragStopped(e) {
|
|
1095
1128
|
if (apiRef.current) {
|
|
1096
1129
|
var _apiRef$current5;
|
|
1097
|
-
var
|
|
1098
|
-
setColumnState(
|
|
1130
|
+
var _columnState4 = (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 ? void 0 : _apiRef$current5.getColumnState();
|
|
1131
|
+
setColumnState(_columnState4);
|
|
1099
1132
|
|
|
1100
1133
|
// onColumnStateChanged && onColumnStateChanged(columnState)
|
|
1101
1134
|
}
|
|
@@ -10,6 +10,11 @@ export interface GridPlusContextValue {
|
|
|
10
10
|
* 当前表格的列状态信息,包括列的显示/隐藏、顺序、宽度等
|
|
11
11
|
*/
|
|
12
12
|
columnState: any;
|
|
13
|
+
/**
|
|
14
|
+
* 原始完整的列定义,包含所有自定义属性(cellRenderer、valueFormatter、valueEnum 等)
|
|
15
|
+
* 用于列方案应用时保留这些属性
|
|
16
|
+
*/
|
|
17
|
+
allColDefs?: any[];
|
|
13
18
|
/**
|
|
14
19
|
* 保存当前表格的列状态到服务器(仅保存当前表格)
|
|
15
20
|
* @param gridKey 表格唯一标识
|
|
@@ -31,6 +31,6 @@ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBo
|
|
|
31
31
|
* 重置错误状态,重新渲染组件
|
|
32
32
|
*/
|
|
33
33
|
handleRetry: () => void;
|
|
34
|
-
render(): string | number | boolean |
|
|
34
|
+
render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
|
|
35
35
|
}
|
|
36
36
|
export {};
|
|
@@ -2,7 +2,6 @@ import AgGridPlus from "./ag-gridPlus";
|
|
|
2
2
|
import { AgGridColumn } from "./interface";
|
|
3
3
|
import { GridPlusContext } from "./context/gridContext";
|
|
4
4
|
import { useGridPlusColumnState } from "./hooks/useGridPlusColumnState";
|
|
5
|
-
import "./ag-grid-theme-builder.css";
|
|
6
5
|
export { AgGridPlus, AgGridColumn, GridPlusContext, useGridPlusColumnState };
|
|
7
6
|
export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
|
|
8
7
|
export { useColumnSchemes, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, SchemeSelector, SchemeManager } from "./schemes";
|
|
@@ -2,7 +2,6 @@ import AgGridPlus from "./ag-gridPlus";
|
|
|
2
2
|
import { AgGridColumn } from "./interface";
|
|
3
3
|
import { GridPlusContext } from "./context/gridContext";
|
|
4
4
|
import { useGridPlusColumnState } from "./hooks/useGridPlusColumnState";
|
|
5
|
-
import "./ag-grid-theme-builder.css";
|
|
6
5
|
export { AgGridPlus, AgGridColumn, GridPlusContext, useGridPlusColumnState };
|
|
7
6
|
export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
|
|
8
7
|
|
|
@@ -13,7 +13,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
13
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
14
|
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; } }
|
|
15
15
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
-
import React, { useState, useCallback, useMemo, useEffect } from 'react';
|
|
16
|
+
import React, { useState, useCallback, useMemo, useEffect, useContext } from 'react';
|
|
17
17
|
import { Modal, Tabs, Space, Button, Input, message, Popconfirm, Table, Tag, Tooltip, Card, Row, Col, Empty, Radio } from 'antd';
|
|
18
18
|
import { SaveOutlined, ReloadOutlined, EditOutlined, DeleteOutlined, StarOutlined, StarFilled, AppstoreOutlined, UnorderedListOutlined, SearchOutlined } from '@ant-design/icons';
|
|
19
19
|
import { createForm, onFormInit } from '@formily/core';
|
|
@@ -21,6 +21,7 @@ import { gridStateToFlatConfig, flatConfigToGridState, isOldSchemeData, migrateO
|
|
|
21
21
|
import ColumnConfigTable from "./ColumnConfigTable";
|
|
22
22
|
import processColumnGroups from "../_utils/processColumnGroups";
|
|
23
23
|
import DraggableModal from "../../draggableModal";
|
|
24
|
+
import { GridPlusContext } from "../context/gridContext";
|
|
24
25
|
var TabPane = Tabs.TabPane;
|
|
25
26
|
var TextArea = Input.TextArea;
|
|
26
27
|
/**
|
|
@@ -75,11 +76,15 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
75
76
|
viewMode = _useState18[0],
|
|
76
77
|
setViewMode = _useState18[1];
|
|
77
78
|
|
|
78
|
-
//
|
|
79
|
+
// 【修复】从 Context 获取原始完整的列定义
|
|
80
|
+
var gridPlusContext = useContext(GridPlusContext);
|
|
81
|
+
var originalColumnDefs = (gridPlusContext === null || gridPlusContext === void 0 ? void 0 : gridPlusContext.allColDefs) || undefined;
|
|
82
|
+
|
|
83
|
+
// 【修复】保存快照用于取消时恢复(改名避免与Context的originalColumnDefs冲突)
|
|
79
84
|
var _useState19 = useState(null),
|
|
80
85
|
_useState20 = _slicedToArray(_useState19, 2),
|
|
81
|
-
|
|
82
|
-
|
|
86
|
+
snapshotColumnDefs = _useState20[0],
|
|
87
|
+
setSnapshotColumnDefs = _useState20[1];
|
|
83
88
|
|
|
84
89
|
/**
|
|
85
90
|
* 获取列数据 - 将 Grid 的列定义转换为扁平化配置
|
|
@@ -152,11 +157,11 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
152
157
|
}
|
|
153
158
|
}, [schemeManager === null || schemeManager === void 0 ? void 0 : schemeManager.currentScheme, visible, form, getColumnData]);
|
|
154
159
|
|
|
155
|
-
//
|
|
160
|
+
// 【修复】弹窗打开时保存快照,用于取消时恢复
|
|
156
161
|
useEffect(function () {
|
|
157
162
|
if (visible) {
|
|
158
163
|
var currentDefs = gridApi.getColumnDefs();
|
|
159
|
-
|
|
164
|
+
setSnapshotColumnDefs(currentDefs);
|
|
160
165
|
}
|
|
161
166
|
}, [visible, gridApi]);
|
|
162
167
|
|
|
@@ -170,31 +175,31 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
170
175
|
items: newItems
|
|
171
176
|
});
|
|
172
177
|
|
|
173
|
-
// 2.
|
|
174
|
-
var gridColumnDefs = flatConfigToGridState(newItems);
|
|
178
|
+
// 2. 【修复】转换为 AG-Grid 列定义,传入原始列定义以保留自定义属性
|
|
179
|
+
var gridColumnDefs = flatConfigToGridState(newItems, originalColumnDefs);
|
|
175
180
|
|
|
176
181
|
// 3. 立即应用到 Grid(实时预览,不保存到方案)
|
|
177
182
|
if (type !== 'formArrayTable') {
|
|
178
183
|
gridApi.setGridOption("columnDefs", gridColumnDefs);
|
|
179
184
|
}
|
|
180
|
-
}, [form, gridApi, type]);
|
|
185
|
+
}, [form, gridApi, type, originalColumnDefs]);
|
|
181
186
|
|
|
182
187
|
/**
|
|
183
188
|
* 关闭弹窗处理 - 取消时恢复原始状态
|
|
184
189
|
* 如果用户取消操作,恢复到打开弹窗前的列定义状态
|
|
185
190
|
*/
|
|
186
191
|
var handleClose = useCallback(function () {
|
|
187
|
-
//
|
|
188
|
-
if (
|
|
189
|
-
gridApi.setGridOption("columnDefs",
|
|
192
|
+
// 【修复】如果有保存的快照,恢复它
|
|
193
|
+
if (snapshotColumnDefs && type !== 'formArrayTable') {
|
|
194
|
+
gridApi.setGridOption("columnDefs", snapshotColumnDefs);
|
|
190
195
|
}
|
|
191
196
|
|
|
192
|
-
//
|
|
193
|
-
|
|
197
|
+
// 清空快照
|
|
198
|
+
setSnapshotColumnDefs(null);
|
|
194
199
|
|
|
195
200
|
// 调用父组件的 onClose
|
|
196
201
|
onClose();
|
|
197
|
-
}, [
|
|
202
|
+
}, [snapshotColumnDefs, gridApi, type, onClose]);
|
|
198
203
|
|
|
199
204
|
/**
|
|
200
205
|
* 保存列配置
|
|
@@ -219,8 +224,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
219
224
|
message.info('检测到旧版本配置,已自动迁移到新格式');
|
|
220
225
|
}
|
|
221
226
|
|
|
222
|
-
//
|
|
223
|
-
gridColumnDefs = flatConfigToGridState(configToSave); // 先应用列配置到 Grid
|
|
227
|
+
// 【修复】转换为 AG-Grid 的列定义,传入原始列定义以保留自定义属性
|
|
228
|
+
gridColumnDefs = flatConfigToGridState(configToSave, originalColumnDefs); // 先应用列配置到 Grid
|
|
224
229
|
if (type !== 'formArrayTable') {
|
|
225
230
|
gridApi.setGridOption("columnDefs", gridColumnDefs);
|
|
226
231
|
}
|
|
@@ -301,8 +306,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
301
306
|
}, _callee, null, [[1, 22]]);
|
|
302
307
|
})), 50);
|
|
303
308
|
|
|
304
|
-
//
|
|
305
|
-
|
|
309
|
+
// 【修复】保存成功后清除快照
|
|
310
|
+
setSnapshotColumnDefs(null);
|
|
306
311
|
message.success('列配置已保存');
|
|
307
312
|
onClose();
|
|
308
313
|
case 12:
|
|
@@ -310,7 +315,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
310
315
|
return _context2.stop();
|
|
311
316
|
}
|
|
312
317
|
}, _callee2);
|
|
313
|
-
})), [form, gridApi, onSaveColumnState, type, onClose, schemeManager, gridKey]);
|
|
318
|
+
})), [form, gridApi, onSaveColumnState, type, onClose, schemeManager, gridKey, originalColumnDefs]);
|
|
314
319
|
|
|
315
320
|
// 保存为新方案
|
|
316
321
|
var handleSaveScheme = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
@@ -332,7 +337,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
332
337
|
}
|
|
333
338
|
values = form.values;
|
|
334
339
|
columnConfigToSave = values.items; // 直接使用 FlatColumnItem[] 数据
|
|
335
|
-
|
|
340
|
+
// 【修复】传入原始列定义以保留自定义属性
|
|
341
|
+
processedColumns = processColumnGroups(values.items, originalColumnDefs); // 先应用到 Grid
|
|
336
342
|
if (type !== 'formArrayTable') {
|
|
337
343
|
gridApi.setGridOption("columnDefs", processedColumns);
|
|
338
344
|
}
|
|
@@ -20,10 +20,14 @@ export declare function gridStateToFlatConfig(columnDefs: (ColDef | ColGroupDef)
|
|
|
20
20
|
* 扁平化配置 → Grid State
|
|
21
21
|
* 将扁平化数组重建为 AG-Grid 的树形结构
|
|
22
22
|
*
|
|
23
|
+
* 【重要】如果提供了 originalColumnDefs,会合并原始列定义中的所有属性
|
|
24
|
+
* 这样可以保留 cellRenderer、valueFormatter、valueEnum 等自定义渲染属性
|
|
25
|
+
*
|
|
23
26
|
* @param flatConfig 扁平化配置数组
|
|
27
|
+
* @param originalColumnDefs 原始列定义数组(可选),用于保留自定义属性
|
|
24
28
|
* @returns AG-Grid 列定义数组
|
|
25
29
|
*/
|
|
26
|
-
export declare function flatConfigToGridState(flatConfig: FlatColumnItem[]): (ColDef | ColGroupDef)[];
|
|
30
|
+
export declare function flatConfigToGridState(flatConfig: FlatColumnItem[], originalColumnDefs?: (ColDef | ColGroupDef)[]): (ColDef | ColGroupDef)[];
|
|
27
31
|
/**
|
|
28
32
|
* 旧版本数据迁移
|
|
29
33
|
* 将旧的 { groupName } 结构迁移为新的树形结构
|
|
@@ -1,8 +1,17 @@
|
|
|
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); }
|
|
1
2
|
import _uniqueId from "lodash/uniqueId";
|
|
2
3
|
/**
|
|
3
4
|
* 表头分组配置工具函数
|
|
4
5
|
* 负责 Grid State 与扁平化配置之间的转换
|
|
5
6
|
*/
|
|
7
|
+
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
|
+
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
|
+
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; }
|
|
10
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
11
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
12
|
+
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; } } }; }
|
|
13
|
+
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); }
|
|
14
|
+
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; }
|
|
6
15
|
/**
|
|
7
16
|
* 生成唯一 ID
|
|
8
17
|
*/
|
|
@@ -69,10 +78,45 @@ export function gridStateToFlatConfig(columnDefs) {
|
|
|
69
78
|
* 扁平化配置 → Grid State
|
|
70
79
|
* 将扁平化数组重建为 AG-Grid 的树形结构
|
|
71
80
|
*
|
|
81
|
+
* 【重要】如果提供了 originalColumnDefs,会合并原始列定义中的所有属性
|
|
82
|
+
* 这样可以保留 cellRenderer、valueFormatter、valueEnum 等自定义渲染属性
|
|
83
|
+
*
|
|
72
84
|
* @param flatConfig 扁平化配置数组
|
|
85
|
+
* @param originalColumnDefs 原始列定义数组(可选),用于保留自定义属性
|
|
73
86
|
* @returns AG-Grid 列定义数组
|
|
74
87
|
*/
|
|
75
|
-
export function flatConfigToGridState(flatConfig) {
|
|
88
|
+
export function flatConfigToGridState(flatConfig, originalColumnDefs) {
|
|
89
|
+
/**
|
|
90
|
+
* 从原始列定义中查找指定字段的列定义(支持递归查找分组内的列)
|
|
91
|
+
*/
|
|
92
|
+
function findOriginalColDef(field, defs) {
|
|
93
|
+
if (!defs) return undefined;
|
|
94
|
+
var _iterator = _createForOfIteratorHelper(defs),
|
|
95
|
+
_step;
|
|
96
|
+
try {
|
|
97
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
98
|
+
var def = _step.value;
|
|
99
|
+
// 检查是否是分组
|
|
100
|
+
if ('children' in def && def.children) {
|
|
101
|
+
// 递归查找分组内的列
|
|
102
|
+
var found = findOriginalColDef(field, def.children);
|
|
103
|
+
if (found) return found;
|
|
104
|
+
} else {
|
|
105
|
+
// 检查是否是目标列(使用类型守卫)
|
|
106
|
+
var colDef = def;
|
|
107
|
+
if (colDef.field === field) {
|
|
108
|
+
return colDef;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
} catch (err) {
|
|
113
|
+
_iterator.e(err);
|
|
114
|
+
} finally {
|
|
115
|
+
_iterator.f();
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
|
|
76
120
|
/**
|
|
77
121
|
* 递归构建树形结构
|
|
78
122
|
*/
|
|
@@ -95,6 +139,25 @@ export function flatConfigToGridState(flatConfig) {
|
|
|
95
139
|
};
|
|
96
140
|
} else {
|
|
97
141
|
// 构建列节点
|
|
142
|
+
// 查找原始列定义
|
|
143
|
+
var originalDef = item.field ? findOriginalColDef(item.field, originalColumnDefs) : undefined;
|
|
144
|
+
|
|
145
|
+
// 如果找到原始列定义,合并所有属性
|
|
146
|
+
if (originalDef) {
|
|
147
|
+
return _objectSpread(_objectSpread({}, originalDef), {}, {
|
|
148
|
+
// 保留所有原始属性(cellRenderer、valueFormatter、valueEnum 等)
|
|
149
|
+
// 只覆盖方案中保存的属性
|
|
150
|
+
headerName: item.headerName,
|
|
151
|
+
width: item.width,
|
|
152
|
+
hide: item.hide,
|
|
153
|
+
pinned: item.pinned === 'notPinned' ? null : item.pinned,
|
|
154
|
+
cellClass: item.cellClass,
|
|
155
|
+
flex: item.flex,
|
|
156
|
+
suppressHeaderFilterButton: item.suppressHeaderFilterButton
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// 如果没有找到原始定义,使用基本属性
|
|
98
161
|
return {
|
|
99
162
|
field: item.field,
|
|
100
163
|
headerName: item.headerName,
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AG-Grid v33 主题配置
|
|
3
|
+
* 使用 themeQuartz API 替代 CSS 变量方式
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { themeQuartz } from 'ag-grid-community';
|
|
7
|
+
export var agGridTheme = themeQuartz.withParams({
|
|
8
|
+
// 基础颜色
|
|
9
|
+
backgroundColor: '#FFFFFF',
|
|
10
|
+
foregroundColor: '#555B62',
|
|
11
|
+
accentColor: '#087AD1',
|
|
12
|
+
invalidColor: '#e02525',
|
|
13
|
+
borderColor: '#F0F0F0',
|
|
14
|
+
// 浏览器配置
|
|
15
|
+
browserColorScheme: 'light',
|
|
16
|
+
// 边框配置
|
|
17
|
+
wrapperBorder: true,
|
|
18
|
+
rowBorder: true,
|
|
19
|
+
columnBorder: true,
|
|
20
|
+
// 表头配置
|
|
21
|
+
headerBackgroundColor: '#FAFAFA',
|
|
22
|
+
headerFontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',
|
|
23
|
+
headerFontWeight: 600,
|
|
24
|
+
headerFontSize: 12,
|
|
25
|
+
headerHeight: 25,
|
|
26
|
+
headerTextColor: '#000000E1',
|
|
27
|
+
headerColumnBorder: true,
|
|
28
|
+
headerColumnBorderHeight: '100%',
|
|
29
|
+
headerVerticalPaddingScale: 0.8,
|
|
30
|
+
// 字体配置
|
|
31
|
+
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',
|
|
32
|
+
fontSize: 12,
|
|
33
|
+
// 单元格配置
|
|
34
|
+
cellTextColor: '#000000E1',
|
|
35
|
+
cellHorizontalPaddingScale: 0.7,
|
|
36
|
+
// 行配置
|
|
37
|
+
rowVerticalPaddingScale: 0.8,
|
|
38
|
+
rowHoverColor: 'color-mix(in srgb, transparent, #087AD1 12%)',
|
|
39
|
+
selectedRowBackgroundColor: 'color-mix(in srgb, transparent, #087AD1 8%)',
|
|
40
|
+
oddRowBackgroundColor: '#FFFFFF',
|
|
41
|
+
// 列 hover 配置
|
|
42
|
+
columnHoverColor: 'color-mix(in srgb, transparent, #087AD1 8%)',
|
|
43
|
+
// 图标尺寸
|
|
44
|
+
iconSize: 14,
|
|
45
|
+
// 边角配置
|
|
46
|
+
borderRadius: 2,
|
|
47
|
+
wrapperBorderRadius: 2,
|
|
48
|
+
// 范围选择
|
|
49
|
+
rangeSelectionBorderStyle: 'solid',
|
|
50
|
+
rangeSelectionBorderColor: '#087AD1',
|
|
51
|
+
rangeSelectionBackgroundColor: 'color-mix(in srgb, transparent, #087AD1 20%)',
|
|
52
|
+
// 弹窗阴影
|
|
53
|
+
popupShadow: '0 0 16px 0 #00000026',
|
|
54
|
+
dropdownShadow: '0 1px 4px 1px #babfc766',
|
|
55
|
+
// 拖拽配置
|
|
56
|
+
dragAndDropImageBackgroundColor: '#FFFFFF',
|
|
57
|
+
dragAndDropImageBorder: true,
|
|
58
|
+
// 焦点阴影
|
|
59
|
+
focusShadow: '0 0 0 3px color-mix(in srgb, transparent, #087AD1 50%)',
|
|
60
|
+
// 复选框配置
|
|
61
|
+
checkboxBorderWidth: 1,
|
|
62
|
+
checkboxUncheckedBackgroundColor: '#FFFFFF',
|
|
63
|
+
checkboxCheckedBackgroundColor: '#087AD1',
|
|
64
|
+
checkboxCheckedBorderColor: '#087AD1',
|
|
65
|
+
// 切换按钮配置
|
|
66
|
+
toggleButtonWidth: 28,
|
|
67
|
+
toggleButtonHeight: 18,
|
|
68
|
+
toggleButtonOnBackgroundColor: '#087AD1',
|
|
69
|
+
// 侧边栏配置
|
|
70
|
+
sideBarPanelWidth: 250,
|
|
71
|
+
spacing: 6
|
|
72
|
+
});
|
|
@@ -32,7 +32,7 @@ export declare const createSelectField: (title: string, options: Array<{
|
|
|
32
32
|
required?: boolean | undefined;
|
|
33
33
|
placeholder?: string | undefined;
|
|
34
34
|
gridSpan?: number | undefined;
|
|
35
|
-
mode?: "
|
|
35
|
+
mode?: "multiple" | "tags" | undefined;
|
|
36
36
|
} | undefined) => any;
|
|
37
37
|
/**
|
|
38
38
|
* 快速创建常用字段的工具函数集合
|