36 lines
584 B
TypeScript
36 lines
584 B
TypeScript
|
import { ref } from 'vue'
|
||
|
interface MenuItem {
|
||
|
text: string
|
||
|
click: () => void
|
||
|
keyCode?: string
|
||
|
}
|
||
|
interface ShowMenuConfig {
|
||
|
x: number
|
||
|
y: number
|
||
|
items: MenuItem[]
|
||
|
}
|
||
|
const visible = ref()
|
||
|
const x = ref()
|
||
|
const y = ref()
|
||
|
const items = ref<MenuItem[]>()
|
||
|
|
||
|
export function useRightMenu() {
|
||
|
function showMenu(config: ShowMenuConfig) {
|
||
|
x.value = config.x
|
||
|
y.value = config.y
|
||
|
items.value = config.items
|
||
|
visible.value = true
|
||
|
}
|
||
|
function hideMenu() {
|
||
|
visible.value = false
|
||
|
}
|
||
|
return {
|
||
|
x,
|
||
|
y,
|
||
|
items,
|
||
|
visible,
|
||
|
showMenu,
|
||
|
hideMenu
|
||
|
}
|
||
|
}
|