element-ui tabs点击一个子组件中的按钮或图标,切换到另一个tabs组件中

我在项目中,遇到一个tabs下放了两个组件,组件1是拓扑图,组件2是详情,我要点击组件1中拓扑图的节点跳转到组件2的详情中,于是就有了如下图所示的需求:

 简单的实现思路就是,点击按钮的时候,子组件向父组件传递tabs想要跳转页面的name,即可实现效果,项目具体实现结构如下图所示:

注:主要实现是红色标记的部分

简单代码如下:

父组件:

<template>
  <div class="app-container">
    <el-tabs ref="tabs" v-model="activeName" type="card" @tab-click="tabClick">
      <el-tab-pane label="拓扑图" name="topo" >
        <server-topo ref="topoCanvas" :data-topo="dataTopo" :links="links" @updateActiveName="updateActiveName"></server-topo>
      </el-tab-pane>
      <el-tab-pane label="详细信息" name="serverInfo">
        <server-detail ref="ServerDetail" :server-info-list="serverInfoList"/>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>
<script type="text/jsx">
import ServerDetail from '@/views/system/deviceManage/serverInfo/serverDetail'
import ServerTopo from '@/views/system/deviceManage/serverInfo/serverTopo'


export default {
  name: 'ServerInfo',
  components: { ServerDetail, ServerTopo },
  props: {
  },
  data() {
    return {
      activeName: 'topo',
      serverInfoList: [],
      dataTopo: [],
      links: [],
      number: undefined
    }
  },
  created() {
    this.sendToServerList()
  },
  methods: {
    updateActiveName(data) {
      // 修改activeName的名称
      this.activeName = data
    },
    tabClick(pane, event) {

    }
  }
}
</script>


<style scoped>


</style>

 要实现点击效果的子组件:

// 双击节点时,跳转到服务器详细信息中
echarts.init(chart).on('dblclick', function(params) {
  if (params.dataType == 'node') {
    // 子组件向父组件传值,修改tabs的activeName,从而达到组件切换的效果
    that.$emit('updateActiveName', 'serverInfo')
  }
});

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值