@robot-admin/naive-ui-components 0.17.6 → 0.19.0
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 +18 -0
- package/dist/C_AntV.css +10 -10
- package/dist/C_AntV.d.cts +2 -2
- package/dist/C_AntV.d.ts +2 -2
- package/dist/C_AntV2.cjs +1 -1
- package/dist/C_AntV2.js +1 -1
- package/dist/C_Date.cjs +1 -1
- package/dist/C_Date.css +5 -5
- package/dist/C_Date.d.cts +18 -2
- package/dist/C_Date.d.ts +18 -2
- package/dist/C_Date.js +1 -1
- package/dist/C_Date2.cjs +1 -1
- package/dist/C_Date2.js +1 -1
- package/dist/C_Draggable.css +53 -53
- package/dist/C_Draggable.d.cts +2 -2
- package/dist/C_Draggable.d.ts +2 -2
- package/dist/C_Draggable2.cjs +1 -1
- package/dist/C_Draggable2.js +1 -1
- package/dist/C_Editor.d.cts +1 -1
- package/dist/C_Editor.d.ts +1 -1
- package/dist/C_Form.cjs +1 -1
- package/dist/C_FormModal.d.cts +1 -1
- package/dist/C_FormModal.d.ts +1 -1
- package/dist/C_FormSearch.cjs +1 -1
- package/dist/C_FormSearch.css +52 -52
- package/dist/C_FormSearch.d.cts +18 -2
- package/dist/C_FormSearch.d.ts +18 -2
- package/dist/C_FormSearch.js +1 -1
- package/dist/C_FormSearch2.cjs +1 -1
- package/dist/C_FormSearch2.js +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.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_Skeleton.d.cts +1 -1
- package/dist/C_Skeleton.d.ts +1 -1
- package/dist/C_Steps.d.cts +1 -1
- package/dist/C_Steps.d.ts +1 -1
- package/dist/C_Table.base.css +144 -155
- package/dist/C_Table.css +144 -155
- package/dist/C_Table.d.cts +2 -2
- package/dist/C_Table.d.ts +6 -6
- package/dist/C_TagsView.d.cts +1 -1
- package/dist/C_TagsView.d.ts +1 -1
- package/dist/C_Theme.d.cts +1 -1
- package/dist/C_Theme.d.ts +1 -1
- package/dist/C_Time.cjs +1 -1
- package/dist/C_Time.css +4 -4
- package/dist/C_Time.d.cts +18 -2
- package/dist/C_Time.d.ts +18 -2
- package/dist/C_Time.js +1 -1
- package/dist/C_Time2.cjs +1 -1
- package/dist/C_Time2.js +1 -1
- package/dist/C_Timeline.d.cts +1 -1
- package/dist/C_Timeline.d.ts +1 -1
- package/dist/C_Transfer.css +26 -26
- package/dist/C_Transfer.d.cts +2 -2
- package/dist/C_Transfer.d.ts +2 -2
- package/dist/C_Transfer2.cjs +1 -1
- package/dist/C_Transfer2.js +1 -1
- package/dist/C_Tree.css +23 -23
- package/dist/C_Tree.d.ts +4 -4
- package/dist/C_Tree2.cjs +1 -1
- package/dist/C_Tree2.js +1 -1
- package/dist/C_VtableGantt.cjs +1 -1
- package/dist/C_VtableGantt.css +31 -31
- package/dist/C_VtableGantt.d.cts +18 -2
- package/dist/C_VtableGantt.d.ts +18 -2
- package/dist/C_VtableGantt.js +1 -1
- package/dist/C_WorkFlow.css +150 -150
- package/dist/C_WorkFlow.d.cts +2 -2
- package/dist/C_WorkFlow.d.ts +2 -2
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/constants3.d.cts +6 -6
- package/dist/constants3.d.ts +6 -6
- package/dist/constants4.d.cts +7 -7
- package/dist/constants4.d.ts +7 -7
- package/dist/constants5.d.cts +2 -2
- package/dist/constants5.d.ts +2 -2
- package/dist/data.d.cts +7 -7
- package/dist/data.d.ts +7 -7
- package/dist/dateRange.d.cts +197 -0
- package/dist/dateRange.d.ts +197 -0
- package/dist/formValidation.cjs +1 -1
- package/dist/formValidation.js +1 -1
- package/dist/graphics.cjs +1 -0
- package/dist/graphics.d.cts +837 -0
- package/dist/graphics.d.ts +837 -0
- package/dist/graphics.js +1 -0
- package/dist/helpers.cjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +47 -43
- package/dist/index.d.ts +47 -44
- 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 +3 -3
- package/dist/index10.vue.d.ts +53 -68
- package/dist/index11.vue.d.cts +53 -68
- package/dist/index11.vue.d.ts +52 -58
- package/dist/index12.vue.d.cts +52 -58
- package/dist/index12.vue.d.ts +124 -50
- package/dist/index13.vue.d.cts +124 -50
- package/dist/index13.vue.d.ts +51 -123
- package/dist/index14.vue.d.cts +51 -123
- package/dist/index14.vue.d.ts +26 -52
- package/dist/index15.vue.d.cts +26 -52
- package/dist/index15.vue.d.ts +12 -26
- package/dist/index16.vue.d.cts +12 -26
- package/dist/index16.vue.d.ts +129 -13
- package/dist/index17.vue.d.cts +129 -13
- package/dist/index17.vue.d.ts +76 -129
- package/dist/index18.vue.d.cts +76 -129
- package/dist/index18.vue.d.ts +65 -75
- package/dist/index19.vue.d.cts +97 -75
- package/dist/index19.vue.d.ts +94 -62
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +40 -91
- package/dist/index20.vue.d.ts +40 -91
- package/dist/index21.vue.d.cts +89 -40
- package/dist/index21.vue.d.ts +89 -40
- package/dist/index22.vue.d.cts +37 -95
- package/dist/index22.vue.d.ts +37 -95
- package/dist/index23.vue.d.cts +8 -34
- package/dist/index23.vue.d.ts +8 -34
- package/dist/index24.vue.d.cts +86 -9
- package/dist/index24.vue.d.ts +86 -9
- package/dist/index25.vue.d.cts +99 -654
- package/dist/index25.vue.d.ts +99 -654
- package/dist/index26.vue.d.cts +66 -87
- package/dist/index26.vue.d.ts +66 -87
- package/dist/index3.vue.d.cts +2 -2
- package/dist/index3.vue.d.ts +2 -2
- package/dist/index4.vue.d.cts +3 -3
- package/dist/index6.vue.d.ts +3 -3
- package/dist/index7.vue.d.cts +3 -3
- package/dist/index8.vue.d.ts +4 -4
- package/dist/index9.vue.d.cts +4 -4
- package/dist/index9.vue.d.ts +3 -3
- package/dist/mapUtils.d.cts +3 -3
- package/dist/mapUtils.d.ts +3 -3
- package/dist/presets.d.cts +5 -3
- package/dist/presets.d.ts +5 -3
- package/dist/style.css +499 -510
- package/dist/types.d.ts +51 -0
- package/dist/types2.d.cts +51 -0
- package/dist/useCalendarEvents.d.cts +2 -2
- package/dist/useCalendarEvents.d.ts +2 -2
- package/dist/useCollapsePanel.d.cts +4 -4
- package/dist/useCollapsePanel.d.ts +4 -4
- package/dist/useCropperCore.d.cts +9 -9
- package/dist/useCropperCore.d.ts +9 -9
- package/dist/useDraggableLayout.d.cts +94 -125
- package/dist/useDraggableLayout.d.ts +94 -125
- package/dist/useDynamicFormState.d.cts +23 -15
- package/dist/useDynamicFormState.d.ts +23 -15
- package/dist/useEdgeInteraction.d.cts +10 -5
- package/dist/useEdgeInteraction.d.ts +10 -5
- package/dist/useFullscreen.d.cts +3 -3
- package/dist/useFullscreen.d.ts +3 -3
- package/dist/useInfiniteScroll.d.cts +2 -2
- package/dist/useInfiniteScroll.d.ts +2 -2
- package/dist/useQRCode.d.cts +4 -4
- package/dist/useQRCode.d.ts +4 -4
- package/dist/useSignatureHistory.d.cts +3 -3
- package/dist/useSignatureHistory.d.ts +3 -3
- package/dist/useSplitResize.d.cts +6 -6
- package/dist/useSplitResize.d.ts +6 -6
- package/dist/useTableQuery.cjs +2 -2
- package/dist/useTableQuery.d.cts +490 -519
- package/dist/useTableQuery.d.ts +490 -519
- package/dist/useTableQuery.js +2 -2
- package/dist/useTimeSelection.d.cts +19 -52
- package/dist/useTimeSelection.d.ts +19 -52
- package/dist/useWorkflowValidation.d.cts +495 -116
- package/dist/useWorkflowValidation.d.ts +495 -116
- package/dist/verification.d.cts +4 -4
- package/dist/verification.d.ts +4 -4
- package/docs/guides/usage.en.md +18 -1
- package/docs/guides/usage.md +18 -1
- package/package.json +2 -2
- package/dist/C_VtableGantt2.cjs +0 -1
- package/dist/C_VtableGantt2.js +0 -1
- package/dist/index27.vue.d.cts +0 -111
- package/dist/index27.vue.d.ts +0 -111
- package/dist/index28.vue.d.cts +0 -84
- package/dist/index28.vue.d.ts +0 -84
- package/dist/useSearchState.d.cts +0 -163
- package/dist/useSearchState.d.ts +0 -163
package/dist/useTableQuery.d.cts
CHANGED
|
@@ -154,11 +154,12 @@ declare const printPresets: {
|
|
|
154
154
|
};
|
|
155
155
|
//#endregion
|
|
156
156
|
//#region src/components/C_Table/composables/useDynamicRow.d.ts
|
|
157
|
-
interface
|
|
157
|
+
interface DynamicRowsBaseOptions<T extends object> {
|
|
158
158
|
/** 总开关;关闭时公开方法保持安全 no-op */
|
|
159
159
|
enabled?: boolean;
|
|
160
160
|
rowKey?: string | ((row: T) => DataTableRowKey);
|
|
161
|
-
|
|
161
|
+
/** 新增返回完整业务行;复制时可接收原行副本,函数 rowKey 需返回完整的新副本。 */
|
|
162
|
+
defaultRowData?: (source?: T) => T;
|
|
162
163
|
enableRadioSelection?: boolean;
|
|
163
164
|
enableAdd?: boolean;
|
|
164
165
|
enableInsert?: boolean;
|
|
@@ -181,6 +182,10 @@ interface DynamicRowsOptions<T extends object = DataRecord> {
|
|
|
181
182
|
onRowCopy?: (originalRow: T, newRow: T) => void;
|
|
182
183
|
onRowMove?: (row: T, fromIndex: number, toIndex: number) => void;
|
|
183
184
|
}
|
|
185
|
+
/** 明确业务模型必须由工厂创建完整记录;开放记录保留原有空行兼容入口。 */
|
|
186
|
+
type DynamicRowsOptions<T extends object = DataRecord> = DynamicRowsBaseOptions<T> & (string extends keyof T ? unknown : {
|
|
187
|
+
defaultRowData: (source?: T) => T;
|
|
188
|
+
});
|
|
184
189
|
interface DynamicRowsReturn<T extends object = DataRecord> {
|
|
185
190
|
selectedRowKey: Ref<DataTableRowKey | null>;
|
|
186
191
|
selectedRowData: Ref<T | null>;
|
|
@@ -209,7 +214,7 @@ interface DynamicRowsReturn<T extends object = DataRecord> {
|
|
|
209
214
|
/**
|
|
210
215
|
* 表格动态行操作功能组合
|
|
211
216
|
*/
|
|
212
|
-
declare function useDynamicRows<T extends object = DataRecord>(data: Readonly<Ref<T[]>>, options?: MaybeRefOrGetter<DynamicRowsOptions<T>>): DynamicRowsReturn<T>;
|
|
217
|
+
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
218
|
//#endregion
|
|
214
219
|
//#region src/components/C_Table/composables/useRowDrag.d.ts
|
|
215
220
|
interface RowDragConfig {
|
|
@@ -382,17 +387,17 @@ interface CrudBinding<T extends object = DataRecord> {
|
|
|
382
387
|
/** 提供 save 时 edit 函数只标记保存能力;自定义编辑入口放到 config.actions.edit。 */
|
|
383
388
|
actions?: ComputedRef<SimpleTableActions<T>>;
|
|
384
389
|
pagination?: ComputedRef<PaginationConfig | boolean | undefined>;
|
|
385
|
-
tableRef?: Ref<
|
|
386
|
-
save?: (
|
|
390
|
+
tableRef?: Ref<unknown>;
|
|
391
|
+
save?: (row: T, rowIndex?: number, columnKey?: string) => unknown | Promise<unknown>;
|
|
387
392
|
handleCancel?: () => void;
|
|
388
393
|
handlePaginationChange?: (page: number, pageSize: number) => void;
|
|
389
|
-
handleRowDelete?: (
|
|
394
|
+
handleRowDelete?: (row: T, index?: number) => unknown | Promise<unknown>;
|
|
390
395
|
detail?: {
|
|
391
|
-
show: (
|
|
396
|
+
show: (row: T) => unknown;
|
|
392
397
|
};
|
|
393
398
|
}
|
|
394
399
|
/** C_Table :config prop 的类型 — 所有功能配置收拢在此 */
|
|
395
|
-
interface TableConfig<T extends object = DataRecord> {
|
|
400
|
+
interface TableConfig<T extends object = DataRecord, C = unknown> {
|
|
396
401
|
/** 与 C_Form / C_FormSearch 共用密度;局部 display.size 等显式配置优先。 */
|
|
397
402
|
density?: ComponentDensity;
|
|
398
403
|
/** 组件级反馈适配器;未提供时尝试复用 Naive Provider,再安全降级 */
|
|
@@ -408,11 +413,11 @@ interface TableConfig<T extends object = DataRecord> {
|
|
|
408
413
|
/** 分页配置 */
|
|
409
414
|
pagination?: PaginationConfig | boolean;
|
|
410
415
|
/** 展开行配置 */
|
|
411
|
-
expand?: ExpandConfig$1<T> | boolean;
|
|
416
|
+
expand?: ExpandConfig$1<T, C> | boolean;
|
|
412
417
|
/** 选择配置 */
|
|
413
|
-
selection?: SelectionConfig$1<T> | boolean;
|
|
418
|
+
selection?: SelectionConfig$1<T, C> | boolean;
|
|
414
419
|
/** 动态行配置 */
|
|
415
|
-
dynamicRows?: DynamicRowsOptions<T> | boolean;
|
|
420
|
+
dynamicRows?: DynamicRowsOptions<T> | (string extends keyof T ? boolean : false);
|
|
416
421
|
/** 工具栏 */
|
|
417
422
|
toolbar?: ToolbarConfig;
|
|
418
423
|
/** 表格显示属性 */
|
|
@@ -447,29 +452,29 @@ interface EditConfig<T extends object = DataRecord> {
|
|
|
447
452
|
modalTitle?: string;
|
|
448
453
|
modalWidth?: number;
|
|
449
454
|
/** 保存前回调;抛出异常会保留编辑态,便于修正或重试 */
|
|
450
|
-
onSave?: (rowData: T, rowIndex: number, columnKey?: string) =>
|
|
455
|
+
onSave?: (rowData: T, rowIndex: number, columnKey?: string) => unknown;
|
|
451
456
|
/** 取消编辑回调 */
|
|
452
|
-
onCancel?: (rowData: T, rowIndex: number) =>
|
|
457
|
+
onCancel?: (rowData: T, rowIndex: number) => unknown;
|
|
453
458
|
/** 编辑或保存失败回调 */
|
|
454
459
|
onError?: (error: unknown) => void;
|
|
455
460
|
}
|
|
456
|
-
interface ExpandConfig$1<T extends object = DataRecord> {
|
|
461
|
+
interface ExpandConfig$1<T extends object = DataRecord, C = unknown> {
|
|
457
462
|
enabled?: boolean;
|
|
458
463
|
defaultExpandedKeys?: DataTableRowKey[];
|
|
459
|
-
onLoadData?: (row: T) => Promise<
|
|
464
|
+
onLoadData?: (row: T) => Promise<C[]> | C[];
|
|
460
465
|
/** 展开数据加载失败回调 */
|
|
461
466
|
onError?: (error: unknown, row: T) => void;
|
|
462
|
-
renderContent?: (row: T, expandData:
|
|
467
|
+
renderContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
|
|
463
468
|
rowExpandable?: (row: T) => boolean;
|
|
464
469
|
}
|
|
465
|
-
interface SelectionConfig$1<T extends object = DataRecord> {
|
|
470
|
+
interface SelectionConfig$1<T extends object = DataRecord, C = unknown> {
|
|
466
471
|
enabled?: boolean;
|
|
467
472
|
defaultCheckedKeys?: DataTableRowKey[];
|
|
468
473
|
rowCheckable?: (row: T) => boolean;
|
|
469
474
|
maxSelection?: number;
|
|
470
475
|
childSelection?: {
|
|
471
476
|
enabled?: boolean;
|
|
472
|
-
childRowCheckable?: (childRow:
|
|
477
|
+
childRowCheckable?: (childRow: C, parentRow: T) => boolean;
|
|
473
478
|
};
|
|
474
479
|
parentChildLink?: {
|
|
475
480
|
enabled?: boolean;
|
|
@@ -540,7 +545,7 @@ interface ErrorConfig {
|
|
|
540
545
|
/** 错误描述文案 */
|
|
541
546
|
message?: string;
|
|
542
547
|
/** 重试回调 */
|
|
543
|
-
onRetry?: () =>
|
|
548
|
+
onRetry?: () => unknown;
|
|
544
549
|
}
|
|
545
550
|
/** 批量操作配置 */
|
|
546
551
|
interface BatchActionsConfig<T extends object = DataRecord> {
|
|
@@ -555,7 +560,7 @@ interface BatchActionsConfig<T extends object = DataRecord> {
|
|
|
555
560
|
label: string;
|
|
556
561
|
icon?: string;
|
|
557
562
|
type?: string;
|
|
558
|
-
onClick: (selectedKeys: DataTableRowKey[], selectedRows: T[]) =>
|
|
563
|
+
onClick: (selectedKeys: DataTableRowKey[], selectedRows: T[]) => unknown;
|
|
559
564
|
}>;
|
|
560
565
|
}
|
|
561
566
|
interface ResolvedConfig {
|
|
@@ -575,7 +580,7 @@ interface ResolvedConfig {
|
|
|
575
580
|
defaultExpandedKeys: DataTableRowKey[] | undefined;
|
|
576
581
|
onLoadExpandData: ((row: DataRecord) => Promise<unknown[]> | unknown[]) | undefined;
|
|
577
582
|
onExpandError: ((error: unknown, row: DataRecord) => void) | undefined;
|
|
578
|
-
renderExpandContent: ((row: DataRecord, expandData: unknown[], loading: boolean, childSelection?:
|
|
583
|
+
renderExpandContent: ((row: DataRecord, expandData: unknown[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild) | undefined;
|
|
579
584
|
rowExpandable: ((row: DataRecord) => boolean) | undefined;
|
|
580
585
|
enableSelection: boolean;
|
|
581
586
|
defaultCheckedKeys: DataTableRowKey[] | undefined;
|
|
@@ -643,245 +648,6 @@ declare const createEditModeChecker: (config: ResolvedConfig) => {
|
|
|
643
648
|
isCellEditMode: () => boolean;
|
|
644
649
|
};
|
|
645
650
|
//#endregion
|
|
646
|
-
//#region src/components/C_Table/composables/useRowEdit.d.ts
|
|
647
|
-
/** 行级校验错误 */
|
|
648
|
-
interface RowValidationError {
|
|
649
|
-
field: string;
|
|
650
|
-
message: string;
|
|
651
|
-
}
|
|
652
|
-
/**
|
|
653
|
-
* 行编辑配置选项
|
|
654
|
-
*/
|
|
655
|
-
interface RowEditOptions {
|
|
656
|
-
data: () => DataRecord[];
|
|
657
|
-
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
658
|
-
onSave?: (rowData: DataRecord, rowIndex: number, originalKey?: DataTableRowKey) => void | Promise<void>;
|
|
659
|
-
onCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
|
|
660
|
-
/** 列配置(用于提取校验规则) */
|
|
661
|
-
columns?: () => TableColumn[];
|
|
662
|
-
}
|
|
663
|
-
/**
|
|
664
|
-
* 可编辑行组合函数,提供表格整行的编辑功能
|
|
665
|
-
*/
|
|
666
|
-
declare function useRowEdit(options: RowEditOptions): {
|
|
667
|
-
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
668
|
-
editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
|
|
669
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
670
|
-
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
671
|
-
startEditRow: (rowKey: DataTableRowKey) => boolean;
|
|
672
|
-
cancelEditRow: () => Promise<void>;
|
|
673
|
-
saveEditRow: () => Promise<{
|
|
674
|
-
updatedData: DataRecord;
|
|
675
|
-
rowIndex: number;
|
|
676
|
-
} | undefined>;
|
|
677
|
-
validateRow: () => Promise<boolean>;
|
|
678
|
-
validationErrors: vue.Ref<{
|
|
679
|
-
field: string;
|
|
680
|
-
message: string;
|
|
681
|
-
}[], RowValidationError[] | {
|
|
682
|
-
field: string;
|
|
683
|
-
message: string;
|
|
684
|
-
}[]>;
|
|
685
|
-
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
686
|
-
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
687
|
-
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
688
|
-
invalidate: () => void;
|
|
689
|
-
};
|
|
690
|
-
//#endregion
|
|
691
|
-
//#region src/components/C_Table/composables/useTableManager.d.ts
|
|
692
|
-
/**
|
|
693
|
-
* 表格管理器配置接口
|
|
694
|
-
*/
|
|
695
|
-
interface TableManagerConfig {
|
|
696
|
-
feedback?: ComponentFeedback;
|
|
697
|
-
locale?: ComponentLocale;
|
|
698
|
-
editable: boolean;
|
|
699
|
-
editMode: string;
|
|
700
|
-
showRowActions: boolean;
|
|
701
|
-
modalTitle: string;
|
|
702
|
-
modalWidth: number;
|
|
703
|
-
onEditSave?: (rowData: DataRecord, rowIndex: number, columnKey?: string) => void | Promise<void>;
|
|
704
|
-
onEditCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
|
|
705
|
-
onEditError?: (error: unknown) => void;
|
|
706
|
-
expandable: boolean;
|
|
707
|
-
defaultExpandedKeys?: DataTableRowKey[];
|
|
708
|
-
onLoadExpandData?: (row: DataRecord) => Promise<any[]> | any[];
|
|
709
|
-
onExpandError?: (error: unknown, row: DataRecord) => void;
|
|
710
|
-
renderExpandContent?: unknown;
|
|
711
|
-
rowExpandable?: (row: DataRecord) => boolean;
|
|
712
|
-
enableSelection: boolean;
|
|
713
|
-
defaultCheckedKeys?: DataTableRowKey[];
|
|
714
|
-
rowCheckable?: (row: DataRecord) => boolean;
|
|
715
|
-
maxSelection?: number;
|
|
716
|
-
enableChildSelection: boolean;
|
|
717
|
-
childRowCheckable?: (childRow: DataRecord, parentRow: DataRecord) => boolean;
|
|
718
|
-
enableParentChildLink: boolean;
|
|
719
|
-
parentChildLinkMode: ParentChildLinkMode;
|
|
720
|
-
dynamicRows?: DynamicRowsOptions<DataRecord>;
|
|
721
|
-
treeEnabled?: boolean;
|
|
722
|
-
treeChildrenKey?: string;
|
|
723
|
-
}
|
|
724
|
-
/**
|
|
725
|
-
* 表格管理器参数接口
|
|
726
|
-
*/
|
|
727
|
-
interface TableManagerParams {
|
|
728
|
-
config: MaybeRefOrGetter<TableManagerConfig>;
|
|
729
|
-
data: () => DataRecord[];
|
|
730
|
-
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
731
|
-
emit: (...args: any[]) => unknown;
|
|
732
|
-
/** 列配置(用于编辑校验) */
|
|
733
|
-
columns?: () => TableColumn[];
|
|
734
|
-
/** UI 壳提供加载内容,状态引擎保持可独立调用。 */
|
|
735
|
-
renderLoading?: () => VNodeChild;
|
|
736
|
-
/** String row-key field inherited by dynamic row creation; explicit dynamicRows.rowKey wins. */
|
|
737
|
-
rowKeyField?: MaybeRefOrGetter<string | undefined>;
|
|
738
|
-
}
|
|
739
|
-
/**
|
|
740
|
-
* 事件处理器接口
|
|
741
|
-
*/
|
|
742
|
-
interface EventHandlers {
|
|
743
|
-
onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string, originalKey?: DataTableRowKey) => Promise<void>;
|
|
744
|
-
onCancel: (rowData: DataRecord, rowIndex: number) => Promise<void>;
|
|
745
|
-
onExpandChange: (keys: DataTableRowKey[], row?: DataRecord, expanded?: boolean) => void;
|
|
746
|
-
onSelectionChange: (checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey, DataTableRowKey[]>) => void;
|
|
747
|
-
onChildSelectionChange: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void;
|
|
748
|
-
onRowChange: (data: DataRecord[]) => void;
|
|
749
|
-
onRowSelectionChange: (selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void;
|
|
750
|
-
onRowAdd: (newRow: DataRecord) => void;
|
|
751
|
-
onRowDelete: (deletedRow: DataRecord, index: number) => void;
|
|
752
|
-
onRowCopy: (originalRow: DataRecord, newRow: DataRecord) => void;
|
|
753
|
-
onRowMove: (row: DataRecord, fromIndex: number, toIndex: number) => void;
|
|
754
|
-
}
|
|
755
|
-
/**
|
|
756
|
-
* 表格统一状态管理器
|
|
757
|
-
*/
|
|
758
|
-
declare function useTableManager(params: TableManagerParams): {
|
|
759
|
-
editStates: {
|
|
760
|
-
rowEdit: {
|
|
761
|
-
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
762
|
-
editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
|
|
763
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
764
|
-
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
765
|
-
startEditRow: (rowKey: DataTableRowKey) => boolean;
|
|
766
|
-
cancelEditRow: () => Promise<void>;
|
|
767
|
-
saveEditRow: () => Promise<{
|
|
768
|
-
updatedData: DataRecord;
|
|
769
|
-
rowIndex: number;
|
|
770
|
-
} | undefined>;
|
|
771
|
-
validateRow: () => Promise<boolean>;
|
|
772
|
-
validationErrors: vue.Ref<{
|
|
773
|
-
field: string;
|
|
774
|
-
message: string;
|
|
775
|
-
}[], RowValidationError[] | {
|
|
776
|
-
field: string;
|
|
777
|
-
message: string;
|
|
778
|
-
}[]>;
|
|
779
|
-
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
780
|
-
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
781
|
-
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
782
|
-
invalidate: () => void;
|
|
783
|
-
};
|
|
784
|
-
cellEdit: {
|
|
785
|
-
editingCell: vue.Ref<{
|
|
786
|
-
rowKey: DataTableRowKey | null;
|
|
787
|
-
columnKey: string | null;
|
|
788
|
-
}, {
|
|
789
|
-
rowKey: DataTableRowKey | null;
|
|
790
|
-
columnKey: string | null;
|
|
791
|
-
} | {
|
|
792
|
-
rowKey: DataTableRowKey | null;
|
|
793
|
-
columnKey: string | null;
|
|
794
|
-
}>;
|
|
795
|
-
editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
|
|
796
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
797
|
-
isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
798
|
-
startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
799
|
-
saveEditCell: () => Promise<{
|
|
800
|
-
updatedData: {
|
|
801
|
-
[x: string]: unknown;
|
|
802
|
-
};
|
|
803
|
-
rowIndex: number;
|
|
804
|
-
columnKey: string;
|
|
805
|
-
} | undefined>;
|
|
806
|
-
cancelEditCell: () => void;
|
|
807
|
-
validateCell: () => Promise<boolean>;
|
|
808
|
-
cellValidationError: vue.Ref<string | null, string | null>;
|
|
809
|
-
getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
|
|
810
|
-
updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
|
|
811
|
-
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
812
|
-
invalidate: () => void;
|
|
813
|
-
};
|
|
814
|
-
modalEdit: {
|
|
815
|
-
isModalVisible: vue.Ref<boolean, boolean>;
|
|
816
|
-
isSaving: vue.Ref<boolean, boolean>;
|
|
817
|
-
editingData: vue.Ref<DataRecord, DataRecord>;
|
|
818
|
-
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
819
|
-
editingRowIndex: vue.ComputedRef<number>;
|
|
820
|
-
startEdit: (rowKey: DataTableRowKey, sourceData?: DataRecord | undefined) => boolean;
|
|
821
|
-
saveEdit: (formData?: DataRecord | undefined) => Promise<{
|
|
822
|
-
updatedData: any;
|
|
823
|
-
rowIndex: number;
|
|
824
|
-
} | undefined>;
|
|
825
|
-
cancelEdit: () => Promise<boolean>;
|
|
826
|
-
updateEditingData: (data: DataRecord) => boolean;
|
|
827
|
-
resetEditingState: () => boolean;
|
|
828
|
-
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
829
|
-
getEditingRowData: (rowKey: DataTableRowKey) => any;
|
|
830
|
-
invalidate: () => void;
|
|
831
|
-
};
|
|
832
|
-
};
|
|
833
|
-
expandState: UseTableExpandReturn<DataRecord, DataRecord>;
|
|
834
|
-
dynamicRowsState: DynamicRowsReturn<DataRecord>;
|
|
835
|
-
stateManager: {
|
|
836
|
-
edit: {
|
|
837
|
-
/** 开始编辑 */start(rowKey: DataTableRowKey, columnKey?: string): void; /** 取消编辑 */
|
|
838
|
-
cancel(): void; /** 保存编辑 */
|
|
839
|
-
save(): Promise<void>; /** 是否正在编辑 */
|
|
840
|
-
isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean; /** 获取当前编辑数据 */
|
|
841
|
-
getEditingData(): DataRecord | null | undefined;
|
|
842
|
-
};
|
|
843
|
-
expand: {
|
|
844
|
-
/** 展开行 */row(rowKey: DataTableRowKey): Promise<void>; /** 折叠行 */
|
|
845
|
-
collapse(rowKey: DataTableRowKey): void; /** 展开折叠切换 */
|
|
846
|
-
toggle(rowKey: DataTableRowKey): Promise<void>; /** 展开所有行 */
|
|
847
|
-
all(): Promise<void>; /** 折叠所有行 */
|
|
848
|
-
collapseAll(): void; /** 检查行是否已展开 */
|
|
849
|
-
isExpanded(rowKey: DataTableRowKey): boolean;
|
|
850
|
-
};
|
|
851
|
-
selection: {
|
|
852
|
-
/** 选择指定行 */select(rowKey: DataTableRowKey): void; /** 取消选择指定行 */
|
|
853
|
-
unselect(rowKey: DataTableRowKey): void; /** 选择所有行 */
|
|
854
|
-
all(): void; /** 清除所有行选择 */
|
|
855
|
-
clear(): void; /** 检查行是否已选择 */
|
|
856
|
-
isSelected(rowKey: DataTableRowKey): boolean; /** 获取所有已选择的行数据 */
|
|
857
|
-
getSelected(): DataRecord[];
|
|
858
|
-
};
|
|
859
|
-
childSelection: {
|
|
860
|
-
/** 选择指定父行下的子行 */select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 取消选择指定父行下的子行 */
|
|
861
|
-
unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 选择指定父行下的所有子行 */
|
|
862
|
-
selectAll(parentKey: DataTableRowKey): void; /** 清除指定父行下的所有子行选择 */
|
|
863
|
-
clear(parentKey: DataTableRowKey): void; /** 获取指定父行下所有已选择的子行数据 */
|
|
864
|
-
getSelected(parentKey: DataTableRowKey): DataRecord[];
|
|
865
|
-
};
|
|
866
|
-
dynamicRows: {
|
|
867
|
-
/** 添加行 */add(): void; /** 插入行 */
|
|
868
|
-
insert(): void; /** 删除行 */
|
|
869
|
-
delete(): void; /** 复制行 */
|
|
870
|
-
copy(): void; /** 上移动态行 */
|
|
871
|
-
moveUp(): void; /** 下移动态行 */
|
|
872
|
-
moveDown(): void; /** 清空动态行数据 */
|
|
873
|
-
clearSelection(): void; /** 获取当前选中的动态行数据 */
|
|
874
|
-
getSelected(): DataRecord | null; /** 打印表格 */
|
|
875
|
-
print(elementRef?: HTMLElement): Promise<void>; /** 导出表格数据 */
|
|
876
|
-
download(elementRef?: HTMLElement, filename?: string): Promise<void>;
|
|
877
|
-
}; /** 清除所有选择 */
|
|
878
|
-
clearAllSelections(): void;
|
|
879
|
-
};
|
|
880
|
-
expandedKeys: vue.ComputedRef<DataTableRowKey[]>;
|
|
881
|
-
checkedKeys: vue.ComputedRef<DataTableRowKey[]>;
|
|
882
|
-
eventHandlers: EventHandlers;
|
|
883
|
-
};
|
|
884
|
-
//#endregion
|
|
885
651
|
//#region src/components/C_Table/types.d.ts
|
|
886
652
|
type RefLike<T> = {
|
|
887
653
|
value: T;
|
|
@@ -928,7 +694,7 @@ interface CustomAction<T extends object = DataRecord> {
|
|
|
928
694
|
/** 按钮类型样式 */
|
|
929
695
|
type?: ButtonType$1 | ((row: T, index: number) => ButtonType$1);
|
|
930
696
|
/** 点击事件处理器 */
|
|
931
|
-
onClick: (row: T, index: number) =>
|
|
697
|
+
onClick: (row: T, index: number) => unknown;
|
|
932
698
|
/** 条件显示函数(可选) */
|
|
933
699
|
show?: (row: T, index: number) => boolean;
|
|
934
700
|
/** 是否禁用(可选) */
|
|
@@ -1095,12 +861,6 @@ interface SelectionConfig<T extends object = DataRecord, C = DataRecord> extends
|
|
|
1095
861
|
enableParentChildLink?: boolean;
|
|
1096
862
|
parentChildLinkMode?: ParentChildLinkMode;
|
|
1097
863
|
}
|
|
1098
|
-
interface TableBaseProps<T extends object = DataRecord> {
|
|
1099
|
-
columns: TableColumn<T>[];
|
|
1100
|
-
data: MaybeRefLike<T[]>;
|
|
1101
|
-
rowKey?: TableRowKey<T>;
|
|
1102
|
-
loading?: MaybeRefLike<boolean>;
|
|
1103
|
-
}
|
|
1104
864
|
interface TableDisplayProps {
|
|
1105
865
|
maxHeight?: number | string;
|
|
1106
866
|
minHeight?: number | string;
|
|
@@ -1110,51 +870,30 @@ interface TableDisplayProps {
|
|
|
1110
870
|
singleLine?: boolean;
|
|
1111
871
|
size?: 'small' | 'medium' | 'large';
|
|
1112
872
|
}
|
|
1113
|
-
/**
|
|
1114
|
-
interface
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
modalTitle?: string;
|
|
1121
|
-
modalWidth?: number;
|
|
1122
|
-
columnWidth?: number;
|
|
1123
|
-
}
|
|
1124
|
-
/** @deprecated 旧类型兼容;组件功能请使用 config.expand。 */
|
|
1125
|
-
interface TableExpandProps<T extends object = DataRecord, C = DataRecord> {
|
|
1126
|
-
expandable?: boolean;
|
|
1127
|
-
onLoadExpandData?: (row: T) => Promise<C[]> | C[];
|
|
1128
|
-
renderExpandContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
|
|
1129
|
-
rowExpandable?: (row: T) => boolean;
|
|
1130
|
-
defaultExpandedKeys?: DataTableRowKey[];
|
|
1131
|
-
}
|
|
1132
|
-
/** @deprecated 旧类型兼容;组件功能请使用 config.selection。 */
|
|
1133
|
-
interface TableSelectionProps<T extends object = DataRecord, C = DataRecord> extends BaseConfig<T> {
|
|
1134
|
-
enableSelection?: boolean;
|
|
1135
|
-
defaultCheckedKeys?: DataTableRowKey[];
|
|
1136
|
-
maxSelection?: number;
|
|
1137
|
-
enableChildSelection?: boolean;
|
|
1138
|
-
childRowCheckable?: (childRow: C, parentRow: T) => boolean;
|
|
1139
|
-
enableParentChildLink?: boolean;
|
|
1140
|
-
parentChildLinkMode?: ParentChildLinkMode;
|
|
1141
|
-
}
|
|
1142
|
-
interface TableProps<T extends object = DataRecord, C = DataRecord> extends Partial<TableBaseProps<T>>, TableDisplayProps, TableEditProps<T>, TableExpandProps<T, C>, TableSelectionProps<T, C> {
|
|
873
|
+
/** 组件声明的实际属性;与 UI 壳共用,避免旧配置重新混入主契约。 */
|
|
874
|
+
interface TableRuntimeProps<T extends object = DataRecord, C = unknown> {
|
|
875
|
+
/** CRUD 模式自动提供列和数据,可省略。 */
|
|
876
|
+
columns?: TableColumn<T>[];
|
|
877
|
+
data?: MaybeRefLike<T[]>;
|
|
878
|
+
loading?: MaybeRefLike<boolean>;
|
|
879
|
+
rowKey?: TableRowKey<T>;
|
|
1143
880
|
/** 功能配置的统一入口。 */
|
|
1144
|
-
config?: TableConfig<T>;
|
|
881
|
+
config?: TableConfig<T, C>;
|
|
1145
882
|
/** CRUD 模式自动提供 columns / data / loading,可省略对应属性。 */
|
|
1146
883
|
crud?: CrudBinding<T>;
|
|
1147
884
|
/** 原生分页入口;声明后优先于 config.pagination。 */
|
|
1148
885
|
pagination?: PaginationProps | false;
|
|
1149
886
|
remote?: boolean;
|
|
1150
887
|
virtualScrollX?: boolean;
|
|
1151
|
-
/** @deprecated 使用 config.actions。 */
|
|
1152
|
-
actions?: SimpleTableActions<T>;
|
|
1153
888
|
/** 根容器 class,原生 class/style 仍转发到内部表格。 */
|
|
1154
889
|
wrapperClass?: vue.HTMLAttributes['class'];
|
|
1155
890
|
/** 填满确定高度的容器,保留工具栏和分页空间。 */
|
|
1156
891
|
flexHeight?: boolean;
|
|
1157
892
|
}
|
|
893
|
+
/** 事件监听与组件共用同一份事件参数,避免将有效监听器误当作旧功能配置。 */
|
|
894
|
+
type TableListeners<T extends object, C> = { [E in keyof TableEmits<T, C> as `on${Capitalize<E>}`]?: (...args: TableEmits<T, C>[E]) => unknown };
|
|
895
|
+
/** 业务功能统一使用 config;有效的原生显示属性继续由 $attrs 透传。 */
|
|
896
|
+
type TableProps<T extends object = DataRecord, C = unknown> = TableRuntimeProps<T, C> & Omit<TableDisplayProps, 'maxHeight' | 'scrollX'> & TableListeners<T, C>;
|
|
1158
897
|
interface TableExpandEvents<T extends object = DataRecord> {
|
|
1159
898
|
'expand-change': [expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean];
|
|
1160
899
|
}
|
|
@@ -1174,6 +913,12 @@ interface TableEmits<T extends object = DataRecord, C = DataRecord> extends Tabl
|
|
|
1174
913
|
'row-delete': [deletedRow: T, index: number];
|
|
1175
914
|
'batch-action-error': [error: unknown, actionKey: string];
|
|
1176
915
|
'row-key-error': [issues: TableRowKeyIssue<T>[]];
|
|
916
|
+
'row-add': [newRow: T];
|
|
917
|
+
'row-copy': [originalRow: T, newRow: T];
|
|
918
|
+
'row-move': [row: T, fromIndex: number, toIndex: number];
|
|
919
|
+
'row-selection-change': [selectedKey: DataTableRowKey | null, selectedRow: T | null];
|
|
920
|
+
'view-detail': [data: T];
|
|
921
|
+
'column-change': [columns: TableColumn<T>[]];
|
|
1177
922
|
}
|
|
1178
923
|
interface TableEditMethods<T extends object = DataRecord> {
|
|
1179
924
|
startEdit: (rowKey: DataTableRowKey, columnKey?: string) => void;
|
|
@@ -1222,10 +967,56 @@ interface TablePaginationMethods {
|
|
|
1222
967
|
resetToFirstPage: () => void;
|
|
1223
968
|
getTotalPages: () => number;
|
|
1224
969
|
}
|
|
970
|
+
/** 高级兼容入口的稳定契约;业务行类型与顶层实例保持一致。 */
|
|
971
|
+
interface TableManagerApi<T extends object = DataRecord, C = DataRecord> {
|
|
972
|
+
edit: {
|
|
973
|
+
start: TableEditMethods<T>['startEdit'];
|
|
974
|
+
cancel: TableEditMethods<T>['cancelEdit'];
|
|
975
|
+
save: TableEditMethods<T>['saveEdit'];
|
|
976
|
+
isEditing: TableEditMethods<T>['isEditing'];
|
|
977
|
+
getEditingData: () => T | null | undefined;
|
|
978
|
+
};
|
|
979
|
+
expand: {
|
|
980
|
+
row: TableExpandMethods['expandRow'];
|
|
981
|
+
collapse: TableExpandMethods['collapseRow'];
|
|
982
|
+
toggle: TableExpandMethods['toggleExpand'];
|
|
983
|
+
all: TableExpandMethods['expandAll'];
|
|
984
|
+
collapseAll: TableExpandMethods['collapseAll'];
|
|
985
|
+
isExpanded: TableExpandMethods['isExpanded'];
|
|
986
|
+
};
|
|
987
|
+
selection: {
|
|
988
|
+
select: TableSelectionMethods<T, C>['selectRow'];
|
|
989
|
+
unselect: TableSelectionMethods<T, C>['unselectRow'];
|
|
990
|
+
all: TableSelectionMethods<T, C>['selectAll'];
|
|
991
|
+
clear: TableSelectionMethods<T, C>['clearSelection'];
|
|
992
|
+
isSelected: TableSelectionMethods<T, C>['isRowSelected'];
|
|
993
|
+
getSelected: TableSelectionMethods<T, C>['getSelectedRows'];
|
|
994
|
+
};
|
|
995
|
+
childSelection: {
|
|
996
|
+
select: TableSelectionMethods<T, C>['selectChildRow'];
|
|
997
|
+
unselect: TableSelectionMethods<T, C>['unselectChildRow'];
|
|
998
|
+
selectAll: TableSelectionMethods<T, C>['selectAllChildren'];
|
|
999
|
+
clear: TableSelectionMethods<T, C>['clearChildrenSelection'];
|
|
1000
|
+
getSelected: TableSelectionMethods<T, C>['getChildSelectedRows'];
|
|
1001
|
+
};
|
|
1002
|
+
dynamicRows: {
|
|
1003
|
+
add: TableDynamicRowsMethods<T>['addRow'];
|
|
1004
|
+
insert: TableDynamicRowsMethods<T>['insertRow'];
|
|
1005
|
+
delete: TableDynamicRowsMethods<T>['deleteRow'];
|
|
1006
|
+
copy: TableDynamicRowsMethods<T>['copyRow'];
|
|
1007
|
+
moveUp: TableDynamicRowsMethods<T>['moveRowUp'];
|
|
1008
|
+
moveDown: TableDynamicRowsMethods<T>['moveRowDown'];
|
|
1009
|
+
clearSelection: TableDynamicRowsMethods<T>['clearRowSelection'];
|
|
1010
|
+
getSelected: TableDynamicRowsMethods<T>['getSelectedRowData'];
|
|
1011
|
+
print: TableDynamicRowsMethods<T>['printTable'];
|
|
1012
|
+
download: TableDynamicRowsMethods<T>['downloadTableScreenshot'];
|
|
1013
|
+
};
|
|
1014
|
+
clearAllSelections: TableSelectionMethods<T, C>['clearAllSelections'];
|
|
1015
|
+
}
|
|
1225
1016
|
interface TableInstance<T extends object = DataRecord, C = DataRecord> extends TableEditMethods<T>, TableExpandMethods, TableSelectionMethods<T, C>, TableDynamicRowsMethods<T>, TablePaginationMethods {
|
|
1226
1017
|
exportData: () => Promise<void>;
|
|
1227
1018
|
/** 高级兼容入口;常规操作优先使用实例上的选择、展开和编辑方法。 */
|
|
1228
|
-
getManager: () =>
|
|
1019
|
+
getManager: () => TableManagerApi<T, C>;
|
|
1229
1020
|
/** 此嵌套对象中的 Ref 保持响应式,读取时使用 .value。 */
|
|
1230
1021
|
crossPageSelection: Pick<UseCrossPageSelectionReturn<T>, 'selectedKeys' | 'selectedCount' | 'select' | 'unselect' | 'selectAll' | 'clearAll' | 'getSelectedRows'> & {
|
|
1231
1022
|
enabled: ComputedRef<boolean>;
|
|
@@ -1273,7 +1064,7 @@ interface RowAction<T extends object = DataRecord> {
|
|
|
1273
1064
|
type?: ButtonType$1;
|
|
1274
1065
|
disabled?: boolean | ((row: T, index: number) => boolean);
|
|
1275
1066
|
show?: boolean | ((row: T, index: number) => boolean);
|
|
1276
|
-
onClick?: (row: T, index: number) =>
|
|
1067
|
+
onClick?: (row: T, index: number) => unknown;
|
|
1277
1068
|
tooltip?: string;
|
|
1278
1069
|
}
|
|
1279
1070
|
/**
|
|
@@ -1291,119 +1082,30 @@ type ColumnWithKey = TableColumn & {
|
|
|
1291
1082
|
};
|
|
1292
1083
|
//#endregion
|
|
1293
1084
|
//#region src/components/C_Table/index.vue.d.ts
|
|
1294
|
-
declare const __VLS_export$1: <T extends object = DataRecord>(__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<{
|
|
1295
|
-
props: vue.PublicProps & __VLS_PrettifyLocal<{
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1085
|
+
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<{
|
|
1086
|
+
props: vue.PublicProps & __VLS_PrettifyLocal$1<TableRuntimeProps<T, C> & {
|
|
1087
|
+
onSave?: ((rowData: T, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
|
|
1088
|
+
onCancel?: ((rowData: T, rowIndex: number) => any) | undefined;
|
|
1089
|
+
"onPagination-change"?: ((page: number, pageSize: number) => any) | undefined;
|
|
1090
|
+
"onRow-delete"?: ((deletedRow: T, index: number) => any) | undefined;
|
|
1091
|
+
"onBatch-action-error"?: ((error: unknown, actionKey: string) => any) | undefined;
|
|
1092
|
+
"onRow-key-error"?: ((issues: TableRowKeyIssue<T>[]) => any) | undefined;
|
|
1093
|
+
"onRow-add"?: ((newRow: T) => any) | undefined;
|
|
1094
|
+
"onRow-copy"?: ((originalRow: T, newRow: T) => any) | undefined;
|
|
1095
|
+
"onRow-move"?: ((row: T, fromIndex: number, toIndex: number) => any) | undefined;
|
|
1096
|
+
"onRow-selection-change"?: ((selectedKey: DataTableRowKey | null, selectedRow: T | null) => any) | undefined;
|
|
1097
|
+
"onView-detail"?: ((data: T) => any) | undefined;
|
|
1098
|
+
"onColumn-change"?: ((columns: TableColumn<T>[]) => any) | undefined;
|
|
1099
|
+
"onExpand-change"?: ((expandedKeys: DataTableRowKey[], row?: T | undefined, expanded?: boolean | undefined) => any) | undefined;
|
|
1100
|
+
"onSelection-change"?: ((checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => any) | undefined;
|
|
1101
|
+
"onChild-selection-change"?: ((parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => any) | undefined;
|
|
1102
|
+
"onParent-child-link-change"?: ((parentKey: DataTableRowKey, shouldSelect: boolean) => any) | undefined;
|
|
1103
|
+
"onUpdate:data"?: ((data: T[]) => any) | undefined;
|
|
1104
|
+
"onEdit-error"?: ((error: unknown) => any) | undefined;
|
|
1309
1105
|
}> & (typeof globalThis extends {
|
|
1310
1106
|
__VLS_PROPS_FALLBACK: infer P;
|
|
1311
1107
|
} ? P : {});
|
|
1312
|
-
expose: (exposed: vue.ShallowUnwrapRef<
|
|
1313
|
-
startEdit: (rowKey: DataTableRowKey, columnKey?: string) => void;
|
|
1314
|
-
cancelEdit: () => void;
|
|
1315
|
-
saveEdit: () => Promise<void>;
|
|
1316
|
-
expandRow: (rowKey: DataTableRowKey) => Promise<void>;
|
|
1317
|
-
collapseRow: (rowKey: DataTableRowKey) => void;
|
|
1318
|
-
toggleExpand: (rowKey: DataTableRowKey) => Promise<void>;
|
|
1319
|
-
retryExpand: (rowKey: DataTableRowKey) => Promise<void>;
|
|
1320
|
-
invalidateExpand: (rowKey?: DataTableRowKey) => void;
|
|
1321
|
-
expandAll: () => Promise<void>;
|
|
1322
|
-
collapseAll: () => void;
|
|
1323
|
-
selectRow: (rowKey: DataTableRowKey) => boolean;
|
|
1324
|
-
unselectRow: (rowKey: DataTableRowKey) => void;
|
|
1325
|
-
selectAll: () => void;
|
|
1326
|
-
clearSelection: () => void;
|
|
1327
|
-
isRowSelected: (rowKey: DataTableRowKey) => boolean;
|
|
1328
|
-
clearAllSelections: () => void;
|
|
1329
|
-
selectChildRow: (parentKey: DataTableRowKey, childKey: DataTableRowKey) => void;
|
|
1330
|
-
unselectChildRow: (parentKey: DataTableRowKey, childKey: DataTableRowKey) => void;
|
|
1331
|
-
selectAllChildren: (parentKey: DataTableRowKey) => void;
|
|
1332
|
-
clearChildrenSelection: (parentKey: DataTableRowKey) => void;
|
|
1333
|
-
getChildSelectedRows: (parentKey: DataTableRowKey) => DataRecord[];
|
|
1334
|
-
addRow: () => void;
|
|
1335
|
-
insertRow: () => void;
|
|
1336
|
-
deleteRow: () => void;
|
|
1337
|
-
copyRow: () => void;
|
|
1338
|
-
moveRowUp: () => void;
|
|
1339
|
-
moveRowDown: () => void;
|
|
1340
|
-
clearRowSelection: () => void;
|
|
1341
|
-
getSelectedRowData: () => DataRecord | null;
|
|
1342
|
-
printTable: (elementRef?: HTMLElement) => Promise<void>;
|
|
1343
|
-
downloadTableScreenshot: (elementRef?: HTMLElement, filename?: string) => Promise<void>;
|
|
1344
|
-
resetToFirstPage: () => void;
|
|
1345
|
-
getTotalPages: () => number;
|
|
1346
|
-
getSelectedRows: () => DataRecord[];
|
|
1347
|
-
getEditingData: () => DataRecord | null | undefined;
|
|
1348
|
-
isEditing: (rowKey: DataTableRowKey, columnKey?: string) => boolean;
|
|
1349
|
-
isExpanded: (rowKey: DataTableRowKey) => boolean;
|
|
1350
|
-
getManager: () => {
|
|
1351
|
-
edit: {
|
|
1352
|
-
start(rowKey: DataTableRowKey, columnKey?: string): void;
|
|
1353
|
-
cancel(): void;
|
|
1354
|
-
save(): Promise<void>;
|
|
1355
|
-
isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean;
|
|
1356
|
-
getEditingData(): DataRecord | null | undefined;
|
|
1357
|
-
};
|
|
1358
|
-
expand: {
|
|
1359
|
-
row(rowKey: DataTableRowKey): Promise<void>;
|
|
1360
|
-
collapse(rowKey: DataTableRowKey): void;
|
|
1361
|
-
toggle(rowKey: DataTableRowKey): Promise<void>;
|
|
1362
|
-
all(): Promise<void>;
|
|
1363
|
-
collapseAll(): void;
|
|
1364
|
-
isExpanded(rowKey: DataTableRowKey): boolean;
|
|
1365
|
-
};
|
|
1366
|
-
selection: {
|
|
1367
|
-
select(rowKey: DataTableRowKey): void;
|
|
1368
|
-
unselect(rowKey: DataTableRowKey): void;
|
|
1369
|
-
all(): void;
|
|
1370
|
-
clear(): void;
|
|
1371
|
-
isSelected(rowKey: DataTableRowKey): boolean;
|
|
1372
|
-
getSelected(): DataRecord[];
|
|
1373
|
-
};
|
|
1374
|
-
childSelection: {
|
|
1375
|
-
select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void;
|
|
1376
|
-
unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void;
|
|
1377
|
-
selectAll(parentKey: DataTableRowKey): void;
|
|
1378
|
-
clear(parentKey: DataTableRowKey): void;
|
|
1379
|
-
getSelected(parentKey: DataTableRowKey): DataRecord[];
|
|
1380
|
-
};
|
|
1381
|
-
dynamicRows: {
|
|
1382
|
-
add(): void;
|
|
1383
|
-
insert(): void;
|
|
1384
|
-
delete(): void;
|
|
1385
|
-
copy(): void;
|
|
1386
|
-
moveUp(): void;
|
|
1387
|
-
moveDown(): void;
|
|
1388
|
-
clearSelection(): void;
|
|
1389
|
-
getSelected(): DataRecord | null;
|
|
1390
|
-
print(elementRef?: HTMLElement): Promise<void>;
|
|
1391
|
-
download(elementRef?: HTMLElement, filename?: string): Promise<void>;
|
|
1392
|
-
};
|
|
1393
|
-
clearAllSelections(): void;
|
|
1394
|
-
}; /** 导出数据 */
|
|
1395
|
-
exportData: () => Promise<void>; /** 跨页选择 */
|
|
1396
|
-
crossPageSelection: {
|
|
1397
|
-
enabled: vue.ComputedRef<boolean>;
|
|
1398
|
-
selectedKeys: vue.Ref<Set<DataTableRowKey>, Set<DataTableRowKey>>;
|
|
1399
|
-
selectedCount: vue.ComputedRef<number>;
|
|
1400
|
-
select: (key: DataTableRowKey) => boolean;
|
|
1401
|
-
unselect: (key: DataTableRowKey) => void;
|
|
1402
|
-
selectAll: () => void;
|
|
1403
|
-
clearAll: () => void;
|
|
1404
|
-
getSelectedRows: () => DataRecord[];
|
|
1405
|
-
};
|
|
1406
|
-
}>) => void;
|
|
1108
|
+
expose: (exposed: vue.ShallowUnwrapRef<TableInstance<T, C>>) => void;
|
|
1407
1109
|
attrs: any;
|
|
1408
1110
|
slots: {
|
|
1409
1111
|
'toolbar-left'?: (props: {}) => any;
|
|
@@ -1416,18 +1118,18 @@ declare const __VLS_export$1: <T extends object = DataRecord>(__VLS_props: NonNu
|
|
|
1416
1118
|
} & {
|
|
1417
1119
|
loading?: (props: {}) => any;
|
|
1418
1120
|
};
|
|
1419
|
-
emit: ((evt: "save", rowData:
|
|
1121
|
+
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);
|
|
1420
1122
|
}>) => vue.VNode & {
|
|
1421
1123
|
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
1422
1124
|
};
|
|
1423
1125
|
declare const _default$1: typeof __VLS_export$1;
|
|
1424
|
-
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
|
|
1126
|
+
type __VLS_PrettifyLocal$1<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
|
|
1425
1127
|
//#endregion
|
|
1426
1128
|
//#region src/components/C_Table/helpers.d.ts
|
|
1427
1129
|
/** Type-safe identity helper that rejects misspelled business field keys. */
|
|
1428
1130
|
declare function defineTableColumns<T extends object>(columns: StrictTableColumn<T>[]): StrictTableColumn<T>[];
|
|
1429
1131
|
/** Preserve row types across edit, action, summary and batch callbacks. */
|
|
1430
|
-
declare function defineTableConfig<T extends object>(config: TableConfig<T>): TableConfig<T>;
|
|
1132
|
+
declare function defineTableConfig<T extends object, C = unknown>(config: TableConfig<T, C>): TableConfig<T, C>;
|
|
1431
1133
|
/** Find missing and duplicate row keys before stateful table features consume them. */
|
|
1432
1134
|
declare function validateTableRowKeys<T extends object>(data: readonly T[], rowKey: (row: T) => DataTableRowKey | null | undefined): TableRowKeyIssue<T>[];
|
|
1433
1135
|
//#endregion
|
|
@@ -1499,6 +1201,245 @@ interface UseTableColumnsReturn {
|
|
|
1499
1201
|
*/
|
|
1500
1202
|
declare function useTableColumns(options: UseTableColumnsOptions): UseTableColumnsReturn;
|
|
1501
1203
|
//#endregion
|
|
1204
|
+
//#region src/components/C_Table/composables/useRowEdit.d.ts
|
|
1205
|
+
/** 行级校验错误 */
|
|
1206
|
+
interface RowValidationError {
|
|
1207
|
+
field: string;
|
|
1208
|
+
message: string;
|
|
1209
|
+
}
|
|
1210
|
+
/**
|
|
1211
|
+
* 行编辑配置选项
|
|
1212
|
+
*/
|
|
1213
|
+
interface RowEditOptions {
|
|
1214
|
+
data: () => DataRecord[];
|
|
1215
|
+
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1216
|
+
onSave?: (rowData: DataRecord, rowIndex: number, originalKey?: DataTableRowKey) => unknown;
|
|
1217
|
+
onCancel?: (rowData: DataRecord, rowIndex: number) => unknown;
|
|
1218
|
+
/** 列配置(用于提取校验规则) */
|
|
1219
|
+
columns?: () => TableColumn[];
|
|
1220
|
+
}
|
|
1221
|
+
/**
|
|
1222
|
+
* 可编辑行组合函数,提供表格整行的编辑功能
|
|
1223
|
+
*/
|
|
1224
|
+
declare function useRowEdit(options: RowEditOptions): {
|
|
1225
|
+
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1226
|
+
editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
|
|
1227
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1228
|
+
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1229
|
+
startEditRow: (rowKey: DataTableRowKey) => boolean;
|
|
1230
|
+
cancelEditRow: () => Promise<void>;
|
|
1231
|
+
saveEditRow: () => Promise<{
|
|
1232
|
+
updatedData: DataRecord;
|
|
1233
|
+
rowIndex: number;
|
|
1234
|
+
} | undefined>;
|
|
1235
|
+
validateRow: () => Promise<boolean>;
|
|
1236
|
+
validationErrors: vue.Ref<{
|
|
1237
|
+
field: string;
|
|
1238
|
+
message: string;
|
|
1239
|
+
}[], RowValidationError[] | {
|
|
1240
|
+
field: string;
|
|
1241
|
+
message: string;
|
|
1242
|
+
}[]>;
|
|
1243
|
+
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
1244
|
+
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
1245
|
+
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1246
|
+
invalidate: () => void;
|
|
1247
|
+
};
|
|
1248
|
+
//#endregion
|
|
1249
|
+
//#region src/components/C_Table/composables/useTableManager.d.ts
|
|
1250
|
+
/**
|
|
1251
|
+
* 表格管理器配置接口
|
|
1252
|
+
*/
|
|
1253
|
+
interface TableManagerConfig {
|
|
1254
|
+
feedback?: ComponentFeedback;
|
|
1255
|
+
locale?: ComponentLocale;
|
|
1256
|
+
editable: boolean;
|
|
1257
|
+
editMode: string;
|
|
1258
|
+
showRowActions: boolean;
|
|
1259
|
+
modalTitle: string;
|
|
1260
|
+
modalWidth: number;
|
|
1261
|
+
onEditSave?: (rowData: DataRecord, rowIndex: number, columnKey?: string) => unknown;
|
|
1262
|
+
onEditCancel?: (rowData: DataRecord, rowIndex: number) => unknown;
|
|
1263
|
+
onEditError?: (error: unknown) => void;
|
|
1264
|
+
expandable: boolean;
|
|
1265
|
+
defaultExpandedKeys?: DataTableRowKey[];
|
|
1266
|
+
onLoadExpandData?: (row: DataRecord) => Promise<any[]> | any[];
|
|
1267
|
+
onExpandError?: (error: unknown, row: DataRecord) => void;
|
|
1268
|
+
renderExpandContent?: unknown;
|
|
1269
|
+
rowExpandable?: (row: DataRecord) => boolean;
|
|
1270
|
+
enableSelection: boolean;
|
|
1271
|
+
defaultCheckedKeys?: DataTableRowKey[];
|
|
1272
|
+
rowCheckable?: (row: DataRecord) => boolean;
|
|
1273
|
+
maxSelection?: number;
|
|
1274
|
+
enableChildSelection: boolean;
|
|
1275
|
+
childRowCheckable?: (childRow: DataRecord, parentRow: DataRecord) => boolean;
|
|
1276
|
+
enableParentChildLink: boolean;
|
|
1277
|
+
parentChildLinkMode: ParentChildLinkMode;
|
|
1278
|
+
dynamicRows?: DynamicRowsOptions<DataRecord>;
|
|
1279
|
+
treeEnabled?: boolean;
|
|
1280
|
+
treeChildrenKey?: string;
|
|
1281
|
+
}
|
|
1282
|
+
/**
|
|
1283
|
+
* 表格管理器参数接口
|
|
1284
|
+
*/
|
|
1285
|
+
interface TableManagerParams {
|
|
1286
|
+
config: MaybeRefOrGetter<TableManagerConfig>;
|
|
1287
|
+
data: () => DataRecord[];
|
|
1288
|
+
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1289
|
+
emit: (...args: any[]) => unknown;
|
|
1290
|
+
/** 列配置(用于编辑校验) */
|
|
1291
|
+
columns?: () => TableColumn[];
|
|
1292
|
+
/** UI 壳提供加载内容,状态引擎保持可独立调用。 */
|
|
1293
|
+
renderLoading?: () => VNodeChild;
|
|
1294
|
+
/** String row-key field inherited by dynamic row creation; explicit dynamicRows.rowKey wins. */
|
|
1295
|
+
rowKeyField?: MaybeRefOrGetter<string | undefined>;
|
|
1296
|
+
}
|
|
1297
|
+
/**
|
|
1298
|
+
* 事件处理器接口
|
|
1299
|
+
*/
|
|
1300
|
+
interface EventHandlers {
|
|
1301
|
+
onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string, originalKey?: DataTableRowKey) => Promise<void>;
|
|
1302
|
+
onCancel: (rowData: DataRecord, rowIndex: number) => Promise<void>;
|
|
1303
|
+
onExpandChange: (keys: DataTableRowKey[], row?: DataRecord, expanded?: boolean) => void;
|
|
1304
|
+
onSelectionChange: (checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey, DataTableRowKey[]>) => void;
|
|
1305
|
+
onChildSelectionChange: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void;
|
|
1306
|
+
onRowChange: (data: DataRecord[]) => void;
|
|
1307
|
+
onRowSelectionChange: (selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void;
|
|
1308
|
+
onRowAdd: (newRow: DataRecord) => void;
|
|
1309
|
+
onRowDelete: (deletedRow: DataRecord, index: number) => void;
|
|
1310
|
+
onRowCopy: (originalRow: DataRecord, newRow: DataRecord) => void;
|
|
1311
|
+
onRowMove: (row: DataRecord, fromIndex: number, toIndex: number) => void;
|
|
1312
|
+
}
|
|
1313
|
+
/**
|
|
1314
|
+
* 表格统一状态管理器
|
|
1315
|
+
*/
|
|
1316
|
+
declare function useTableManager(params: TableManagerParams): {
|
|
1317
|
+
editStates: {
|
|
1318
|
+
rowEdit: {
|
|
1319
|
+
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1320
|
+
editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
|
|
1321
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1322
|
+
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1323
|
+
startEditRow: (rowKey: DataTableRowKey) => boolean;
|
|
1324
|
+
cancelEditRow: () => Promise<void>;
|
|
1325
|
+
saveEditRow: () => Promise<{
|
|
1326
|
+
updatedData: DataRecord;
|
|
1327
|
+
rowIndex: number;
|
|
1328
|
+
} | undefined>;
|
|
1329
|
+
validateRow: () => Promise<boolean>;
|
|
1330
|
+
validationErrors: vue.Ref<{
|
|
1331
|
+
field: string;
|
|
1332
|
+
message: string;
|
|
1333
|
+
}[], RowValidationError[] | {
|
|
1334
|
+
field: string;
|
|
1335
|
+
message: string;
|
|
1336
|
+
}[]>;
|
|
1337
|
+
getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
|
|
1338
|
+
updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
|
|
1339
|
+
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1340
|
+
invalidate: () => void;
|
|
1341
|
+
};
|
|
1342
|
+
cellEdit: {
|
|
1343
|
+
editingCell: vue.Ref<{
|
|
1344
|
+
rowKey: DataTableRowKey | null;
|
|
1345
|
+
columnKey: string | null;
|
|
1346
|
+
}, {
|
|
1347
|
+
rowKey: DataTableRowKey | null;
|
|
1348
|
+
columnKey: string | null;
|
|
1349
|
+
} | {
|
|
1350
|
+
rowKey: DataTableRowKey | null;
|
|
1351
|
+
columnKey: string | null;
|
|
1352
|
+
}>;
|
|
1353
|
+
editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
|
|
1354
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1355
|
+
isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1356
|
+
startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
|
|
1357
|
+
saveEditCell: () => Promise<{
|
|
1358
|
+
updatedData: {
|
|
1359
|
+
[x: string]: unknown;
|
|
1360
|
+
};
|
|
1361
|
+
rowIndex: number;
|
|
1362
|
+
columnKey: string;
|
|
1363
|
+
} | undefined>;
|
|
1364
|
+
cancelEditCell: () => void;
|
|
1365
|
+
validateCell: () => Promise<boolean>;
|
|
1366
|
+
cellValidationError: vue.Ref<string | null, string | null>;
|
|
1367
|
+
getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
|
|
1368
|
+
updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
|
|
1369
|
+
findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
|
|
1370
|
+
invalidate: () => void;
|
|
1371
|
+
};
|
|
1372
|
+
modalEdit: {
|
|
1373
|
+
isModalVisible: vue.Ref<boolean, boolean>;
|
|
1374
|
+
isSaving: vue.Ref<boolean, boolean>;
|
|
1375
|
+
editingData: vue.Ref<DataRecord, DataRecord>;
|
|
1376
|
+
editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
|
|
1377
|
+
editingRowIndex: vue.ComputedRef<number>;
|
|
1378
|
+
startEdit: (rowKey: DataTableRowKey, sourceData?: DataRecord | undefined) => boolean;
|
|
1379
|
+
saveEdit: (formData?: DataRecord | undefined) => Promise<{
|
|
1380
|
+
updatedData: any;
|
|
1381
|
+
rowIndex: number;
|
|
1382
|
+
} | undefined>;
|
|
1383
|
+
cancelEdit: () => Promise<boolean>;
|
|
1384
|
+
updateEditingData: (data: DataRecord) => boolean;
|
|
1385
|
+
resetEditingState: () => boolean;
|
|
1386
|
+
isEditingRow: (rowKey: DataTableRowKey) => boolean;
|
|
1387
|
+
getEditingRowData: (rowKey: DataTableRowKey) => any;
|
|
1388
|
+
invalidate: () => void;
|
|
1389
|
+
};
|
|
1390
|
+
};
|
|
1391
|
+
expandState: UseTableExpandReturn<DataRecord, DataRecord>;
|
|
1392
|
+
dynamicRowsState: DynamicRowsReturn<DataRecord>;
|
|
1393
|
+
stateManager: {
|
|
1394
|
+
edit: {
|
|
1395
|
+
/** 开始编辑 */start(rowKey: DataTableRowKey, columnKey?: string): void; /** 取消编辑 */
|
|
1396
|
+
cancel(): void; /** 保存编辑 */
|
|
1397
|
+
save(): Promise<void>; /** 是否正在编辑 */
|
|
1398
|
+
isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean; /** 获取当前编辑数据 */
|
|
1399
|
+
getEditingData(): DataRecord | null | undefined;
|
|
1400
|
+
};
|
|
1401
|
+
expand: {
|
|
1402
|
+
/** 展开行 */row(rowKey: DataTableRowKey): Promise<void>; /** 折叠行 */
|
|
1403
|
+
collapse(rowKey: DataTableRowKey): void; /** 展开折叠切换 */
|
|
1404
|
+
toggle(rowKey: DataTableRowKey): Promise<void>; /** 展开所有行 */
|
|
1405
|
+
all(): Promise<void>; /** 折叠所有行 */
|
|
1406
|
+
collapseAll(): void; /** 检查行是否已展开 */
|
|
1407
|
+
isExpanded(rowKey: DataTableRowKey): boolean;
|
|
1408
|
+
};
|
|
1409
|
+
selection: {
|
|
1410
|
+
/** 选择指定行 */select(rowKey: DataTableRowKey): void; /** 取消选择指定行 */
|
|
1411
|
+
unselect(rowKey: DataTableRowKey): void; /** 选择所有行 */
|
|
1412
|
+
all(): void; /** 清除所有行选择 */
|
|
1413
|
+
clear(): void; /** 检查行是否已选择 */
|
|
1414
|
+
isSelected(rowKey: DataTableRowKey): boolean; /** 获取所有已选择的行数据 */
|
|
1415
|
+
getSelected(): DataRecord[];
|
|
1416
|
+
};
|
|
1417
|
+
childSelection: {
|
|
1418
|
+
/** 选择指定父行下的子行 */select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 取消选择指定父行下的子行 */
|
|
1419
|
+
unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 选择指定父行下的所有子行 */
|
|
1420
|
+
selectAll(parentKey: DataTableRowKey): void; /** 清除指定父行下的所有子行选择 */
|
|
1421
|
+
clear(parentKey: DataTableRowKey): void; /** 获取指定父行下所有已选择的子行数据 */
|
|
1422
|
+
getSelected(parentKey: DataTableRowKey): DataRecord[];
|
|
1423
|
+
};
|
|
1424
|
+
dynamicRows: {
|
|
1425
|
+
/** 添加行 */add(): void; /** 插入行 */
|
|
1426
|
+
insert(): void; /** 删除行 */
|
|
1427
|
+
delete(): void; /** 复制行 */
|
|
1428
|
+
copy(): void; /** 上移动态行 */
|
|
1429
|
+
moveUp(): void; /** 下移动态行 */
|
|
1430
|
+
moveDown(): void; /** 清空动态行数据 */
|
|
1431
|
+
clearSelection(): void; /** 获取当前选中的动态行数据 */
|
|
1432
|
+
getSelected(): DataRecord | null; /** 打印表格 */
|
|
1433
|
+
print(elementRef?: HTMLElement): Promise<void>; /** 导出表格数据 */
|
|
1434
|
+
download(elementRef?: HTMLElement, filename?: string): Promise<void>;
|
|
1435
|
+
}; /** 清除所有选择 */
|
|
1436
|
+
clearAllSelections(): void;
|
|
1437
|
+
};
|
|
1438
|
+
expandedKeys: vue.ComputedRef<DataTableRowKey[]>;
|
|
1439
|
+
checkedKeys: vue.ComputedRef<DataTableRowKey[]>;
|
|
1440
|
+
eventHandlers: EventHandlers;
|
|
1441
|
+
};
|
|
1442
|
+
//#endregion
|
|
1502
1443
|
//#region src/components/C_Table/composables/useTableExpand.d.ts
|
|
1503
1444
|
/**
|
|
1504
1445
|
*
|
|
@@ -1540,7 +1481,7 @@ declare function usePagination<T extends object = DataRecord>(options: UsePagina
|
|
|
1540
1481
|
interface CellEditOptions {
|
|
1541
1482
|
data: () => DataRecord[];
|
|
1542
1483
|
rowKey: (row: DataRecord) => DataTableRowKey;
|
|
1543
|
-
onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string, originalKey?: DataTableRowKey) =>
|
|
1484
|
+
onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string, originalKey?: DataTableRowKey) => unknown;
|
|
1544
1485
|
/** 列配置(用于提取校验规则) */
|
|
1545
1486
|
columns?: () => TableColumn[];
|
|
1546
1487
|
}
|
|
@@ -1582,8 +1523,8 @@ declare function useCellEdit(options: CellEditOptions): {
|
|
|
1582
1523
|
interface ModalEditOptions<T extends object = DataRecord> {
|
|
1583
1524
|
data: () => T[];
|
|
1584
1525
|
rowKey: (row: T) => DataTableRowKey;
|
|
1585
|
-
onSave?: (editingData: T, rowIndex: number, originalKey?: DataTableRowKey) =>
|
|
1586
|
-
onCancel?: (originalData: T, rowIndex: number) =>
|
|
1526
|
+
onSave?: (editingData: T, rowIndex: number, originalKey?: DataTableRowKey) => unknown;
|
|
1527
|
+
onCancel?: (originalData: T, rowIndex: number) => unknown;
|
|
1587
1528
|
}
|
|
1588
1529
|
/** Modal edit state with lossless snapshots and retry-safe async saves. */
|
|
1589
1530
|
declare function useModalEdit<T extends object = DataRecord>(options: ModalEditOptions<T>): {
|
|
@@ -1652,9 +1593,9 @@ interface TreeNodeData extends TreeOption$1 {
|
|
|
1652
1593
|
type?: string;
|
|
1653
1594
|
children?: TreeNodeData[];
|
|
1654
1595
|
}
|
|
1655
|
-
interface DropInfo {
|
|
1656
|
-
node:
|
|
1657
|
-
dragNode:
|
|
1596
|
+
interface DropInfo<T extends object = TreeOption$1> {
|
|
1597
|
+
node: T;
|
|
1598
|
+
dragNode: T;
|
|
1658
1599
|
dropPosition: 'before' | 'inside' | 'after';
|
|
1659
1600
|
event: DragEvent;
|
|
1660
1601
|
}
|
|
@@ -1665,12 +1606,12 @@ interface StatusConfig {
|
|
|
1665
1606
|
type: StatusType;
|
|
1666
1607
|
}>;
|
|
1667
1608
|
}
|
|
1668
|
-
interface ActionConfig {
|
|
1609
|
+
interface ActionConfig<T extends object = TreeNodeData> {
|
|
1669
1610
|
key: string;
|
|
1670
1611
|
text: string;
|
|
1671
1612
|
icon: string;
|
|
1672
1613
|
type?: ButtonType;
|
|
1673
|
-
show?: (node:
|
|
1614
|
+
show?: (node: T) => boolean;
|
|
1674
1615
|
confirm?: string;
|
|
1675
1616
|
}
|
|
1676
1617
|
interface IconConfig {
|
|
@@ -1678,22 +1619,67 @@ interface IconConfig {
|
|
|
1678
1619
|
typeMap?: Record<string, string>;
|
|
1679
1620
|
colorMap?: Record<string, string>;
|
|
1680
1621
|
}
|
|
1681
|
-
type
|
|
1682
|
-
|
|
1683
|
-
|
|
1622
|
+
type MaybeArray<T> = T | T[];
|
|
1623
|
+
type TreeUpdateHandler<T extends object, A extends TreeUpdateMeta['action']> = (keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T, A>) => void;
|
|
1624
|
+
type TreeDragHandler<T extends object> = (info: {
|
|
1625
|
+
node: T;
|
|
1626
|
+
event: DragEvent;
|
|
1627
|
+
}) => void;
|
|
1628
|
+
/** 原生功能保持透传,涉及节点的回调由数据源推导业务类型。 */
|
|
1629
|
+
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'> & {
|
|
1630
|
+
filter?: (pattern: string, node: T) => boolean;
|
|
1631
|
+
onLoad?: (node: T) => Promise<unknown>;
|
|
1632
|
+
getChildren?: (node: T) => unknown;
|
|
1633
|
+
renderLabel?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1634
|
+
renderPrefix?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1635
|
+
renderSuffix?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1636
|
+
renderSwitcherIcon?: (context: {
|
|
1637
|
+
expanded: boolean;
|
|
1638
|
+
selected: boolean;
|
|
1639
|
+
option: T;
|
|
1640
|
+
}) => VNodeChild;
|
|
1641
|
+
nodeProps?: (context: {
|
|
1642
|
+
option: T;
|
|
1643
|
+
}) => ReturnType<NonNullable<TreeProps['nodeProps']>>;
|
|
1644
|
+
allowDrop?: (info: {
|
|
1645
|
+
dropPosition: DropInfo['dropPosition'];
|
|
1646
|
+
node: T;
|
|
1647
|
+
phase: 'drag' | 'drop';
|
|
1648
|
+
}) => boolean;
|
|
1649
|
+
checkOnClick?: boolean | ((node: T) => boolean);
|
|
1650
|
+
overrideDefaultNodeClickBehavior?: (info: {
|
|
1651
|
+
option: T;
|
|
1652
|
+
}) => ReturnType<NonNullable<TreeProps['overrideDefaultNodeClickBehavior']>>;
|
|
1653
|
+
onDrop?: MaybeArray<(info: DropInfo<T>) => void>;
|
|
1654
|
+
onDragenter?: MaybeArray<TreeDragHandler<T>>;
|
|
1655
|
+
onDragleave?: MaybeArray<TreeDragHandler<T>>;
|
|
1656
|
+
onDragend?: MaybeArray<TreeDragHandler<T>>;
|
|
1657
|
+
onDragstart?: MaybeArray<TreeDragHandler<T>>;
|
|
1658
|
+
onDragover?: MaybeArray<TreeDragHandler<T>>;
|
|
1659
|
+
onUpdateExpandedKeys?: MaybeArray<TreeUpdateHandler<T, 'expand' | 'collapse' | 'filter'>>;
|
|
1660
|
+
'onUpdate:expandedKeys'?: MaybeArray<TreeUpdateHandler<T, 'expand' | 'collapse' | 'filter'>>;
|
|
1661
|
+
onUpdateSelectedKeys?: MaybeArray<TreeUpdateHandler<T, 'select' | 'unselect'>>;
|
|
1662
|
+
'onUpdate:selectedKeys'?: MaybeArray<TreeUpdateHandler<T, 'select' | 'unselect'>>;
|
|
1663
|
+
onUpdateCheckedKeys?: MaybeArray<TreeUpdateHandler<T, 'check' | 'uncheck'>>;
|
|
1664
|
+
'onUpdate:checkedKeys'?: MaybeArray<TreeUpdateHandler<T, 'check' | 'uncheck'>>;
|
|
1665
|
+
onUpdateIndeterminateKeys?: MaybeArray<(keys: TreeKey[], options: Array<T | null>) => void>;
|
|
1666
|
+
'onUpdate:indeterminateKeys'?: MaybeArray<(keys: TreeKey[], options: Array<T | null>) => void>;
|
|
1667
|
+
};
|
|
1668
|
+
interface TreeRenderContext<T extends object = TreeOption$1> {
|
|
1669
|
+
option: T;
|
|
1684
1670
|
checked: boolean;
|
|
1685
1671
|
selected: boolean;
|
|
1686
1672
|
}
|
|
1687
|
-
interface TreeUpdateMeta {
|
|
1688
|
-
node:
|
|
1689
|
-
action:
|
|
1673
|
+
interface TreeUpdateMeta<T extends object = TreeOption$1, A extends 'select' | 'unselect' | 'check' | 'uncheck' | 'expand' | 'collapse' | 'filter' = 'select' | 'unselect' | 'check' | 'uncheck' | 'expand' | 'collapse' | 'filter'> {
|
|
1674
|
+
node: T | null;
|
|
1675
|
+
action: A;
|
|
1690
1676
|
}
|
|
1691
|
-
interface TreeProps$1 {
|
|
1677
|
+
interface TreeProps$1<T extends object = TreeNodeData> {
|
|
1692
1678
|
/** Business interfaces need no string index signature; fields are selected by config. */
|
|
1693
|
-
data:
|
|
1679
|
+
data: readonly T[];
|
|
1694
1680
|
mode?: TreeMode;
|
|
1695
1681
|
/** Native tree capabilities; explicit wrapper props have priority. */
|
|
1696
|
-
treeProps?: TreeNativeProps
|
|
1682
|
+
treeProps?: TreeNativeProps<T>;
|
|
1697
1683
|
density?: ComponentDensity;
|
|
1698
1684
|
keyField?: string;
|
|
1699
1685
|
labelField?: string;
|
|
@@ -1710,7 +1696,7 @@ interface TreeProps$1 {
|
|
|
1710
1696
|
iconField?: string;
|
|
1711
1697
|
iconConfig?: IconConfig;
|
|
1712
1698
|
statusConfigs?: StatusConfig[];
|
|
1713
|
-
actions?: ActionConfig[];
|
|
1699
|
+
actions?: ActionConfig<T>[];
|
|
1714
1700
|
defaultExpandAll?: boolean;
|
|
1715
1701
|
defaultExpandedKeys?: TreeKey[];
|
|
1716
1702
|
defaultSelectedKeys?: TreeKey[];
|
|
@@ -1719,125 +1705,110 @@ interface TreeProps$1 {
|
|
|
1719
1705
|
selectedKeys?: TreeKey[];
|
|
1720
1706
|
checkedKeys?: TreeKey[];
|
|
1721
1707
|
}
|
|
1722
|
-
interface TreeExpose {
|
|
1708
|
+
interface TreeExpose<T extends object = TreeNodeData> {
|
|
1723
1709
|
expandAll: () => void;
|
|
1724
1710
|
collapseAll: () => void;
|
|
1725
1711
|
selectNode: (key: TreeKey) => void;
|
|
1726
1712
|
clearSelection: () => void;
|
|
1727
1713
|
setCheckedKeys: (keys: TreeKey[]) => void;
|
|
1728
1714
|
clearChecked: () => void;
|
|
1729
|
-
getSelectedNode: () =>
|
|
1730
|
-
getCheckedData:
|
|
1731
|
-
|
|
1715
|
+
getSelectedNode: () => T | null;
|
|
1716
|
+
getCheckedData: () => {
|
|
1717
|
+
keys: TreeKey[];
|
|
1718
|
+
options: Array<T | null>;
|
|
1719
|
+
};
|
|
1720
|
+
getIndeterminateData: () => {
|
|
1721
|
+
keys: TreeKey[];
|
|
1722
|
+
options: Array<T | null>;
|
|
1723
|
+
};
|
|
1732
1724
|
scrollTo: TreeInst['scrollTo'];
|
|
1733
1725
|
/** Vue 公开实例会解包顶层 Ref;这些属性直接读取数组。 */
|
|
1734
1726
|
expandedKeys: TreeKey[];
|
|
1735
1727
|
selectedKeys: TreeKey[];
|
|
1736
1728
|
checkedKeys: TreeKey[];
|
|
1737
1729
|
}
|
|
1738
|
-
interface TreeEmits {
|
|
1730
|
+
interface TreeEmits<T extends object = TreeNodeData> {
|
|
1739
1731
|
'update:searchPattern': [pattern: string];
|
|
1740
|
-
'update:expandedKeys': [keys: TreeKey[], options: Array<
|
|
1741
|
-
'update:selectedKeys': [keys: TreeKey[], options: Array<
|
|
1742
|
-
'update:checkedKeys': [keys: TreeKey[], options: Array<
|
|
1743
|
-
'node-select': [node:
|
|
1744
|
-
'node-action': [action: string, node:
|
|
1745
|
-
'node-drop': [info: DropInfo];
|
|
1746
|
-
'load-error': [error: unknown, node:
|
|
1747
|
-
add: [parentNode?:
|
|
1732
|
+
'update:expandedKeys': [keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T>];
|
|
1733
|
+
'update:selectedKeys': [keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T>];
|
|
1734
|
+
'update:checkedKeys': [keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T>];
|
|
1735
|
+
'node-select': [node: T | null, selectedKeys: TreeKey[]];
|
|
1736
|
+
'node-action': [action: string, node: T];
|
|
1737
|
+
'node-drop': [info: DropInfo<T>];
|
|
1738
|
+
'load-error': [error: unknown, node: T];
|
|
1739
|
+
add: [parentNode?: T];
|
|
1748
1740
|
refresh: [];
|
|
1749
1741
|
}
|
|
1750
|
-
interface TreeSlots {
|
|
1742
|
+
interface TreeSlots<T extends object = TreeOption$1> {
|
|
1751
1743
|
'toolbar-actions'?: () => VNodeChild;
|
|
1752
|
-
label?: (context: TreeRenderContext) => VNodeChild;
|
|
1753
|
-
prefix?: (context: TreeRenderContext) => VNodeChild;
|
|
1754
|
-
suffix?: (context: TreeRenderContext) => VNodeChild;
|
|
1744
|
+
label?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1745
|
+
prefix?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1746
|
+
suffix?: (context: TreeRenderContext<T>) => VNodeChild;
|
|
1755
1747
|
empty?: () => VNodeChild;
|
|
1756
1748
|
}
|
|
1757
1749
|
//#endregion
|
|
1758
1750
|
//#region src/components/C_Tree/index.vue.d.ts
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
"
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
"onLoad-error"?: ((error: unknown, node: TreeOption$1) => any) | undefined;
|
|
1785
|
-
onRefresh?: (() => any) | undefined;
|
|
1786
|
-
}>, {
|
|
1787
|
-
mode: TreeMode;
|
|
1788
|
-
density: ComponentDensity;
|
|
1789
|
-
searchable: boolean;
|
|
1790
|
-
searchPlaceholder: string;
|
|
1791
|
-
draggable: boolean;
|
|
1792
|
-
showLine: boolean;
|
|
1793
|
-
showToolbar: boolean;
|
|
1794
|
-
addable: boolean;
|
|
1795
|
-
addText: string;
|
|
1796
|
-
refreshable: boolean;
|
|
1797
|
-
defaultExpandAll: boolean;
|
|
1798
|
-
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
1799
|
-
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
1800
|
-
declare const _default: typeof __VLS_export;
|
|
1801
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
1802
|
-
new (): {
|
|
1803
|
-
$slots: S;
|
|
1804
|
-
};
|
|
1751
|
+
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<{
|
|
1752
|
+
props: vue.PublicProps & __VLS_PrettifyLocal<TreeProps$1<T> & {
|
|
1753
|
+
onRefresh?: (() => any) | undefined;
|
|
1754
|
+
onAdd?: ((parentNode?: T | undefined) => any) | undefined;
|
|
1755
|
+
"onLoad-error"?: ((error: unknown, node: T) => any) | undefined;
|
|
1756
|
+
"onUpdate:expandedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "collapse" | "expand" | "unselect" | "check" | "uncheck">) => any) | undefined;
|
|
1757
|
+
"onUpdate:searchPattern"?: ((pattern: string) => any) | undefined;
|
|
1758
|
+
"onUpdate:selectedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "collapse" | "expand" | "unselect" | "check" | "uncheck">) => any) | undefined;
|
|
1759
|
+
"onUpdate:checkedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "collapse" | "expand" | "unselect" | "check" | "uncheck">) => any) | undefined;
|
|
1760
|
+
"onNode-select"?: ((node: T | null, selectedKeys: TreeKey[]) => any) | undefined;
|
|
1761
|
+
"onNode-action"?: ((action: string, node: T) => any) | undefined;
|
|
1762
|
+
"onNode-drop"?: ((info: DropInfo<T>) => any) | undefined;
|
|
1763
|
+
}> & (typeof globalThis extends {
|
|
1764
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
1765
|
+
} ? P : {});
|
|
1766
|
+
expose: (exposed: vue.ShallowUnwrapRef<Omit<TreeExpose<T>, "expandedKeys" | "selectedKeys" | "checkedKeys"> & {
|
|
1767
|
+
expandedKeys: vue.Ref<TreeKey[]>;
|
|
1768
|
+
selectedKeys: vue.Ref<TreeKey[]>;
|
|
1769
|
+
checkedKeys: vue.Ref<TreeKey[]>;
|
|
1770
|
+
}>) => void;
|
|
1771
|
+
attrs: any;
|
|
1772
|
+
slots: TreeSlots<T>;
|
|
1773
|
+
emit: ((evt: "refresh") => void) & ((evt: "add", parentNode?: T | undefined) => void) & ((evt: "load-error", error: unknown, node: T) => void) & ((evt: "update:expandedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "collapse" | "expand" | "unselect" | "check" | "uncheck">) => void) & ((evt: "update:searchPattern", pattern: string) => void) & ((evt: "update:selectedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "collapse" | "expand" | "unselect" | "check" | "uncheck">) => void) & ((evt: "update:checkedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "collapse" | "expand" | "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);
|
|
1774
|
+
}>) => vue.VNode & {
|
|
1775
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
1805
1776
|
};
|
|
1777
|
+
declare const _default: typeof __VLS_export;
|
|
1778
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
|
|
1806
1779
|
//#endregion
|
|
1807
1780
|
//#region src/components/C_Tree/data.d.ts
|
|
1808
|
-
declare const presetConfigs: Record<TreeMode, Partial<TreeProps$1
|
|
1781
|
+
declare const presetConfigs: Record<TreeMode, Partial<Omit<TreeProps$1, 'data' | 'treeProps' | 'actions'>> & {
|
|
1782
|
+
actions?: Omit<ActionConfig, 'show'>[];
|
|
1783
|
+
}>;
|
|
1809
1784
|
//#endregion
|
|
1810
1785
|
//#region src/components/C_Tree/composables/useTreeOperations.d.ts
|
|
1811
|
-
type EmitFn = <E extends keyof TreeEmits
|
|
1786
|
+
type EmitFn$1<T extends object> = <E extends keyof TreeEmits<T>>(event: E, ...args: TreeEmits<T>[E]) => void;
|
|
1812
1787
|
/** State coordination only; checking, filtering, keyboard and loading stay native. */
|
|
1813
|
-
declare function useTreeOperations(props: TreeProps$1
|
|
1788
|
+
declare function useTreeOperations<T extends object = TreeNodeData>(props: TreeProps$1<T>, emit: EmitFn$1<T>, slots?: TreeSlots<T>): {
|
|
1814
1789
|
internalSearchPattern: Ref<string, string>;
|
|
1815
1790
|
expandedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
|
|
1816
1791
|
selectedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
|
|
1817
1792
|
checkedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
|
|
1818
1793
|
isAllExpanded: vue.ComputedRef<boolean>;
|
|
1819
|
-
treeData: vue.ComputedRef<
|
|
1794
|
+
treeData: vue.ComputedRef<readonly T[]>;
|
|
1820
1795
|
currentSearchPattern: vue.WritableComputedRef<string, string>;
|
|
1821
|
-
renderPrefix: (info: TreeRenderContext) =>
|
|
1822
|
-
|
|
1823
|
-
}> | vue.VNodeArrayChildren | null;
|
|
1824
|
-
renderLabel: (info: TreeRenderContext) => string | number | boolean | void | vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
1825
|
-
[key: string]: any;
|
|
1826
|
-
}> | vue.VNodeArrayChildren | null;
|
|
1827
|
-
renderSuffix: (info: TreeRenderContext) => string | number | boolean | void | vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
1796
|
+
renderPrefix: (info: TreeRenderContext<T>) => any;
|
|
1797
|
+
renderLabel: (info: TreeRenderContext<T>) => string | number | boolean | void | vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
1828
1798
|
[key: string]: any;
|
|
1829
1799
|
}> | vue.VNodeArrayChildren | null;
|
|
1800
|
+
renderSuffix: (info: TreeRenderContext<T>) => any;
|
|
1830
1801
|
treeBindings: vue.ComputedRef<TreeProps>;
|
|
1831
1802
|
treeRef: vue.ShallowRef<TreeInst | undefined, TreeInst | undefined>;
|
|
1832
1803
|
density: vue.ComputedRef<ResolvedComponentDensity>;
|
|
1833
1804
|
toggleExpandAll: () => void;
|
|
1834
|
-
handleExpandedKeysChange: (keys: TreeKey[], options?: (
|
|
1835
|
-
handleSelectedKeysChange: (keys: TreeKey[], options?: (
|
|
1836
|
-
handleCheckedKeysChange: (keys: TreeKey[], options?: (
|
|
1837
|
-
handleDrop: (info: DropInfo) => void;
|
|
1805
|
+
handleExpandedKeysChange: (keys: TreeKey[], options?: (T | null)[], meta?: TreeUpdateMeta<T>) => void;
|
|
1806
|
+
handleSelectedKeysChange: (keys: TreeKey[], options?: (T | null)[], meta?: TreeUpdateMeta<T>) => void;
|
|
1807
|
+
handleCheckedKeysChange: (keys: TreeKey[], options?: (T | null)[], meta?: TreeUpdateMeta<T>) => void;
|
|
1808
|
+
handleDrop: (info: DropInfo<T>) => void;
|
|
1838
1809
|
handleAdd: () => void;
|
|
1839
1810
|
handleRefresh: () => void;
|
|
1840
|
-
expose: Omit<TreeExpose
|
|
1811
|
+
expose: Omit<TreeExpose<T>, "expandedKeys" | "selectedKeys" | "checkedKeys"> & {
|
|
1841
1812
|
expandedKeys: Ref<TreeKey[]>;
|
|
1842
1813
|
selectedKeys: Ref<TreeKey[]>;
|
|
1843
1814
|
checkedKeys: Ref<TreeKey[]>;
|
|
@@ -1916,9 +1887,9 @@ declare function useTableQuery<T extends object, Q extends object = Record<strin
|
|
|
1916
1887
|
validateRowKeys?: boolean;
|
|
1917
1888
|
edit?: boolean | EditMode | EditConfig<T> | undefined;
|
|
1918
1889
|
actions?: SimpleTableActions<T> | undefined;
|
|
1919
|
-
expand?: boolean | ExpandConfig$1<T> | undefined;
|
|
1920
|
-
selection?: boolean | SelectionConfig$1<T> | undefined;
|
|
1921
|
-
dynamicRows?:
|
|
1890
|
+
expand?: boolean | ExpandConfig$1<T, unknown> | undefined;
|
|
1891
|
+
selection?: boolean | SelectionConfig$1<T, unknown> | undefined;
|
|
1892
|
+
dynamicRows?: DynamicRowsOptions<T> | (string extends keyof T ? boolean : false) | undefined;
|
|
1922
1893
|
toolbar?: ToolbarConfig;
|
|
1923
1894
|
display?: DisplayConfig;
|
|
1924
1895
|
virtualScroll?: VirtualScrollConfig | boolean;
|
|
@@ -1964,9 +1935,9 @@ declare function useTableQuery<T extends object, Q extends object = Record<strin
|
|
|
1964
1935
|
validateRowKeys?: boolean;
|
|
1965
1936
|
edit?: boolean | EditMode | EditConfig<T> | undefined;
|
|
1966
1937
|
actions?: SimpleTableActions<T> | undefined;
|
|
1967
|
-
expand?: boolean | ExpandConfig$1<T> | undefined;
|
|
1968
|
-
selection?: boolean | SelectionConfig$1<T> | undefined;
|
|
1969
|
-
dynamicRows?:
|
|
1938
|
+
expand?: boolean | ExpandConfig$1<T, unknown> | undefined;
|
|
1939
|
+
selection?: boolean | SelectionConfig$1<T, unknown> | undefined;
|
|
1940
|
+
dynamicRows?: DynamicRowsOptions<T> | (string extends keyof T ? boolean : false) | undefined;
|
|
1970
1941
|
toolbar?: ToolbarConfig;
|
|
1971
1942
|
display?: DisplayConfig;
|
|
1972
1943
|
virtualScroll?: VirtualScrollConfig | boolean;
|
|
@@ -1985,4 +1956,4 @@ declare function useTableQuery<T extends object, Q extends object = Record<strin
|
|
|
1985
1956
|
cancel: () => void;
|
|
1986
1957
|
};
|
|
1987
1958
|
//#endregion
|
|
1988
|
-
export {
|
|
1959
|
+
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, COMPONENT_LOCALE_KEY as an, 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, COMPONENT_FEEDBACK_KEY as in, 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 };
|