41 lines
		
	
	
		
			873 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			873 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import {directive as viewer} from '../cdn/v-viewer/1.7.4/v-viewer'
 | |
| 
 | |
| const map = {
 | |
|   throttle: {
 | |
|     bind: function (el, obj) {
 | |
|       let timerId = null
 | |
|       let flag = true
 | |
| 
 | |
|       el.addEventListener('input', function () {
 | |
|         if (!flag) return
 | |
| 
 | |
|         flag = false
 | |
|         timerId && clearTimeout(timerId)
 | |
|         timerId = setTimeout(function () {
 | |
|           flag = true
 | |
|           obj.value()
 | |
|         }, 800)
 | |
|       })
 | |
|     }
 | |
|   },
 | |
|   permit: {
 | |
|     bind(el, binding) {
 | |
|       const code = binding.value
 | |
|       const permits = JSON.parse(localStorage.getItem('vuex') || null)?.user?.info?.buttons || []
 | |
|       if (!permits.find(e => e.id == code || e.permission == code)) {
 | |
|         el.style.display = 'none'
 | |
|       }
 | |
|     }
 | |
|   },
 | |
|   viewer: viewer({debug: false})
 | |
| }
 | |
| 
 | |
| 
 | |
| export default {
 | |
|   install(Vue) {
 | |
|     for (const key in map) {
 | |
|       Vue.directive(key, map[key])
 | |
|     }
 | |
|   }
 | |
| }
 |