TS使用 ‘vue-context-menu‘;右键打开菜单,内附安装流程

这篇具有很好参考价值的文章主要介绍了TS使用 ‘vue-context-menu‘;右键打开菜单,内附安装流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.安装包

2.引入

import VueContextMenu from 'vue-context-menu';

 let VueContextMenu = require('vue-context-menu')

 3.右击tree的节点发生的事件,阻止冒泡和默认事件,然后启用vue-contextMenu的方法

          <VueContextMenu id="context-menu" ref="ctxMenu" style="cursor: pointer">
            <li v-for="(menu, index) in rightMenus" :key="index" class="ttactheme_hover" style="padding-left: 5px" @click="onRightMenuChoose(menu)">
              <svg-icon :icon-class="getMenuIconByRightMenus(menu)" />
              <span style="margin-left: 3px">&nbsp;&nbsp;{{ menu }}</span>
            </li>
          </VueContextMenu>

枚举 i18里的数据:

//枚举
//存储名称(i18国际化)
enum rightMenus {
  addPeople = 'i18n.rightMenu_addPeople',
  addGroup = 'i18n.rightMenu_addCombination',
  saveAs = 'i18n.rightMenu_saveAs',
  rename = 'i18n.rightMenu_rename',
  edit = 'i18n.rightMenu_edit',
  delete = 'i18n.rightMenu_delete'
}

 右键打开面板 展示哪些数据 的方法:

//右击菜单树,就是右击空白地方
 private onTreeRightClick(e: any) {
    //window.console.log('右击菜单树', e)
    e.stopPropagation()
    e.preventDefault()
    this.currentRightClickNode = null
    this.rightMenus = []
    this.rightMenus = [this.$t(rightMenus.addGroup).toString()]
    ;(this.$refs.ctxMenu as any).open()
  }




//右击菜单树节点
//el-tree上有个@node-contextmenu="onTreeNodeRightClick"
 private onTreeNodeRightClick(e: any, data: any) {
    // window.console.log('右击菜单树节点的节点数据', data)
    //禁止事件冒泡
    e.stopPropagation()
    //阻止默认事件执行
    e.preventDefault()
    //节点数据
    this.currentRightClickNode = data
    //清空数组
    this.rightMenus = []
    //如果点的用户
    if (data.type === 'people') {
      //只让 枚举数组里 放删除
      this.rightMenus = [this.$t(rightMenus.delete).toString()]
    } else if (data.type === 'group') {
      //添加部门的文字
      this.rightMenus = [this.$t(rightMenus.addGroup).toString(), 
      //添加人员的文字
      this.$t(rightMenus.addPeople).toString(), 
      //添加删除的文字
      this.$t(rightMenus.delete).toString()]
    }
    //通过$refs使用open方法打开框子
    ;(this.$refs.ctxMenu as any).open()
  }


//展示图标的方法
  private getMenuIconByRightMenus(rm: rightMenus): string {
    let iconString
    switch (rm) {
      case this.$t(rightMenus.addPeople).toString():
        iconString = 'rightmenu_add'
        break
      case this.$t(rightMenus.addGroup).toString(): {
        iconString = 'rightmenu_add'
        break
      }
      case this.$t(rightMenus.edit).toString():
        iconString = '&#xe628;'
        break
      case this.$t(rightMenus.saveAs).toString(): {
        iconString = '&#xe61a;'
        break
      }
      case this.$t(rightMenus.rename).toString(): {
        iconString = '&#xe628;'
        break
      }
      case this.$t(rightMenus.delete).toString(): {
        iconString = 'rightmenu_delete'
        break
      }
      default:
        break
    }
    return iconString
  }


//点击menu的数据,进行增删改查的操作
 private async onRightMenuChoose(menuName: string) {
    //window.console.log('onRightMenuChoose:', menuName)
    switch (menuName) {
      case this.$t(rightMenus.addPeople).toString():
        this.addPeople()
        break
      case this.$t(rightMenus.addGroup).toString():
        this.addGroup()
        break
      case this.$t(rightMenus.delete).toString():
        this.deleteNode()
        this.onDeletePage(this.currentRightClickNode.id)
        break
      case this.$t(rightMenus.edit).toString():
        this.onEditPage(this.currentRightClickNode.id)
        break
      default:
        break
    }
  }

安装使用vue-context-menu流程文章来源地址https://www.toymoban.com/news/detail-840373.html

1.首先,安装vue-context-menu包:
npm install vue-context-menu
在Vue组件中引入vue-context-menu:
typescript
import VueContextMenu from 'vue-context-menu';

export default {
  components: {
    VueContextMenu,
  },
  // ...
}

2。在模板中使用vue-context-menu组件,并定义菜单项:
html
<template>
  <div>
    <vue-context-menu :menu-items="menuItems">
      <div>右键点击我</div>
    </vue-context-menu>
  </div>
</template>

