export default { keyList: {}, uniDoFunc(e = {}) { e.type = e.type || 'thro'; e.instant = (!e.instant?true : e.instant); switch (e.type) { case 'anti': { if (e.instant && !this.keyList[e.key]) { e.success && e.success(); } clearTimeout(this.keyList[e.key]) this.keyList[e.key] = setTimeout(() => { e.success && e.success(); this.releaseKey(e.key) }, e.time || 300); break; } case 'thro': { if (!this.keyList[e.key]) { if (e.instant) { this.lockKey(e.key); e.success && e.success(); } else { this.lockKey(e.key); } if (e.time) { setTimeout(() => { if (!e.instant) { e.success && e.success(); } this.releaseKey(e.key) }, e.time) } } else { e.fail && e.fail() } break; } } }, releaseKey(key) { delete this.keyList[key]; }, lockKey(key) { this.keyList[key] = true; } }