Comments (7)
v-contextmenu是用来传递附加参数的,必须是dict类型。
由于采用全局总线机制,所有的菜单都会监听到add-contextmenu事件。我觉得你可以尝试改造一下contextmenu类,在bus收到addmenu的时候,进行一个判断,是否自己的id,相同的话才显示。
from vue3-contextmenu.
这个思路应该可行 @Hunlongyu 大佬有空添加下吗
1. ContextMenu 添加name属性
props: {
cutomClass: String,
name: String
}
<context-menu name="contex-menu-1">
<context-menu-submenu :label="'查看'">
<context-menu-item :disabled="true">图标</context-menu-item>
<context-menu-item>列表</context-menu-item>
<context-menu-item>详细信息</context-menu-item>
</context-menu-submenu>
</context-menu>
<context-menu name="contex-menu-2">
<context-menu-submenu :label="'查看'">
<context-menu-item :disabled="true">图标</context-menu-item>
<context-menu-item>列表</context-menu-item>
<context-menu-item>详细信息</context-menu-item>
</context-menu-submenu>
<context-menu-submenu :label="'查看'">
<context-menu-item :disabled="true">图标</context-menu-item>
<context-menu-item>列表</context-menu-item>
<context-menu-item>详细信息</context-menu-item>
</context-menu-submenu>
</context-menu>
2. 通过v-contextmenu参数配置指定要使用的menu name.
<div class="demo" v-contextmenu="{ name: 'contex-menu-1', id: '456'}">右键点击区域{id: '999'} 触发Menu 1</div>
<div class="demo" v-contextmenu="{ name: 'contex-menu-2', id: '456'}">右键点击区域{id: '999'} 触发Menu 2 </div>
3. ContextMenu组件内添加if判断, 只显示指定name的menu
<div class="v-contextmenu" v-show="show" ref="contextmenu" v-if="bindingValue && name === bindingValue.name">
<slot />
</div>
from vue3-contextmenu.
这个思路应该可行 @Hunlongyu 大佬有空添加下吗
1. ContextMenu 添加name属性
props: { cutomClass: String, name: String }
<context-menu name="contex-menu-1"> <context-menu-submenu :label="'查看'"> <context-menu-item :disabled="true">图标</context-menu-item> <context-menu-item>列表</context-menu-item> <context-menu-item>详细信息</context-menu-item> </context-menu-submenu> </context-menu> <context-menu name="contex-menu-2"> <context-menu-submenu :label="'查看'"> <context-menu-item :disabled="true">图标</context-menu-item> <context-menu-item>列表</context-menu-item> <context-menu-item>详细信息</context-menu-item> </context-menu-submenu> <context-menu-submenu :label="'查看'"> <context-menu-item :disabled="true">图标</context-menu-item> <context-menu-item>列表</context-menu-item> <context-menu-item>详细信息</context-menu-item> </context-menu-submenu> </context-menu>
2. 通过v-contextmenu参数配置指定要使用的menu name.
<div class="demo" v-contextmenu="{ name: 'contex-menu-1', id: '456'}">右键点击区域{id: '999'} 触发Menu 1</div> <div class="demo" v-contextmenu="{ name: 'contex-menu-2', id: '456'}">右键点击区域{id: '999'} 触发Menu 2 </div>
3. ContextMenu组件内添加if判断, 只显示指定name的menu
<div class="v-contextmenu" v-show="show" ref="contextmenu" v-if="bindingValue && name === bindingValue.name"> <slot /> </div>
层主可以提交 pr 嘛, 我最近太忙了,真的没有时间维护。
from vue3-contextmenu.
@Hunlongyu 已提交PR, 第一次提交,如有纰漏请多包涵和纠正 :D
from vue3-contextmenu.
哈哈,开源项目就是大家一起贡献,我已经合并,等会我重新打包,发布一个新版本到 npm 上
from vue3-contextmenu.
依赖已更新
同时欢迎大家一起贡献
from vue3-contextmenu.
@Hunlongyu 有个衍生问题,第一次显示ContextMenu时,参数结果是undefined未能正确传递.
<div class="v-contextmenu" v-show="show" ref="contextmenu" v-if="bindingValue && name === bindingValue.name">
改为
<div class="v-contextmenu" v-show="show && bindingValue && name === bindingValue.name" ref="contextmenu">
已提交PR.
from vue3-contextmenu.
Related Issues (19)
- ContextMenu触发点和菜单间传递变量 HOT 2
- 当右边宽度过小时,子菜单可以向左边展开吗
- npm 上不是最新版本
- NPM 上的代码(0.2.5)和 git 仓库里的代码对不上
- 'itemClickHandele' should be 'itemClickHandle' HOT 1
- Failed to resolve component: contextmenu
- Try `npm i --save-dev @types/vue3-contextmenu` if it exists or add a new declaration (.d.ts) file containing `declare module 'vue3-contextmenu';` HOT 1
- 使用Element 的 tree组件时,右键弹出菜单,再点击其他的选项,菜单不消失;应该是tree组件阻止了冒泡,可不可以暴露一个hideMenu的API HOT 2
- 很不幸 vue 升级到3.0.11后报错了! HOT 2
- vue 升级到 3.2.19版本后,报错!
- 请问event事件获取innerText如何操作?
- TypeError: Cannot read properties of null (reading 'isCE')
- npm 包中没有 .d.ts 类型定义
- 多个contextmenu 父子级关系 就只显示父级的菜单 HOT 2
- 安装问题
- disabled后的鼠标样式没生效,切修改后也无法生效
- 看看demo 的 样式问题
- 支持div嵌套吗
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vue3-contextmenu.