diff --git a/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue b/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue index c9bb269508..18d04c2c67 100644 --- a/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue +++ b/frontend/src/business/components/api/automation/scenario/EditApiScenario.vue @@ -1,41 +1,42 @@ diff --git a/frontend/src/common/js/outside-click.js b/frontend/src/common/js/outside-click.js new file mode 100644 index 0000000000..7431be960d --- /dev/null +++ b/frontend/src/common/js/outside-click.js @@ -0,0 +1,31 @@ +const OutsideClick = { + // 初始化指令 + bind(el, binding, vnode) { + function documentHandler(e) { + // 这里判断点击的元素是否是本身,是本身,则返回 + if (el.contains(e.target)) { + return false; + } + // 判断指令中是否绑定了函数 + if (binding.expression) { + // 如果绑定了函数 则调用那个函数,此处binding.value就是handleClose方法 + binding.value(e); + } + } + + // 给当前元素绑定个私有变量,方便在unbind中可以解除事件监听 + el.__vueClickOutside__ = documentHandler; + document.addEventListener('click', documentHandler); + }, + update() { + }, + unbind(el, binding) { + // 解除事件监听 + document.removeEventListener('click', el.__vueClickOutside__); + delete el.__vueClickOutside__; + }, +}; + +export default OutsideClick; + +