@ttkj/avue 2.10.11 → 2.10.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,264 @@
1
+ import { VNode } from 'vue';
2
+ import { ElPagination } from 'element-ui/types/pagination';
3
+ import { cellCallbackParams, rowCallbackParams, SummaryMethodParams } from 'element-ui/types/table';
4
+ import { ElForm } from 'element-ui/types/form';
5
+ import { ElTable } from 'element-ui/types/element-ui';
6
+ import { ElUploadInternalRawFile } from 'element-ui/types/upload';
7
+
8
+ import { AvueComponent, Obj } from '../global';
9
+ import { CrudOption } from './option';
10
+ import { AvueCrudColumn } from './column';
11
+ import { AvueCrudHeaderSearch } from './refs/header-search';
12
+ import { AvueCrudDialogForm } from './refs/dialog-form';
13
+
14
+ /** 表单打开类型 */
15
+ export type AvueCrudFormMode = 'add' | 'edit' | 'view';
16
+
17
+ /** 权限类型 */
18
+ export type AvueCrudPermission =
19
+ | 'addBtn'
20
+ | 'addRowBtn'
21
+ | 'excelBtn'
22
+ | 'printBtn'
23
+ | 'refreshBtn'
24
+ | 'columnBtn'
25
+ | 'filterBtn'
26
+ | 'menu'
27
+ | 'viewBtn'
28
+ | 'editBtn'
29
+ | 'saveBtn'
30
+ | 'copyBtn'
31
+ | 'delBtn'
32
+ | 'selectClearBtn';
33
+
34
+ /** 表格Refs */
35
+ export interface AvueCrudRefs<T = Obj> {
36
+ /**
37
+ * 搜索组件
38
+ * @description 包含了search、prop+'SearchLabel'、prop+'Search'、searchMenu插槽
39
+ */
40
+ headerSearch: AvueCrudHeaderSearch;
41
+ /**
42
+ * 顶部菜单组件
43
+ * @description 包含了menuLeft和menuRight插槽
44
+ */
45
+ headerMenu: VNode;
46
+ /**
47
+ * 表格表单组件
48
+ * @description 用于行编辑时表单校验
49
+ */
50
+ cellForm: ElForm;
51
+ /**
52
+ * 默认列组件
53
+ * @description 表格的默认列(序号、折叠面板、选择框),包含了expand插槽
54
+ */
55
+ columnDefault: VNode;
56
+ /** 表格组件 */
57
+ table: ElTable;
58
+ /** 分页组件 */
59
+ tablePage: ElPagination;
60
+ /** 内置弹窗组件 */
61
+ dialogForm: AvueCrudDialogForm<T>;
62
+ /** 列显隐组件 */
63
+ dialogColumn: VNode;
64
+ /** 导出数据组件 */
65
+ dialogExcel: VNode;
66
+ /** 过滤器组件 */
67
+ dialogFilter: VNode;
68
+ }
69
+
70
+ /** 表格组件 */
71
+ export declare class AvueCrud<T = Obj, S = Partial<T>> extends AvueComponent {
72
+ // ========== 属性 ==========
73
+ /**
74
+ * 打开前的回调,会暂停Dialog的打开
75
+ * @param done 用于关闭Dialog
76
+ * @param type 当前窗口的类型
77
+ */
78
+ beforeOpen: (done: Function, type: string) => void;
79
+ /**
80
+ * 关闭前的回调,会暂停Dialog的关闭
81
+ * @param done 用于关闭Dialog
82
+ * @param type 当前窗口的类型
83
+ */
84
+ beforeClose: (done: Function, type: string) => void;
85
+ /** 单元格的 className 的回调方法,也可以使用字符串为所有单元格设置一个固定的 className。 */
86
+ cellClassName: string | ((param: cellCallbackParams) => string);
87
+ /** 表格数据 */
88
+ data: T[];
89
+ /** 默认配置 */
90
+ config: Obj;
91
+ /** 分页的变量(需要sync修饰符) */
92
+ page: ElPagination;
93
+ /** 搜索的变量(需要sync修饰符) */
94
+ search: S;
95
+ /** 表头单元格的 className 的回调方法,也可以使用字符串为所有表头单元格设置一个固定的 className。 */
96
+ headerCellClassName: string | ((param: cellCallbackParams) => string);
97
+ /** 组件配置属性 */
98
+ option: CrudOption;
99
+ /** 行的 className 的回调方法,也可以使用字符串为所有行设置一个固定的 className。 */
100
+ rowClassName: string | ((param: rowCallbackParams) => string);
101
+ /** 合并行或列的计算方法 */
102
+ spanMethod: (param: rowCallbackParams) => { rowspan: number; colspan: number } | number[];
103
+ /** 自定义的合计计算方法 */
104
+ summaryMethod: (param: SummaryMethodParams) => any[];
105
+ /** 表格等待框的控制 */
106
+ tableLoading = false;
107
+ /**
108
+ * 文件上传前的回调,会暂停文件上传
109
+ * @param file 上传的文件
110
+ * @param done 用于继续文件上传
111
+ * @param loading 用于中断操作
112
+ */
113
+ uploadBefore: (file: ElUploadInternalRawFile, done: Function, loading: Function) => void;
114
+ // TODO upload-after/upload-delete/upload-preview/upload-error/upload-exceed
115
+ // ========== 方法 ==========
116
+ /** 初始化数据字典 */
117
+ dicInit(type?: 'cascader'): void;
118
+ /**
119
+ * 移除表单项的校验结果。
120
+ * @param {string | string[]} [props] 传入待移除的表单项的 prop 属性或者 prop 组成的数组,如不传则移除整个表单的校验结果
121
+ */
122
+ clearValidate(props?: string | string[]): void;
123
+ /** 打开表单新增窗口 */
124
+ rowAdd(): void;
125
+ /** 表单保存调用 */
126
+ rowSave(): void;
127
+ /** 表单更新调用 */
128
+ rowUpdate(): void;
129
+ /**
130
+ * 关闭内置的表单弹窗
131
+ * @since 2.5.1
132
+ */
133
+ closeDialog(): void;
134
+ /**
135
+ * 获取prop的ref对象
136
+ * @param prop 表单项的 prop 属性
137
+ */
138
+ getPropRef(prop: keyof AvueCrudRefs<T>): ReturnType<AvueCrudRefs<T>>;
139
+ /**
140
+ * 打开表单查看窗口
141
+ * @param row 表单数据
142
+ * @param index 表单所在行
143
+ */
144
+ rowView(row: T, index: number): void;
145
+ /**
146
+ * 打开表单编辑窗口
147
+ * @param row 表单数据
148
+ * @param index 表单所在行
149
+ */
150
+ rowEdit(row: T, index: number): void;
151
+ /**
152
+ * 将行数据复制,并打开新增窗口
153
+ * @param row 表单数据
154
+ * @since 2.6.14
155
+ */
156
+ rowCopy(row: T): void;
157
+ /**
158
+ * 打开行编辑
159
+ * @param row 表单数据
160
+ * @param index 表单所在行
161
+ */
162
+ rowCell(row: T, index: number): void;
163
+ /**
164
+ * 删除表单
165
+ * @param row 表单数据
166
+ * @param index 表单所在行
167
+ */
168
+ rowDel(row: T, index: number): void;
169
+ /** 打印表格 */
170
+ rowPrint(): void;
171
+ /** 导出表格 */
172
+ rowExcel(): void;
173
+ /** 清空表单数据 */
174
+ resetForm(): void;
175
+ /**
176
+ * 用于单选表格,设定某一行为选中行,如果调用时不加参数,则会取消目前高亮行的选中状态。
177
+ * @param {object} [row] 需要高亮的行
178
+ */
179
+ setCurrentRow(row?: T): void;
180
+ /** 用于多选表格,清空用户的选择 */
181
+ selectClear(): void;
182
+ /** 清空搜索栏目的值 */
183
+ searchReset(): void;
184
+ /**
185
+ * 用于多选表格,切换选中状态。如果调用时不加参数,则会清空用户的选择。
186
+ * @param rows 需要切换选中状态的行
187
+ */
188
+ toggleSelection(rows?: T[]): void;
189
+ /** 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中) */
190
+ toggleRowSelection(row: T, select?: boolean): void;
191
+ /** 用于可展开表格与树形表格,切换某一行的展开状态,如果使用了第二个参数,则是设置这一行展开与否(expanded 为 true 则展开) */
192
+ toggleRowExpansion(row: T, expanded?: boolean): void;
193
+ /** 动态计算表格高度 */
194
+ getTableHeight(): void;
195
+ /** 对 Table 进行重新布局。当 Table 或其祖先元素由隐藏切换为显示时,可能需要调用此方法 */
196
+ doLayout(): void;
197
+ /** 列初始化 */
198
+ columnInit(): void;
199
+ /** 刷新表格 */
200
+ refreshTable(callback?: Function): void;
201
+ /**
202
+ * 根据主键ID查找数据
203
+ * @description 此处的数据来源为crud组件中传入的data值,当ID为数据项中某个children中的值时,parent即为该数据项,parentList为该数据项的children,否则parent为undefined,parentList为传入的data
204
+ * @since 2.9.4
205
+ */
206
+ findData: (id: string | number) =>
207
+ | {
208
+ /** 查找到的数据 */
209
+ item: T;
210
+ /** 数据的序号 */
211
+ index: number;
212
+ /** 上级数据列表 */
213
+ parentList: T[];
214
+ /** 上级数据 */
215
+ parent?: T;
216
+ }
217
+ | {};
218
+ /** 组件Refs */
219
+ $refs: AvueCrudRefs<T>;
220
+ }
221
+
222
+ /** 通用插槽 */
223
+ export interface CrudNormalScope<T = Obj> {
224
+ /** 数据 */
225
+ row: T;
226
+ /** 数据所在行序号 */
227
+ index: number;
228
+ /** 大小 */
229
+ size: AvueComponentSize;
230
+ /** 文字 */
231
+ label: string;
232
+ }
233
+
234
+ /** 通用搜索插槽 */
235
+ export interface CrudSearchFormNormalScope<T = any, R = Obj> {
236
+ /** 数据,与search相同 */
237
+ row: R;
238
+ /** 数据,与row相同 */
239
+ search: R;
240
+ /** 表单值 */
241
+ value: T;
242
+ /** 列配置 */
243
+ column: Obj;
244
+ /** 大小 */
245
+ size: AvueComponentSize;
246
+ /** 是否禁用 */
247
+ disabled: boolean;
248
+ /** 数据字典 */
249
+ dic?: Obj[];
250
+ }
251
+
252
+ /** 通用表单插槽 */
253
+ export interface CrudFormNormalScope<T = any> {
254
+ /** 表单值 */
255
+ value: T;
256
+ /** 列配置 */
257
+ column: AvueCrudColumn;
258
+ /** 大小 */
259
+ size: AvueComponentSize;
260
+ /** 是否禁用 */
261
+ disabled: boolean;
262
+ /** 表单弹窗类型 */
263
+ type: AvueCrudFormMode;
264
+ }
@@ -0,0 +1,376 @@
1
+ import { AvueAlignment, AvueMenuType, AvueComponentSize, Obj } from '../global';
2
+ import { FormBaseOption, FormColumnOption } from '../form/option';
3
+ import { AvueCrudColumn } from './column';
4
+
5
+ /** 表格组件基础配置属性 */
6
+ export interface CrudBaseOption {
7
+ // ======== 表格基础配置 ========
8
+ /** 表格标题 */
9
+ title: string;
10
+ /** 表头标题所用的HTML标签, 默认: 'h2' */
11
+ titleSize: string;
12
+ /** 表头对齐方式, 默认: 'center' */
13
+ headerAlign: AvueAlignment;
14
+ /** 表格列齐方式, 默认: 'center' */
15
+ align: AvueAlignment;
16
+ /** 表格边框, 默认: false */
17
+ border: boolean;
18
+ /** 表格高度差(主要用于减去其他部分让表格高度自适应) */
19
+ calcHeight?: number;
20
+ /** 列显隐按钮, 默认: true */
21
+ columnBtn: boolean;
22
+ /** 列显隐按钮, 默认: 'el-icon-s-operation' */
23
+ columnBtnIcon: string;
24
+ /** 表格的排序字段 */
25
+ defaultSort?: {
26
+ /** 默认排序字段 */
27
+ prop: string;
28
+ /** 排序方式 */
29
+ order: string;
30
+ };
31
+ /** 空数据时显示的文本内容,也可以通过slot="empty"设置, 默认: '暂无数据' */
32
+ emptyText: string;
33
+ /** 是列的宽度是否自撑开属性, 默认: true */
34
+ fit: boolean;
35
+ /** 表格高度 */
36
+ height?: number | 'auto';
37
+ /** 头部显隐, 默认: true */
38
+ header: boolean;
39
+ /** 是否显示表格序号(根据分页会自动计算,比如每页10行,到了第二页就会从11开始记数, 默认: false */
40
+ index: boolean;
41
+ /** 序号的标题, 默认: '#' */
42
+ indexLabel: string;
43
+ /** 序号的宽度, 默认: 50 */
44
+ indexWidth: number;
45
+ /** 序号是否冻结, 默认: 'left' */
46
+ indexFixed: boolean | AvueAlignment;
47
+ /** 行数据的 Key的主键,用于其他相关操作, 默认: 'id' */
48
+ rowKey: string;
49
+ /** 设置 indeterminate 状态,只负责样式控制 如果选择一半,不会出现半选, 默认: false */
50
+ indeterminate: boolean;
51
+ /** 表格最大高度 */
52
+ maxHeight?: number;
53
+ /** 字段排序, 默认: 0 */
54
+ order?: number;
55
+ /** 是否显示表格的表头, 默认: true */
56
+ showHeader: boolean;
57
+ /** 控件大小 */
58
+ size: AvueComponentSize;
59
+ /** 是否显示表格的斑马条纹, 默认: false */
60
+ stripe: boolean;
61
+ // ======== 表格分页配置 ========
62
+ /**
63
+ * 是否显示分页, 默认: true
64
+ * @since 2.8.11
65
+ */
66
+ page: boolean;
67
+ /**
68
+ * 只有一页时是否隐藏分页, 默认: false
69
+ * @since 2.4.1
70
+ */
71
+ simplePage: boolean;
72
+ // ======== 表格合计配置 ========
73
+ /** 是否在表尾显示合计行, 默认: false */
74
+ showSummary: boolean;
75
+ /** 表格合计需要配置的字段 */
76
+ sumColumnList: {
77
+ /** prop属性值 */
78
+ name: string;
79
+ /**
80
+ * 统计类型
81
+ * @description count: label的值+数据总数; avg: 平均值 sum: 合计
82
+ */
83
+ type: 'count' | 'avg' | 'sum';
84
+ /** 数据的小数位数, 默认: 2 */
85
+ decimals?: number;
86
+ /** 自定义前缀 */
87
+ label?: string;
88
+ }[];
89
+ // ======== 表格行折叠配置 ========
90
+ /** 是否展开折叠行, 默认: false */
91
+ expand: boolean;
92
+ /** 是否展开折叠行宽度, 默认: 60 */
93
+ expandWidth: number;
94
+ /** 是否展开折叠行冻结, 默认: 'left' */
95
+ expandFixed: boolean | AvueAlignment;
96
+ /** 是否默认展开所有行,"expand"为true的时候有效, 默认: false */
97
+ defaultExpandAll: boolean;
98
+ /** 可以通过该属性设置目前的展开行,需要设置 rowKey 属性才能使用,该属性为展开行的 keys 数组。 */
99
+ expandRowKeys: any[];
100
+ // ======== 表格树配置 ========
101
+ /**
102
+ * 是否为表格树,若无配置,判断数据项中是否包含children,若包含,则为true, 默认: false
103
+ * @since 2.5.0
104
+ */
105
+ tree: boolean;
106
+ /**
107
+ * 是否开启懒加载,通过指定 row 中的 hasChildren 字段来指定哪些行是包含子节点, 默认: false
108
+ * @since 2.3.0
109
+ */
110
+ lazy: boolean;
111
+ /**
112
+ * 行数据的 上级Key的主键,用于树其他相关操作, 默认: 'parentId'
113
+ * @since 2.6.15
114
+ */
115
+ rowParentKey: string;
116
+ // ======== 其他配置 ========
117
+ /** 是否开启表格排序, 默认: false */
118
+ sortable: boolean;
119
+ }
120
+
121
+ /** 表格行勾选配置 */
122
+ export interface CurdSelectionOption<T = Obj> {
123
+ /** 行可勾选, 默认: false */
124
+ selection: boolean;
125
+ /** 行可勾选的宽度, 默认: 50 */
126
+ selectionWidth: number;
127
+ /** 行可勾选是否冻结, 默认: 'left' */
128
+ selectionFixed: boolean | AvueAlignment;
129
+ /** 行可勾选是否显示tip信息, 默认: true */
130
+ tip: boolean;
131
+ /**
132
+ * 仅对 selection为true 的列有效,类型为 Function,Function 的返回值用来决定这一行的 CheckBox 是否可以勾选
133
+ * @param row 所在行数据
134
+ * @param index 行号
135
+ */
136
+ selectable: (row: T, index: number) => boolean;
137
+ /** 仅对 selection为true 的列有效,为 true 则会在数据更新之后保留之前选中的数据(需指定 rowKey), 默认: true */
138
+ reserveSelection: boolean;
139
+ /** 清空选中按钮(当selection为true起作用), 默认: true */
140
+ selectClearBtn: boolean;
141
+ }
142
+
143
+ /** 表格组件菜单栏配置 */
144
+ export interface CurdMenuOption {
145
+ /** 是否显示操作菜单栏, 默认: true */
146
+ menu: boolean;
147
+ /** 操作菜单栏的宽度, 默认: 220 */
148
+ menuWidth: number;
149
+ /** 手机端时操作菜单栏的宽度, 默认: 100 */
150
+ menuXsWidth: number;
151
+ /**
152
+ * 菜单栏标题对齐方式, 默认: 'center'
153
+ * @since 2.6.0
154
+ */
155
+ menuHeaderAlign: AvueAlignment;
156
+ /** 菜单栏对齐方式, 默认: 'center' */
157
+ menuAlign: AvueAlignment;
158
+ /** 操作栏菜单按钮类型, 默认: 'text' */
159
+ menuType: AvueMenuType;
160
+ /** 菜单下拉按钮的文字,仅在menuType为'menu'时生效, 默认: '功能' */
161
+ menuBtnTitle: string;
162
+ /** 操作列的文字, 默认: '操作' */
163
+ menuTitle: string;
164
+ /** 操作列是否冻结, 默认: 'right' */
165
+ menuFixed: boolean | 'left' | 'right';
166
+ /**
167
+ * 操作按钮排序,未列入的按钮会按默认顺序放在最后
168
+ * @description
169
+ * 默认排序:'viewBtn','editBtn','copyBtn','delBtn'
170
+ * 行编辑模式默认排序:'editBtn','viewBtn','copyBtn','delBtn'
171
+ * @since 2.10.10
172
+ */
173
+ menuBtnSort: ('viewBtn' | 'editBtn' | 'copyBtn' | 'delBtn')[];
174
+ }
175
+
176
+ /** 表格操作按钮及对应功能配置 */
177
+ export interface CrudActionOption {
178
+ // ==== menuLeft ====
179
+ /** 是否显示新增按钮, 默认: true */
180
+ addBtn: boolean;
181
+ /** 新增按钮, 默认: '新 增' */
182
+ addBtnText: string;
183
+ /** 自定义过滤按钮图标, 默认: 'el-icon-plus' */
184
+ addBtnIcon: string;
185
+ /** 新增窗口标题文案, 默认: '新 增' */
186
+ addTitle: string;
187
+ /**
188
+ * 是否显示新增行按钮, 默认: false
189
+ *
190
+ * tip: 该按钮的功能为点击后在表格中新增一行
191
+ * @since 2.6.9
192
+ */
193
+ addRowBtn: boolean;
194
+ // ==== menuRight ====
195
+ /** 是否显示保存按钮, 默认: true */
196
+ saveBtn: boolean;
197
+ /** 弹出框为新增时保存按钮标题, 默认: '新 增' */
198
+ saveBtnText: string;
199
+ /** 弹出框为新增时保存按钮图标, 默认: 'el-icon-circle-plus-outline' */
200
+ saveBtnIcon: string;
201
+ /** 是否显示日期组件按钮, 默认: false */
202
+ dateBtn: boolean;
203
+ /** 日期控件默认的值, 默认: false */
204
+ dateDefault: boolean;
205
+ /** 是否显示Excel打印按钮, 默认: false */
206
+ excelBtn: boolean;
207
+ /** Excel打印按钮文案, 默认: '导出' */
208
+ excelBtnText: string;
209
+ /** Excel打印按钮图标, 默认: 'el-icon-download' */
210
+ excelBtnIcon: string;
211
+ /** 是否显示自定义过滤按钮, 默认: false */
212
+ filterBtn: boolean;
213
+ /** 自定义过滤按钮图标, 默认: 'el-icon-tickets' */
214
+ filterBtnIcon: string;
215
+ /** 是否显示打印按钮, 默认: false */
216
+ printBtn: boolean;
217
+ /** 打印按钮文案, 默认: '打印' */
218
+ printBtnText: string;
219
+ /** 打印按钮图标, 默认: 'el-icon-printer' */
220
+ printBtnIcon: string;
221
+ /** 是否显示刷新按钮, 默认: true */
222
+ refreshBtn: boolean;
223
+ /** 自定义过滤按钮图标, 默认: 'el-icon-refresh' */
224
+ refreshBtnIcon: string;
225
+ /** 是否显示搜索显隐按钮, 默认: true */
226
+ searchShowBtn: boolean;
227
+ /** 搜索按钮图标, 默认: 'el-icon-search' */
228
+ searchBtnIcon: string;
229
+ }
230
+
231
+ /** 表格行操作按钮及对应功能配置 */
232
+ export interface CrudRowActionOption {
233
+ // ======== 表格弹窗操作 ========
234
+ // ==== 复制新增功能 ====
235
+ /** 是否显示复制新增按钮, 默认: false */
236
+ copyBtn: boolean;
237
+ /** 复制新增按钮文案, 默认: '复 制' */
238
+ copyBtnText: string;
239
+ /** 复制新增按钮图标, 默认: 'el-icon-document-add' */
240
+ copyBtnIcon: string;
241
+ // ==== 编辑功能 ====
242
+ /** 是否显示行内编辑按钮, 默认: true */
243
+ editBtn: boolean;
244
+ /** 编辑按钮文案, 默认: '编辑' */
245
+ editBtnText: string;
246
+ /** 编辑按钮图标, 默认: 'el-icon-edit' */
247
+ editBtnIcon: string;
248
+ /** 编辑窗口标题文案, 默认: '编 辑' */
249
+ editTitle: string;
250
+ /** 是否显示更新按钮, 默认: true */
251
+ updateBtn: boolean;
252
+ /** 弹出框为编辑时保存按钮标题, 默认: '修 改' */
253
+ updateBtnText: string;
254
+ /** 弹出框为编辑时保存按钮图标, 默认: 'el-icon-circle-check' */
255
+ updateBtnIcon: string;
256
+ // ==== 查看功能 ====
257
+ /** 是否显示查看按钮, 默认: false */
258
+ viewBtn: boolean;
259
+ /** 查看按钮文案, 默认: '查看' */
260
+ viewBtnText: string;
261
+ /** 查看按钮图标, 默认: 'el-icon-view' */
262
+ viewBtnIcon: string;
263
+ /** 查看窗口标题文案, 默认: '查 看' */
264
+ viewTitle: string;
265
+ // ==== 删除功能 ====
266
+ /** 是否显示删除按钮, 默认: true */
267
+ delBtn: boolean;
268
+ /** 删除按钮文案, 默认: '删 除' */
269
+ delBtnText: string;
270
+ /** 删除按钮图标, 默认: 'el-icon-delete' */
271
+ delBtnIcon: string;
272
+ // ======== 表格行内操作 ========
273
+ /** 表格单元格可编辑(当column中有搜索的属性中有cell为true的属性启用,只对type为select和input有作用), 默认: false */
274
+ cellBtn: boolean;
275
+ /** 是否显示行编辑取消按钮, 默认: true */
276
+ cancelBtn: boolean;
277
+ /** 编辑取消按钮文案, 默认: '取 消' */
278
+ cancelBtnText: string;
279
+ /** 删除按钮图标, 默认: 'el-icon-circle-close' */
280
+ cancelBtnIcon: string;
281
+ }
282
+
283
+ /** 表格组件_弹窗组件配置 */
284
+ export interface CrudDialogOption<T = Obj> extends FormBaseOption, Omit<FormColumnOption<T>, 'column'> {
285
+ // ======== 弹窗配置 ========
286
+ /** 是否为全屏Dialog, 默认: false */
287
+ dialogFullscreen: boolean;
288
+ /** 是否可以通过按下ESC关闭Dialog, 默认: true */
289
+ dialogEscape: boolean;
290
+ /** 是否可以通过点击modal关闭Dialog, 默认: true */
291
+ dialogClickModal: boolean;
292
+ /** 是否显示关闭按钮, 默认: true */
293
+ dialogCloseBtn: boolean;
294
+ /** 是否需要遮罩层, 默认: true */
295
+ dialogModal: boolean;
296
+ /** 弹出表单的弹窗具体顶部的距离(px), 默认: '0' */
297
+ dialogTop: string | number;
298
+ /** 弹出表单的类型, 默认: dialog */
299
+ dialogType: 'dialog' | 'drawer';
300
+ /** 弹出表单的弹窗宽度, 默认: '60%' */
301
+ dialogWidth: string;
302
+ /**
303
+ * 是否允许拖拽, 默认: true
304
+ * @since 2.9.0
305
+ */
306
+ dialogDrag: boolean;
307
+ // ======== 弹窗表单配置 ========
308
+ /**
309
+ * 弹出表单按钮组的位置, 默认: 'right'
310
+ * @deprecated 2.7.9
311
+ */
312
+ menuPosition: AvueAlignment;
313
+ /**
314
+ * 弹出表单按钮组的位置, 默认: 'right'
315
+ * @since 2.7.9
316
+ */
317
+ dialogMenuPosition: AvueAlignment;
318
+ }
319
+
320
+ /** 表格组件_搜索组件配置 */
321
+ export interface CrudSearchOption {
322
+ /** 首次加载是否显示搜索, 默认: true */
323
+ searchShow: boolean;
324
+ /** 回车提交表单, 默认: true */
325
+ searchEnter: boolean;
326
+ /** 是否展示半收缩按钮, 默认: undefined */
327
+ searchIcon: boolean;
328
+ /** 展示半收缩按钮的个数, 默认: 2 */
329
+ searchIndex: number;
330
+ /** 搜索项的长度, 默认: 6 */
331
+ searchSpan: number;
332
+ /** 搜索项之间的间距, 默认: 20 */
333
+ searchGutter: number;
334
+ /** 搜索项label的宽度, 默认: 80 */
335
+ searchLabelWidth: number;
336
+ /** 搜索项label的定位, 默认: 'right' */
337
+ searchLabelPosition: AvueAlignment;
338
+ /** 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法,对cascader|tree类型组件生效, 默认: false */
339
+ searchCheckStrictly: boolean;
340
+ /** 搜索按钮的长度, 默认: 6 */
341
+ searchMenuSpan: number;
342
+ /**
343
+ * 搜索按钮的位置, 默认: 'center'
344
+ * @since 2.7.9
345
+ */
346
+ searchMenuPosition: AvueAlignment;
347
+ /**
348
+ * 组件尺寸
349
+ * @since 2.7.9
350
+ */
351
+ searchSize: AvueComponentSize;
352
+ /** 搜索按钮文案, 默认: '搜索' */
353
+ searchBtnText: string;
354
+ /** 搜索按钮图标, 默认: 'el-icon-search' */
355
+ searchBtnIcon: string;
356
+ /** 是否显示搜索按钮, 默认: true */
357
+ searchBtn: boolean;
358
+ /** 是否显示清空按钮, 默认: true */
359
+ emptyBtn: boolean;
360
+ /** 清空按钮文案, 默认: '清空' */
361
+ emptyBtnText: string;
362
+ /** 清空按钮图标, 默认: 'el-icon-delete' */
363
+ emptyBtnIcon: string;
364
+ }
365
+
366
+ /** 表格组件配置属性 */
367
+ export type CrudOption<T = Obj> = Partial<CrudBaseOption> &
368
+ Partial<CurdSelectionOption<T>> &
369
+ Partial<CurdMenuOption> &
370
+ Partial<CrudActionOption> &
371
+ Partial<CrudRowActionOption> &
372
+ Partial<CrudDialogOption> &
373
+ Partial<CrudSearchOption> & {
374
+ /** 表格列配置属性*/
375
+ column?: AvueCrudColumn<T>[];
376
+ };
@@ -0,0 +1,36 @@
1
+ // 引入定义
2
+ import { AvueForm } from '../../form';
3
+ import { AvueCrudFormMode } from '../index';
4
+
5
+ /** 表格组件表单弹窗 */
6
+ export declare class AvueCrudDialogForm<T = Obj> {
7
+ // ========== 方法 ==========
8
+ /**
9
+ * 表单提交
10
+ * @since 2.8.18
11
+ */
12
+ submit(): void;
13
+ /**
14
+ * 清空表单数据
15
+ * @since 2.8.18
16
+ */
17
+ reset(): void;
18
+ /** 切换弹窗全屏模式 */
19
+ handleFullScreen(): void;
20
+ /**
21
+ * 关闭弹窗
22
+ * @param row 弹窗对应行的数据
23
+ * @description 若row为空,则仅关闭弹窗;否则,视弹窗类型(add/edit)对表格数据进行更新(根据表格rowKey确定的主键查找对应行数据,存在则替换,不存在则添加一行)
24
+ */
25
+ closeDialog(row?: T): void;
26
+ /**
27
+ * 打开弹窗
28
+ * @param type 弹窗类型
29
+ */
30
+ show(type: AvueCrudFormMode): void;
31
+ /** 组件Refs */
32
+ $refs: {
33
+ /** 表单实例 */
34
+ tableForm: AvueForm<T>;
35
+ };
36
+ }
@@ -0,0 +1,18 @@
1
+ // 引入定义
2
+ import { FormOption } from '../../form/option';
3
+
4
+ export declare class AvueCrudHeaderSearch {
5
+ /** 搜索表单配置 */
6
+ readonly option: FormOption;
7
+ // ========== 方法 ==========
8
+ /** 搜索清空 */
9
+ resetChange(): void;
10
+ /** 搜索清空 */
11
+ searchReset(): void;
12
+ /** 切换搜索显示 */
13
+ handleSearchShow(): void;
14
+ /** 设置搜索是否显示 */
15
+ handleSearchCollapse(searchShow: boolean): void;
16
+ /** 判断是否显示搜索 */
17
+ dataFormat(): void;
18
+ }