项目中有需要从其他地方跳转到某个页面需要设置默认el-tree展开且默认选中某个节点
(默认选中不设置多选框,当前的需求是根据接口获取数据,所以不设置默认值)
使用步骤
一、加载el-tree
按照官方文档的说明在项目中引入组件 template
:data="treeData" node-key="ID" :default-expanded-keys="defalutCheckArr" :default-checked-keys="defalutCheckArr" :props="defaultProps">
data
data() {
return {
treeData:[],
defalutCheckArr:[],
defaultProps: {
children: 'items',
label: 'name',
},
}
},
treeData为el-tree的数据,ID为数据的唯一标识,作为展开和选中的key,默认展开和默认选中设置为同一个数组defalutCheckArr,方便传参,根据实际需求来
二、引入数据
methods
async initTree(boxdata) {
const data = await getErecTree({ type: 3 })//你的接口
this.treeData = data//设置el-tree值
if (boxdata) {
this.defaultShowArr = [boxdata.boxId]//默认展开对象和选中的值,boxid需要和ID的值对应且唯一
}
},
最后调用方法即可
三、完整代码如下
v-loading="treeLoading" :data="treeData" :default-checked-keys="defalutCheckArr" :default-expanded-keys="defalutCheckArr" element-loading-spinner="el-icon-loading" element-loading-text="拼命加载中" node-key="nodeId" :props="defaultProps" /> // 引入接口 import { getErecTree } from '@/api/erectionCraneManagment.js' export default { data() { return { treeLoading: true, treeData: [], defaultProps: { children: 'items', label: 'name', }, defalutCheckArr: [], } }, created() { this.initTree() }, methods: { async initTree(boxdata) { const data = await getErecTree({ type: 3 }) this.treeData = data if (boxdata) { this.defaultShowArr = [boxdata.boxId] } this.treeLoading = false }, } } /* 修改选中样式 */ .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content, .is-checked .el-tree-node__content { color: #148ff3; font-weight: bold; } 相关链接
发表评论