同期付きの要素モーダルボックスコンポーネントパッケージ

親コンポーネント:

    <SendCoupon :sendCouponDialogVisible.sync = "sendCouponDialogVisible"></SendCoupon>
复制代码

親コンポーネント:データ:

sendCouponDialogVisible:false,

复制代码

サブアセンブリ:

ps:ポップアップウィンドウの右上隅にある十字をクリックするか、空白をクリックして閉じるのは:before-closeバインディングを実行する方法であり、クリックしてキャンセルするのは閉じるバインディングを実行する方法です

<template>
  <el-dialog
    title="提示"
    :visible="sendCouponDialogVisible"
    width="30%"
    :before-close="handleClose"
    @close="closeDialog"
  >
    <span>这是一段信息</span>
    <span slot="footer" class="dialog-footer">
      <el-button @click="closeDialog">取 消</el-button>
      <el-button type="primary" @click="sendCouponDialogVisible = false"
        >确 定</el-button
      >
    </span>
  </el-dialog>
</template>

<script>
export default {
  props: {
      sendCouponDialogVisible:{
          type:Boolean
      }
  },
  name: "SendCoupon",
  data() {
    return {};
  },

  mounted() {},

  methods: {
    handleClose(done) {
        console.log("点击空白处或者是右上角的叉号来到这里");
      //   this.$confirm("确认关闭?")
      //     .then((_) => {
      //       done();
      //     })
      //     .catch((_) => {});
    },
    closeDialog(){
        this.$emit('update:sendCouponDialogVisible',false);
    }
  },
};
</script>

<style lang="scss" scoped>
</style>
复制代码

したがって、上記はこれに変更されます:: before-close = "closeDialog"

身長固定

<template>
  <el-dialog
    class="abow_dialog"
    title="发券"
    :visible="sendCouponDialogVisible"
    width="30%"
    :before-close="closeDialog"
    @close="closeDialog"
  >
    <div class="el-dialog-div">
      //省略其他内容
      <span>这是一段信息</span>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
      <div>Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动</div>
    </div>

    <span slot="footer" class="dialog-footer" style="text-align: center">
      <el-button type="primary" @click="sendCouponDialogVisible = false"
        >发 放</el-button
      >
    </span>
  </el-dialog>
</template>

<script>
export default {
  props: {
    sendCouponDialogVisible: {
      type: Boolean,
    },
  },
  name: "SendCoupon",
  data() {
    return {};
  },

  mounted() {},

  methods: {
    handleClose(done) {
      console.log("来到这里");
      //   this.$confirm("确认关闭?")
      //     .then((_) => {
      //       done();
      //     })
      //     .catch((_) => {});
    },
    closeDialog() {
      this.$emit("update:sendCouponDialogVisible", false);
    },
  },
};
</script>

<style lang="scss" scoped>
::v-deep .el-dialog__footer {
  text-align: center;
}
.el-button {
  width: 138px;
}
.el-dialog-div {
  height: 60vh;
  overflow: auto;
}
</style>
复制代码

おすすめ

転載: juejin.im/post/7080451041832992805