@robot-admin/naive-ui-components 0.6.31 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -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 +3 -3
- package/dist/constants3.d.ts +3 -3
- package/dist/constants4.d.ts +2 -2
- package/dist/constants5.d.ts +2 -2
- 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/index.vue.d.ts +1 -1
- package/dist/index10.vue.d.ts +1 -1
- package/dist/index11.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 +4 -4
- package/dist/index16.vue.d.ts +2 -2
- package/dist/index18.vue.d.ts +4 -4
- package/dist/index2.vue.d.ts +6 -6
- package/dist/index20.vue.d.ts +1 -1
- package/dist/index21.vue.d.ts +1 -1
- package/dist/index22.vue.d.ts +2 -2
- package/dist/index23.vue.d.ts +1 -1
- package/dist/index24.vue.d.ts +1 -1
- package/dist/index26.vue.d.ts +4 -4
- package/dist/index27.vue.d.ts +2 -2
- package/dist/index28.vue.d.ts +3 -3
- package/dist/index3.vue.d.ts +3 -3
- package/dist/index4.vue.d.ts +5 -5
- package/dist/index6.vue.d.ts +2 -2
- package/dist/index7.vue.d.ts +2 -2
- 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 +5 -5
- package/dist/useCropperCore.d.ts +4 -4
- package/dist/useDraggableLayout.d.ts +5 -5
- package/dist/useDynamicFormState.d.ts +124 -124
- package/dist/useEdgeInteraction.d.ts +1 -1
- package/dist/useGlobalSearch.d.ts +1 -1
- package/dist/useInfiniteScroll.d.ts +4 -4
- package/dist/useModalEdit.d.ts +513 -240
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useSearchState.d.ts +2 -2
- package/dist/useSignatureHistory.d.ts +3 -3
- package/dist/useSplitResize.d.ts +5 -5
- package/dist/useTimeSelection.d.ts +2 -2
- package/dist/useTreeOperations.d.ts +4 -4
- 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,96 @@ 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
|
+
/** 行拖拽排序组合式函数 */
|
|
227
|
+
declare function useRowDrag<T extends DataRecord = DataRecord>(options: UseRowDragOptions<T>): UseRowDragReturn;
|
|
228
|
+
//#endregion
|
|
229
|
+
//#region src/components/C_Table/composables/useCrossPageSelection.d.ts
|
|
230
|
+
interface CrossPageSelectionConfig {
|
|
231
|
+
enabled?: boolean;
|
|
232
|
+
/** 最大选择数 */
|
|
233
|
+
maxSelection?: number;
|
|
234
|
+
}
|
|
235
|
+
interface UseCrossPageSelectionOptions<T extends DataRecord = DataRecord> {
|
|
236
|
+
/** 全量数据(非分页后的) */
|
|
237
|
+
allData: Ref<T[]> | ComputedRef<T[]>;
|
|
238
|
+
/** 行键函数 */
|
|
239
|
+
rowKey: (row: T) => DataTableRowKey$1;
|
|
240
|
+
/** 配置 */
|
|
241
|
+
config: CrossPageSelectionConfig;
|
|
242
|
+
}
|
|
243
|
+
interface UseCrossPageSelectionReturn<T extends DataRecord = DataRecord> {
|
|
244
|
+
/** 所有选中的 key(跨页) */
|
|
245
|
+
selectedKeys: Ref<Set<DataTableRowKey$1>>;
|
|
246
|
+
/** 选中行数量 */
|
|
247
|
+
selectedCount: ComputedRef<number>;
|
|
248
|
+
/** 当前页数据的 checkedKeys(给 NDataTable 绑定) */
|
|
249
|
+
getPageCheckedKeys: (pageData: T[]) => DataTableRowKey$1[];
|
|
250
|
+
/** NDataTable @update:checked-row-keys 处理器 */
|
|
251
|
+
handlePageSelectionChange: (keys: DataTableRowKey$1[], pageData: T[]) => void;
|
|
252
|
+
/** 全选所有页 */
|
|
253
|
+
selectAll: () => void;
|
|
254
|
+
/** 清除所有页选中 */
|
|
255
|
+
clearAll: () => void;
|
|
256
|
+
/** 获取所有选中行数据 */
|
|
257
|
+
getSelectedRows: () => T[];
|
|
258
|
+
/** 判断 key 是否选中 */
|
|
259
|
+
isSelected: (key: DataTableRowKey$1) => boolean;
|
|
260
|
+
}
|
|
261
|
+
/** 跨页多选组合式函数 */
|
|
262
|
+
declare function useCrossPageSelection<T extends DataRecord = DataRecord>(options: UseCrossPageSelectionOptions<T>): UseCrossPageSelectionReturn<T>;
|
|
263
|
+
//#endregion
|
|
264
|
+
//#region src/components/C_Table/composables/useTableExport.d.ts
|
|
265
|
+
interface ExportConfig {
|
|
266
|
+
/** 导出文件名(不含扩展名) */
|
|
267
|
+
filename?: string;
|
|
268
|
+
/** 导出格式 */
|
|
269
|
+
format?: 'csv' | 'xlsx';
|
|
270
|
+
/** 是否包含表头 */
|
|
271
|
+
includeHeader?: boolean;
|
|
272
|
+
/** 自定义选择导出列(传 key 数组) */
|
|
273
|
+
columnKeys?: string[];
|
|
274
|
+
/** CSV 分隔符 */
|
|
275
|
+
csvSeparator?: string;
|
|
276
|
+
/** 全局格式化配置(用于 formatter) */
|
|
277
|
+
formatterConfig?: FormatterConfig;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* 导出表格数据
|
|
281
|
+
*/
|
|
282
|
+
declare function exportTableData(data: DataRecord[], columns: TableColumn[], config?: ExportConfig): Promise<void>;
|
|
283
|
+
//#endregion
|
|
399
284
|
//#region src/components/C_Table/composables/useTableConfig.d.ts
|
|
400
285
|
/**
|
|
401
286
|
* 可绑定到 C_Table 的 CRUD 对象接口(桥接类型)
|
|
@@ -428,9 +313,9 @@ interface TableConfig<T extends DataRecord = DataRecord> {
|
|
|
428
313
|
/** 分页配置 */
|
|
429
314
|
pagination?: PaginationConfig | boolean;
|
|
430
315
|
/** 展开行配置 */
|
|
431
|
-
expand?: ExpandConfig<T> | boolean;
|
|
316
|
+
expand?: ExpandConfig$1<T> | boolean;
|
|
432
317
|
/** 选择配置 */
|
|
433
|
-
selection?: SelectionConfig<T> | boolean;
|
|
318
|
+
selection?: SelectionConfig$1<T> | boolean;
|
|
434
319
|
/** 动态行配置 */
|
|
435
320
|
dynamicRows?: DynamicRowsOptions<T> | boolean;
|
|
436
321
|
/** 工具栏 */
|
|
@@ -443,6 +328,22 @@ interface TableConfig<T extends DataRecord = DataRecord> {
|
|
|
443
328
|
summary?: SummaryConfig<T>;
|
|
444
329
|
/** 列拖拽排序 */
|
|
445
330
|
columnDrag?: ColumnDragConfig | boolean;
|
|
331
|
+
/** 树形表格 */
|
|
332
|
+
tree?: TreeConfig | boolean;
|
|
333
|
+
/** 行拖拽排序 */
|
|
334
|
+
rowDrag?: RowDragConfig | boolean;
|
|
335
|
+
/** 跨页多选 */
|
|
336
|
+
crossPageSelection?: CrossPageSelectionConfig | boolean;
|
|
337
|
+
/** 导出配置 */
|
|
338
|
+
export?: ExportConfig;
|
|
339
|
+
/** 列配置持久化 key(传入即启用 localStorage) */
|
|
340
|
+
persistKey?: string;
|
|
341
|
+
/** 全局格式化配置 */
|
|
342
|
+
formatterConfig?: FormatterConfig;
|
|
343
|
+
/** 错误状态配置 */
|
|
344
|
+
error?: ErrorConfig;
|
|
345
|
+
/** 批量操作配置 */
|
|
346
|
+
batchActions?: BatchActionsConfig;
|
|
446
347
|
}
|
|
447
348
|
interface EditConfig {
|
|
448
349
|
enabled?: boolean;
|
|
@@ -451,14 +352,14 @@ interface EditConfig {
|
|
|
451
352
|
modalTitle?: string;
|
|
452
353
|
modalWidth?: number;
|
|
453
354
|
}
|
|
454
|
-
interface ExpandConfig<T extends DataRecord = DataRecord> {
|
|
355
|
+
interface ExpandConfig$1<T extends DataRecord = DataRecord> {
|
|
455
356
|
enabled?: boolean;
|
|
456
357
|
defaultExpandedKeys?: DataTableRowKey$1[];
|
|
457
358
|
onLoadData?: (row: T) => Promise<unknown[]> | unknown[];
|
|
458
359
|
renderContent?: (row: T, expandData: unknown[], loading: boolean, childSelection?: unknown) => VNodeChild;
|
|
459
360
|
rowExpandable?: (row: T) => boolean;
|
|
460
361
|
}
|
|
461
|
-
interface SelectionConfig<T extends DataRecord = DataRecord> {
|
|
362
|
+
interface SelectionConfig$1<T extends DataRecord = DataRecord> {
|
|
462
363
|
enabled?: boolean;
|
|
463
364
|
defaultCheckedKeys?: naive_ui_es0.DataTableRowKey[];
|
|
464
365
|
rowCheckable?: (row: T) => boolean;
|
|
@@ -513,6 +414,37 @@ interface ColumnDragConfig {
|
|
|
513
414
|
/** 拖拽动画时长(ms) */
|
|
514
415
|
animationDuration?: number;
|
|
515
416
|
}
|
|
417
|
+
/** 树形表格配置 */
|
|
418
|
+
interface TreeConfig {
|
|
419
|
+
enabled?: boolean;
|
|
420
|
+
/** 子节点字段名 */
|
|
421
|
+
childrenKey?: string;
|
|
422
|
+
/** 缩进宽度(px) */
|
|
423
|
+
indent?: number;
|
|
424
|
+
/** 默认展开所有 */
|
|
425
|
+
defaultExpandAll?: boolean;
|
|
426
|
+
}
|
|
427
|
+
/** 错误状态配置 */
|
|
428
|
+
interface ErrorConfig {
|
|
429
|
+
/** 是否显示错误状态 */
|
|
430
|
+
show?: boolean;
|
|
431
|
+
/** 错误描述文案 */
|
|
432
|
+
message?: string;
|
|
433
|
+
/** 重试回调 */
|
|
434
|
+
onRetry?: () => void | Promise<void>;
|
|
435
|
+
}
|
|
436
|
+
/** 批量操作配置 */
|
|
437
|
+
interface BatchActionsConfig {
|
|
438
|
+
enabled?: boolean;
|
|
439
|
+
/** 自定义批量操作按钮 */
|
|
440
|
+
actions?: Array<{
|
|
441
|
+
key: string;
|
|
442
|
+
label: string;
|
|
443
|
+
icon?: string;
|
|
444
|
+
type?: string;
|
|
445
|
+
onClick: (selectedKeys: DataTableRowKey$1[], selectedRows: DataRecord[]) => void | Promise<void>;
|
|
446
|
+
}>;
|
|
447
|
+
}
|
|
516
448
|
interface ResolvedConfig {
|
|
517
449
|
editable: boolean;
|
|
518
450
|
editMode: string;
|
|
@@ -557,6 +489,25 @@ interface ResolvedConfig {
|
|
|
557
489
|
enableColumnDrag: boolean;
|
|
558
490
|
columnDragHandleClass: string;
|
|
559
491
|
columnDragAnimationDuration: number;
|
|
492
|
+
/** 树形表格 */
|
|
493
|
+
treeEnabled: boolean;
|
|
494
|
+
treeChildrenKey: string;
|
|
495
|
+
treeIndent: number;
|
|
496
|
+
treeDefaultExpandAll: boolean;
|
|
497
|
+
/** 行拖拽 */
|
|
498
|
+
rowDrag: RowDragConfig | undefined;
|
|
499
|
+
/** 跨页多选 */
|
|
500
|
+
crossPageSelection: CrossPageSelectionConfig | undefined;
|
|
501
|
+
/** 导出配置 */
|
|
502
|
+
exportConfig: ExportConfig | undefined;
|
|
503
|
+
/** 列持久化 key */
|
|
504
|
+
persistKey: string | undefined;
|
|
505
|
+
/** 全局格式化配置 */
|
|
506
|
+
formatterConfig: FormatterConfig | undefined;
|
|
507
|
+
/** 错误状态 */
|
|
508
|
+
error: ErrorConfig | undefined;
|
|
509
|
+
/** 批量操作 */
|
|
510
|
+
batchActions: BatchActionsConfig | undefined;
|
|
560
511
|
}
|
|
561
512
|
/**
|
|
562
513
|
* 将 config 单一对象解析为内部扁平化配置
|
|
@@ -568,6 +519,285 @@ declare const createEditModeChecker: (config: ResolvedConfig) => {
|
|
|
568
519
|
isCellEditMode: () => boolean;
|
|
569
520
|
};
|
|
570
521
|
//#endregion
|
|
522
|
+
//#region src/components/C_Table/composables/useTableGlobalConfig.d.ts
|
|
523
|
+
type FormatterType = 'date' | 'datetime' | 'currency' | 'percent' | 'enum' | 'number';
|
|
524
|
+
interface FormatterConfig {
|
|
525
|
+
/** 日期格式 */
|
|
526
|
+
date?: {
|
|
527
|
+
format?: string;
|
|
528
|
+
};
|
|
529
|
+
/** 日期时间格式 */
|
|
530
|
+
datetime?: {
|
|
531
|
+
format?: string;
|
|
532
|
+
};
|
|
533
|
+
/** 货币格式 */
|
|
534
|
+
currency?: {
|
|
535
|
+
prefix?: string;
|
|
536
|
+
suffix?: string;
|
|
537
|
+
precision?: number;
|
|
538
|
+
};
|
|
539
|
+
/** 百分比格式 */
|
|
540
|
+
percent?: {
|
|
541
|
+
precision?: number;
|
|
542
|
+
suffix?: string;
|
|
543
|
+
};
|
|
544
|
+
/** 数字格式(千分位) */
|
|
545
|
+
number?: {
|
|
546
|
+
precision?: number;
|
|
547
|
+
};
|
|
548
|
+
}
|
|
549
|
+
/** 列级 formatter 配置 */
|
|
550
|
+
interface ColumnFormatter {
|
|
551
|
+
type: FormatterType;
|
|
552
|
+
/** enum mapping:{ male: '男', female: '女' } */
|
|
553
|
+
mapping?: Record<string, string>;
|
|
554
|
+
/** 自定义格式化函数(优先级最高) */
|
|
555
|
+
fn?: (value: unknown, row: DataRecord) => string;
|
|
556
|
+
/** 覆盖全局格式配置 */
|
|
557
|
+
config?: Record<string, unknown>;
|
|
558
|
+
}
|
|
559
|
+
interface TableGlobalConfig {
|
|
560
|
+
/** 表格显示默认值 */
|
|
561
|
+
display?: DisplayConfig;
|
|
562
|
+
/** 默认分页条数 */
|
|
563
|
+
pageSize?: number;
|
|
564
|
+
/** 空状态文案 */
|
|
565
|
+
emptyText?: string;
|
|
566
|
+
/** 全局格式化配置 */
|
|
567
|
+
formatter?: FormatterConfig;
|
|
568
|
+
/** 列配置持久化前缀 */
|
|
569
|
+
persistPrefix?: string;
|
|
570
|
+
/** 默认导出文件名 */
|
|
571
|
+
exportFilename?: string;
|
|
572
|
+
}
|
|
573
|
+
declare const TABLE_GLOBAL_CONFIG_KEY: InjectionKey<TableGlobalConfig>;
|
|
574
|
+
/** 根据 ColumnFormatter 配置格式化单元格值 */
|
|
575
|
+
declare function applyFormatter(value: unknown, row: DataRecord, formatter: ColumnFormatter, globalConfig?: FormatterConfig): string;
|
|
576
|
+
/** 在组件内获取全局配置(自动合并默认值) */
|
|
577
|
+
declare function useTableGlobalConfig(): TableGlobalConfig;
|
|
578
|
+
/** 合并全局配置到 TableConfig(局部 > 全局 > 默认) */
|
|
579
|
+
declare function mergeGlobalConfig(local: TableConfig, global: TableGlobalConfig): TableConfig;
|
|
580
|
+
//#endregion
|
|
581
|
+
//#region src/components/C_Table/types.d.ts
|
|
582
|
+
type RefLike<T> = {
|
|
583
|
+
value: T;
|
|
584
|
+
} | T;
|
|
585
|
+
type MaybeRefLike<T> = RefLike<T> | MaybeRef<T>;
|
|
586
|
+
type DataRecord = Record<string, unknown>;
|
|
587
|
+
type EditMode = 'row' | 'cell' | 'both' | 'modal' | 'none';
|
|
588
|
+
type EditType = 'input' | 'textarea' | 'select' | 'date' | 'number' | 'switch' | 'email' | 'mobile';
|
|
589
|
+
type ButtonType = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error';
|
|
590
|
+
type ParentChildLinkMode = 'strict' | 'loose';
|
|
591
|
+
interface PaginationConfig {
|
|
592
|
+
enabled?: boolean;
|
|
593
|
+
page?: number;
|
|
594
|
+
pageSize?: number;
|
|
595
|
+
total?: number;
|
|
596
|
+
showSizePicker?: boolean;
|
|
597
|
+
showQuickJumper?: boolean;
|
|
598
|
+
pageSizes?: number[];
|
|
599
|
+
simple?: boolean;
|
|
600
|
+
size?: 'small' | 'medium' | 'large';
|
|
601
|
+
remote?: boolean;
|
|
602
|
+
}
|
|
603
|
+
/** API 函数类型 */
|
|
604
|
+
type ApiFunction<T extends DataRecord = DataRecord> = (row: T, index: number) => Promise<any> | any;
|
|
605
|
+
/** 渲染函数类型 */
|
|
606
|
+
type RenderFunction<T extends DataRecord = DataRecord> = (row: T, index: number) => VNodeChild;
|
|
607
|
+
/** 自定义操作按钮配置 */
|
|
608
|
+
interface CustomAction<T extends DataRecord = DataRecord> {
|
|
609
|
+
/** 按钮唯一键 */
|
|
610
|
+
key: string;
|
|
611
|
+
/** 按钮显示文本 */
|
|
612
|
+
label: string | ((row: T, index: number) => string);
|
|
613
|
+
/** 按钮图标 */
|
|
614
|
+
icon: string | ((row: T, index: number) => string);
|
|
615
|
+
/** 按钮类型样式 */
|
|
616
|
+
type?: ButtonType | ((row: T, index: number) => ButtonType);
|
|
617
|
+
/** 点击事件处理器 */
|
|
618
|
+
onClick: (row: T, index: number) => void | Promise<void>;
|
|
619
|
+
/** 条件显示函数(可选) */
|
|
620
|
+
show?: (row: T, index: number) => boolean;
|
|
621
|
+
/** 是否禁用(可选) */
|
|
622
|
+
disabled?: (row: T, index: number) => boolean;
|
|
623
|
+
/** 按钮提示文本(可选) */
|
|
624
|
+
tooltip?: string;
|
|
625
|
+
}
|
|
626
|
+
/** 简化的操作配置 - 二元法则 */
|
|
627
|
+
interface SimpleTableActions<T extends DataRecord = DataRecord> {
|
|
628
|
+
/** 编辑操作 - 直接传入函数 */
|
|
629
|
+
edit?: false | ApiFunction<T>;
|
|
630
|
+
/** 删除操作 - 直接传入函数 */
|
|
631
|
+
delete?: false | ApiFunction<T>;
|
|
632
|
+
/** 详情操作 - 直接传入函数 */
|
|
633
|
+
detail?: false | ApiFunction<T>;
|
|
634
|
+
/** 自定义操作按钮 */
|
|
635
|
+
custom?: CustomAction<T>[];
|
|
636
|
+
/** 完全自定义渲染 - 10%场景 */
|
|
637
|
+
render?: RenderFunction<T>;
|
|
638
|
+
}
|
|
639
|
+
/** useTableActions Hook 选项类型 */
|
|
640
|
+
interface UseTableActionsOptions<T extends DataRecord = DataRecord> {
|
|
641
|
+
/** 操作配置 */
|
|
642
|
+
actions: Ref<SimpleTableActions<T>> | ComputedRef<SimpleTableActions<T>>;
|
|
643
|
+
/** 表格配置 */
|
|
644
|
+
config: Ref<any> | ComputedRef<any>;
|
|
645
|
+
/** 表格管理器 */
|
|
646
|
+
tableManager: any;
|
|
647
|
+
/** 行键获取函数 */
|
|
648
|
+
rowKey: (row: T) => DataTableRowKey;
|
|
649
|
+
/** 事件发射器 */
|
|
650
|
+
emit: any;
|
|
651
|
+
/** 查看详情回调 */
|
|
652
|
+
onViewDetail?: (data: T) => void;
|
|
653
|
+
}
|
|
654
|
+
/** useTableActions Hook 返回类型 */
|
|
655
|
+
interface UseTableActionsReturn<T extends DataRecord = DataRecord> {
|
|
656
|
+
/** 渲染操作列 */
|
|
657
|
+
renderActions: (rowData: T, rowIndex: number) => VNodeChild;
|
|
658
|
+
/** 检查操作是否启用 */
|
|
659
|
+
isActionEnabled: (actionKey: 'edit' | 'delete' | 'detail') => boolean;
|
|
660
|
+
}
|
|
661
|
+
interface BaseOption {
|
|
662
|
+
label: string;
|
|
663
|
+
value: string | number;
|
|
664
|
+
disabled?: boolean;
|
|
665
|
+
}
|
|
666
|
+
interface BaseConfig<T extends DataRecord = DataRecord> {
|
|
667
|
+
enabled?: boolean;
|
|
668
|
+
rowCheckable?: (row: T) => boolean;
|
|
669
|
+
}
|
|
670
|
+
type SelectOption = BaseOption;
|
|
671
|
+
interface EditProps {
|
|
672
|
+
min?: number;
|
|
673
|
+
max?: number;
|
|
674
|
+
step?: number;
|
|
675
|
+
showButton?: boolean;
|
|
676
|
+
type?: string;
|
|
677
|
+
rows?: number;
|
|
678
|
+
placeholder?: string;
|
|
679
|
+
options?: SelectOption[];
|
|
680
|
+
rules?: FormItemRule[];
|
|
681
|
+
format?: string;
|
|
682
|
+
valueFormat?: string;
|
|
683
|
+
clearable?: boolean;
|
|
684
|
+
disabled?: boolean;
|
|
685
|
+
readonly?: boolean;
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* ================= 列类型系统 =================
|
|
689
|
+
* 说明:
|
|
690
|
+
* - BaseTableColumn:去除了 naive 的 key/title/render,提供扩展位
|
|
691
|
+
* - NormalTableColumn:普通数据列,必须有 key + title
|
|
692
|
+
* - BuiltInTableColumn:内置列(selection/expand),不需要 key/title
|
|
693
|
+
* - TableColumn:以上二者联合
|
|
694
|
+
*/
|
|
695
|
+
interface BaseTableColumn<T extends DataRecord = DataRecord> extends Omit<DataTableColumns<T>[number], 'key' | 'title' | 'render' | 'type'> {
|
|
696
|
+
key?: any;
|
|
697
|
+
title?: string;
|
|
698
|
+
visible?: boolean;
|
|
699
|
+
editable?: boolean;
|
|
700
|
+
required?: boolean;
|
|
701
|
+
editType?: EditType;
|
|
702
|
+
editProps?: EditProps;
|
|
703
|
+
editRender?: (value: any, rowData: T, rowIndex: number) => VNodeChild;
|
|
704
|
+
render?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
705
|
+
/** 声明式格式化器(优先级低于 render) */
|
|
706
|
+
formatter?: ColumnFormatter;
|
|
707
|
+
fixed?: 'left' | 'right';
|
|
708
|
+
resizable?: boolean;
|
|
709
|
+
minWidth?: number;
|
|
710
|
+
maxWidth?: number;
|
|
711
|
+
}
|
|
712
|
+
interface NormalTableColumn<T extends DataRecord = DataRecord> extends BaseTableColumn<T> {
|
|
713
|
+
key: keyof T | string;
|
|
714
|
+
title: string;
|
|
715
|
+
}
|
|
716
|
+
interface BuiltInTableColumn<T extends DataRecord = DataRecord> extends BaseTableColumn<T> {
|
|
717
|
+
/** 内置列类型:无需 key / title */
|
|
718
|
+
type: 'selection' | 'expand' | 'index';
|
|
719
|
+
/** 展开行渲染函数(仅当 type = expand 时有效) */
|
|
720
|
+
renderExpand?: (rowData: T, rowIndex: number) => VNodeChild;
|
|
721
|
+
}
|
|
722
|
+
type TableColumn<T extends DataRecord = DataRecord> = NormalTableColumn<T> | BuiltInTableColumn<T>;
|
|
723
|
+
interface ChildSelectionState {
|
|
724
|
+
selectedKeys: DataTableRowKey[];
|
|
725
|
+
isAllChecked: boolean;
|
|
726
|
+
selectAll: () => void;
|
|
727
|
+
clearAll: () => void;
|
|
728
|
+
}
|
|
729
|
+
interface ExpandConfig<T extends DataRecord = DataRecord, C = any> {
|
|
730
|
+
onLoadData?: (row: T) => Promise<C[]> | C[];
|
|
731
|
+
renderContent?: (row: T, expandData: C[], loading: boolean, childSelection?: ChildSelectionState) => VNodeChild;
|
|
732
|
+
rowExpandable?: (row: T) => boolean;
|
|
733
|
+
}
|
|
734
|
+
interface SelectionConfig<T extends DataRecord = DataRecord> extends BaseConfig<T> {
|
|
735
|
+
enableSelection?: boolean;
|
|
736
|
+
defaultCheckedKeys?: DataTableRowKey[];
|
|
737
|
+
maxSelection?: number;
|
|
738
|
+
enableChildSelection?: boolean;
|
|
739
|
+
childRowCheckable?: (childRow: any, parentRow: T) => boolean;
|
|
740
|
+
enableParentChildLink?: boolean;
|
|
741
|
+
parentChildLinkMode?: ParentChildLinkMode;
|
|
742
|
+
}
|
|
743
|
+
interface TableExpandEvents<T extends DataRecord = DataRecord> {
|
|
744
|
+
'expand-change': [expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean];
|
|
745
|
+
}
|
|
746
|
+
interface TableSelectionEvents<T extends DataRecord = DataRecord> {
|
|
747
|
+
'selection-change': [checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>];
|
|
748
|
+
'child-selection-change': [parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: any[]];
|
|
749
|
+
'parent-child-link-change': [parentKey: DataTableRowKey, shouldSelect: boolean];
|
|
750
|
+
}
|
|
751
|
+
interface TableEditEvents<T extends DataRecord = DataRecord> {
|
|
752
|
+
'update:data': [data: T[]];
|
|
753
|
+
save: [rowData: T, rowIndex: number, columnKey?: string];
|
|
754
|
+
cancel: [rowData: T, rowIndex: number];
|
|
755
|
+
}
|
|
756
|
+
interface TableEmits<T extends DataRecord = DataRecord> extends TableExpandEvents<T>, TableSelectionEvents<T>, TableEditEvents<T> {
|
|
757
|
+
'pagination-change': [page: number, pageSize: number];
|
|
758
|
+
'row-delete': [deletedRow: T, index: number];
|
|
759
|
+
}
|
|
760
|
+
interface UseTableExpandOptions<T extends DataRecord = DataRecord, C = any> extends ExpandConfig<T, C>, SelectionConfig<T> {
|
|
761
|
+
data: Ref<T[]> | ComputedRef<T[]>;
|
|
762
|
+
rowKey: (row: T) => DataTableRowKey;
|
|
763
|
+
childRowKey?: (child: C) => DataTableRowKey;
|
|
764
|
+
defaultExpandedKeys?: DataTableRowKey[];
|
|
765
|
+
onExpandChange?: (expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean) => void;
|
|
766
|
+
onSelectionChange?: (checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>) => void;
|
|
767
|
+
onChildSelectionChange?: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => void;
|
|
768
|
+
}
|
|
769
|
+
interface UseTableExpandReturn<T extends DataRecord = DataRecord, C = any> {
|
|
770
|
+
expandedKeys: Ref<DataTableRowKey[]>;
|
|
771
|
+
checkedKeys: Ref<DataTableRowKey[]>;
|
|
772
|
+
childSelections: Ref<Map<DataTableRowKey, DataTableRowKey[]>>;
|
|
773
|
+
expandDataMap: Ref<Map<DataTableRowKey, C[]>>;
|
|
774
|
+
loadingMap: Ref<Map<DataTableRowKey, boolean>>;
|
|
775
|
+
selectedRowsCount: ComputedRef<number>;
|
|
776
|
+
totalChildSelections: ComputedRef<number>;
|
|
777
|
+
expandAll: () => Promise<void>;
|
|
778
|
+
collapseAll: () => void;
|
|
779
|
+
expandRow: (key: DataTableRowKey) => Promise<void>;
|
|
780
|
+
handleExpandChange: (keys: DataTableRowKey[]) => void;
|
|
781
|
+
selectAll: () => void;
|
|
782
|
+
clearSelection: () => void;
|
|
783
|
+
clearAllSelections: () => void;
|
|
784
|
+
handleSelectionChange: (keys: DataTableRowKey[]) => void;
|
|
785
|
+
getTableColumns: (originalColumns: TableColumn<T>[]) => any[];
|
|
786
|
+
}
|
|
787
|
+
/**
|
|
788
|
+
* 展平 TableColumn 联合类型以便直接访问 key/title/visible 等属性。
|
|
789
|
+
* 各 composable 共用此类型,避免重复定义。
|
|
790
|
+
*/
|
|
791
|
+
type ColumnWithKey = TableColumn & {
|
|
792
|
+
key?: string;
|
|
793
|
+
title?: string;
|
|
794
|
+
visible?: boolean;
|
|
795
|
+
width?: number | string;
|
|
796
|
+
align?: string;
|
|
797
|
+
titleAlign?: string;
|
|
798
|
+
formatter?: ColumnFormatter;
|
|
799
|
+
};
|
|
800
|
+
//#endregion
|
|
571
801
|
//#region src/components/C_Table/index.vue.d.ts
|
|
572
802
|
type __VLS_Props = {
|
|
573
803
|
/** 列配置(crud 模式下可省略) */columns?: TableColumn[]; /** 数据源(crud 模式下可省略) */
|
|
@@ -577,11 +807,15 @@ type __VLS_Props = {
|
|
|
577
807
|
config?: TableConfig; /** CRUD 绑定 — 传入 useTableCrud() 的返回值,自动接管 data/columns/loading/actions/pagination/events */
|
|
578
808
|
crud?: CrudBinding;
|
|
579
809
|
};
|
|
580
|
-
declare var __VLS_6: {}, __VLS_8: {}
|
|
810
|
+
declare var __VLS_6: {}, __VLS_8: {}, __VLS_52: {
|
|
811
|
+
error: ErrorConfig;
|
|
812
|
+
};
|
|
581
813
|
type __VLS_Slots = {} & {
|
|
582
814
|
'toolbar-left'?: (props: typeof __VLS_6) => any;
|
|
583
815
|
} & {
|
|
584
816
|
'toolbar-right'?: (props: typeof __VLS_8) => any;
|
|
817
|
+
} & {
|
|
818
|
+
error?: (props: typeof __VLS_52) => any;
|
|
585
819
|
};
|
|
586
820
|
declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
587
821
|
startEdit: (rowKey: DataTableRowKey$1, columnKey?: string) => void;
|
|
@@ -640,7 +874,15 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
|
640
874
|
download(elementRef?: HTMLElement, filename?: string): Promise<void>;
|
|
641
875
|
};
|
|
642
876
|
clearAllSelections(): void;
|
|
643
|
-
};
|
|
877
|
+
}; /** 导出数据 */
|
|
878
|
+
exportData: () => Promise<void>; /** 跨页选择 */
|
|
879
|
+
crossPageSelection: {
|
|
880
|
+
selectedKeys: vue.Ref<Set<DataTableRowKey$1>, Set<DataTableRowKey$1>>;
|
|
881
|
+
selectedCount: vue.ComputedRef<number>;
|
|
882
|
+
selectAll: () => void;
|
|
883
|
+
clearAll: () => void;
|
|
884
|
+
getSelectedRows: () => DataRecord[];
|
|
885
|
+
} | undefined;
|
|
644
886
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
645
887
|
cancel: (rowData: DataRecord, rowIndex: number) => any;
|
|
646
888
|
save: (rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any;
|
|
@@ -747,6 +989,48 @@ interface UseTableColumnsReturn {
|
|
|
747
989
|
*/
|
|
748
990
|
declare function useTableColumns(options: UseTableColumnsOptions): UseTableColumnsReturn;
|
|
749
991
|
//#endregion
|
|
992
|
+
//#region src/components/C_Table/composables/useRowEdit.d.ts
|
|
993
|
+
/** 行级校验错误 */
|
|
994
|
+
interface RowValidationError {
|
|
995
|
+
field: string;
|
|
996
|
+
message: string;
|
|
997
|
+
}
|
|
998
|
+
/**
|
|
999
|
+
* 行编辑配置选项
|
|
1000
|
+
*/
|
|
1001
|
+
interface RowEditOptions {
|
|
1002
|
+
data: () => DataRecord[];
|
|
1003
|
+
rowKey: (row: DataRecord) => DataTableRowKey$1;
|
|
1004
|
+
onSave?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
|
|
1005
|
+
onCancel?: (rowData: DataRecord, rowIndex: number) => void;
|
|
1006
|
+
/** 列配置(用于提取校验规则) */
|
|
1007
|
+
columns?: () => TableColumn[];
|
|
1008
|
+
}
|
|
1009
|
+
/**
|
|
1010
|
+
* 可编辑行组合函数,提供表格整行的编辑功能
|
|
1011
|
+
*/
|
|
1012
|
+
declare function useRowEdit(options: RowEditOptions): {
|
|
1013
|
+
editingRowKey: vue.Ref<DataTableRowKey$1 | null, DataTableRowKey$1 | null>;
|
|
1014
|
+
isEditingRow: (rowKey: DataTableRowKey$1) => boolean;
|
|
1015
|
+
startEditRow: (rowKey: DataTableRowKey$1) => void;
|
|
1016
|
+
cancelEditRow: () => Promise<void>;
|
|
1017
|
+
saveEditRow: () => Promise<{
|
|
1018
|
+
updatedData: DataRecord;
|
|
1019
|
+
rowIndex: number;
|
|
1020
|
+
} | undefined>;
|
|
1021
|
+
validateRow: () => Promise<boolean>;
|
|
1022
|
+
validationErrors: vue.Ref<{
|
|
1023
|
+
field: string;
|
|
1024
|
+
message: string;
|
|
1025
|
+
}[], RowValidationError[] | {
|
|
1026
|
+
field: string;
|
|
1027
|
+
message: string;
|
|
1028
|
+
}[]>;
|
|
1029
|
+
getEditingRowData: (rowKey: DataTableRowKey$1) => DataRecord;
|
|
1030
|
+
updateEditingRowData: (rowKey: DataTableRowKey$1, field: string, value: unknown) => void;
|
|
1031
|
+
findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
|
|
1032
|
+
};
|
|
1033
|
+
//#endregion
|
|
750
1034
|
//#region src/components/C_Table/composables/useTableManager.d.ts
|
|
751
1035
|
/**
|
|
752
1036
|
* 表格管理器配置接口
|
|
@@ -780,6 +1064,8 @@ interface TableManagerParams {
|
|
|
780
1064
|
data: () => DataRecord[];
|
|
781
1065
|
rowKey: (row: DataRecord) => DataTableRowKey$1;
|
|
782
1066
|
emit: (...args: any[]) => void;
|
|
1067
|
+
/** 列配置(用于编辑校验) */
|
|
1068
|
+
columns?: () => TableColumn[];
|
|
783
1069
|
}
|
|
784
1070
|
/**
|
|
785
1071
|
* 事件处理器接口
|
|
@@ -811,6 +1097,14 @@ declare function useTableManager(params: TableManagerParams): {
|
|
|
811
1097
|
updatedData: DataRecord;
|
|
812
1098
|
rowIndex: number;
|
|
813
1099
|
} | undefined>;
|
|
1100
|
+
validateRow: () => Promise<boolean>;
|
|
1101
|
+
validationErrors: vue.Ref<{
|
|
1102
|
+
field: string;
|
|
1103
|
+
message: string;
|
|
1104
|
+
}[], RowValidationError[] | {
|
|
1105
|
+
field: string;
|
|
1106
|
+
message: string;
|
|
1107
|
+
}[]>;
|
|
814
1108
|
getEditingRowData: (rowKey: DataTableRowKey$1) => DataRecord;
|
|
815
1109
|
updateEditingRowData: (rowKey: DataTableRowKey$1, field: string, value: unknown) => void;
|
|
816
1110
|
findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
|
|
@@ -836,6 +1130,8 @@ declare function useTableManager(params: TableManagerParams): {
|
|
|
836
1130
|
columnKey: string;
|
|
837
1131
|
} | undefined>;
|
|
838
1132
|
cancelEditCell: () => void;
|
|
1133
|
+
validateCell: () => Promise<boolean>;
|
|
1134
|
+
cellValidationError: vue.Ref<string | null, string | null>;
|
|
839
1135
|
getEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string) => unknown;
|
|
840
1136
|
updateEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string, value: unknown) => void;
|
|
841
1137
|
findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
|
|
@@ -939,33 +1235,6 @@ interface UsePaginationReturn<T extends DataRecord = DataRecord> {
|
|
|
939
1235
|
}
|
|
940
1236
|
declare function usePagination<T extends DataRecord = DataRecord>(options: UsePaginationOptions<T>): UsePaginationReturn<T>;
|
|
941
1237
|
//#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
1238
|
//#region src/components/C_Table/composables/useCellEdit.d.ts
|
|
970
1239
|
/**
|
|
971
1240
|
* 单元格编辑配置选项
|
|
@@ -974,6 +1243,8 @@ interface CellEditOptions {
|
|
|
974
1243
|
data: () => DataRecord[];
|
|
975
1244
|
rowKey: (row: DataRecord) => DataTableRowKey$1;
|
|
976
1245
|
onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string) => void | Promise<void>;
|
|
1246
|
+
/** 列配置(用于提取校验规则) */
|
|
1247
|
+
columns?: () => TableColumn[];
|
|
977
1248
|
}
|
|
978
1249
|
/**
|
|
979
1250
|
* 可编辑单元格组合函数,提供表格单元格的编辑功能
|
|
@@ -999,6 +1270,8 @@ declare function useCellEdit(options: CellEditOptions): {
|
|
|
999
1270
|
columnKey: string;
|
|
1000
1271
|
} | undefined>;
|
|
1001
1272
|
cancelEditCell: () => void;
|
|
1273
|
+
validateCell: () => Promise<boolean>;
|
|
1274
|
+
cellValidationError: vue.Ref<string | null, string | null>;
|
|
1002
1275
|
getEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string) => unknown;
|
|
1003
1276
|
updateEditingCellValue: (rowKey: DataTableRowKey$1, columnKey: string, value: unknown) => void;
|
|
1004
1277
|
findRowData: (rowKey: DataTableRowKey$1) => DataRecord | null | undefined;
|
|
@@ -1031,5 +1304,5 @@ declare function useModalEdit<T = Record<string, any>>(options: ModalEditOptions
|
|
|
1031
1304
|
getEditingRowData: (rowKey: DataTableRowKey$1) => Record<string, any> | null;
|
|
1032
1305
|
};
|
|
1033
1306
|
//#endregion
|
|
1034
|
-
export {
|
|
1307
|
+
export { useDynamicRows as $, useTableGlobalConfig as A, resolveConfig as B, ColumnFormatter as C, TableGlobalConfig as D, TABLE_GLOBAL_CONFIG_KEY as E, SummaryConfig as F, UseCrossPageSelectionReturn as G, exportTableData as H, TableConfig as I, UseRowDragOptions as J, useCrossPageSelection as K, TreeConfig as L, ColumnDragConfig as M, CrudBinding as N, applyFormatter as O, ErrorConfig as P, DynamicRowsReturn as Q, VirtualScrollConfig as R, UseTableExpandReturn as S, FormatterType as T, CrossPageSelectionConfig as U, ExportConfig as V, UseCrossPageSelectionOptions as W, useRowDrag as X, UseRowDragReturn as Y, DynamicRowsOptions as Z, SelectOption as _, useTableExpand as a, TableEmits as b, useTableColumns as c, ColumnWithKey as d, PrintWatermarkOptions as et, DataRecord as f, ParentChildLinkMode as g, PaginationConfig as h, useTableActions as i, BatchActionsConfig as j, mergeGlobalConfig as k, _default as l, MaybeRefLike as m, useCellEdit as n, usePrintWatermark as nt, useTableManager as o, EditMode as p, RowDragConfig as q, usePagination as r, useRowEdit as s, useModalEdit as t, printPresets as tt, ChildSelectionState as u, SimpleTableActions as v, FormatterConfig as w, UseTableExpandOptions as x, TableColumn as y, createEditModeChecker as z };
|
|
1035
1308
|
//# sourceMappingURL=useModalEdit.d.ts.map
|