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
package/lib/index.d.ts
CHANGED
|
@@ -803,7 +803,12 @@ declare type __VLS_WithSlots_7<T, S> = T & {
|
|
|
803
803
|
$slots: S;
|
|
804
804
|
};
|
|
805
805
|
};
|
|
806
|
+
declare type AddLineOptions = {
|
|
807
|
+
position?: "top" | "bottom";
|
|
808
|
+
newRecordType?: "dataSource" | "cache";
|
|
809
|
+
};
|
|
806
810
|
declare type AlignType = "left" | "center" | "right";
|
|
811
|
+
declare type AllValidateResult = CustomValidateObj | ValidateResultType;
|
|
807
812
|
declare interface AppendCellRange {
|
|
808
813
|
columnsKey?: ProTableKey[];
|
|
809
814
|
columnStartKey?: ProTableKey;
|
|
@@ -964,7 +969,6 @@ declare interface CellEditorArgs {
|
|
|
964
969
|
recordIndexs: number[];
|
|
965
970
|
record: any;
|
|
966
971
|
}
|
|
967
|
-
declare type CellEditorSlot = "cellEditorSlot";
|
|
968
972
|
declare type CellEllipsisType = {
|
|
969
973
|
showTitle?: boolean;
|
|
970
974
|
line?: number;
|
|
@@ -1137,9 +1141,15 @@ declare interface ColumnType<RecordType = DefaultRecordType> extends ColumnShare
|
|
|
1137
1141
|
record: RecordType;
|
|
1138
1142
|
index: number;
|
|
1139
1143
|
column: ColumnType<RecordType>;
|
|
1144
|
+
cancelEditable: (recordKey: ProTableKey) => boolean;
|
|
1145
|
+
startEditable: (recordKey: ProTableKey, recordValue?: any) => boolean;
|
|
1146
|
+
saveEditable: (recordKey: ProTableKey) => Promise<boolean>;
|
|
1147
|
+
isEditable: (recordKey: ProTableKey) => boolean;
|
|
1140
1148
|
}) => any | RenderedCell;
|
|
1141
|
-
|
|
1142
|
-
|
|
1149
|
+
/**
|
|
1150
|
+
* 可编辑单元格配置项,具体属性参考文档 `EditableCellConfig` 描述
|
|
1151
|
+
*/
|
|
1152
|
+
edit?: EditableCellConfig<RecordType>;
|
|
1143
1153
|
valueParser?: ValueParserFunc<RecordType>;
|
|
1144
1154
|
valueGetter?: ValueGetterFunc<RecordType>;
|
|
1145
1155
|
valueSetter?: (params: ValueParserParams<RecordType>) => boolean | Promise<any>;
|
|
@@ -1157,7 +1167,7 @@ declare interface ColumnType<RecordType = DefaultRecordType> extends ColumnShare
|
|
|
1157
1167
|
title?: string;
|
|
1158
1168
|
};
|
|
1159
1169
|
valueEnum?: ((row: RecordType) => Record<string, ProTableValueEnumType>) | Record<string, ProTableValueEnumType>;
|
|
1160
|
-
valueStatus?: ((value: any, row: RecordType) => ValueStatus) | ValueStatus;
|
|
1170
|
+
valueStatus?: ((value: any, row: RecordType, valueEnum?: ProTableValueEnumType) => ValueStatus) | ValueStatus;
|
|
1161
1171
|
renderText?: (text: any, record: RecordType, rowIndex: number) => string | number;
|
|
1162
1172
|
/** @name 列设置的 disabled */
|
|
1163
1173
|
disable?: boolean | {
|
|
@@ -1312,6 +1322,13 @@ export declare const CSS_VARIABLE_LAYOUT_FOOTER_HEIGHT = "--pro-footer-height";
|
|
|
1312
1322
|
/** layout header 组件的高度 */
|
|
1313
1323
|
export declare const CSS_VARIABLE_LAYOUT_HEADER_HEIGHT = "--pro-header-height";
|
|
1314
1324
|
declare type CustomSlotsType<T extends Record<string, any>> = SlotsType<T>;
|
|
1325
|
+
declare interface CustomValidateObj {
|
|
1326
|
+
result: boolean;
|
|
1327
|
+
message: string;
|
|
1328
|
+
type?: "error" | "warning" | "success";
|
|
1329
|
+
}
|
|
1330
|
+
declare type CustomValidateResolveType = boolean | CustomValidateObj;
|
|
1331
|
+
declare type CustomValidator = (val: any) => CustomValidateResolveType | Promise<CustomValidateResolveType>;
|
|
1315
1332
|
declare type DataIndex = string | number | readonly (string | number)[];
|
|
1316
1333
|
export { dayjs };
|
|
1317
1334
|
export declare const deDEIntl: IntlType;
|
|
@@ -1950,6 +1967,10 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
1950
1967
|
type: BooleanConstructor;
|
|
1951
1968
|
default: undefined;
|
|
1952
1969
|
};
|
|
1970
|
+
selectRowByClick: {
|
|
1971
|
+
type: BooleanConstructor;
|
|
1972
|
+
default: undefined;
|
|
1973
|
+
};
|
|
1953
1974
|
expandIcon: {
|
|
1954
1975
|
type: PropType<RenderExpandIcon<DefaultRecordType>>;
|
|
1955
1976
|
default: undefined;
|
|
@@ -2023,6 +2044,14 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
2023
2044
|
}) => Record<string, any>>;
|
|
2024
2045
|
default: () => {};
|
|
2025
2046
|
};
|
|
2047
|
+
editableKeys: {
|
|
2048
|
+
type: PropType<ProTableKey[]>;
|
|
2049
|
+
default: undefined;
|
|
2050
|
+
};
|
|
2051
|
+
rowEditable: {
|
|
2052
|
+
type: PropType<RowEditableConfig<DefaultRecordType>>;
|
|
2053
|
+
default: undefined;
|
|
2054
|
+
};
|
|
2026
2055
|
showHeader: {
|
|
2027
2056
|
type: BooleanConstructor;
|
|
2028
2057
|
default: boolean;
|
|
@@ -2195,6 +2224,9 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
2195
2224
|
type: BooleanConstructor;
|
|
2196
2225
|
default: undefined;
|
|
2197
2226
|
};
|
|
2227
|
+
editableCellState: {
|
|
2228
|
+
type: PropType<EditableCellType<DefaultRecordType>>;
|
|
2229
|
+
};
|
|
2198
2230
|
paginationSticky: {
|
|
2199
2231
|
type: PropType<boolean | BottomSticky>;
|
|
2200
2232
|
default: boolean;
|
|
@@ -2248,6 +2280,15 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
2248
2280
|
type: PropType<(opt: CellRenderArgs) => void>;
|
|
2249
2281
|
default: undefined;
|
|
2250
2282
|
};
|
|
2283
|
+
onDataChange: {
|
|
2284
|
+
type: PropType<(dataSource: DefaultRecordType[]) => void>;
|
|
2285
|
+
};
|
|
2286
|
+
onRowValidate: {
|
|
2287
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
2288
|
+
};
|
|
2289
|
+
onValidate: {
|
|
2290
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
2291
|
+
};
|
|
2251
2292
|
"onUpdate:pagination": {
|
|
2252
2293
|
type: PropType<(info: ProTablePaginationConfig) => void>;
|
|
2253
2294
|
};
|
|
@@ -2449,6 +2490,10 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
2449
2490
|
type: BooleanConstructor;
|
|
2450
2491
|
default: undefined;
|
|
2451
2492
|
};
|
|
2493
|
+
selectRowByClick: {
|
|
2494
|
+
type: BooleanConstructor;
|
|
2495
|
+
default: undefined;
|
|
2496
|
+
};
|
|
2452
2497
|
expandIcon: {
|
|
2453
2498
|
type: PropType<RenderExpandIcon<DefaultRecordType>>;
|
|
2454
2499
|
default: undefined;
|
|
@@ -2522,6 +2567,14 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
2522
2567
|
}) => Record<string, any>>;
|
|
2523
2568
|
default: () => {};
|
|
2524
2569
|
};
|
|
2570
|
+
editableKeys: {
|
|
2571
|
+
type: PropType<ProTableKey[]>;
|
|
2572
|
+
default: undefined;
|
|
2573
|
+
};
|
|
2574
|
+
rowEditable: {
|
|
2575
|
+
type: PropType<RowEditableConfig<DefaultRecordType>>;
|
|
2576
|
+
default: undefined;
|
|
2577
|
+
};
|
|
2525
2578
|
showHeader: {
|
|
2526
2579
|
type: BooleanConstructor;
|
|
2527
2580
|
default: boolean;
|
|
@@ -2694,6 +2747,9 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
2694
2747
|
type: BooleanConstructor;
|
|
2695
2748
|
default: undefined;
|
|
2696
2749
|
};
|
|
2750
|
+
editableCellState: {
|
|
2751
|
+
type: PropType<EditableCellType<DefaultRecordType>>;
|
|
2752
|
+
};
|
|
2697
2753
|
paginationSticky: {
|
|
2698
2754
|
type: PropType<boolean | BottomSticky>;
|
|
2699
2755
|
default: boolean;
|
|
@@ -2747,6 +2803,15 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
2747
2803
|
type: PropType<(opt: CellRenderArgs) => void>;
|
|
2748
2804
|
default: undefined;
|
|
2749
2805
|
};
|
|
2806
|
+
onDataChange: {
|
|
2807
|
+
type: PropType<(dataSource: DefaultRecordType[]) => void>;
|
|
2808
|
+
};
|
|
2809
|
+
onRowValidate: {
|
|
2810
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
2811
|
+
};
|
|
2812
|
+
onValidate: {
|
|
2813
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
2814
|
+
};
|
|
2750
2815
|
"onUpdate:pagination": {
|
|
2751
2816
|
type: PropType<(info: ProTablePaginationConfig) => void>;
|
|
2752
2817
|
};
|
|
@@ -2857,6 +2922,7 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
2857
2922
|
defaultExpandedRowKeys: ProTableKey[];
|
|
2858
2923
|
expandedRowRender: ExpandedRowRender<DefaultRecordType>;
|
|
2859
2924
|
expandRowByClick: boolean;
|
|
2925
|
+
selectRowByClick: boolean;
|
|
2860
2926
|
expandIcon: RenderExpandIcon<DefaultRecordType>;
|
|
2861
2927
|
expandIconType: ExpandIconType;
|
|
2862
2928
|
onExpand: (expanded: boolean, record: DefaultRecordType) => void;
|
|
@@ -2882,6 +2948,8 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
|
|
|
2882
2948
|
column: ColumnType<DefaultRecordType>;
|
|
2883
2949
|
columnIndex: number;
|
|
2884
2950
|
}) => Record<string, any>;
|
|
2951
|
+
editableKeys: ProTableKey[];
|
|
2952
|
+
rowEditable: RowEditableConfig<DefaultRecordType>;
|
|
2885
2953
|
showHeader: boolean;
|
|
2886
2954
|
showSorterTooltip: boolean | Partial<ExtractPropTypes<{
|
|
2887
2955
|
title: VueTypeValidableDef_2<any>;
|
|
@@ -5126,6 +5194,59 @@ declare const drawerOrModalFormProps: () => {
|
|
|
5126
5194
|
};
|
|
5127
5195
|
name: StringConstructor;
|
|
5128
5196
|
};
|
|
5197
|
+
declare interface EditableCellConfig<T = DefaultRecordType> {
|
|
5198
|
+
/**
|
|
5199
|
+
* 触发编辑的事件
|
|
5200
|
+
*/
|
|
5201
|
+
editableTrigger?: EditableTrigger | EditableTrigger[];
|
|
5202
|
+
/**
|
|
5203
|
+
* 组件定义,如:`Input` `Select`。对于完全自定义的组件(非组件库内的组件),组件需要支持 `value` 和 `onChange` ;如果还需要支持校验规则,则组件还需实现 `tips` 和 `status` 两个 API,实现规则可参考 `Input` 组件
|
|
5204
|
+
*/
|
|
5205
|
+
component?: any;
|
|
5206
|
+
/**
|
|
5207
|
+
* 单元格默认状态是否为编辑态
|
|
5208
|
+
* @default false
|
|
5209
|
+
*/
|
|
5210
|
+
defaultEditable?: boolean;
|
|
5211
|
+
/**
|
|
5212
|
+
* 设置当前列的单元格始终保持为编辑态
|
|
5213
|
+
* @default false
|
|
5214
|
+
*/
|
|
5215
|
+
keepEditMode?: boolean;
|
|
5216
|
+
/**
|
|
5217
|
+
* 行内错误提示
|
|
5218
|
+
* @default false
|
|
5219
|
+
*/
|
|
5220
|
+
inlineError?: boolean;
|
|
5221
|
+
/**
|
|
5222
|
+
* 是否可以编辑
|
|
5223
|
+
*/
|
|
5224
|
+
editable?: (context: EditableValueParams<T>) => boolean;
|
|
5225
|
+
valueParser?: ValueParserFunc<T>;
|
|
5226
|
+
valueGetter?: ValueGetterFunc<T>;
|
|
5227
|
+
valueSetter?: (params: EditableValueParams<T>) => boolean | Promise<any>;
|
|
5228
|
+
/**
|
|
5229
|
+
* 透传给编辑组件的事件,参数有({ row, rowIndex, col, colIndex, editedRow, updateEditedCellValue })。可以使用参数 `updateEditedCellValue` 更新当前单元格(或当前行任意编辑状态单元格)的值。<br/>更新当前单元格数据示例:`updateEditedCellValue(value)`;<br/>更新当前行编辑态数据示例:`updateEditedCellValue({ isUpdateCurrentRow: true, column_key: 'test' })`;<br/>更新其他行编辑态数据示例:`updateEditedCellValue({ rowValue: '124', column_key: 'test' })`
|
|
5230
|
+
*/
|
|
5231
|
+
on?: (context: EditableValueParams<T>) => {
|
|
5232
|
+
[eventName: string]: Function;
|
|
5233
|
+
};
|
|
5234
|
+
/**
|
|
5235
|
+
* 编辑完成后,退出编辑模式时触发
|
|
5236
|
+
*/
|
|
5237
|
+
onEdited?: (context: EditableValueParams<T>) => void;
|
|
5238
|
+
/**
|
|
5239
|
+
* 透传给组件 `edit.component` 的属性,可以使用 `updateEditedCellValue` 更新当前行任意编辑状态单元格的值
|
|
5240
|
+
*/
|
|
5241
|
+
props?: EditableCellProps<T>;
|
|
5242
|
+
/**
|
|
5243
|
+
* 校验规则
|
|
5244
|
+
*/
|
|
5245
|
+
rules?: EditableCellRules<T>;
|
|
5246
|
+
}
|
|
5247
|
+
declare type EditableCellProps<T> = PlainObject | ((params: EditableValueParams<T>) => PlainObject);
|
|
5248
|
+
declare type EditableCellRules<T> = EditRule[] | ((params: EditableValueParams<T>) => EditRule[]);
|
|
5249
|
+
declare type EditableCellType<T> = (params: EditableValueParams<T>) => boolean;
|
|
5129
5250
|
declare type EditableTrigger = "click" | "dblClick" | "contextmenu";
|
|
5130
5251
|
declare interface EditableValueParams<RecordType = DefaultRecordType, TValue = any> {
|
|
5131
5252
|
value: TValue;
|
|
@@ -5133,11 +5254,74 @@ declare interface EditableValueParams<RecordType = DefaultRecordType, TValue = a
|
|
|
5133
5254
|
recordIndexs: number[];
|
|
5134
5255
|
column: ColumnType<RecordType>;
|
|
5135
5256
|
}
|
|
5257
|
+
declare interface EditRule {
|
|
5258
|
+
/**
|
|
5259
|
+
* 内置校验方法,校验值类型是否为布尔类型,示例:`{ boolean: true, message: '数据类型必须是布尔类型' }`
|
|
5260
|
+
*/
|
|
5261
|
+
boolean?: boolean;
|
|
5262
|
+
/**
|
|
5263
|
+
* 内置校验方法,校验值是否属于枚举值中的值。示例:`{ enum: ['primary', 'info', 'warning'], message: '值只能是 primary/info/warning 中的一种' }`
|
|
5264
|
+
*/
|
|
5265
|
+
enum?: Array<string>;
|
|
5266
|
+
/**
|
|
5267
|
+
* 内置校验方法,校验值是否为身份证号码,组件校验正则为 `/^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i`,示例:`{ idcard: true, message: '请输入正确的身份证号码' }`
|
|
5268
|
+
*/
|
|
5269
|
+
idcard?: boolean;
|
|
5270
|
+
/**
|
|
5271
|
+
* 内置校验方法,校验值固定长度,如:len: 10 表示值的字符长度只能等于 10 ,中文表示 2 个字符,英文为 1 个字符。示例:`{ len: 10, message: '内容长度不对' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length === 10, message: '内容文本长度只能是 10 个字' }`
|
|
5272
|
+
*/
|
|
5273
|
+
len?: number | boolean;
|
|
5274
|
+
/**
|
|
5275
|
+
* 内置校验方法,校验值最大长度,如:max: 100 表示值最多不能超过 100 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ max: 10, message: '内容超出' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length <= 10, message: '内容文本长度不能超过 10 个字' }`<br />如果数据类型数字(Number),则自动变为数字大小的比对
|
|
5276
|
+
*/
|
|
5277
|
+
max?: number | boolean;
|
|
5278
|
+
/**
|
|
5279
|
+
* 校验未通过时呈现的错误信息,值为空则不显示
|
|
5280
|
+
* @default ''
|
|
5281
|
+
*/
|
|
5282
|
+
message?: string;
|
|
5283
|
+
/**
|
|
5284
|
+
* 内置校验方法,校验值最小长度,如:min: 10 表示值最多不能少于 10 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ min: 10, message: '内容长度不够' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length >= 10, message: '内容文本长度至少为 10 个字' }`。<br />如果数据类型数字(Number),则自动变为数字大小的比对
|
|
5285
|
+
*/
|
|
5286
|
+
min?: number | boolean;
|
|
5287
|
+
/**
|
|
5288
|
+
* 内置校验方法,校验值是否为数字(1.2 、 1e5 都算数字),示例:`{ number: true, message: '请输入数字' }`
|
|
5289
|
+
*/
|
|
5290
|
+
number?: boolean;
|
|
5291
|
+
/**
|
|
5292
|
+
* 内置校验方法,校验值是否符合正则表达式匹配结果,示例:`{ pattern: /@qq.com/, message: '请输入 QQ 邮箱' }`
|
|
5293
|
+
*/
|
|
5294
|
+
pattern?: RegExp;
|
|
5295
|
+
/**
|
|
5296
|
+
* 内置校验方法,校验值是否已经填写。该值为 true,默认显示必填标记,可通过设置 `requiredMark: false` 隐藏必填标记
|
|
5297
|
+
*/
|
|
5298
|
+
required?: boolean;
|
|
5299
|
+
/**
|
|
5300
|
+
* 内置校验方法,校验值是否为手机号码,校验正则为 `/^1[3-9]\d{9}$/`,示例:`{ telnumber: true, message: '请输入正确的手机号码' }`
|
|
5301
|
+
*/
|
|
5302
|
+
telnumber?: boolean;
|
|
5303
|
+
/**
|
|
5304
|
+
* 校验未通过时呈现的错误信息类型,有 告警信息提示 和 错误信息提示 等两种
|
|
5305
|
+
* @default error
|
|
5306
|
+
*/
|
|
5307
|
+
type?: "error" | "warning";
|
|
5308
|
+
/**
|
|
5309
|
+
* 自定义校验规则,示例:`{ validator: (val) => val.length > 0, message: '请输入内容'}`
|
|
5310
|
+
*/
|
|
5311
|
+
validator?: CustomValidator;
|
|
5312
|
+
/**
|
|
5313
|
+
* 内置校验方法,校验值是否为空格。示例:`{ whitespace: true, message: '值不能为空' }`
|
|
5314
|
+
*/
|
|
5315
|
+
whitespace?: boolean;
|
|
5316
|
+
}
|
|
5136
5317
|
/** 内容区域的组件ID */
|
|
5137
5318
|
export declare const ELEMENT_ID_MAIN_CONTENT = "__pro_main_content";
|
|
5138
5319
|
export declare const enGBIntl: IntlType;
|
|
5139
5320
|
export declare type Entity = Record<string, any>;
|
|
5140
5321
|
export declare const enUSIntl: IntlType;
|
|
5322
|
+
declare type ErrorListObjectType = TableEditingCell & {
|
|
5323
|
+
errorList: AllValidateResult[];
|
|
5324
|
+
};
|
|
5141
5325
|
export declare const esESIntl: IntlType;
|
|
5142
5326
|
export declare type EventHandler = (...args: any[]) => void;
|
|
5143
5327
|
declare type ExpandedRowRender<ValueType> = (opt: {
|
|
@@ -5650,6 +5834,10 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
5650
5834
|
type: BooleanConstructor;
|
|
5651
5835
|
default: undefined;
|
|
5652
5836
|
};
|
|
5837
|
+
selectRowByClick: {
|
|
5838
|
+
type: BooleanConstructor;
|
|
5839
|
+
default: undefined;
|
|
5840
|
+
};
|
|
5653
5841
|
expandIcon: {
|
|
5654
5842
|
type: PropType<RenderExpandIcon<T>>;
|
|
5655
5843
|
default: undefined;
|
|
@@ -5721,6 +5909,14 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
5721
5909
|
}) => Record<string, any>>;
|
|
5722
5910
|
default: () => {};
|
|
5723
5911
|
};
|
|
5912
|
+
editableKeys: {
|
|
5913
|
+
type: PropType<ProTableKey[]>;
|
|
5914
|
+
default: undefined;
|
|
5915
|
+
};
|
|
5916
|
+
rowEditable: {
|
|
5917
|
+
type: PropType<RowEditableConfig<T>>;
|
|
5918
|
+
default: undefined;
|
|
5919
|
+
};
|
|
5724
5920
|
showHeader: {
|
|
5725
5921
|
type: BooleanConstructor;
|
|
5726
5922
|
default: boolean;
|
|
@@ -5891,6 +6087,9 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
5891
6087
|
type: BooleanConstructor;
|
|
5892
6088
|
default: undefined;
|
|
5893
6089
|
};
|
|
6090
|
+
editableCellState: {
|
|
6091
|
+
type: PropType<EditableCellType<T>>;
|
|
6092
|
+
};
|
|
5894
6093
|
paginationSticky: {
|
|
5895
6094
|
type: PropType<boolean | BottomSticky>;
|
|
5896
6095
|
default: boolean;
|
|
@@ -5944,6 +6143,15 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
5944
6143
|
type: PropType<(opt: CellRenderArgs) => void>;
|
|
5945
6144
|
default: undefined;
|
|
5946
6145
|
};
|
|
6146
|
+
onDataChange: {
|
|
6147
|
+
type: PropType<(dataSource: T[]) => void>;
|
|
6148
|
+
};
|
|
6149
|
+
onRowValidate: {
|
|
6150
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
6151
|
+
};
|
|
6152
|
+
onValidate: {
|
|
6153
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
6154
|
+
};
|
|
5947
6155
|
"onUpdate:pagination": {
|
|
5948
6156
|
type: PropType<(info: ProTablePaginationConfig) => void>;
|
|
5949
6157
|
};
|
|
@@ -6124,6 +6332,9 @@ declare interface PaginationProps {
|
|
|
6124
6332
|
role?: string;
|
|
6125
6333
|
showLessItems?: boolean;
|
|
6126
6334
|
}
|
|
6335
|
+
declare interface PlainObject {
|
|
6336
|
+
[key: string]: any;
|
|
6337
|
+
}
|
|
6127
6338
|
export declare const plPLIntl: IntlType;
|
|
6128
6339
|
export declare const ProButton: SFCWithInstall<DefineComponent<ExtractPropTypes<{
|
|
6129
6340
|
type: PropType<ButtonProps["type"]>;
|
|
@@ -6388,6 +6599,7 @@ export declare interface ProConfigProviderProps extends Omit<ConfigProviderProps
|
|
|
6388
6599
|
cardBordered?: Bordered;
|
|
6389
6600
|
childrenColumnName?: string;
|
|
6390
6601
|
expandRowByClick?: boolean;
|
|
6602
|
+
selectRowByClick?: boolean;
|
|
6391
6603
|
rowKey?: string;
|
|
6392
6604
|
size?: ProTableDensitySize;
|
|
6393
6605
|
expandIconType?: ExpandIconType;
|
|
@@ -7075,6 +7287,12 @@ export declare interface ProTableExposeType {
|
|
|
7075
7287
|
calcTableHeight: () => Promise<void>;
|
|
7076
7288
|
formSearchSubmit: () => void;
|
|
7077
7289
|
getSearchParams: () => Record<string, any>;
|
|
7290
|
+
validateRowData: (rowValue: any) => Promise<TablePromiseErrorData>;
|
|
7291
|
+
validateTableData: () => Promise<TablePromiseErrorData>;
|
|
7292
|
+
addEditRecord: (recordValue?: any, options?: AddLineOptions) => false | undefined;
|
|
7293
|
+
startEditable: (recordKey: ProTableKey, recordValue?: any) => boolean;
|
|
7294
|
+
cancelEditable: (recordKey: ProTableKey) => boolean;
|
|
7295
|
+
saveEditable: (recordKey: ProTableKey) => Promise<boolean>;
|
|
7078
7296
|
}
|
|
7079
7297
|
export declare type ProTableInstance = InstanceType<typeof _default_17> & ProTableExposeType;
|
|
7080
7298
|
export declare type ProTableKey = string | number;
|
|
@@ -10517,6 +10735,34 @@ declare interface RowDragGhostArg<RecordT, ColumnT> {
|
|
|
10517
10735
|
preTargetInfo: DragRowsHandleInfo | null;
|
|
10518
10736
|
nextTargetInfo: DragRowsHandleInfo | null;
|
|
10519
10737
|
}
|
|
10738
|
+
declare type RowEditableConfig<DataType> = {
|
|
10739
|
+
/**
|
|
10740
|
+
* @type single | multiple
|
|
10741
|
+
* @name 编辑的类型,支持单选和多选
|
|
10742
|
+
*/
|
|
10743
|
+
type?: RowEditableType;
|
|
10744
|
+
/** @name 正在编辑的列 */
|
|
10745
|
+
editableKeys?: ProTableKey[];
|
|
10746
|
+
/** 只能编辑一行的的提示 */
|
|
10747
|
+
onlyOneLineEditorAlertMessage?: string;
|
|
10748
|
+
/** 同时只能新增一行的提示 */
|
|
10749
|
+
onlyAddOneLineAlertMessage?: string | false;
|
|
10750
|
+
/** 正在编辑的列修改的时候 */
|
|
10751
|
+
onChange?: (editableKeys: ProTableKey[], editableRows: DataType[] | DataType) => void;
|
|
10752
|
+
/** 行保存的时候 */
|
|
10753
|
+
onSave?: (
|
|
10754
|
+
/** 行 id,一般是唯一id */
|
|
10755
|
+
key: ProTableKey,
|
|
10756
|
+
/** 当前修改的行的值 */
|
|
10757
|
+
record: DataType & {
|
|
10758
|
+
index?: number;
|
|
10759
|
+
},
|
|
10760
|
+
/** 原始值,可以用于判断是否修改 */
|
|
10761
|
+
originRow: DataType & {
|
|
10762
|
+
index?: number;
|
|
10763
|
+
}) => Promise<any | void> | any | void;
|
|
10764
|
+
};
|
|
10765
|
+
declare type RowEditableType = "single" | "multiple";
|
|
10520
10766
|
export declare type RowHeight = ((p: Record<any, any>, isExpandRow: boolean, baseHeight: number) => number | undefined) | number;
|
|
10521
10767
|
declare type RowSelectionType = "checkbox" | "radio";
|
|
10522
10768
|
export declare const ruRUIntl: IntlType;
|
|
@@ -10809,6 +11055,18 @@ declare interface TableCurrentDataSource<RecordType = DefaultRecordType> {
|
|
|
10809
11055
|
currentDataSource: RecordType[];
|
|
10810
11056
|
action: TableAction;
|
|
10811
11057
|
}
|
|
11058
|
+
declare type TableEditingCell<RecordType = DefaultRecordType> = {
|
|
11059
|
+
recordIndexs: number[];
|
|
11060
|
+
column: ColumnType<RecordType>;
|
|
11061
|
+
rowKey: ProTableKey;
|
|
11062
|
+
originRecord: RecordType;
|
|
11063
|
+
rowIndex: number;
|
|
11064
|
+
columnKey: ProTableKey;
|
|
11065
|
+
validateEdit: () => Promise<true | AllValidateResult[]>;
|
|
11066
|
+
};
|
|
11067
|
+
declare type TableErrorListMap = {
|
|
11068
|
+
[key: string]: AllValidateResult[];
|
|
11069
|
+
};
|
|
10812
11070
|
declare interface TableLocale {
|
|
10813
11071
|
filterTitle?: string;
|
|
10814
11072
|
filterConfirm?: any;
|
|
@@ -10827,6 +11085,11 @@ declare interface TableLocale {
|
|
|
10827
11085
|
cancelSort?: string;
|
|
10828
11086
|
}
|
|
10829
11087
|
declare type TablePaginationPosition = "topLeft" | "topCenter" | "topRight" | "bottomLeft" | "bottomCenter" | "bottomRight";
|
|
11088
|
+
declare interface TablePromiseErrorData {
|
|
11089
|
+
errors: ErrorListObjectType[];
|
|
11090
|
+
errorMap: TableErrorListMap;
|
|
11091
|
+
data?: DefaultRecordType[];
|
|
11092
|
+
}
|
|
10830
11093
|
export declare type Theme = "default" | "custom";
|
|
10831
11094
|
export declare type ThemeModeType = "auto" | "dark" | "light";
|
|
10832
11095
|
declare type ThemeType = "light" | "dark";
|
|
@@ -10906,11 +11169,14 @@ export declare function useState<T, R = Ref<T>>(defaultStateValue?: T | (() => T
|
|
|
10906
11169
|
(val: T) => void
|
|
10907
11170
|
];
|
|
10908
11171
|
export declare const uzUZIntl: IntlType;
|
|
11172
|
+
declare interface ValidateResultType extends EditRule {
|
|
11173
|
+
result: boolean;
|
|
11174
|
+
}
|
|
10909
11175
|
declare interface ValueGetterFunc<T = any, TValue = any> {
|
|
10910
11176
|
(params: EditableValueParams<T, TValue>): string | null | undefined;
|
|
10911
11177
|
}
|
|
10912
11178
|
declare interface ValueParserFunc<T = any, TValue = any> {
|
|
10913
|
-
(params:
|
|
11179
|
+
(params: EditableValueParams<T, TValue>): TValue | null | undefined;
|
|
10914
11180
|
}
|
|
10915
11181
|
declare interface ValueParserParams<RecordType = DefaultRecordType, TValue = any> {
|
|
10916
11182
|
newValue: TValue;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var BodyCell_vue_vue_type_script_lang = require('./BodyCell.vue2.js');
|
|
6
|
+
var vue = require('vue');
|
|
7
|
+
var _pluginVue_exportHelper = require('../../../../../../_virtual/_plugin-vue_export-helper.js');
|
|
8
|
+
|
|
9
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10
|
+
const _component_BodyEditCell = vue.resolveComponent("BodyEditCell");
|
|
11
|
+
const _component_BodyTextCell = vue.resolveComponent("BodyTextCell");
|
|
12
|
+
return _ctx.isEditing ? (vue.openBlock(), vue.createBlock(_component_BodyEditCell, {
|
|
13
|
+
key: _ctx.key,
|
|
14
|
+
prefixCls: _ctx.prefixCls,
|
|
15
|
+
rowIndex: _ctx.rowIndex,
|
|
16
|
+
flattenRowIndex: _ctx.flattenRowIndex,
|
|
17
|
+
rowKey: _ctx.rowKey,
|
|
18
|
+
column: _ctx.column,
|
|
19
|
+
item: _ctx.item,
|
|
20
|
+
"edit-row": _ctx.editRow,
|
|
21
|
+
"editable-keys": _ctx.editableKeys,
|
|
22
|
+
"is-row-edit": _ctx.isRowEdit
|
|
23
|
+
}, null, 8, ["prefixCls", "rowIndex", "flattenRowIndex", "rowKey", "column", "item", "edit-row", "editable-keys", "is-row-edit"])) : (vue.openBlock(), vue.createBlock(_component_BodyTextCell, vue.mergeProps({ key: 1 }, _ctx.props, {
|
|
24
|
+
style: { cursor: _ctx.editable ? "poiner" : "" },
|
|
25
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.onCellEvent($event, "click")),
|
|
26
|
+
onDblClick: _cache[1] || (_cache[1] = ($event) => _ctx.onCellEvent($event, "dblClick")),
|
|
27
|
+
onContextmenu: _cache[2] || (_cache[2] = ($event) => _ctx.onCellEvent($event, "contextmenu"))
|
|
28
|
+
}), {
|
|
29
|
+
appendNode: vue.withCtx(() => [
|
|
30
|
+
vue.renderSlot(_ctx.$slots, "appendNode")
|
|
31
|
+
]),
|
|
32
|
+
_: 3
|
|
33
|
+
/* FORWARDED */
|
|
34
|
+
}, 16, ["style"]));
|
|
35
|
+
}
|
|
36
|
+
var BodyCell = /* @__PURE__ */ _pluginVue_exportHelper.default(BodyCell_vue_vue_type_script_lang.default, [["render", _sfc_render]]);
|
|
37
|
+
|
|
38
|
+
exports.default = BodyCell;
|
|
39
|
+
//# sourceMappingURL=BodyCell.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BodyCell.vue.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 22:29:52\n * @LastEditors: shen\n * @LastEditTime: 2025-12-02 17:16:19\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType } from 'vue'\nimport type { EditableTrigger, FinallyColumnType, Key, RowType } from '../interface'\nimport { defineComponent, computed, watch, onMounted } from 'vue'\nimport { get } from '@pro-design-vue/utils'\nimport { useInjectTable } from '../context/TableContext'\nimport { getCellKey } from '../../utils/util'\nimport BodyTextCell from './BodyTextCell'\nimport BodyEditCell from './BodyEditCell'\nexport default defineComponent({\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number as PropType<number>, required: true },\n flattenRowIndex: { type: Number, required: true },\n rowKey: { type: [Number, String] },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n type: { type: String as PropType<RowType> },\n height: Number as PropType<number>,\n hasAppendNode: Boolean as PropType<boolean>,\n resizeObserver: { type: Object as PropType<ResizeObserver> },\n editRow: { type: Object as PropType<any> },\n calMaxHeight: Function,\n editCellKeys: Array as PropType<string[]>,\n editableKeys: Array as PropType<Key[]>,\n isRowEdit: Boolean as PropType<boolean>,\n tooltipOpen: Boolean as PropType<boolean>,\n getPopupContainer: Function as PropType<() => HTMLElement>,\n onOpenEditor: Function,\n onCloseEditor: Function,\n onCellLeave: Function,\n onMouseenter: Function,\n },\n emits: ['mouseenter', 'cellLeave'],\n components: { BodyTextCell, BodyEditCell },\n setup(props) {\n const tableContext = useInjectTable()\n const isKeepEditMode = computed(() => props.column.edit?.keepEditMode)\n const cellValue = computed(() =>\n props.column!.dataIndex ? get(props.item, props.column!.dataIndex) : undefined,\n )\n\n const key = computed(() => getCellKey(props.rowKey!, props.column.columnKey))\n\n const cellParams = computed(() => ({\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n value: cellValue.value,\n }))\n\n const editable = computed(() => {\n if (!props.column.edit?.component) {\n return false\n }\n if (props.isRowEdit && !props.editableKeys?.includes(props.rowKey!)) {\n return false\n }\n if (!props.column.edit?.editable) {\n return true\n }\n const cellEditable = props.column.edit?.editable(cellParams.value)\n return cellEditable\n })\n\n const isEditing = computed(() => {\n if (props.isRowEdit) {\n return editable.value && props.editableKeys?.includes(props.rowKey!)\n }\n if (!editable.value) {\n return false\n }\n if (isKeepEditMode.value) {\n return true\n }\n if (props.editCellKeys?.includes(key.value)) {\n return true\n }\n return false\n })\n\n const editableTrigger = computed(() => {\n let { editableTrigger = ['click'] } = props.column!.edit ?? {}\n editableTrigger = Array.isArray(editableTrigger) ? editableTrigger : [editableTrigger]\n return editableTrigger\n })\n\n const onCellEvent = (e: MouseEvent, trigger: EditableTrigger) => {\n if (editable.value && editableTrigger.value?.includes(trigger) && !props.isRowEdit) {\n openEditor()\n closeEditor()\n e.stopPropagation()\n e.preventDefault()\n }\n }\n\n const openEditor = () => {\n const oldValue = props.column.edit?.valueGetter?.(cellParams.value) ?? cellValue.value\n props.onOpenEditor?.(key.value, { [key.value]: oldValue })\n }\n\n const closeEditor = () => {\n props.onCloseEditor?.(key.value)\n }\n\n watch(key, () => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n onMounted(() => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n return {\n props,\n key,\n isEditing,\n editable,\n onCellEvent,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isEditing\">\n <BodyEditCell\n :key=\"key\"\n :prefixCls=\"prefixCls\"\n :rowIndex=\"rowIndex\"\n :flattenRowIndex=\"flattenRowIndex\"\n :rowKey=\"rowKey\"\n :column=\"column\"\n :item=\"item\"\n :edit-row=\"editRow\"\n :editable-keys=\"editableKeys\"\n :is-row-edit=\"isRowEdit\"\n />\n </template>\n <template v-else>\n <BodyTextCell\n v-bind=\"props\"\n :style=\"{ cursor: editable ? 'poiner' : '' }\"\n @click=\"onCellEvent($event, 'click')\"\n @dblClick=\"onCellEvent($event, 'dblClick')\"\n @contextmenu=\"onCellEvent($event, 'contextmenu')\"\n >\n <template #appendNode>\n <slot name=\"appendNode\" />\n </template>\n </BodyTextCell>\n </template>\n</template>\n"],"names":["_openBlock","_createBlock","_mergeProps","_withCtx","_renderSlot"],"mappings":";;;;;;;;;;;AA0IkB,EAAA,OAAA,IAAA,CAAA,SAAA,IAAAA,aAAA,EAAA,EACdC,gBAWE,uBAAA,EAAA;AAAA,IAVC,KAAK,IAAA,CAAA,GAAA;AAAA,IACL,WAAW,IAAA,CAAA,SAAA;AAAA,IACX,UAAU,IAAA,CAAA,QAAA;AAAA,IACV,iBAAiB,IAAA,CAAA,eAAA;AAAA,IACjB,QAAQ,IAAA,CAAA,MAAA;AAAA,IACR,QAAQ,IAAA,CAAA,MAAA;AAAA,IACR,MAAM,IAAA,CAAA,IAAA;AAAA,IACN,YAAU,IAAA,CAAA,OAAA;AAAA,IACV,iBAAe,IAAA,CAAA,YAAA;AAAA,IACf,eAAa,IAAA,CAAA;AAAA,GAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,WAAA,EAAA,YAAA,iBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,aAAA,CAAA,CAAA,KAAAD,aAAA,EAAA,EAIhBC,eAAA,CAUe,uBAAA,EAVfC,cAAA,CAUe,EAAA,GAAA,EAAA,CAAA,EAAA,EATL,IAAA,CAAA,KAAA,EAAK;AAAA,IACZ,OAAK,UAAY,IAAA,CAAA,QAAA,GAAQ,WAAA,EAAA,EAAA;AAAA,IACzB,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,WAAA,CAAY,MAAA,EAAM,OAAA,CAAA,CAAA;AAAA,IACzB,UAAA,EAAQ,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,WAAA,CAAY,MAAA,EAAM,UAAA,CAAA,CAAA;AAAA,IAC5B,aAAA,EAAW,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,WAAA,CAAY,MAAA,EAAM,aAAA,CAAA;AAAA,GAAA,CAAA,EAAA;AAAA,IAErB,UAAA,EAAUC,YACnB,MAA0B;AAAA,MAA1BC,cAAA,CAA0B,IAAA,CAAA,MAAA,EAAA,YAAA;AAAA,KAAA,CAAA;AAAA;;;;;;;;"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
var TableContext = require('../context/TableContext.js');
|
|
7
|
+
var util = require('../../utils/util.js');
|
|
8
|
+
var BodyTextCell = require('./BodyTextCell.js');
|
|
9
|
+
var BodyEditCell = require('./BodyEditCell.js');
|
|
10
|
+
var lodashUnified = require('lodash-unified');
|
|
11
|
+
|
|
12
|
+
var _sfc_main = vue.defineComponent({
|
|
13
|
+
inheritAttrs: false,
|
|
14
|
+
props: {
|
|
15
|
+
prefixCls: String,
|
|
16
|
+
rowIndex: { type: Number, required: true },
|
|
17
|
+
flattenRowIndex: { type: Number, required: true },
|
|
18
|
+
rowKey: { type: [Number, String] },
|
|
19
|
+
column: { type: Object, default: () => ({}) },
|
|
20
|
+
item: { type: Object, default: () => ({}) },
|
|
21
|
+
wrapText: { type: Boolean, default: false },
|
|
22
|
+
type: { type: String },
|
|
23
|
+
height: Number,
|
|
24
|
+
hasAppendNode: Boolean,
|
|
25
|
+
resizeObserver: { type: Object },
|
|
26
|
+
editRow: { type: Object },
|
|
27
|
+
calMaxHeight: Function,
|
|
28
|
+
editCellKeys: Array,
|
|
29
|
+
editableKeys: Array,
|
|
30
|
+
isRowEdit: Boolean,
|
|
31
|
+
tooltipOpen: Boolean,
|
|
32
|
+
getPopupContainer: Function,
|
|
33
|
+
onOpenEditor: Function,
|
|
34
|
+
onCloseEditor: Function,
|
|
35
|
+
onCellLeave: Function,
|
|
36
|
+
onMouseenter: Function
|
|
37
|
+
},
|
|
38
|
+
emits: ["mouseenter", "cellLeave"],
|
|
39
|
+
components: { BodyTextCell: BodyTextCell.default, BodyEditCell: BodyEditCell.default },
|
|
40
|
+
setup(props) {
|
|
41
|
+
const tableContext = TableContext.useInjectTable();
|
|
42
|
+
const isKeepEditMode = vue.computed(() => {
|
|
43
|
+
var _a;
|
|
44
|
+
return (_a = props.column.edit) == null ? void 0 : _a.keepEditMode;
|
|
45
|
+
});
|
|
46
|
+
const cellValue = vue.computed(
|
|
47
|
+
() => props.column.dataIndex ? lodashUnified.get(props.item, props.column.dataIndex) : void 0
|
|
48
|
+
);
|
|
49
|
+
const key = vue.computed(() => util.getCellKey(props.rowKey, props.column.columnKey));
|
|
50
|
+
const cellParams = vue.computed(() => ({
|
|
51
|
+
column: props.column,
|
|
52
|
+
record: props.isRowEdit ? props.editRow : props.item,
|
|
53
|
+
recordIndexs: tableContext.getIndexsByKey(props.rowKey),
|
|
54
|
+
value: cellValue.value
|
|
55
|
+
}));
|
|
56
|
+
const editable = vue.computed(() => {
|
|
57
|
+
var _a, _b, _c, _d;
|
|
58
|
+
if (!((_a = props.column.edit) == null ? void 0 : _a.component)) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
if (props.isRowEdit && !((_b = props.editableKeys) == null ? void 0 : _b.includes(props.rowKey))) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (!((_c = props.column.edit) == null ? void 0 : _c.editable)) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
const cellEditable = (_d = props.column.edit) == null ? void 0 : _d.editable(cellParams.value);
|
|
68
|
+
return cellEditable;
|
|
69
|
+
});
|
|
70
|
+
const isEditing = vue.computed(() => {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
if (props.isRowEdit) {
|
|
73
|
+
return editable.value && ((_a = props.editableKeys) == null ? void 0 : _a.includes(props.rowKey));
|
|
74
|
+
}
|
|
75
|
+
if (!editable.value) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
if (isKeepEditMode.value) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
if ((_b = props.editCellKeys) == null ? void 0 : _b.includes(key.value)) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
});
|
|
86
|
+
const editableTrigger = vue.computed(() => {
|
|
87
|
+
var _a;
|
|
88
|
+
let { editableTrigger: editableTrigger2 = ["click"] } = (_a = props.column.edit) != null ? _a : {};
|
|
89
|
+
editableTrigger2 = Array.isArray(editableTrigger2) ? editableTrigger2 : [editableTrigger2];
|
|
90
|
+
return editableTrigger2;
|
|
91
|
+
});
|
|
92
|
+
const onCellEvent = (e, trigger) => {
|
|
93
|
+
var _a;
|
|
94
|
+
if (editable.value && ((_a = editableTrigger.value) == null ? void 0 : _a.includes(trigger)) && !props.isRowEdit) {
|
|
95
|
+
openEditor();
|
|
96
|
+
closeEditor();
|
|
97
|
+
e.stopPropagation();
|
|
98
|
+
e.preventDefault();
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const openEditor = () => {
|
|
102
|
+
var _a, _b, _c, _d;
|
|
103
|
+
const oldValue = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, cellParams.value)) != null ? _c : cellValue.value;
|
|
104
|
+
(_d = props.onOpenEditor) == null ? void 0 : _d.call(props, key.value, { [key.value]: oldValue });
|
|
105
|
+
};
|
|
106
|
+
const closeEditor = () => {
|
|
107
|
+
var _a;
|
|
108
|
+
(_a = props.onCloseEditor) == null ? void 0 : _a.call(props, key.value);
|
|
109
|
+
};
|
|
110
|
+
vue.watch(key, () => {
|
|
111
|
+
var _a;
|
|
112
|
+
if (((_a = props.column.edit) == null ? void 0 : _a.defaultEditable) && !props.isRowEdit) {
|
|
113
|
+
openEditor();
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
vue.onMounted(() => {
|
|
117
|
+
var _a;
|
|
118
|
+
if (((_a = props.column.edit) == null ? void 0 : _a.defaultEditable) && !props.isRowEdit) {
|
|
119
|
+
openEditor();
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
return {
|
|
123
|
+
props,
|
|
124
|
+
key,
|
|
125
|
+
isEditing,
|
|
126
|
+
editable,
|
|
127
|
+
onCellEvent
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
exports.default = _sfc_main;
|
|
133
|
+
//# sourceMappingURL=BodyCell.vue2.js.map
|