3.在Vue组件的data中定义菜单项:
typescript
export default {
  data() {
    return {
      menuItems: [
        { label: '菜单项1', action: this.handleMenuItem1 },
        { label: '菜单项2', action: this.handleMenuItem2 },
        // ...
      ],
    };
  },
  methods: {
    handleMenuItem1() {
      // 处理菜单项1的点击事件
    },
    handleMenuItem2() {
      // 处理菜单项2的点击事件
    },
    // ...
  },
  // ...
}
根据需要,可以在methods中定义处理菜单项点击事件的方法。

到了这里,关于TS使用 ‘vue-context-menu‘;右键打开菜单,内附安装流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 12 使用Vue+Vue-router+el-menu实现菜单功能实战

    上节回顾 上一小节我们使用 H5+CSS3 实现了管理平台的 架构布局 ,并且通过 Vuex 的使用,获取到前端数据本地化存储的username,绑定到右上角进行全局展示。还不了解上下文的同学可以回顾一下 使用Vue+Vuex+CSS3完成管理端响应式架构模板实战 。 本节介绍 本小节已经是专栏的

    2024年02月16日
    浏览(66)
  • vue3使用el-menu多级菜单出现点击一个全部展开的问题

            测试时发现单击菜单显示子菜单时其它的菜单也被展开,看了其它文章写的是修改:index=\\\"menu.index\\\",         虽然点击菜单其它的子菜单不会展开了,但是index存的是编号,url存的是路由地址,点击子菜单地址栏显示的是编号信息,不是地址,如图所示      

    2024年02月02日
    浏览(38)
  • vue中,右键菜单组件v-contextmenu的使用

    vue中,右键菜单组件v-contextmenu的使用 1、效果 右键菜单之禁用和子菜单 2、流程 第一步:安包 第二步:引入 src/main.js package.json 第三步:使用 效果1-右键菜单之禁用和子菜单 index.vue 效果2-基本效果 index.vue 3、使用说明api npm地址——https://www.npmjs.com/package/v-contextmenu 另一个参

    2024年02月06日
    浏览(31)
  • Sublime3的打开方式添加到右键菜单

    http://jingyan.baidu.com/article/cdddd41c68c32753ca00e157.html Sublime Text 安装完成之后没有右键打开方式,打开文件很不方便。为了快捷打开文件,可以在系统的右键上添加Sublime Text打开方式。如图所示 百度经验:jingyan.baidu.com Sublime Text 3, Win7系统 百度经验:jingyan.baidu.com 1 打开注册表编辑器

    2024年02月03日
    浏览(26)
  • el-menu实现左侧菜单栏(vue2,vue3)

    vue3写法 多级数据 1. home.vue 先把页面基底搭建好 2. Sidebar.vue 左侧菜单栏(多级数据) 3. Header.vue 顶部导航栏 一级数据 home页面是一样的 Sidebar.vue Header.vue(我这里还做了一个切换昼夜间模式的主题) vue2 多级数据 一级数据(使用自己的图标

    2024年02月08日
    浏览(38)
  • el-menu使用递归组件实现多级菜单组件

    vue3+element plus版:点击此处 创建外层菜单 AsideMenu.vue 组件和子菜单项 AsideSubMenu.vue 组件,在 AsideSubMenu 中进行递归操作。 AsideMenu.vue文件内容如下: 判断高亮状态的activeMenu方法中的判断matchPath属性可以让多个路由不同的页面匹配同一个菜单高亮状态,因为菜单高亮状态是根据

    2023年04月12日
    浏览(32)
  • vue实现点击右键出现自定义操作菜单

    实现像微信一样的点击右键后出现操作菜单,对选中的数据项进行相应的操作,接下来介绍使用原生vue实现右键菜单的方法。 @contextmenu.prevent.stop 为阻止浏览器的右键点击菜单事件 isShowMenu: 来控制菜单的显示 同时我们要为其出现的地方进行调整 menuTop,menuLeft,在展示 menu 的

    2024年02月15日
    浏览(30)
  • 记录--Vue 右键菜单的秘密:自适应位置的实现方法

    下图这个情景,你是否也遇到过? 当你右键点击网页上的某个元素时,弹出的菜单被屏幕边缘遮挡了,导致你无法看清或选择菜单项? 上图中右键菜单的选项并不是固定不变的,它会根据不同的元素或场景来显示不同的选项。 也就是说,菜单的内容和大小都是动态生成的,

    2024年02月08日
    浏览(25)
  • Vue3 如何实现一个函数式右键菜单(ContextMenus)

    前言: 最近在公司 PC 端的项目中使用到了右键出现菜单选项这样的一个工作需求,并且自己现在也在实现一个偶然迸发的 idea ( 想用前端实现一个 windows 系统从开机到桌面的 UI ),其中也要用到右键弹出菜单这样的一个功能,个人觉得这个实现还不错,特来分享🎁。 tips:

    2024年02月06日
    浏览(39)
  • Vue3 + Element Plus 实现动态标签页及右键菜单

    目录 先上图  使用el-dropdown绑定右键菜单,为每个tab页绑定一个右键 右键菜单生效后控制每个下拉项的禁用与显示(每一项代表一个功能) 每个右键项对应的功能  控制每次只显示一个右键 完整代码         只有首页的情况         多个tab页的情况  

    2024年02月07日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包