element-plus 使el-dropdown只显示当前选择节点

  1. 在数据对象中设置一个唯一标识符currentDrop,用来存放当前打开的下拉菜单的下标,初始化为null:

data() {
return {
currentDrop: null
};
},

  1. 在每个el-dropdown-item上使用visible-change方法,当下拉菜单的状态发生变化时,更新currentDrop的值。id是你的树节点id:
 <template #default="{ node, data }"> 
            <el-dropdown  
            trigger="contextmenu" 
            :ref="'dropdown'+ node.data.nodeId "
             @visible-change="(visible) => handleVisibleChange(node, visible)"
            >

              <span class="el-dropdown-link">
                {{ node.label }}
              </span>
            <template 
            #dropdown
            v-if="currentDrop && currentDrop == node.data.nodeId"
             >
              <el-dropdown-menu>
                <el-dropdown-item 
                :disabled="isNewProject"
                @click="handleModal"
                >
                  新建
                </el-dropdown-item>
                <el-dropdown-item 
                :disabled="!nodeIdFlag"
                @click="deleteNodes"
                >
                  删除
                </el-dropdown-item>
                <el-dropdown-item 
                @click="renameNode"
                :disabled="!displayNameFlag"
                >
                  重命名
                </el-dropdown-item> 
                <el-dropdown-item 
                @click="handleMessageModal"
                >
                  属性
                </el-dropdown-item> 
              </el-dropdown-menu>
            </template>
          </el-dropdown>
          </template>
  1. 在methods中实现handleVisibleChange方法:

methods: {
handleVisibleChange(id, visible){
this.currentDrop = visible ? id : null;
}
}

这样,每次点击下拉菜单的时候,只有当前的下拉菜单会被显示,其他的下拉菜单都会被隐藏。

以上就是文章全部内容了,如果喜欢这篇文章的话,还希望三连支持一下,感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小纯洁w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值