1
0
forked from dyf/APP
Files
APP/utils/MsgPops.js
2026-04-07 11:25:23 +08:00

202 lines
3.2 KiB
JavaScript

var MsgType = {
error: "error",
succ: "succ",
warn: "warn",
info:'info',
prompt:'prompt'
}
var time = null;
// 显示成功
export const MsgSuccess = (msg, btnTxt, ev,tapCallback) => {
if (!ev) {
return null;
}
if (!ev.$refs.msgPop) {
return null;
}
let option = ev.$refs.msgPop.showMsg(msg, btnTxt, MsgType.succ,tapCallback);
createClear(ev);
return option;
}
//显示失败
export const MsgError = (msg, btnTxt, ev,tapCallback) => {
if (!ev) {
return null;
}
if (!ev.$refs.msgPop) {
return null;
}
let option = ev.$refs.msgPop.showMsg(msg, btnTxt, MsgType.error,tapCallback);
createClear(ev);
return option;
}
//显示警告
export const MsgWarning = (msg, btnTxt, ev, isClear,tapCallback) => {
if (!ev) {
return null;
}
if (!ev.$refs.msgPop) {
return null;
}
let option = ev.$refs.msgPop.showMsg(msg, btnTxt, MsgType.warn,tapCallback);
if (isClear === undefined || isClear) {
createClear(ev);
}
return option;
}
//显示警告
export const MsgInfo = (msg, btnTxt, ev, isClear,btnCallback) => {
if (!ev) {
return null;
}
if (!ev.$refs.msgPop) {
return null;
}
let option = ev.$refs.msgPop.showMsg(msg, btnTxt, MsgType.info,btnCallback);
if (isClear === undefined || isClear) {
createClear(ev);
}
return option;
}
//显示捕获窗口,用于自定义弹窗内容
export const MsgPrompt = ( ev,refName, btnCallback,isClear) => {
if (!ev) {
return null;
}
if (!ev.$refs[refName]) {
return null;
}
let option = ev.$refs[refName].showMsg("", "", MsgType.prompt,btnCallback);
if (isClear === undefined || isClear) {
createClear(ev);
}
return option;
}
// 隐藏loading
export const MsgClose = (options, ev) => {
if (!ev) {
return;
}
if (!ev.$refs.msgPop) {
return;
}
if (typeof(options) == 'string') {
options = {
key: options
}
}
ev.$refs.msgPop.closePop(options);
}
export const showPop = (options, ev, isClear) => {
if (!ev) {
return null;
}
if (!ev.$refs.msgPop) {
return null;
}
let option = ev.$refs.msgPop.showPop(options);
if (isClear === undefined || isClear) {
createClear(ev);
}
return option;
}
const createClear = (ev) => {
let cnt = getPops(ev);
if (cnt >= 5) {
clearTimeout(time);
time = setTimeout(() => {
let key = new Date().getTime();
showPop({
key: key,
message: "消息太多, 是否全部关闭",
iconUrl: "/static/images/common/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
buttonText: '全部关闭',
buttonTextColor: '#232323de',
showCancel: true,
buttonCancelText: "取消",
cancelCallback: () => {
MsgClose(key, ev);
},
okCallback: function() {
MsgClear(ev);
}
}, ev, false);
}, 500);
}
}
//获取当前弹窗数量
export const getPops = (ev) => {
if (!ev) {
return null;
}
if (!ev.$refs.msgPop) {
return null;
}
return ev.$refs.msgPop.getPops();
}
//清空所有弹窗
export const MsgClear = (ev) => {
if (!ev) {
return null;
}
if (!ev.$refs.msgPop) {
return null;
}
return ev.$refs.msgPop.clearPops();
}