@robot-admin/naive-ui-components 0.22.1 → 0.23.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/CHANGELOG.md +16 -0
- package/README.md +7 -5
- package/README_EN.md +7 -5
- package/dist/C_ActionBar.d.cts +2 -1
- package/dist/C_ActionBar.d.ts +2 -1
- package/dist/C_AntV2.cjs +3 -3
- package/dist/C_AntV2.js +3 -3
- package/dist/C_BatchResult.cjs +1 -0
- package/dist/C_BatchResult.css +32 -0
- package/dist/C_BatchResult.d.cts +2 -0
- package/dist/C_BatchResult.d.ts +2 -0
- package/dist/C_BatchResult.js +1 -0
- package/dist/C_BatchResult2.cjs +1 -0
- package/dist/C_BatchResult2.js +1 -0
- package/dist/C_Breadcrumb.d.cts +2 -2
- package/dist/C_Breadcrumb.d.ts +1 -1
- package/dist/C_Cascade.d.cts +1 -1
- package/dist/C_Cascade.d.ts +1 -1
- package/dist/C_Chat.d.cts +1 -1
- package/dist/C_Chat.d.ts +1 -1
- package/dist/C_City.d.cts +1 -1
- package/dist/C_City.d.ts +1 -1
- package/dist/C_Code.d.cts +1 -1
- package/dist/C_Code.d.ts +1 -1
- package/dist/C_ContextMenu.d.cts +1 -1
- package/dist/C_ContextMenu.d.ts +1 -1
- package/dist/C_DataPicker.cjs +1 -0
- package/dist/C_DataPicker.css +55 -0
- package/dist/C_DataPicker.d.cts +2 -0
- package/dist/C_DataPicker.d.ts +5 -0
- package/dist/C_DataPicker.js +1 -0
- package/dist/C_DataPicker2.cjs +1 -0
- package/dist/C_DataPicker2.js +1 -0
- package/dist/C_Date.d.cts +1 -1
- package/dist/C_Date.d.ts +1 -1
- package/dist/C_Density.cjs +1 -0
- package/dist/C_Density.css +1 -0
- package/dist/C_Density.d.cts +3 -0
- package/dist/C_Density.d.ts +3 -0
- package/dist/C_Density.js +1 -0
- package/dist/C_Density2.cjs +1 -0
- package/dist/C_Density2.js +1 -0
- package/dist/C_Editor.d.cts +1 -1
- package/dist/C_Editor.d.ts +1 -1
- package/dist/C_ErrorSummary.cjs +1 -0
- package/dist/C_ErrorSummary.css +29 -0
- package/dist/C_ErrorSummary.d.cts +3 -0
- package/dist/C_ErrorSummary.d.ts +3 -0
- package/dist/C_ErrorSummary.js +1 -0
- package/dist/C_ErrorSummary2.cjs +1 -0
- package/dist/C_ErrorSummary2.js +1 -0
- package/dist/C_Form.base.css +150 -148
- package/dist/C_Form.css +151 -253
- package/dist/C_Form.d.cts +1 -1
- package/dist/C_Form.d.ts +19 -2
- package/dist/C_FormModal.css +1 -2
- package/dist/C_FormModal.d.cts +1 -1
- package/dist/C_FormModal.d.ts +17 -2
- package/dist/C_FormSearch.cjs +1 -1
- package/dist/C_FormSearch.css +124 -52
- package/dist/C_FormSearch.d.cts +3 -3
- package/dist/C_FormSearch.d.ts +5 -4
- package/dist/C_FormSearch.js +1 -1
- package/dist/C_FormulaEditor.d.cts +1 -1
- package/dist/C_FormulaEditor.d.ts +1 -1
- package/dist/C_Guide.d.cts +1 -1
- package/dist/C_Guide.d.ts +1 -1
- package/dist/C_Icon.d.cts +1 -1
- package/dist/C_Icon.d.ts +1 -1
- package/dist/C_Language.d.cts +1 -1
- package/dist/C_Language.d.ts +1 -1
- package/dist/C_Loading.d.cts +1 -1
- package/dist/C_Loading.d.ts +1 -1
- package/dist/C_Login.d.cts +1 -1
- package/dist/C_Login.d.ts +1 -1
- package/dist/C_Markdown.d.cts +1 -1
- package/dist/C_Markdown.d.ts +1 -1
- package/dist/C_Menu.d.cts +2 -2
- package/dist/C_Menu.d.ts +1 -1
- package/dist/C_OrgChart.d.cts +1 -1
- package/dist/C_OrgChart.d.ts +1 -1
- package/dist/C_Progress.d.cts +1 -1
- package/dist/C_Progress.d.ts +1 -1
- package/dist/C_SectionNav.cjs +1 -0
- package/dist/C_SectionNav.css +46 -0
- package/dist/C_SectionNav.d.cts +2 -0
- package/dist/C_SectionNav.d.ts +2 -0
- package/dist/C_SectionNav.js +1 -0
- package/dist/C_SectionNav2.cjs +1 -0
- package/dist/C_SectionNav2.js +1 -0
- package/dist/C_Skeleton.d.cts +1 -1
- package/dist/C_Skeleton.d.ts +1 -1
- package/dist/C_SplitPane2.cjs +1 -1
- package/dist/C_SplitPane2.js +1 -1
- package/dist/C_Steps.d.cts +1 -1
- package/dist/C_Steps.d.ts +1 -1
- package/dist/C_Table.base.css +258 -256
- package/dist/C_Table.cjs +1 -1
- package/dist/C_Table.css +109 -1283
- package/dist/C_Table.d.cts +2 -1
- package/dist/C_Table.d.ts +9 -8
- package/dist/C_Table.js +1 -1
- package/dist/C_Table2.cjs +3 -0
- package/dist/C_Table2.js +3 -0
- package/dist/C_Tabs.cjs +1 -1
- package/dist/C_Tabs.d.cts +1 -1
- package/dist/C_Tabs.d.ts +1 -1
- package/dist/C_Tabs.js +1 -1
- package/dist/C_TagsView.d.cts +1 -1
- package/dist/C_Theme.d.cts +1 -1
- package/dist/C_Theme.d.ts +1 -1
- package/dist/C_Timeline.d.cts +1 -1
- package/dist/C_Timeline.d.ts +1 -1
- package/dist/C_Transfer.d.cts +1 -1
- package/dist/C_Transfer.d.ts +1 -1
- package/dist/C_Tree.d.cts +1 -1
- package/dist/C_Tree.d.ts +9 -8
- package/dist/C_Upload.d.cts +1 -1
- package/dist/C_Upload.d.ts +1 -1
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/Card.cjs +1 -1
- package/dist/Card.js +1 -1
- package/dist/Steps.cjs +1 -1
- package/dist/Steps.js +1 -1
- package/dist/Tabs.cjs +1 -1
- package/dist/Tabs.js +1 -1
- package/dist/batchPatch.cjs +1 -0
- package/dist/batchPatch.d.cts +26 -0
- package/dist/batchPatch.d.ts +26 -0
- package/dist/batchPatch.js +1 -0
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +4 -1
- package/dist/config.d.ts +6 -2
- package/dist/config.js +1 -1
- package/dist/config2.d.ts +1 -1
- package/dist/constants.d.cts +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants2.d.cts +402 -173
- package/dist/constants2.d.ts +402 -173
- package/dist/constants3.d.cts +3 -3
- package/dist/constants3.d.ts +3 -3
- package/dist/constants4.d.cts +173 -402
- package/dist/constants4.d.ts +173 -402
- package/dist/contracts.d.ts +24 -0
- package/dist/data.cjs +1 -1
- package/dist/data.d.cts +5 -108
- package/dist/data.d.ts +5 -108
- package/dist/data.js +1 -1
- package/dist/data2.cjs +1 -1
- package/dist/data2.d.cts +108 -0
- package/dist/data2.d.ts +108 -0
- package/dist/data2.js +1 -1
- package/dist/data3.cjs +1 -0
- package/dist/data3.js +1 -0
- package/dist/dateRange.d.cts +108 -13
- package/dist/dateRange.d.ts +110 -14
- package/dist/density.d.ts +15 -0
- package/dist/dictionary.cjs +1 -0
- package/dist/dictionary.d.cts +38 -0
- package/dist/dictionary.d.ts +38 -0
- package/dist/dictionary.js +1 -0
- package/dist/helpers.cjs +1 -1
- package/dist/helpers.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +63 -52
- package/dist/index.d.ts +71 -57
- package/dist/index.js +1 -1
- package/dist/index.vue.d.cts +4 -4
- package/dist/index.vue.d.ts +4 -4
- package/dist/index10.vue.d.cts +37 -80
- package/dist/index10.vue.d.ts +77 -53
- package/dist/index11.vue.d.cts +77 -53
- package/dist/index11.vue.d.ts +1117 -45
- package/dist/index12.vue.d.cts +1117 -45
- package/dist/index12.vue.d.ts +17 -128
- package/dist/index13.vue.d.cts +17 -128
- package/dist/index13.vue.d.ts +57 -53
- package/dist/index14.vue.d.cts +57 -53
- package/dist/index14.vue.d.ts +16 -25
- package/dist/index15.vue.d.cts +16 -25
- package/dist/index15.vue.d.ts +52 -12
- package/dist/index16.vue.d.cts +52 -12
- package/dist/index16.vue.d.ts +13 -129
- package/dist/index17.vue.d.cts +13 -129
- package/dist/index17.vue.d.ts +123 -74
- package/dist/index18.vue.d.cts +123 -74
- package/dist/index18.vue.d.ts +48 -71
- package/dist/index19.vue.d.cts +40 -91
- package/dist/index19.vue.d.ts +36 -96
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +38 -47
- package/dist/index20.vue.d.ts +13 -48
- package/dist/index21.vue.d.cts +12 -96
- package/dist/index21.vue.d.ts +25 -95
- package/dist/index22.vue.d.cts +20 -32
- package/dist/index22.vue.d.ts +75 -37
- package/dist/index23.vue.d.cts +77 -13
- package/dist/index23.vue.d.ts +71 -13
- package/dist/index24.vue.d.cts +1 -1
- package/dist/index25.vue.d.cts +116 -90
- package/dist/index25.vue.d.ts +116 -90
- package/dist/index26.vue.d.cts +94 -59
- package/dist/index26.vue.d.ts +94 -59
- package/dist/index27.vue.d.cts +75 -0
- package/dist/index27.vue.d.ts +75 -0
- package/dist/index28.vue.d.cts +103 -0
- package/dist/index28.vue.d.ts +103 -0
- package/dist/index29.vue.d.cts +105 -0
- package/dist/index29.vue.d.ts +105 -0
- package/dist/index3.vue.d.cts +4 -4
- package/dist/index3.vue.d.ts +4 -4
- package/dist/index30.vue.d.cts +28 -0
- package/dist/index30.vue.d.ts +28 -0
- package/dist/index4.vue.d.cts +19 -128
- package/dist/index4.vue.d.ts +17 -34
- package/dist/index5.vue.d.cts +127 -35
- package/dist/index5.vue.d.ts +30 -19
- package/dist/index6.vue.d.cts +30 -19
- package/dist/index6.vue.d.ts +22 -118
- package/dist/index7.vue.d.cts +22 -118
- package/dist/index7.vue.d.ts +112 -18
- package/dist/index8.vue.d.cts +112 -18
- package/dist/index8.vue.d.ts +24 -35
- package/dist/index9.vue.d.cts +24 -35
- package/dist/index9.vue.d.ts +37 -80
- package/dist/numberCodec.cjs +1 -0
- package/dist/numberCodec.d.cts +25 -0
- package/dist/numberCodec.d.ts +25 -0
- package/dist/numberCodec.js +1 -0
- package/dist/observer.cjs +1 -0
- package/dist/observer.js +1 -0
- package/dist/presets.d.cts +2 -65
- package/dist/presets.d.ts +2 -65
- package/dist/resolver.cjs +1 -1
- package/dist/resolver.d.cts +1 -1
- package/dist/resolver.d.ts +1 -1
- package/dist/resolver.js +1 -1
- package/dist/serializeSearch.cjs +1 -0
- package/dist/serializeSearch.js +1 -0
- package/dist/style.css +548 -308
- package/dist/types.d.cts +60 -103
- package/dist/types.d.ts +62 -52
- package/dist/types2.d.cts +104 -51
- package/dist/types2.d.ts +56 -0
- package/dist/types3.d.cts +56 -0
- package/dist/useCollapsePanel.d.cts +3 -3
- package/dist/useCollapsePanel.d.ts +3 -3
- package/dist/useComponentLocale.cjs +1 -1
- package/dist/useComponentLocale.js +1 -1
- package/dist/useCropperCore.d.cts +7 -7
- package/dist/useCropperCore.d.ts +7 -7
- package/dist/useDataResource.cjs +1 -0
- package/dist/useDataResource.js +1 -0
- package/dist/useDictionary.cjs +1 -0
- package/dist/useDictionary.js +1 -0
- package/dist/useDynamicFormState.d.cts +960 -10
- package/dist/useDynamicFormState.d.ts +951 -11
- package/dist/useEdgeInteraction.d.cts +2 -2
- package/dist/useEdgeInteraction.d.ts +2 -2
- package/dist/useFormArray.cjs +1 -0
- package/dist/useFormArray.d.cts +69 -0
- package/dist/useFormArray.d.ts +69 -0
- package/dist/useFormArray.js +1 -0
- package/dist/useFormConfig.d.cts +14 -0
- package/dist/useFormConfig.d.ts +17 -38
- package/dist/useGridWidth.cjs +1 -0
- package/dist/useGridWidth.js +1 -0
- package/dist/useInfiniteScroll.d.cts +1 -1
- package/dist/useInfiniteScroll.d.ts +1 -1
- package/dist/useQRCode.d.cts +4 -4
- package/dist/useQRCode.d.ts +4 -4
- package/dist/useSignatureHistory.d.cts +4 -4
- package/dist/useSignatureHistory.d.ts +4 -4
- package/dist/useSplitResize.d.cts +4 -4
- package/dist/useSplitResize.d.ts +4 -4
- package/dist/useTableGlobalConfig.cjs +1 -0
- package/dist/useTableGlobalConfig.js +1 -0
- package/dist/useTableQuery.cjs +1 -3
- package/dist/useTableQuery.js +1 -3
- package/dist/useWorkflowValidation.d.cts +2 -2
- package/dist/useWorkflowValidation.d.ts +2 -2
- package/dist/validation.cjs +1 -0
- package/dist/validation.d.cts +18 -0
- package/dist/validation.d.ts +18 -0
- package/dist/validation.js +1 -0
- package/dist/verification.d.cts +2 -2
- package/dist/verification.d.ts +3 -3
- package/dist/workflows.cjs +1 -0
- package/dist/workflows.d.cts +2 -0
- package/dist/workflows.d.ts +2 -0
- package/dist/workflows.js +1 -0
- package/docs/components.en.md +13 -1
- package/docs/components.md +13 -1
- package/docs/guides/batch-results.md +47 -0
- package/docs/guides/data-picker.md +65 -0
- package/docs/guides/data-workflows.md +123 -0
- package/docs/guides/form-density.en.md +39 -0
- package/docs/guides/form-density.md +39 -0
- package/docs/guides/search-workflows.md +164 -0
- package/package.json +21 -1
- package/dist/C_FormSearch2.cjs +0 -1
- package/dist/C_FormSearch2.js +0 -1
- package/dist/useTableQuery.d.cts +0 -1957
- package/dist/useTableQuery.d.ts +0 -1946
package/dist/useTableQuery.d.cts
DELETED
|
@@ -1,1957 +0,0 @@
|
|
|
1
|
-
import { f as ActionItem, s as ActionBarConfig } from "./presets.cjs";
|
|
2
|
-
import { n as ComponentLocale, t as ComponentFeedback } from "./contracts.cjs";
|
|
3
|
-
import { n as ResolvedComponentDensity, t as ComponentDensity } from "./density.cjs";
|
|
4
|
-
import * as vue from "vue";
|
|
5
|
-
import { App, ComputedRef, InjectionKey, MaybeRef, MaybeRefOrGetter, Ref, VNodeChild } from "vue";
|
|
6
|
-
import { DataTableBaseColumn, DataTableColumn, DataTableRowKey, FormItemRule, PaginationProps, TreeInst, TreeOption, TreeProps } from "naive-ui";
|
|
7
|
-
import { HLJSApi } from "highlight.js";
|
|
8
|
-
|
|
9
|
-
//#region src/composables/useComponentLocale.d.ts
|
|
10
|
-
/** Bind the UI-independent translator to this Vue application and local configuration. */
|
|
11
|
-
declare function useComponentLocale(local?: MaybeRefOrGetter<ComponentLocale | undefined>): {
|
|
12
|
-
t: (key: string, params?: Record<string, string | number>) => string;
|
|
13
|
-
};
|
|
14
|
-
//#endregion
|
|
15
|
-
//#region src/adapters/naive/feedback.d.ts
|
|
16
|
-
/** Reuse Naive providers when present and safely degrade to injected/no-op feedback. */
|
|
17
|
-
declare function useComponentFeedback(local?: MaybeRefOrGetter<ComponentFeedback | undefined>): Required<ComponentFeedback>;
|
|
18
|
-
//#endregion
|
|
19
|
-
//#region src/components/C_Table/composables/usePrintWatermark.d.ts
|
|
20
|
-
interface WatermarkConfig {
|
|
21
|
-
text: string;
|
|
22
|
-
textSize?: number;
|
|
23
|
-
textColor?: string;
|
|
24
|
-
font?: string;
|
|
25
|
-
opacity?: number;
|
|
26
|
-
rotate?: number;
|
|
27
|
-
position?: 'center' | 'repeat' | 'corner' | 'diagonal';
|
|
28
|
-
xGap?: number;
|
|
29
|
-
yGap?: number;
|
|
30
|
-
}
|
|
31
|
-
interface CaptureConfig {
|
|
32
|
-
scale?: number;
|
|
33
|
-
quality?: number;
|
|
34
|
-
format?: 'png' | 'jpeg' | 'webp';
|
|
35
|
-
backgroundColor?: string;
|
|
36
|
-
logging?: boolean;
|
|
37
|
-
allowTaint?: boolean;
|
|
38
|
-
useCORS?: boolean;
|
|
39
|
-
}
|
|
40
|
-
interface PrintConfig {
|
|
41
|
-
orientation?: 'portrait' | 'landscape';
|
|
42
|
-
paperSize?: 'A4' | 'A3' | 'Letter' | string;
|
|
43
|
-
margin?: string;
|
|
44
|
-
style?: string;
|
|
45
|
-
header?: string;
|
|
46
|
-
footer?: string;
|
|
47
|
-
showModal?: boolean;
|
|
48
|
-
modalMessage?: string;
|
|
49
|
-
onLoadingStart?: () => void;
|
|
50
|
-
onLoadingEnd?: () => void;
|
|
51
|
-
onPrintDialogClose?: () => void;
|
|
52
|
-
}
|
|
53
|
-
interface PrintWatermarkOptions {
|
|
54
|
-
watermark?: WatermarkConfig;
|
|
55
|
-
capture?: CaptureConfig;
|
|
56
|
-
print?: PrintConfig;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
*/
|
|
61
|
-
declare function drawWatermark(canvas: HTMLCanvasElement, config: WatermarkConfig): HTMLCanvasElement;
|
|
62
|
-
/**
|
|
63
|
-
*
|
|
64
|
-
*/
|
|
65
|
-
declare function captureElement(element: HTMLElement, config?: CaptureConfig): Promise<HTMLCanvasElement>;
|
|
66
|
-
/**
|
|
67
|
-
*
|
|
68
|
-
*/
|
|
69
|
-
declare function canvasToDataURL(canvas: HTMLCanvasElement, format?: 'png' | 'jpeg' | 'webp', quality?: number): string;
|
|
70
|
-
/**
|
|
71
|
-
*
|
|
72
|
-
*/
|
|
73
|
-
declare function downloadCanvas(canvas: HTMLCanvasElement, filename?: string, format?: 'png' | 'jpeg' | 'webp'): void;
|
|
74
|
-
/**
|
|
75
|
-
*
|
|
76
|
-
*/
|
|
77
|
-
declare function printImage(imageDataURL: string, config?: PrintConfig): Promise<void>;
|
|
78
|
-
/**
|
|
79
|
-
*
|
|
80
|
-
*/
|
|
81
|
-
declare function usePrintWatermark(): {
|
|
82
|
-
loading: vue.Ref<boolean, boolean>;
|
|
83
|
-
progress: vue.Ref<number, number>;
|
|
84
|
-
captureWithWatermark: (element: HTMLElement, options?: PrintWatermarkOptions) => Promise<string>;
|
|
85
|
-
printWithWatermark: (element: HTMLElement, options?: PrintWatermarkOptions) => Promise<void>;
|
|
86
|
-
downloadScreenshot: (element: HTMLElement, filename?: string, options?: PrintWatermarkOptions) => Promise<void>;
|
|
87
|
-
quickPrint: (element: HTMLElement, watermarkText?: string) => Promise<void>;
|
|
88
|
-
batchCapture: (elements: HTMLElement[], options?: PrintWatermarkOptions) => Promise<string[]>;
|
|
89
|
-
batchPrint: (elements: HTMLElement[], options?: PrintWatermarkOptions) => Promise<void>;
|
|
90
|
-
mergePrint: (elements: HTMLElement[], options?: PrintWatermarkOptions, mergeOptions?: {
|
|
91
|
-
orientation?: "horizontal" | "vertical";
|
|
92
|
-
spacing?: number;
|
|
93
|
-
backgroundColor?: string;
|
|
94
|
-
}) => Promise<void>;
|
|
95
|
-
createPreset: (name: string, options: PrintWatermarkOptions) => {
|
|
96
|
-
use: (element: HTMLElement) => Promise<void>;
|
|
97
|
-
download: (element: HTMLElement, filename?: string) => Promise<void>;
|
|
98
|
-
};
|
|
99
|
-
updateProgress: (value: number) => void;
|
|
100
|
-
utils: {
|
|
101
|
-
captureElement: typeof captureElement;
|
|
102
|
-
drawWatermark: typeof drawWatermark;
|
|
103
|
-
canvasToDataURL: typeof canvasToDataURL;
|
|
104
|
-
downloadCanvas: typeof downloadCanvas;
|
|
105
|
-
printImage: typeof printImage;
|
|
106
|
-
};
|
|
107
|
-
};
|
|
108
|
-
declare const printPresets: {
|
|
109
|
-
readonly table: {
|
|
110
|
-
readonly watermark: {
|
|
111
|
-
readonly text: "Robot Admin - 数据表格";
|
|
112
|
-
readonly position: "repeat";
|
|
113
|
-
readonly textColor: "rgba(100, 100, 100, 0.25)";
|
|
114
|
-
readonly textSize: 14;
|
|
115
|
-
readonly xGap: 250;
|
|
116
|
-
readonly yGap: 120;
|
|
117
|
-
};
|
|
118
|
-
readonly capture: {
|
|
119
|
-
readonly scale: 1.2;
|
|
120
|
-
};
|
|
121
|
-
readonly print: {
|
|
122
|
-
readonly orientation: "landscape";
|
|
123
|
-
readonly style: "@page { margin: 8mm; } body { font-family: Arial, sans-serif; }";
|
|
124
|
-
};
|
|
125
|
-
};
|
|
126
|
-
readonly form: {
|
|
127
|
-
readonly watermark: {
|
|
128
|
-
readonly text: "Robot Admin - 表单数据";
|
|
129
|
-
readonly position: "diagonal";
|
|
130
|
-
readonly textColor: "rgba(150, 150, 150, 0.2)";
|
|
131
|
-
readonly textSize: 16;
|
|
132
|
-
};
|
|
133
|
-
readonly print: {
|
|
134
|
-
readonly orientation: "portrait";
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
readonly report: {
|
|
138
|
-
readonly watermark: {
|
|
139
|
-
readonly text: "Robot Admin - 机密报告";
|
|
140
|
-
readonly position: "center";
|
|
141
|
-
readonly textColor: "rgba(200, 50, 50, 0.15)";
|
|
142
|
-
readonly textSize: 24;
|
|
143
|
-
};
|
|
144
|
-
readonly capture: {
|
|
145
|
-
readonly quality: 0.95;
|
|
146
|
-
readonly format: "png";
|
|
147
|
-
};
|
|
148
|
-
};
|
|
149
|
-
};
|
|
150
|
-
//#endregion
|
|
151
|
-
//#region src/components/C_Table/composables/useDynamicRow.d.ts
|
|
152
|
-
interface DynamicRowsBaseOptions<T extends object> {
|
|
153
|
-
/** 总开关;关闭时公开方法保持安全 no-op */
|
|
154
|
-
enabled?: boolean;
|
|
155
|
-
rowKey?: string | ((row: T) => DataTableRowKey);
|
|
156
|
-
/** 新增返回完整业务行;复制时可接收原行副本,函数 rowKey 需返回完整的新副本。 */
|
|
157
|
-
defaultRowData?: (source?: T) => T;
|
|
158
|
-
enableRadioSelection?: boolean;
|
|
159
|
-
enableAdd?: boolean;
|
|
160
|
-
enableInsert?: boolean;
|
|
161
|
-
enableDelete?: boolean;
|
|
162
|
-
enableCopy?: boolean;
|
|
163
|
-
enableMove?: boolean;
|
|
164
|
-
enablePrint?: boolean;
|
|
165
|
-
printOptions?: PrintWatermarkOptions;
|
|
166
|
-
printPreset?: 'table' | 'form' | 'report';
|
|
167
|
-
printWatermarkText?: string;
|
|
168
|
-
printTargetSelector?: string;
|
|
169
|
-
confirmDelete?: boolean;
|
|
170
|
-
deleteConfirmText?: string;
|
|
171
|
-
feedback?: ComponentFeedback;
|
|
172
|
-
locale?: ComponentLocale;
|
|
173
|
-
onRowChange?: (data: T[]) => void;
|
|
174
|
-
onSelectionChange?: (selectedKey: DataTableRowKey | null, selectedRow: T | null) => void;
|
|
175
|
-
onRowAdd?: (newRow: T) => void;
|
|
176
|
-
onRowDelete?: (deletedRow: T, index: number) => void;
|
|
177
|
-
onRowCopy?: (originalRow: T, newRow: T) => void;
|
|
178
|
-
onRowMove?: (row: T, fromIndex: number, toIndex: number) => void;
|
|
179
|
-
}
|
|
180
|
-
/** 明确业务模型必须由工厂创建完整记录;开放记录保留原有空行兼容入口。 */
|
|
181
|
-
type DynamicRowsOptions<T extends object = DataRecord> = DynamicRowsBaseOptions<T> & (string extends keyof T ? unknown : {
|
|
182
|
-
defaultRowData: (source?: T) => T;
|
|
183
|
-
});
|
|
184
|
-
interface DynamicRowsReturn<T extends object = DataRecord> {
|
|
185
|
-
selectedRowKey: Ref<DataTableRowKey | null>;
|
|
186
|
-
selectedRowData: Ref<T | null>;
|
|
187
|
-
selectedRowIndex: Ref<number>;
|
|
188
|
-
canMoveUp: Ref<boolean>;
|
|
189
|
-
canMoveDown: Ref<boolean>;
|
|
190
|
-
deleteConfirmVisible: Ref<boolean>;
|
|
191
|
-
printLoading: Ref<boolean>;
|
|
192
|
-
printProgress: Ref<number>;
|
|
193
|
-
addRow: () => void;
|
|
194
|
-
insertRow: () => void;
|
|
195
|
-
deleteRow: () => void;
|
|
196
|
-
confirmDelete: () => void;
|
|
197
|
-
copyRow: () => void;
|
|
198
|
-
moveRowUp: () => void;
|
|
199
|
-
moveRowDown: () => void;
|
|
200
|
-
selectRow: (key: DataTableRowKey) => void;
|
|
201
|
-
clearSelection: () => void;
|
|
202
|
-
handlePrint: (elementRef: Ref<HTMLElement | undefined>) => Promise<void>;
|
|
203
|
-
handleDownload: (elementRef: Ref<HTMLElement | undefined>, filename?: string) => Promise<void>;
|
|
204
|
-
handleQuickPrint: (elementRef: Ref<HTMLElement | undefined>) => Promise<void>;
|
|
205
|
-
enhanceColumns: (columns: TableColumn<T>[]) => TableColumn<T>[];
|
|
206
|
-
renderToolbar: (target?: HTMLElement) => VNodeChild;
|
|
207
|
-
renderConfirmModal: () => VNodeChild;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* 表格动态行操作功能组合
|
|
211
|
-
*/
|
|
212
|
-
declare function useDynamicRows<T extends object = DataRecord>(data: Readonly<Ref<T[]>>, ...args: string extends keyof T ? [options?: MaybeRefOrGetter<DynamicRowsOptions<T>>] : [options: MaybeRefOrGetter<DynamicRowsOptions<T>>]): DynamicRowsReturn<T>;
|
|
213
|
-
//#endregion
|
|
214
|
-
//#region src/components/C_Table/composables/useRowDrag.d.ts
|
|
215
|
-
interface RowDragConfig {
|
|
216
|
-
enabled?: boolean;
|
|
217
|
-
/** 拖拽手柄 CSS 选择器(不传则整行可拖) */
|
|
218
|
-
handleSelector?: string;
|
|
219
|
-
/** 动画时长(ms) */
|
|
220
|
-
animationDuration?: number;
|
|
221
|
-
/** 拖拽时 ghost 样式类 */
|
|
222
|
-
ghostClass?: string;
|
|
223
|
-
/** 拖拽中样式类 */
|
|
224
|
-
chosenClass?: string;
|
|
225
|
-
}
|
|
226
|
-
interface UseRowDragOptions<T extends object = DataRecord> {
|
|
227
|
-
/** 数据源(只读即可) */
|
|
228
|
-
data: Ref<T[]> | ComputedRef<T[]>;
|
|
229
|
-
/** 获取行键 */
|
|
230
|
-
rowKey: (row: T) => DataTableRowKey;
|
|
231
|
-
/** 配置 */
|
|
232
|
-
config: MaybeRefOrGetter<RowDragConfig | undefined>;
|
|
233
|
-
/** 数据重排回调(由外部处理数据更新) */
|
|
234
|
-
onReorder?: (newData: T[]) => void;
|
|
235
|
-
/** 排序变更回调 */
|
|
236
|
-
onSort?: (row: T, fromIndex: number, toIndex: number) => void;
|
|
237
|
-
}
|
|
238
|
-
interface UseRowDragReturn {
|
|
239
|
-
/** 初始化拖拽(需在 onMounted 中调用) */
|
|
240
|
-
initRowDrag: (wrapperEl: HTMLElement) => void;
|
|
241
|
-
/** 销毁拖拽实例 */
|
|
242
|
-
destroyRowDrag: () => void;
|
|
243
|
-
/** 是否正在拖拽 */
|
|
244
|
-
isDragging: Ref<boolean>;
|
|
245
|
-
}
|
|
246
|
-
/** 行拖拽排序组合式函数 */
|
|
247
|
-
declare function useRowDrag<T extends object = DataRecord>(options: UseRowDragOptions<T>): UseRowDragReturn;
|
|
248
|
-
//#endregion
|
|
249
|
-
//#region src/components/C_Table/composables/useCrossPageSelection.d.ts
|
|
250
|
-
interface CrossPageSelectionConfig {
|
|
251
|
-
enabled?: boolean;
|
|
252
|
-
/** Maximum selected rows, including previously visited remote pages. */
|
|
253
|
-
maxSelection?: number;
|
|
254
|
-
}
|
|
255
|
-
interface UseCrossPageSelectionOptions<T extends object = DataRecord> {
|
|
256
|
-
/** All local rows, or the loaded page when remote is enabled. */
|
|
257
|
-
allData: Ref<T[]> | ComputedRef<T[]>;
|
|
258
|
-
rowKey: (row: T) => DataTableRowKey;
|
|
259
|
-
config: MaybeRefOrGetter<CrossPageSelectionConfig | undefined>;
|
|
260
|
-
remote?: MaybeRefOrGetter<boolean>;
|
|
261
|
-
childrenKey?: MaybeRefOrGetter<string | undefined>;
|
|
262
|
-
rowCheckable?: (row: T) => boolean;
|
|
263
|
-
onSelectionChange?: (keys: DataTableRowKey[], rows: T[]) => void;
|
|
264
|
-
}
|
|
265
|
-
interface UseCrossPageSelectionReturn<T extends object = DataRecord> {
|
|
266
|
-
selectedKeys: Ref<Set<DataTableRowKey>>;
|
|
267
|
-
selectedCount: ComputedRef<number>;
|
|
268
|
-
getPageCheckedKeys: (pageData: T[]) => DataTableRowKey[];
|
|
269
|
-
handlePageSelectionChange: (keys: DataTableRowKey[], pageData: T[]) => void;
|
|
270
|
-
/** In remote mode, adds the currently loaded page; never claims to select unseen server rows. */
|
|
271
|
-
selectAll: () => void;
|
|
272
|
-
select: (key: DataTableRowKey) => boolean;
|
|
273
|
-
unselect: (key: DataTableRowKey) => void;
|
|
274
|
-
clearAll: () => void;
|
|
275
|
-
getSelectedRows: () => T[];
|
|
276
|
-
isSelected: (key: DataTableRowKey) => boolean;
|
|
277
|
-
}
|
|
278
|
-
/** Preserve selected identities and loaded row snapshots across local or remote pages. */
|
|
279
|
-
declare function useCrossPageSelection<T extends object = DataRecord>(options: UseCrossPageSelectionOptions<T>): UseCrossPageSelectionReturn<T>;
|
|
280
|
-
//#endregion
|
|
281
|
-
//#region src/components/C_Table/composables/useTableGlobalConfig.d.ts
|
|
282
|
-
type FormatterType = 'date' | 'datetime' | 'currency' | 'percent' | 'enum' | 'number';
|
|
283
|
-
interface FormatterConfig {
|
|
284
|
-
/** 日期格式 */
|
|
285
|
-
date?: {
|
|
286
|
-
format?: string;
|
|
287
|
-
};
|
|
288
|
-
/** 日期时间格式 */
|
|
289
|
-
datetime?: {
|
|
290
|
-
format?: string;
|
|
291
|
-
};
|
|
292
|
-
/** 货币格式 */
|
|
293
|
-
currency?: {
|
|
294
|
-
prefix?: string;
|
|
295
|
-
suffix?: string;
|
|
296
|
-
precision?: number;
|
|
297
|
-
};
|
|
298
|
-
/** 百分比格式 */
|
|
299
|
-
percent?: {
|
|
300
|
-
precision?: number;
|
|
301
|
-
suffix?: string;
|
|
302
|
-
};
|
|
303
|
-
/** 数字格式(千分位) */
|
|
304
|
-
number?: {
|
|
305
|
-
precision?: number;
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
/** 列级 formatter 配置 */
|
|
309
|
-
interface ColumnFormatter {
|
|
310
|
-
type: FormatterType;
|
|
311
|
-
/** enum mapping:{ male: '男', female: '女' } */
|
|
312
|
-
mapping?: Record<string, string>;
|
|
313
|
-
/** 自定义格式化函数(优先级最高) */
|
|
314
|
-
fn?: (value: unknown, row: DataRecord) => string;
|
|
315
|
-
/** 覆盖全局格式配置 */
|
|
316
|
-
config?: Record<string, unknown>;
|
|
317
|
-
}
|
|
318
|
-
interface TableGlobalConfig {
|
|
319
|
-
/** 任意 C_Table 配置的应用级默认值。 */
|
|
320
|
-
defaults?: TableConfig;
|
|
321
|
-
/** 表格显示默认值 */
|
|
322
|
-
display?: DisplayConfig;
|
|
323
|
-
/** 默认分页条数 */
|
|
324
|
-
pageSize?: number;
|
|
325
|
-
/** 空状态文案 */
|
|
326
|
-
emptyText?: string;
|
|
327
|
-
/** 全局格式化配置 */
|
|
328
|
-
formatter?: FormatterConfig;
|
|
329
|
-
/** 列配置持久化前缀 */
|
|
330
|
-
persistPrefix?: string;
|
|
331
|
-
/** 默认导出文件名 */
|
|
332
|
-
exportFilename?: string;
|
|
333
|
-
}
|
|
334
|
-
declare const TABLE_GLOBAL_CONFIG_KEY: InjectionKey<TableGlobalConfig>;
|
|
335
|
-
/** 根据 ColumnFormatter 配置格式化单元格值 */
|
|
336
|
-
declare function applyFormatter(value: unknown, row: DataRecord, formatter: ColumnFormatter, globalConfig?: FormatterConfig): string;
|
|
337
|
-
/** 在组件内获取全局配置(自动合并默认值) */
|
|
338
|
-
declare function useTableGlobalConfig(): TableGlobalConfig;
|
|
339
|
-
/** 合并全局配置到 TableConfig(局部 > 全局 > 默认) */
|
|
340
|
-
declare function mergeGlobalConfig(local: TableConfig, global: TableGlobalConfig): TableConfig;
|
|
341
|
-
//#endregion
|
|
342
|
-
//#region src/components/C_Table/composables/useTableExport.d.ts
|
|
343
|
-
interface ExportConfig {
|
|
344
|
-
/** Data scope used by C_Table; source preserves the legacy loaded-source behavior. */
|
|
345
|
-
scope?: 'source' | 'page' | 'selected';
|
|
346
|
-
/** Explicit server-side/full-data export request; invoked only when exporting. */
|
|
347
|
-
requestData?: () => DataRecord[] | Promise<DataRecord[]>;
|
|
348
|
-
/** 导出文件名(不含扩展名) */
|
|
349
|
-
filename?: string;
|
|
350
|
-
/** 导出格式 */
|
|
351
|
-
format?: 'csv' | 'xlsx';
|
|
352
|
-
/** 是否包含表头 */
|
|
353
|
-
includeHeader?: boolean;
|
|
354
|
-
/** 自定义选择导出列(传 key 数组) */
|
|
355
|
-
columnKeys?: string[];
|
|
356
|
-
/** CSV 分隔符 */
|
|
357
|
-
csvSeparator?: string;
|
|
358
|
-
/** 阻止表格软件把用户文本识别为公式,默认开启 */
|
|
359
|
-
preventFormulaInjection?: boolean;
|
|
360
|
-
/** 全局格式化配置(用于 formatter) */
|
|
361
|
-
formatterConfig?: FormatterConfig;
|
|
362
|
-
/** 请求格式不可用并自动降级时的通知。 */
|
|
363
|
-
onFallback?: (requested: 'xlsx', actual: 'csv', cause: unknown) => void;
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* 导出表格数据
|
|
367
|
-
*/
|
|
368
|
-
declare function exportTableData(data: DataRecord[], columns: TableColumn[], config?: ExportConfig): Promise<void>;
|
|
369
|
-
//#endregion
|
|
370
|
-
//#region src/components/C_Table/composables/useTableConfig.d.ts
|
|
371
|
-
/**
|
|
372
|
-
* 可绑定到 C_Table 的 CRUD 对象接口(桥接类型)
|
|
373
|
-
*
|
|
374
|
-
* C_Table 内部会将外部 columns 规范化为自己的 TableColumn。
|
|
375
|
-
* columns 刻意使用 unknown[] 作为跨包边界,避免要求 CRUD 数据源与组件库
|
|
376
|
-
* 共享同一份 TableColumn 声明;直接使用 columns prop 时仍保留完整的强类型校验。
|
|
377
|
-
*/
|
|
378
|
-
interface CrudBinding<T extends object = DataRecord> {
|
|
379
|
-
data: Ref<T[]>;
|
|
380
|
-
loading: Ref<boolean>;
|
|
381
|
-
columns: ComputedRef<readonly unknown[]>;
|
|
382
|
-
/** 提供 save 时 edit 函数只标记保存能力;自定义编辑入口放到 config.actions.edit。 */
|
|
383
|
-
actions?: ComputedRef<SimpleTableActions<T>>;
|
|
384
|
-
pagination?: ComputedRef<PaginationConfig | boolean | undefined>;
|
|
385
|
-
tableRef?: Ref<unknown>;
|
|
386
|
-
save?: (row: T, rowIndex?: number, columnKey?: string) => unknown | Promise<unknown>;
|
|
387
|
-
handleCancel?: () => void;
|
|
388
|
-
handlePaginationChange?: (page: number, pageSize: number) => void;
|
|
389
|
-
handleRowDelete?: (row: T, index?: number) => unknown | Promise<unknown>;
|
|
390
|
-
detail?: {
|
|
391
|
-
show: (row: T) => unknown;
|
|
392
|
-
};
|
|
393
|
-
}
|
|
394
|
-
/** C_Table :config prop 的类型 — 所有功能配置收拢在此 */
|
|
395
|
-
interface TableConfig<T extends object = DataRecord, C = unknown> {
|
|
396
|
-
/** 与 C_Form / C_FormSearch 共用密度;局部 display.size 等显式配置优先。 */
|
|
397
|
-
density?: ComponentDensity;
|
|
398
|
-
/** 组件级反馈适配器;未提供时尝试复用 Naive Provider,再安全降级 */
|
|
399
|
-
feedback?: ComponentFeedback;
|
|
400
|
-
/** 组件级文案与语言覆盖 */
|
|
401
|
-
locale?: ComponentLocale;
|
|
402
|
-
/** 校验缺失/重复行键;默认开启,超大或无状态表格可关闭。 */
|
|
403
|
-
validateRowKeys?: boolean;
|
|
404
|
-
/** 编辑配置 */
|
|
405
|
-
edit?: EditConfig<T> | EditMode | boolean;
|
|
406
|
-
/** 操作按钮 */
|
|
407
|
-
actions?: SimpleTableActions<T>;
|
|
408
|
-
/** 分页配置 */
|
|
409
|
-
pagination?: PaginationConfig | boolean;
|
|
410
|
-
/** 展开行配置 */
|
|
411
|
-
expand?: ExpandConfig$1<T, C> | boolean;
|
|
412
|
-
/** 选择配置 */
|
|
413
|
-
selection?: SelectionConfig$1<T, C> | boolean;
|
|
414
|
-
/** 动态行配置 */
|
|
415
|
-
dynamicRows?: DynamicRowsOptions<T> | (string extends keyof T ? boolean : false);
|
|
416
|
-
/** 工具栏 */
|
|
417
|
-
toolbar?: ToolbarConfig;
|
|
418
|
-
/** 表格显示属性 */
|
|
419
|
-
display?: DisplayConfig;
|
|
420
|
-
/** 虚拟滚动配置(大数据量) */
|
|
421
|
-
virtualScroll?: VirtualScrollConfig | boolean;
|
|
422
|
-
/** 合计行配置(财务场景) */
|
|
423
|
-
summary?: SummaryConfig<T>;
|
|
424
|
-
/** 列拖拽排序 */
|
|
425
|
-
columnDrag?: ColumnDragConfig | boolean;
|
|
426
|
-
/** 树形表格 */
|
|
427
|
-
tree?: TreeConfig | boolean;
|
|
428
|
-
/** 当前页顶层行同层排序;树子行/详情内容不可拖拽,虚拟滚动模式下禁用。 */
|
|
429
|
-
rowDrag?: RowDragConfig | boolean;
|
|
430
|
-
/** 跨页多选 */
|
|
431
|
-
crossPageSelection?: CrossPageSelectionConfig | boolean;
|
|
432
|
-
/** 导出配置 */
|
|
433
|
-
export?: ExportConfig;
|
|
434
|
-
/** 列配置持久化 key(传入即启用 localStorage) */
|
|
435
|
-
persistKey?: string;
|
|
436
|
-
/** 全局格式化配置 */
|
|
437
|
-
formatterConfig?: FormatterConfig;
|
|
438
|
-
/** 错误状态配置 */
|
|
439
|
-
error?: ErrorConfig;
|
|
440
|
-
/** 批量操作配置 */
|
|
441
|
-
batchActions?: BatchActionsConfig<T>;
|
|
442
|
-
}
|
|
443
|
-
interface EditConfig<T extends object = DataRecord> {
|
|
444
|
-
enabled?: boolean;
|
|
445
|
-
mode?: EditMode;
|
|
446
|
-
showRowActions?: boolean;
|
|
447
|
-
modalTitle?: string;
|
|
448
|
-
modalWidth?: number;
|
|
449
|
-
/** 保存前回调;抛出异常会保留编辑态,便于修正或重试 */
|
|
450
|
-
onSave?: (rowData: T, rowIndex: number, columnKey?: string) => unknown;
|
|
451
|
-
/** 取消编辑回调 */
|
|
452
|
-
onCancel?: (rowData: T, rowIndex: number) => unknown;
|
|
453
|
-
/** 编辑或保存失败回调 */
|
|
454
|
-
onError?: (error: unknown) => void;
|
|
455
|
-
}
|
|
456
|
-
interface ExpandConfig$1<T extends object = DataRecord, C = unknown> {
|
|
457
|
-
enabled?: boolean;
|
|
458
|
-
defaultExpandedKeys?: DataTableRowKey[];
|
|
459
|
-
onLoadData?: (row: T) => Promise<C[]> | C[];
|
|
460
|
-
/** 展开数据加载失败回调 */
|
|
461
|
-
onError?: (error: unknown, row: T) => void;
|
|
462
|
-
renderContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
|
|
463
|
-
rowExpandable?: (row: T) => boolean;
|
|
464
|
-
}
|
|
465
|
-
interface SelectionConfig$1<T extends object = DataRecord, C = unknown> {
|
|
466
|
-
enabled?: boolean;
|
|
467
|
-
defaultCheckedKeys?: DataTableRowKey[];
|
|
468
|
-
rowCheckable?: (row: T) => boolean;
|
|
469
|
-
maxSelection?: number;
|
|
470
|
-
childSelection?: {
|
|
471
|
-
enabled?: boolean;
|
|
472
|
-
childRowCheckable?: (childRow: C, parentRow: T) => boolean;
|
|
473
|
-
};
|
|
474
|
-
parentChildLink?: {
|
|
475
|
-
enabled?: boolean;
|
|
476
|
-
mode?: ParentChildLinkMode;
|
|
477
|
-
};
|
|
478
|
-
}
|
|
479
|
-
interface ToolbarConfig {
|
|
480
|
-
/** 是否显示工具栏 */
|
|
481
|
-
show?: boolean;
|
|
482
|
-
/** 是否启用列设置 */
|
|
483
|
-
columnSettings?: boolean;
|
|
484
|
-
/** 左侧业务动作,统一交给 C_ActionBar 渲染。 */
|
|
485
|
-
actions?: ActionItem[];
|
|
486
|
-
/** 右侧业务动作,适合左侧存在标签页或查询条件的场景。 */
|
|
487
|
-
rightActions?: ActionItem[];
|
|
488
|
-
/** 透传给 C_ActionBar 的布局与尺寸配置。 */
|
|
489
|
-
actionBar?: ActionBarConfig;
|
|
490
|
-
}
|
|
491
|
-
interface DisplayConfig {
|
|
492
|
-
striped?: boolean;
|
|
493
|
-
bordered?: boolean;
|
|
494
|
-
singleLine?: boolean;
|
|
495
|
-
size?: 'small' | 'medium' | 'large';
|
|
496
|
-
maxHeight?: number | string;
|
|
497
|
-
scrollX?: number | string;
|
|
498
|
-
columnWidth?: number;
|
|
499
|
-
}
|
|
500
|
-
/** 虚拟滚动配置 */
|
|
501
|
-
interface VirtualScrollConfig {
|
|
502
|
-
enabled?: boolean;
|
|
503
|
-
/** 每行高度(px) */
|
|
504
|
-
itemHeight?: number;
|
|
505
|
-
/** 最大高度(px),用于滚动容器 */
|
|
506
|
-
maxHeight?: number;
|
|
507
|
-
}
|
|
508
|
-
/** 合计行配置 */
|
|
509
|
-
interface SummaryConfig<T extends object = DataRecord> {
|
|
510
|
-
/** 合计行位置 */
|
|
511
|
-
position?: 'top' | 'bottom';
|
|
512
|
-
/** 自定义合计函数,每列返回 { value, colSpan? } */
|
|
513
|
-
render?: (data: T[]) => Record<string, {
|
|
514
|
-
value: string | number;
|
|
515
|
-
colSpan?: number;
|
|
516
|
-
}>;
|
|
517
|
-
}
|
|
518
|
-
/** 列拖拽排序配置 */
|
|
519
|
-
interface ColumnDragConfig {
|
|
520
|
-
enabled?: boolean;
|
|
521
|
-
/** 拖拽手柄类名(默认拖拽头部区域) */
|
|
522
|
-
handleClass?: string;
|
|
523
|
-
/** 拖拽动画时长(ms) */
|
|
524
|
-
animationDuration?: number;
|
|
525
|
-
}
|
|
526
|
-
/** 树形表格配置 */
|
|
527
|
-
interface TreeConfig {
|
|
528
|
-
enabled?: boolean;
|
|
529
|
-
/** 子节点字段名 */
|
|
530
|
-
childrenKey?: string;
|
|
531
|
-
/** 缩进宽度(px) */
|
|
532
|
-
indent?: number;
|
|
533
|
-
/** 默认展开所有 */
|
|
534
|
-
defaultExpandAll?: boolean;
|
|
535
|
-
}
|
|
536
|
-
/** 错误状态配置 */
|
|
537
|
-
interface ErrorConfig {
|
|
538
|
-
/** 是否显示错误状态 */
|
|
539
|
-
show?: boolean;
|
|
540
|
-
/** 错误描述文案 */
|
|
541
|
-
message?: string;
|
|
542
|
-
/** 重试回调 */
|
|
543
|
-
onRetry?: () => unknown;
|
|
544
|
-
}
|
|
545
|
-
/** 批量操作配置 */
|
|
546
|
-
interface BatchActionsConfig<T extends object = DataRecord> {
|
|
547
|
-
enabled?: boolean;
|
|
548
|
-
/** 操作成功后清空选择,默认不清空 */
|
|
549
|
-
clearSelectionOnSuccess?: boolean;
|
|
550
|
-
/** 批量操作失败回调 */
|
|
551
|
-
onError?: (error: unknown, actionKey: string) => void;
|
|
552
|
-
/** 自定义批量操作按钮 */
|
|
553
|
-
actions?: Array<{
|
|
554
|
-
key: string;
|
|
555
|
-
label: string;
|
|
556
|
-
icon?: string;
|
|
557
|
-
type?: string;
|
|
558
|
-
onClick: (selectedKeys: DataTableRowKey[], selectedRows: T[]) => unknown;
|
|
559
|
-
}>;
|
|
560
|
-
}
|
|
561
|
-
interface ResolvedConfig {
|
|
562
|
-
density: ComponentDensity | undefined;
|
|
563
|
-
controlSize: 'small' | 'medium' | 'large';
|
|
564
|
-
feedback: ComponentFeedback | undefined;
|
|
565
|
-
locale: ComponentLocale | undefined;
|
|
566
|
-
editable: boolean;
|
|
567
|
-
editMode: EditMode;
|
|
568
|
-
showRowActions: boolean;
|
|
569
|
-
modalTitle: string;
|
|
570
|
-
modalWidth: number;
|
|
571
|
-
onEditSave: EditConfig['onSave'] | undefined;
|
|
572
|
-
onEditCancel: EditConfig['onCancel'] | undefined;
|
|
573
|
-
onEditError: EditConfig['onError'] | undefined;
|
|
574
|
-
expandable: boolean;
|
|
575
|
-
defaultExpandedKeys: DataTableRowKey[] | undefined;
|
|
576
|
-
onLoadExpandData: ((row: DataRecord) => Promise<unknown[]> | unknown[]) | undefined;
|
|
577
|
-
onExpandError: ((error: unknown, row: DataRecord) => void) | undefined;
|
|
578
|
-
renderExpandContent: ((row: DataRecord, expandData: unknown[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild) | undefined;
|
|
579
|
-
rowExpandable: ((row: DataRecord) => boolean) | undefined;
|
|
580
|
-
enableSelection: boolean;
|
|
581
|
-
defaultCheckedKeys: DataTableRowKey[] | undefined;
|
|
582
|
-
rowCheckable: ((row: DataRecord) => boolean) | undefined;
|
|
583
|
-
maxSelection: number | undefined;
|
|
584
|
-
enableChildSelection: boolean;
|
|
585
|
-
childRowCheckable: ((childRow: unknown, parentRow: DataRecord) => boolean) | undefined;
|
|
586
|
-
enableParentChildLink: boolean;
|
|
587
|
-
parentChildLinkMode: ParentChildLinkMode;
|
|
588
|
-
pagination: PaginationConfig | null;
|
|
589
|
-
dynamicRows: DynamicRowsOptions<DataRecord> | undefined;
|
|
590
|
-
striped: boolean;
|
|
591
|
-
bordered: boolean;
|
|
592
|
-
singleLine: boolean;
|
|
593
|
-
size: 'small' | 'medium' | 'large';
|
|
594
|
-
maxHeight: number | string | undefined;
|
|
595
|
-
scrollX: number | string | undefined;
|
|
596
|
-
columnWidth: number;
|
|
597
|
-
showToolbar: boolean;
|
|
598
|
-
enableColumnSettings: boolean;
|
|
599
|
-
toolbarActions: ActionItem[];
|
|
600
|
-
toolbarRightActions: ActionItem[];
|
|
601
|
-
toolbarActionBarConfig: ActionBarConfig;
|
|
602
|
-
/** 虚拟滚动 */
|
|
603
|
-
virtualScroll: boolean;
|
|
604
|
-
virtualItemHeight: number;
|
|
605
|
-
virtualMaxHeight: number;
|
|
606
|
-
/** 合计行 */
|
|
607
|
-
summaryPosition: 'top' | 'bottom' | undefined;
|
|
608
|
-
summaryRender: ((data: DataRecord[]) => Record<string, {
|
|
609
|
-
value: string | number;
|
|
610
|
-
colSpan?: number;
|
|
611
|
-
}>) | undefined;
|
|
612
|
-
/** 列拖拽 */
|
|
613
|
-
enableColumnDrag: boolean;
|
|
614
|
-
columnDragHandleClass: string | undefined;
|
|
615
|
-
columnDragAnimationDuration: number;
|
|
616
|
-
/** 树形表格 */
|
|
617
|
-
treeEnabled: boolean;
|
|
618
|
-
treeChildrenKey: string;
|
|
619
|
-
treeIndent: number;
|
|
620
|
-
treeDefaultExpandAll: boolean;
|
|
621
|
-
/** 行拖拽 */
|
|
622
|
-
rowDrag: RowDragConfig | undefined;
|
|
623
|
-
/** 跨页多选 */
|
|
624
|
-
crossPageSelection: CrossPageSelectionConfig | undefined;
|
|
625
|
-
/** 导出配置 */
|
|
626
|
-
exportConfig: ExportConfig | undefined;
|
|
627
|
-
/** 列持久化 key */
|
|
628
|
-
persistKey: string | undefined;
|
|
629
|
-
/** 全局格式化配置 */
|
|
630
|
-
formatterConfig: FormatterConfig | undefined;
|
|
631
|
-
/** 错误状态 */
|
|
632
|
-
error: ErrorConfig | undefined;
|
|
633
|
-
/** 批量操作 */
|
|
634
|
-
batchActions: BatchActionsConfig | undefined;
|
|
635
|
-
}
|
|
636
|
-
/**
|
|
637
|
-
* 将 config 单一对象解析为内部扁平化配置
|
|
638
|
-
*/
|
|
639
|
-
declare function resolveConfig(config?: TableConfig): ResolvedConfig;
|
|
640
|
-
declare const createEditModeChecker: (config: ResolvedConfig) => {
|
|
641
|
-
isNonEditable: (column: TableColumn) => boolean;
|
|
642
|
-
isRowEditMode: () => boolean;
|
|
643
|
-
isCellEditMode: () => boolean;
|
|
644
|
-
};
|
|
645
|
-
//#endregion
|
|
646
|
-
//#region src/components/C_Table/types.d.ts
|
|
647
|
-
type RefLike<T> = {
|
|
648
|
-
value: T;
|
|
649
|
-
} | T;
|
|
650
|
-
type MaybeRefLike<T> = RefLike<T> | MaybeRef<T>;
|
|
651
|
-
type DataRecord = Record<string, unknown>;
|
|
652
|
-
type TableRowKey<T extends object = DataRecord> = Extract<keyof T, string> | ((row: T) => DataTableRowKey);
|
|
653
|
-
interface TableRowKeyIssue<T extends object = DataRecord> {
|
|
654
|
-
type: 'missing' | 'duplicate' | 'error';
|
|
655
|
-
row: T;
|
|
656
|
-
index: number;
|
|
657
|
-
key?: DataTableRowKey;
|
|
658
|
-
firstIndex?: number;
|
|
659
|
-
cause?: unknown;
|
|
660
|
-
}
|
|
661
|
-
type EditMode = 'row' | 'cell' | 'both' | 'modal' | 'none';
|
|
662
|
-
type EditType = 'input' | 'textarea' | 'select' | 'date' | 'number' | 'switch' | 'email' | 'mobile';
|
|
663
|
-
type ButtonType$1 = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error';
|
|
664
|
-
type ParentChildLinkMode = 'strict' | 'loose';
|
|
665
|
-
interface PaginationConfig {
|
|
666
|
-
enabled?: boolean;
|
|
667
|
-
page?: number;
|
|
668
|
-
pageSize?: number;
|
|
669
|
-
total?: number;
|
|
670
|
-
showSizePicker?: boolean;
|
|
671
|
-
showQuickJumper?: boolean;
|
|
672
|
-
pageSizes?: number[];
|
|
673
|
-
simple?: boolean;
|
|
674
|
-
size?: 'small' | 'medium' | 'large';
|
|
675
|
-
remote?: boolean;
|
|
676
|
-
}
|
|
677
|
-
/** API 函数类型 */
|
|
678
|
-
type ApiFunction<T extends object = DataRecord> = (row: T, index: number) => unknown | Promise<unknown>;
|
|
679
|
-
/** 渲染函数类型 */
|
|
680
|
-
type RenderFunction<T extends object = DataRecord> = (row: T, index: number) => VNodeChild;
|
|
681
|
-
/** 自定义操作按钮配置 */
|
|
682
|
-
interface CustomAction<T extends object = DataRecord> {
|
|
683
|
-
/** 按钮唯一键 */
|
|
684
|
-
key: string;
|
|
685
|
-
/** 按钮显示文本 */
|
|
686
|
-
label: string | ((row: T, index: number) => string);
|
|
687
|
-
/** 按钮图标 */
|
|
688
|
-
icon: string | ((row: T, index: number) => string);
|
|
689
|
-
/** 按钮类型样式 */
|
|
690
|
-
type?: ButtonType$1 | ((row: T, index: number) => ButtonType$1);
|
|
691
|
-
/** 点击事件处理器 */
|
|
692
|
-
onClick: (row: T, index: number) => unknown;
|
|
693
|
-
/** 条件显示函数(可选) */
|
|
694
|
-
show?: (row: T, index: number) => boolean;
|
|
695
|
-
/** 是否禁用(可选) */
|
|
696
|
-
disabled?: (row: T, index: number) => boolean;
|
|
697
|
-
/** 按钮提示文本(可选) */
|
|
698
|
-
tooltip?: string;
|
|
699
|
-
}
|
|
700
|
-
/** 简化的操作配置 - 二元法则 */
|
|
701
|
-
interface SimpleTableActions<T extends object = DataRecord> {
|
|
702
|
-
/** 编辑操作 - 直接传入函数 */
|
|
703
|
-
edit?: false | ApiFunction<T>;
|
|
704
|
-
/** 删除操作 - 直接传入函数 */
|
|
705
|
-
delete?: false | ApiFunction<T>;
|
|
706
|
-
/** 详情操作 - 直接传入函数 */
|
|
707
|
-
detail?: false | ApiFunction<T>;
|
|
708
|
-
/** 自定义操作按钮 */
|
|
709
|
-
custom?: CustomAction<T>[];
|
|
710
|
-
/** 完全自定义渲染 - 10%场景 */
|
|
711
|
-
render?: RenderFunction<T>;
|
|
712
|
-
}
|
|
713
|
-
/** Minimal edit-state contract consumed by the action renderer. */
|
|
714
|
-
interface TableActionsManager<T extends object = DataRecord> {
|
|
715
|
-
editStates: {
|
|
716
|
-
modalEdit: {
|
|
717
|
-
startEdit: (rowKey: DataTableRowKey, sourceData?: T) => boolean | void;
|
|
718
|
-
};
|
|
719
|
-
rowEdit: {
|
|
720
|
-
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
721
|
-
startEditRow: (rowKey: DataTableRowKey) => boolean | void;
|
|
722
|
-
cancelEditRow: () => void | Promise<void>;
|
|
723
|
-
saveEditRow: () => Promise<unknown>;
|
|
724
|
-
};
|
|
725
|
-
};
|
|
726
|
-
}
|
|
727
|
-
/** useTableActions Hook 选项类型 */
|
|
728
|
-
interface UseTableActionsOptions<T extends object = DataRecord> {
|
|
729
|
-
/** 操作配置 */
|
|
730
|
-
actions: Ref<SimpleTableActions<T>> | ComputedRef<SimpleTableActions<T>>;
|
|
731
|
-
/** 表格配置 */
|
|
732
|
-
config: Ref<{
|
|
733
|
-
editable: boolean;
|
|
734
|
-
editMode: string;
|
|
735
|
-
controlSize?: 'small' | 'medium' | 'large';
|
|
736
|
-
feedback?: ComponentFeedback;
|
|
737
|
-
locale?: ComponentLocale;
|
|
738
|
-
}> | ComputedRef<{
|
|
739
|
-
editable: boolean;
|
|
740
|
-
editMode: string;
|
|
741
|
-
controlSize?: 'small' | 'medium' | 'large';
|
|
742
|
-
feedback?: ComponentFeedback;
|
|
743
|
-
locale?: ComponentLocale;
|
|
744
|
-
}>;
|
|
745
|
-
/** 表格管理器 */
|
|
746
|
-
tableManager: TableActionsManager<T>;
|
|
747
|
-
/** 行键获取函数 */
|
|
748
|
-
rowKey: (row: T) => DataTableRowKey;
|
|
749
|
-
/** 事件发射器 */
|
|
750
|
-
/** Deletion action completion notification; kept separate from CRUD data mutation. */
|
|
751
|
-
onRowDeleted?: (row: T, index: number) => void;
|
|
752
|
-
/** A bound CRUD action may already report success or failure to the user. */
|
|
753
|
-
isDeleteFeedbackHandled?: (action: ApiFunction<T>) => boolean;
|
|
754
|
-
/** 查看详情回调 */
|
|
755
|
-
onViewDetail?: (data: T) => void;
|
|
756
|
-
}
|
|
757
|
-
/** useTableActions Hook 返回类型 */
|
|
758
|
-
interface UseTableActionsReturn<T extends object = DataRecord> {
|
|
759
|
-
/** 渲染操作列 */
|
|
760
|
-
renderActions: (rowData: T, rowIndex: number) => VNodeChild;
|
|
761
|
-
/** 检查操作是否启用 */
|
|
762
|
-
isActionEnabled: (actionKey: 'edit' | 'delete' | 'detail') => boolean;
|
|
763
|
-
}
|
|
764
|
-
interface BaseOption {
|
|
765
|
-
label: string;
|
|
766
|
-
value: string | number;
|
|
767
|
-
disabled?: boolean;
|
|
768
|
-
}
|
|
769
|
-
interface BaseConfig<T extends object = DataRecord> {
|
|
770
|
-
enabled?: boolean;
|
|
771
|
-
rowCheckable?: (row: T) => boolean;
|
|
772
|
-
}
|
|
773
|
-
type SelectOption = BaseOption;
|
|
774
|
-
interface EditProps {
|
|
775
|
-
min?: number;
|
|
776
|
-
max?: number;
|
|
777
|
-
step?: number;
|
|
778
|
-
showButton?: boolean;
|
|
779
|
-
type?: string;
|
|
780
|
-
rows?: number;
|
|
781
|
-
placeholder?: string;
|
|
782
|
-
options?: SelectOption[];
|
|
783
|
-
rules?: FormItemRule[];
|
|
784
|
-
format?: string;
|
|
785
|
-
valueFormat?: string;
|
|
786
|
-
clearable?: boolean;
|
|
787
|
-
disabled?: boolean;
|
|
788
|
-
readonly?: boolean;
|
|
789
|
-
}
|
|
790
|
-
/**
|
|
791
|
-
* ================= 列类型系统 =================
|
|
792
|
-
* 说明:
|
|
793
|
-
* - BaseTableColumn:去除了 naive 的 key/title/render,提供扩展位
|
|
794
|
-
* - NormalTableColumn:普通数据列,必须有 key + title
|
|
795
|
-
* - BuiltInTableColumn:内置列(selection/expand),不需要 key/title
|
|
796
|
-
* - TableColumn:以上二者联合
|
|
797
|
-
*/
|
|
798
|
-
interface BaseTableColumn<T extends object = DataRecord> extends Omit<DataTableBaseColumn<T>, 'key' | 'title' | 'render' | 'type'> {
|
|
799
|
-
key?: DataTableRowKey;
|
|
800
|
-
title?: string;
|
|
801
|
-
visible?: boolean;
|
|
802
|
-
editable?: boolean;
|
|
803
|
-
required?: boolean;
|
|
804
|
-
editType?: EditType;
|
|
805
|
-
editProps?: EditProps;
|
|
806
|
-
editRender?: (value: unknown, rowData: T, rowIndex: number, context: {
|
|
807
|
-
onUpdate: (value: unknown) => void;
|
|
808
|
-
}) => VNodeChild;
|
|
809
|
-
render?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
810
|
-
/** 声明式格式化器(优先级低于 render) */
|
|
811
|
-
formatter?: ColumnFormatter;
|
|
812
|
-
fixed?: 'left' | 'right';
|
|
813
|
-
resizable?: boolean;
|
|
814
|
-
minWidth?: number;
|
|
815
|
-
maxWidth?: number;
|
|
816
|
-
}
|
|
817
|
-
interface NormalTableColumn<T extends object = DataRecord> extends BaseTableColumn<T> {
|
|
818
|
-
type?: never;
|
|
819
|
-
key: Extract<keyof T, DataTableRowKey> | DataTableRowKey;
|
|
820
|
-
title: string;
|
|
821
|
-
}
|
|
822
|
-
interface BuiltInTableColumn<T extends object = DataRecord> extends BaseTableColumn<T> {
|
|
823
|
-
/** 内置列类型:无需 key / title */
|
|
824
|
-
type: 'selection' | 'expand' | 'index';
|
|
825
|
-
/** 原生选择列禁用判定;与 config.selection.rowCheckable 一起生效。 */
|
|
826
|
-
disabled?: (row: T) => boolean;
|
|
827
|
-
/** 原生选择列是否多选;maxSelection=1 时仍使用单选。 */
|
|
828
|
-
multiple?: boolean;
|
|
829
|
-
/** 原生展开列判定;与 config.expand.rowExpandable 一起生效。 */
|
|
830
|
-
expandable?: (row: T) => boolean;
|
|
831
|
-
/** 展开行渲染函数(仅当 type = expand 时有效) */
|
|
832
|
-
renderExpand?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
833
|
-
}
|
|
834
|
-
type TableColumn<T extends object = DataRecord> = NormalTableColumn<T> | BuiltInTableColumn<T>;
|
|
835
|
-
type StrictTableColumn<T extends object> = (Omit<NormalTableColumn<T>, 'key'> & {
|
|
836
|
-
key: Extract<keyof T, string>;
|
|
837
|
-
}) | BuiltInTableColumn<T>;
|
|
838
|
-
interface ChildSelectionState {
|
|
839
|
-
selectedKeys: DataTableRowKey[];
|
|
840
|
-
isAllChecked: boolean;
|
|
841
|
-
selectAll: () => void;
|
|
842
|
-
clearAll: () => void;
|
|
843
|
-
}
|
|
844
|
-
interface ExpandConfig<T extends object = DataRecord, C = DataRecord> {
|
|
845
|
-
onLoadData?: (row: T) => Promise<C[]> | C[];
|
|
846
|
-
onError?: (error: unknown, row: T) => void;
|
|
847
|
-
renderContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
|
|
848
|
-
rowExpandable?: (row: T) => boolean;
|
|
849
|
-
}
|
|
850
|
-
interface SelectionConfig<T extends object = DataRecord, C = DataRecord> extends BaseConfig<T> {
|
|
851
|
-
enableSelection?: boolean;
|
|
852
|
-
defaultCheckedKeys?: DataTableRowKey[];
|
|
853
|
-
maxSelection?: number;
|
|
854
|
-
enableChildSelection?: boolean;
|
|
855
|
-
childRowCheckable?: (childRow: C, parentRow: T) => boolean;
|
|
856
|
-
enableParentChildLink?: boolean;
|
|
857
|
-
parentChildLinkMode?: ParentChildLinkMode;
|
|
858
|
-
}
|
|
859
|
-
interface TableDisplayProps {
|
|
860
|
-
maxHeight?: number | string;
|
|
861
|
-
minHeight?: number | string;
|
|
862
|
-
scrollX?: number | string;
|
|
863
|
-
striped?: boolean;
|
|
864
|
-
bordered?: boolean;
|
|
865
|
-
singleLine?: boolean;
|
|
866
|
-
size?: 'small' | 'medium' | 'large';
|
|
867
|
-
}
|
|
868
|
-
/** 组件声明的实际属性;与 UI 壳共用,避免旧配置重新混入主契约。 */
|
|
869
|
-
interface TableRuntimeProps<T extends object = DataRecord, C = unknown> {
|
|
870
|
-
/** CRUD 模式自动提供列和数据,可省略。 */
|
|
871
|
-
columns?: TableColumn<T>[];
|
|
872
|
-
data?: MaybeRefLike<T[]>;
|
|
873
|
-
loading?: MaybeRefLike<boolean>;
|
|
874
|
-
rowKey?: TableRowKey<T>;
|
|
875
|
-
/** 功能配置的统一入口。 */
|
|
876
|
-
config?: TableConfig<T, C>;
|
|
877
|
-
/** CRUD 模式自动提供 columns / data / loading,可省略对应属性。 */
|
|
878
|
-
crud?: CrudBinding<T>;
|
|
879
|
-
/** 原生分页入口;声明后优先于 config.pagination。 */
|
|
880
|
-
pagination?: PaginationProps | false;
|
|
881
|
-
remote?: boolean;
|
|
882
|
-
virtualScrollX?: boolean;
|
|
883
|
-
/** 根容器 class,原生 class/style 仍转发到内部表格。 */
|
|
884
|
-
wrapperClass?: vue.HTMLAttributes['class'];
|
|
885
|
-
/** 填满确定高度的容器,保留工具栏和分页空间。 */
|
|
886
|
-
flexHeight?: boolean;
|
|
887
|
-
}
|
|
888
|
-
/** 事件监听与组件共用同一份事件参数,避免将有效监听器误当作旧功能配置。 */
|
|
889
|
-
type TableListeners<T extends object, C> = { [E in keyof TableEmits<T, C> as `on${Capitalize<E>}`]?: (...args: TableEmits<T, C>[E]) => unknown };
|
|
890
|
-
/** 业务功能统一使用 config;有效的原生显示属性继续由 $attrs 透传。 */
|
|
891
|
-
type TableProps<T extends object = DataRecord, C = unknown> = TableRuntimeProps<T, C> & Omit<TableDisplayProps, 'maxHeight' | 'scrollX'> & TableListeners<T, C>;
|
|
892
|
-
interface TableExpandEvents<T extends object = DataRecord> {
|
|
893
|
-
'expand-change': [expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean];
|
|
894
|
-
}
|
|
895
|
-
interface TableSelectionEvents<T extends object = DataRecord, C = DataRecord> {
|
|
896
|
-
'selection-change': [checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>];
|
|
897
|
-
'child-selection-change': [parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]];
|
|
898
|
-
'parent-child-link-change': [parentKey: DataTableRowKey, shouldSelect: boolean];
|
|
899
|
-
}
|
|
900
|
-
interface TableEditEvents<T extends object = DataRecord> {
|
|
901
|
-
'update:data': [data: T[]];
|
|
902
|
-
save: [rowData: T, rowIndex: number, columnKey?: string];
|
|
903
|
-
cancel: [rowData: T, rowIndex: number];
|
|
904
|
-
'edit-error': [error: unknown];
|
|
905
|
-
}
|
|
906
|
-
interface TableEmits<T extends object = DataRecord, C = DataRecord> extends TableExpandEvents<T>, TableSelectionEvents<T, C>, TableEditEvents<T> {
|
|
907
|
-
'pagination-change': [page: number, pageSize: number];
|
|
908
|
-
'row-delete': [deletedRow: T, index: number];
|
|
909
|
-
'batch-action-error': [error: unknown, actionKey: string];
|
|
910
|
-
'row-key-error': [issues: TableRowKeyIssue<T>[]];
|
|
911
|
-
'row-add': [newRow: T];
|
|
912
|
-
'row-copy': [originalRow: T, newRow: T];
|
|
913
|
-
'row-move': [row: T, fromIndex: number, toIndex: number];
|
|
914
|
-
'row-selection-change': [selectedKey: DataTableRowKey | null, selectedRow: T | null];
|
|
915
|
-
'view-detail': [data: T];
|
|
916
|
-
'column-change': [columns: TableColumn<T>[]];
|
|
917
|
-
}
|
|
918
|
-
interface TableEditMethods<T extends object = DataRecord> {
|
|
919
|
-
startEdit: (rowKey: DataTableRowKey, columnKey?: string) => void;
|
|
920
|
-
cancelEdit: () => void;
|
|
921
|
-
saveEdit: () => Promise<void>;
|
|
922
|
-
isEditing: (rowKey: DataTableRowKey, columnKey?: string) => boolean;
|
|
923
|
-
getEditingData: () => T | null;
|
|
924
|
-
}
|
|
925
|
-
interface TableExpandMethods {
|
|
926
|
-
expandRow: (rowKey: DataTableRowKey) => Promise<void>;
|
|
927
|
-
collapseRow: (rowKey: DataTableRowKey) => void;
|
|
928
|
-
toggleExpand: (rowKey: DataTableRowKey) => Promise<void>;
|
|
929
|
-
expandAll: () => Promise<void>;
|
|
930
|
-
collapseAll: () => void;
|
|
931
|
-
isExpanded: (rowKey: DataTableRowKey) => boolean;
|
|
932
|
-
retryExpand: (rowKey: DataTableRowKey) => Promise<void>;
|
|
933
|
-
invalidateExpand: (rowKey?: DataTableRowKey) => void;
|
|
934
|
-
}
|
|
935
|
-
interface TableSelectionMethods<T extends object = DataRecord, C = DataRecord> {
|
|
936
|
-
selectRow: (rowKey: DataTableRowKey) => boolean | void;
|
|
937
|
-
unselectRow: (rowKey: DataTableRowKey) => void;
|
|
938
|
-
selectAll: () => void;
|
|
939
|
-
clearSelection: () => void;
|
|
940
|
-
isRowSelected: (rowKey: DataTableRowKey) => boolean;
|
|
941
|
-
getSelectedRows: () => T[];
|
|
942
|
-
selectChildRow: (parentKey: DataTableRowKey, childKey: DataTableRowKey) => void;
|
|
943
|
-
unselectChildRow: (parentKey: DataTableRowKey, childKey: DataTableRowKey) => void;
|
|
944
|
-
selectAllChildren: (parentKey: DataTableRowKey) => void;
|
|
945
|
-
clearChildrenSelection: (parentKey: DataTableRowKey) => void;
|
|
946
|
-
getChildSelectedRows: (parentKey: DataTableRowKey) => C[];
|
|
947
|
-
clearAllSelections: () => void;
|
|
948
|
-
}
|
|
949
|
-
interface TableDynamicRowsMethods<T extends object = DataRecord> {
|
|
950
|
-
addRow: () => void;
|
|
951
|
-
insertRow: () => void;
|
|
952
|
-
deleteRow: () => void;
|
|
953
|
-
copyRow: () => void;
|
|
954
|
-
moveRowUp: () => void;
|
|
955
|
-
moveRowDown: () => void;
|
|
956
|
-
clearRowSelection: () => void;
|
|
957
|
-
getSelectedRowData: () => T | null;
|
|
958
|
-
printTable: (elementRef?: HTMLElement) => Promise<void>;
|
|
959
|
-
downloadTableScreenshot: (elementRef?: HTMLElement, filename?: string) => Promise<void>;
|
|
960
|
-
}
|
|
961
|
-
interface TablePaginationMethods {
|
|
962
|
-
resetToFirstPage: () => void;
|
|
963
|
-
getTotalPages: () => number;
|
|
964
|
-
}
|
|
965
|
-
/** 高级兼容入口的稳定契约;业务行类型与顶层实例保持一致。 */
|
|
966
|
-
interface TableManagerApi<T extends object = DataRecord, C = DataRecord> {
|
|
967
|
-
edit: {
|
|
968
|
-
start: TableEditMethods<T>['startEdit'];
|
|
969
|
-
cancel: TableEditMethods<T>['cancelEdit'];
|
|
970
|
-
save: TableEditMethods<T>['saveEdit'];
|
|
971
|
-
isEditing: TableEditMethods<T>['isEditing'];
|
|
972
|
-
getEditingData: () => T | null | undefined;
|
|
973
|
-
};
|
|
974
|
-
expand: {
|
|
975
|
-
row: TableExpandMethods['expandRow'];
|
|
976
|
-
collapse: TableExpandMethods['collapseRow'];
|
|
977
|
-
toggle: TableExpandMethods['toggleExpand'];
|
|
978
|
-
all: TableExpandMethods['expandAll'];
|
|
979
|
-
collapseAll: TableExpandMethods['collapseAll'];
|
|
980
|
-
isExpanded: TableExpandMethods['isExpanded'];
|
|
981
|
-
};
|
|
982
|
-
selection: {
|
|
983
|
-
select: TableSelectionMethods<T, C>['selectRow'];
|
|
984
|
-
unselect: TableSelectionMethods<T, C>['unselectRow'];
|
|
985
|
-
all: TableSelectionMethods<T, C>['selectAll'];
|
|
986
|
-
clear: TableSelectionMethods<T, C>['clearSelection'];
|
|
987
|
-
isSelected: TableSelectionMethods<T, C>['isRowSelected'];
|
|
988
|
-
getSelected: TableSelectionMethods<T, C>['getSelectedRows'];
|
|
989
|
-
};
|
|
990
|
-
childSelection: {
|
|
991
|
-
select: TableSelectionMethods<T, C>['selectChildRow'];
|
|
992
|
-
unselect: TableSelectionMethods<T, C>['unselectChildRow'];
|
|
993
|
-
selectAll: TableSelectionMethods<T, C>['selectAllChildren'];
|
|
994
|
-
clear: TableSelectionMethods<T, C>['clearChildrenSelection'];
|
|
995
|
-
getSelected: TableSelectionMethods<T, C>['getChildSelectedRows'];
|
|
996
|
-
};
|
|
997
|
-
dynamicRows: {
|
|
998
|
-
add: TableDynamicRowsMethods<T>['addRow'];
|
|
999
|
-
insert: TableDynamicRowsMethods<T>['insertRow'];
|
|
1000
|
-
delete: TableDynamicRowsMethods<T>['deleteRow'];
|
|
1001
|
-
copy: TableDynamicRowsMethods<T>['copyRow'];
|
|
1002
|
-
moveUp: TableDynamicRowsMethods<T>['moveRowUp'];
|
|
1003
|
-
moveDown: TableDynamicRowsMethods<T>['moveRowDown'];
|
|
1004
|
-
clearSelection: TableDynamicRowsMethods<T>['clearRowSelection'];
|
|
1005
|
-
getSelected: TableDynamicRowsMethods<T>['getSelectedRowData'];
|
|
1006
|
-
print: TableDynamicRowsMethods<T>['printTable'];
|
|
1007
|
-
download: TableDynamicRowsMethods<T>['downloadTableScreenshot'];
|
|
1008
|
-
};
|
|
1009
|
-
clearAllSelections: TableSelectionMethods<T, C>['clearAllSelections'];
|
|
1010
|
-
}
|
|
1011
|
-
interface TableInstance<T extends object = DataRecord, C = DataRecord> extends TableEditMethods<T>, TableExpandMethods, TableSelectionMethods<T, C>, TableDynamicRowsMethods<T>, TablePaginationMethods {
|
|
1012
|
-
exportData: () => Promise<void>;
|
|
1013
|
-
/** 高级兼容入口;常规操作优先使用实例上的选择、展开和编辑方法。 */
|
|
1014
|
-
getManager: () => TableManagerApi<T, C>;
|
|
1015
|
-
/** 此嵌套对象中的 Ref 保持响应式,读取时使用 .value。 */
|
|
1016
|
-
crossPageSelection: Pick<UseCrossPageSelectionReturn<T>, 'selectedKeys' | 'selectedCount' | 'select' | 'unselect' | 'selectAll' | 'clearAll' | 'getSelectedRows'> & {
|
|
1017
|
-
enabled: ComputedRef<boolean>;
|
|
1018
|
-
};
|
|
1019
|
-
}
|
|
1020
|
-
interface UseTableExpandOptions<T extends object = DataRecord, C = DataRecord> extends ExpandConfig<T, C>, SelectionConfig<T, C> {
|
|
1021
|
-
data: Ref<T[]> | ComputedRef<T[]>;
|
|
1022
|
-
rowKey: (row: T) => DataTableRowKey;
|
|
1023
|
-
childRowKey?: (child: C) => DataTableRowKey;
|
|
1024
|
-
/** Native tree children field; omitted for flat/detail-expansion tables. */
|
|
1025
|
-
childrenKey?: string;
|
|
1026
|
-
locale?: ComponentLocale;
|
|
1027
|
-
/** 展开数据等待时的加载内容,C_Table 内置统一 SVG;独立引擎可按需提供。 */
|
|
1028
|
-
renderLoading?: () => VNodeChild;
|
|
1029
|
-
defaultExpandedKeys?: DataTableRowKey[];
|
|
1030
|
-
onExpandChange?: (expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean) => void;
|
|
1031
|
-
onSelectionChange?: (checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>) => void;
|
|
1032
|
-
onChildSelectionChange?: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => void;
|
|
1033
|
-
}
|
|
1034
|
-
interface UseTableExpandReturn<T extends object = DataRecord, C = DataRecord> {
|
|
1035
|
-
expandedKeys: Ref<DataTableRowKey[]>;
|
|
1036
|
-
checkedKeys: Ref<DataTableRowKey[]>;
|
|
1037
|
-
childSelections: Ref<Map<DataTableRowKey, DataTableRowKey[]>>;
|
|
1038
|
-
expandDataMap: Ref<Map<DataTableRowKey, C[]>>;
|
|
1039
|
-
loadingMap: Ref<Map<DataTableRowKey, boolean>>;
|
|
1040
|
-
errorMap: Ref<Map<DataTableRowKey, unknown>>;
|
|
1041
|
-
retryExpand: (key: DataTableRowKey) => Promise<void>;
|
|
1042
|
-
invalidateExpand: (key?: DataTableRowKey) => void;
|
|
1043
|
-
selectedRowsCount: ComputedRef<number>;
|
|
1044
|
-
totalChildSelections: ComputedRef<number>;
|
|
1045
|
-
expandAll: () => Promise<void>;
|
|
1046
|
-
collapseAll: () => void;
|
|
1047
|
-
expandRow: (key: DataTableRowKey) => Promise<void>;
|
|
1048
|
-
handleExpandChange: (keys: DataTableRowKey[]) => void;
|
|
1049
|
-
selectAll: () => void;
|
|
1050
|
-
clearSelection: () => void;
|
|
1051
|
-
clearAllSelections: () => void;
|
|
1052
|
-
handleSelectionChange: (keys: DataTableRowKey[]) => void;
|
|
1053
|
-
getTableColumns: (originalColumns: TableColumn<T>[]) => unknown[];
|
|
1054
|
-
}
|
|
1055
|
-
/** 行操作按钮配置 */
|
|
1056
|
-
interface RowAction<T extends object = DataRecord> {
|
|
1057
|
-
label: string;
|
|
1058
|
-
icon?: string;
|
|
1059
|
-
type?: ButtonType$1;
|
|
1060
|
-
disabled?: boolean | ((row: T, index: number) => boolean);
|
|
1061
|
-
show?: boolean | ((row: T, index: number) => boolean);
|
|
1062
|
-
onClick?: (row: T, index: number) => unknown;
|
|
1063
|
-
tooltip?: string;
|
|
1064
|
-
}
|
|
1065
|
-
/**
|
|
1066
|
-
* 展平 TableColumn 联合类型以便直接访问 key/title/visible 等属性。
|
|
1067
|
-
* 各 composable 共用此类型,避免重复定义。
|
|
1068
|
-
*/
|
|
1069
|
-
type ColumnWithKey = TableColumn & {
|
|
1070
|
-
key?: string;
|
|
1071
|
-
title?: string;
|
|
1072
|
-
visible?: boolean;
|
|
1073
|
-
width?: number | string;
|
|
1074
|
-
align?: string;
|
|
1075
|
-
titleAlign?: string;
|
|
1076
|
-
formatter?: ColumnFormatter;
|
|
1077
|
-
};
|
|
1078
|
-
//#endregion
|
|
1079
|
-
//#region src/components/C_Table/index.vue.d.ts
|
|
1080
|
-
declare const __VLS_export$1: <T extends object = DataRecord, C = unknown>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$1<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
1081
|
-
props: vue.PublicProps & __VLS_PrettifyLocal$1<TableRuntimeProps<T, C> & {
|
|
1082
|
-
onSave?: ((rowData: T, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
|
|
1083
|
-
onCancel?: ((rowData: T, rowIndex: number) => any) | undefined;
|
|
1084
|
-
"onPagination-change"?: ((page: number, pageSize: number) => any) | undefined;
|
|
1085
|
-
"onRow-delete"?: ((deletedRow: T, index: number) => any) | undefined;
|
|
1086
|
-
"onBatch-action-error"?: ((error: unknown, actionKey: string) => any) | undefined;
|
|
1087
|
-
"onRow-key-error"?: ((issues: TableRowKeyIssue<T>[]) => any) | undefined;
|
|
1088
|
-
"onRow-add"?: ((newRow: T) => any) | undefined;
|
|
1089
|
-
"onRow-copy"?: ((originalRow: T, newRow: T) => any) | undefined;
|
|
1090
|
-
"onRow-move"?: ((row: T, fromIndex: number, toIndex: number) => any) | undefined;
|
|
1091
|
-
"onRow-selection-change"?: ((selectedKey: DataTableRowKey | null, selectedRow: T | null) => any) | undefined;
|
|
1092
|
-
"onView-detail"?: ((data: T) => any) | undefined;
|
|
1093
|
-
"onColumn-change"?: ((columns: TableColumn<T>[]) => any) | undefined;
|
|
1094
|
-
"onExpand-change"?: ((expandedKeys: DataTableRowKey[], row?: T | undefined, expanded?: boolean | undefined) => any) | undefined;
|
|
1095
|
-
"onSelection-change"?: ((checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => any) | undefined;
|
|
1096
|
-
"onChild-selection-change"?: ((parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => any) | undefined;
|
|
1097
|
-
"onParent-child-link-change"?: ((parentKey: DataTableRowKey, shouldSelect: boolean) => any) | undefined;
|
|
1098
|
-
"onUpdate:data"?: ((data: T[]) => any) | undefined;
|
|
1099
|
-
"onEdit-error"?: ((error: unknown) => any) | undefined;
|
|
1100
|
-
}> & (typeof globalThis extends {
|
|
1101
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
1102
|
-
} ? P : {});
|
|
1103
|
-
expose: (exposed: vue.ShallowUnwrapRef<TableInstance<T, C>>) => void;
|
|
1104
|
-
attrs: any;
|
|
1105
|
-
slots: {
|
|
1106
|
-
'toolbar-left'?: (props: {}) => any;
|
|
1107
|
-
} & {
|
|
1108
|
-
'toolbar-right'?: (props: {}) => any;
|
|
1109
|
-
} & {
|
|
1110
|
-
error?: (props: {
|
|
1111
|
-
error: ErrorConfig;
|
|
1112
|
-
}) => any;
|
|
1113
|
-
} & {
|
|
1114
|
-
loading?: (props: {}) => any;
|
|
1115
|
-
};
|
|
1116
|
-
emit: ((evt: "save", rowData: T, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "cancel", rowData: T, rowIndex: number) => void) & ((evt: "pagination-change", page: number, pageSize: number) => void) & ((evt: "row-delete", deletedRow: T, index: number) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<T>[]) => void) & ((evt: "row-add", newRow: T) => void) & ((evt: "row-copy", originalRow: T, newRow: T) => void) & ((evt: "row-move", row: T, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: T | null) => void) & ((evt: "view-detail", data: T) => void) & ((evt: "column-change", columns: TableColumn<T>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: T | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: T[]) => void) & ((evt: "edit-error", error: unknown) => void);
|
|
1117
|
-
}>) => vue.VNode & {
|
|
1118
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
1119
|
-
};
|
|
1120
|
-
declare const _default$1: typeof __VLS_export$1;
|
|
1121
|
-
type __VLS_PrettifyLocal$1<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
|
|
1122
|
-
//#endregion
|
|
1123
|
-
//#region src/components/C_Table/helpers.d.ts
|
|
1124
|
-
/** Type-safe identity helper that rejects misspelled business field keys. */
|
|
1125
|
-
declare function defineTableColumns<T extends object>(columns: StrictTableColumn<T>[]): StrictTableColumn<T>[];
|
|
1126
|
-
/** Preserve row types across edit, action, summary and batch callbacks. */
|
|
1127
|
-
declare function defineTableConfig<T extends object, C = unknown>(config: TableConfig<T, C>): TableConfig<T, C>;
|
|
1128
|
-
/** Find missing and duplicate row keys before stateful table features consume them. */
|
|
1129
|
-
declare function validateTableRowKeys<T extends object>(data: readonly T[], rowKey: (row: T) => DataTableRowKey | null | undefined): TableRowKeyIssue<T>[];
|
|
1130
|
-
//#endregion
|
|
1131
|
-
//#region src/components/C_Table/composables/useTableColumns.d.ts
|
|
1132
|
-
/** useTableColumns 中对 tableManager 的最小依赖接口 */
|
|
1133
|
-
interface TableManagerRef {
|
|
1134
|
-
editStates: {
|
|
1135
|
-
cellEdit: {
|
|
1136
|
-
isSaving?: Ref<boolean>;
|
|
1137
|
-
isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1138
|
-
getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
|
|
1139
|
-
updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
|
|
1140
|
-
saveEditCell: () => Promise<unknown>;
|
|
1141
|
-
cancelEditCell: () => void;
|
|
1142
|
-
startEditCell: (rowKey: DataTableRowKey, columnKey: string) => void;
|
|
1143
|
-
};
|
|
1144
|
-
rowEdit: {
|
|
1145
|
-
isSaving?: Ref<boolean>;
|
|
1146
|
-
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1147
|
-
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
1148
|
-
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
1149
|
-
};
|
|
1150
|
-
};
|
|
1151
|
-
dynamicRowsState?: {
|
|
1152
|
-
enhanceColumns: (columns: TableColumn[]) => TableColumn[];
|
|
1153
|
-
} | null;
|
|
1154
|
-
expandState?: {
|
|
1155
|
-
getTableColumns: (originalColumns: TableColumn[]) => DataTableColumn[];
|
|
1156
|
-
} | null;
|
|
1157
|
-
}
|
|
1158
|
-
/**
|
|
1159
|
-
* 渲染编辑组件(行编辑/单元格编辑通用)
|
|
1160
|
-
*/
|
|
1161
|
-
interface UseTableColumnsOptions {
|
|
1162
|
-
/** 原始列配置 */
|
|
1163
|
-
rawColumns: ComputedRef<TableColumn[]>;
|
|
1164
|
-
/** 统一配置 */
|
|
1165
|
-
config: ComputedRef<ResolvedConfig>;
|
|
1166
|
-
/** 默认列宽 */
|
|
1167
|
-
columnWidth: number;
|
|
1168
|
-
/** 区分使用侧显式统一列宽与内部默认值,不把默认值强加给弹性业务列。 */
|
|
1169
|
-
columnWidthExplicit?: boolean;
|
|
1170
|
-
/** 用户设定的 scrollX */
|
|
1171
|
-
scrollX?: number | string;
|
|
1172
|
-
/** 行键获取函数 */
|
|
1173
|
-
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1174
|
-
/** 表格管理器 */
|
|
1175
|
-
tableManager: TableManagerRef;
|
|
1176
|
-
/** 操作列渲染函数 */
|
|
1177
|
-
actionsRenderer: (row: DataRecord, index: number) => VNodeChild;
|
|
1178
|
-
/** 编辑模式检查器 */
|
|
1179
|
-
editModeChecker: ComputedRef<{
|
|
1180
|
-
isNonEditable: (column: TableColumn) => boolean;
|
|
1181
|
-
isRowEditMode: () => boolean;
|
|
1182
|
-
isCellEditMode: () => boolean;
|
|
1183
|
-
}>;
|
|
1184
|
-
/** 是否渲染操作列 */
|
|
1185
|
-
showActionsColumn: ComputedRef<boolean>;
|
|
1186
|
-
}
|
|
1187
|
-
interface UseTableColumnsReturn {
|
|
1188
|
-
reactiveColumns: Ref<TableColumn[]>;
|
|
1189
|
-
showSettingsPanel: Ref<boolean>;
|
|
1190
|
-
computedColumns: ComputedRef<DataTableColumn[]>;
|
|
1191
|
-
computedScrollX: ComputedRef<number | string | undefined>;
|
|
1192
|
-
handleColumnChange: (columns: TableColumn[]) => void;
|
|
1193
|
-
}
|
|
1194
|
-
/**
|
|
1195
|
-
* 表格列处理引擎
|
|
1196
|
-
*/
|
|
1197
|
-
declare function useTableColumns(options: UseTableColumnsOptions): UseTableColumnsReturn;
|
|
1198
|
-
//#endregion
|
|
1199
|
-
//#region src/components/C_Table/composables/useRowEdit.d.ts
|
|
1200
|
-
/** 行级校验错误 */
|
|
1201
|
-
interface RowValidationError {
|
|
1202
|
-
field: string;
|
|
1203
|
-
message: string;
|
|
1204
|
-
}
|
|
1205
|
-
/**
|
|
1206
|
-
* 行编辑配置选项
|
|
1207
|
-
*/
|
|
1208
|
-
interface RowEditOptions {
|
|
1209
|
-
data: () => DataRecord[];
|
|
1210
|
-
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1211
|
-
onSave?: (rowData: DataRecord, rowIndex: number, originalKey?: DataTableRowKey) => unknown;
|
|
1212
|
-
onCancel?: (rowData: DataRecord, rowIndex: number) => unknown;
|
|
1213
|
-
/** 列配置(用于提取校验规则) */
|
|
1214
|
-
columns?: () => TableColumn[];
|
|
1215
|
-
}
|
|
1216
|
-
/**
|
|
1217
|
-
* 可编辑行组合函数,提供表格整行的编辑功能
|
|
1218
|
-
*/
|
|
1219
|
-
declare function useRowEdit(options: RowEditOptions): {
|
|
1220
|
-
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1221
|
-
editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
|
|
1222
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
1223
|
-
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1224
|
-
startEditRow: (rowKey: DataTableRowKey) => boolean;
|
|
1225
|
-
cancelEditRow: () => Promise<void>;
|
|
1226
|
-
saveEditRow: () => Promise<{
|
|
1227
|
-
updatedData: DataRecord;
|
|
1228
|
-
rowIndex: number;
|
|
1229
|
-
} | undefined>;
|
|
1230
|
-
validateRow: () => Promise<boolean>;
|
|
1231
|
-
validationErrors: vue.Ref<{
|
|
1232
|
-
field: string;
|
|
1233
|
-
message: string;
|
|
1234
|
-
}[], RowValidationError[] | {
|
|
1235
|
-
field: string;
|
|
1236
|
-
message: string;
|
|
1237
|
-
}[]>;
|
|
1238
|
-
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
1239
|
-
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
1240
|
-
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1241
|
-
invalidate: () => void;
|
|
1242
|
-
};
|
|
1243
|
-
//#endregion
|
|
1244
|
-
//#region src/components/C_Table/composables/useTableManager.d.ts
|
|
1245
|
-
/**
|
|
1246
|
-
* 表格管理器配置接口
|
|
1247
|
-
*/
|
|
1248
|
-
interface TableManagerConfig {
|
|
1249
|
-
feedback?: ComponentFeedback;
|
|
1250
|
-
locale?: ComponentLocale;
|
|
1251
|
-
editable: boolean;
|
|
1252
|
-
editMode: string;
|
|
1253
|
-
showRowActions: boolean;
|
|
1254
|
-
modalTitle: string;
|
|
1255
|
-
modalWidth: number;
|
|
1256
|
-
onEditSave?: (rowData: DataRecord, rowIndex: number, columnKey?: string) => unknown;
|
|
1257
|
-
onEditCancel?: (rowData: DataRecord, rowIndex: number) => unknown;
|
|
1258
|
-
onEditError?: (error: unknown) => void;
|
|
1259
|
-
expandable: boolean;
|
|
1260
|
-
defaultExpandedKeys?: DataTableRowKey[];
|
|
1261
|
-
onLoadExpandData?: (row: DataRecord) => Promise<any[]> | any[];
|
|
1262
|
-
onExpandError?: (error: unknown, row: DataRecord) => void;
|
|
1263
|
-
renderExpandContent?: unknown;
|
|
1264
|
-
rowExpandable?: (row: DataRecord) => boolean;
|
|
1265
|
-
enableSelection: boolean;
|
|
1266
|
-
defaultCheckedKeys?: DataTableRowKey[];
|
|
1267
|
-
rowCheckable?: (row: DataRecord) => boolean;
|
|
1268
|
-
maxSelection?: number;
|
|
1269
|
-
enableChildSelection: boolean;
|
|
1270
|
-
childRowCheckable?: (childRow: DataRecord, parentRow: DataRecord) => boolean;
|
|
1271
|
-
enableParentChildLink: boolean;
|
|
1272
|
-
parentChildLinkMode: ParentChildLinkMode;
|
|
1273
|
-
dynamicRows?: DynamicRowsOptions<DataRecord>;
|
|
1274
|
-
treeEnabled?: boolean;
|
|
1275
|
-
treeChildrenKey?: string;
|
|
1276
|
-
}
|
|
1277
|
-
/**
|
|
1278
|
-
* 表格管理器参数接口
|
|
1279
|
-
*/
|
|
1280
|
-
interface TableManagerParams {
|
|
1281
|
-
config: MaybeRefOrGetter<TableManagerConfig>;
|
|
1282
|
-
data: () => DataRecord[];
|
|
1283
|
-
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1284
|
-
emit: (...args: any[]) => unknown;
|
|
1285
|
-
/** 列配置(用于编辑校验) */
|
|
1286
|
-
columns?: () => TableColumn[];
|
|
1287
|
-
/** UI 壳提供加载内容,状态引擎保持可独立调用。 */
|
|
1288
|
-
renderLoading?: () => VNodeChild;
|
|
1289
|
-
/** String row-key field inherited by dynamic row creation; explicit dynamicRows.rowKey wins. */
|
|
1290
|
-
rowKeyField?: MaybeRefOrGetter<string | undefined>;
|
|
1291
|
-
}
|
|
1292
|
-
/**
|
|
1293
|
-
* 事件处理器接口
|
|
1294
|
-
*/
|
|
1295
|
-
interface EventHandlers {
|
|
1296
|
-
onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string, originalKey?: DataTableRowKey) => Promise<void>;
|
|
1297
|
-
onCancel: (rowData: DataRecord, rowIndex: number) => Promise<void>;
|
|
1298
|
-
onExpandChange: (keys: DataTableRowKey[], row?: DataRecord, expanded?: boolean) => void;
|
|
1299
|
-
onSelectionChange: (checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey, DataTableRowKey[]>) => void;
|
|
1300
|
-
onChildSelectionChange: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void;
|
|
1301
|
-
onRowChange: (data: DataRecord[]) => void;
|
|
1302
|
-
onRowSelectionChange: (selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void;
|
|
1303
|
-
onRowAdd: (newRow: DataRecord) => void;
|
|
1304
|
-
onRowDelete: (deletedRow: DataRecord, index: number) => void;
|
|
1305
|
-
onRowCopy: (originalRow: DataRecord, newRow: DataRecord) => void;
|
|
1306
|
-
onRowMove: (row: DataRecord, fromIndex: number, toIndex: number) => void;
|
|
1307
|
-
}
|
|
1308
|
-
/**
|
|
1309
|
-
* 表格统一状态管理器
|
|
1310
|
-
*/
|
|
1311
|
-
declare function useTableManager(params: TableManagerParams): {
|
|
1312
|
-
editStates: {
|
|
1313
|
-
rowEdit: {
|
|
1314
|
-
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1315
|
-
editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
|
|
1316
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
1317
|
-
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1318
|
-
startEditRow: (rowKey: DataTableRowKey) => boolean;
|
|
1319
|
-
cancelEditRow: () => Promise<void>;
|
|
1320
|
-
saveEditRow: () => Promise<{
|
|
1321
|
-
updatedData: DataRecord;
|
|
1322
|
-
rowIndex: number;
|
|
1323
|
-
} | undefined>;
|
|
1324
|
-
validateRow: () => Promise<boolean>;
|
|
1325
|
-
validationErrors: vue.Ref<{
|
|
1326
|
-
field: string;
|
|
1327
|
-
message: string;
|
|
1328
|
-
}[], RowValidationError[] | {
|
|
1329
|
-
field: string;
|
|
1330
|
-
message: string;
|
|
1331
|
-
}[]>;
|
|
1332
|
-
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
1333
|
-
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
1334
|
-
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1335
|
-
invalidate: () => void;
|
|
1336
|
-
};
|
|
1337
|
-
cellEdit: {
|
|
1338
|
-
editingCell: vue.Ref<{
|
|
1339
|
-
rowKey: DataTableRowKey | null;
|
|
1340
|
-
columnKey: string | null;
|
|
1341
|
-
}, {
|
|
1342
|
-
rowKey: DataTableRowKey | null;
|
|
1343
|
-
columnKey: string | null;
|
|
1344
|
-
} | {
|
|
1345
|
-
rowKey: DataTableRowKey | null;
|
|
1346
|
-
columnKey: string | null;
|
|
1347
|
-
}>;
|
|
1348
|
-
editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
|
|
1349
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
1350
|
-
isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1351
|
-
startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1352
|
-
saveEditCell: () => Promise<{
|
|
1353
|
-
updatedData: {
|
|
1354
|
-
[x: string]: unknown;
|
|
1355
|
-
};
|
|
1356
|
-
rowIndex: number;
|
|
1357
|
-
columnKey: string;
|
|
1358
|
-
} | undefined>;
|
|
1359
|
-
cancelEditCell: () => void;
|
|
1360
|
-
validateCell: () => Promise<boolean>;
|
|
1361
|
-
cellValidationError: vue.Ref<string | null, string | null>;
|
|
1362
|
-
getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
|
|
1363
|
-
updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
|
|
1364
|
-
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1365
|
-
invalidate: () => void;
|
|
1366
|
-
};
|
|
1367
|
-
modalEdit: {
|
|
1368
|
-
isModalVisible: vue.Ref<boolean, boolean>;
|
|
1369
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
1370
|
-
editingData: vue.Ref<DataRecord, DataRecord>;
|
|
1371
|
-
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1372
|
-
editingRowIndex: vue.ComputedRef<number>;
|
|
1373
|
-
startEdit: (rowKey: DataTableRowKey, sourceData?: DataRecord | undefined) => boolean;
|
|
1374
|
-
saveEdit: (formData?: DataRecord | undefined) => Promise<{
|
|
1375
|
-
updatedData: any;
|
|
1376
|
-
rowIndex: number;
|
|
1377
|
-
} | undefined>;
|
|
1378
|
-
cancelEdit: () => Promise<boolean>;
|
|
1379
|
-
updateEditingData: (data: DataRecord) => boolean;
|
|
1380
|
-
resetEditingState: () => boolean;
|
|
1381
|
-
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1382
|
-
getEditingRowData: (rowKey: DataTableRowKey) => any;
|
|
1383
|
-
invalidate: () => void;
|
|
1384
|
-
};
|
|
1385
|
-
};
|
|
1386
|
-
expandState: UseTableExpandReturn<DataRecord, DataRecord>;
|
|
1387
|
-
dynamicRowsState: DynamicRowsReturn<DataRecord>;
|
|
1388
|
-
stateManager: {
|
|
1389
|
-
edit: {
|
|
1390
|
-
/** 开始编辑 */start(rowKey: DataTableRowKey, columnKey?: string): void; /** 取消编辑 */
|
|
1391
|
-
cancel(): void; /** 保存编辑 */
|
|
1392
|
-
save(): Promise<void>; /** 是否正在编辑 */
|
|
1393
|
-
isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean; /** 获取当前编辑数据 */
|
|
1394
|
-
getEditingData(): DataRecord | null | undefined;
|
|
1395
|
-
};
|
|
1396
|
-
expand: {
|
|
1397
|
-
/** 展开行 */row(rowKey: DataTableRowKey): Promise<void>; /** 折叠行 */
|
|
1398
|
-
collapse(rowKey: DataTableRowKey): void; /** 展开折叠切换 */
|
|
1399
|
-
toggle(rowKey: DataTableRowKey): Promise<void>; /** 展开所有行 */
|
|
1400
|
-
all(): Promise<void>; /** 折叠所有行 */
|
|
1401
|
-
collapseAll(): void; /** 检查行是否已展开 */
|
|
1402
|
-
isExpanded(rowKey: DataTableRowKey): boolean;
|
|
1403
|
-
};
|
|
1404
|
-
selection: {
|
|
1405
|
-
/** 选择指定行 */select(rowKey: DataTableRowKey): void; /** 取消选择指定行 */
|
|
1406
|
-
unselect(rowKey: DataTableRowKey): void; /** 选择所有行 */
|
|
1407
|
-
all(): void; /** 清除所有行选择 */
|
|
1408
|
-
clear(): void; /** 检查行是否已选择 */
|
|
1409
|
-
isSelected(rowKey: DataTableRowKey): boolean; /** 获取所有已选择的行数据 */
|
|
1410
|
-
getSelected(): DataRecord[];
|
|
1411
|
-
};
|
|
1412
|
-
childSelection: {
|
|
1413
|
-
/** 选择指定父行下的子行 */select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 取消选择指定父行下的子行 */
|
|
1414
|
-
unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 选择指定父行下的所有子行 */
|
|
1415
|
-
selectAll(parentKey: DataTableRowKey): void; /** 清除指定父行下的所有子行选择 */
|
|
1416
|
-
clear(parentKey: DataTableRowKey): void; /** 获取指定父行下所有已选择的子行数据 */
|
|
1417
|
-
getSelected(parentKey: DataTableRowKey): DataRecord[];
|
|
1418
|
-
};
|
|
1419
|
-
dynamicRows: {
|
|
1420
|
-
/** 添加行 */add(): void; /** 插入行 */
|
|
1421
|
-
insert(): void; /** 删除行 */
|
|
1422
|
-
delete(): void; /** 复制行 */
|
|
1423
|
-
copy(): void; /** 上移动态行 */
|
|
1424
|
-
moveUp(): void; /** 下移动态行 */
|
|
1425
|
-
moveDown(): void; /** 清空动态行数据 */
|
|
1426
|
-
clearSelection(): void; /** 获取当前选中的动态行数据 */
|
|
1427
|
-
getSelected(): DataRecord | null; /** 打印表格 */
|
|
1428
|
-
print(elementRef?: HTMLElement): Promise<void>; /** 导出表格数据 */
|
|
1429
|
-
download(elementRef?: HTMLElement, filename?: string): Promise<void>;
|
|
1430
|
-
}; /** 清除所有选择 */
|
|
1431
|
-
clearAllSelections(): void;
|
|
1432
|
-
};
|
|
1433
|
-
expandedKeys: vue.ComputedRef<DataTableRowKey[]>;
|
|
1434
|
-
checkedKeys: vue.ComputedRef<DataTableRowKey[]>;
|
|
1435
|
-
eventHandlers: EventHandlers;
|
|
1436
|
-
};
|
|
1437
|
-
//#endregion
|
|
1438
|
-
//#region src/components/C_Table/composables/useTableExpand.d.ts
|
|
1439
|
-
/**
|
|
1440
|
-
*
|
|
1441
|
-
*/
|
|
1442
|
-
declare function useTableExpand<T extends object = DataRecord, C = DataRecord>(options: UseTableExpandOptions<T, C>): UseTableExpandReturn<T, C>;
|
|
1443
|
-
//#endregion
|
|
1444
|
-
//#region src/components/C_Table/composables/useTableActions.d.ts
|
|
1445
|
-
/**
|
|
1446
|
-
* 表格操作Hook
|
|
1447
|
-
*/
|
|
1448
|
-
declare function useTableActions<T extends object = DataRecord>(options: UseTableActionsOptions<T>): UseTableActionsReturn<T>;
|
|
1449
|
-
//#endregion
|
|
1450
|
-
//#region src/components/C_Table/composables/usePagination.d.ts
|
|
1451
|
-
interface UsePaginationOptions<T extends object = DataRecord> {
|
|
1452
|
-
/** 数据源 - 支持函数、Ref 或 ComputedRef */
|
|
1453
|
-
data: (() => T[]) | Ref<T[]> | ComputedRef<T[]>;
|
|
1454
|
-
/** 分页配置 */
|
|
1455
|
-
config: Ref<PaginationConfig | null> | ComputedRef<PaginationConfig | null>;
|
|
1456
|
-
/** 事件触发器 */
|
|
1457
|
-
emit?: (event: 'pagination-change', page: number, pageSize: number) => void;
|
|
1458
|
-
}
|
|
1459
|
-
interface UsePaginationReturn<T extends object = DataRecord> {
|
|
1460
|
-
currentPage: Ref<number>;
|
|
1461
|
-
currentPageSize: Ref<number>;
|
|
1462
|
-
paginatedData: ComputedRef<T[]>;
|
|
1463
|
-
paginationConfig: ComputedRef<PaginationProps | null>;
|
|
1464
|
-
handlePageChange: (page: number) => void;
|
|
1465
|
-
handlePageSizeChange: (pageSize: number) => void;
|
|
1466
|
-
resetToFirstPage: () => void;
|
|
1467
|
-
getTotalPages: () => number;
|
|
1468
|
-
}
|
|
1469
|
-
/** Local and remote pagination with stable controlled-state synchronization. */
|
|
1470
|
-
declare function usePagination<T extends object = DataRecord>(options: UsePaginationOptions<T>): UsePaginationReturn<T>;
|
|
1471
|
-
//#endregion
|
|
1472
|
-
//#region src/components/C_Table/composables/useCellEdit.d.ts
|
|
1473
|
-
/**
|
|
1474
|
-
* 单元格编辑配置选项
|
|
1475
|
-
*/
|
|
1476
|
-
interface CellEditOptions {
|
|
1477
|
-
data: () => DataRecord[];
|
|
1478
|
-
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1479
|
-
onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string, originalKey?: DataTableRowKey) => unknown;
|
|
1480
|
-
/** 列配置(用于提取校验规则) */
|
|
1481
|
-
columns?: () => TableColumn[];
|
|
1482
|
-
}
|
|
1483
|
-
/**
|
|
1484
|
-
* 可编辑单元格组合函数,提供表格单元格的编辑功能
|
|
1485
|
-
*/
|
|
1486
|
-
declare function useCellEdit(options: CellEditOptions): {
|
|
1487
|
-
editingCell: vue.Ref<{
|
|
1488
|
-
rowKey: DataTableRowKey | null;
|
|
1489
|
-
columnKey: string | null;
|
|
1490
|
-
}, {
|
|
1491
|
-
rowKey: DataTableRowKey | null;
|
|
1492
|
-
columnKey: string | null;
|
|
1493
|
-
} | {
|
|
1494
|
-
rowKey: DataTableRowKey | null;
|
|
1495
|
-
columnKey: string | null;
|
|
1496
|
-
}>;
|
|
1497
|
-
editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
|
|
1498
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
1499
|
-
isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1500
|
-
startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1501
|
-
saveEditCell: () => Promise<{
|
|
1502
|
-
updatedData: {
|
|
1503
|
-
[x: string]: unknown;
|
|
1504
|
-
};
|
|
1505
|
-
rowIndex: number;
|
|
1506
|
-
columnKey: string;
|
|
1507
|
-
} | undefined>;
|
|
1508
|
-
cancelEditCell: () => void;
|
|
1509
|
-
validateCell: () => Promise<boolean>;
|
|
1510
|
-
cellValidationError: vue.Ref<string | null, string | null>;
|
|
1511
|
-
getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
|
|
1512
|
-
updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
|
|
1513
|
-
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1514
|
-
invalidate: () => void;
|
|
1515
|
-
};
|
|
1516
|
-
//#endregion
|
|
1517
|
-
//#region node_modules/@vue/shared/dist/shared.d.ts
|
|
1518
|
-
type IfAny<T, Y, N> = 0 extends 1 & T ? Y : N;
|
|
1519
|
-
//#endregion
|
|
1520
|
-
//#region src/components/C_Table/composables/useModalEdit.d.ts
|
|
1521
|
-
interface ModalEditOptions<T extends object = DataRecord> {
|
|
1522
|
-
data: () => T[];
|
|
1523
|
-
rowKey: (row: T) => DataTableRowKey;
|
|
1524
|
-
onSave?: (editingData: T, rowIndex: number, originalKey?: DataTableRowKey) => unknown;
|
|
1525
|
-
onCancel?: (originalData: T, rowIndex: number) => unknown;
|
|
1526
|
-
}
|
|
1527
|
-
/** Modal edit state with lossless snapshots and retry-safe async saves. */
|
|
1528
|
-
declare function useModalEdit<T extends object = DataRecord>(options: ModalEditOptions<T>): {
|
|
1529
|
-
isModalVisible: vue.Ref<boolean, boolean>;
|
|
1530
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
1531
|
-
editingData: [T] extends [vue.Ref<any, any>] ? IfAny<T, vue.Ref<T, T>, T> : vue.Ref<vue.UnwrapRef<T>, T | vue.UnwrapRef<T>>;
|
|
1532
|
-
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1533
|
-
editingRowIndex: vue.ComputedRef<number>;
|
|
1534
|
-
startEdit: (rowKey: DataTableRowKey, sourceData?: T) => boolean;
|
|
1535
|
-
saveEdit: (formData?: T) => Promise<{
|
|
1536
|
-
updatedData: any;
|
|
1537
|
-
rowIndex: number;
|
|
1538
|
-
} | undefined>;
|
|
1539
|
-
cancelEdit: () => Promise<boolean>;
|
|
1540
|
-
updateEditingData: (data: T) => boolean;
|
|
1541
|
-
resetEditingState: () => boolean;
|
|
1542
|
-
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1543
|
-
getEditingRowData: (rowKey: DataTableRowKey) => any;
|
|
1544
|
-
invalidate: () => void;
|
|
1545
|
-
};
|
|
1546
|
-
//#endregion
|
|
1547
|
-
//#region src/plugins/highlight.d.ts
|
|
1548
|
-
interface HighlightPluginOptions {
|
|
1549
|
-
autoDetect?: boolean;
|
|
1550
|
-
extraLanguages?: string[];
|
|
1551
|
-
/** Explicit compatibility bridge; restored when the owning app unmounts. */
|
|
1552
|
-
exposeToWindow?: boolean;
|
|
1553
|
-
/** Enable lifecycle diagnostics through the supplied logger. */
|
|
1554
|
-
debug?: boolean;
|
|
1555
|
-
logger?: Pick<Console, 'info' | 'warn' | 'error'>;
|
|
1556
|
-
onError?: (error: unknown, context: {
|
|
1557
|
-
source: 'language-loader';
|
|
1558
|
-
language: string;
|
|
1559
|
-
}) => void;
|
|
1560
|
-
}
|
|
1561
|
-
interface HighlightAPI {
|
|
1562
|
-
getHljs: () => HLJSApi;
|
|
1563
|
-
loadLanguage: (language: string) => Promise<boolean>;
|
|
1564
|
-
loadLanguages: (languages: string[]) => Promise<string[]>;
|
|
1565
|
-
getLoadedLanguages: () => string[];
|
|
1566
|
-
}
|
|
1567
|
-
/** Create an independent highlighter, including its language registry and loaders. */
|
|
1568
|
-
declare function createHighlight(options?: HighlightPluginOptions): HighlightAPI;
|
|
1569
|
-
/** Reuse the current app's highlighter or create a standalone, isolated one. */
|
|
1570
|
-
declare function useHighlight(options?: HighlightPluginOptions): HighlightAPI;
|
|
1571
|
-
/**
|
|
1572
|
-
* * @description 安装 highlight.js 插件到 Vue 应用
|
|
1573
|
-
* ? @param app - Vue 应用实例
|
|
1574
|
-
* ? @param options - 插件配置选项
|
|
1575
|
-
* ! @return 应用独立的 highlight API
|
|
1576
|
-
*/
|
|
1577
|
-
declare function setupHighlight(app: App, options?: HighlightPluginOptions): HighlightAPI;
|
|
1578
|
-
//#endregion
|
|
1579
|
-
//#region src/components/C_Tree/types.d.ts
|
|
1580
|
-
type TreeKey = string | number;
|
|
1581
|
-
type TreeMode = 'menu' | 'file' | 'org' | 'custom';
|
|
1582
|
-
type StatusType = 'success' | 'warning' | 'error' | 'info';
|
|
1583
|
-
type ButtonType = 'primary' | 'info' | 'warning' | 'error' | 'default';
|
|
1584
|
-
/** Custom fields are allowed; keyField/labelField select the actual identity and label. */
|
|
1585
|
-
interface TreeOption$1 extends TreeOption {
|
|
1586
|
-
id?: TreeKey;
|
|
1587
|
-
children?: TreeOption$1[];
|
|
1588
|
-
}
|
|
1589
|
-
interface TreeNodeData extends TreeOption$1 {
|
|
1590
|
-
name?: string;
|
|
1591
|
-
type?: string;
|
|
1592
|
-
children?: TreeNodeData[];
|
|
1593
|
-
}
|
|
1594
|
-
interface DropInfo<T extends object = TreeOption$1> {
|
|
1595
|
-
node: T;
|
|
1596
|
-
dragNode: T;
|
|
1597
|
-
dropPosition: 'before' | 'inside' | 'after';
|
|
1598
|
-
event: DragEvent;
|
|
1599
|
-
}
|
|
1600
|
-
interface StatusConfig {
|
|
1601
|
-
field: string;
|
|
1602
|
-
values: Record<string | number, {
|
|
1603
|
-
text: string;
|
|
1604
|
-
type: StatusType;
|
|
1605
|
-
}>;
|
|
1606
|
-
}
|
|
1607
|
-
interface ActionConfig<T extends object = TreeNodeData> {
|
|
1608
|
-
key: string;
|
|
1609
|
-
text: string;
|
|
1610
|
-
icon: string;
|
|
1611
|
-
type?: ButtonType;
|
|
1612
|
-
show?: (node: T) => boolean;
|
|
1613
|
-
confirm?: string;
|
|
1614
|
-
}
|
|
1615
|
-
interface IconConfig {
|
|
1616
|
-
default?: string;
|
|
1617
|
-
typeMap?: Record<string, string>;
|
|
1618
|
-
colorMap?: Record<string, string>;
|
|
1619
|
-
}
|
|
1620
|
-
type MaybeArray<T> = T | T[];
|
|
1621
|
-
type TreeUpdateHandler<T extends object, A extends TreeUpdateMeta['action']> = (keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T, A>) => void;
|
|
1622
|
-
type TreeDragHandler<T extends object> = (info: {
|
|
1623
|
-
node: T;
|
|
1624
|
-
event: DragEvent;
|
|
1625
|
-
}) => void;
|
|
1626
|
-
/** 原生功能保持透传,涉及节点的回调由数据源推导业务类型。 */
|
|
1627
|
-
type TreeNativeProps<T extends object = TreeNodeData> = Omit<TreeProps, 'data' | 'filter' | 'onLoad' | 'getChildren' | 'renderLabel' | 'renderPrefix' | 'renderSuffix' | 'renderSwitcherIcon' | 'nodeProps' | 'allowDrop' | 'checkOnClick' | 'overrideDefaultNodeClickBehavior' | 'onDrop' | 'onDragenter' | 'onDragleave' | 'onDragend' | 'onDragstart' | 'onDragover' | 'onUpdateExpandedKeys' | 'onUpdate:expandedKeys' | 'onUpdateSelectedKeys' | 'onUpdate:selectedKeys' | 'onUpdateCheckedKeys' | 'onUpdate:checkedKeys' | 'onUpdateIndeterminateKeys' | 'onUpdate:indeterminateKeys'> & {
|
|
1628
|
-
filter?: (pattern: string, node: T) => boolean;
|
|
1629
|
-
onLoad?: (node: T) => Promise<unknown>;
|
|
1630
|
-
getChildren?: (node: T) => unknown;
|
|
1631
|
-
renderLabel?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1632
|
-
renderPrefix?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1633
|
-
renderSuffix?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1634
|
-
renderSwitcherIcon?: (context: {
|
|
1635
|
-
expanded: boolean;
|
|
1636
|
-
selected: boolean;
|
|
1637
|
-
option: T;
|
|
1638
|
-
}) => VNodeChild;
|
|
1639
|
-
nodeProps?: (context: {
|
|
1640
|
-
option: T;
|
|
1641
|
-
}) => ReturnType<NonNullable<TreeProps['nodeProps']>>;
|
|
1642
|
-
allowDrop?: (info: {
|
|
1643
|
-
dropPosition: DropInfo['dropPosition'];
|
|
1644
|
-
node: T;
|
|
1645
|
-
phase: 'drag' | 'drop';
|
|
1646
|
-
}) => boolean;
|
|
1647
|
-
checkOnClick?: boolean | ((node: T) => boolean);
|
|
1648
|
-
overrideDefaultNodeClickBehavior?: (info: {
|
|
1649
|
-
option: T;
|
|
1650
|
-
}) => ReturnType<NonNullable<TreeProps['overrideDefaultNodeClickBehavior']>>;
|
|
1651
|
-
onDrop?: MaybeArray<(info: DropInfo<T>) => void>;
|
|
1652
|
-
onDragenter?: MaybeArray<TreeDragHandler<T>>;
|
|
1653
|
-
onDragleave?: MaybeArray<TreeDragHandler<T>>;
|
|
1654
|
-
onDragend?: MaybeArray<TreeDragHandler<T>>;
|
|
1655
|
-
onDragstart?: MaybeArray<TreeDragHandler<T>>;
|
|
1656
|
-
onDragover?: MaybeArray<TreeDragHandler<T>>;
|
|
1657
|
-
onUpdateExpandedKeys?: MaybeArray<TreeUpdateHandler<T, 'expand' | 'collapse' | 'filter'>>;
|
|
1658
|
-
'onUpdate:expandedKeys'?: MaybeArray<TreeUpdateHandler<T, 'expand' | 'collapse' | 'filter'>>;
|
|
1659
|
-
onUpdateSelectedKeys?: MaybeArray<TreeUpdateHandler<T, 'select' | 'unselect'>>;
|
|
1660
|
-
'onUpdate:selectedKeys'?: MaybeArray<TreeUpdateHandler<T, 'select' | 'unselect'>>;
|
|
1661
|
-
onUpdateCheckedKeys?: MaybeArray<TreeUpdateHandler<T, 'check' | 'uncheck'>>;
|
|
1662
|
-
'onUpdate:checkedKeys'?: MaybeArray<TreeUpdateHandler<T, 'check' | 'uncheck'>>;
|
|
1663
|
-
onUpdateIndeterminateKeys?: MaybeArray<(keys: TreeKey[], options: Array<T | null>) => void>;
|
|
1664
|
-
'onUpdate:indeterminateKeys'?: MaybeArray<(keys: TreeKey[], options: Array<T | null>) => void>;
|
|
1665
|
-
};
|
|
1666
|
-
interface TreeRenderContext<T extends object = TreeOption$1> {
|
|
1667
|
-
option: T;
|
|
1668
|
-
checked: boolean;
|
|
1669
|
-
selected: boolean;
|
|
1670
|
-
}
|
|
1671
|
-
interface TreeUpdateMeta<T extends object = TreeOption$1, A extends 'select' | 'unselect' | 'check' | 'uncheck' | 'expand' | 'collapse' | 'filter' = 'select' | 'unselect' | 'check' | 'uncheck' | 'expand' | 'collapse' | 'filter'> {
|
|
1672
|
-
node: T | null;
|
|
1673
|
-
action: A;
|
|
1674
|
-
}
|
|
1675
|
-
interface TreeProps$1<T extends object = TreeNodeData> {
|
|
1676
|
-
/** Business interfaces need no string index signature; fields are selected by config. */
|
|
1677
|
-
data: readonly T[];
|
|
1678
|
-
mode?: TreeMode;
|
|
1679
|
-
/** Native tree capabilities; explicit wrapper props have priority. */
|
|
1680
|
-
treeProps?: TreeNativeProps<T>;
|
|
1681
|
-
density?: ComponentDensity;
|
|
1682
|
-
keyField?: string;
|
|
1683
|
-
labelField?: string;
|
|
1684
|
-
childrenField?: string;
|
|
1685
|
-
searchPattern?: string;
|
|
1686
|
-
searchable?: boolean;
|
|
1687
|
-
searchPlaceholder?: string;
|
|
1688
|
-
draggable?: boolean;
|
|
1689
|
-
showLine?: boolean;
|
|
1690
|
-
showToolbar?: boolean;
|
|
1691
|
-
addable?: boolean;
|
|
1692
|
-
addText?: string;
|
|
1693
|
-
refreshable?: boolean;
|
|
1694
|
-
iconField?: string;
|
|
1695
|
-
iconConfig?: IconConfig;
|
|
1696
|
-
statusConfigs?: StatusConfig[];
|
|
1697
|
-
actions?: ActionConfig<T>[];
|
|
1698
|
-
defaultExpandAll?: boolean;
|
|
1699
|
-
defaultExpandedKeys?: TreeKey[];
|
|
1700
|
-
defaultSelectedKeys?: TreeKey[];
|
|
1701
|
-
defaultCheckedKeys?: TreeKey[];
|
|
1702
|
-
expandedKeys?: TreeKey[];
|
|
1703
|
-
selectedKeys?: TreeKey[];
|
|
1704
|
-
checkedKeys?: TreeKey[];
|
|
1705
|
-
}
|
|
1706
|
-
interface TreeExpose<T extends object = TreeNodeData> {
|
|
1707
|
-
expandAll: () => void;
|
|
1708
|
-
collapseAll: () => void;
|
|
1709
|
-
selectNode: (key: TreeKey) => void;
|
|
1710
|
-
clearSelection: () => void;
|
|
1711
|
-
setCheckedKeys: (keys: TreeKey[]) => void;
|
|
1712
|
-
clearChecked: () => void;
|
|
1713
|
-
getSelectedNode: () => T | null;
|
|
1714
|
-
getCheckedData: () => {
|
|
1715
|
-
keys: TreeKey[];
|
|
1716
|
-
options: Array<T | null>;
|
|
1717
|
-
};
|
|
1718
|
-
getIndeterminateData: () => {
|
|
1719
|
-
keys: TreeKey[];
|
|
1720
|
-
options: Array<T | null>;
|
|
1721
|
-
};
|
|
1722
|
-
scrollTo: TreeInst['scrollTo'];
|
|
1723
|
-
/** Vue 公开实例会解包顶层 Ref;这些属性直接读取数组。 */
|
|
1724
|
-
expandedKeys: TreeKey[];
|
|
1725
|
-
selectedKeys: TreeKey[];
|
|
1726
|
-
checkedKeys: TreeKey[];
|
|
1727
|
-
}
|
|
1728
|
-
interface TreeEmits<T extends object = TreeNodeData> {
|
|
1729
|
-
'update:searchPattern': [pattern: string];
|
|
1730
|
-
'update:expandedKeys': [keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T>];
|
|
1731
|
-
'update:selectedKeys': [keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T>];
|
|
1732
|
-
'update:checkedKeys': [keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T>];
|
|
1733
|
-
'node-select': [node: T | null, selectedKeys: TreeKey[]];
|
|
1734
|
-
'node-action': [action: string, node: T];
|
|
1735
|
-
'node-drop': [info: DropInfo<T>];
|
|
1736
|
-
'load-error': [error: unknown, node: T];
|
|
1737
|
-
add: [parentNode?: T];
|
|
1738
|
-
refresh: [];
|
|
1739
|
-
}
|
|
1740
|
-
interface TreeSlots<T extends object = TreeOption$1> {
|
|
1741
|
-
'toolbar-actions'?: () => VNodeChild;
|
|
1742
|
-
label?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1743
|
-
prefix?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1744
|
-
suffix?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1745
|
-
empty?: () => VNodeChild;
|
|
1746
|
-
}
|
|
1747
|
-
//#endregion
|
|
1748
|
-
//#region src/components/C_Tree/index.vue.d.ts
|
|
1749
|
-
declare const __VLS_export: <T extends object = TreeNodeData>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
1750
|
-
props: vue.PublicProps & __VLS_PrettifyLocal<TreeProps$1<T> & {
|
|
1751
|
-
onAdd?: ((parentNode?: T | undefined) => any) | undefined;
|
|
1752
|
-
onRefresh?: (() => any) | undefined;
|
|
1753
|
-
"onUpdate:searchPattern"?: ((pattern: string) => any) | undefined;
|
|
1754
|
-
"onUpdate:expandedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "collapse" | "expand" | "select" | "unselect" | "check" | "uncheck">) => any) | undefined;
|
|
1755
|
-
"onUpdate:selectedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "collapse" | "expand" | "select" | "unselect" | "check" | "uncheck">) => any) | undefined;
|
|
1756
|
-
"onUpdate:checkedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "collapse" | "expand" | "select" | "unselect" | "check" | "uncheck">) => any) | undefined;
|
|
1757
|
-
"onNode-select"?: ((node: T | null, selectedKeys: TreeKey[]) => any) | undefined;
|
|
1758
|
-
"onNode-action"?: ((action: string, node: T) => any) | undefined;
|
|
1759
|
-
"onNode-drop"?: ((info: DropInfo<T>) => any) | undefined;
|
|
1760
|
-
"onLoad-error"?: ((error: unknown, node: T) => any) | undefined;
|
|
1761
|
-
}> & (typeof globalThis extends {
|
|
1762
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
1763
|
-
} ? P : {});
|
|
1764
|
-
expose: (exposed: vue.ShallowUnwrapRef<Omit<TreeExpose<T>, "selectedKeys" | "expandedKeys" | "checkedKeys"> & {
|
|
1765
|
-
expandedKeys: vue.Ref<TreeKey[]>;
|
|
1766
|
-
selectedKeys: vue.Ref<TreeKey[]>;
|
|
1767
|
-
checkedKeys: vue.Ref<TreeKey[]>;
|
|
1768
|
-
}>) => void;
|
|
1769
|
-
attrs: any;
|
|
1770
|
-
slots: TreeSlots<T>;
|
|
1771
|
-
emit: ((evt: "add", parentNode?: T | undefined) => void) & ((evt: "refresh") => void) & ((evt: "update:searchPattern", pattern: string) => void) & ((evt: "update:expandedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "collapse" | "expand" | "select" | "unselect" | "check" | "uncheck">) => void) & ((evt: "update:selectedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "collapse" | "expand" | "select" | "unselect" | "check" | "uncheck">) => void) & ((evt: "update:checkedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "collapse" | "expand" | "select" | "unselect" | "check" | "uncheck">) => void) & ((evt: "node-select", node: T | null, selectedKeys: TreeKey[]) => void) & ((evt: "node-action", action: string, node: T) => void) & ((evt: "node-drop", info: DropInfo<T>) => void) & ((evt: "load-error", error: unknown, node: T) => void);
|
|
1772
|
-
}>) => vue.VNode & {
|
|
1773
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
1774
|
-
};
|
|
1775
|
-
declare const _default: typeof __VLS_export;
|
|
1776
|
-
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
|
|
1777
|
-
//#endregion
|
|
1778
|
-
//#region src/components/C_Tree/data.d.ts
|
|
1779
|
-
declare const presetConfigs: Record<TreeMode, Partial<Omit<TreeProps$1, 'data' | 'treeProps' | 'actions'>> & {
|
|
1780
|
-
actions?: Omit<ActionConfig, 'show'>[];
|
|
1781
|
-
}>;
|
|
1782
|
-
//#endregion
|
|
1783
|
-
//#region src/components/C_Tree/composables/useTreeOperations.d.ts
|
|
1784
|
-
type EmitFn$1<T extends object> = <E extends keyof TreeEmits<T>>(event: E, ...args: TreeEmits<T>[E]) => void;
|
|
1785
|
-
/** State coordination only; checking, filtering, keyboard and loading stay native. */
|
|
1786
|
-
declare function useTreeOperations<T extends object = TreeNodeData>(props: TreeProps$1<T>, emit: EmitFn$1<T>, slots?: TreeSlots<T>): {
|
|
1787
|
-
internalSearchPattern: Ref<string, string>;
|
|
1788
|
-
expandedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
|
|
1789
|
-
selectedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
|
|
1790
|
-
checkedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
|
|
1791
|
-
isAllExpanded: vue.ComputedRef<boolean>;
|
|
1792
|
-
treeData: vue.ComputedRef<readonly T[]>;
|
|
1793
|
-
currentSearchPattern: vue.WritableComputedRef<string, string>;
|
|
1794
|
-
renderPrefix: (info: TreeRenderContext<T>) => any;
|
|
1795
|
-
renderLabel: (info: TreeRenderContext<T>) => string | number | boolean | void | vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
1796
|
-
[key: string]: any;
|
|
1797
|
-
}> | vue.VNodeArrayChildren | null;
|
|
1798
|
-
renderSuffix: (info: TreeRenderContext<T>) => any;
|
|
1799
|
-
treeBindings: vue.ComputedRef<TreeProps>;
|
|
1800
|
-
treeRef: vue.ShallowRef<TreeInst | undefined, TreeInst | undefined>;
|
|
1801
|
-
density: vue.ComputedRef<ResolvedComponentDensity>;
|
|
1802
|
-
toggleExpandAll: () => void;
|
|
1803
|
-
handleExpandedKeysChange: (keys: TreeKey[], options?: (T | null)[], meta?: TreeUpdateMeta<T>) => void;
|
|
1804
|
-
handleSelectedKeysChange: (keys: TreeKey[], options?: (T | null)[], meta?: TreeUpdateMeta<T>) => void;
|
|
1805
|
-
handleCheckedKeysChange: (keys: TreeKey[], options?: (T | null)[], meta?: TreeUpdateMeta<T>) => void;
|
|
1806
|
-
handleDrop: (info: DropInfo<T>) => void;
|
|
1807
|
-
handleAdd: () => void;
|
|
1808
|
-
handleRefresh: () => void;
|
|
1809
|
-
expose: Omit<TreeExpose<T>, "selectedKeys" | "expandedKeys" | "checkedKeys"> & {
|
|
1810
|
-
expandedKeys: Ref<TreeKey[]>;
|
|
1811
|
-
selectedKeys: Ref<TreeKey[]>;
|
|
1812
|
-
checkedKeys: Ref<TreeKey[]>;
|
|
1813
|
-
};
|
|
1814
|
-
};
|
|
1815
|
-
//#endregion
|
|
1816
|
-
//#region src/utils/storage.d.ts
|
|
1817
|
-
/** SSR-safe localStorage helpers. Storage failures never break component state. */
|
|
1818
|
-
/** Store a value. Returns false when storage is unavailable or full. */
|
|
1819
|
-
declare function setItem<T>(key: string, value: T): boolean;
|
|
1820
|
-
/** Read and safely deserialize a value. */
|
|
1821
|
-
declare function getItem<T = unknown>(key: string): T | null;
|
|
1822
|
-
/** Remove one value. Returns whether the storage operation was available. */
|
|
1823
|
-
declare function removeItem(key: string): boolean;
|
|
1824
|
-
/**
|
|
1825
|
-
* Clear localStorage for backward compatibility.
|
|
1826
|
-
* Prefer `removeItem` in components so unrelated application data is preserved.
|
|
1827
|
-
*/
|
|
1828
|
-
declare function removeAllItem(): boolean;
|
|
1829
|
-
//#endregion
|
|
1830
|
-
//#region src/components/C_Table/composables/useTableQuery.d.ts
|
|
1831
|
-
interface TableQueryContext<Q> {
|
|
1832
|
-
page: number;
|
|
1833
|
-
pageSize: number;
|
|
1834
|
-
query: Readonly<Q>;
|
|
1835
|
-
signal: AbortSignal;
|
|
1836
|
-
}
|
|
1837
|
-
interface TableQueryResult<T extends object> {
|
|
1838
|
-
data: readonly T[];
|
|
1839
|
-
total: number;
|
|
1840
|
-
}
|
|
1841
|
-
interface UseTableQueryOptions<T extends object, Q extends object> {
|
|
1842
|
-
request: (context: TableQueryContext<Q>) => Promise<TableQueryResult<T>>;
|
|
1843
|
-
initialQuery: Q;
|
|
1844
|
-
columns?: MaybeRefOrGetter<TableColumn<T>[] | undefined>;
|
|
1845
|
-
config?: MaybeRefOrGetter<TableConfig<T> | undefined>;
|
|
1846
|
-
rowKey?: TableRowKey<T>;
|
|
1847
|
-
initialPage?: number;
|
|
1848
|
-
pageSize?: number;
|
|
1849
|
-
immediate?: boolean;
|
|
1850
|
-
onError?: (error: unknown) => void;
|
|
1851
|
-
onSuccess?: (result: TableQueryResult<T>) => void;
|
|
1852
|
-
}
|
|
1853
|
-
/**
|
|
1854
|
-
* Remote table controller with latest-request-wins cancellation and ready-to-bind props.
|
|
1855
|
-
*/
|
|
1856
|
-
declare function useTableQuery<T extends object, Q extends object = Record<string, unknown>>(options: UseTableQueryOptions<T, Q>): {
|
|
1857
|
-
data: vue.ShallowRef<T[], T[]>;
|
|
1858
|
-
loading: vue.Ref<boolean, boolean>;
|
|
1859
|
-
error: vue.ShallowRef<unknown, unknown>;
|
|
1860
|
-
total: vue.Ref<number, number>;
|
|
1861
|
-
page: vue.Ref<number, number>;
|
|
1862
|
-
pageSize: vue.Ref<number, number>;
|
|
1863
|
-
query: vue.Ref<any, any> extends Q ? Q extends Q & vue.Ref<any, any> ? IfAny<Q, vue.ShallowRef<Q, Q>, Q> : vue.ShallowRef<Q, Q> : vue.ShallowRef<Q, Q>;
|
|
1864
|
-
tableProps: vue.ComputedRef<{
|
|
1865
|
-
data: T[];
|
|
1866
|
-
loading: boolean;
|
|
1867
|
-
columns: TableColumn<T>[] | undefined;
|
|
1868
|
-
rowKey: TableRowKey<T>;
|
|
1869
|
-
config: {
|
|
1870
|
-
pagination: {
|
|
1871
|
-
enabled: true;
|
|
1872
|
-
remote: true;
|
|
1873
|
-
page: number;
|
|
1874
|
-
pageSize: number;
|
|
1875
|
-
total: number;
|
|
1876
|
-
showSizePicker?: boolean;
|
|
1877
|
-
showQuickJumper?: boolean;
|
|
1878
|
-
pageSizes?: number[];
|
|
1879
|
-
simple?: boolean;
|
|
1880
|
-
size?: "small" | "medium" | "large";
|
|
1881
|
-
};
|
|
1882
|
-
density?: ComponentDensity;
|
|
1883
|
-
feedback?: ComponentFeedback;
|
|
1884
|
-
locale?: ComponentLocale;
|
|
1885
|
-
validateRowKeys?: boolean;
|
|
1886
|
-
edit?: boolean | EditMode | EditConfig<T> | undefined;
|
|
1887
|
-
actions?: SimpleTableActions<T> | undefined;
|
|
1888
|
-
expand?: boolean | ExpandConfig$1<T, unknown> | undefined;
|
|
1889
|
-
selection?: boolean | SelectionConfig$1<T, unknown> | undefined;
|
|
1890
|
-
dynamicRows?: DynamicRowsOptions<T> | (string extends keyof T ? boolean : false) | undefined;
|
|
1891
|
-
toolbar?: ToolbarConfig;
|
|
1892
|
-
display?: DisplayConfig;
|
|
1893
|
-
virtualScroll?: VirtualScrollConfig | boolean;
|
|
1894
|
-
summary?: SummaryConfig<T> | undefined;
|
|
1895
|
-
columnDrag?: ColumnDragConfig | boolean;
|
|
1896
|
-
tree?: TreeConfig | boolean;
|
|
1897
|
-
rowDrag?: RowDragConfig | boolean;
|
|
1898
|
-
crossPageSelection?: CrossPageSelectionConfig | boolean;
|
|
1899
|
-
export?: ExportConfig;
|
|
1900
|
-
persistKey?: string;
|
|
1901
|
-
formatterConfig?: FormatterConfig;
|
|
1902
|
-
error?: ErrorConfig;
|
|
1903
|
-
batchActions?: BatchActionsConfig<T> | undefined;
|
|
1904
|
-
};
|
|
1905
|
-
}>;
|
|
1906
|
-
execute: () => Promise<boolean>;
|
|
1907
|
-
reload: () => Promise<boolean>;
|
|
1908
|
-
setQuery: (next: Partial<Q> | ((current: Readonly<Q>) => Q), reload?: boolean) => Promise<boolean>;
|
|
1909
|
-
resetQuery: (reload?: boolean) => Promise<boolean>;
|
|
1910
|
-
handlePaginationChange: (nextPage: number, nextPageSize: number) => Promise<boolean>;
|
|
1911
|
-
bindings: vue.ComputedRef<{
|
|
1912
|
-
onPaginationChange: (nextPage: number, nextPageSize: number) => Promise<boolean>;
|
|
1913
|
-
data: T[];
|
|
1914
|
-
loading: boolean;
|
|
1915
|
-
columns: TableColumn<T>[] | undefined;
|
|
1916
|
-
rowKey: TableRowKey<T>;
|
|
1917
|
-
config: {
|
|
1918
|
-
pagination: {
|
|
1919
|
-
enabled: true;
|
|
1920
|
-
remote: true;
|
|
1921
|
-
page: number;
|
|
1922
|
-
pageSize: number;
|
|
1923
|
-
total: number;
|
|
1924
|
-
showSizePicker?: boolean;
|
|
1925
|
-
showQuickJumper?: boolean;
|
|
1926
|
-
pageSizes?: number[];
|
|
1927
|
-
simple?: boolean;
|
|
1928
|
-
size?: "small" | "medium" | "large";
|
|
1929
|
-
};
|
|
1930
|
-
density?: ComponentDensity;
|
|
1931
|
-
feedback?: ComponentFeedback;
|
|
1932
|
-
locale?: ComponentLocale;
|
|
1933
|
-
validateRowKeys?: boolean;
|
|
1934
|
-
edit?: boolean | EditMode | EditConfig<T> | undefined;
|
|
1935
|
-
actions?: SimpleTableActions<T> | undefined;
|
|
1936
|
-
expand?: boolean | ExpandConfig$1<T, unknown> | undefined;
|
|
1937
|
-
selection?: boolean | SelectionConfig$1<T, unknown> | undefined;
|
|
1938
|
-
dynamicRows?: DynamicRowsOptions<T> | (string extends keyof T ? boolean : false) | undefined;
|
|
1939
|
-
toolbar?: ToolbarConfig;
|
|
1940
|
-
display?: DisplayConfig;
|
|
1941
|
-
virtualScroll?: VirtualScrollConfig | boolean;
|
|
1942
|
-
summary?: SummaryConfig<T> | undefined;
|
|
1943
|
-
columnDrag?: ColumnDragConfig | boolean;
|
|
1944
|
-
tree?: TreeConfig | boolean;
|
|
1945
|
-
rowDrag?: RowDragConfig | boolean;
|
|
1946
|
-
crossPageSelection?: CrossPageSelectionConfig | boolean;
|
|
1947
|
-
export?: ExportConfig;
|
|
1948
|
-
persistKey?: string;
|
|
1949
|
-
formatterConfig?: FormatterConfig;
|
|
1950
|
-
error?: ErrorConfig;
|
|
1951
|
-
batchActions?: BatchActionsConfig<T> | undefined;
|
|
1952
|
-
};
|
|
1953
|
-
}>;
|
|
1954
|
-
cancel: () => void;
|
|
1955
|
-
};
|
|
1956
|
-
//#endregion
|
|
1957
|
-
export { MaybeRefLike as $, PrintWatermarkOptions as $t, HighlightPluginOptions as A, createEditModeChecker as At, useRowEdit as B, mergeGlobalConfig as Bt, TreeNodeData as C, ExpandConfig$1 as Ct, TreeSlots as D, ToolbarConfig as Dt, TreeRenderContext as E, TableConfig as Et, useCellEdit as F, FormatterConfig as Ft, _default$1 as G, useCrossPageSelection as Gt, defineTableColumns as H, CrossPageSelectionConfig as Ht, usePagination as I, FormatterType as It, ChildSelectionState as J, UseRowDragReturn as Jt, ApiFunction as K, RowDragConfig as Kt, useTableActions as L, TABLE_GLOBAL_CONFIG_KEY as Lt, setupHighlight as M, ExportConfig as Mt, useHighlight as N, exportTableData as Nt, TreeUpdateMeta as O, TreeConfig as Ot, useModalEdit as P, ColumnFormatter as Pt, EditMode as Q, useDynamicRows as Qt, useTableExpand as R, TableGlobalConfig as Rt, TreeNativeProps as S, ErrorConfig as St, TreeProps$1 as T, SummaryConfig as Tt, defineTableConfig as U, UseCrossPageSelectionOptions as Ut, useTableColumns as V, useTableGlobalConfig as Vt, validateTableRowKeys as W, UseCrossPageSelectionReturn as Wt, CustomAction as X, DynamicRowsOptions as Xt, ColumnWithKey as Y, useRowDrag as Yt, DataRecord as Z, DynamicRowsReturn as Zt, StatusType as _, BatchActionsConfig as _t, getItem as a, SelectOption as at, TreeKey as b, DisplayConfig as bt, setItem as c, TableColumn as ct, _default as d, TableManagerApi as dt, printPresets as en, NormalTableColumn as et, ActionConfig as f, TableProps as ft, StatusConfig as g, UseTableExpandReturn as gt, IconConfig as h, UseTableExpandOptions as ht, useTableQuery as i, RowAction as it, createHighlight as j, resolveConfig as jt, HighlightAPI as k, VirtualScrollConfig as kt, useTreeOperations as l, TableEmits as lt, DropInfo as m, TableRowKeyIssue as mt, TableQueryResult as n, useComponentFeedback as nn, ParentChildLinkMode as nt, removeAllItem as o, SimpleTableActions as ot, ButtonType as p, TableRowKey as pt, BuiltInTableColumn as q, UseRowDragOptions as qt, UseTableQueryOptions as r, useComponentLocale as rn, RenderFunction as rt, removeItem as s, StrictTableColumn as st, TableQueryContext as t, usePrintWatermark as tn, PaginationConfig as tt, presetConfigs as u, TableInstance as ut, TreeEmits as v, ColumnDragConfig as vt, TreeOption$1 as w, SelectionConfig$1 as wt, TreeMode as x, EditConfig as xt, TreeExpose as y, CrudBinding as yt, useTableManager as z, applyFormatter as zt };
|