20260806224941
This commit is contained in:
1 parent
6baa339efa
commit
6938deef39
12 files changed
+367
-300
No files matched your search
@@ -19,6 +19,7 @@ const handledEventAttrs = new Set([
|
||||
"onDragEnd",
|
||||
"onDragend",
|
||||
"onRightClick",
|
||||
"onSelect",
|
||||
"onUpdate:expandedKeys",
|
||||
]);
|
||||
|
||||
@@ -35,6 +36,7 @@ const props = defineProps({
|
||||
expandedKeys: { type: Array, default: undefined },
|
||||
blockNode: { type: Boolean, default: true },
|
||||
virtual: { type: Boolean, default: true },
|
||||
showLine: { type: Boolean, default: false },
|
||||
draggable: { type: [Boolean, Function, Object], default: false },
|
||||
allowDrop: { type: Function, default: null },
|
||||
rootKey: { type: [String, Number], default: "__fms_tree_root__" },
|
||||
@@ -86,6 +88,7 @@ const emit = defineEmits([
|
||||
"dragOver",
|
||||
"dragEnd",
|
||||
"rightClick",
|
||||
"select",
|
||||
"update:expandedKeys",
|
||||
]);
|
||||
|
||||
@@ -121,7 +124,21 @@ function onMenuClick({ key }) {
|
||||
if (node) emit("menuClick", { key, node });
|
||||
}
|
||||
|
||||
const selectSuppress = ref(false);
|
||||
|
||||
function onSelect(keys, info) {
|
||||
// 点击有子节点的父节点时,阻止 a-tree 内部自动触发展开
|
||||
if (info?.node?.children?.length) {
|
||||
selectSuppress.value = true;
|
||||
}
|
||||
emit("select", keys, info);
|
||||
}
|
||||
|
||||
function onExpandedKeysChange(keys) {
|
||||
if (selectSuppress.value) {
|
||||
selectSuppress.value = false;
|
||||
return;
|
||||
}
|
||||
emit("update:expandedKeys", keys);
|
||||
}
|
||||
</script>
|
||||
@@ -141,10 +158,11 @@ function onExpandedKeysChange(keys) {
|
||||
:default-expanded-keys="[rootKey]"
|
||||
:block-node="blockNode"
|
||||
:virtual="effectiveVirtual"
|
||||
show-line
|
||||
:show-line="showLine"
|
||||
:draggable="draggable"
|
||||
:allow-drop="allowDrop"
|
||||
@right-click="onTreeRightClick"
|
||||
@select="onSelect"
|
||||
@drop="$emit('drop', $event)"
|
||||
@dragstart="$emit('dragStart', $event)"
|
||||
@dragenter="$emit('dragEnter', $event)"
|
||||
@@ -167,9 +185,10 @@ function onExpandedKeysChange(keys) {
|
||||
:default-expanded-keys="[rootKey]"
|
||||
:block-node="blockNode"
|
||||
:virtual="effectiveVirtual"
|
||||
show-line
|
||||
:show-line="showLine"
|
||||
:draggable="draggable"
|
||||
:allow-drop="allowDrop"
|
||||
@select="onSelect"
|
||||
@drop="$emit('drop', $event)"
|
||||
@dragstart="$emit('dragStart', $event)"
|
||||
@dragenter="$emit('dragEnter', $event)"
|
||||
|
||||
Reference in new issue
Block a user