欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
<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