forked from gzzfw/frontEnd/gzDyh

dminyi
2024-09-12 d3658688d0ae3b735ef8b257f8986c3ed6560202
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/*
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-02-26 18:14:47
 * @LastEditTime: 2022-11-30 13:21:03
 * @LastEditors: ldh
 * @Version: 1.0.0
 * @Description: 公共loading组件
 */
import React, { useEffect, useState } from 'react';
import { Spin } from 'antd';
import './index.less';
 
const Loading = () => {
    const [spinning, setSpinning] = useState(false);
 
    useEffect(() => {
        // 可以减少多次loading
        global.spin = 0;
        global.setSpinning = (value, isOnly) => {
            if (value) {
                if (global.spin) {
                    global.spin = global.spin + 1;
                    return;
                }
                global.spin = 1;
                setSpinning(true);
            } else {
                if (isOnly) {
                    global.spin = 0;
                    setSpinning(false);
                    return;
                } else {
                    global.spin = global.spin - 1;
                    if (global.spin) return;
                    setSpinning(false);
                }
            }
        };
        return () => {
            global.spin = void 0;
            global.setSpinning = void 0;
        };
    }, []);
 
    const isNav = !document.getElementById('nav');
 
    return (
        !!spinning && (
            <div className="loading" style={{ left: isNav ? 0 : document.getElementById('nav').clientWidth }}>
                <Spin tip={spinning === true ? '加载中...' : spinning || ''} size="large" />
            </div>
        )
    );
};
 
export default Loading;