vue-contextmenujs 实现鼠标右键弹出菜单列表

  1. 效果
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/421069a2b1c842b2ad2a03b596e4ce50.png
  2. 安装
npm install vue-contextmenujs || yarn add vue-contextmenujs
  1. 使用
// main.js
import Contextmenu from 'vue-contextmenujs'
Vue.use(Contextmenu)
  1. 示例
<template>
 <el-table
    :data="tableData"
     border
     highlight-current-row
     height="100%"
     size="mini"
     @row-contextmenu="onContextmenu"
/>
</template>
<script>
export default{
	methods:{
	   onContextmenu(row, column, event) {
	      event.preventDefault()
	      this.$contextmenu({
	        items: [
	          {
	            label: '患者病历夹',
	            divided: true,
	            minWidth: 0,
	            onClick: () => {
	              this.patientStateVisible = true
	            }
	          },
	
	          {
	            label: '麻醉文书',
	            onClick: () => {
	              this.docDialogVisible = true
	            }
	          },
	          {
	            label: '临床麻醉',
	            disabled: row.drug_state !== 2 ? true : false,
	            onClick: () => {
	              this.handleStartMz(row)
	            }
	          },
	          {
	            label: '麻醉复苏',
	            disabled: row.fs_state !== 2 ? true : false,
	            onClick: () => {
	              this.handleStartFs(row)
	            }
	          }
	        ],
	        event,
	        customClass: 'mzss-cx', // 自定义菜单 class
	        zIndex: 3, // 菜单样式 z-index
	        minWidth: 160 // 主菜单最小宽度
	      })
	      return false
	    },
	}
}
</script>
  1. 参数说明
    Menu
属性描述类型默认值
items菜单结构信息MenuItem[]
event鼠标事件信息Event
x菜单显示X坐标, 存在event则失效number0
y菜单显示Y坐标, 存在event则失效number0
zIndex菜单样式z-indexnumber2
customClass自定义classstring
minWidth主菜单最小宽度number150

MenuItem

属性描述类型默认值
label菜单名称string
icon菜单项图标, 生成元素string
disabled是否禁用菜单项booleanfalse
divided是否显示分割线booleanfalse
customClass自定义子菜单classstring
minWidth子菜单最小宽度number150
onClick菜单项点击事件Function()
children子菜单结构信息MenuItem[]

版权声明:本文为weixin_43878117原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。