增加装饰器类 确认弹窗,loading,节流
This commit is contained in:
61
ui/lib/js/decorator.js
Normal file
61
ui/lib/js/decorator.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
import {Loading, MessageBox} from "element-ui";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认按钮
|
||||||
|
* @param content 提示信息
|
||||||
|
* @returns {(function(*, *, *): void)|*}
|
||||||
|
*/
|
||||||
|
export function confirm(content) {
|
||||||
|
return function (target, name, descriptor) {
|
||||||
|
const origin = descriptor.value
|
||||||
|
descriptor.value = function (...args) {
|
||||||
|
MessageBox.confirm(content, {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '确认',
|
||||||
|
center: true,
|
||||||
|
title: '提示',
|
||||||
|
dangerouslyUseHTMLString: true,
|
||||||
|
customClass: "AiConfirm",
|
||||||
|
}).then(origin.bind(this, ...args)).catch(() => 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 锁屏loading
|
||||||
|
* @returns {(function(*, *, *): void)|*}
|
||||||
|
*/
|
||||||
|
export function loading() {
|
||||||
|
return function (target, name, descriptor) {
|
||||||
|
const origin = descriptor.value
|
||||||
|
descriptor.value = async function (...args) {
|
||||||
|
const loading = Loading.service({fullscreen: true})
|
||||||
|
try {
|
||||||
|
await origin.apply(this, args)
|
||||||
|
} finally {
|
||||||
|
loading.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 节流装饰器
|
||||||
|
* @param wait 等待时间
|
||||||
|
* @returns {(function(*, *, *): void)|*}
|
||||||
|
*/
|
||||||
|
export function throttle(wait) {
|
||||||
|
return function (target, name, descriptor) {
|
||||||
|
const origin = descriptor.value
|
||||||
|
let lock = false
|
||||||
|
descriptor.value = function () {
|
||||||
|
if (!lock) {
|
||||||
|
lock = true
|
||||||
|
origin.apply(this, arguments)
|
||||||
|
setTimeout(() => {
|
||||||
|
lock = false
|
||||||
|
}, wait)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user