el-dialog父子传值弹窗实现(弹窗内容较多时分开写)

news2024/9/28 5:28:00

需求:父组件点击按钮后打开弹窗,但是因为弹窗内容巨多,直接提取出来,只要在父组件点击时才显示弹窗,并且传递值给弹窗做数据回显,编辑或者新增功能都可以。

 

 

 1.首先建立父子关系

创建个弹窗组件dialog.vue,把弹窗内容丢进去

父组件引入注册挂载,并且设置v-if的值,默认为false,ref也要设置,绑定节点,点击的时候需要通过ref传递函数传值给子组件

 <Dialog v-if="showDialog" ref="dialogData"></Dialog>

import Dialog from './dialog.vue';
export default {
    components: {
        Dialog
    },
}

2.父组件写内容,点击传递当前行给子组件

父组件关键代码,init函数并且传当前行给子组件,完整代码最后贴

 openDialog(row) {
            this.showDialog = true;
            this.$nextTick(() => {
                // 每次都传递当前行数据
                this.$refs.dialogData.init(row);
            });
        }

3.弹窗自组件在methods接受父组件传值

    init(rowdata){
//打开弹窗
        this.dialogVisible = true;
//接收父组件的值
        this.data=rowdata
        console.log(this.data,'接受传递的值');
    },

4.父组件完整代码

<template>
    <div class="content-box">
        <div class="container">
            <h1>弹窗的拆分</h1>
            <el-table :data="tableData" style="width: 100%" max-height="250">
                <el-table-column fixed prop="date" label="日期" width="150"> </el-table-column>
                <el-table-column prop="name" label="姓名" width="120"> </el-table-column>
                <el-table-column prop="province" label="省份" width="120"> </el-table-column>
                <el-table-column label="操作" width="120">
                    <template slot-scope="scope">
                        <el-button @click.native.prevent="openDialog(scope.row)" type="text" size="small">
                            打开弹窗
                        </el-button>
                    </template>
                </el-table-column>
            </el-table>
            <Dialog v-if="showDialog" ref="dialogData"></Dialog>
        </div>
    </div>
</template>

<script>
import Dialog from './dialog.vue';
export default {
    components: {
        Dialog
    },
    data() {
        return {
            showDialog: false,
            tableData: [
                {
                    date: '2016-05-03',
                    name: '王小虎',
                    province: '上海'
                },
                {
                    date: '2022-12-11',
                    name: '张三',
                    province: '武汉'
                },
                {
                    date: '2016-05-03',
                    name: '李四',
                    province: '上海'
                }
            ]
        };
    },
    mounted() {},
    methods: {
        openDialog(row) {
            this.showDialog = true;
            this.$nextTick(() => {
                // 每次都传递当前行数据
                this.$refs.dialogData.init(row);
            });
        }
    }
};
</script>

<style lang="scss" scoped></style>

5.子组件完整代码

操作都在子组件完成,包括编辑接口调用,父组件只是传值和打开弹窗,其他不做操作

<template>
 <el-dialog
  title="提示"
  :visible.sync="dialogVisible"
  width="30%"
  :before-close="handleClose">
  {{ data }}
  <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
  </span>
</el-dialog>
</template>

<script>
export default {
  data() {
    return {
        dialogVisible: false,
        data:{}
    };
  },
  mounted() {

  },
  methods: {
    init(rowdata){
        this.dialogVisible = true;
        this.data=rowdata
        console.log(this.data,'接受传递的值');
    },
    handleClose(done) {
        this.$confirm('确认关闭?')
          .then(_ => {
            done();
          })
          .catch(_ => {});
      }
  }
};
</script>

<style lang="scss" scoped>

</style>

文章到此结束,希望对你有所帮助~

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

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

相关文章

HTML5+CSS3+JS小实例:悬停滚动文字的导航栏

实例:悬停滚动文字的导航栏 技术栈:HTML+CSS+JS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=…

Sql Server 获取连续日期时间

获取连续日期时间 在项目中&#xff0c;有时候需要按日期/时间统计&#xff0c;例如2023-06-21至2023-06-28期间每一天的数据&#xff0c;如果某一天没有数据&#xff0c;也要查询出来&#xff0c;用NULL处理。 1.示例 2.连续日期效果SQL DECLARE StartDate DATE 2023-06-2…

Vision Pro中VR游戏空间边界为3×3米圆形

6月25日青亭网报道&#xff0c;此前我们已经报道了苹果visionOS有三种应用类型&#xff1a;FullSpaces、Windows、Volume。其中FullSpaces是仅显示一款应用的类型&#xff0c;后两种为共享空间可多窗口、多应用显示。 在FullSpaces模式下&#xff0c;苹果的一份文档显示visionO…

应用层控制灯,自动创建设备节点,ioctl函数

目录 1. 使用应用层控制灯 1.1. 撰写驱动的.c文件 1.2. 撰写应用层的.c文件 1.3. 撰写makefile文件 1.4. 测验 2. 自动创建设备节点 2.1. 函数分析 2.2. 撰写驱动.c文件 2.3. 修改应用层.c文件 2.4. 编写makefile文件 2.5. 在开发板安装.ko驱动 3. ioctl函数&#…

2023年最新互联网Java面试八股文出炉(附大厂P5-P8技术栈)

为什么感觉 Java 面试变难了&#xff1f; 几年前&#xff0c;你只需要简单的ssm框架&#xff0c;就能轻松找到一份Java的工作&#xff0c;但现在不一样了&#xff0c;随着涌入这个行业的人越来越多&#xff0c;同一个岗位需要筛选掉更多人&#xff0c;要求自然水涨船高&#x…

mysql大文件导入sql,没有配置my-ini的情况下,或者配置文件不生效命令修改

