Element UI中el-dialog作为子组件如何由父组件控制显示/隐藏~

news2025/2/5 19:54:54

1、这里介绍的是将el-dialog作为组件封装便于复用,如何通过父组件控制子组件dialog的显示与隐藏。

2、思路:首先el-dialog是通过dialogVisible的值是否为true或false来控制显示与隐藏的。那么我们可以通过父传子props来将true(即showFlag的值)传递给dialog子组件,然后在子组件中监听showFlag值的变化,一旦出现变化就将showFlag的值赋值给dialogVisible,以此来实现dialog组件的显示。

如何控制隐藏呢?或者说如何实现二次点击显示?

思路:首先我们通过子传父$emit传递一个自定义事件hiddenFlag给父组件,然后在父组件中触发该方法,将showFlag的值变为false即可。

3、还有一种方法就是通过给子组件添加v-if来控制,根据个人爱好来选择吧。

4、封装dialog子组件。

<template>
  <el-dialog
    title="添加商品"
    :visible.sync="dialogVisible"
    width="40%"
    :before-close="handleClose"
    style="text-align: center; line-height: 20px"
  >
    <el-form
      :model="ruleForm"
      :rules="rules"
      ref="ruleForm"
      label-width="100px"
      class="demo-ruleForm"
    >
      <el-form-item label="活动名称" prop="newName">
        <el-input v-model="ruleForm.newName"></el-input>
      </el-form-item>
      <el-form-item label="活动日期" required>
        <el-form-item prop="newData">
          <el-date-picker
            type="date"
            placeholder="选择活动日期"
            v-model="ruleForm.newData"
            style="width: 100%"
          ></el-date-picker>
        </el-form-item>
      </el-form-item>
      <el-form-item label="活动地址" prop="newAddress">
        <el-input v-model="ruleForm.newAddress"></el-input>
      </el-form-item>
      <el-form-item label="爱好" prop="newLikes">
        <el-input v-model="ruleForm.newLikes"></el-input>
      </el-form-item>
    </el-form>

    <span slot="footer" class="dialog-footer">
      <el-button @click="Cancel()">取 消</el-button>
      <el-button type="primary" @click="determine()">确 定</el-button>
    </span>
  </el-dialog>
</template>
<script>
export default {
  name: "diaLog",
  data() {
    return {
      dialogVisible: false,
      ruleForm: {
        newName: "",
        newAddress: "",
        newData: "",
        newLikes: "",
      },
      rules: {
        newName: [
          { required: true, message: "请输入活动名称", trigger: "blur" },
        ],
        newAddress: [
          { required: true, message: "请选择活动区域", trigger: "blur" },
        ],
        newData: [
          {
            type: "date",
            required: true,
            message: "请选择日期",
            trigger: "change",
          },
        ],
        newLikes: [{ required: true, message: "请输入爱好", trigger: "blur" }],
      },
    };
  },
  props: ["showFlag"],
  watch: {
    // 监听父组件传递过来的showFlag的变化,控制dialog的显示
    showFlag() {
      this.dialogVisible = this.showFlag;
    },
  },
  methods: {
    // 关闭弹窗
    handleClose(done) {
      done();
      this.$emit("hiddenFlag");
    },
    //   取消
    Cancel() {
      this.$emit("hiddenFlag");
    },
    //   确定
    determine() {
      this.$emit("hiddenFlag");
    },
  },
};
</script>

<style></style>

5、使用子组件。

<template>
  <div>
      <el-button type="primary" @click="addGoods()">添加商品</el-button>
      <!-- 对话框 -->
      <diaLog :showFlag="showFlag" @hiddenFlag="hidden()"></diaLog>
  </div>
</template>

<script>
import diaLog from "../components/dialog.vue";
export default {
  name: "newUser",
  data() {
    return {
      showFlag: false,

    };
  },
  components: {
    diaLog,
  },
  methods: {
    // 添加商品
    addGoods() {
      // 展示弹窗
      this.showFlag = true;
    },
    // 接收dialog组件传递过来的隐藏弹窗信息
    hidden() {
      this.showFlag = false;
    }
  },
};
</script>

<style></style>

效果图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2056655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

影刀RPA--如何获取网页当页数据?

&#xff08;1&#xff09;点击数据抓取-选择需要获取数据的地方-会弹出是否是获取整个表格&#xff08;当前页面&#xff09; &#xff08;2&#xff09;点击“是”&#xff1a;则直接获取整个表格数据-点击完成即可 &#xff08;3&#xff09;点击“否”&#xff1a;如果你想…

发那科机器人常见的异常解决方案

第一类错误&#xff1a;示教板空白、机器人死机 判断方法&#xff1a;1、PSU 上红色LED 亮代表电源供给报警&#xff0c;可能保险F4熔断、查看CP2、CP3线路&#xff08;200ACV输出&#xff09;、更换PSU&#xff1b;绿色PIN熄灭代表电源供给单元未获得200V 的交流电源输入&…

1.检查现场运行环境-《篮球比赛展示管理系统》现场管理员角色操作手册

篮球比赛现场PC电脑,充当管理端&#xff0c;内装的浏览器要求是Firefox、Chrome、Edge、Safari等最新版市场主流浏览器等。

SAP EWM PMR

目录 1 简介 2 业务流程 3 业务操作 4 主数据设置 4.1 ERP 主数据 4.2 EWM 主数据 5 后台配置 5.1 主数据 5.2 GI 流程 5.3 仓库内部移动流程 5.4 仓库任务设置 5.5 集成 5.6 EWM 链接 1 简介 EWM PMR 分 2 部分功能&#xff0c;第一是 MES-Driven Staging&#…

OSI七层网络模型 /TCP/IP五层模型以及封装分用的详细讲解

