import request from "@/utils/request";

export const userApi = {
  // 账号密码登录 - 显示自定义 loading 文字
  accountLogin(data, onComplete) {
    // 在第一次登录的时候拿到旧的设备信息，deviceId改为用户名+设备型号
    const deviceInfo = uni.getStorageSync("deviceInfo");
    const newDeviceInfo = {
      ...deviceInfo,
      deviceId: `(${data.yhm})${deviceInfo.model}`,
    }
    uni.setStorageSync("deviceInfo", newDeviceInfo)

    const promise = request.post(
      `/service?ssServ=ssLogin&yhm=${data.yhm}&mm=${data.mm}&wdConfirmationCaptchaService=0&wechatCode=${data.wechatCode}`,
      data,
      {
        loading: false, // 禁用全局 loading，由登录页面自己控制
        request: {
          timeout: 15000 // 登录请求 15 秒超时
        }
      }
    );

    // 无论成功还是失败，都调用完成回调
    if (onComplete) {
      promise.finally(() => {
        onComplete()
      })
    }

    return promise;
  },

  // 扫码登录门系统
  sacnGateLoginQrcode(data){
    return request.post( `/service?ssServ=sacnGateLoginQrcode`,
      data,
      {
        loading: true,
        formData: true,
      }
    );  
  },

  // 扫码登录pc端
  sacnLoginQrcode(data){
    return request.post( `/service?ssServ=sacnLoginQrcode`,
      data,
      {
        loading: true,
        formData: true,
      }
    );  
  },

  // 自动登录 - 静默登录，不显示 loading
  autoLogin(data) {
    return request.post(
      `/service?ssServ=ssLogin&wdConfirmationCaptchaService=0&mdToken=${data.mdToken}`,
      data,
      {
        loading: false // 自动登录不显示 loading，避免打扰用户
      }
    );
  },

  // 微信登录 - 自定义 loading
  wechatLogin(data, onComplete) {
    const promise = request.post(
      `/service?ssServ=ssLogin&wdConfirmationCaptchaService=0`,
      data,
      {
        loading: false, // 禁用全局 loading，由登录页面自己控制
        request: {
          timeout: 15000 // 微信登录请求 15 秒超时
        }
      }
    );

    // 无论成功还是失败，都调用完成回调
    if (onComplete) {
      promise.finally(() => {
        onComplete()
      })
    }

    return promise;
  },

  // 获取小程序用户信息
  mp_infoHomep_load(data){
    return request.post( `/service?ssServ=mp_infoHomep_load`,
      data,
      {
        loading: true,
        formData: true,
      }
    );  
  },

  // 通用服务调用（用于首页动态按钮状态查询）
  callService(ssServ, data = {}, options = {}) {
    return request.post(
      `/service?ssServ=${ssServ}`,
      data,
      {
        loading: false,
        formData: true,
        ...options
      }
    );
  },

  // 更新用户密码和信息
  updPwd(data){
    return request.post( `/service?ssServ=updPwd`,
      data,
      {
        loading: true,
        formData: true,
      }
    );
  },
 
};
