113 lines
3.3 KiB
JavaScript
113 lines
3.3 KiB
JavaScript
|
|
"use strict";
|
|||
|
|
const common_vendor = require("../common/vendor.js");
|
|||
|
|
const ENV_CONFIG = {
|
|||
|
|
develop: {
|
|||
|
|
loadingText: "开发环境加载中~",
|
|||
|
|
loadingTime: 100
|
|||
|
|
},
|
|||
|
|
trial: {
|
|||
|
|
loadingText: "体验版加载中~",
|
|||
|
|
loadingTime: 100
|
|||
|
|
},
|
|||
|
|
release: {
|
|||
|
|
loadingText: "加载中~",
|
|||
|
|
loadingTime: 100
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
const getCurrentConfig = () => {
|
|||
|
|
try {
|
|||
|
|
const { envVersion } = common_vendor.wx$1.getAccountInfoSync().miniProgram;
|
|||
|
|
common_vendor.index.__f__("log", "at utils/loading-manager.js:26", "当前环境:", envVersion);
|
|||
|
|
return ENV_CONFIG[envVersion] || ENV_CONFIG.release;
|
|||
|
|
} catch (error) {
|
|||
|
|
common_vendor.index.__f__("warn", "at utils/loading-manager.js:29", "获取环境失败,默认使用正式环境:", error);
|
|||
|
|
return ENV_CONFIG.release;
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
const config = getCurrentConfig();
|
|||
|
|
let isLoading = false;
|
|||
|
|
let loadingTimer = null;
|
|||
|
|
let loadingCount = 0;
|
|||
|
|
const setLoadingTimeout = () => {
|
|||
|
|
if (loadingTimer) {
|
|||
|
|
clearTimeout(loadingTimer);
|
|||
|
|
}
|
|||
|
|
loadingTimer = setTimeout(() => {
|
|||
|
|
common_vendor.index.__f__("warn", "at utils/loading-manager.js:49", "Loading超时,强制清除");
|
|||
|
|
forceHideLoading();
|
|||
|
|
}, 3e4);
|
|||
|
|
};
|
|||
|
|
function showLoading(text = config.loadingText) {
|
|||
|
|
try {
|
|||
|
|
loadingCount++;
|
|||
|
|
if (!isLoading) {
|
|||
|
|
isLoading = true;
|
|||
|
|
common_vendor.index.showLoading({
|
|||
|
|
title: text,
|
|||
|
|
mask: true
|
|||
|
|
});
|
|||
|
|
setLoadingTimeout();
|
|||
|
|
common_vendor.index.__f__("log", "at utils/loading-manager.js:69", "显示Loading:", text);
|
|||
|
|
}
|
|||
|
|
} catch (error) {
|
|||
|
|
common_vendor.index.__f__("warn", "at utils/loading-manager.js:72", "显示loading失败:", error);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
function hideLoading() {
|
|||
|
|
try {
|
|||
|
|
loadingCount--;
|
|||
|
|
if (loadingCount > 0) {
|
|||
|
|
common_vendor.index.__f__("log", "at utils/loading-manager.js:83", "还有其他请求在进行,不隐藏Loading, 剩余请求数:", loadingCount);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (isLoading) {
|
|||
|
|
isLoading = false;
|
|||
|
|
if (loadingTimer) {
|
|||
|
|
clearTimeout(loadingTimer);
|
|||
|
|
loadingTimer = null;
|
|||
|
|
}
|
|||
|
|
common_vendor.index.hideLoading();
|
|||
|
|
common_vendor.index.__f__("log", "at utils/loading-manager.js:94", "隐藏Loading");
|
|||
|
|
}
|
|||
|
|
} catch (error) {
|
|||
|
|
common_vendor.index.__f__("warn", "at utils/loading-manager.js:97", "隐藏loading失败:", error);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
function forceHideLoading() {
|
|||
|
|
try {
|
|||
|
|
isLoading = false;
|
|||
|
|
loadingCount = 0;
|
|||
|
|
if (loadingTimer) {
|
|||
|
|
clearTimeout(loadingTimer);
|
|||
|
|
loadingTimer = null;
|
|||
|
|
}
|
|||
|
|
common_vendor.index.hideLoading();
|
|||
|
|
common_vendor.index.__f__("log", "at utils/loading-manager.js:113", "强制隐藏Loading");
|
|||
|
|
} catch (error) {
|
|||
|
|
common_vendor.index.__f__("warn", "at utils/loading-manager.js:115", "强制隐藏loading失败:", error);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
class AutoLoadingManager {
|
|||
|
|
constructor() {
|
|||
|
|
this.isActive = false;
|
|||
|
|
}
|
|||
|
|
// 显示loading(可选)
|
|||
|
|
show(text = "加载中...") {
|
|||
|
|
this.isActive = true;
|
|||
|
|
}
|
|||
|
|
// 隐藏loading(可选)
|
|||
|
|
hide() {
|
|||
|
|
this.isActive = false;
|
|||
|
|
}
|
|||
|
|
// 销毁管理器
|
|||
|
|
destroy() {
|
|||
|
|
this.isActive = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
exports.AutoLoadingManager = AutoLoadingManager;
|
|||
|
|
exports.config = config;
|
|||
|
|
exports.forceHideLoading = forceHideLoading;
|
|||
|
|
exports.hideLoading = hideLoading;
|
|||
|
|
exports.showLoading = showLoading;
|
|||
|
|
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/loading-manager.js.map
|