feat: 增加侧滑点击外部关闭的功能

1.增加:config-account、config-promserver、alert-rule
This commit is contained in:
陈劲松
2020-02-25 18:59:23 +08:00
parent 16771a49bd
commit 9b91b74adb
5 changed files with 37 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
<template> <template>
<transition name="right-box"> <transition name="right-box">
<div class="right-box right-box-alert-config" v-if="rightBox.show"> <div class="right-box right-box-alert-config" v-if="rightBox.show" v-clickoutside="clickos">
<!-- begin--顶部按钮--> <!-- begin--顶部按钮-->
<div class="right-box-top-btns"> <div class="right-box-top-btns">
<button type="button" v-if="alertRule.id != '' && rightBox.isEdit" id="alert-box-del" @click="del" class="nz-btn nz-btn-size-normal nz-btn-size-alien nz-btn-style-light nz-btn-min-width-82"> <button type="button" v-if="alertRule.id != '' && rightBox.isEdit" id="alert-box-del" @click="del" class="nz-btn nz-btn-size-normal nz-btn-size-alien nz-btn-style-light nz-btn-min-width-82">
@@ -57,7 +57,7 @@
<el-form-item :label="$t('alert.severity')" prop="severity"> <el-form-item :label="$t('alert.severity')" prop="severity">
<el-select v-if="rightBox.isEdit" popper-class="config-dropdown" v-model="alertRule.severity" placeholder="" size="small"> <el-select v-if="rightBox.isEdit" popper-class="config-dropdown" v-model="alertRule.severity" placeholder="" size="small">
<el-option :id="'alert-severity-'+item.key" v-for="item in severityData" :key="item.key" :label="item.value" :value="item.key"> <el-option :id="'alert-severity-'+item.key" v-for="item in severityData" :key="item.key" :label="item.value" :value="item.key">
<span class="config-dropdown-label-txt" v-if="!item.isEdit">{{item.value}}</span> <template v-if="!item.isEdit">{{item.value}}</template>
<span class="config-dropdown-label-input" v-if="item.isEdit" @click.stop> <span class="config-dropdown-label-input" v-if="item.isEdit" @click.stop>
<el-input type="text" v-model="item.name" size="mini"></el-input> <el-input type="text" v-model="item.name" size="mini"></el-input>
</span> </span>
@@ -207,6 +207,9 @@
} }
}, },
methods: { methods: {
clickos() {
this.rightBox.show = false;
},
show(show, isEdit) { show(show, isEdit) {
this.rightBox.show = show; this.rightBox.show = show;
this.rightBox.isEdit = isEdit; this.rightBox.isEdit = isEdit;

View File

@@ -1,6 +1,6 @@
<template> <template>
<transition name="right-box"> <transition name="right-box">
<div class="right-box right-box-dc" v-if="rightBox.show"> <div class="right-box right-box-dc" v-if="rightBox.show" v-clickoutside="clickos">
<!-- begin--顶部按钮--> <!-- begin--顶部按钮-->
<div class="right-box-top-btns"> <div class="right-box-top-btns">
<button id="dc-del" type="button" v-if="currentDc.id != '' && rightBox.isEdit" @click="del" class="nz-btn nz-btn-size-normal nz-btn-size-alien nz-btn-style-light nz-btn-min-width-82"> <button id="dc-del" type="button" v-if="currentDc.id != '' && rightBox.isEdit" @click="del" class="nz-btn nz-btn-size-normal nz-btn-size-alien nz-btn-style-light nz-btn-min-width-82">
@@ -101,6 +101,7 @@
}, },
rightBox: { rightBox: {
show: false, show: false,
firstShow: false,
title: '', title: '',
isEdit: false isEdit: false
}, },
@@ -162,10 +163,13 @@
this.rightBox.show = show; this.rightBox.show = show;
this.rightBox.isEdit = isEdit; this.rightBox.isEdit = isEdit;
}, },
clickos() {
//this.rightBox.show = false;
},
/*关闭弹框*/ /*关闭弹框*/
esc() { esc() {
this.rightBox.show = false; this.rightBox.show = false;
this.rightBox.firstShow = false;
}, },
/*弹出选择area弹框*/ /*弹出选择area弹框*/

