pro-design-vue 1.3.21 → 1.3.23
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/dist/index.css +1 -1
- package/dist/index.full.js +1217 -1585
- package/dist/index.full.min.js +7 -9
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +7 -9
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +1218 -1586
- package/es/components/config-provider/src/typing.d.ts +1 -0
- package/es/components/table/src/components/Body/Body.vue.d.ts +261 -15
- package/es/components/table/src/components/Body/BodyCell.vue.d.ts +255 -0
- package/es/components/table/src/components/Body/BodyEditCell.d.ts +61 -0
- package/es/components/table/src/components/Body/BodyRow.vue.d.ts +261 -15
- package/es/components/table/src/components/Body/BodyRows.vue.d.ts +261 -15
- package/es/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
- package/es/components/table/src/components/InteralTable.vue.d.ts +314 -19
- package/es/components/table/src/components/Table.d.ts +51 -0
- package/es/components/table/src/components/context/TableContext.d.ts +4 -0
- package/es/components/table/src/components/interface.d.ts +290 -23
- package/es/components/table/src/hooks/useCellProps.d.ts +5 -1
- package/es/components/table/src/hooks/useEdit.d.ts +24 -7
- package/es/components/table/src/utils/form-model.d.ts +25 -0
- package/es/components/table/src/utils/util.d.ts +1 -0
- package/es/index.d.ts +271 -5
- package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs +35 -0
- package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs.map +1 -0
- package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs +129 -0
- package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs.map +1 -0
- package/es/packages/components/table/src/components/Body/BodyEditCell.mjs +292 -0
- package/es/packages/components/table/src/components/Body/BodyEditCell.mjs.map +1 -0
- package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs +63 -8
- package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
- package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs +24 -18
- package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/components/Body/{BodyCell.mjs → BodyTextCell.mjs} +25 -155
- package/es/packages/components/table/src/components/Body/BodyTextCell.mjs.map +1 -0
- package/es/packages/components/table/src/components/InteralTable.vue.mjs +24 -25
- package/es/packages/components/table/src/components/InteralTable.vue.mjs.map +1 -1
- package/es/packages/components/table/src/components/InteralTable.vue2.mjs +36 -97
- package/es/packages/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/components/Table.mjs +24 -20
- package/es/packages/components/table/src/components/Table.mjs.map +1 -1
- package/es/packages/components/table/src/components/context/TableContext.mjs.map +1 -1
- package/es/packages/components/table/src/components/interface.mjs +24 -0
- package/es/packages/components/table/src/components/interface.mjs.map +1 -1
- package/es/packages/components/table/src/hooks/useCellProps.mjs +8 -0
- package/es/packages/components/table/src/hooks/useCellProps.mjs.map +1 -1
- package/es/packages/components/table/src/hooks/useEdit.mjs +293 -18
- package/es/packages/components/table/src/hooks/useEdit.mjs.map +1 -1
- package/es/packages/components/table/src/utils/form-model.mjs +98 -0
- package/es/packages/components/table/src/utils/form-model.mjs.map +1 -0
- package/es/packages/components/table/src/utils/util.mjs +4 -1
- package/es/packages/components/table/src/utils/util.mjs.map +1 -1
- package/es/packages/utils/dom.mjs +15 -1
- package/es/packages/utils/dom.mjs.map +1 -1
- package/es/packages/utils/index.mjs +1 -1
- package/es/utils/dom.d.ts +2 -0
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/config-provider/src/typing.d.ts +1 -0
- package/lib/components/table/src/components/Body/Body.vue.d.ts +261 -15
- package/lib/components/table/src/components/Body/BodyCell.vue.d.ts +255 -0
- package/lib/components/table/src/components/Body/BodyEditCell.d.ts +61 -0
- package/lib/components/table/src/components/Body/BodyRow.vue.d.ts +261 -15
- package/lib/components/table/src/components/Body/BodyRows.vue.d.ts +261 -15
- package/lib/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
- package/lib/components/table/src/components/InteralTable.vue.d.ts +314 -19
- package/lib/components/table/src/components/Table.d.ts +51 -0
- package/lib/components/table/src/components/context/TableContext.d.ts +4 -0
- package/lib/components/table/src/components/interface.d.ts +290 -23
- package/lib/components/table/src/hooks/useCellProps.d.ts +5 -1
- package/lib/components/table/src/hooks/useEdit.d.ts +24 -7
- package/lib/components/table/src/utils/form-model.d.ts +25 -0
- package/lib/components/table/src/utils/util.d.ts +1 -0
- package/lib/index.d.ts +271 -5
- package/lib/packages/components/table/src/components/Body/BodyCell.vue.js +39 -0
- package/lib/packages/components/table/src/components/Body/BodyCell.vue.js.map +1 -0
- package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js +133 -0
- package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js.map +1 -0
- package/lib/packages/components/table/src/components/Body/BodyEditCell.js +297 -0
- package/lib/packages/components/table/src/components/Body/BodyEditCell.js.map +1 -0
- package/lib/packages/components/table/src/components/Body/BodyRow.vue.js +63 -8
- package/lib/packages/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
- package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js +22 -16
- package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
- package/lib/packages/components/table/src/components/Body/{BodyCell.js → BodyTextCell.js} +24 -154
- package/lib/packages/components/table/src/components/Body/BodyTextCell.js.map +1 -0
- package/lib/packages/components/table/src/components/InteralTable.vue.js +24 -25
- package/lib/packages/components/table/src/components/InteralTable.vue.js.map +1 -1
- package/lib/packages/components/table/src/components/InteralTable.vue2.js +36 -97
- package/lib/packages/components/table/src/components/InteralTable.vue2.js.map +1 -1
- package/lib/packages/components/table/src/components/Table.js +24 -20
- package/lib/packages/components/table/src/components/Table.js.map +1 -1
- package/lib/packages/components/table/src/components/context/TableContext.js.map +1 -1
- package/lib/packages/components/table/src/components/interface.js +24 -0
- package/lib/packages/components/table/src/components/interface.js.map +1 -1
- package/lib/packages/components/table/src/hooks/useCellProps.js +8 -0
- package/lib/packages/components/table/src/hooks/useCellProps.js.map +1 -1
- package/lib/packages/components/table/src/hooks/useEdit.js +292 -17
- package/lib/packages/components/table/src/hooks/useEdit.js.map +1 -1
- package/lib/packages/components/table/src/utils/form-model.js +102 -0
- package/lib/packages/components/table/src/utils/form-model.js.map +1 -0
- package/lib/packages/components/table/src/utils/util.js +4 -0
- package/lib/packages/components/table/src/utils/util.js.map +1 -1
- package/lib/packages/utils/dom.js +16 -0
- package/lib/packages/utils/dom.js.map +1 -1
- package/lib/packages/utils/index.js +2 -0
- package/lib/packages/utils/index.js.map +1 -1
- package/lib/utils/dom.d.ts +2 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/table/table.less +40 -2
- package/es/components/table/src/components/Body/EditInput.vue.d.ts +0 -102
- package/es/packages/components/table/src/components/Body/BodyCell.mjs.map +0 -1
- package/es/packages/components/table/src/components/Body/EditInput.vue.mjs +0 -48
- package/es/packages/components/table/src/components/Body/EditInput.vue.mjs.map +0 -1
- package/es/packages/components/table/src/components/Body/EditInput.vue2.mjs +0 -151
- package/es/packages/components/table/src/components/Body/EditInput.vue2.mjs.map +0 -1
- package/lib/components/table/src/components/Body/EditInput.vue.d.ts +0 -102
- package/lib/packages/components/table/src/components/Body/BodyCell.js.map +0 -1
- package/lib/packages/components/table/src/components/Body/EditInput.vue.js +0 -52
- package/lib/packages/components/table/src/components/Body/EditInput.vue.js.map +0 -1
- package/lib/packages/components/table/src/components/Body/EditInput.vue2.js +0 -155
- package/lib/packages/components/table/src/components/Body/EditInput.vue2.js.map +0 -1
|
@@ -170,6 +170,60 @@ type GetComponentProps<DataType> = (data: DataType, index?: number) => Omit<HTML
|
|
|
170
170
|
};
|
|
171
171
|
export type ResizeActionType = 'start' | 'move' | 'end';
|
|
172
172
|
export type SummaryFixed = boolean | 'top' | 'bottom';
|
|
173
|
+
export interface ValueParserParams<RecordType = DefaultRecordType, TValue = any> {
|
|
174
|
+
newValue: TValue;
|
|
175
|
+
oldValue: TValue;
|
|
176
|
+
record: RecordType;
|
|
177
|
+
recordIndexs: number[];
|
|
178
|
+
column: ColumnType<RecordType>;
|
|
179
|
+
}
|
|
180
|
+
export interface EditableValueParams<RecordType = DefaultRecordType, TValue = any> {
|
|
181
|
+
value: TValue;
|
|
182
|
+
record: RecordType;
|
|
183
|
+
recordIndexs: number[];
|
|
184
|
+
column: ColumnType<RecordType>;
|
|
185
|
+
}
|
|
186
|
+
export interface ValueParserFunc<T = any, TValue = any> {
|
|
187
|
+
(params: EditableValueParams<T, TValue>): TValue | null | undefined;
|
|
188
|
+
}
|
|
189
|
+
export interface ValueGetterFunc<T = any, TValue = any> {
|
|
190
|
+
(params: EditableValueParams<T, TValue>): string | null | undefined;
|
|
191
|
+
}
|
|
192
|
+
export type EditableTrigger = 'click' | 'dblClick' | 'contextmenu';
|
|
193
|
+
export interface PlainObject {
|
|
194
|
+
[key: string]: any;
|
|
195
|
+
}
|
|
196
|
+
export type EditableCellProps<T> = PlainObject | ((params: EditableValueParams<T>) => PlainObject);
|
|
197
|
+
export type EditableCellRules<T> = EditRule[] | ((params: EditableValueParams<T>) => EditRule[]);
|
|
198
|
+
export type EditableCellType<T> = (params: EditableValueParams<T>) => boolean;
|
|
199
|
+
export type RowEditableType = 'single' | 'multiple';
|
|
200
|
+
export type RowEditableConfig<DataType> = {
|
|
201
|
+
/**
|
|
202
|
+
* @type single | multiple
|
|
203
|
+
* @name 编辑的类型,支持单选和多选
|
|
204
|
+
*/
|
|
205
|
+
type?: RowEditableType;
|
|
206
|
+
/** @name 正在编辑的列 */
|
|
207
|
+
editableKeys?: Key[];
|
|
208
|
+
/** 只能编辑一行的的提示 */
|
|
209
|
+
onlyOneLineEditorAlertMessage?: string;
|
|
210
|
+
/** 同时只能新增一行的提示 */
|
|
211
|
+
onlyAddOneLineAlertMessage?: string | false;
|
|
212
|
+
/** 正在编辑的列修改的时候 */
|
|
213
|
+
onChange?: (editableKeys: Key[], editableRows: DataType[] | DataType) => void;
|
|
214
|
+
/** 行保存的时候 */
|
|
215
|
+
onSave?: (
|
|
216
|
+
/** 行 id,一般是唯一id */
|
|
217
|
+
key: Key,
|
|
218
|
+
/** 当前修改的行的值 */
|
|
219
|
+
record: DataType & {
|
|
220
|
+
index?: number;
|
|
221
|
+
},
|
|
222
|
+
/** 原始值,可以用于判断是否修改 */
|
|
223
|
+
originRow: DataType & {
|
|
224
|
+
index?: number;
|
|
225
|
+
}) => Promise<any | void> | any | void;
|
|
226
|
+
};
|
|
173
227
|
export declare const baseTableProps: <T = DefaultRecordType>() => {
|
|
174
228
|
ignoreCellKey: BooleanConstructor;
|
|
175
229
|
showHeaderScrollbar: BooleanConstructor;
|
|
@@ -287,6 +341,10 @@ export declare const baseTableProps: <T = DefaultRecordType>() => {
|
|
|
287
341
|
type: BooleanConstructor;
|
|
288
342
|
default: undefined;
|
|
289
343
|
};
|
|
344
|
+
selectRowByClick: {
|
|
345
|
+
type: BooleanConstructor;
|
|
346
|
+
default: undefined;
|
|
347
|
+
};
|
|
290
348
|
expandIcon: {
|
|
291
349
|
type: PropType<RenderExpandIcon<T>>;
|
|
292
350
|
default: undefined;
|
|
@@ -358,6 +416,14 @@ export declare const baseTableProps: <T = DefaultRecordType>() => {
|
|
|
358
416
|
}) => Record<string, any>>;
|
|
359
417
|
default: () => {};
|
|
360
418
|
};
|
|
419
|
+
editableKeys: {
|
|
420
|
+
type: PropType<Key[]>;
|
|
421
|
+
default: undefined;
|
|
422
|
+
};
|
|
423
|
+
rowEditable: {
|
|
424
|
+
type: PropType<RowEditableConfig<T>>;
|
|
425
|
+
default: undefined;
|
|
426
|
+
};
|
|
361
427
|
showHeader: {
|
|
362
428
|
type: BooleanConstructor;
|
|
363
429
|
default: boolean;
|
|
@@ -467,6 +533,9 @@ export declare const baseTableProps: <T = DefaultRecordType>() => {
|
|
|
467
533
|
type: BooleanConstructor;
|
|
468
534
|
default: undefined;
|
|
469
535
|
};
|
|
536
|
+
editableCellState: {
|
|
537
|
+
type: PropType<EditableCellType<T>>;
|
|
538
|
+
};
|
|
470
539
|
paginationSticky: {
|
|
471
540
|
type: PropType<boolean | BottomSticky>;
|
|
472
541
|
default: boolean;
|
|
@@ -520,6 +589,15 @@ export declare const baseTableProps: <T = DefaultRecordType>() => {
|
|
|
520
589
|
type: PropType<(opt: CellRenderArgs) => void>;
|
|
521
590
|
default: undefined;
|
|
522
591
|
};
|
|
592
|
+
onDataChange: {
|
|
593
|
+
type: PropType<(dataSource: T[]) => void>;
|
|
594
|
+
};
|
|
595
|
+
onRowValidate: {
|
|
596
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
597
|
+
};
|
|
598
|
+
onValidate: {
|
|
599
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
600
|
+
};
|
|
523
601
|
'onUpdate:pagination': {
|
|
524
602
|
type: PropType<(info: TablePaginationConfig) => void>;
|
|
525
603
|
};
|
|
@@ -681,6 +759,10 @@ export declare const tableProps: <T = DefaultRecordType>() => {
|
|
|
681
759
|
type: BooleanConstructor;
|
|
682
760
|
default: undefined;
|
|
683
761
|
};
|
|
762
|
+
selectRowByClick: {
|
|
763
|
+
type: BooleanConstructor;
|
|
764
|
+
default: undefined;
|
|
765
|
+
};
|
|
684
766
|
expandIcon: {
|
|
685
767
|
type: PropType<RenderExpandIcon<T>>;
|
|
686
768
|
default: undefined;
|
|
@@ -752,6 +834,14 @@ export declare const tableProps: <T = DefaultRecordType>() => {
|
|
|
752
834
|
}) => Record<string, any>>;
|
|
753
835
|
default: () => {};
|
|
754
836
|
};
|
|
837
|
+
editableKeys: {
|
|
838
|
+
type: PropType<Key[]>;
|
|
839
|
+
default: undefined;
|
|
840
|
+
};
|
|
841
|
+
rowEditable: {
|
|
842
|
+
type: PropType<RowEditableConfig<T>>;
|
|
843
|
+
default: undefined;
|
|
844
|
+
};
|
|
755
845
|
showHeader: {
|
|
756
846
|
type: BooleanConstructor;
|
|
757
847
|
default: boolean;
|
|
@@ -922,6 +1012,9 @@ export declare const tableProps: <T = DefaultRecordType>() => {
|
|
|
922
1012
|
type: BooleanConstructor;
|
|
923
1013
|
default: undefined;
|
|
924
1014
|
};
|
|
1015
|
+
editableCellState: {
|
|
1016
|
+
type: PropType<EditableCellType<T>>;
|
|
1017
|
+
};
|
|
925
1018
|
paginationSticky: {
|
|
926
1019
|
type: PropType<boolean | BottomSticky>;
|
|
927
1020
|
default: boolean;
|
|
@@ -975,6 +1068,15 @@ export declare const tableProps: <T = DefaultRecordType>() => {
|
|
|
975
1068
|
type: PropType<(opt: CellRenderArgs) => void>;
|
|
976
1069
|
default: undefined;
|
|
977
1070
|
};
|
|
1071
|
+
onDataChange: {
|
|
1072
|
+
type: PropType<(dataSource: T[]) => void>;
|
|
1073
|
+
};
|
|
1074
|
+
onRowValidate: {
|
|
1075
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
1076
|
+
};
|
|
1077
|
+
onValidate: {
|
|
1078
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
1079
|
+
};
|
|
978
1080
|
'onUpdate:pagination': {
|
|
979
1081
|
type: PropType<(info: TablePaginationConfig) => void>;
|
|
980
1082
|
};
|
|
@@ -1178,6 +1280,10 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
1178
1280
|
type: BooleanConstructor;
|
|
1179
1281
|
default: undefined;
|
|
1180
1282
|
};
|
|
1283
|
+
selectRowByClick: {
|
|
1284
|
+
type: BooleanConstructor;
|
|
1285
|
+
default: undefined;
|
|
1286
|
+
};
|
|
1181
1287
|
expandIcon: {
|
|
1182
1288
|
type: PropType<RenderExpandIcon<T>>;
|
|
1183
1289
|
default: undefined;
|
|
@@ -1249,6 +1355,14 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
1249
1355
|
}) => Record<string, any>>;
|
|
1250
1356
|
default: () => {};
|
|
1251
1357
|
};
|
|
1358
|
+
editableKeys: {
|
|
1359
|
+
type: PropType<Key[]>;
|
|
1360
|
+
default: undefined;
|
|
1361
|
+
};
|
|
1362
|
+
rowEditable: {
|
|
1363
|
+
type: PropType<RowEditableConfig<T>>;
|
|
1364
|
+
default: undefined;
|
|
1365
|
+
};
|
|
1252
1366
|
showHeader: {
|
|
1253
1367
|
type: BooleanConstructor;
|
|
1254
1368
|
default: boolean;
|
|
@@ -1419,6 +1533,9 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
1419
1533
|
type: BooleanConstructor;
|
|
1420
1534
|
default: undefined;
|
|
1421
1535
|
};
|
|
1536
|
+
editableCellState: {
|
|
1537
|
+
type: PropType<EditableCellType<T>>;
|
|
1538
|
+
};
|
|
1422
1539
|
paginationSticky: {
|
|
1423
1540
|
type: PropType<boolean | BottomSticky>;
|
|
1424
1541
|
default: boolean;
|
|
@@ -1472,6 +1589,15 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
1472
1589
|
type: PropType<(opt: CellRenderArgs) => void>;
|
|
1473
1590
|
default: undefined;
|
|
1474
1591
|
};
|
|
1592
|
+
onDataChange: {
|
|
1593
|
+
type: PropType<(dataSource: T[]) => void>;
|
|
1594
|
+
};
|
|
1595
|
+
onRowValidate: {
|
|
1596
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
1597
|
+
};
|
|
1598
|
+
onValidate: {
|
|
1599
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
1600
|
+
};
|
|
1475
1601
|
'onUpdate:pagination': {
|
|
1476
1602
|
type: PropType<(info: TablePaginationConfig) => void>;
|
|
1477
1603
|
};
|
|
@@ -1615,27 +1741,56 @@ export interface CellTooltip {
|
|
|
1615
1741
|
shouldOpen?: (isEllipsis: boolean, args: CellRenderArgs) => boolean;
|
|
1616
1742
|
allowEnter?: boolean;
|
|
1617
1743
|
}
|
|
1618
|
-
export interface
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1744
|
+
export interface EditableCellConfig<T = DefaultRecordType> {
|
|
1745
|
+
/**
|
|
1746
|
+
* 触发编辑的事件
|
|
1747
|
+
*/
|
|
1748
|
+
editableTrigger?: EditableTrigger | EditableTrigger[];
|
|
1749
|
+
/**
|
|
1750
|
+
* 组件定义,如:`Input` `Select`。对于完全自定义的组件(非组件库内的组件),组件需要支持 `value` 和 `onChange` ;如果还需要支持校验规则,则组件还需实现 `tips` 和 `status` 两个 API,实现规则可参考 `Input` 组件
|
|
1751
|
+
*/
|
|
1752
|
+
component?: any;
|
|
1753
|
+
/**
|
|
1754
|
+
* 单元格默认状态是否为编辑态
|
|
1755
|
+
* @default false
|
|
1756
|
+
*/
|
|
1757
|
+
defaultEditable?: boolean;
|
|
1758
|
+
/**
|
|
1759
|
+
* 设置当前列的单元格始终保持为编辑态
|
|
1760
|
+
* @default false
|
|
1761
|
+
*/
|
|
1762
|
+
keepEditMode?: boolean;
|
|
1763
|
+
/**
|
|
1764
|
+
* 行内错误提示
|
|
1765
|
+
* @default false
|
|
1766
|
+
*/
|
|
1767
|
+
inlineError?: boolean;
|
|
1768
|
+
/**
|
|
1769
|
+
* 是否可以编辑
|
|
1770
|
+
*/
|
|
1771
|
+
editable?: (context: EditableValueParams<T>) => boolean;
|
|
1772
|
+
valueParser?: ValueParserFunc<T>;
|
|
1773
|
+
valueGetter?: ValueGetterFunc<T>;
|
|
1774
|
+
valueSetter?: (params: EditableValueParams<T>) => boolean | Promise<any>;
|
|
1775
|
+
/**
|
|
1776
|
+
* 透传给编辑组件的事件,参数有({ row, rowIndex, col, colIndex, editedRow, updateEditedCellValue })。可以使用参数 `updateEditedCellValue` 更新当前单元格(或当前行任意编辑状态单元格)的值。<br/>更新当前单元格数据示例:`updateEditedCellValue(value)`;<br/>更新当前行编辑态数据示例:`updateEditedCellValue({ isUpdateCurrentRow: true, column_key: 'test' })`;<br/>更新其他行编辑态数据示例:`updateEditedCellValue({ rowValue: '124', column_key: 'test' })`
|
|
1777
|
+
*/
|
|
1778
|
+
on?: (context: EditableValueParams<T>) => {
|
|
1779
|
+
[eventName: string]: Function;
|
|
1780
|
+
};
|
|
1781
|
+
/**
|
|
1782
|
+
* 编辑完成后,退出编辑模式时触发
|
|
1783
|
+
*/
|
|
1784
|
+
onEdited?: (context: EditableValueParams<T>) => void;
|
|
1785
|
+
/**
|
|
1786
|
+
* 透传给组件 `edit.component` 的属性,可以使用 `updateEditedCellValue` 更新当前行任意编辑状态单元格的值
|
|
1787
|
+
*/
|
|
1788
|
+
props?: EditableCellProps<T>;
|
|
1789
|
+
/**
|
|
1790
|
+
* 校验规则
|
|
1791
|
+
*/
|
|
1792
|
+
rules?: EditableCellRules<T>;
|
|
1636
1793
|
}
|
|
1637
|
-
type CellEditorSlot = 'cellEditorSlot';
|
|
1638
|
-
export type EditableTrigger = 'click' | 'dblClick' | 'contextmenu';
|
|
1639
1794
|
export interface ColumnType<RecordType = DefaultRecordType> extends ColumnSharedType, Omit<ProFormItemType, 'key' | 'originKey' | 'tooltip' | 'hidden' | 'grid' | 'title' | 'spaceProps' | 'children' | 'width' | 'ignoreWidth' | 'name' | 'originName' | 'rowProps' | 'colProps' | 'valueEnum'> {
|
|
1640
1795
|
search?: ProFormItemType;
|
|
1641
1796
|
colSpan?: number;
|
|
@@ -1693,9 +1848,15 @@ export interface ColumnType<RecordType = DefaultRecordType> extends ColumnShared
|
|
|
1693
1848
|
record: RecordType;
|
|
1694
1849
|
index: number;
|
|
1695
1850
|
column: ColumnType<RecordType>;
|
|
1851
|
+
cancelEditable: (recordKey: Key) => boolean;
|
|
1852
|
+
startEditable: (recordKey: Key, recordValue?: any) => boolean;
|
|
1853
|
+
saveEditable: (recordKey: Key) => Promise<boolean>;
|
|
1854
|
+
isEditable: (recordKey: Key) => boolean;
|
|
1696
1855
|
}) => any | RenderedCell;
|
|
1697
|
-
|
|
1698
|
-
|
|
1856
|
+
/**
|
|
1857
|
+
* 可编辑单元格配置项,具体属性参考文档 `EditableCellConfig` 描述
|
|
1858
|
+
*/
|
|
1859
|
+
edit?: EditableCellConfig<RecordType>;
|
|
1699
1860
|
valueParser?: ValueParserFunc<RecordType>;
|
|
1700
1861
|
valueGetter?: ValueGetterFunc<RecordType>;
|
|
1701
1862
|
valueSetter?: (params: ValueParserParams<RecordType>) => boolean | Promise<any>;
|
|
@@ -1713,7 +1874,7 @@ export interface ColumnType<RecordType = DefaultRecordType> extends ColumnShared
|
|
|
1713
1874
|
title?: string;
|
|
1714
1875
|
};
|
|
1715
1876
|
valueEnum?: ((row: RecordType) => Record<string, ValueEnumType>) | Record<string, ValueEnumType>;
|
|
1716
|
-
valueStatus?: ((value: any, row: RecordType) => ValueStatus) | ValueStatus;
|
|
1877
|
+
valueStatus?: ((value: any, row: RecordType, valueEnum?: ValueEnumType) => ValueStatus) | ValueStatus;
|
|
1717
1878
|
renderText?: (text: any, record: RecordType, rowIndex: number) => string | number;
|
|
1718
1879
|
/** @name 列设置的 disabled */
|
|
1719
1880
|
disable?: boolean | {
|
|
@@ -1770,6 +1931,12 @@ export interface TableExposeType {
|
|
|
1770
1931
|
calcTableHeight: () => Promise<void>;
|
|
1771
1932
|
formSearchSubmit: () => void;
|
|
1772
1933
|
getSearchParams: () => Record<string, any>;
|
|
1934
|
+
validateRowData: (rowValue: any) => Promise<TablePromiseErrorData>;
|
|
1935
|
+
validateTableData: () => Promise<TablePromiseErrorData>;
|
|
1936
|
+
addEditRecord: (recordValue?: any, options?: AddLineOptions) => false | undefined;
|
|
1937
|
+
startEditable: (recordKey: Key, recordValue?: any) => boolean;
|
|
1938
|
+
cancelEditable: (recordKey: Key) => boolean;
|
|
1939
|
+
saveEditable: (recordKey: Key) => Promise<boolean>;
|
|
1773
1940
|
}
|
|
1774
1941
|
export interface DragRowsHandleInfo {
|
|
1775
1942
|
y: number;
|
|
@@ -1902,3 +2069,103 @@ export type Bordered = boolean | {
|
|
|
1902
2069
|
search?: boolean;
|
|
1903
2070
|
table?: boolean;
|
|
1904
2071
|
};
|
|
2072
|
+
export interface IsDateOptions {
|
|
2073
|
+
format: string;
|
|
2074
|
+
strictMode: boolean;
|
|
2075
|
+
delimiters: string[];
|
|
2076
|
+
}
|
|
2077
|
+
export type CustomValidator = (val: any) => CustomValidateResolveType | Promise<CustomValidateResolveType>;
|
|
2078
|
+
export type CustomValidateResolveType = boolean | CustomValidateObj;
|
|
2079
|
+
export interface CustomValidateObj {
|
|
2080
|
+
result: boolean;
|
|
2081
|
+
message: string;
|
|
2082
|
+
type?: 'error' | 'warning' | 'success';
|
|
2083
|
+
}
|
|
2084
|
+
export type AddLineOptions = {
|
|
2085
|
+
position?: 'top' | 'bottom';
|
|
2086
|
+
newRecordType?: 'dataSource' | 'cache';
|
|
2087
|
+
};
|
|
2088
|
+
export type TableEditingCell<RecordType = DefaultRecordType> = {
|
|
2089
|
+
recordIndexs: number[];
|
|
2090
|
+
column: ColumnType<RecordType>;
|
|
2091
|
+
rowKey: Key;
|
|
2092
|
+
originRecord: RecordType;
|
|
2093
|
+
rowIndex: number;
|
|
2094
|
+
columnKey: Key;
|
|
2095
|
+
validateEdit: () => Promise<true | AllValidateResult[]>;
|
|
2096
|
+
};
|
|
2097
|
+
export type AllValidateResult = CustomValidateObj | ValidateResultType;
|
|
2098
|
+
export type TableErrorListMap = {
|
|
2099
|
+
[key: string]: AllValidateResult[];
|
|
2100
|
+
};
|
|
2101
|
+
export type ErrorListObjectType = TableEditingCell & {
|
|
2102
|
+
errorList: AllValidateResult[];
|
|
2103
|
+
};
|
|
2104
|
+
export interface TablePromiseErrorData {
|
|
2105
|
+
errors: ErrorListObjectType[];
|
|
2106
|
+
errorMap: TableErrorListMap;
|
|
2107
|
+
data?: DefaultRecordType[];
|
|
2108
|
+
}
|
|
2109
|
+
export interface ValidateResultType extends EditRule {
|
|
2110
|
+
result: boolean;
|
|
2111
|
+
}
|
|
2112
|
+
export interface EditRule {
|
|
2113
|
+
/**
|
|
2114
|
+
* 内置校验方法,校验值类型是否为布尔类型,示例:`{ boolean: true, message: '数据类型必须是布尔类型' }`
|
|
2115
|
+
*/
|
|
2116
|
+
boolean?: boolean;
|
|
2117
|
+
/**
|
|
2118
|
+
* 内置校验方法,校验值是否属于枚举值中的值。示例:`{ enum: ['primary', 'info', 'warning'], message: '值只能是 primary/info/warning 中的一种' }`
|
|
2119
|
+
*/
|
|
2120
|
+
enum?: Array<string>;
|
|
2121
|
+
/**
|
|
2122
|
+
* 内置校验方法,校验值是否为身份证号码,组件校验正则为 `/^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i`,示例:`{ idcard: true, message: '请输入正确的身份证号码' }`
|
|
2123
|
+
*/
|
|
2124
|
+
idcard?: boolean;
|
|
2125
|
+
/**
|
|
2126
|
+
* 内置校验方法,校验值固定长度,如:len: 10 表示值的字符长度只能等于 10 ,中文表示 2 个字符,英文为 1 个字符。示例:`{ len: 10, message: '内容长度不对' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length === 10, message: '内容文本长度只能是 10 个字' }`
|
|
2127
|
+
*/
|
|
2128
|
+
len?: number | boolean;
|
|
2129
|
+
/**
|
|
2130
|
+
* 内置校验方法,校验值最大长度,如:max: 100 表示值最多不能超过 100 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ max: 10, message: '内容超出' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length <= 10, message: '内容文本长度不能超过 10 个字' }`<br />如果数据类型数字(Number),则自动变为数字大小的比对
|
|
2131
|
+
*/
|
|
2132
|
+
max?: number | boolean;
|
|
2133
|
+
/**
|
|
2134
|
+
* 校验未通过时呈现的错误信息,值为空则不显示
|
|
2135
|
+
* @default ''
|
|
2136
|
+
*/
|
|
2137
|
+
message?: string;
|
|
2138
|
+
/**
|
|
2139
|
+
* 内置校验方法,校验值最小长度,如:min: 10 表示值最多不能少于 10 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ min: 10, message: '内容长度不够' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length >= 10, message: '内容文本长度至少为 10 个字' }`。<br />如果数据类型数字(Number),则自动变为数字大小的比对
|
|
2140
|
+
*/
|
|
2141
|
+
min?: number | boolean;
|
|
2142
|
+
/**
|
|
2143
|
+
* 内置校验方法,校验值是否为数字(1.2 、 1e5 都算数字),示例:`{ number: true, message: '请输入数字' }`
|
|
2144
|
+
*/
|
|
2145
|
+
number?: boolean;
|
|
2146
|
+
/**
|
|
2147
|
+
* 内置校验方法,校验值是否符合正则表达式匹配结果,示例:`{ pattern: /@qq.com/, message: '请输入 QQ 邮箱' }`
|
|
2148
|
+
*/
|
|
2149
|
+
pattern?: RegExp;
|
|
2150
|
+
/**
|
|
2151
|
+
* 内置校验方法,校验值是否已经填写。该值为 true,默认显示必填标记,可通过设置 `requiredMark: false` 隐藏必填标记
|
|
2152
|
+
*/
|
|
2153
|
+
required?: boolean;
|
|
2154
|
+
/**
|
|
2155
|
+
* 内置校验方法,校验值是否为手机号码,校验正则为 `/^1[3-9]\d{9}$/`,示例:`{ telnumber: true, message: '请输入正确的手机号码' }`
|
|
2156
|
+
*/
|
|
2157
|
+
telnumber?: boolean;
|
|
2158
|
+
/**
|
|
2159
|
+
* 校验未通过时呈现的错误信息类型,有 告警信息提示 和 错误信息提示 等两种
|
|
2160
|
+
* @default error
|
|
2161
|
+
*/
|
|
2162
|
+
type?: 'error' | 'warning';
|
|
2163
|
+
/**
|
|
2164
|
+
* 自定义校验规则,示例:`{ validator: (val) => val.length > 0, message: '请输入内容'}`
|
|
2165
|
+
*/
|
|
2166
|
+
validator?: CustomValidator;
|
|
2167
|
+
/**
|
|
2168
|
+
* 内置校验方法,校验值是否为空格。示例:`{ whitespace: true, message: '值不能为空' }`
|
|
2169
|
+
*/
|
|
2170
|
+
whitespace?: boolean;
|
|
2171
|
+
}
|
|
@@ -11,6 +11,10 @@ interface UseCellProps {
|
|
|
11
11
|
bodyWidth: Ref<number>;
|
|
12
12
|
leftWidth: Ref<number>;
|
|
13
13
|
centerWidth: Ref<number>;
|
|
14
|
+
cancelEditable: (recordKey: Key) => boolean;
|
|
15
|
+
startEditable: (recordKey: Key, recordValue?: any) => boolean;
|
|
16
|
+
saveEditable: (recordKey: Key) => Promise<boolean>;
|
|
17
|
+
isEditable: (recordKey: Key) => boolean;
|
|
14
18
|
getColumnPosition: (index: number, colSpan?: number) => {
|
|
15
19
|
width: number;
|
|
16
20
|
left: number;
|
|
@@ -25,5 +29,5 @@ export type UseCellPropsRes = {
|
|
|
25
29
|
hasMultiRowSpanInfo: Ref<Record<string, boolean>>;
|
|
26
30
|
centerRowColumnsMap: Ref<Map<Key, FinallyColumnType[]>>;
|
|
27
31
|
};
|
|
28
|
-
declare const useCellProps: ({ leftColumns, rightColumns, visibleCenterColumns, allColumns, data, mergedRowHeights, getColumnPosition, bodyWidth, leftWidth, centerWidth, getRowHeight, customCell: contextCustomCell, }: UseCellProps) => UseCellPropsRes;
|
|
32
|
+
declare const useCellProps: ({ leftColumns, rightColumns, visibleCenterColumns, allColumns, data, mergedRowHeights, getColumnPosition, bodyWidth, leftWidth, centerWidth, getRowHeight, cancelEditable, startEditable, saveEditable, isEditable, customCell: contextCustomCell, }: UseCellProps) => UseCellPropsRes;
|
|
29
33
|
export default useCellProps;
|
|
@@ -1,14 +1,31 @@
|
|
|
1
|
-
import type { Ref, ShallowRef } from 'vue';
|
|
1
|
+
import type { Ref, ShallowRef, ComputedRef } from 'vue';
|
|
2
|
+
import type { AddLineOptions, DefaultRecordType, GetRowKey, Key, ProTableProps, RowEditableType, TableEditingCell, TablePromiseErrorData } from '../components/interface';
|
|
2
3
|
type EditProps = {
|
|
3
4
|
editCellKeys: Ref<string[]>;
|
|
4
|
-
openEditor: (key: string | string[]
|
|
5
|
-
closeEditor: (key
|
|
6
|
-
|
|
5
|
+
openEditor: (key: string | string[]) => void;
|
|
6
|
+
closeEditor: (key: string) => void;
|
|
7
|
+
editableType: ComputedRef<RowEditableType | undefined>;
|
|
8
|
+
mergedEditableKeys: Ref<Key[] | undefined>;
|
|
9
|
+
isRowEdit: ComputedRef<boolean>;
|
|
10
|
+
editRowsMap: ShallowRef<Record<string, Record<string, any>>>;
|
|
11
|
+
setEditingCell: (params: TableEditingCell, isEdit: boolean) => void;
|
|
7
12
|
};
|
|
8
|
-
export declare const useEditProvider: (
|
|
13
|
+
export declare const useEditProvider: (props: ProTableProps, { rawData, getRowKey, getIndexsByKey, getRecordByKey, }: {
|
|
14
|
+
rawData: ShallowRef<DefaultRecordType[]>;
|
|
15
|
+
getRowKey: ComputedRef<GetRowKey>;
|
|
16
|
+
getIndexsByKey: (key: Key) => number[];
|
|
17
|
+
getRecordByKey: (key: Key) => DefaultRecordType;
|
|
18
|
+
}) => {
|
|
9
19
|
editCellKeys: ShallowRef<string[], string[]>;
|
|
10
|
-
openEditor: (key: string | string[]
|
|
11
|
-
closeEditor: (key
|
|
20
|
+
openEditor: (key: string | string[]) => void;
|
|
21
|
+
closeEditor: (key: string) => void;
|
|
22
|
+
cancelEditable: (recordKey: Key) => boolean;
|
|
23
|
+
startEditable: (recordKey: Key, recordValue?: any) => boolean;
|
|
24
|
+
saveEditable: (recordKey: Key) => Promise<boolean>;
|
|
25
|
+
isEditable: (recordKey: Key) => boolean;
|
|
26
|
+
validateTableData: () => Promise<TablePromiseErrorData>;
|
|
27
|
+
validateRowData: (rowValue: any) => Promise<TablePromiseErrorData>;
|
|
28
|
+
addEditRecord: (recordValue: any, options: AddLineOptions) => boolean;
|
|
12
29
|
};
|
|
13
30
|
export declare const useEditInject: () => EditProps;
|
|
14
31
|
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare function isValueEmpty(val: any): boolean;
|
|
2
|
+
declare const VALIDATE_MAP: {
|
|
3
|
+
required: (val: any) => boolean;
|
|
4
|
+
whitespace: (val: any) => boolean;
|
|
5
|
+
boolean: (val: any) => boolean;
|
|
6
|
+
max: (val: any, num: number) => boolean;
|
|
7
|
+
min: (val: any, num: number) => boolean;
|
|
8
|
+
len: (val: any, num: number) => boolean;
|
|
9
|
+
number: (val: any) => boolean;
|
|
10
|
+
enum: (val: any, strs: Array<string>) => boolean;
|
|
11
|
+
idcard: (val: any) => boolean;
|
|
12
|
+
telnumber: (val: any) => boolean;
|
|
13
|
+
pattern: (val: any, regexp: RegExp) => boolean;
|
|
14
|
+
validator: (val: any, validate: any) => ReturnType<any>;
|
|
15
|
+
};
|
|
16
|
+
export type ValidateFuncType = (typeof VALIDATE_MAP)[keyof typeof VALIDATE_MAP];
|
|
17
|
+
/**
|
|
18
|
+
* 校验某一条数据的某一条规则,一种校验规则不满足则不再进行校验。
|
|
19
|
+
* @param value 值
|
|
20
|
+
* @param rule 校验规则
|
|
21
|
+
* @returns 两种校验结果,一种是内置校验规则的校验结果哦,二种是自定义校验规则(validator)的校验结果
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateOneRule(value: any, rule: any): Promise<any>;
|
|
24
|
+
export declare function validate(value: any, rules: Array<any>): Promise<any[]>;
|
|
25
|
+
export {};
|
|
@@ -16,6 +16,7 @@ export declare function getColumnKey<RecordType>(column: ColumnType<RecordType>,
|
|
|
16
16
|
*/
|
|
17
17
|
export declare const genColumnKey: (key?: string | number, index?: number | string) => string;
|
|
18
18
|
export declare function getColumnPos(index: number, pos?: string): string;
|
|
19
|
+
export declare function getCellKey(rowKey: Key, colKey: Key): string;
|
|
19
20
|
export declare function getNewColumnsByWidth<RecordType>(columns: ColumnsType<RecordType>, newWidths: Record<string, number>, pos?: string): ColumnsType<RecordType>;
|
|
20
21
|
export declare type SortOrder = 'desc' | 'asc' | null;
|
|
21
22
|
export interface ColumnTitleProps<RecordType> {
|