前端工作小结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>
相关文章
|
6月前
|
JavaScript 前端开发
vue前端下载,实现点击按钮弹出本地窗口,选择自定义保存路径
这个不用代码实现(网上也找不到方法可以调出另存为窗口),更改浏览器设置就可以,否则,现在的浏览器都是默认直接保存到下载路径中
517 3
|
2月前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`&lt;select&gt;` 和 `&lt;option&gt;`)、文本域(`&lt;textarea&gt;`)、标签解释(`&lt;label&gt;`)、各类按钮(`&lt;button&gt;`)及表单重置功能、无语义布局标签(`&lt;div&gt;` 和 `&lt;span&gt;`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
2月前
|
前端开发 JavaScript
【前端web入门第三天】01 css定义和引入方式 四种标签选择器
本文档详细介绍了CSS的基础知识及其应用。内容涵盖了CSS的定义、CSS在HTML中的引入方式,包括内部样式表、外部样式表及行内样式表的使用场景与方法。此外,还深入解析了不同种类的选择器:标签选择器、类选择器、ID选择器以及通配符选择器的功能与应用场景,并提供了实例帮助理解。最后,通过具体的新属性示例,指导如何使用这些选择器来实现基本的盒子绘制。适合初学者系统学习CSS。
49 15
|
3月前
|
前端开发 JavaScript 开发者
前端JS按钮点击事件、跳出弹窗、遮罩的实战示例
本文提供了一个前端JS按钮点击事件、弹出式窗口和遮罩层的实战示例,包括HTML、CSS和JavaScript的具体实现代码,以及功能解析,演示了如何实现按钮点击后触发弹窗显示和遮罩层,并在2秒后自动关闭或点击遮罩层关闭弹窗的效果。
前端JS按钮点击事件、跳出弹窗、遮罩的实战示例
|
3月前
|
存储 运维 前端开发
中后台前端开发问题之定义编排对象如何解决
中后台前端开发问题之定义编排对象如何解决
27 0
|
3月前
|
前端开发
前端ElementPlus框架中的几种图标按钮使用方式
本文介绍了如何在Element Plus前端框架中使用带有图标的按钮,包括设置按钮大小、图标大小、按钮类型以及如何为图标添加点击事件。
318 0
|
3月前
|
前端开发 开发者
在前端开发中,webpack 作为模块打包工具,其 DefinePlugin 插件可在编译时动态定义全局变量,支持环境变量定义、配置参数动态化及条件编译等功能。
在前端开发中,webpack 作为模块打包工具,其 DefinePlugin 插件可在编译时动态定义全局变量,支持环境变量定义、配置参数动态化及条件编译等功能。本文阐述 DefinePlugin 的原理、用法及案例,包括安装配置、具体示例(如动态加载资源、配置接口地址)和注意事项,帮助开发者更好地利用此插件优化项目。
92 0
|
3月前
|
存储 开发框架 前端开发
EAV模型(实体-属性-值)的设计和低代码的处理方案(3)-- 实体属性定义及前端列表展示和数据录入处理
EAV模型(实体-属性-值)的设计和低代码的处理方案(3)-- 实体属性定义及前端列表展示和数据录入处理
|
4月前
|
存储 前端开发 JavaScript
前端菜单及按钮权限拦截,实现方案及思路
此实现方案基于vue框架,并需要依赖vue项目相关的库,router、store等等;前端同学要与后端同学协商,常规是让后端返回一个树结构的菜单数据,并且将所有的涉及权限控制的页面path给到后端,如果是按钮,需要把所有的按钮 code 码统一下,这是前期工作,很重要。
|
4月前
|
前端开发 JavaScript PHP
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
52 0