利用element实现简单右键

利用element-plus中的el-menu实现简单右键

实现如下

<template>
  <main class="mainClass"  @contextmenu="showMenu($event)"> 
  </main>

  <el-menu
    :default-active="1"
    class="el-menu-demo"
    mode="vertical"
    :collapse="isCollapse"
    v-show="menuShow"
    @close="hideMenu"
    @open="openItem"
    ref="menuRef"
    :style="{ left: left + 'px', top: top + 'px' }"
  >
    <el-menu-item index="1">Processing Center</el-menu-item>
    <el-sub-menu index="2">
      <template #title>Workspace</template>
      <el-menu-item index="2-1">item one</el-menu-item>
      <el-menu-item index="2-2">item two</el-menu-item>
      <el-menu-item index="2-3">item three</el-menu-item>
    </el-sub-menu>
  </el-menu>
  
</template>

<script setup>

import { watch ,ref } from 'vue';

const activeIndex = ref('0')
const menuShow = ref(false)
const isCollapse = ref(true)
const menuRef = ref(null)
const left = ref(0)
const top = ref(0)

function hideMenu()
{
  menuShow.value = false;
}
function openItem(index, indexPath)
{
  console.log(index, indexPath)
}

function showMenu(e)
{
  menuShow.value = true;
  left.value = e.clientX+1;
  top.value = e.clientY+1;
  //阻止默认行为
  e.preventDefault();
}

//监听menuShow的变化,当它为true时,给body绑定一个点击事件,当点击时,隐藏menu
watch(menuShow,(newValue, oldValue) => {
  if(newValue)
  {
    document.body.addEventListener('click', hideMenu)
  } 
  else 
  {
    document.body.removeEventListener('click', hideMenu)
  }
})

</script>


<style scoped>
.mainClass
{
  width: 500px;
  height: 500px;
  background-color: #f0f0f0;
}
.el-menu-demo
{
  position: absolute;
  left: 0;
  top: 0;
  z-index: 100;
  width: 120px;
  /* background-color: rgb(167, 184, 184); */
}
</style>

推荐一个 v-contextmenu (cybernika.net)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
elementadmin是基于Vue.js开发的一套后台管理系统框架,提供了丰富的UI组件和强大的功能,可以用于快速实现后台管理系统的开发。 在elementadmin中,我们可以通过自定义右键菜单来增加一些需要的功能。具体的实现步骤如下: 1. 需要在elementadmin的组件中引入一个第三方插件,例如vue-contextmenu。 2. 在需要使用自定义右键菜单的组件中,找到需要添加右键菜单的元素,并给该元素添加一个右键菜单的事件监听。 3. 在组件的data中定义一个数组,用于存放右键菜单的选项。 4. 在组件的methods中,编写一个方法,用来处理右键菜单的选项点击事件。 5. 在组件的template中,使用vue-contextmenu的指令来生成右键菜单。 6. 在右键菜单的选项中,通过@click事件将右键菜单的选项与处理方法关联起来。 通过上述步骤的实现,我们就可以在elementadmin中实现自定义右键菜单的功能了。这样,我们就可以根据实际需要,定制自己想要的右键菜单选项,为用户提供更加便捷的操作体验。这些自定义右键菜单的选项可以包括一些常用的操作,例如复制、剪切、粘贴等,也可以根据具体业务需求,添加一些特定的功能选项。这样,用户在使用elementadmin时,只需要通过右键点击相应的元素,就可以快速选择需要的功能,提高操作效率。 总的来说,elementadmin提供了便捷的自定义右键菜单实现方法,通过定制右键菜单选项,用户可以根据自己的需要进行功能扩展,提高后台管理系统的开发效率和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值