69 lines
1.6 KiB
JavaScript
69 lines
1.6 KiB
JavaScript
import { Loading } from 'element-ui';
|
||
|
||
class Utils {
|
||
|
||
constructor() { }
|
||
|
||
/**
|
||
* 初始化链接列表,设置唯一ID
|
||
*/
|
||
initNavLinkID() {
|
||
// 加载中提示
|
||
var loading = Loading.service({
|
||
customClass: 'loading-link',
|
||
lock: true,
|
||
spinner: 'el-icon-loading',
|
||
text: '载入中,请稍候'
|
||
});
|
||
|
||
var currentIndex = 0;
|
||
var currentIndexCpy = 0;
|
||
|
||
var fn = (obj) => {
|
||
currentIndex += 1;
|
||
obj.id = currentIndex;
|
||
|
||
// 有链接,无子路径
|
||
if (obj.links != undefined && obj.sub === undefined) {
|
||
obj.sub = [];
|
||
}
|
||
|
||
// 递归
|
||
if (obj.links != undefined) {
|
||
obj.links.forEach(item => {
|
||
// 添加到子路径(适配 Element UI - Tree)
|
||
obj.sub.push(item);
|
||
});
|
||
}
|
||
|
||
// 递归
|
||
if (obj.sub != undefined) {
|
||
obj.sub.forEach(item => {
|
||
setTimeout(() => {
|
||
fn(item);
|
||
}, 0);
|
||
});
|
||
}
|
||
};
|
||
|
||
// 检测 currentIndex 是否已停止变化
|
||
var timer = setInterval(() => {
|
||
if (currentIndex == currentIndexCpy) {
|
||
clearInterval(timer);
|
||
// 加载中提示
|
||
loading.close();
|
||
}
|
||
|
||
// 同步
|
||
currentIndexCpy = currentIndex;
|
||
}, 1000);
|
||
|
||
return fn;
|
||
}
|
||
|
||
}
|
||
|
||
const utils = new Utils;
|
||
|
||
export default utils;
|