人狠话不多,v-number:WF="scope.row" 指令给指令value赋值为对象,arg参数未字面量,这样可以直接修改原始数据。
<template v-if="scope.row.edit">
<el-input v-model="scope.row.WF" v-number:WF="scope.row" />
</template>
let eventInputChange = (ev, el) => {
let { value } = ev.querySelector("input");
let reg = /[^\.^\d]/i;
value = value == "" ? "" : value.replace(reg, "");
// console.log(value);
el.value[el.arg] = value;
};
let eventInputBlur = (ev, el) => {
console.log(ev);
el.value[el.arg] = parseFloat(el.value[el.arg]);
};
export default {
bind(el, binding, vnode) {
let input = el.querySelector("input");
el.addEventListener("input", eventInputChange.bind(this, el, binding, vnode), false);
input.addEventListener("blur", eventInputBlur.bind(this, el, binding, vnode), false);
}
};