文章目录 协议分层的好处OSI七层网络模型TCP/IP五层网络模型网络设备所在的分层(重点)封装和分用 协议分层的好处 第一点&#xff1a; 在网络通信中&#xff0c;如果使用一个协议来解决所有的问题&#xff0c;那么这个协议就会非常的庞大&#xff0c;非常不利于去学习和理解&…

Ciallo~(∠・ω・ )⌒☆第二十二篇 入门request请求库使用

请求库是用于发送HTTP请求的工具。常见的请求库有requests&#xff0c;它是一个功能强大且易于使用的HTTP库。 使用requests库发送GET请求&#xff1a; import requests url "https://httpbin.org/get"# 携带get请求参数 params {"pn": 10,"size&q…

PyTorch的torchvision内置数据集使用,transform+pytorch联合使用

一、PyTorch的torchvision内置数据集介绍 我们前面的文章里谈到的数据集是我们自己找的一些自定义数据集。那么在Pytorch中存在2种数据集&#xff08;Dataset&#xff09;&#xff0c;即内置数据集&#xff08;Built-in dataset&#xff09;和自定义数据集&#xff08;Custom d…

架站点云自动拼接

southLidar pro 软件里面的架站点云无目标、无传感器的点云自动拼接算法&#xff0c;该算法的特征是速度快&#xff0c;精度高、稳定性高&#xff0c;大部分的场景都能一键自动拼接成功。速度、稳定性&#xff1a;比RealWorks 12、SCENE 2019等软件都快。精度&#xff1a;高于S…

python-docx 实现 Word 办公自动化

前言&#xff1a;当我们需要批量生成一些合同文件或者简历等。如果手工处理对于我们来说不仅工作量巨大&#xff0c;而且难免会出现一些问题。这个时候运用python处理word实现自动生成文件可极大的提高工作效率。 python-docx是python的第三方插件&#xff0c;用来处理word文件…

UPS快递查询|利用API对接国际物流轨迹

聚合国内外1500家快递公司的物流信息查询服务&#xff0c;使用API接口查询UPS快递的便捷步骤&#xff0c;首先选择专业的数据平台的快递API接口&#xff1a;https://www.tanshuapi.com/market/detail-68 以下示例是参考的示例代码&#xff1a; import requestsurl "http…

gstreamer系列 -- 获取媒体信息

Basic tutorial 9: Media information gathering

PyCharm单步调试

1、先在入口设置断点&#xff0c;再点击爬虫图标&#xff08;shift F9&#xff09;开始调试 调试图标如图&#xff1a; 2、蓝色光标表示当前运行在这行 3、快捷键 F7&#xff1a;进入当前行函数 F8&#xff1a;单步 F9&#xff1a;全速运行

语言基础/分析和实践 CC++ 位域结构数据类型

文章目录 概述位域和结构体的关系位域/位段的概念位域定义的语法位段结构的利弊 结构字段的定义和存储顺序小端系统上的结构字段存储大端系统上的结构字段存储小结&#xff08;承上启下&#xff09; 位域结构的存储&#xff08;对齐、填充、跨字节&#xff09;位域结构的Bit位序…

admob 广告分析

1、测试广告集成&#xff0c;官方文档 https://developers.google.com/admob/android/quick-start?hlzh-cn dependencies {implementation("com.google.android.gms:play-services-ads:23.3.0") }2、广告集成&#xff0c;集成测试激励广告。 public class MainAct…

学习大数据DAY41 Hive 分区表创建

目录 分区表 分区表应用场景 oracle 分区表种类 oracle 分区-范围分区 oracle 分区-列表分区 oracle 分区-散列分区 oracle 分区-组合分区 oracle 分区-分区表操作 hive 分区-创建分区表 hive 分区-分区表操作 hive 分区-动态分区表配置 上机练习 分区表 分区是将一…

常见古典密码介绍

文章目录 Vigenre 密码变异凯撒摩斯密码栅栏密码加密方式一加密方式二 Caesar和ROT13的区别ROT13加密原理ROT13查找表 Vigenre 密码 由于频率分析法可以有效的破解单表替换密码&#xff0c;法国密码学家维吉尼亚于1586年提出一种多表替换密码&#xff0c;   即维吉尼亚密码&…

什么是局域网管理软件?这款局域网管理软件简直太好用了丨好物分享

在信息技术日新月异的今天&#xff0c;企业的内部网络管理如同古代战场上的排兵布阵&#xff0c;需有精良之器以应对复杂多变的局势。 局域网&#xff0c;作为企业内部信息交流与资源共享的重要平台&#xff0c;其管理效率与安全性直接影响到企业的运营与发展。 一、局域网管理…

Docker-安装软件

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装MySQL&#xff08;一&#xff09;拉取MySQL镜像&#xff08;二&#xff09;运行MySQL容器&#xff08;1&#xff09;数据卷概念 &#xff08;三&#x…

开发 LLM 支持的应用程序:Azure 上的 Llama 2(5/n)

微软与 Meta 联手在 Azure 上提供 Meta 的开源大型语言模型 (LLM) Llama 2&#xff0c;打开了闸门&#xff01;信不信由你&#xff0c;这是一件大事。 亚马逊的 AWS 于去年年底发布了 Amazon SageMaker Jumpstart&#xff0c;它与 Azure 类似&#xff0c;支持部署开源模型供公共…

常见而不容忽视,电器中微型紧固件的四大影响

技术和创新催生了数以百万计的电器&#xff0c;它们已成为每个家庭和人类日常使用的一部分。从微波炉和冰箱到笔记本电脑和智能手机&#xff0c;这些部件的技术影响正在迅速增长&#xff0c;成为现代生活的一部分。 在许多人的不经意间&#xff0c;这些功能强大的发明为我们许多…