关键在于必须设置tree属性:
- ref="treeRef"
- node-key="sucNormCode"
- highlight-current
- @node-contextmenu="rightClick"
- @node-click="handleTreeNodeClick"
以及
treeRef.value.setCurrentKey(data.sucNormCode);
<el-tree
class="filter-tree"
:data="state.data"
:props="state.treeProps"
:filter-node-method="filterNode"
ref="treeRef"
node-key="sucNormCode"
highlight-current
@node-contextmenu="rightClick"
@node-click="handleTreeNodeClick"
>
</el-tree>
const rightClick = (e, data, node, comp) => {
treeRef.value.setCurrentKey(data.sucNormCode);
// treeRef.value.setCurrentNode(data);
state.rightMenu = { top: e.pageY + "px", left: e.pageX + "px" };
state.tmDisplay = true;
state.tempRightClickData = data;
const self = state;
if (data.dataList && data.dataList.length === 0) {
// 叶子节点
state.showAddBtn = false;
state.showEditBtn = true;
state.showDelBtn = true;
} else {
state.currNode = {};
state.showAddBtn = true;
state.showEditBtn = false;
state.showDelBtn = false;
}
if (data.sucNormCode === "0" || data.parSucNormCode === "#") {
state.showAddBtn = false; // 只允许叶子节点的父节点新增 其余节点都不允许
state.operType = "add";
}
document.onclick = function (ev) {
if (ev.target !== document.getElementById("perTreeMenu")) {
self.tmDisplay = false;
}
};
};