import login from "./login";

export default function xFetch({ url, method, data, type }) {
    if (type == 'binding') {
        url = `${getApp().globalData.globalUrl2}${url}`
    } else {
        url = `${getApp().globalData.globalUrl}${url}`
    }
    return new Promise((resolve, rejects) => {
        dd.httpRequest({
            headers: {
                "Content-Type": "application/json;charset=UTF-8",
                Authorization: `Bearer ${getApp().globalData.token}`
            },
            url: url,
            method: method,
            dataType: "json",
            data: data,
            timeout: 15000,
            success: function (res) {
                if (res.data.code == 0) {
                    resolve(res);
                } else {
                    if (res.data.code == 401) {
                        login();
                    }
                    alertOnce(res.data.msg || '请求异常,请重试', rejects);
                }
            },
            fail: function (err) {
                console.log('err', JSON.stringify(err))
                if (err && err.status == 401) {
                    login();
                }
                alertOnce((err && err.errorMsg) || '网络异常,请重试', rejects);
            }
        });
    });
}

let alert = false;
function alertOnce(content, rejects) {
    if (alert == false) {
        dd.alert({
            content: content,
            buttonText: "确定",
            success: () => {
                rejects({ refresh: true });
                alert = false;
            }
        });
    }
    alert = true;
}