//自动记录请求参数，并支持断网重连，创建一个函数装饰器
/**
 * 包装请求方法，自动注册断网重连恢复
 * @param {Object} component - 组件实例
 * @param {String} methodName - 方法名
 * @param {Function} originalMethod - 原始方法
 * @returns {Function} 包装后的方法
 */
export function wrapRequestMethod(component, methodName, originalMethod) {
    return async function(...args) {
      // 注册为恢复方法（仅当组件支持断网重连恢复）
      if (component.registerRecoveryMethod) {
        component.registerRecoveryMethod(methodName, args[0]);
      }
      
      // 调用原始方法
      return await originalMethod.apply(component, args);
    };
  }
  
  /**
   * 自动包装组件中的所有请求方法
   * @param {Object} component - 组件实例
   * @param {Array<String>} methodNames - 方法名列表
   */
  export function wrapComponentMethods(component, methodNames) {
    methodNames.forEach(methodName => {
      if (typeof component[methodName] === 'function') {
        const originalMethod = component[methodName];
        component[methodName] = wrapRequestMethod(component, methodName, originalMethod);
        console.log(`[RequestWrapper] 包装方法: ${methodName}`);
      }
    });
  }