Forráskód Böngészése

fix:修复数据联动存在的问题

liu.shiyi 1 éve
szülő
commit
a733617e36
1 módosított fájl, 30 hozzáadás és 22 törlés
  1. 30 22
      data-room-ui/packages/js/utils/eventBus.js

+ 30 - 22
data-room-ui/packages/js/utils/eventBus.js

@@ -1,26 +1,34 @@
-import Vue from 'vue'
-export const EventBus = new Vue()
+import Vue from 'vue';
 
-export function dataInit (_this) {
+// 创建全局唯一的 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) => {
-    // eslint-disable-next-line no-unused-expressions
-    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]) {
-          if (_this.$refs[com.componentKey].dataInit) {
-            _this.$refs[com.componentKey].dataInit(filterList)
-          }
-        }
-      })
-    })
-  })
+    // 在回调中调用处理函数并传递组件实例
+    dataInitHandler(_this, formData, bindComponents);
+  });
 }
-export function destroyedEvent () {
-  EventBus.$off('dataInit')
+
+export function destroyedEvent() {
+  EventBus.$off('dataInit', dataInitHandler);
 }