vue中实现自定义右键菜单


 

问题:右击表格,弹出自定义菜单进行特殊操作

 

一、安装(地址:https://github.com/GitHub-Laziji/menujs

npm install vue-contextmenujs

main.js

import Contextmenu from 'vue-contextmenujs'
Vue.use(Contextmenu)

二、表格

这里我是用的是umyui,基于element-ui的表格,使用表格API(row-contextmenu)

    <ux-grid border
      ref="saleBill"
      :data="saleBill"
      show-overflow
      size="small"
      @row-contextmenu="handleContextMenu">
    </ux-grid>

JS部分

mounted() {
    // 先把浏览器自带的右键功能屏蔽掉
   this.$nextTick(() => {
     // 禁止右键
     document.oncontextmenu = new Function("event.returnValue=false");
   });
   // 监听页面滚动事件
   window.addEventListener('scroll', this.handleScroll, true)
 },
beforeDestroy() {
  // 离开页面时,清除页面滚动事件
  window.removeEventListener('scroll', this.handleScroll, true)
  this.$nextTick(() => {
    // 放开对浏览器右键的禁止
    document.oncontextmenu = new Function();
  });
},
methods: {
    // 页面滚动时清除右键菜单,避免位置混淆
    handleScroll () {
      this.$contextmenu.destroy();
    },
    handleContextMenu(item, index) {
      this.$contextmenu.destroy();
      this.$contextmenu({
        items: [
          {
            label: "属性",
            onClick: () => {
              //进行其他操作
            },
          },
          {
            label: "标签设置",
            icon: "el-icon-discount",
            disabled: !(current.Editable),
            onClick: () => {
              //进行其他操作
            },
          },
          {
            label: "渠道名称设置",
            onClick: () => {
              //进行其他操作
            },
          }
        ],
        event,
        customClass: "resource-context-menu",
        zIndex: 999,
        minWidth: 200,
      });
      return false;
    }
}

 

效果如下:

微信截图_20220622164100.png

 

menujs参数说明:

 

微信截图_20220622164353.png


vue B = A ,修改B值,A值也会跟着变动问题

商品表,客户常用商品表,客户查询商品列表要优先显示常用商品,SQL语句

评 论
更换验证码