UNPKG

5.5 kBTypeScriptView Raw
1import { VXEComponent } from '../component'
2import { VxeTableDataRow, VxeTableDefines } from '../table'
3
4/* eslint-disable no-use-before-define */
5
6/**
7 * 表格模块 - 可编辑
8 */
9export const VxeTableEditModule: VXEComponent<{ [key: string]: any }>
10/**
11 * 表格模块 - 可编辑
12 */
13export const Edit: VXEComponent<{ [key: string]: any }>
14
15export interface TableEditMethods<D = VxeTableDataRow> {
16 /**
17 * 往表格插入临时数据,从第一行新增一行或多行新数据
18 * @param records 新数据
19 */
20 insert(records: any): Promise<{ row: D, rows: D[] }>
21 /**
22 * 往表格指定行中插入临时数据
23 * 如果 row 为空则从插入到顶部,如果为树结构,则插入到目标节点顶部
24 * 如果 row 为 -1 则从插入到底部,如果为树结构,则插入到目标节点底部
25 * 如果 row 为有效行则插入到该行的位置,如果为树结构,则有插入到效的目标节点该行的位置
26 * @param {Object/Array} records 新的数据
27 * @param {Row} row 指定行
28 */
29 insertAt(records: any, row: any | -1 | null): Promise<{ row: D, rows: D[] }>
30 /**
31 * 往表格在指定行中的下一行插入临时数据
32 * 如果 row 为空则从插入到顶部,如果为树结构,则插入到目标节点顶部
33 * 如果 row 为 -1 则从插入到底部,如果为树结构,则插入到目标节点底部
34 * 如果 row 为有效行则插入到该行的下一行位置,如果为树结构,则有插入到效的目标节点该行的下一行位置
35 * @param records records 新的数据
36 * @param row row 指定行
37 */
38 insertNextAt(records: any, row: any | -1 | null): Promise<{ row: D, rows: D[] }>
39 /**
40 * 删除指定行数据,指定 row 或 [row, ...] 删除多条数据,如果为空则删除所有数据
41 * @param rows 指定行
42 */
43 remove(rows?: any | any[]): Promise<{ row: D, rows: D[] }>
44 /**
45 * 删除复选框选中的行数据
46 */
47 removeCheckboxRow(): Promise<{ row: D, rows: D[] }>
48 /**
49 * 删除单选框选中的行数据
50 */
51 removeRadioRow(): Promise<{ row: D, rows: D[] }>
52 /**
53 * 删除当前行选中的行数据
54 */
55 removeCurrentRow(): Promise<{ row: D, rows: D[] }>
56 /**
57 * 获取表格数据集
58 * 获取新增、删除、更改的数据
59 */
60 getRecordset(): {
61 insertRecords: D[]
62 removeRecords: D[]
63 updateRecords: D[]
64 pendingRecords: D[]
65 }
66 /**
67 * 用于 edit-config,获取新增的临时数据
68 */
69 getInsertRecords(): D[]
70 /**
71 * 获取已删除的数据
72 */
73 getRemoveRecords(): D[]
74 /**
75 * 用于 edit-config,获取已修改的数据
76 */
77 getUpdateRecords(): D[]
78 /**
79 * 请使用 getEditRecord
80 * @deprecated
81 */
82 getActiveRecord(): {
83 row: D
84 rowIndex: number
85 $rowIndex: number
86 column: VxeTableDefines.ColumnInfo<D>
87 columnIndex: number
88 $columnIndex: number
89 cell: HTMLElement
90 }
91 /**
92 * 用于 edit-config,获取已激活的行数据
93 */
94 getEditRecord(): {
95 row: D
96 rowIndex: number
97 $rowIndex: number
98 column: VxeTableDefines.ColumnInfo<D>
99 columnIndex: number
100 $columnIndex: number
101 cell: HTMLElement
102 }
103 /**
104 * 用于 mouse-config.selected,获取选中的单元格信息
105 */
106 getSelectedCell(): {
107 row: D
108 column: VxeTableDefines.ColumnInfo<D>
109 }
110 /**
111 * 请使用 clearEdit()
112 * @deprecated
113 */
114 clearActived(evnt?: Event): Promise<any>
115 /**
116 * 手动清除单元格激活状态
117 */
118 clearEdit(evnt?: Event): Promise<any>
119 /**
120 * 手动清除单元格选中状态
121 */
122 clearSelected(): Promise<any>
123 /**
124 * 请使用 isEditByRow
125 * @deprecated
126 */
127 isActiveByRow(row: any): boolean
128 /**
129 * 用于 edit-config,判断行是否为激活编辑状态
130 * @param row 指定行
131 */
132 isEditByRow(row: any): boolean
133 /**
134 * 请使用 setEditRow
135 * @deprecated
136 */
137 setActiveRow(row: any): Promise<void>
138 /**
139 * 用于 edit-config,激活行编辑并默认激活第一个列,也可以指定列
140 * @param row 指定行
141 */
142 setEditRow(row: any, fieldOrColumn?: string | VxeTableDefines.ColumnInfo<any>): Promise<void>
143 /**
144 * 请使用 setEditCell
145 * @deprecated
146 */
147 setActiveCell(row: any, fieldOrColumn: string | VxeTableDefines.ColumnInfo<any>): Promise<void>
148 /**
149 * 用于 edit-config,激活单元格编辑
150 * @param row 指定行
151 * @param field 字段名
152 */
153 setEditCell(row: any, fieldOrColumn: string | VxeTableDefines.ColumnInfo<any>): Promise<void>
154 /**
155 * 用于 mouse-config.mouse-config,选中某个单元格
156 * @param row 指定行
157 * @param field 字段名
158 */
159 setSelectCell(row: any, fieldOrColumn: string | VxeTableDefines.ColumnInfo<any>): Promise<void>
160}
161
162export interface TableEditPrivateMethods<D = VxeTableDataRow> {
163 handleActived(params: any, evnt?: any): Promise<any>
164 handleFocus(params: any, evnt?: any): void
165 handleSelected(params: any, evnt: any): Promise<any>
166 addCellSelectedClass(): void
167}
168
169declare module '../grid' {
170 export interface VxeGridMethods<D = VxeTableDataRow> extends TableEditMethods<D> { }
171}
172
173declare module '../table' {
174 export interface VxeTableMethods<D = VxeTableDataRow> extends TableEditMethods<D> { }
175 export interface VxeTablePrivateMethods<D = VxeTableDataRow> extends TableEditPrivateMethods<D> { }
176}