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
|