返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue实现右键弹出菜单
  • 662
分享到

vue实现右键弹出菜单

2024-04-02 19:04:59 662人浏览 薄情痞子
摘要

在最近工作中,有一个需求,需要做一个表格,并且对该表格右键弹出菜单支持增删改,这里做下总结,功能截图如下: 首先定义菜单结构 <!-- 菜单 --> <div c

在最近工作中,有一个需求,需要做一个表格,并且对该表格右键弹出菜单支持增删改,这里做下总结,功能截图如下:

首先定义菜单结构

<!-- 菜单 -->
<div class="menu-list" :style="{position:'fixed',top:top+'px',left:left+'px'}" v-if="visible">
    <div class="menu" v-for="(item,index) in menuList">
         <div v-if="item=='插入图片'||item=='更换图片'">
             <el-upload class="upload-demo"
                         action=""
                         :accept="$pubTool.UPLOADIMGFORMAT"
                         :auto-upload="false"
                         :show-file-list="false"
                         :limit="1"
                         :on-exceed="(files) => { selectedFileMore(files, 'img', 'script_filePath', 0,0, 1, 'NONE', false); addImg(); }"
                         :on-change="(file) => { selectedFile(file, 'img', 'script_filePath', 0,0, 1, 'NONE', false); addImg(); }">
                        <div>{{item}}</div>
                    </el-upload>
                </div>
                <div v-if="item=='插入视频'||item=='更换视频'">
                    <el-upload class="upload-demo"
                         action=""
                         :accept="$pubTool.UPLOADVIDEOFORMAT"
                         :auto-upload="false"
                         :show-file-list="false"
                         :limit="1"
                         :on-exceed="(files) => { selectedFileMore(files, 'video', 'script_filePath', 1,1, 1, 'script_fileCover', true); addVideo(); }"
                         :on-change="(file) => { selectedFile(file, 'video', 'script_filePath', 1, 1,1, 'script_fileCover', true); addVideo(); }">
                        <div>{{item}}</div>
                    </el-upload>
                </div>
                <div v-if="item=='插入附件'||item=='更换附件'">
                    <el-upload class="upload-demo"
                          action=""
                          :accept="$pubTool.UPLOADSCRIPTFORMAT"
                          :auto-upload="false"
                          :show-file-list="false"
                          :limit="1"
                           multiple
                           :on-exceed="(files) => { selectedFileMore(files, 'annex', 'script_filePath', 4,1, 1, 'script_fileCover', true); addAnnex(); }"
                           :on-change="(file) => { selectedFile(file, 'annex', 'script_filePath', 4, 1,1, 'script_fileCover', true); addAnnex(); }">
                        <div>{{item}}</div>
                    </el-upload>
                </div>
                <div v-if="item=='插入链接'||item=='更换链接'" @click="operHref.ifShow = true">
                    {{item}}
                </div>
                <div v-if="item=='清空单元格'" @click="clearCell">
                    {{item}}
              </div>
       </div>
</div>

js代码

data() {
            return {
           
                visible: false,//菜单隐藏控制
                td_index: 0,//当前点击的单元格列下标
                tr_index: 0,//当前点击的单元格行下标
                top: 0,
                left: 0,
                menuList: ["插入图片", "插入视频", "插入链接", "插入附件", "更换图片", "更换视频", "更换链接", "更换附件", "清空单元格"],
            
            }
        },
        watch: {
            //监听visible的变化,来触发关闭右键菜单,调用关闭菜单的方法
            visible(value) {
                if (value) {
                    document.body.addEventListener('click', this.closeMenu)
                } else {
                    document.body.removeEventListener('click', this.closeMenu)
                }
            }
        },
         //鼠标右键事件--打开菜单
            openMenu(e, item, td_index, tr_index) {
                if (item.ifR || this.action == 'detail' || this.action == 'version' || item.cU == 1) return;
                if (item.ifR == 0 && item.cT == 22860 && item.cV.cD) this.menuList = ["清空单元格"];
                if (item.ifR == 0 && item.cT == 22861 && item.cV.cD) this.menuList = ["更换图片", "清空单元格"];
                if (item.ifR == 0 && item.cT == 22862 && item.cV.cD) this.menuList = ["更换视频", "清空单元格"];
                if (item.ifR == 0 && item.cT == 22863 && item.cV.cD) this.menuList = ["更换链接", "清空单元格"];
                if (item.ifR == 0 && item.cT == 22864 && item.cV.cD) this.menuList = ["更换附件", "清空单元格"];
                if (item.ifR == 0 && (item.cT == 22860 || item.cT == 22861 || item.cT == 22862 || item.cT == 22863 || item.cT == 22864) && item.cV.cD == '') this.menuList = ["插入图片", "插入视频", "插入链接", "插入附件", "清空单元格"];
                //this.rightClickItem = item;
                let x = e.clientX;
                let y = e.clientY;
                this.top = y;
                this.left = x;
                this.td_index = td_index;
                this.tr_index = tr_index;
                this.visible = true;
            },
            //鼠标右键事件--关闭菜单
            closeMenu() {
                this.visible = false;
            },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: vue实现右键弹出菜单

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

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

