/*
|
* @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;
|