//处理断网重连后数据刷新的混入
export default {
    data() {
      return {
        // 注册需要在网络恢复时调用的方法名
        recoveryMethods: [],
        // 上次调用这些方法时的参数
        methodParams: {}
      };
    },
    
    methods: {
      /**
       * 注册需要在网络恢复时自动重新调用的方法
       * @param {String} methodName - 方法名
       * @param {*} params - 调用方法时需要的参数
       */
      registerRecoveryMethod(methodName, params) {
        if (typeof this[methodName] === 'function' && !this.recoveryMethods.includes(methodName)) {
          this.recoveryMethods.push(methodName);
          this.methodParams[methodName] = params;
          console.log(`[NetworkRecovery] 注册方法: ${methodName}`);
        }
      },
      
      /**
       * 更新方法的参数
       * @param {String} methodName - 方法名
       * @param {*} params - 新的参数
       */
      updateMethodParams(methodName, params) {
        if (this.recoveryMethods.includes(methodName)) {
          this.methodParams[methodName] = params;
        }
      },
      
      /**
       * 网络恢复后调用所有注册的方法
       */
      handleNetworkRecovery() {
        console.log('[NetworkRecovery] 网络已恢复，正在刷新数据...');
        this.recoveryMethods.forEach(methodName => {
          if (typeof this[methodName] === 'function') {
            const params = this.methodParams[methodName];
            console.log(`[NetworkRecovery] 重新调用方法: ${methodName}`);
            this[methodName](params);
          }
        });
      }
    },
    
    mounted() {
      // 监听网络恢复事件
      window.addEventListener('network-retry-complete', this.handleNetworkRecovery);
    },
    
    beforeDestroy() {
      // 清理事件监听
      window.removeEventListener('network-retry-complete', this.handleNetworkRecovery);
    }
  };