<template>
<el-dialog
:before-close="handleClose"
:show="show"
:show-close="false"
:title="title"
:top="dialogTop"
:visible.sync="visible"
:width="dialogWidth"
:modal-append-to-body="false"
center
v-loading="loading"
>
<div class="capsule-btn">
<fy-ripple-button :value="$_text['text.confirm']" @click="confirmOperation" size="medium"></fy-ripple-button>
<fy-ripple-large-button :value="$_text['text.cancel']" @click="cancelOperation" size="medium"></fy-ripple-large-button>
</div>
<div :style="{height:slotHeight}" class="slot-wrap">
<slot></slot>
</div>
</el-dialog>
</template>
<script>
export default {
props: {
// 点击确定是否立马关闭
closeImmediately: {
type: Boolean,
default: true,
},
title: {
type: String,
default: '',
},
show: {
type: Boolean,
default: false,
},
dialogWidth: {
type: String,
default: '300px',
},
dialogTop: {
type: String,
default: '15vh',
},
slotHeight: {
type: String,
default: '',
},
},
data() {
return {
visible: this.show,
loading: false,
}
},
methods: {
confirmOperation() {
if (this.closeImmediately === true) {
this.$emit('update:show', false)
}
this.$emit('confim')
},
cancelOperation() {
this.$emit('update:show', false)
this.$emit('close')
},
// 关闭前的回调
handleClose() {
if (this.closeImmediately === true) {
this.$emit('update:show', false)
}
this.$emit('close')
},
},
watch: {
show() {
this.visible = this.show
},
},
}
</script>
<style lang="scss" scoped>
.slot-wrap {
padding: 10px 0 30px 10px;
}
</style>
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h63467.shtml