iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >element表格组件实现右键菜单的功能
  • 679
分享到

element表格组件实现右键菜单的功能

2024-04-02 19:04:59 679人浏览 泡泡鱼
摘要

目录前言实现思路最后前言 最近产品给我提了个需求 ————想要实现用户右键table的某一行时,显示该行操作栏的功能。觉得这个需求挺有

前言

最近产品给我提了个需求 ————想要实现用户右键table的某一行时,显示该行操作栏的功能。觉得这个需求挺有意思的,特此分享给大家。

技术栈: elementUI

实现思路

要实现右键菜单 我们需要定义一个菜单栏组件 当用户点击table的某一行时,我们处理好显示位置再将菜单栏渲染到table上。先实现这个righTKEyMenu组件:

// right-key-menu.Vue 
<template>
  <div id="right-key-menu" class="right-key-menu">
    <div class="rightKeyMenuItem" @click="$emit('edit')">编辑</div>
    <div class="rightKeyMenuItem" @click="$emit('del')">删除</div>
  </div>
</template>
<script>
 //...忽略
  methods: {
        onload (row, column,event) {
           //调整菜单出现的位置
          let menu = document.querySelector('#right-key-menu')
          let betweenHeight = document.body.clientHeight - event.clientY
          if (betweenHeight < 150) {
            menu.style.top = event.clientY -80 + 'px'
          } else {
            menu.style.top = event.clientY -30 + 'px'
          }
          menu.style.left = event.clientX + 20 + 'px'
          // 监听dom的click事件
          document.addEventListener('click', this.$emit('rightClick')) 
       }
        }
  </script>      
