增加装饰器类 确认弹窗,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