找到mysql的bin用管理员登录mysql mysql -u root -p 修改最大传输包 set global max_allowed_packet 510241024*100;

3D扫描仪在汽车零部件产业的应用零部件逆向设计偏差检测-CASAIM

汽车零部件作为汽车工业的基础&#xff0c;是支撑汽车工业持续健康发展的必要因素。当前汽车行业正在轰轰烈烈、如火如荼开展的自主开发与创新&#xff0c;需要高效的零部件设计和质量控制解决发方案&#xff0c;CASAIM 3D扫描仪在汽车零部件产业中具有广泛的应用。 1. 零部件逆…

vue3案例2

效果图&#xff1a; <template><section><aside><ul class"nav-ul"><liclass"nav-li":class"nav.active && grey-li"v-for"nav in navArr":key"nav.id"click"onNav(nav)&qu…

实在RPA数字员工横扫618“物流拦截”难题,晨光拦截效率狂飙20倍!

历时三年疫情后&#xff0c;电商首个618大促告捷。 “百亿补贴”“击穿底价”“全网最低”“天天都是618”……在天猫的618启动会上&#xff0c;淘天集团CEO戴珊宣布这将是“历史上最大投入的一届618”&#xff1b;紧随其后的京东618启动会上&#xff0c;京东零售CEO辛利军也高…

消息队列中间件(二)- RabbitMQ(一)

RabbitMQ&#xff08;一&#xff09; 概念核心概念模式 名词安装 概念 接收&#xff0c;存储&#xff0c;转发消息 核心 概念 生产者 交换机 队列 消费者 模式 简单模式 工作模式 发布 路由模式 主题模式 发布订阅模式 名词 Broker 接收和分发消息的应用Virtual host 虚拟分组…

第二章 数据结构(二、三)——Trie树,并查集,堆与哈希表

文章目录 Trie树并查集堆哈希表拉链法开放寻址法字符串前缀哈希 Trie树练习题835. Trie字符串统计143. 最大异或对 并查集练习题836. 合并集合837. 连通块中点的数量240. 食物链 堆练习题838. 堆排序839. 模拟堆 哈希练习题840. 模拟散列表841. 字符串哈希 Trie树 用来高效的存…

面向初学者的卷积神经网络

卷积神经网络在机器学习中非常重要。如果你想做计算机视觉或图像识别任务&#xff0c;你根本离不开它们。但是很难理解它们是如何工作的。 在这篇文章中&#xff0c;我们将讨论卷积神经网络背后的机制、它的优点和应用领域。 什么是神经网络&#xff1f; 首先&#xff0c;让…

K8s是什么?

K8s是开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用。&#xff08;docker只能是单主机上的容器化的应用&#xff09; 职责&#xff1a;管理容器应用 目标&#xff1a;让部署容器化的应用简单高效 Rancher 可以通过界面管理 K8s 平台 一、让我们先来了解一个什…

nginx+lua(openresty) lua-protobuf 安装及使用(三)

前言 前2章已经讲述 openresty 安装及使用 这章主要讲述 openresty 环境下 lua-protobuf 安装及使用 1:环境 ubuntu18 lua-protobuf https://github.com/starwing/lua-protobuf protobuf https://github.com/protocolbuffers/protobuf/releases/tag/v3.9.1 ##最的版本自行选择…

科技资讯|苹果Vision Pro头显处方镜片外观曝光

苹果公司在几周前推出了售价 3499 美元的 Vision Pro 头显&#xff0c;这款头显可以让用户体验增强现实和虚拟现实的内容。对于许多佩戴眼镜的用户来说&#xff0c;他们最关心的问题是&#xff0c;近视眼能够使用 Vision Pro。 Vision Pro 的一个亮点是&#xff0c;它可以配备…

前端修改单选框和多选框的样式(美化)

html提供了单选框和多选框的写法&#xff0c;但是样式并不好看&#xff0c;如图所示&#xff1a; 有时候设计图并不是这样的&#xff0c;需要修改&#xff0c;比如&#xff1a; 这里给大家提供思路&#xff0c;隐藏input框&#xff0c;文字加label标签&#xff0c;使得点击文字…

SPSSPRO数据分析之——CSI指纹数据分析(预处理、降维等)

目录 一、前言 二、数据准备 三、进行预处理 四、进行降维任务 五、正态性检测 六、描述性统计 七、频数分析 八、代码功能 一、前言 SPSSPRO是一款全新的在线数据分析平台&#xff0c;可以用于科研数据的分析、数学建模等&#xff0c;对于那些不会编程或者刚进入科…

浅析数据中台

note 很多企业更倾向于数据集中采集、存储&#xff0c;分层建设&#xff0c;集中管理运营数据资产。阿里的中台是从管理的角度出发&#xff0c;以中台事业部集中数据搜索&#xff0c;技术及产品&#xff0c;数据共享等多个部门的功能。 文章目录 note一、数据中台1. 传统企业的…

数字孪生百科之海康威视安防系统

智能安防是指利用先进的技术手段和系统&#xff0c;以提升安全防护能力和监控效果的安全领域。数字化则是指将信息以数字形式进行处理和存储的过程。智能安防与数字化密切相关&#xff0c;通过数字化的手段和技术&#xff0c;可以实现对安全领域的全面监控、数据分析和智能决策…

Xcode 15 beta 2 - Apple Vision Pro安装下载

1. 更新OS系统 已更新的忽略这步 2. 下载Xcode 15 beta 2 Xcode 15 Xcode 15 让你能够开发、测试和分发适用于所有 Apple 平台的 App。借助增强的代码补齐功能、交互式预览和实时动画&#xff0c;更快地推进 App 的编码和设计。利用 Git 暂存功能直接改进下次要提交的文件&…