pro-design-vue 1.3.20 → 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 +1203 -1588
- 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 +1204 -1589
- package/es/components/config-provider/src/typing.d.ts +3 -1
- package/es/components/table/src/components/Body/Body.vue.d.ts +270 -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/BodyExtraCell.vue.d.ts +6 -1
- package/es/components/table/src/components/Body/BodyRow.vue.d.ts +270 -15
- package/es/components/table/src/components/Body/BodyRows.vue.d.ts +270 -15
- package/es/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
- package/es/components/table/src/components/ExpandIcon.vue.d.ts +3 -0
- package/es/components/table/src/components/InteralTable.vue.d.ts +332 -19
- package/es/components/table/src/components/Table.d.ts +60 -0
- package/es/components/table/src/components/context/TableContext.d.ts +6 -1
- package/es/components/table/src/components/interface.d.ts +308 -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 +291 -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/BodyExtraCell.vue.mjs +2 -1
- package/es/packages/components/table/src/components/Body/BodyExtraCell.vue.mjs.map +1 -1
- package/es/packages/components/table/src/components/Body/BodyExtraCell.vue2.mjs +1 -0
- package/es/packages/components/table/src/components/Body/BodyExtraCell.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs +66 -9
- 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 +26 -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/ExpandIcon.vue.mjs.map +1 -1
- package/es/packages/components/table/src/components/ExpandIcon.vue2.mjs +4 -2
- package/es/packages/components/table/src/components/ExpandIcon.vue2.mjs.map +1 -1
- 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 +43 -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 +28 -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 +3 -1
- package/lib/components/table/src/components/Body/Body.vue.d.ts +270 -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/BodyExtraCell.vue.d.ts +6 -1
- package/lib/components/table/src/components/Body/BodyRow.vue.d.ts +270 -15
- package/lib/components/table/src/components/Body/BodyRows.vue.d.ts +270 -15
- package/lib/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
- package/lib/components/table/src/components/ExpandIcon.vue.d.ts +3 -0
- package/lib/components/table/src/components/InteralTable.vue.d.ts +332 -19
- package/lib/components/table/src/components/Table.d.ts +60 -0
- package/lib/components/table/src/components/context/TableContext.d.ts +6 -1
- package/lib/components/table/src/components/interface.d.ts +308 -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 +291 -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/BodyExtraCell.vue.js +2 -1
- package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue.js.map +1 -1
- package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue2.js +1 -0
- package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue2.js.map +1 -1
- package/lib/packages/components/table/src/components/Body/BodyRow.vue.js +66 -9
- 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 +24 -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/ExpandIcon.vue.js.map +1 -1
- package/lib/packages/components/table/src/components/ExpandIcon.vue2.js +4 -2
- package/lib/packages/components/table/src/components/ExpandIcon.vue2.js.map +1 -1
- 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 +43 -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 +28 -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 +78 -25
- 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
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { defineComponent, computed, watch, onMounted } from 'vue';
|
|
2
|
+
import { useInjectTable } from '../context/TableContext.mjs';
|
|
3
|
+
import { getCellKey } from '../../utils/util.mjs';
|
|
4
|
+
import BodyCell from './BodyTextCell.mjs';
|
|
5
|
+
import BodyEditCell from './BodyEditCell.mjs';
|
|
6
|
+
import { get } from 'lodash-unified';
|
|
7
|
+
|
|
8
|
+
var _sfc_main = defineComponent({
|
|
9
|
+
inheritAttrs: false,
|
|
10
|
+
props: {
|
|
11
|
+
prefixCls: String,
|
|
12
|
+
rowIndex: { type: Number, required: true },
|
|
13
|
+
flattenRowIndex: { type: Number, required: true },
|
|
14
|
+
rowKey: { type: [Number, String] },
|
|
15
|
+
column: { type: Object, default: () => ({}) },
|
|
16
|
+
item: { type: Object, default: () => ({}) },
|
|
17
|
+
wrapText: { type: Boolean, default: false },
|
|
18
|
+
type: { type: String },
|
|
19
|
+
height: Number,
|
|
20
|
+
hasAppendNode: Boolean,
|
|
21
|
+
resizeObserver: { type: Object },
|
|
22
|
+
editRow: { type: Object },
|
|
23
|
+
calMaxHeight: Function,
|
|
24
|
+
editCellKeys: Array,
|
|
25
|
+
editableKeys: Array,
|
|
26
|
+
isRowEdit: Boolean,
|
|
27
|
+
tooltipOpen: Boolean,
|
|
28
|
+
getPopupContainer: Function,
|
|
29
|
+
onOpenEditor: Function,
|
|
30
|
+
onCloseEditor: Function,
|
|
31
|
+
onCellLeave: Function,
|
|
32
|
+
onMouseenter: Function
|
|
33
|
+
},
|
|
34
|
+
emits: ["mouseenter", "cellLeave"],
|
|
35
|
+
components: { BodyTextCell: BodyCell, BodyEditCell },
|
|
36
|
+
setup(props) {
|
|
37
|
+
const tableContext = useInjectTable();
|
|
38
|
+
const isKeepEditMode = computed(() => {
|
|
39
|
+
var _a;
|
|
40
|
+
return (_a = props.column.edit) == null ? void 0 : _a.keepEditMode;
|
|
41
|
+
});
|
|
42
|
+
const cellValue = computed(
|
|
43
|
+
() => props.column.dataIndex ? get(props.item, props.column.dataIndex) : void 0
|
|
44
|
+
);
|
|
45
|
+
const key = computed(() => getCellKey(props.rowKey, props.column.columnKey));
|
|
46
|
+
const cellParams = computed(() => ({
|
|
47
|
+
column: props.column,
|
|
48
|
+
record: props.isRowEdit ? props.editRow : props.item,
|
|
49
|
+
recordIndexs: tableContext.getIndexsByKey(props.rowKey),
|
|
50
|
+
value: cellValue.value
|
|
51
|
+
}));
|
|
52
|
+
const editable = computed(() => {
|
|
53
|
+
var _a, _b, _c, _d;
|
|
54
|
+
if (!((_a = props.column.edit) == null ? void 0 : _a.component)) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
if (props.isRowEdit && !((_b = props.editableKeys) == null ? void 0 : _b.includes(props.rowKey))) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
if (!((_c = props.column.edit) == null ? void 0 : _c.editable)) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
const cellEditable = (_d = props.column.edit) == null ? void 0 : _d.editable(cellParams.value);
|
|
64
|
+
return cellEditable;
|
|
65
|
+
});
|
|
66
|
+
const isEditing = computed(() => {
|
|
67
|
+
var _a, _b;
|
|
68
|
+
if (props.isRowEdit) {
|
|
69
|
+
return editable.value && ((_a = props.editableKeys) == null ? void 0 : _a.includes(props.rowKey));
|
|
70
|
+
}
|
|
71
|
+
if (!editable.value) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
if (isKeepEditMode.value) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
if ((_b = props.editCellKeys) == null ? void 0 : _b.includes(key.value)) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
});
|
|
82
|
+
const editableTrigger = computed(() => {
|
|
83
|
+
var _a;
|
|
84
|
+
let { editableTrigger: editableTrigger2 = ["click"] } = (_a = props.column.edit) != null ? _a : {};
|
|
85
|
+
editableTrigger2 = Array.isArray(editableTrigger2) ? editableTrigger2 : [editableTrigger2];
|
|
86
|
+
return editableTrigger2;
|
|
87
|
+
});
|
|
88
|
+
const onCellEvent = (e, trigger) => {
|
|
89
|
+
var _a;
|
|
90
|
+
if (editable.value && ((_a = editableTrigger.value) == null ? void 0 : _a.includes(trigger)) && !props.isRowEdit) {
|
|
91
|
+
openEditor();
|
|
92
|
+
closeEditor();
|
|
93
|
+
e.stopPropagation();
|
|
94
|
+
e.preventDefault();
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
const openEditor = () => {
|
|
98
|
+
var _a, _b, _c, _d;
|
|
99
|
+
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;
|
|
100
|
+
(_d = props.onOpenEditor) == null ? void 0 : _d.call(props, key.value, { [key.value]: oldValue });
|
|
101
|
+
};
|
|
102
|
+
const closeEditor = () => {
|
|
103
|
+
var _a;
|
|
104
|
+
(_a = props.onCloseEditor) == null ? void 0 : _a.call(props, key.value);
|
|
105
|
+
};
|
|
106
|
+
watch(key, () => {
|
|
107
|
+
var _a;
|
|
108
|
+
if (((_a = props.column.edit) == null ? void 0 : _a.defaultEditable) && !props.isRowEdit) {
|
|
109
|
+
openEditor();
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
onMounted(() => {
|
|
113
|
+
var _a;
|
|
114
|
+
if (((_a = props.column.edit) == null ? void 0 : _a.defaultEditable) && !props.isRowEdit) {
|
|
115
|
+
openEditor();
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return {
|
|
119
|
+
props,
|
|
120
|
+
key,
|
|
121
|
+
isEditing,
|
|
122
|
+
editable,
|
|
123
|
+
onCellEvent
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
export { _sfc_main as default };
|
|
129
|
+
//# sourceMappingURL=BodyCell.vue2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BodyCell.vue2.mjs","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":["BodyTextCell","editableTrigger"],"mappings":"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"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { defineComponent, computed, ref, watch, onMounted, onUnmounted, createVNode, mergeProps, triggerRef } from 'vue';
|
|
2
|
+
import { useInjectTable } from '../context/TableContext.mjs';
|
|
3
|
+
import { Popover } from 'ant-design-vue';
|
|
4
|
+
import { useInjectLevel } from '../../hooks/useLevel.mjs';
|
|
5
|
+
import { CloseCircleFilled } from '@ant-design/icons-vue';
|
|
6
|
+
import { useEditInject } from '../../hooks/useEdit.mjs';
|
|
7
|
+
import { validate } from '../../utils/form-model.mjs';
|
|
8
|
+
import { get, set } from 'lodash-unified';
|
|
9
|
+
import { runFunction } from '../../../../../utils/run-function.mjs';
|
|
10
|
+
import { isFunction } from '../../../../../utils/validate.mjs';
|
|
11
|
+
|
|
12
|
+
var BodyEditCell = /* @__PURE__ */ defineComponent({
|
|
13
|
+
inheritAttrs: false,
|
|
14
|
+
props: {
|
|
15
|
+
prefixCls: String,
|
|
16
|
+
rowIndex: {
|
|
17
|
+
type: Number,
|
|
18
|
+
required: true
|
|
19
|
+
},
|
|
20
|
+
flattenRowIndex: {
|
|
21
|
+
type: Number,
|
|
22
|
+
required: true
|
|
23
|
+
},
|
|
24
|
+
rowKey: {
|
|
25
|
+
type: [Number, String]
|
|
26
|
+
},
|
|
27
|
+
column: {
|
|
28
|
+
type: Object,
|
|
29
|
+
default: () => ({})
|
|
30
|
+
},
|
|
31
|
+
item: {
|
|
32
|
+
type: Object,
|
|
33
|
+
default: () => ({})
|
|
34
|
+
},
|
|
35
|
+
isRowEdit: Boolean,
|
|
36
|
+
editRow: {
|
|
37
|
+
type: Object
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
emits: ["closeEditor", "keydown"],
|
|
41
|
+
setup(props) {
|
|
42
|
+
const tableContext = useInjectTable();
|
|
43
|
+
const level = useInjectLevel();
|
|
44
|
+
const columnKey = computed(() => props.column.columnKey);
|
|
45
|
+
const recordIndexs = computed(() => tableContext.getIndexsByKey(props.rowKey));
|
|
46
|
+
const childrenColumnName = computed(() => tableContext.props.childrenColumnName || "children");
|
|
47
|
+
const errorList = ref();
|
|
48
|
+
const {
|
|
49
|
+
editRowsMap,
|
|
50
|
+
setEditingCell
|
|
51
|
+
} = useEditInject();
|
|
52
|
+
const cellValue = computed(() => props.column.dataIndex ? get(!props.isRowEdit ? props.item : props.editRow, props.column.dataIndex) : void 0);
|
|
53
|
+
const cellRender = computed(() => {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
return ((_b = (_a = tableContext.allCellProps.value) == null ? void 0 : _a[props.rowKey]) == null ? void 0 : _b[props.column.columnKey]) || {};
|
|
56
|
+
});
|
|
57
|
+
const cellProps = computed(() => cellRender.value.props || {});
|
|
58
|
+
const cellRowSpan = computed(() => cellProps.value.rowSpan);
|
|
59
|
+
const sorterState = computed(() => tableContext.sorterStates.value.find(({
|
|
60
|
+
key
|
|
61
|
+
}) => key === columnKey.value));
|
|
62
|
+
const sorterOrder = computed(() => {
|
|
63
|
+
var _a;
|
|
64
|
+
return sorterState.value ? (_a = sorterState.value) == null ? void 0 : _a.sortOrder : null;
|
|
65
|
+
});
|
|
66
|
+
const cellClass = computed(() => ({
|
|
67
|
+
[`${props.prefixCls}-cell`]: true,
|
|
68
|
+
[`${props.prefixCls}-first-cell`]: props.column.columnIndex === 0,
|
|
69
|
+
[`${props.prefixCls}-body-cell`]: true,
|
|
70
|
+
[`${props.prefixCls}-cell-multi`]: cellRowSpan.value > 1,
|
|
71
|
+
[`${props.prefixCls}-cell-hidden`]: cellRowSpan.value === 0,
|
|
72
|
+
[`${props.prefixCls}-column-sort`]: sorterOrder.value
|
|
73
|
+
}));
|
|
74
|
+
const rules = computed(() => {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
return (_b = runFunction((_a = props.column.edit) == null ? void 0 : _a.rules, {
|
|
77
|
+
column: props.column,
|
|
78
|
+
record: props.isRowEdit ? props.editRow : props.item,
|
|
79
|
+
recordIndexs: recordIndexs.value,
|
|
80
|
+
newValue: cellValue.value
|
|
81
|
+
})) != null ? _b : [];
|
|
82
|
+
});
|
|
83
|
+
const validateEnabled = computed(() => rules.value.length > 0);
|
|
84
|
+
const editValue = ref();
|
|
85
|
+
const cellParams = computed(() => ({
|
|
86
|
+
column: props.column,
|
|
87
|
+
record: !props.isRowEdit ? props.item : props.editRow,
|
|
88
|
+
recordIndexs: recordIndexs.value,
|
|
89
|
+
value: editValue.value
|
|
90
|
+
}));
|
|
91
|
+
const editOnListeners = computed(() => {
|
|
92
|
+
var _a, _b;
|
|
93
|
+
return ((_b = (_a = props.column.edit) == null ? void 0 : _a.on) == null ? void 0 : _b.call(_a, {
|
|
94
|
+
...cellParams.value
|
|
95
|
+
})) || {};
|
|
96
|
+
});
|
|
97
|
+
const editProps = computed(() => {
|
|
98
|
+
const {
|
|
99
|
+
edit = {}
|
|
100
|
+
} = props.column;
|
|
101
|
+
return isFunction(edit.props) ? edit.props(cellParams.value) : {
|
|
102
|
+
...edit.props
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
const componentProps = computed(() => {
|
|
106
|
+
var _a;
|
|
107
|
+
const {
|
|
108
|
+
edit
|
|
109
|
+
} = props.column;
|
|
110
|
+
if (!edit) return {};
|
|
111
|
+
const tmpProps = {
|
|
112
|
+
...editProps.value
|
|
113
|
+
};
|
|
114
|
+
delete tmpProps.onChange;
|
|
115
|
+
delete tmpProps.value;
|
|
116
|
+
(_a = edit.abortEditOnEvent) == null ? void 0 : _a.forEach((item) => {
|
|
117
|
+
delete tmpProps[item];
|
|
118
|
+
});
|
|
119
|
+
return tmpProps;
|
|
120
|
+
});
|
|
121
|
+
const validateEdit = () => {
|
|
122
|
+
return new Promise((resolve) => {
|
|
123
|
+
if (!validateEnabled.value) {
|
|
124
|
+
resolve(true);
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
validate(editValue.value, rules.value).then((result) => {
|
|
128
|
+
const list = result == null ? void 0 : result.filter((t) => !t.result);
|
|
129
|
+
if (!list || !list.length) {
|
|
130
|
+
errorList.value = [];
|
|
131
|
+
resolve(true);
|
|
132
|
+
} else {
|
|
133
|
+
errorList.value = list;
|
|
134
|
+
resolve(list);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
const onEditChange = (val, ...args) => {
|
|
140
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
141
|
+
const params = {
|
|
142
|
+
column: props.column,
|
|
143
|
+
record: props.isRowEdit ? props.editRow : props.item,
|
|
144
|
+
recordIndexs: recordIndexs.value,
|
|
145
|
+
newValue: cellValue.value
|
|
146
|
+
};
|
|
147
|
+
const value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueParser) == null ? void 0 : _b.call(_a, params)) != null ? _c : editValue.value;
|
|
148
|
+
const valueSetter = (_d = props.column.edit) == null ? void 0 : _d.valueSetter;
|
|
149
|
+
if (valueSetter) {
|
|
150
|
+
valueSetter(params);
|
|
151
|
+
} else {
|
|
152
|
+
(_f = (_e = editProps.value) == null ? void 0 : _e.onChange) == null ? void 0 : _f.call(_e, val, ...args);
|
|
153
|
+
(_h = (_g = editOnListeners.value) == null ? void 0 : _g.onChange) == null ? void 0 : _h.call(_g, params);
|
|
154
|
+
if (props.isRowEdit) {
|
|
155
|
+
const record = {
|
|
156
|
+
...props.editRow
|
|
157
|
+
};
|
|
158
|
+
set(record, props.column.dataIndex, value);
|
|
159
|
+
editRowsMap.value[props.rowKey] = record;
|
|
160
|
+
triggerRef(editRowsMap);
|
|
161
|
+
} else {
|
|
162
|
+
let record = {};
|
|
163
|
+
let dataSource = tableContext.rawData.value || [];
|
|
164
|
+
recordIndexs.value.forEach((index) => {
|
|
165
|
+
record = dataSource[index];
|
|
166
|
+
dataSource = record[childrenColumnName.value] || [];
|
|
167
|
+
});
|
|
168
|
+
set(record, props.column.dataIndex, value);
|
|
169
|
+
triggerRef(tableContext.rawData);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
validateEdit();
|
|
173
|
+
};
|
|
174
|
+
watch(cellValue, (value) => {
|
|
175
|
+
var _a, _b, _c;
|
|
176
|
+
editValue.value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, cellParams.value)) != null ? _c : value;
|
|
177
|
+
}, {
|
|
178
|
+
immediate: true
|
|
179
|
+
});
|
|
180
|
+
onMounted(() => {
|
|
181
|
+
setEditingCell({
|
|
182
|
+
recordIndexs: recordIndexs.value,
|
|
183
|
+
column: props.column,
|
|
184
|
+
rowKey: props.rowKey,
|
|
185
|
+
originRecord: props.item,
|
|
186
|
+
rowIndex: props.rowIndex,
|
|
187
|
+
columnKey: props.column.columnKey,
|
|
188
|
+
validateEdit
|
|
189
|
+
}, true);
|
|
190
|
+
});
|
|
191
|
+
onUnmounted(() => {
|
|
192
|
+
var _a, _b, _c;
|
|
193
|
+
setEditingCell({
|
|
194
|
+
recordIndexs: recordIndexs.value,
|
|
195
|
+
column: props.column,
|
|
196
|
+
rowKey: props.rowKey,
|
|
197
|
+
originRecord: props.item,
|
|
198
|
+
rowIndex: props.rowIndex,
|
|
199
|
+
columnKey: props.column.columnKey,
|
|
200
|
+
validateEdit
|
|
201
|
+
}, false);
|
|
202
|
+
(_c = (_b = (_a = props.column) == null ? void 0 : _a.edit) == null ? void 0 : _b.onEdited) == null ? void 0 : _c.call(_b, {
|
|
203
|
+
column: props.column,
|
|
204
|
+
record: props.isRowEdit ? props.editRow : props.item,
|
|
205
|
+
recordIndexs: recordIndexs.value,
|
|
206
|
+
value: cellValue.value
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
return () => {
|
|
210
|
+
var _a, _b, _c;
|
|
211
|
+
const Component = (_a = props.column.edit) == null ? void 0 : _a.component;
|
|
212
|
+
const errorMessage = (_c = (_b = errorList.value) == null ? void 0 : _b[0]) == null ? void 0 : _c.message;
|
|
213
|
+
return createVNode("div", mergeProps(cellProps.value, {
|
|
214
|
+
"class": cellClass.value,
|
|
215
|
+
"tabindex": "-1",
|
|
216
|
+
"role": "cell",
|
|
217
|
+
"data-column-key": columnKey.value,
|
|
218
|
+
"data-level": level,
|
|
219
|
+
"aria-selected": "true",
|
|
220
|
+
"onClick": (e) => {
|
|
221
|
+
e.stopPropagation();
|
|
222
|
+
}
|
|
223
|
+
}), [createVNode("div", {
|
|
224
|
+
"class": `${props.prefixCls}-cell-content`,
|
|
225
|
+
"style": "width: 100%; position:relative"
|
|
226
|
+
}, [createVNode(Component, mergeProps({
|
|
227
|
+
"style": "width: 100%",
|
|
228
|
+
"status": errorMessage ? "error" : void 0,
|
|
229
|
+
"value": editValue.value,
|
|
230
|
+
"onUpdate:value": ($event) => editValue.value = $event,
|
|
231
|
+
"getPopupContainer": () => document.body
|
|
232
|
+
}, componentProps.value, {
|
|
233
|
+
"onChange": onEditChange
|
|
234
|
+
}), null), errorMessage && createVNode(Popover, {
|
|
235
|
+
"arrowPointAtCenter": true,
|
|
236
|
+
"placement": "topRight",
|
|
237
|
+
"getPopupContainer": () => document.body
|
|
238
|
+
}, {
|
|
239
|
+
default: () => [createVNode("span", {
|
|
240
|
+
"class": `${props.prefixCls}-cell-content-error`
|
|
241
|
+
}, [createVNode(CloseCircleFilled, null, null)])],
|
|
242
|
+
content: () => {
|
|
243
|
+
var _a2;
|
|
244
|
+
return createVNode("div", {
|
|
245
|
+
"class": `${props.prefixCls}-cell-content-error-message`
|
|
246
|
+
}, [(_a2 = errorList.value) == null ? void 0 : _a2.map((error) => createVNode("div", {
|
|
247
|
+
"key": error.message
|
|
248
|
+
}, [error.message]))]);
|
|
249
|
+
}
|
|
250
|
+
})])]);
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
export { BodyEditCell as default };
|
|
256
|
+
//# sourceMappingURL=BodyEditCell.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BodyEditCell.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyEditCell.tsx"],"sourcesContent":["/*\n * @Author: shen\n * @Date: 2025-11-27 10:42:18\n * @LastEditors: shen\n * @LastEditTime: 2025-12-02 16:12:31\n * @Description:\n */\nimport type { PropType } from 'vue'\nimport type { AllValidateResult, FinallyColumnType, Key } from '../interface'\n\nimport { defineComponent, ref, computed, watch, triggerRef, onMounted, onUnmounted } from 'vue'\nimport { set, isFunction, get, runFunction } from '@pro-design-vue/utils'\nimport { useInjectTable } from '../context/TableContext'\nimport { Popover } from 'ant-design-vue'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport { CloseCircleFilled } from '@ant-design/icons-vue'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { validate } from '../../utils/form-model'\n\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] as PropType<Key> },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n isRowEdit: Boolean as PropType<boolean>,\n editRow: { type: Object as PropType<any> },\n },\n emits: ['closeEditor', 'keydown'],\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const columnKey = computed(() => props.column!.columnKey)\n const recordIndexs = computed(() => tableContext.getIndexsByKey(props.rowKey!))\n const childrenColumnName = computed(() => tableContext.props.childrenColumnName || 'children')\n const errorList = ref<AllValidateResult[]>()\n const { editRowsMap, setEditingCell } = useEditInject()\n const cellValue = computed(() =>\n props.column!.dataIndex\n ? get(!props.isRowEdit ? props.item : props.editRow, props.column!.dataIndex)\n : undefined,\n )\n const cellRender = computed(\n () => tableContext.allCellProps.value?.[props.rowKey!]?.[props.column!.columnKey] || {},\n )\n const cellProps: any = computed(() => cellRender.value.props || {})\n const cellRowSpan = computed(() => cellProps.value.rowSpan!)\n\n const sorterState = computed(() =>\n tableContext.sorterStates.value.find(({ key }) => key === columnKey.value),\n )\n const sorterOrder = computed(() => (sorterState.value ? sorterState.value?.sortOrder : null))\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-first-cell`]: props.column!.columnIndex === 0,\n [`${props.prefixCls}-body-cell`]: true,\n [`${props.prefixCls}-cell-multi`]: cellRowSpan.value > 1,\n [`${props.prefixCls}-cell-hidden`]: cellRowSpan.value === 0,\n [`${props.prefixCls}-column-sort`]: sorterOrder.value,\n }))\n\n const rules = computed(() => {\n return (\n runFunction(props.column.edit?.rules, {\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: recordIndexs.value,\n newValue: cellValue.value,\n }) ?? []\n )\n })\n\n const validateEnabled = computed(() => rules.value.length > 0)\n\n const editValue = ref()\n const cellParams = computed(() => ({\n column: props.column,\n record: !props.isRowEdit ? props.item : props.editRow,\n recordIndexs: recordIndexs.value!,\n value: editValue.value,\n }))\n\n const editOnListeners = computed(() => {\n return props.column.edit?.on?.({ ...cellParams.value }) || {}\n })\n\n const editProps = computed(() => {\n const { edit = {} } = props.column\n return isFunction(edit.props) ? edit.props(cellParams.value) : { ...edit.props }\n })\n\n const componentProps = computed(() => {\n const { edit } = props.column\n if (!edit) return {}\n const tmpProps = { ...editProps.value }\n delete tmpProps.onChange\n delete tmpProps.value\n edit.abortEditOnEvent?.forEach((item) => {\n delete tmpProps[item]\n })\n return tmpProps\n })\n\n const validateEdit = (): Promise<true | AllValidateResult[]> => {\n return new Promise((resolve) => {\n if (!validateEnabled.value) {\n resolve(true)\n return true\n }\n validate(editValue.value, rules.value).then((result) => {\n const list = result?.filter((t) => !t.result)\n if (!list || !list.length) {\n errorList.value = []\n resolve(true)\n } else {\n errorList.value = list\n resolve(list)\n }\n })\n })\n }\n\n const onEditChange = (val: any, ...args: any) => {\n const params: any = {\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: recordIndexs.value,\n newValue: cellValue.value,\n }\n const value = props.column.edit?.valueParser?.(params) ?? editValue.value\n const valueSetter = props.column.edit?.valueSetter\n if (valueSetter) {\n valueSetter(params)\n } else {\n editProps.value?.onChange?.(val, ...args)\n editOnListeners.value?.onChange?.(params)\n if (props.isRowEdit) {\n const record = { ...props.editRow }\n set(record, props.column.dataIndex!, value)\n editRowsMap.value[props.rowKey!] = record\n triggerRef(editRowsMap)\n } else {\n let record: any = {}\n let dataSource = tableContext.rawData.value || []\n recordIndexs.value.forEach((index) => {\n record = dataSource[index]\n dataSource = record[childrenColumnName.value] || []\n })\n set(record, props.column.dataIndex!, value)\n triggerRef(tableContext.rawData)\n }\n }\n validateEdit()\n }\n\n watch(\n cellValue,\n (value) => {\n editValue.value = props.column.edit?.valueGetter?.(cellParams.value) ?? value\n },\n { immediate: true },\n )\n\n onMounted(() => {\n setEditingCell(\n {\n recordIndexs: recordIndexs.value,\n column: props.column,\n rowKey: props.rowKey!,\n originRecord: props.item,\n rowIndex: props.rowIndex,\n columnKey: props.column.columnKey!,\n validateEdit,\n },\n true,\n )\n })\n\n onUnmounted(() => {\n setEditingCell(\n {\n recordIndexs: recordIndexs.value,\n column: props.column,\n rowKey: props.rowKey!,\n originRecord: props.item,\n rowIndex: props.rowIndex,\n columnKey: props.column.columnKey!,\n validateEdit,\n },\n false,\n )\n props.column?.edit?.onEdited?.({\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: recordIndexs.value,\n value: cellValue.value,\n })\n })\n\n return () => {\n const Component = props.column.edit?.component\n const errorMessage = errorList.value?.[0]?.message\n return (\n <div\n {...cellProps.value}\n class={cellClass.value}\n tabindex=\"-1\"\n role=\"cell\"\n data-column-key={columnKey.value}\n data-level={level}\n aria-selected=\"true\"\n onClick={(e: MouseEvent) => {\n e.stopPropagation()\n }}\n >\n <div class={`${props.prefixCls}-cell-content`} style=\"width: 100%; position:relative\">\n <Component\n style=\"width: 100%\"\n status={errorMessage ? 'error' : undefined}\n v-model:value={editValue.value}\n getPopupContainer={() => document.body}\n {...componentProps.value}\n onChange={onEditChange}\n />\n {errorMessage && (\n <Popover\n arrowPointAtCenter\n placement=\"topRight\"\n getPopupContainer={() => document.body}\n v-slots={{\n content: () => (\n <div class={`${props.prefixCls}-cell-content-error-message`}>\n {errorList.value?.map((error) => (\n <div key={error.message}>{error.message}</div>\n ))}\n </div>\n ),\n }}\n >\n <span class={`${props.prefixCls}-cell-content-error`}>\n <CloseCircleFilled />\n </span>\n </Popover>\n )}\n </div>\n </div>\n )\n }\n },\n})\n"],"names":["inheritAttrs","props","prefixCls","String","rowIndex","type","Number","required","flattenRowIndex","rowKey","column","Object","default","item","isRowEdit","Boolean","editRow","emits","setup","tableContext","useInjectTable","level","useInjectLevel","columnKey","computed","recordIndexs","getIndexsByKey","childrenColumnName","errorList","ref","editRowsMap","setEditingCell","useEditInject","cellValue","dataIndex","get","undefined","cellRender","allCellProps","value","cellProps","cellRowSpan","rowSpan","sorterState","sorterStates","find","key","sorterOrder","sortOrder","cellClass","columnIndex","rules","runFunction","edit","record","newValue","validateEnabled","length","editValue","cellParams","editOnListeners","on","editProps","isFunction","componentProps","tmpProps","onChange","abortEditOnEvent","forEach","validateEdit","Promise","resolve","validate","then","result","list","filter","t","onEditChange","val","args","params","valueParser","valueSetter","set","triggerRef","dataSource","rawData","index","watch","valueGetter","immediate","onMounted","originRecord","onUnmounted","onEdited","Component","component","errorMessage","message","_createVNode","_mergeProps","e","stopPropagation","$event","getPopupContainer","document","body","Popover","CloseCircleFilled","content","_a","map","error"],"mappings":"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"}
|
|
@@ -56,11 +56,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
56
56
|
key: 1,
|
|
57
57
|
"prefix-cls": _ctx.prefixCls,
|
|
58
58
|
expandable: "",
|
|
59
|
+
expandIconType: _ctx.expandIconType,
|
|
59
60
|
expanded: _ctx.expanded,
|
|
60
61
|
record: _ctx.record,
|
|
61
62
|
disabled: !_ctx.supportExpand,
|
|
62
63
|
onExpand: _ctx.onInternalTriggerExpand
|
|
63
|
-
}, null, 8, ["prefix-cls", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
64
|
+
}, null, 8, ["prefix-cls", "expandIconType", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
64
65
|
renderSlot(_ctx.$slots, "draggable-handle", {}, () => [
|
|
65
66
|
createVNode(_component_MenuOutlined)
|
|
66
67
|
])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BodyExtraCell.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2023-12-22 10:31:47\n * @Description: \n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_mergeProps","_withModifiers","_openBlock","_Fragment","_createBlock","_renderSlot","_createVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BodyExtraCell.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 14:32:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n ExpandIconType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n expandIconType: String as PropType<ExpandIconType>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expandIconType=\"expandIconType\"\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_mergeProps","_withModifiers","_openBlock","_Fragment","_createBlock","_renderSlot","_createVNode"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BodyExtraCell.vue2.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2023-12-22 10:31:47\n * @Description: \n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BodyExtraCell.vue2.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 14:32:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n ExpandIconType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n expandIconType: String as PropType<ExpandIconType>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expandIconType=\"expandIconType\"\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
|