前端工作小结88-定义有对话框的按钮

简介: 前端工作小结88-定义有对话框的按钮
<!--定义一个有按钮的对话框 相当于dialog和按钮组合使用-->
<template>
  <!-- 有按钮的对话框 这个位置的代码会被包裹过去-->
  <!--close-on-click-modal 是否可以通过点击 modal 关闭 Dialog append-to-body控制不能出现遮挡层-->
  <el-dialog
      :title="title"
      :show-close="ShowClose"
    :fullscreen="fullscreen"
    :close-on-click-modal="closeOnClickModal"
    :visible.sync="visible"
    :width="width"
    :destroy-on-close="destroyOnClose"
    @close="close"
      append-to-body
  >
    <!--向别的位置包裹代码 上面的代码会被包裹过去-->
    <slot />
    <!--定义所在插槽的按钮-->
    <div slot="footer">
      <template v-if="buttonList">
        <el-button
          v-for="(button, index) in buttonList"
          :key="index"
          :type="button.type"
          :icon="button.icon"
          @click="button.onClick"
        >
          {{ button.text }}
        </el-button>
      </template>
      <!--定义其中的确定取消按钮-->
      <template v-else>
        <el-button v-if="ListShow" @click="cancel">{{ cancelButtonText }}</el-button>
        <el-button type="primary" @click="ok" :disabled="disabled">{{ okButtonText }}</el-button>
      </template>
    </div>
  </el-dialog>
</template>
<script>
export default {
  name: "ButtonDialog",
  /*通过父子组件传值可以通过父子组件传值*/
  props: {
    /*定义一个标题*/
    title: { type: String, required: false }, // 标题
    /*是否为全屏显示*/
    fullscreen: { type: Boolean, default: false, required: false }, // 是否为全屏显示
    /*是否可以通过model关闭*/
    closeOnClickModal: { type: Boolean, default: true, required: false }, // 见 element ui 参数
    /*确定按钮显示文字*/
    okButtonText: { type: String, default: "确 定", required: false }, // 确定按钮显示文字
    /*取消按钮显示文字*/
    cancelButtonText: { type: String, default: "取 消", required: false }, // 取消按钮显示文字
    /*显示按钮显示文字*/
    buttonList: { type: Array, required: false }, // 显示按钮列表;如果设置了该参数,默认的按钮会被覆盖
    /*设置宽度*/
    width: { type: String, required: false, default: "50%" }, // 宽度
    /*关闭时候销毁dialog里的元素*/
    destroyOnClose: { type: Boolean, default: false, required: false }, // 见 element ui 参数
    /*控制按钮禁用*/
    disabled:{type:Boolean},
    /*控制是否有关闭按钮*/
    ShowClose:{type:Boolean,default:false},
    ListShow:{type:Boolean,default:true}
  },
  data() {
    return {
      visible: false,
    };
  },
  methods: {
    /*控制dialog的显示*/
    show() {
      this.visible = true;
    },
    /*控制dialog的关闭*/
    close() {
      this.visible = false;
      this.$emit("close");
    },
    /*控制dialog的调用父组件的方法*/
    ok() {
      this.$emit("ok");
    },
    /*控制组件调用父级的方法*/
    cancel() {
      this.$emit("cancel");
      this.close();
    }
  }
};
</script>
<style scoped></style>
相关文章
|
1月前
|
JavaScript 前端开发
vue前端下载,实现点击按钮弹出本地窗口,选择自定义保存路径
这个不用代码实现(网上也找不到方法可以调出另存为窗口),更改浏览器设置就可以,否则,现在的浏览器都是默认直接保存到下载路径中
69 3
|
8月前
|
前端开发
前端学习笔记202305学习笔记第二十天-vue3.0-点击按钮展示添加用户
前端学习笔记202305学习笔记第二十天-vue3.0-点击按钮展示添加用户
38 0
|
4月前
|
前端开发 数据格式
SSM整合-表现层与前端数据传输数据协议定义与实现
SSM整合-表现层与前端数据传输数据协议定义与实现
34 0
|
4月前
|
人工智能 前端开发
【零基础入门前端系列】—无序列表、有序列表、定义列表(五)
【零基础入门前端系列】—无序列表、有序列表、定义列表(五)
|
4月前
|
前端开发
HTML前端:三种列表“无序列表 有序列表 自定义列表“ 定义
HTML前端:三种列表“无序列表 有序列表 自定义列表“ 定义
|
5月前
|
前端开发
前端切图|点击按钮div变色
前端切图|点击按钮div变色
25 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第二十一天-vue3.0-对话框关闭时候重置页面
前端学习笔记202305学习笔记第二十一天-vue3.0-对话框关闭时候重置页面
37 0
|
8月前
|
前端开发
前端项目实战捌拾柒react-admin+material ui-踩坑-List的用法之aside组件FilterLiveSearch搜索按钮
前端项目实战捌拾柒react-admin+material ui-踩坑-List的用法之aside组件FilterLiveSearch搜索按钮
48 0
|
9月前
|
JavaScript 前端开发 数据安全/隐私保护
【前端VUE】按钮显示隐藏
【前端VUE】按钮显示隐藏
|
10月前
|
前端开发 JavaScript 容器
前端|动态发光按钮
前端|动态发光按钮
111 0