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
|
|
}
|
|
}
|