import Vue from 'vue'; // 创建全局唯一的 EventBus 实例 export const EventBus = new Vue(); // 创建唯一的事件处理函数 function dataInitHandler(_this, formData, bindComponents) { bindComponents?.forEach(com => { const maps = com.maps; const filterList = maps?.map(param => ({ column: param.targetField, operator: param.queryRule, value: formData[param.sourceField], })); _this.$nextTick(() => { if (_this.$refs[com.componentKey] && _this.$refs[com.componentKey].dataInit) { _this.$refs[com.componentKey].dataInit(filterList); } }); }); } // 注册事件监听器 export function dataInit(_this) { EventBus.$on('dataInit', (formData, bindComponents) => { // 在回调中调用处理函数并传递组件实例 dataInitHandler(_this, formData, bindComponents); }); } export function destroyedEvent() { EventBus.$off('dataInit', dataInitHandler); }