zhangxiao
2024-08-21 406a398a94d54b854472063f219ae87e8fcf4a98
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { Message } from "@arco-design/web-vue";
import i18n from "@/locales";
 
let reqNum = 0;
const loading = {
    showToast(err: any): void {
        Message.error(err.message || err.msg || err);
    },
    showLoading(): void {
        if (reqNum === 0) {
            Message.loading({
                content: i18n.global.t("加载中..."),
                duration: 0
            });
        }
        reqNum++;
    },
    clearLoading(): Promise<boolean> {
        /** 合并loading */
        return new Promise((resolve) => {
            setTimeout(() => {
                closeLoading();
                resolve(true);
            }, 300);
        });
    },
    clearToast(): void {
        Message.clear();
    }
};
/** 关闭loading */
function closeLoading(): void {
    if (reqNum <= 0) {
        return;
    }
    reqNum--;
    if (reqNum === 0) {
        Message.clear();
    }
}
 
export default loading;