(e, isSubMenu = false, groupId = null, isClickMenu = true)
| 103 | |
| 104 | } |
| 105 | function openMenu (e, isSubMenu = false, groupId = null, isClickMenu = true) { |
| 106 | // isSubMenu 是否点击的子菜单根节点 |
| 107 | // groupId 点击子菜单根节点的 groupId |
| 108 | // isClickMenu 是否点击的菜单 |
| 109 | if (e.target.tagName === 'UL' || !isClickMenu) { |
| 110 | isShowMenu && setIsShowMenu(false) // 不显示菜单 并把菜单关掉 |
| 111 | e.preventDefault() |
| 112 | return; |
| 113 | }; |
| 114 | const id = e.target.dataset.id || e.target.parentElement.dataset.id |
| 115 | if (!props.nowId.includes(id)) {// 右键的那个元素不包含在nowId中 则替换 |
| 116 | props.onPropertyChange({ selectKeys: [id] }, null, 'layerClick'); |
| 117 | } |
| 118 | // 点击 submenu && 不是点击menu-item |
| 119 | if (isSubMenu && !id) { |
| 120 | props.onPropertyChange({ groupId }, null, 'layerClickGroup'); // 发送点击组事件 |
| 121 | setIsClickSubMenu(true) // 右键点击submenu |
| 122 | } else { |
| 123 | setIsClickSubMenu(false) |
| 124 | } |
| 125 | setMenuStatus(getGuid()) // 确保再次右键弹出菜单 |
| 126 | const property = { |
| 127 | clientX: e.clientX, |
| 128 | clientY: e.clientY |
| 129 | } |
| 130 | setEventProperty(property) |
| 131 | setIsShowMenu(true) |
| 132 | isSubMenu && e.stopPropagation() // 点击submenu阻止冒泡 |
| 133 | e.preventDefault() |
| 134 | } |
| 135 | function allowDrop (e) { |
| 136 | e.preventDefault() |
| 137 | } |
no test coverage detected