赞
踩
设置一个固定值 node-key=“id”, 根据实际项目配置唯一的标记
定义当前选中节点 :current-node-key=“currentDeptId”
设置highlight-current为true
设置current-node-key为currentDeptId,同时刷新接口时重新设置currentDeptId,代码如下
this.$nextTick(() => {
this.$refs['tree'].setCurrentKey(this.currentDeptId);
})
1.html部分
<el-tree :data="deptOptions" :props="defaultProps" node-key="id" :expand-on-click-node="false"
ref="tree" default-expand-all highlight-current @node-click="handleNodeClick"
:current-node-key="currentDeptId" :check-on-click-node="true">
<span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ node.label }} </span>
</span>
</el-tree>
// 部门树选项 deptOptions: undefined, // 配置选项 defaultProps: { children: "children", label: "label", }, //默认选中的部门 currentDeptId: null, // 比如:107 currentDeptName: null, methods: { // 节点单击事件 handleNodeClick(data) { console.log(data, '节点单击事件') this.currentDeptId = data.id this.currentDeptName = data.label }, }
根据实际需要,在刷新下拉树的时候,这个currentDeptId,需要重置。(以便在刷新后,保留刷新前的选中状态)
/** 查询下拉树结构 */
getTreeselect() {
deptTreeselect({
}).then((response) => {
this.deptOptions = response.data;
// 设置highlight-current为true
// 设置current-node-key为currentDeptId,同时刷新接口时重新设置currentDeptId,新后保留展开状态功能的实现 ,代码如下
// 设置选中
this.$nextTick(() => {
this.$refs["tree"].setCurrentKey(this.currentDeptId);
});
});
},
<style scoped>
/* 鼠标hover改变背景颜色 */
/deep/ .el-tree-node .el-tree-node__content:hover {
background-color: #f0f7ff !important;
color: #409eff;
}
/* 颜色高亮 */
/deep/ .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
color: #409eff;
}
</style>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。