fix:v-clickoutsize指令兼容旧的调用方式

This commit is contained in:
wangwenrui
2021-01-20 17:43:41 +08:00
parent 4f8a7a6f49
commit a898220c55

View File

@@ -7,8 +7,13 @@ const exceptClassName = ["config-dropdown", "nz-pop", "el-picker", "chart-box-dr
export const clickoutside = { export const clickoutside = {
// 初始化指令 // 初始化指令
bind(el, binding, vnode) { bind(el, binding, vnode) {
if(!binding.value||!binding.value.obj) return; if(!binding.expression) return;
let oldValue = JSON.parse(JSON.stringify(binding.value.obj)); let oldValue;
try{
oldValue= JSON.parse(JSON.stringify(binding.value.obj));
}catch (e) {
}
function documentHandler(e) { function documentHandler(e) {
if (el.contains(e.target)) { if (el.contains(e.target)) {
return false; return false;
@@ -26,7 +31,7 @@ export const clickoutside = {
if (!flag) { if (!flag) {
return false; return false;
} }
if(oldValue){
let newValue = JSON.parse(JSON.stringify(binding.value.obj)); let newValue = JSON.parse(JSON.stringify(binding.value.obj));
if(!isEqual(oldValue,newValue)){ if(!isEqual(oldValue,newValue)){
MessageBox.confirm(i18n.t("tip.confirmCancel"), { MessageBox.confirm(i18n.t("tip.confirmCancel"), {
@@ -41,6 +46,15 @@ export const clickoutside = {
}else{ }else{
binding.value.func(); binding.value.func();
} }
}else{
if (binding.arg) {
binding.value(e, binding.arg);
} else {
if(binding.value){
binding.value(e);
}
}
}
} }
} }