pro-design-vue 1.3.21 → 1.3.22
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 +1181 -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 +1182 -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 +60 -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 +295 -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 +276 -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 +256 -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 +60 -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 +295 -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 +276 -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 +260 -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 +29 -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,64 @@ declare const drawerOrModalFormProps: () => {
|
|
|
5126
5194
|
};
|
|
5127
5195
|
name: StringConstructor;
|
|
5128
5196
|
};
|
|
5197
|
+
declare interface EditableCellConfig<T = DefaultRecordType> {
|
|
5198
|
+
/**
|
|
5199
|
+
* 除了点击非自身元素退出编辑态之外,还有哪些事件退出编辑态。示例:`abortEditOnEvent: ['onChange']`
|
|
5200
|
+
*/
|
|
5201
|
+
abortEditOnEvent?: string[];
|
|
5202
|
+
editableTrigger?: EditableTrigger | EditableTrigger[];
|
|
5203
|
+
/**
|
|
5204
|
+
* 组件定义,如:`Input` `Select`。对于完全自定义的组件(非组件库内的组件),组件需要支持 `value` 和 `onChange` ;如果还需要支持校验规则,则组件还需实现 `tips` 和 `status` 两个 API,实现规则可参考 `Input` 组件
|
|
5205
|
+
*/
|
|
5206
|
+
component?: any;
|
|
5207
|
+
/**
|
|
5208
|
+
* 单元格默认状态是否为编辑态
|
|
5209
|
+
* @default false
|
|
5210
|
+
*/
|
|
5211
|
+
defaultEditable?: boolean;
|
|
5212
|
+
/**
|
|
5213
|
+
* 设置当前列的单元格始终保持为编辑态
|
|
5214
|
+
* @default false
|
|
5215
|
+
*/
|
|
5216
|
+
keepEditMode?: boolean;
|
|
5217
|
+
/**
|
|
5218
|
+
* 是否可以编辑
|
|
5219
|
+
*/
|
|
5220
|
+
editable?: (context: EditableValueParams<T>) => boolean;
|
|
5221
|
+
valueParser?: ValueParserFunc<T>;
|
|
5222
|
+
valueGetter?: ValueGetterFunc<T>;
|
|
5223
|
+
valueSetter?: (params: EditableValueParams<T>) => boolean | Promise<any>;
|
|
5224
|
+
/**
|
|
5225
|
+
* 透传给编辑组件的事件,参数有({ row, rowIndex, col, colIndex, editedRow, updateEditedCellValue })。可以使用参数 `updateEditedCellValue` 更新当前单元格(或当前行任意编辑状态单元格)的值。<br/>更新当前单元格数据示例:`updateEditedCellValue(value)`;<br/>更新当前行编辑态数据示例:`updateEditedCellValue({ isUpdateCurrentRow: true, column_key: 'test' })`;<br/>更新其他行编辑态数据示例:`updateEditedCellValue({ rowValue: '124', column_key: 'test' })`
|
|
5226
|
+
*/
|
|
5227
|
+
on?: (context: EditableValueParams<T>) => {
|
|
5228
|
+
[eventName: string]: Function;
|
|
5229
|
+
};
|
|
5230
|
+
/**
|
|
5231
|
+
* 编辑完成后,退出编辑模式时触发
|
|
5232
|
+
*/
|
|
5233
|
+
onEdited?: (context: EditableValueParams<T>) => void;
|
|
5234
|
+
/**
|
|
5235
|
+
* 透传给组件 `edit.component` 的属性,可以使用 `updateEditedCellValue` 更新当前行任意编辑状态单元格的值
|
|
5236
|
+
*/
|
|
5237
|
+
props?: EditableCellProps<T>;
|
|
5238
|
+
/**
|
|
5239
|
+
* 校验规则
|
|
5240
|
+
*/
|
|
5241
|
+
rules?: EditableCellRules<T>;
|
|
5242
|
+
/**
|
|
5243
|
+
* 是否显示编辑图标
|
|
5244
|
+
* @default true
|
|
5245
|
+
*/
|
|
5246
|
+
/**
|
|
5247
|
+
* 触发校验的时机,有 2 种:退出编辑时和数据变化时
|
|
5248
|
+
* @default 'exit'
|
|
5249
|
+
*/
|
|
5250
|
+
validateTrigger?: "exit" | "change";
|
|
5251
|
+
}
|
|
5252
|
+
declare type EditableCellProps<T> = PlainObject | ((params: EditableValueParams<T>) => PlainObject);
|
|
5253
|
+
declare type EditableCellRules<T> = EditRule[] | ((params: EditableValueParams<T>) => EditRule[]);
|
|
5254
|
+
declare type EditableCellType<T> = (params: EditableValueParams<T>) => boolean;
|
|
5129
5255
|
declare type EditableTrigger = "click" | "dblClick" | "contextmenu";
|
|
5130
5256
|
declare interface EditableValueParams<RecordType = DefaultRecordType, TValue = any> {
|
|
5131
5257
|
value: TValue;
|
|
@@ -5133,11 +5259,74 @@ declare interface EditableValueParams<RecordType = DefaultRecordType, TValue = a
|
|
|
5133
5259
|
recordIndexs: number[];
|
|
5134
5260
|
column: ColumnType<RecordType>;
|
|
5135
5261
|
}
|
|
5262
|
+
declare interface EditRule {
|
|
5263
|
+
/**
|
|
5264
|
+
* 内置校验方法,校验值类型是否为布尔类型,示例:`{ boolean: true, message: '数据类型必须是布尔类型' }`
|
|
5265
|
+
*/
|
|
5266
|
+
boolean?: boolean;
|
|
5267
|
+
/**
|
|
5268
|
+
* 内置校验方法,校验值是否属于枚举值中的值。示例:`{ enum: ['primary', 'info', 'warning'], message: '值只能是 primary/info/warning 中的一种' }`
|
|
5269
|
+
*/
|
|
5270
|
+
enum?: Array<string>;
|
|
5271
|
+
/**
|
|
5272
|
+
* 内置校验方法,校验值是否为身份证号码,组件校验正则为 `/^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i`,示例:`{ idcard: true, message: '请输入正确的身份证号码' }`
|
|
5273
|
+
*/
|
|
5274
|
+
idcard?: boolean;
|
|
5275
|
+
/**
|
|
5276
|
+
* 内置校验方法,校验值固定长度,如:len: 10 表示值的字符长度只能等于 10 ,中文表示 2 个字符,英文为 1 个字符。示例:`{ len: 10, message: '内容长度不对' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length === 10, message: '内容文本长度只能是 10 个字' }`
|
|
5277
|
+
*/
|
|
5278
|
+
len?: number | boolean;
|
|
5279
|
+
/**
|
|
5280
|
+
* 内置校验方法,校验值最大长度,如:max: 100 表示值最多不能超过 100 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ max: 10, message: '内容超出' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length <= 10, message: '内容文本长度不能超过 10 个字' }`<br />如果数据类型数字(Number),则自动变为数字大小的比对
|
|
5281
|
+
*/
|
|
5282
|
+
max?: number | boolean;
|
|
5283
|
+
/**
|
|
5284
|
+
* 校验未通过时呈现的错误信息,值为空则不显示
|
|
5285
|
+
* @default ''
|
|
5286
|
+
*/
|
|
5287
|
+
message?: string;
|
|
5288
|
+
/**
|
|
5289
|
+
* 内置校验方法,校验值最小长度,如:min: 10 表示值最多不能少于 10 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ min: 10, message: '内容长度不够' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length >= 10, message: '内容文本长度至少为 10 个字' }`。<br />如果数据类型数字(Number),则自动变为数字大小的比对
|
|
5290
|
+
*/
|
|
5291
|
+
min?: number | boolean;
|
|
5292
|
+
/**
|
|
5293
|
+
* 内置校验方法,校验值是否为数字(1.2 、 1e5 都算数字),示例:`{ number: true, message: '请输入数字' }`
|
|
5294
|
+
*/
|
|
5295
|
+
number?: boolean;
|
|
5296
|
+
/**
|
|
5297
|
+
* 内置校验方法,校验值是否符合正则表达式匹配结果,示例:`{ pattern: /@qq.com/, message: '请输入 QQ 邮箱' }`
|
|
5298
|
+
*/
|
|
5299
|
+
pattern?: RegExp;
|
|
5300
|
+
/**
|
|
5301
|
+
* 内置校验方法,校验值是否已经填写。该值为 true,默认显示必填标记,可通过设置 `requiredMark: false` 隐藏必填标记
|
|
5302
|
+
*/
|
|
5303
|
+
required?: boolean;
|
|
5304
|
+
/**
|
|
5305
|
+
* 内置校验方法,校验值是否为手机号码,校验正则为 `/^1[3-9]\d{9}$/`,示例:`{ telnumber: true, message: '请输入正确的手机号码' }`
|
|
5306
|
+
*/
|
|
5307
|
+
telnumber?: boolean;
|
|
5308
|
+
/**
|
|
5309
|
+
* 校验未通过时呈现的错误信息类型,有 告警信息提示 和 错误信息提示 等两种
|
|
5310
|
+
* @default error
|
|
5311
|
+
*/
|
|
5312
|
+
type?: "error" | "warning";
|
|
5313
|
+
/**
|
|
5314
|
+
* 自定义校验规则,示例:`{ validator: (val) => val.length > 0, message: '请输入内容'}`
|
|
5315
|
+
*/
|
|
5316
|
+
validator?: CustomValidator;
|
|
5317
|
+
/**
|
|
5318
|
+
* 内置校验方法,校验值是否为空格。示例:`{ whitespace: true, message: '值不能为空' }`
|
|
5319
|
+
*/
|
|
5320
|
+
whitespace?: boolean;
|
|
5321
|
+
}
|
|
5136
5322
|
/** 内容区域的组件ID */
|
|
5137
5323
|
export declare const ELEMENT_ID_MAIN_CONTENT = "__pro_main_content";
|
|
5138
5324
|
export declare const enGBIntl: IntlType;
|
|
5139
5325
|
export declare type Entity = Record<string, any>;
|
|
5140
5326
|
export declare const enUSIntl: IntlType;
|
|
5327
|
+
declare type ErrorListObjectType = TableEditingCell & {
|
|
5328
|
+
errorList: AllValidateResult[];
|
|
5329
|
+
};
|
|
5141
5330
|
export declare const esESIntl: IntlType;
|
|
5142
5331
|
export declare type EventHandler = (...args: any[]) => void;
|
|
5143
5332
|
declare type ExpandedRowRender<ValueType> = (opt: {
|
|
@@ -5650,6 +5839,10 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
5650
5839
|
type: BooleanConstructor;
|
|
5651
5840
|
default: undefined;
|
|
5652
5841
|
};
|
|
5842
|
+
selectRowByClick: {
|
|
5843
|
+
type: BooleanConstructor;
|
|
5844
|
+
default: undefined;
|
|
5845
|
+
};
|
|
5653
5846
|
expandIcon: {
|
|
5654
5847
|
type: PropType<RenderExpandIcon<T>>;
|
|
5655
5848
|
default: undefined;
|
|
@@ -5721,6 +5914,14 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
5721
5914
|
}) => Record<string, any>>;
|
|
5722
5915
|
default: () => {};
|
|
5723
5916
|
};
|
|
5917
|
+
editableKeys: {
|
|
5918
|
+
type: PropType<ProTableKey[]>;
|
|
5919
|
+
default: undefined;
|
|
5920
|
+
};
|
|
5921
|
+
rowEditable: {
|
|
5922
|
+
type: PropType<RowEditableConfig<T>>;
|
|
5923
|
+
default: undefined;
|
|
5924
|
+
};
|
|
5724
5925
|
showHeader: {
|
|
5725
5926
|
type: BooleanConstructor;
|
|
5726
5927
|
default: boolean;
|
|
@@ -5891,6 +6092,9 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
5891
6092
|
type: BooleanConstructor;
|
|
5892
6093
|
default: undefined;
|
|
5893
6094
|
};
|
|
6095
|
+
editableCellState: {
|
|
6096
|
+
type: PropType<EditableCellType<T>>;
|
|
6097
|
+
};
|
|
5894
6098
|
paginationSticky: {
|
|
5895
6099
|
type: PropType<boolean | BottomSticky>;
|
|
5896
6100
|
default: boolean;
|
|
@@ -5944,6 +6148,15 @@ declare class Helper<T extends DefaultRecordType> {
|
|
|
5944
6148
|
type: PropType<(opt: CellRenderArgs) => void>;
|
|
5945
6149
|
default: undefined;
|
|
5946
6150
|
};
|
|
6151
|
+
onDataChange: {
|
|
6152
|
+
type: PropType<(dataSource: T[]) => void>;
|
|
6153
|
+
};
|
|
6154
|
+
onRowValidate: {
|
|
6155
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
6156
|
+
};
|
|
6157
|
+
onValidate: {
|
|
6158
|
+
type: PropType<(TablePromiseErrorData: any) => void>;
|
|
6159
|
+
};
|
|
5947
6160
|
"onUpdate:pagination": {
|
|
5948
6161
|
type: PropType<(info: ProTablePaginationConfig) => void>;
|
|
5949
6162
|
};
|
|
@@ -6124,6 +6337,9 @@ declare interface PaginationProps {
|
|
|
6124
6337
|
role?: string;
|
|
6125
6338
|
showLessItems?: boolean;
|
|
6126
6339
|
}
|
|
6340
|
+
declare interface PlainObject {
|
|
6341
|
+
[key: string]: any;
|
|
6342
|
+
}
|
|
6127
6343
|
export declare const plPLIntl: IntlType;
|
|
6128
6344
|
export declare const ProButton: SFCWithInstall<DefineComponent<ExtractPropTypes<{
|
|
6129
6345
|
type: PropType<ButtonProps["type"]>;
|
|
@@ -6388,6 +6604,7 @@ export declare interface ProConfigProviderProps extends Omit<ConfigProviderProps
|
|
|
6388
6604
|
cardBordered?: Bordered;
|
|
6389
6605
|
childrenColumnName?: string;
|
|
6390
6606
|
expandRowByClick?: boolean;
|
|
6607
|
+
selectRowByClick?: boolean;
|
|
6391
6608
|
rowKey?: string;
|
|
6392
6609
|
size?: ProTableDensitySize;
|
|
6393
6610
|
expandIconType?: ExpandIconType;
|
|
@@ -7075,6 +7292,12 @@ export declare interface ProTableExposeType {
|
|
|
7075
7292
|
calcTableHeight: () => Promise<void>;
|
|
7076
7293
|
formSearchSubmit: () => void;
|
|
7077
7294
|
getSearchParams: () => Record<string, any>;
|
|
7295
|
+
validateRowData: (rowValue: any) => Promise<TablePromiseErrorData>;
|
|
7296
|
+
validateTableData: () => Promise<TablePromiseErrorData>;
|
|
7297
|
+
addEditRecord: (recordValue?: any, options?: AddLineOptions) => false | undefined;
|
|
7298
|
+
startEditable: (recordKey: ProTableKey, recordValue?: any) => boolean;
|
|
7299
|
+
cancelEditable: (recordKey: ProTableKey) => boolean;
|
|
7300
|
+
saveEditable: (recordKey: ProTableKey) => Promise<boolean>;
|
|
7078
7301
|
}
|
|
7079
7302
|
export declare type ProTableInstance = InstanceType<typeof _default_17> & ProTableExposeType;
|
|
7080
7303
|
export declare type ProTableKey = string | number;
|
|
@@ -10517,6 +10740,34 @@ declare interface RowDragGhostArg<RecordT, ColumnT> {
|
|
|
10517
10740
|
preTargetInfo: DragRowsHandleInfo | null;
|
|
10518
10741
|
nextTargetInfo: DragRowsHandleInfo | null;
|
|
10519
10742
|
}
|
|
10743
|
+
declare type RowEditableConfig<DataType> = {
|
|
10744
|
+
/**
|
|
10745
|
+
* @type single | multiple
|
|
10746
|
+
* @name 编辑的类型,支持单选和多选
|
|
10747
|
+
*/
|
|
10748
|
+
type?: RowEditableType;
|
|
10749
|
+
/** @name 正在编辑的列 */
|
|
10750
|
+
editableKeys?: ProTableKey[];
|
|
10751
|
+
/** 只能编辑一行的的提示 */
|
|
10752
|
+
onlyOneLineEditorAlertMessage?: string;
|
|
10753
|
+
/** 同时只能新增一行的提示 */
|
|
10754
|
+
onlyAddOneLineAlertMessage?: string | false;
|
|
10755
|
+
/** 正在编辑的列修改的时候 */
|
|
10756
|
+
onChange?: (editableKeys: ProTableKey[], editableRows: DataType[] | DataType) => void;
|
|
10757
|
+
/** 行保存的时候 */
|
|
10758
|
+
onSave?: (
|
|
10759
|
+
/** 行 id,一般是唯一id */
|
|
10760
|
+
key: ProTableKey,
|
|
10761
|
+
/** 当前修改的行的值 */
|
|
10762
|
+
record: DataType & {
|
|
10763
|
+
index?: number;
|
|
10764
|
+
},
|
|
10765
|
+
/** 原始值,可以用于判断是否修改 */
|
|
10766
|
+
originRow: DataType & {
|
|
10767
|
+
index?: number;
|
|
10768
|
+
}) => Promise<any | void> | any | void;
|
|
10769
|
+
};
|
|
10770
|
+
declare type RowEditableType = "single" | "multiple";
|
|
10520
10771
|
export declare type RowHeight = ((p: Record<any, any>, isExpandRow: boolean, baseHeight: number) => number | undefined) | number;
|
|
10521
10772
|
declare type RowSelectionType = "checkbox" | "radio";
|
|
10522
10773
|
export declare const ruRUIntl: IntlType;
|
|
@@ -10809,6 +11060,18 @@ declare interface TableCurrentDataSource<RecordType = DefaultRecordType> {
|
|
|
10809
11060
|
currentDataSource: RecordType[];
|
|
10810
11061
|
action: TableAction;
|
|
10811
11062
|
}
|
|
11063
|
+
declare type TableEditingCell<RecordType = DefaultRecordType> = {
|
|
11064
|
+
recordIndexs: number[];
|
|
11065
|
+
column: ColumnType<RecordType>;
|
|
11066
|
+
rowKey: ProTableKey;
|
|
11067
|
+
originRecord: RecordType;
|
|
11068
|
+
rowIndex: number;
|
|
11069
|
+
columnKey: ProTableKey;
|
|
11070
|
+
validateEdit: () => Promise<true | AllValidateResult[]>;
|
|
11071
|
+
};
|
|
11072
|
+
declare type TableErrorListMap = {
|
|
11073
|
+
[key: string]: AllValidateResult[];
|
|
11074
|
+
};
|
|
10812
11075
|
declare interface TableLocale {
|
|
10813
11076
|
filterTitle?: string;
|
|
10814
11077
|
filterConfirm?: any;
|
|
@@ -10827,6 +11090,11 @@ declare interface TableLocale {
|
|
|
10827
11090
|
cancelSort?: string;
|
|
10828
11091
|
}
|
|
10829
11092
|
declare type TablePaginationPosition = "topLeft" | "topCenter" | "topRight" | "bottomLeft" | "bottomCenter" | "bottomRight";
|
|
11093
|
+
declare interface TablePromiseErrorData {
|
|
11094
|
+
errors: ErrorListObjectType[];
|
|
11095
|
+
errorMap: TableErrorListMap;
|
|
11096
|
+
data?: DefaultRecordType[];
|
|
11097
|
+
}
|
|
10830
11098
|
export declare type Theme = "default" | "custom";
|
|
10831
11099
|
export declare type ThemeModeType = "auto" | "dark" | "light";
|
|
10832
11100
|
declare type ThemeType = "light" | "dark";
|
|
@@ -10906,11 +11174,14 @@ export declare function useState<T, R = Ref<T>>(defaultStateValue?: T | (() => T
|
|
|
10906
11174
|
(val: T) => void
|
|
10907
11175
|
];
|
|
10908
11176
|
export declare const uzUZIntl: IntlType;
|
|
11177
|
+
declare interface ValidateResultType extends EditRule {
|
|
11178
|
+
result: boolean;
|
|
11179
|
+
}
|
|
10909
11180
|
declare interface ValueGetterFunc<T = any, TValue = any> {
|
|
10910
11181
|
(params: EditableValueParams<T, TValue>): string | null | undefined;
|
|
10911
11182
|
}
|
|
10912
11183
|
declare interface ValueParserFunc<T = any, TValue = any> {
|
|
10913
|
-
(params:
|
|
11184
|
+
(params: EditableValueParams<T, TValue>): TValue | null | undefined;
|
|
10914
11185
|
}
|
|
10915
11186
|
declare interface ValueParserParams<RecordType = DefaultRecordType, TValue = any> {
|
|
10916
11187
|
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
|