@robot-admin/naive-ui-components 0.6.30 → 0.7.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 +6 -0
- package/README.md +5 -3
- package/dist/C_OrgChart.js.map +1 -1
- package/dist/C_OrgChart2.js.map +1 -1
- package/dist/C_Skeleton.js.map +1 -1
- package/dist/C_Skeleton2.js.map +1 -1
- package/dist/{C_Table-B8hpzOcR.css.map → C_Table-BcM5LqAM.css.map} +1 -1
- package/dist/{C_Table-CGP3n_u0.css.map → C_Table-HATVoq1F.css.map} +1 -1
- package/dist/C_Table.cjs +1 -1
- package/dist/C_Table.css +140 -97
- package/dist/C_Table.d.cts +2 -2
- package/dist/C_Table.d.ts +2 -2
- package/dist/C_Table.js +1 -1
- package/dist/C_Table.js.map +1 -1
- package/dist/C_Table2.js +3 -1
- package/dist/C_Table2.js.map +1 -1
- package/dist/constants.d.ts +4 -4
- package/dist/constants2.d.ts +5 -5
- package/dist/constants3.d.ts +1 -1
- package/dist/constants4.d.ts +4 -4
- package/dist/constants5.d.ts +4 -4
- package/dist/data.d.ts +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index10.vue.d.ts +3 -3
- package/dist/index11.vue.d.ts +5 -5
- package/dist/index12.vue.d.ts +2 -2
- package/dist/index13.vue.d.ts +3 -3
- package/dist/index14.vue.d.ts +1 -1
- package/dist/index15.vue.d.ts +3 -3
- package/dist/index16.vue.d.ts +2 -2
- package/dist/index17.vue.d.ts +1 -1
- package/dist/index18.vue.d.ts +6 -6
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.ts +2 -2
- package/dist/index21.vue.d.ts +1 -1
- package/dist/index22.vue.d.ts +1 -1
- package/dist/index23.vue.d.ts +1 -1
- package/dist/index26.vue.d.ts +2 -2
- package/dist/index27.vue.d.ts +3 -3
- package/dist/index28.vue.d.ts +3 -3
- package/dist/index3.vue.d.ts +2 -2
- package/dist/index4.vue.d.ts +4 -4
- package/dist/index6.vue.d.ts +4 -4
- package/dist/index7.vue.d.ts +2 -2
- package/dist/index8.vue.d.ts +1 -1
- package/dist/index9.vue.d.ts +2 -2
- package/dist/resolver.cjs.map +1 -1
- package/dist/resolver.js.map +1 -1
- package/dist/style.css +142 -99
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.ts +7 -7
- package/dist/useCropperCore.d.ts +5 -5
- package/dist/useDraggableLayout.d.ts +4 -4
- package/dist/useDynamicFormState.d.ts +4 -4
- package/dist/useEdgeInteraction.d.ts +1 -1
- package/dist/useInfiniteScroll.d.ts +1 -1
- package/dist/useModalEdit.d.ts +503 -245
- package/dist/useQRCode.d.ts +1 -1
- package/dist/useSignatureHistory.d.ts +3 -3
- package/dist/useSplitResize.d.ts +5 -5
- package/dist/useTimeSelection.d.ts +3 -3
- package/dist/useTreeOperations.d.ts +5 -5
- package/dist/useWorkflowValidation.d.ts +7 -7
- package/package.json +1 -1
package/dist/useModalEdit.d.ts
CHANGED
|
@@ -1,215 +1,10 @@
|
|
|
1
1
|
import { DataTableColumns, DataTableRowKey } from "naive-ui";
|
|
2
2
|
import * as vue from "vue";
|
|
3
|
-
import { ComputedRef, MaybeRef, Ref, VNodeChild } from "vue";
|
|
3
|
+
import { ComputedRef, InjectionKey, MaybeRef, Ref, VNodeChild } from "vue";
|
|
4
4
|
import * as naive_ui_es0 from "naive-ui/es";
|
|
5
5
|
import { DataTableColumn, DataTableRowKey as DataTableRowKey$1 } from "naive-ui/es";
|
|
6
6
|
import { FormItemRule } from "naive-ui/es/form";
|
|
7
7
|
|
|
8
|
-
//#region src/components/C_Table/types.d.ts
|
|
9
|
-
type RefLike<T> = {
|
|
10
|
-
value: T;
|
|
11
|
-
} | T;
|
|
12
|
-
type MaybeRefLike<T> = RefLike<T> | MaybeRef<T>;
|
|
13
|
-
type DataRecord = Record<string, unknown>;
|
|
14
|
-
type EditMode = 'row' | 'cell' | 'both' | 'modal' | 'none';
|
|
15
|
-
type EditType = 'input' | 'textarea' | 'select' | 'date' | 'number' | 'switch' | 'email' | 'mobile';
|
|
16
|
-
type ButtonType = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error';
|
|
17
|
-
type ParentChildLinkMode = 'strict' | 'loose';
|
|
18
|
-
interface PaginationConfig {
|
|
19
|
-
enabled?: boolean;
|
|
20
|
-
page?: number;
|
|
21
|
-
pageSize?: number;
|
|
22
|
-
total?: number;
|
|
23
|
-
showSizePicker?: boolean;
|
|
24
|
-
showQuickJumper?: boolean;
|
|
25
|
-
pageSizes?: number[];
|
|
26
|
-
simple?: boolean;
|
|
27
|
-
size?: 'small' | 'medium' | 'large';
|
|
28
|
-
remote?: boolean;
|
|
29
|
-
}
|
|
30
|
-
/** API 函数类型 */
|
|
31
|
-
type ApiFunction<T extends DataRecord = DataRecord> = (row: T, index: number) => Promise<any> | any;
|
|
32
|
-
/** 渲染函数类型 */
|
|
33
|
-
type RenderFunction<T extends DataRecord = DataRecord> = (row: T, index: number) => VNodeChild;
|
|
34
|
-
/** 自定义操作按钮配置 */
|
|
35
|
-
interface CustomAction<T extends DataRecord = DataRecord> {
|
|
36
|
-
/** 按钮唯一键 */
|
|
37
|
-
key: string;
|
|
38
|
-
/** 按钮显示文本 */
|
|
39
|
-
label: string | ((row: T, index: number) => string);
|
|
40
|
-
/** 按钮图标 */
|
|
41
|
-
icon: string | ((row: T, index: number) => string);
|
|
42
|
-
/** 按钮类型样式 */
|
|
43
|
-
type?: ButtonType | ((row: T, index: number) => ButtonType);
|
|
44
|
-
/** 点击事件处理器 */
|
|
45
|
-
onClick: (row: T, index: number) => void | Promise<void>;
|
|
46
|
-
/** 条件显示函数(可选) */
|
|
47
|
-
show?: (row: T, index: number) => boolean;
|
|
48
|
-
/** 是否禁用(可选) */
|
|
49
|
-
disabled?: (row: T, index: number) => boolean;
|
|
50
|
-
/** 按钮提示文本(可选) */
|
|
51
|
-
tooltip?: string;
|
|
52
|
-
}
|
|
53
|
-
/** 简化的操作配置 - 二元法则 */
|
|
54
|
-
interface SimpleTableActions<T extends DataRecord = DataRecord> {
|
|
55
|
-
/** 编辑操作 - 直接传入函数 */
|
|
56
|
-
edit?: false | ApiFunction<T>;
|
|
57
|
-
/** 删除操作 - 直接传入函数 */
|
|
58
|
-
delete?: false | ApiFunction<T>;
|
|
59
|
-
/** 详情操作 - 直接传入函数 */
|
|
60
|
-
detail?: false | ApiFunction<T>;
|
|
61
|
-
/** 自定义操作按钮 */
|
|
62
|
-
custom?: CustomAction<T>[];
|
|
63
|
-
/** 完全自定义渲染 - 10%场景 */
|
|
64
|
-
render?: RenderFunction<T>;
|
|
65
|
-
}
|
|
66
|
-
/** useTableActions Hook 选项类型 */
|
|
67
|
-
interface UseTableActionsOptions<T extends DataRecord = DataRecord> {
|
|
68
|
-
/** 操作配置 */
|
|
69
|
-
actions: Ref<SimpleTableActions<T>> | ComputedRef<SimpleTableActions<T>>;
|
|
70
|
-
/** 表格配置 */
|
|
71
|
-
config: Ref<any> | ComputedRef<any>;
|
|
72
|
-
/** 表格管理器 */
|
|
73
|
-
tableManager: any;
|
|
74
|
-
/** 行键获取函数 */
|
|
75
|
-
rowKey: (row: T) => DataTableRowKey;
|
|
76
|
-
/** 事件发射器 */
|
|
77
|
-
emit: any;
|
|
78
|
-
/** 查看详情回调 */
|
|
79
|
-
onViewDetail?: (data: T) => void;
|
|
80
|
-
}
|
|
81
|
-
/** useTableActions Hook 返回类型 */
|
|
82
|
-
interface UseTableActionsReturn<T extends DataRecord = DataRecord> {
|
|
83
|
-
/** 渲染操作列 */
|
|
84
|
-
renderActions: (rowData: T, rowIndex: number) => VNodeChild;
|
|
85
|
-
/** 检查操作是否启用 */
|
|
86
|
-
isActionEnabled: (actionKey: 'edit' | 'delete' | 'detail') => boolean;
|
|
87
|
-
}
|
|
88
|
-
interface BaseOption {
|
|
89
|
-
label: string;
|
|
90
|
-
value: string | number;
|
|
91
|
-
disabled?: boolean;
|
|
92
|
-
}
|
|
93
|
-
interface BaseConfig<T extends DataRecord = DataRecord> {
|
|
94
|
-
enabled?: boolean;
|
|
95
|
-
rowCheckable?: (row: T) => boolean;
|
|
96
|
-
}
|
|
97
|
-
type SelectOption = BaseOption;
|
|
98
|
-
interface EditProps {
|
|
99
|
-
min?: number;
|
|
100
|
-
max?: number;
|
|
101
|
-
step?: number;
|
|
102
|
-
showButton?: boolean;
|
|
103
|
-
type?: string;
|
|
104
|
-
rows?: number;
|
|
105
|
-
placeholder?: string;
|
|
106
|
-
options?: SelectOption[];
|
|
107
|
-
rules?: FormItemRule[];
|
|
108
|
-
format?: string;
|
|
109
|
-
valueFormat?: string;
|
|
110
|
-
clearable?: boolean;
|
|
111
|
-
disabled?: boolean;
|
|
112
|
-
readonly?: boolean;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* ================= 列类型系统 =================
|
|
116
|
-
* 说明:
|
|
117
|
-
* - BaseTableColumn:去除了 naive 的 key/title/render,提供扩展位
|
|
118
|
-
* - NormalTableColumn:普通数据列,必须有 key + title
|
|
119
|
-
* - BuiltInTableColumn:内置列(selection/expand),不需要 key/title
|
|
120
|
-
* - TableColumn:以上二者联合
|
|
121
|
-
*/
|
|
122
|
-
interface BaseTableColumn<T extends DataRecord = DataRecord> extends Omit<DataTableColumns<T>[number], 'key' | 'title' | 'render' | 'type'> {
|
|
123
|
-
key?: any;
|
|
124
|
-
title?: string;
|
|
125
|
-
visible?: boolean;
|
|
126
|
-
editable?: boolean;
|
|
127
|
-
required?: boolean;
|
|
128
|
-
editType?: EditType;
|
|
129
|
-
editProps?: EditProps;
|
|
130
|
-
editRender?: (value: any, rowData: T, rowIndex: number) => VNodeChild;
|
|
131
|
-
render?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
132
|
-
fixed?: 'left' | 'right';
|
|
133
|
-
resizable?: boolean;
|
|
134
|
-
minWidth?: number;
|
|
135
|
-
maxWidth?: number;
|
|
136
|
-
}
|
|
137
|
-
interface NormalTableColumn<T extends DataRecord = DataRecord> extends BaseTableColumn<T> {
|
|
138
|
-
key: keyof T | string;
|
|
139
|
-
title: string;
|
|
140
|
-
}
|
|
141
|
-
interface BuiltInTableColumn<T extends DataRecord = DataRecord> extends BaseTableColumn<T> {
|
|
142
|
-
/** 内置列类型:无需 key / title */
|
|
143
|
-
type: 'selection' | 'expand' | 'index';
|
|
144
|
-
/** 展开行渲染函数(仅当 type = expand 时有效) */
|
|
145
|
-
renderExpand?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
146
|
-
}
|
|
147
|
-
type TableColumn<T extends DataRecord = DataRecord> = NormalTableColumn<T> | BuiltInTableColumn<T>;
|
|
148
|
-
interface ChildSelectionState {
|
|
149
|
-
selectedKeys: DataTableRowKey[];
|
|
150
|
-
isAllChecked: boolean;
|
|
151
|
-
selectAll: () => void;
|
|
152
|
-
clearAll: () => void;
|
|
153
|
-
}
|
|
154
|
-
interface ExpandConfig$1<T extends DataRecord = DataRecord, C = any> {
|
|
155
|
-
onLoadData?: (row: T) => Promise<C[]> | C[];
|
|
156
|
-
renderContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
|
|
157
|
-
rowExpandable?: (row: T) => boolean;
|
|
158
|
-
}
|
|
159
|
-
interface SelectionConfig$1<T extends DataRecord = DataRecord> extends BaseConfig<T> {
|
|
160
|
-
enableSelection?: boolean;
|
|
161
|
-
defaultCheckedKeys?: DataTableRowKey[];
|
|
162
|
-
maxSelection?: number;
|
|
163
|
-
enableChildSelection?: boolean;
|
|
164
|
-
childRowCheckable?: (childRow: any, parentRow: T) => boolean;
|
|
165
|
-
enableParentChildLink?: boolean;
|
|
166
|
-
parentChildLinkMode?: ParentChildLinkMode;
|
|
167
|
-
}
|
|
168
|
-
interface TableExpandEvents<T extends DataRecord = DataRecord> {
|
|
169
|
-
'expand-change': [expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean];
|
|
170
|
-
}
|
|
171
|
-
interface TableSelectionEvents<T extends DataRecord = DataRecord> {
|
|
172
|
-
'selection-change': [checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>];
|
|
173
|
-
'child-selection-change': [parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: any[]];
|
|
174
|
-
'parent-child-link-change': [parentKey: DataTableRowKey, shouldSelect: boolean];
|
|
175
|
-
}
|
|
176
|
-
interface TableEditEvents<T extends DataRecord = DataRecord> {
|
|
177
|
-
'update:data': [data: T[]];
|
|
178
|
-
save: [rowData: T, rowIndex: number, columnKey?: string];
|
|
179
|
-
cancel: [rowData: T, rowIndex: number];
|
|
180
|
-
}
|
|
181
|
-
interface TableEmits<T extends DataRecord = DataRecord> extends TableExpandEvents<T>, TableSelectionEvents<T>, TableEditEvents<T> {
|
|
182
|
-
'pagination-change': [page: number, pageSize: number];
|
|
183
|
-
'row-delete': [deletedRow: T, index: number];
|
|
184
|
-
}
|
|
185
|
-
interface UseTableExpandOptions<T extends DataRecord = DataRecord, C = any> extends ExpandConfig$1<T, C>, SelectionConfig$1<T> {
|
|
186
|
-
data: Ref<T[]> | ComputedRef<T[]>;
|
|
187
|
-
rowKey: (row: T) => DataTableRowKey;
|
|
188
|
-
childRowKey?: (child: C) => DataTableRowKey;
|
|
189
|
-
defaultExpandedKeys?: DataTableRowKey[];
|
|
190
|
-
onExpandChange?: (expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean) => void;
|
|
191
|
-
onSelectionChange?: (checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>) => void;
|
|
192
|
-
onChildSelectionChange?: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => void;
|
|
193
|
-
}
|
|
194
|
-
interface UseTableExpandReturn<T extends DataRecord = DataRecord, C = any> {
|
|
195
|
-
expandedKeys: Ref<DataTableRowKey[]>;
|
|
196
|
-
checkedKeys: Ref<DataTableRowKey[]>;
|
|
197
|
-
childSelections: Ref<Map<DataTableRowKey, DataTableRowKey[]>>;
|
|
198
|
-
expandDataMap: Ref<Map<DataTableRowKey, C[]>>;
|
|
199
|
-
loadingMap: Ref<Map<DataTableRowKey, boolean>>;
|
|
200
|
-
selectedRowsCount: ComputedRef<number>;
|
|
201
|
-
totalChildSelections: ComputedRef<number>;
|
|
202
|
-
expandAll: () => Promise<void>;
|
|
203
|
-
collapseAll: () => void;
|
|
204
|
-
expandRow: (key: DataTableRowKey) => Promise<void>;
|
|
205
|
-
handleExpandChange: (keys: DataTableRowKey[]) => void;
|
|
206
|
-
selectAll: () => void;
|
|
207
|
-
clearSelection: () => void;
|
|
208
|
-
clearAllSelections: () => void;
|
|
209
|
-
handleSelectionChange: (keys: DataTableRowKey[]) => void;
|
|
210
|
-
getTableColumns: (originalColumns: TableColumn<T>[]) => any[];
|
|
211
|
-
}
|
|
212
|
-
//#endregion
|
|
213
8
|
//#region src/components/C_Table/composables/usePrintWatermark.d.ts
|
|
214
9
|
interface WatermarkConfig {
|
|
215
10
|
text: string;
|
|
@@ -396,6 +191,94 @@ interface DynamicRowsReturn<T extends DataRecord = DataRecord> {
|
|
|
396
191
|
*/
|
|
397
192
|
declare function useDynamicRows<T extends DataRecord = DataRecord>(data: Ref<T[]>, options?: DynamicRowsOptions<T>): DynamicRowsReturn<T>;
|
|
398
193
|
//#endregion
|
|
194
|
+
//#region src/components/C_Table/composables/useRowDrag.d.ts
|
|
195
|
+
interface RowDragConfig {
|
|
196
|
+
enabled?: boolean;
|
|
197
|
+
/** 拖拽手柄 CSS 选择器(不传则整行可拖) */
|
|
198
|
+
handleSelector?: string;
|
|
199
|
+
/** 动画时长(ms) */
|
|
200
|
+
animationDuration?: number;
|
|
201
|
+
/** 拖拽时 ghost 样式类 */
|
|
202
|
+
ghostClass?: string;
|
|
203
|
+
/** 拖拽中样式类 */
|
|
204
|
+
chosenClass?: string;
|
|
205
|
+
}
|
|
206
|
+
interface UseRowDragOptions<T extends DataRecord = DataRecord> {
|
|
207
|
+
/** 数据源(只读即可) */
|
|
208
|
+
data: Ref<T[]> | ComputedRef<T[]>;
|
|
209
|
+
/** 获取行键 */
|
|
210
|
+
rowKey: (row: T) => DataTableRowKey$1;
|
|
211
|
+
/** 配置 */
|
|
212
|
+
config: RowDragConfig;
|
|
213
|
+
/** 数据重排回调(由外部处理数据更新) */
|
|
214
|
+
onReorder?: (newData: T[]) => void;
|
|
215
|
+
/** 排序变更回调 */
|
|
216
|
+
onSort?: (row: T, fromIndex: number, toIndex: number) => void;
|
|
217
|
+
}
|
|
218
|
+
interface UseRowDragReturn {
|
|
219
|
+
/** 初始化拖拽(需在 onMounted 中调用) */
|
|
220
|
+
initRowDrag: (wrapperEl: HTMLElement) => void;
|
|
221
|
+
/** 销毁拖拽实例 */
|
|
222
|
+
destroyRowDrag: () => void;
|
|
223
|
+
/** 是否正在拖拽 */
|
|
224
|
+
isDragging: Ref<boolean>;
|
|
225
|
+
}
|
|
226
|
+
declare function useRowDrag<T extends DataRecord = DataRecord>(options: UseRowDragOptions<T>): UseRowDragReturn;
|
|
227
|
+
//#endregion
|
|
228
|
+
//#region src/components/C_Table/composables/useCrossPageSelection.d.ts
|
|
229
|
+
interface CrossPageSelectionConfig {
|
|
230
|
+
enabled?: boolean;
|
|
231
|
+
/** 最大选择数 */
|
|
232
|
+
maxSelection?: number;
|
|
233
|
+
}
|
|
234
|
+
interface UseCrossPageSelectionOptions<T extends DataRecord = DataRecord> {
|
|
235
|
+
/** 全量数据(非分页后的) */
|
|
236
|
+
allData: Ref<T[]> | ComputedRef<T[]>;
|
|
237
|
+
/** 行键函数 */
|
|
238
|
+
rowKey: (row: T) => DataTableRowKey$1;
|
|
239
|
+
/** 配置 */
|
|
240
|
+
config: CrossPageSelectionConfig;
|
|
241
|
+
}
|
|
242
|
+
interface UseCrossPageSelectionReturn<T extends DataRecord = DataRecord> {
|
|
243
|
+
/** 所有选中的 key(跨页) */
|
|
244
|
+
selectedKeys: Ref<Set<DataTableRowKey$1>>;
|
|
245
|
+
/** 选中行数量 */
|
|
246
|
+
selectedCount: ComputedRef<number>;
|
|
247
|
+
/** 当前页数据的 checkedKeys(给 NDataTable 绑定) */
|
|
248
|
+
getPageCheckedKeys: (pageData: T[]) => DataTableRowKey$1[];
|
|
249
|
+
/** NDataTable @update:checked-row-keys 处理器 */
|
|
250
|
+
handlePageSelectionChange: (keys: DataTableRowKey$1[], pageData: T[]) => void;
|
|
251
|
+
/** 全选所有页 */
|
|
252
|
+
selectAll: () => void;
|
|
253
|
+
/** 清除所有页选中 */
|
|
254
|
+
clearAll: () => void;
|
|
255
|
+
/** 获取所有选中行数据 */
|
|
256
|
+
getSelectedRows: () => T[];
|
|
257
|
+
/** 判断 key 是否选中 */
|
|
258
|
+
isSelected: (key: DataTableRowKey$1) => boolean;
|
|
259
|
+
}
|
|
260
|
+
declare function useCrossPageSelection<T extends DataRecord = DataRecord>(options: UseCrossPageSelectionOptions<T>): UseCrossPageSelectionReturn<T>;
|
|
261
|
+
//#endregion
|
|
262
|
+
//#region src/components/C_Table/composables/useTableExport.d.ts
|
|
263
|
+
interface ExportConfig {
|
|
264
|
+
/** 导出文件名(不含扩展名) */
|
|
265
|
+
filename?: string;
|
|
266
|
+
/** 导出格式 */
|
|
267
|
+
format?: 'csv' | 'xlsx';
|
|
268
|
+
/** 是否包含表头 */
|
|
269
|
+
includeHeader?: boolean;
|
|
270
|
+
/** 自定义选择导出列(传 key 数组) */
|
|
271
|
+
columnKeys?: string[];
|
|
272
|
+
/** CSV 分隔符 */
|
|
273
|
+
csvSeparator?: string;
|
|
274
|
+
/** 全局格式化配置(用于 formatter) */
|
|
275
|
+
formatterConfig?: FormatterConfig;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* 导出表格数据
|
|
279
|
+
*/
|
|
280
|
+
declare function exportTableData(data: DataRecord[], columns: TableColumn[], config?: ExportConfig): Promise<void>;
|
|
281
|
+
//#endregion
|
|
399
282
|
//#region src/components/C_Table/composables/useTableConfig.d.ts
|
|
400
283
|
/**
|
|
401
284
|
* 可绑定到 C_Table 的 CRUD 对象接口(桥接类型)
|
|
@@ -428,9 +311,9 @@ interface TableConfig<T extends DataRecord = DataRecord> {
|
|
|
428
311
|
/** 分页配置 */
|
|
429
312
|
pagination?: PaginationConfig | boolean;
|
|
430
313
|
/** 展开行配置 */
|
|
431
|
-
expand?: ExpandConfig<T> | boolean;
|
|
314
|
+
expand?: ExpandConfig$1<T> | boolean;
|
|
432
315
|
/** 选择配置 */
|
|
433
|
-
selection?: SelectionConfig<T> | boolean;
|
|
316
|
+
selection?: SelectionConfig$1<T> | boolean;
|
|
434
317
|
/** 动态行配置 */
|
|
435
318
|
dynamicRows?: DynamicRowsOptions<T> | boolean;
|
|
436
319
|
/** 工具栏 */
|
|
@@ -443,6 +326,22 @@ interface TableConfig<T extends DataRecord = DataRecord> {
|
|
|
443
326
|
summary?: SummaryConfig<T>;
|
|
444
327
|
/** 列拖拽排序 */
|
|
445
328
|
columnDrag?: ColumnDragConfig | boolean;
|
|
329
|
+
/** 树形表格 */
|
|
330
|
+
tree?: TreeConfig | boolean;
|
|
331
|
+
/** 行拖拽排序 */
|
|
332
|
+
rowDrag?: RowDragConfig | boolean;
|
|
333
|
+
/** 跨页多选 */
|
|
334
|
+
crossPageSelection?: CrossPageSelectionConfig | boolean;
|
|
335
|
+
/** 导出配置 */
|
|
336
|
+
export?: ExportConfig;
|
|
337
|
+
/** 列配置持久化 key(传入即启用 localStorage) */
|
|
338
|
+
persistKey?: string;
|
|
339
|
+
/** 全局格式化配置 */
|
|
340
|
+
formatterConfig?: FormatterConfig;
|
|
341
|
+
/** 错误状态配置 */
|
|
342
|
+
error?: ErrorConfig;
|
|
343
|
+
/** 批量操作配置 */
|
|
344
|
+
batchActions?: BatchActionsConfig;
|
|
446
345
|
}
|
|
447
346
|
interface EditConfig {
|
|
448
347
|
enabled?: boolean;
|
|
@@ -451,14 +350,14 @@ interface EditConfig {
|
|
|
451
350
|
modalTitle?: string;
|
|
452
351
|
modalWidth?: number;
|
|
453
352
|
}
|
|
454
|
-
interface ExpandConfig<T extends DataRecord = DataRecord> {
|
|
353
|
+
interface ExpandConfig$1<T extends DataRecord = DataRecord> {
|
|
455
354
|
enabled?: boolean;
|
|
456
355
|
defaultExpandedKeys?: DataTableRowKey$1[];
|
|
457
356
|
onLoadData?: (row: T) => Promise<unknown[]> | unknown[];
|
|
458
357
|
renderContent?: (row: T, expandData: unknown[], loading: boolean, childSelection?: unknown) => VNodeChild;
|
|
459
358
|
rowExpandable?: (row: T) => boolean;
|
|
460
359
|
}
|
|
461
|
-
interface SelectionConfig<T extends DataRecord = DataRecord> {
|
|
360
|
+
interface SelectionConfig$1<T extends DataRecord = DataRecord> {
|
|
462
361
|
enabled?: boolean;
|
|
463
362
|
defaultCheckedKeys?: naive_ui_es0.DataTableRowKey[];
|
|
464
363
|
rowCheckable?: (row: T) => boolean;
|
|
@@ -513,6 +412,37 @@ interface ColumnDragConfig {
|
|
|
513
412
|
/** 拖拽动画时长(ms) */
|
|
514
413
|
animationDuration?: number;
|
|
515
414
|
}
|
|
415
|
+
/** 树形表格配置 */
|
|
416
|
+
interface TreeConfig {
|
|
417
|
+
enabled?: boolean;
|
|
418
|
+
/** 子节点字段名 */
|
|
419
|
+
childrenKey?: string;
|
|
420
|
+
/** 缩进宽度(px) */
|
|
421
|
+
indent?: number;
|
|
422
|
+
/** 默认展开所有 */
|
|
423
|
+
defaultExpandAll?: boolean;
|
|
424
|
+
}
|
|
425
|
+
/** 错误状态配置 */
|
|
426
|
+
interface ErrorConfig {
|
|
427
|
+
/** 是否显示错误状态 */
|
|
428
|
+
show?: boolean;
|
|
429
|
+
/** 错误描述文案 */
|
|
430
|
+
message?: string;
|
|
431
|
+
/** 重试回调 */
|
|
432
|
+
onRetry?: () => void | Promise<void>;
|
|
433
|
+
}
|
|
434
|
+
/** 批量操作配置 */
|
|
435
|
+
interface BatchActionsConfig {
|
|
436
|
+
enabled?: boolean;
|
|
437
|
+
/** 自定义批量操作按钮 */
|
|
438
|
+
actions?: Array<{
|
|
439
|
+
key: string;
|
|
440
|
+
label: string;
|
|
441
|
+
icon?: string;
|
|
442
|
+
type?: string;
|
|
443
|
+
onClick: (selectedKeys: DataTableRowKey$1[], selectedRows: DataRecord[]) => void | Promise<void>;
|
|
444
|
+
}>;
|
|
445
|
+
}
|
|
516
446
|
interface ResolvedConfig {
|
|
517
447
|
editable: boolean;
|
|
518
448
|
editMode: string;
|
|
@@ -557,6 +487,25 @@ interface ResolvedConfig {
|
|
|
557
487
|
enableColumnDrag: boolean;
|
|
558
488
|
columnDragHandleClass: string;
|
|
559
489
|
columnDragAnimationDuration: number;
|
|
490
|
+
/** 树形表格 */
|
|
491
|
+
treeEnabled: boolean;
|
|
492
|
+
treeChildrenKey: string;
|
|
493
|
+
treeIndent: number;
|
|
494
|
+
treeDefaultExpandAll: boolean;
|
|
495
|
+
/** 行拖拽 */
|
|
496
|
+
rowDrag: RowDragConfig | undefined;
|
|
497
|
+
/** 跨页多选 */
|
|
498
|
+
crossPageSelection: CrossPageSelectionConfig | undefined;
|
|
499
|
+
/** 导出配置 */
|
|
500
|
+
exportConfig: ExportConfig | undefined;
|
|
501
|
+
/** 列持久化 key */
|
|
502
|
+
persistKey: string | undefined;
|
|
503
|
+
/** 全局格式化配置 */
|
|
504
|
+
formatterConfig: FormatterConfig | undefined;
|
|
505
|
+
/** 错误状态 */
|
|
506
|
+
error: ErrorConfig | undefined;
|
|
507
|
+
/** 批量操作 */
|
|
508
|
+
batchActions: BatchActionsConfig | undefined;
|
|
560
509
|
}
|
|
561
510
|
/**
|
|
562
511
|
* 将 config 单一对象解析为内部扁平化配置
|
|
@@ -568,6 +517,272 @@ declare const createEditModeChecker: (config: ResolvedConfig) => {
|
|
|
568
517
|
isCellEditMode: () => boolean;
|
|
569
518
|
};
|
|
570
519
|
//#endregion
|
|
520
|
+
//#region src/components/C_Table/composables/useTableGlobalConfig.d.ts
|
|
521
|
+
type FormatterType = 'date' | 'datetime' | 'currency' | 'percent' | 'enum' | 'number';
|
|
522
|
+
interface FormatterConfig {
|
|
523
|
+
/** 日期格式 */
|
|
524
|
+
date?: {
|
|
525
|
+
format?: string;
|
|
526
|
+
};
|
|
527
|
+
/** 日期时间格式 */
|
|
528
|
+
datetime?: {
|
|
529
|
+
format?: string;
|
|
530
|
+
};
|
|
531
|
+
/** 货币格式 */
|
|
532
|
+
currency?: {
|
|
533
|
+
prefix?: string;
|
|
534
|
+
suffix?: string;
|
|
535
|
+
precision?: number;
|
|
536
|
+
};
|
|
537
|
+
/** 百分比格式 */
|
|
538
|
+
percent?: {
|
|
539
|
+
precision?: number;
|
|
540
|
+
suffix?: string;
|
|
541
|
+
};
|
|
542
|
+
/** 数字格式(千分位) */
|
|
543
|
+
number?: {
|
|
544
|
+
precision?: number;
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
/** 列级 formatter 配置 */
|
|
548
|
+
interface ColumnFormatter {
|
|
549
|
+
type: FormatterType;
|
|
550
|
+
/** enum mapping:{ male: '男', female: '女' } */
|
|
551
|
+
mapping?: Record<string, string>;
|
|
552
|
+
/** 自定义格式化函数(优先级最高) */
|
|
553
|
+
fn?: (value: unknown, row: DataRecord) => string;
|
|
554
|
+
/** 覆盖全局格式配置 */
|
|
555
|
+
config?: FormatterConfig[FormatterType];
|
|
556
|
+
}
|
|
557
|
+
interface TableGlobalConfig {
|
|
558
|
+
/** 表格显示默认值 */
|
|
559
|
+
display?: DisplayConfig;
|
|
560
|
+
/** 默认分页条数 */
|
|
561
|
+
pageSize?: number;
|
|
562
|
+
/** 空状态文案 */
|
|
563
|
+
emptyText?: string;
|
|
564
|
+
/** 全局格式化配置 */
|
|
565
|
+
formatter?: FormatterConfig;
|
|
566
|
+
/** 列配置持久化前缀 */
|
|
567
|
+
persistPrefix?: string;
|
|
568
|
+
/** 默认导出文件名 */
|
|
569
|
+
exportFilename?: string;
|
|
570
|
+
}
|
|
571
|
+
declare const TABLE_GLOBAL_CONFIG_KEY: InjectionKey<TableGlobalConfig>;
|
|
572
|
+
/** 根据 ColumnFormatter 配置格式化单元格值 */
|
|
573
|
+
declare function applyFormatter(value: unknown, row: DataRecord, formatter: ColumnFormatter, globalConfig?: FormatterConfig): string;
|
|
574
|
+
/** 在组件内获取全局配置(自动合并默认值) */
|
|
575
|
+
declare function useTableGlobalConfig(): TableGlobalConfig;
|
|
576
|
+
/** 合并全局配置到 TableConfig(局部 > 全局 > 默认) */
|
|
577
|
+
declare function mergeGlobalConfig(local: TableConfig, global: TableGlobalConfig): TableConfig;
|
|
578
|
+
//#endregion
|
|
579
|
+
//#region src/components/C_Table/types.d.ts
|
|
580
|
+
type RefLike<T> = {
|
|
581
|
+
value: T;
|
|
582
|
+
} | T;
|
|
583
|
+
type MaybeRefLike<T> = RefLike<T> | MaybeRef<T>;
|
|
584
|
+
type DataRecord = Record<string, unknown>;
|
|
585
|
+
type EditMode = 'row' | 'cell' | 'both' | 'modal' | 'none';
|
|
586
|
+
type EditType = 'input' | 'textarea' | 'select' | 'date' | 'number' | 'switch' | 'email' | 'mobile';
|
|
587
|
+
type ButtonType = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error';
|
|
588
|
+
type ParentChildLinkMode = 'strict' | 'loose';
|
|
589
|
+
interface PaginationConfig {
|
|
590
|
+
enabled?: boolean;
|
|
591
|
+
page?: number;
|
|
592
|
+
pageSize?: number;
|
|
593
|
+
total?: number;
|
|
594
|
+
showSizePicker?: boolean;
|
|
595
|
+
showQuickJumper?: boolean;
|
|
596
|
+
pageSizes?: number[];
|
|
597
|
+
simple?: boolean;
|
|
598
|
+
size?: 'small' | 'medium' | 'large';
|
|
599
|
+
remote?: boolean;
|
|
600
|
+
}
|
|
601
|
+
/** API 函数类型 */
|
|
602
|
+
type ApiFunction<T extends DataRecord = DataRecord> = (row: T, index: number) => Promise<any> | any;
|
|
603
|
+
/** 渲染函数类型 */
|
|
604
|
+
type RenderFunction<T extends DataRecord = DataRecord> = (row: T, index: number) => VNodeChild;
|
|
605
|
+
/** 自定义操作按钮配置 */
|
|
606
|
+
interface CustomAction<T extends DataRecord = DataRecord> {
|
|
607
|
+
/** 按钮唯一键 */
|
|
608
|
+
key: string;
|
|
609
|
+
/** 按钮显示文本 */
|
|
610
|
+
label: string | ((row: T, index: number) => string);
|
|
611
|
+
/** 按钮图标 */
|
|
612
|
+
icon: string | ((row: T, index: number) => string);
|
|
613
|
+
/** 按钮类型样式 */
|
|
614
|
+
type?: ButtonType | ((row: T, index: number) => ButtonType);
|
|
615
|
+
/** 点击事件处理器 */
|
|
616
|
+
onClick: (row: T, index: number) => void | Promise<void>;
|
|
617
|
+
/** 条件显示函数(可选) */
|
|
618
|
+
show?: (row: T, index: number) => boolean;
|
|
619
|
+
/** 是否禁用(可选) */
|
|
620
|
+
disabled?: (row: T, index: number) => boolean;
|
|
621
|
+
/** 按钮提示文本(可选) */
|
|
622
|
+
tooltip?: string;
|
|
623
|
+
}
|
|
624
|
+
/** 简化的操作配置 - 二元法则 */
|
|
625
|
+
interface SimpleTableActions<T extends DataRecord = DataRecord> {
|
|
626
|
+
/** 编辑操作 - 直接传入函数 */
|
|
627
|
+
edit?: false | ApiFunction<T>;
|
|
628
|
+
/** 删除操作 - 直接传入函数 */
|
|
629
|
+
delete?: false | ApiFunction<T>;
|
|
630
|
+
/** 详情操作 - 直接传入函数 */
|
|
631
|
+
detail?: false | ApiFunction<T>;
|
|
632
|
+
/** 自定义操作按钮 */
|
|
633
|
+
custom?: CustomAction<T>[];
|
|
634
|
+
/** 完全自定义渲染 - 10%场景 */
|
|
635
|
+
render?: RenderFunction<T>;
|
|
636
|
+
}
|
|
637
|
+
/** useTableActions Hook 选项类型 */
|
|
638
|
+
interface UseTableActionsOptions<T extends DataRecord = DataRecord> {
|
|
639
|
+
/** 操作配置 */
|
|
640
|
+
actions: Ref<SimpleTableActions<T>> | ComputedRef<SimpleTableActions<T>>;
|
|
641
|
+
/** 表格配置 */
|
|
642
|
+
config: Ref<any> | ComputedRef<any>;
|
|
643
|
+
/** 表格管理器 */
|
|
644
|
+
tableManager: any;
|
|
645
|
+
/** 行键获取函数 */
|
|
646
|
+
rowKey: (row: T) => DataTableRowKey;
|
|
647
|
+
/** 事件发射器 */
|
|
648
|
+
emit: any;
|
|
649
|
+
/** 查看详情回调 */
|
|
650
|
+
onViewDetail?: (data: T) => void;
|
|
651
|
+
}
|
|
652
|
+
/** useTableActions Hook 返回类型 */
|
|
653
|
+
interface UseTableActionsReturn<T extends DataRecord = DataRecord> {
|
|
654
|
+
/** 渲染操作列 */
|
|
655
|
+
renderActions: (rowData: T, rowIndex: number) => VNodeChild;
|
|
656
|
+
/** 检查操作是否启用 */
|
|
657
|
+
isActionEnabled: (actionKey: 'edit' | 'delete' | 'detail') => boolean;
|
|
658
|
+
}
|
|
659
|
+
interface BaseOption {
|
|
660
|
+
label: string;
|
|
661
|
+
value: string | number;
|
|
662
|
+
disabled?: boolean;
|
|
663
|
+
}
|
|
664
|
+
interface BaseConfig<T extends DataRecord = DataRecord> {
|
|
665
|
+
enabled?: boolean;
|
|
666
|
+
rowCheckable?: (row: T) => boolean;
|
|
667
|
+
}
|
|
668
|
+
type SelectOption = BaseOption;
|
|
669
|
+
interface EditProps {
|
|
670
|
+
min?: number;
|
|
671
|
+
max?: number;
|
|
672
|
+
step?: number;
|
|
673
|
+
showButton?: boolean;
|
|
674
|
+
type?: string;
|
|
675
|
+
rows?: number;
|
|
676
|
+
placeholder?: string;
|
|
677
|
+
options?: SelectOption[];
|
|
678
|
+
rules?: FormItemRule[];
|
|
679
|
+
format?: string;
|
|
680
|
+
valueFormat?: string;
|
|
681
|
+
clearable?: boolean;
|
|
682
|
+
disabled?: boolean;
|
|
683
|
+
readonly?: boolean;
|
|
684
|
+
}
|
|
685
|
+
/**
|
|
686
|
+
* ================= 列类型系统 =================
|
|
687
|
+
* 说明:
|
|
688
|
+
* - BaseTableColumn:去除了 naive 的 key/title/render,提供扩展位
|
|
689
|
+
* - NormalTableColumn:普通数据列,必须有 key + title
|
|
690
|
+
* - BuiltInTableColumn:内置列(selection/expand),不需要 key/title
|
|
691
|
+
* - TableColumn:以上二者联合
|
|
692
|
+
*/
|
|
693
|
+
interface BaseTableColumn<T extends DataRecord = DataRecord> extends Omit<DataTableColumns<T>[number], 'key' | 'title' | 'render' | 'type'> {
|
|
694
|
+
key?: any;
|
|
695
|
+
title?: string;
|
|
696
|
+
visible?: boolean;
|
|
697
|
+
editable?: boolean;
|
|
698
|
+
required?: boolean;
|
|
699
|
+
editType?: EditType;
|
|
700
|
+
editProps?: EditProps;
|
|
701
|
+
editRender?: (value: any, rowData: T, rowIndex: number) => VNodeChild;
|
|
702
|
+
render?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
703
|
+
/** 声明式格式化器(优先级低于 render) */
|
|
704
|
+
formatter?: ColumnFormatter;
|
|
705
|
+
fixed?: 'left' | 'right';
|
|
706
|
+
resizable?: boolean;
|
|
707
|
+
minWidth?: number;
|
|
708
|
+
maxWidth?: number;
|
|
709
|
+
}
|
|
710
|
+
interface NormalTableColumn<T extends DataRecord = DataRecord> extends BaseTableColumn<T> {
|
|
711
|
+
key: keyof T | string;
|
|
712
|
+
title: string;
|
|
713
|
+
}
|
|
714
|
+
interface BuiltInTableColumn<T extends DataRecord = DataRecord> extends BaseTableColumn<T> {
|
|
715
|
+
/** 内置列类型:无需 key / title */
|
|
716
|
+
type: 'selection' | 'expand' | 'index';
|
|
717
|
+
/** 展开行渲染函数(仅当 type = expand 时有效) */
|
|
718
|
+
renderExpand?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
719
|
+
}
|
|
720
|
+
type TableColumn<T extends DataRecord = DataRecord> = NormalTableColumn<T> | BuiltInTableColumn<T>;
|
|
721
|
+
interface ChildSelectionState {
|
|
722
|
+
selectedKeys: DataTableRowKey[];
|
|
723
|
+
isAllChecked: boolean;
|
|
724
|
+
selectAll: () => void;
|
|
725
|
+
clearAll: () => void;
|
|
726
|
+
}
|
|
727
|
+
interface ExpandConfig<T extends DataRecord = DataRecord, C = any> {
|
|
728
|
+
onLoadData?: (row: T) => Promise<C[]> | C[];
|
|
729
|
+
renderContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
|
|
730
|
+
rowExpandable?: (row: T) => boolean;
|
|
731
|
+
}
|
|
732
|
+
interface SelectionConfig<T extends DataRecord = DataRecord> extends BaseConfig<T> {
|
|
733
|
+
enableSelection?: boolean;
|
|
734
|
+
defaultCheckedKeys?: DataTableRowKey[];
|
|
735
|
+
maxSelection?: number;
|
|
736
|
+
enableChildSelection?: boolean;
|
|
737
|
+
childRowCheckable?: (childRow: any, parentRow: T) => boolean;
|
|
738
|
+
enableParentChildLink?: boolean;
|
|
739
|
+
parentChildLinkMode?: ParentChildLinkMode;
|
|
740
|
+
}
|
|
741
|
+
interface TableExpandEvents<T extends DataRecord = DataRecord> {
|
|
742
|
+
'expand-change': [expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean];
|
|
743
|
+
}
|
|
744
|
+
interface TableSelectionEvents<T extends DataRecord = DataRecord> {
|
|
745
|
+
'selection-change': [checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>];
|
|
746
|
+
'child-selection-change': [parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: any[]];
|
|
747
|
+
'parent-child-link-change': [parentKey: DataTableRowKey, shouldSelect: boolean];
|
|
748
|
+
}
|
|
749
|
+
interface TableEditEvents<T extends DataRecord = DataRecord> {
|
|
750
|
+
'update:data': [data: T[]];
|
|
751
|
+
save: [rowData: T, rowIndex: number, columnKey?: string];
|
|
752
|
+
cancel: [rowData: T, rowIndex: number];
|
|
753
|
+
}
|
|
754
|
+
interface TableEmits<T extends DataRecord = DataRecord> extends TableExpandEvents<T>, TableSelectionEvents<T>, TableEditEvents<T> {
|
|
755
|
+
'pagination-change': [page: number, pageSize: number];
|
|
756
|
+
'row-delete': [deletedRow: T, index: number];
|
|
757
|
+
}
|
|
758
|
+
interface UseTableExpandOptions<T extends DataRecord = DataRecord, C = any> extends ExpandConfig<T, C>, SelectionConfig<T> {
|
|
759
|
+
data: Ref<T[]> | ComputedRef<T[]>;
|
|
760
|
+
rowKey: (row: T) => DataTableRowKey;
|
|
761
|
+
childRowKey?: (child: C) => DataTableRowKey;
|
|
762
|
+
defaultExpandedKeys?: DataTableRowKey[];
|
|
763
|
+
onExpandChange?: (expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean) => void;
|
|
764
|
+
onSelectionChange?: (checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>) => void;
|
|
765
|
+
onChildSelectionChange?: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => void;
|
|
766
|
+
}
|
|
767
|
+
interface UseTableExpandReturn<T extends DataRecord = DataRecord, C = any> {
|
|
768
|
+
expandedKeys: Ref<DataTableRowKey[]>;
|
|
769
|
+
checkedKeys: Ref<DataTableRowKey[]>;
|
|
770
|
+
childSelections: Ref<Map<DataTableRowKey, DataTableRowKey[]>>;
|
|
771
|
+
expandDataMap: Ref<Map<DataTableRowKey, C[]>>;
|
|
772
|
+
loadingMap: Ref<Map<DataTableRowKey, boolean>>;
|
|
773
|
+
selectedRowsCount: ComputedRef<number>;
|
|
774
|
+
totalChildSelections: ComputedRef<number>;
|
|
775
|
+
expandAll: () => Promise<void>;
|
|
776
|
+
collapseAll: () => void;
|
|
777
|
+
expandRow: (key: DataTableRowKey) => Promise<void>;
|
|
778
|
+
handleExpandChange: (keys: DataTableRowKey[]) => void;
|
|
779
|
+
selectAll: () => void;
|
|
780
|
+
clearSelection: () => void;
|
|
781
|
+
clearAllSelections: () => void;
|
|
782
|
+
handleSelectionChange: (keys: DataTableRowKey[]) => void;
|
|
783
|
+
getTableColumns: (originalColumns: TableColumn<T>[]) => any[];
|
|
784
|
+
}
|
|
785
|
+
//#endregion
|
|
571
786
|
//#region src/components/C_Table/index.vue.d.ts
|
|
572
787
|
type __VLS_Props = {
|
|
573
788
|
/** 列配置(crud 模式下可省略) */columns?: TableColumn[]; /** 数据源(crud 模式下可省略) */
|
|
@@ -577,11 +792,15 @@ type __VLS_Props = {
|
|
|
577
792
|
config?: TableConfig; /** CRUD 绑定 — 传入 useTableCrud() 的返回值,自动接管 data/columns/loading/actions/pagination/events */
|
|
578
793
|
crud?: CrudBinding;
|
|
579
794
|
};
|
|
580
|
-
declare var __VLS_6: {}, __VLS_8: {}
|
|
795
|
+
declare var __VLS_6: {}, __VLS_8: {}, __VLS_52: {
|
|
796
|
+
error: ErrorConfig;
|
|
797
|
+
};
|
|
581
798
|
type __VLS_Slots = {} & {
|
|
582
799
|
'toolbar-left'?: (props: typeof __VLS_6) => any;
|
|
583
800
|
} & {
|
|
584
801
|
'toolbar-right'?: (props: typeof __VLS_8) => any;
|
|
802
|
+
} & {
|
|
803
|
+
error?: (props: typeof __VLS_52) => any;
|
|
585
804
|
};
|
|
586
805
|
declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
587
806
|
startEdit: (rowKey: DataTableRowKey$1, columnKey?: string) => void;
|
|
@@ -593,7 +812,7 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
|
593
812
|
clearRowSelection: () => void;
|
|
594
813
|
resetToFirstPage: () => void;
|
|
595
814
|
getSelectedRows: () => DataRecord[];
|
|
596
|
-
getEditingData: () =>
|
|
815
|
+
getEditingData: () => vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
|
|
597
816
|
isEditing: (rowKey: DataTableRowKey$1, columnKey?: string) => boolean;
|
|
598
817
|
isExpanded: (rowKey: DataTableRowKey$1) => boolean;
|
|
599
818
|
getManager: () => {
|
|
@@ -602,7 +821,7 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
|
602
821
|
cancel(): void;
|
|
603
822
|
save(): Promise<void>;
|
|
604
823
|
isEditing(rowKey: DataTableRowKey$1, columnKey?: string): boolean;
|
|
605
|
-
getEditingData():
|
|
824
|
+
getEditingData(): vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
|
|
606
825
|
};
|
|
607
826
|
expand: {
|
|
608
827
|
row(rowKey: DataTableRowKey$1): Promise<void>;
|
|
@@ -640,10 +859,18 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
|
640
859
|
download(elementRef?: HTMLElement, filename?: string): Promise<void>;
|
|
641
860
|
};
|
|
642
861
|
clearAllSelections(): void;
|
|
643
|
-
};
|
|
862
|
+
}; /** 导出数据 */
|
|
863
|
+
exportData: () => Promise<void>; /** 跨页选择 */
|
|
864
|
+
crossPageSelection: {
|
|
865
|
+
selectedKeys: vue.Ref<Set<DataTableRowKey$1>, Set<DataTableRowKey$1>>;
|
|
866
|
+
selectedCount: vue.ComputedRef<number>;
|
|
867
|
+
selectAll: () => void;
|
|
868
|
+
clearAll: () => void;
|
|
869
|
+
getSelectedRows: () => DataRecord[];
|
|
870
|
+
} | undefined;
|
|
644
871
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
645
|
-
save: (rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any;
|
|
646
872
|
cancel: (rowData: DataRecord, rowIndex: number) => any;
|
|
873
|
+
save: (rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any;
|
|
647
874
|
"pagination-change": (...args: unknown[]) => any;
|
|
648
875
|
"row-delete": (...args: unknown[]) => any;
|
|
649
876
|
"expand-change": (expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any;
|
|
@@ -658,8 +885,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
|
658
885
|
"view-detail": (data: DataRecord) => any;
|
|
659
886
|
"column-change": (columns: TableColumn[]) => any;
|
|
660
887
|
}, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
661
|
-
onSave?: ((rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
|
|
662
888
|
onCancel?: ((rowData: DataRecord, rowIndex: number) => any) | undefined;
|
|
889
|
+
onSave?: ((rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
|
|
663
890
|
"onPagination-change"?: ((...args: unknown[]) => any) | undefined;
|
|
664
891
|
"onRow-delete"?: ((...args: unknown[]) => any) | undefined;
|
|
665
892
|
"onExpand-change"?: ((expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any) | undefined;
|
|
@@ -747,6 +974,48 @@ interface UseTableColumnsReturn {
|
|
|
747
974
|
*/
|
|
748
975
|
declare function useTableColumns(options: UseTableColumnsOptions): UseTableColumnsReturn;
|
|
749
976
|
//#endregion
|
|
977
|
+
//#region src/components/C_Table/composables/useRowEdit.d.ts
|
|
978
|
+
/** 行级校验错误 */
|
|
979
|
+
interface RowValidationError {
|
|
980
|
+
field: string;
|
|
981
|
+
message: string;
|
|
982
|
+
}
|
|
983
|
+
/**
|
|
984
|
+
* 行编辑配置选项
|
|
985
|
+
*/
|
|
986
|
+
interface RowEditOptions {
|
|
987
|
+
data: () => DataRecord[];
|
|
988
|
+
rowKey: (row: DataRecord) => DataTableRowKey$1;
|
|
989
|
+
onSave?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
|
|
990
|
+
onCancel?: (rowData: DataRecord, rowIndex: number) => void;
|
|
991
|
+
/** 列配置(用于提取校验规则) */
|
|
992
|
+
columns?: () => TableColumn[];
|
|
993
|
+
}
|
|
994
|
+
/**
|
|
995
|
+
* 可编辑行组合函数,提供表格整行的编辑功能
|
|
996
|
+
*/
|
|
997
|
+
declare function useRowEdit(options: RowEditOptions): {
|
|
998
|
+
editingRowKey: vue.Ref<DataTableRowKey$1 | null, DataTableRowKey$1 | null>;
|
|
999
|
+
isEditingRow: (rowKey: DataTableRowKey$1) => boolean;
|
|
1000
|
+
startEditRow: (rowKey: DataTableRowKey$1) => void;
|
|
1001
|
+
cancelEditRow: () => Promise<void>;
|
|
1002
|
+
saveEditRow: () => Promise<{
|
|
1003
|
+
updatedData: DataRecord;
|
|
1004
|
+
rowIndex: number;
|
|
1005
|
+
} | undefined>;
|
|
1006
|
+
validateRow: () => Promise<boolean>;
|
|
1007
|
+
validationErrors: vue.Ref<{
|
|
1008
|
+
field: string;
|
|
1009
|
+
message: string;
|
|
1010
|
+
}[], RowValidationError[] | {
|
|
1011
|
+
field: string;
|
|
1012
|
+
message: string;
|
|
1013
|
+
}[]>;
|
|
1014
|
+
getEditingRowData: (rowKey: DataTableRowKey$1) => DataRecord;
|
|
1015
|
+
updateEditingRowData: (rowKey: DataTableRowKey$1, field: string, value: unknown) => void;
|
|
1016
|
+
findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
|
|
1017
|
+
};
|
|
1018
|
+
//#endregion
|
|
750
1019
|
//#region src/components/C_Table/composables/useTableManager.d.ts
|
|
751
1020
|
/**
|
|
752
1021
|
* 表格管理器配置接口
|
|
@@ -780,6 +1049,8 @@ interface TableManagerParams {
|
|
|
780
1049
|
data: () => DataRecord[];
|
|
781
1050
|
rowKey: (row: DataRecord) => DataTableRowKey$1;
|
|
782
1051
|
emit: (...args: any[]) => void;
|
|
1052
|
+
/** 列配置(用于编辑校验) */
|
|
1053
|
+
columns?: () => TableColumn[];
|
|
783
1054
|
}
|
|
784
1055
|
/**
|
|
785
1056
|
* 事件处理器接口
|
|
@@ -811,6 +1082,14 @@ declare function useTableManager(params: TableManagerParams): {
|
|
|
811
1082
|
updatedData: DataRecord;
|
|
812
1083
|
rowIndex: number;
|
|
813
1084
|
} | undefined>;
|
|
1085
|
+
validateRow: () => Promise<boolean>;
|
|
1086
|
+
validationErrors: vue.Ref<{
|
|
1087
|
+
field: string;
|
|
1088
|
+
message: string;
|
|
1089
|
+
}[], RowValidationError[] | {
|
|
1090
|
+
field: string;
|
|
1091
|
+
message: string;
|
|
1092
|
+
}[]>;
|
|
814
1093
|
getEditingRowData: (rowKey: DataTableRowKey$1) => DataRecord;
|
|
815
1094
|
updateEditingRowData: (rowKey: DataTableRowKey$1, field: string, value: unknown) => void;
|
|
816
1095
|
findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
|
|
@@ -836,6 +1115,8 @@ declare function useTableManager(params: TableManagerParams): {
|
|
|
836
1115
|
columnKey: string;
|
|
837
1116
|
} | undefined>;
|
|
838
1117
|
cancelEditCell: () => void;
|
|
1118
|
+
validateCell: () => Promise<boolean>;
|
|
1119
|
+
cellValidationError: vue.Ref<string | null, string | null>;
|
|
839
1120
|
getEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string) => unknown;
|
|
840
1121
|
updateEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string, value: unknown) => void;
|
|
841
1122
|
findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
|
|
@@ -862,7 +1143,7 @@ declare function useTableManager(params: TableManagerParams): {
|
|
|
862
1143
|
cancel(): void; /** 保存编辑 */
|
|
863
1144
|
save(): Promise<void>; /** 是否正在编辑 */
|
|
864
1145
|
isEditing(rowKey: DataTableRowKey$1, columnKey?: string): boolean; /** 获取当前编辑数据 */
|
|
865
|
-
getEditingData():
|
|
1146
|
+
getEditingData(): vue.Ref<Record<string, any>, Record<string, any>> | DataRecord | null;
|
|
866
1147
|
};
|
|
867
1148
|
expand: {
|
|
868
1149
|
/** 展开行 */row(rowKey: DataTableRowKey$1): Promise<void>; /** 折叠行 */
|
|
@@ -939,33 +1220,6 @@ interface UsePaginationReturn<T extends DataRecord = DataRecord> {
|
|
|
939
1220
|
}
|
|
940
1221
|
declare function usePagination<T extends DataRecord = DataRecord>(options: UsePaginationOptions<T>): UsePaginationReturn<T>;
|
|
941
1222
|
//#endregion
|
|
942
|
-
//#region src/components/C_Table/composables/useRowEdit.d.ts
|
|
943
|
-
/**
|
|
944
|
-
* 行编辑配置选项
|
|
945
|
-
*/
|
|
946
|
-
interface RowEditOptions {
|
|
947
|
-
data: () => DataRecord[];
|
|
948
|
-
rowKey: (row: DataRecord) => DataTableRowKey$1;
|
|
949
|
-
onSave?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
|
|
950
|
-
onCancel?: (rowData: DataRecord, rowIndex: number) => void;
|
|
951
|
-
}
|
|
952
|
-
/**
|
|
953
|
-
* 可编辑行组合函数,提供表格整行的编辑功能
|
|
954
|
-
*/
|
|
955
|
-
declare function useRowEdit(options: RowEditOptions): {
|
|
956
|
-
editingRowKey: vue.Ref<DataTableRowKey$1 | null, DataTableRowKey$1 | null>;
|
|
957
|
-
isEditingRow: (rowKey: DataTableRowKey$1) => boolean;
|
|
958
|
-
startEditRow: (rowKey: DataTableRowKey$1) => void;
|
|
959
|
-
cancelEditRow: () => Promise<void>;
|
|
960
|
-
saveEditRow: () => Promise<{
|
|
961
|
-
updatedData: DataRecord;
|
|
962
|
-
rowIndex: number;
|
|
963
|
-
} | undefined>;
|
|
964
|
-
getEditingRowData: (rowKey: DataTableRowKey$1) => DataRecord;
|
|
965
|
-
updateEditingRowData: (rowKey: DataTableRowKey$1, field: string, value: unknown) => void;
|
|
966
|
-
findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
|
|
967
|
-
};
|
|
968
|
-
//#endregion
|
|
969
1223
|
//#region src/components/C_Table/composables/useCellEdit.d.ts
|
|
970
1224
|
/**
|
|
971
1225
|
* 单元格编辑配置选项
|
|
@@ -974,6 +1228,8 @@ interface CellEditOptions {
|
|
|
974
1228
|
data: () => DataRecord[];
|
|
975
1229
|
rowKey: (row: DataRecord) => DataTableRowKey$1;
|
|
976
1230
|
onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string) => void | Promise<void>;
|
|
1231
|
+
/** 列配置(用于提取校验规则) */
|
|
1232
|
+
columns?: () => TableColumn[];
|
|
977
1233
|
}
|
|
978
1234
|
/**
|
|
979
1235
|
* 可编辑单元格组合函数,提供表格单元格的编辑功能
|
|
@@ -999,6 +1255,8 @@ declare function useCellEdit(options: CellEditOptions): {
|
|
|
999
1255
|
columnKey: string;
|
|
1000
1256
|
} | undefined>;
|
|
1001
1257
|
cancelEditCell: () => void;
|
|
1258
|
+
validateCell: () => Promise<boolean>;
|
|
1259
|
+
cellValidationError: vue.Ref<string | null, string | null>;
|
|
1002
1260
|
getEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string) => unknown;
|
|
1003
1261
|
updateEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string, value: unknown) => void;
|
|
1004
1262
|
findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
|
|
@@ -1031,5 +1289,5 @@ declare function useModalEdit<T = Record<string, any>>(options: ModalEditOptions
|
|
|
1031
1289
|
getEditingRowData: (rowKey: DataTableRowKey$1) => Record<string, any> | null;
|
|
1032
1290
|
};
|
|
1033
1291
|
//#endregion
|
|
1034
|
-
export {
|
|
1292
|
+
export { PrintWatermarkOptions as $, BatchActionsConfig as A, ExportConfig as B, FormatterConfig as C, applyFormatter as D, TableGlobalConfig as E, TableConfig as F, useCrossPageSelection as G, CrossPageSelectionConfig as H, TreeConfig as I, UseRowDragReturn as J, RowDragConfig as K, VirtualScrollConfig as L, CrudBinding as M, ErrorConfig as N, mergeGlobalConfig as O, SummaryConfig as P, useDynamicRows as Q, createEditModeChecker as R, ColumnFormatter as S, TABLE_GLOBAL_CONFIG_KEY as T, UseCrossPageSelectionOptions as U, exportTableData as V, UseCrossPageSelectionReturn as W, DynamicRowsOptions as X, useRowDrag as Y, DynamicRowsReturn as Z, SimpleTableActions as _, useTableExpand as a, UseTableExpandOptions as b, useTableColumns as c, DataRecord as d, printPresets as et, EditMode as f, SelectOption as g, ParentChildLinkMode as h, useTableActions as i, ColumnDragConfig as j, useTableGlobalConfig as k, _default as l, PaginationConfig as m, useCellEdit as n, useTableManager as o, MaybeRefLike as p, UseRowDragOptions as q, usePagination as r, useRowEdit as s, useModalEdit as t, usePrintWatermark as tt, ChildSelectionState as u, TableColumn as v, FormatterType as w, UseTableExpandReturn as x, TableEmits as y, resolveConfig as z };
|
|
1035
1293
|
//# sourceMappingURL=useModalEdit.d.ts.map
|