import {
  HTTP_REQUEST_URL,
  HEADER,
  TOKENNAME,
  HEADERPARAMS,
} from "@/config/app";
// import { toLogin, checkLogin } from "@/libs/login";
import { useToast } from "@/hooks/useToast";


/**
 * 发送请求
 */
function baseRequest(
  url,
  method,
  data,
  { noAuth = false, noVerify = false },
  params
) {
  const { Toast } = useToast();
  
  let Url = HTTP_REQUEST_URL,
    header = HEADER;

  if (params != undefined) {
    header = HEADERPARAMS;
  }

  return new Promise((reslove, reject) => {
    Url = HTTP_REQUEST_URL || "http://api.front.hdq.xbdzz.cn";
    uni.request({
      url: Url + "/api/front/" + url,
      method: method || "GET",
      header: header,
      timeout: 30000,
      data: data || {},
      success: (res) => {
        if (noVerify) reslove(res.data, res);
        else if (res.data.code == 200) reslove(res.data, res);
        else if ([410000, 410001, 410002, 401].indexOf(res.data.code) !== -1) {
          // toLogin();
          // goEasyService.disconnect()
          // goEasyService.destroy()
          reject(res.data);
        } else Toast({ title: res.data.message || "系统错误" });
        reject(res.data.message || "系统错误");
      },
      fail: (msg) => {
        Toast({ title: "请求失败" });
        reject("请求失败");
      },
    });
  });
}

const request = {};

["options", "get", "post", "put", "head", "delete", "trace", "connect"].forEach(
  (method) => {
    request[method] = (api, data, opt, params) =>
      baseRequest(api, method, data, opt || {}, params);
  }
);

export default request;