View File

@@ -85,7 +85,7 @@
</div> </div>
<transition name="right-box"> <transition name="right-box">
<div class="right-box right-box-account" v-if="rightBox.show"> <div class="right-box right-box-account" v-if="rightBox.show" v-clickoutside="clickos">
<!-- begin--顶部按钮--> <!-- begin--顶部按钮-->
<div class="right-box-top-btns"> <div class="right-box-top-btns">
<button type="button" v-if="user.userId != '' && rightBox.isEdit" @click="del(user)" <button type="button" v-if="user.userId != '' && rightBox.isEdit" @click="del(user)"
@@ -308,6 +308,9 @@
this.$store.commit('setHeaderTable', data); this.$store.commit('setHeaderTable', data);
this.tablelable = data; this.tablelable = data;
}, },
clickos() {
this.rightBox.show = false;
},
edit: function (u) { edit: function (u) {
this.user = Object.assign({}, u); this.user = Object.assign({}, u);
this.rightBox.isEdit = true; this.rightBox.isEdit = true;

View File

@@ -78,7 +78,7 @@
</div> </div>
<transition name="right-box"> <transition name="right-box">
<div class="right-box right-box-prom" v-if="rightBox.show"> <div class="right-box right-box-prom" v-if="rightBox.show" v-clickoutside="clickos">
<!-- begin--顶部按钮--> <!-- begin--顶部按钮-->
<div class="right-box-top-btns"> <div class="right-box-top-btns">
<button type="button" v-if="rightBox.isEdit && promServer.id != ''" @click="del(promServer)" <button type="button" v-if="rightBox.isEdit && promServer.id != ''" @click="del(promServer)"
@@ -364,6 +364,9 @@
this.$store.commit('setHeaderTable', data); this.$store.commit('setHeaderTable', data);
this.tablelable = data; this.tablelable = data;
}, },
clickos() {
this.rightBox.show = false;
},
toEdit: function (u) { toEdit: function (u) {
this.promServer = Object.assign({}, u); this.promServer = Object.assign({}, u);
this.rightBox.isEdit = true; this.rightBox.isEdit = true;

View File

@@ -65,13 +65,28 @@ Vue.use(ElementUI);
Vue.use(Vuex); Vue.use(Vuex);
Vue.use(VueResource); Vue.use(VueResource);
const exceptClassName = [];
const clickoutside = { const clickoutside = {
// 初始化指令 // 初始化指令
bind(el, binding, vnode) { bind(el, binding, vnode) {
function documentHandler(e) { function documentHandler(e) {
// 这里判断点击的元素是否是本身,是本身,则返回
if (el.contains(e.target)) { if (el.contains(e.target)) {
return false; return false;
} else {
let flag = true;
let attrs = e.target.attributes;
for (let i = 0; i < attrs.length; i++) {
if (attrs[i].name == 'class') {
console.info(attrs[i].value)
if ((attrs[i].value + '').indexOf("el-select-dropdown") != -1) {
flag = false;
break;
}
}
}
if (!flag) {
return false;
}
} }
// 判断指令中是否绑定了函数 // 判断指令中是否绑定了函数
if (binding.expression) { if (binding.expression) {
@@ -87,11 +102,11 @@ const clickoutside = {
// 给当前元素绑定个私有变量方便在unbind中可以解除事件监听 // 给当前元素绑定个私有变量方便在unbind中可以解除事件监听
el.__vueClickOutside__ = documentHandler; el.__vueClickOutside__ = documentHandler;
document.addEventListener('click', documentHandler); document.addEventListener('mousedown', documentHandler);
}, },
unbind(el, binding) { unbind(el, binding) {
// 解除事件监听 // 解除事件监听
document.removeEventListener('click', el.__vueClickOutside__); document.removeEventListener('mousedown', el.__vueClickOutside__);
delete el.__vueClickOutside__; delete el.__vueClickOutside__;
}, },
}; };