猜你喜欢
  • vue实现右键弹出菜单
    在最近工作中,有一个需求,需要做一个表格,并且对该表格右键弹出菜单支持增删改,这里做下总结,功能截图如下: 首先定义菜单结构 <!-- 菜单 --> <div c...
    99+
    2024-04-02
  • vue实现右键菜单栏
    本文实例为大家分享了vue实现右键菜单栏的具体代码,供大家参考,具体内容如下 vue实现右键菜单栏和原生js大同小异,都是需要明白两个点 1.contextmenu事件是鼠标的右键点...
    99+
    2024-04-02
  • Vue如何实现右键菜单
    小编给大家分享一下Vue如何实现右键菜单,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!效果图安装npm install vue-contextmenujs或yarn add vue-...
    99+
    2023-06-25
  • DirectUI实现右键弹出菜单的代码怎么写
    要实现右键弹出菜单,可以按照以下步骤进行操作: 定义一个菜单控件,例如ContextMenu。 在需要弹出菜单的控件上,添加鼠标右...
    99+
    2023-10-24
    DirectUI
  • vue怎么实现右键菜单栏
    本篇内容主要讲解“vue怎么实现右键菜单栏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么实现右键菜单栏”吧!vue实现右键菜单栏和原生js大同小异,都是需要明白两个点contextme...
    99+
    2023-06-29
  • 1分钟Vue实现右键菜单
    目录效果图安装 代码实现 自定义样式 总结 高效实现需求,避免重复造轮子。今天给大家分享的是,如何在最短的时候内实现右键菜单。方法也很简单,一个插件就可以搞定,话不多说,上效果图: ...
    99+
    2024-04-02
  • Vue自定义指令实现点击右键弹出菜单示例详解
    目录一、实现思路1.使用contextmenu事件2.点击菜单之外的任意地方关闭菜单3.菜单置于图层的最顶层二、源代码一、实现思路 1.使用contextmenu事件 该需求需要拦截...
    99+
    2023-01-11
    Vue自定义指令右键弹出菜单 Vue自定义指令 点击右键弹出菜单
  • Vue el-table实现右键菜单功能
    本文实例为大家分享了Vue el-table实现右键菜单功能的具体代码,供大家参考,具体内容如下 实现的效果如下: 1.el-table和右键菜单视图代码 @row-context...
    99+
    2024-04-02
  • Android实现类似于PC中的右键弹出菜单效果
     Android系统中的ContextMenu(上下文菜单)类似于PC中的右键弹出菜单,当一个视图注册到一个上下文菜单时,执行一个在该对象上的“长按”动作,将出现一个...
    99+
    2022-06-06
    菜单 弹出菜单 Android
  • 怎么使用contextMenu插件实现Bootstrap table弹出右键菜单
    这篇文章给大家分享的是有关怎么使用contextMenu插件实现Bootstrap table弹出右键菜单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码(test.html)...
    99+
    2024-04-02
  • vue2.0中怎么利用contextmenu实现右键弹出菜单功能
    vue2.0中怎么利用contextmenu实现右键弹出菜单功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.事情对象<!DOCTY...
    99+
    2024-04-02
  • vue实现自定义全局右键菜单
    前段时间公司在做一个webIDE项目,其中有对文件树的各种操作,主要通过右键菜单实现,今天就来记录一下怎么在vue项目中实现全局的自定义右键菜单。效果如图所示: 注意: 需要在项目...
    99+
    2024-04-02
  • Vue+Elementui实现树形控件右键菜单
    本文实例为大家分享了Vue+Element ui实现树形控件右键菜单的具体代码,供大家参考,具体内容如下 需求 实现树形控件右键菜单功能,有添加文件、删除文件、重命名功能 一、按需引...
    99+
    2024-04-02
  • Windows系统中对弹出菜单、下拉菜单、右键菜单截图的方法
    通过Windows 自带的截图工具或者QQ截图等其他截图工具,很多同学无法对弹出菜单、下拉菜单、鼠标右键菜单等一些活动的菜单进行截图,当进行截图时这些菜单总是消失。其实有一个小技巧可以让你很好的对这些菜单进行截图。 Wi...
    99+
    2023-06-10
    Windows 弹出菜单截图 下拉菜单截图 右键菜单截图 右键 菜单 下拉菜单 系统
  • Vue el-table怎么实现右键菜单功能
    这篇文章主要介绍了Vue el-table怎么实现右键菜单功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue el-table怎么实现右键菜单功能文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-06-29
  • vue右键菜单的简单封装
    本文实例为大家分享了vue实现右键菜单封装的具体代码,供大家参考,具体内容如下 封装一个简单的右键菜单,要求右键处出现菜单,点击除了菜单部分可以关闭菜单。 组件 <templ...
    99+
    2024-04-02
  • Android中实现长按照片弹出右键菜单功能的实例代码
    场景效果 注: 实现 将布局改为LinearLayout,并通过android:orientation="vertical">设置为垂直布局。 然后添加一个ImageV...
    99+
    2022-06-06
    菜单 Android
  • win7鼠标右键无法弹出菜单如何解决
    如果在Windows 7上右键无法弹出菜单,可能是由于以下几个原因:1. 鼠标驱动问题:首先尝试更新鼠标驱动程序。可以在设备管理器中...
    99+
    2023-09-04
    win7
  • win10鼠标右键无法弹出菜单如何解决
    今天小编给大家分享一下win10鼠标右键无法弹出菜单如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。win10鼠标右键...
    99+
    2023-06-30
  • Android PopupWindow实现右侧、左侧和底部弹出菜单
    本教程为大家分享了Android PopupWindow弹出菜单的具体代码,供大家参考,具体内容如下 项目代码:http://xiazai.jb51.net/20161...
    99+
    2022-06-06
    菜单 弹出菜单 popupwindow Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作