import Vue from 'vue'

//input 限制输入正整数
//v-toInt={maxNum: 最大值,notNum:不等于}
Vue.directive('toInt', {
    // 指令的定义
    inserted: function(el, binding, vnode) {
        let dom = null
        if (el.tagName == 'INPUT') {
            dom = el
        } else {
            dom = el.querySelector('input')
        }
        dom.addEventListener("input", function() {
            //进行验证
            if (binding.value) {
                checkedfun(dom, binding.value.maxNum, binding.value.notNum)
            } else {
                checkedfun(dom, null, null)
            }
        });
        function checkedfun(el, maxNum, notNum) {
            if (maxNum && el.value > maxNum) {
                el.value = maxNum
                el.dispatchEvent(new Event("input"));//调用input事件使vue v-model绑定更新
            }
            if (notNum && typeof (notNum) !=='undefined' && el.value === notNum.toString()) {
                el.value = ''
                el.dispatchEvent(new Event("input"));//调用input事件使vue v-model绑定更新
            }

        let reg = new RegExp("^[0-9]*$");
            if (!reg.test(el.value)) {
                el.value = el.value.replace(/[^0-9]+/g, "");
                el.dispatchEvent(new Event("input"));//调用input事件使vue v-model绑定更新
            }
        }
    }
})