<style>
.right-key-menu {
  display: block;
  line-height: 34px;
  text-align: center;
}
.right-key-menu:not(:last-child) {
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.right-key-menu {
  position: absolute;
  background-color: #fff;
  width: 100px;
  font-size: 12px;
  color: #444040;
  border-radius: 4px;
  -WEBkit-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 3px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  white-space: nowrap;
  z-index: 1000;
}
.rightKeyMenuItem:hover {
  cursor: pointer;
  background: #66b1ff;
  border-color: #66b1ff;
  color: #fff;
}
</style>

使用rightKeyClick组件。我们需要监听用户右键点击table行的操作, 这个功能在elementUI table中已经有相应的方法了:

row-contextmenu 当某一行被鼠标右键点击时会触发该事件 (row, column, event)

触发这个方法然后将参数都传递过去。修改visable的值将菜单栏组件显现出来。

在菜单栏组件中我们通过获取到当前点击时浏览器Y轴位置将menu的高度进行合适修改。这样当我们点击不同table行。menu的位置也会随着鼠标点击时距离浏览器Y轴的位置相应的进行变化。

// business-table
<template>
<div>
<el-table
 :data="tableData"
  @row-contextmenu="rowContextmenu"
  border> 
 //...忽略
</el-table>
<rightKeyMenu v-if="visable"
              @rightClick="rightClick" 
              ref="menu" 
              @edit="handleEdit"
              @del="handleDel">
              </rightKeyMenu>
 </div>
</template>
import rightKeyMenu from '@component/right-key-menu/index'
export default {
   components: {
      rightKeyMenu
    },
    methods: {
      rowContextmenu (row, column, event) {
        //如果之前已经打开了先关闭一下。
          this.visable = false
        setTimeout(()=>{
          this.visable = true
        },300)
        // 阻止右键默认行为
        event.preventDefault()
        this.$nextTick(() => {
          this.$refs.menu.onload(row,column,event)
        })
      },
      rightClick() { 
        this.visable = false
        // 取消鼠标监听事件 菜单栏
        document.removeEventListener('click', this.rightClick)
      },
      handleEdit () {
        // ..do something
      },

      handleDel () {
       // ..do something
      }
    }
  }

有时候列表的操作项并不仅仅局限于修改和删除。 因此我们可以使用插槽自定义需要显示的内容。

<template>
  <div id="right-key-menu" class="right-key-menu">
    <div class="rightKeyMenuItem" @click="$emit('edit')">编辑</div>
    <div class="rightKeyMenuItem" @click="$emit('del')">删除</div>
    <div class="rightKeyMenuItem"><slot name="more"></slot></div>
  </div>
</template>

至此。element右键菜单的功能就实现完成了。实现这个需求最主要的一点是要计算好右键菜单显示的位置。由于不同页面table所在位置不同,因此rightKeyClick组件还需要传递几个参数去进行优化适配。这里我就不在细说了。大家可以自己去试试。

最后

到此这篇关于element表格组件实现右键菜单的功能的文章就介绍到这了,更多相关element表格右键菜单内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: element表格组件实现右键菜单的功能

本文链接: https://www.lsjlt.com/news/143622.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • element表格组件实现右键菜单的功能
    目录前言实现思路最后前言 最近产品给我提了个需求 ————想要实现用户右键table的某一行时,显示该行操作栏的功能。觉得这个需求挺有...
    99+
    2024-04-02
  • js实现右键菜单栏功能
    本文实例为大家分享了js实现右键菜单栏的具体代码,供大家参考,具体内容如下 1. 效果图: 鼠标悬浮: 2. 代码 (1)html <div class="leftDiv"...
    99+
    2024-04-02
  • Vue el-table实现右键菜单功能
    本文实例为大家分享了Vue el-table实现右键菜单功能的具体代码,供大家参考,具体内容如下 实现的效果如下: 1.el-table和右键菜单视图代码 @row-context...
    99+
    2024-04-02
  • element table 表格控件实现单选功能
    项目中实现 table 表格控件单选功能,如图: 基本代码如下: 1、template 代码中: <el-table :data="tableData" bo...
    99+
    2024-04-02
  • jQuery如何动态生成表格及右键菜单功能
    这篇文章主要为大家展示了“jQuery如何动态生成表格及右键菜单功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何动态生成表格及右键菜单功能”这...
    99+
    2024-04-02
  • C/C++ Qt 给ListWidget组件增加右键菜单功能
    在上一篇博文《C/C++ Qt ListWidget 列表框组件应用》中介绍了ListWidget组件的基本使用技巧,本次将给ListWidget组件增加一个右键菜单,当用户在Lis...
    99+
    2024-04-02
  • Vue el-table怎么实现右键菜单功能
    这篇文章主要介绍了Vue el-table怎么实现右键菜单功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue el-table怎么实现右键菜单功能文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-06-29
  • Vue+Elementui实现树形控件右键菜单
    本文实例为大家分享了Vue+Element ui实现树形控件右键菜单的具体代码,供大家参考,具体内容如下 需求 实现树形控件右键菜单功能,有添加文件、删除文件、重命名功能 一、按需引...
    99+
    2024-04-02
  • vue2.0中怎么利用contextmenu实现右键弹出菜单功能
    vue2.0中怎么利用contextmenu实现右键弹出菜单功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.事情对象<!DOCTY...
    99+
    2024-04-02
  • 将VISTA的加密功能添加到右键菜单上
    现在有很多朋友还不是很熟悉Windows Vista的“加密文件系统”(Encrypt File System,英文缩写EFS),或者根本就不知道什么是“Vista加密文件系统&rdq...
    99+
    2023-05-24
    VISTA 加密功能 右键菜单 功能 菜单 右键
  • element ui表格实现下拉筛选功能
    本文实例为大家分享了element ui表格实现下拉筛选的具体代码,供大家参考,具体内容如下 1、default-sort中prop传入要排序的字段(接口返回或自己定义的数据)、or...
    99+
    2024-04-02
  • vue+element-ui+sortable.js实现表格拖拽功能
    本文实例为大家分享了vue+element-ui+sortable.js实现表格拖拽的具体代码,供大家参考,具体内容如下 效果如下: 1.vue使用cli创建项目就不说了,本人使用...
    99+
    2024-04-02
  • Vue基于Element-ui实现表格弹窗组件
    本文实例为大家分享了Vue基于Element-ui实现表格弹窗组件的具体代码,供大家参考,具体内容如下 效果图 使用方式 acTable1 () {   this.$modalTa...
    99+
    2024-04-02
  • 如何将VISTA的加密功能添加到右键菜单上
    本篇内容主要讲解“如何将VISTA的加密功能添加到右键菜单上”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何将VISTA的加密功能添加到右键菜单上”吧!现在有很多朋友还不是很熟悉Windows...
    99+
    2023-06-14
  • C/C++ Qt Tree与Tab组件实现分页菜单功能
    虽然TreeWidget组件可以实现多节点的增删改查,但多节点操作显然很麻烦,在一般的应用场景中基本上只使用一层结构即可解决大部分开发问题,TreeWidget组件通常可配合TabW...
    99+
    2024-04-02
  • element ui表格如何实现下拉筛选功能
    这篇文章主要讲解了“element ui表格如何实现下拉筛选功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“element ui表格如何实现下拉筛选功能”吧!default-sort中pr...
    99+
    2023-06-25
  • Vue3 封装 Element Plus Menu 无限级菜单组件功能的详细代码
    目录1 数据结构定义1.1 菜单项数据结构1.2 菜单配置数据结构2 使用 tsx 实现封装2.1 tsx 基本结构2.2 定义 prop2.3 递归实现组件3 使用 SFC 实现菜...
    99+
    2024-04-02
  • 怎么使用contextMenu插件实现Bootstrap table弹出右键菜单
    这篇文章给大家分享的是有关怎么使用contextMenu插件实现Bootstrap table弹出右键菜单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码(test.html)...
    99+
    2024-04-02
  • Swift使用表格组件实现单列表
    本文实例为大家分享了Swift使用表格组件实现单列表的具体代码,供大家参考,具体内容如下 1、样例说明: (1)列表内容从Controls.plist文件中读取,类型为Array 。...
    99+
    2024-04-02
  • vue静态界面之左二级菜单右表单表格的实例代码
    实现效果: 实现代码: <template> <div class="app-container"> <el-row :gutter="2...
    99+
    2022-11-13
    vue二级菜单 vue表单表格
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作