ruoyi-geek-App/plugins/bus.ts
2025-11-25 03:31:46 +08:00

29 lines
787 B
TypeScript

const event: { [key: string]: Function } = {}
/** 事件句柄 */
export default {
/** 绑定一个事件 */
$on(eventName: string, eventFun: Function) {
if (event.hasOwnProperty(eventName)) {
throw new Error(`存在事件 => ${eventName}`)
} else {
event[eventName] = eventFun
}
},
/** 解绑一个事件 */
$off(eventName: keyof typeof event) {
if (event.hasOwnProperty(eventName)) {
delete event[eventName]
} else {
throw new Error(`不存在事件 => ${eventName}`)
}
},
/** 触发一个事件 */
$emit<T>(eventName: keyof typeof event, ...args: any):T {
if (event.hasOwnProperty(eventName)) {
return event[eventName](...args)
} else {
throw new Error(`不存在事件 => ${eventName}`)
}
}
}