vue2左侧是element中的树形控件,右侧是element中的table表格,怎么实现点击左侧不同节点,右侧显示不同的内容
时间: 2024-02-21 16:57:11 浏览: 153
详解vue-cli+element-ui树形表格(多级表格折腾小计)
可以通过在左侧树形控件中绑定节点选中事件,然后根据选中的节点信息来更新右侧表格的内容。具体实现过程如下:
1. 在左侧树形控件中绑定节点选中事件,可以使用 Element UI 的 `node-click` 属性来实现。例如:
```html
<template>
<div>
<el-tree :data="treeData" :props="treeProps" @node-click="handleNodeClick"></el-tree>
</div>
</template>
```
2. 在 data 中定义变量 `selectedNode` 和 `tableData`,用于保存当前选中的节点和右侧表格的数据,例如:
```javascript
<script>
export default {
data() {
return {
treeData: [...], // 左侧树形控件的数据
treeProps: {...}, // 左侧树形控件的配置项
selectedNode: null, // 当前选中的节点
tableData: [], // 右侧表格的数据
};
},
methods: {
handleNodeClick(node) {
// 更新选中的节点
this.selectedNode = node;
// 根据选中的节点来获取对应的表格数据
this.tableData = this.fetchTableData(node.id);
},
fetchTableData(nodeId) {
// 根据节点 ID 来获取对应的表格数据
// ...
},
},
};
</script>
```
3. 在右侧表格中使用 `computed` 属性来动态获取数据。例如:
```html
<template>
<div>
<el-table :data="tableData">
<el-table-column prop="name" label="名称"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
<!-- 其他表格列 -->
</el-table>
</div>
</template>
<script>
export default {
computed: {
tableData() {
// 根据当前选中的节点来动态获取表格数据
return this.selectedNode ? this.$parent.tableData : [];
},
},
};
</script>
```
这样,当左侧树形控件中的节点被选中时,就会触发 `handleNodeClick` 方法,更新 `selectedNode` 和 `tableData` 数据,从而动态更新右侧表格的内容。注意,使用 Element UI 的树形控件时,节点对象中的 `id` 属性默认为 `node-id`,可以通过 `props` 属性来自定义节点属性的名称。
阅读全文