Vue中使用element-ui 给按钮绑定一个单击事件,实现点击按钮就弹出一个dialog对话框

这篇具有很好参考价值的文章主要介绍了Vue中使用element-ui 给按钮绑定一个单击事件,实现点击按钮就弹出一个dialog对话框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.需求描述

想要实现点击一个按钮就弹出一个对话框,在对话框中可输入数据进行提交,在点击取消时对话框关闭

vue点击按钮弹出表单,javaweb,vue.js,前端,javascript,elementui,java

2.功能实现

1.创建按钮

在element中把找到按钮的代码放到div里

    <el-row>
        <el-button type="primary" plain>新增</el-button>
    </el-row>

2.创建对话框

在element中找到dialog对话框对应的代码,把代码粘贴到对应的位置

vue点击按钮弹出表单,javaweb,vue.js,前端,javascript,elementui,java

3.对话框与按钮的绑定

通过给按钮添加与对话框相关联的绑定事件,来实现点击按钮即可弹出对话框

把上图第一行点击打开中的

@click="dialogVisible = true"

 放到按钮组件代码块儿里,即创建按钮的代码变成:

<el-row>
        <el-button type="primary" plain  @click="dialogVisible = true">新增</el-button>
    </el-row>

3.对话框表单的改造

对对话框里的内容进行修改,搞成我们想要的样子

先把以下代码段删掉:

vue点击按钮弹出表单,javaweb,vue.js,前端,javascript,elementui,java

 然后去element中找到对应表单的代码贴进去,并对表单代码中data()里的return方法进行修改(改名、改成员变量),再对<el-form-item>的:model与v-model的名称进行修改(名称要与刚刚修改的return里的那个方法一致)

vue点击按钮弹出表单,javaweb,vue.js,前端,javascript,elementui,java

vue点击按钮弹出表单,javaweb,vue.js,前端,javascript,elementui,java 

4.点击“立即创建”实现表单的提交与点击取消对话框消失

对以下代码进行修改 :

vue点击按钮弹出表单,javaweb,vue.js,前端,javascript,elementui,java 

修改成:

            <el-form-item>
                <el-button type="primary" @click="addBrand">立即创建</el-button>
                <el-button @click="dialogVisible = false">取消</el-button>
            </el-form-item>


            <!--新增按钮提交-->
            addBrand() {
                console.log(this.addForm);
            }

 4.对“状态”Switch开关所提交的类型进行修改

在上述工作做完后,表单已经能实现完整功能的表单的提交与取消后对话框消失的功能了,但此时Switch开关提交的类型为ture,若我不想要ture,我想要0或者1,就要对Switch“状态”的代码块儿进行修改

在element下Switch开关中找到扩展的 value 类型,可以看到有active-value="100" 和inactive-value="0"的代码,可以把这两行代码加入我们的Switch“状态”的代码块儿中并对数值进行修改

vue点击按钮弹出表单,javaweb,vue.js,前端,javascript,elementui,java

修改完之后,此时Switch“状态”的代码为:

            <el-form-item label="状态">
                <el-switch v-model="addForm.status"
                           active-value="1"
                           inactive-value="0"
                ></el-switch>
            </el-form-item>

5.完整代码

这样我们就能实现实现点击一个按钮就弹出一个对话框,在对话框中可输入数据进行提交,在点击取消时对话框关闭的功能啦文章来源地址https://www.toymoban.com/news/detail-800934.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
  .el-table .warning-row {
    background: oldlace;
  }

  .el-table .success-row {
    background: #f0f9eb;
  }
    </style>

</head>
<body>
<div id="app">

    <!--搜索表单-->
    <el-form :inline="true" :model="brand" class="demo-form-inline">
        <el-form-item label="当前状态">
            <el-select v-model="brand.status" placeholder="当前状态">
                <el-option label="启用" value="1"></el-option>
                <el-option label="禁用" value="0"></el-option>
            </el-select>
        </el-form-item>
        <el-form-item label="企业名称">
            <el-input v-model="brand.companyName" placeholder="企业名称"></el-input>
        </el-form-item>
        <el-form-item label="品牌名称">
            <el-input v-model="brand.brandName" placeholder="品牌名称"></el-input>
        </el-form-item>

        <el-form-item>
            <el-button type="primary" @click="onSubmit">查询</el-button>
        </el-form-item>
    </el-form>


    <!--第二行的按钮-->
    <el-row>
        <el-button type="danger" plain>批量删除</el-button>
        <el-button type="primary" plain  @click="dialogVisible = true">新增</el-button>
    </el-row>
    <!--点击新增按钮就弹出对话框-->
    <el-dialog
            title="编辑品牌"
            :visible.sync="dialogVisible"
            width="30%"
            >

        <!--弹出的对话框的内容-->
        <el-form ref="form" :model="addForm" label-width="80px">
            <el-form-item label="品牌名称">
                <el-input v-model="addForm.brandName"></el-input>
            </el-form-item>
            <el-form-item label="企业名称">
                <el-input v-model="addForm.companyName"></el-input>
            </el-form-item>
            <el-form-item label="排序">
                <el-input v-model="addForm.ordered"></el-input>
            </el-form-item>
            <el-form-item label="活动形式">
                <el-input type="textarea" v-model="addForm.description"></el-input>
            </el-form-item>
            <el-form-item label="状态">
                <el-switch v-model="addForm.status"
                           active-value="1"
                           inactive-value="0"
                ></el-switch>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" @click="addBrand">立即创建</el-button>
                <el-button @click="dialogVisible = false">取消</el-button>
            </el-form-item>
        </el-form>
    </el-dialog>


    <!--表格-->
    <template>
        <el-table
                :data="tableData"
                style="width: 100%"
                :row-class-name="tableRowClassName"
                @selection-change="handleSelectionChange"
        >
            <el-table-column
                    type="selection"
                    width="55">
            </el-table-column>
            <el-table-column
                    type="index"
                    width="50">
            </el-table-column>
            <el-table-column
                    prop="brandName"
                    align="center"
                    label="品牌名称"
                    >
            </el-table-column>
            <el-table-column
                    prop="companyName"
                    align="center"
                    label="企业姓名"
                    >
            </el-table-column>
            <el-table-column
                    prop="ordered"
                    align="center"
                    label="排序">
            </el-table-column>
            <el-table-column
                    prop="status"
                    align="center"
                    label="当前状态">
            </el-table-column>
            <el-table-column
                    align="center"
                    label="操作">
                <el-row>
                    <el-button type="primary">修改</el-button>
                    <el-button type="danger">删除</el-button>
                </el-row>
            </el-table-column>
        </el-table>
    </template>


</div>


<script src="js/vue.js"></script>
<script src="element-ui/lib/index.js"></script>
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">

<script>
    new Vue({
        el: "#app",
        methods: {
            tableRowClassName({row, rowIndex}) {
            if (rowIndex === 1) {
            return 'warning-row';
            } else if (rowIndex === 3) {
             return 'success-row';
            }
            return '';
            },

            //复选框选中后执行的方法
            handleSelectionChange(val) {
                this.multipleSelection = val;
                console.log(this.multipleSelection)
            },


             <!--查询按钮提交-->
              onSubmit() {
                console.log(this.brand);
              },

              <!--新增按钮提交-->
              addBrand() {
                console.log(this.addForm);
              }

    },
    data() {
      return {

      <!--弹出的对话框的内容-->
      addForm: {
          brandName:'',
          companyName:'',
          id:'',
          ordered:'',
          description:'',
          status:'',
      },

        dialogVisible: false,

         multipleSelection: [],

        tableData: [{
          brandName: '小米',
          companyName: '小米科技有限公司',
          ordered: '100',
          status:'1',
        }, {
          brandName: '小米',
          companyName: '小米科技有限公司',
          ordered: '100',
          status:'1',
        }, {
          brandName: '小米',
          companyName: '小米科技有限公司',
          ordered: '100',
          status:'1',
        }, {
          brandName: '小米',
          companyName: '小米科技有限公司',
          ordered: '100',
          status:'1',
        }],


        <!--搜索表单-->
        brand: {
          status: '',
          companyName: '',
          brandName: '',
        }

      }
    }
    })

</script>

</body>
</html>

到了这里,关于Vue中使用element-ui 给按钮绑定一个单击事件,实现点击按钮就弹出一个dialog对话框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui在下拉选项框中添加一个按钮,实现子选项的添加

    父组件 子组件

    2024年03月14日
    浏览(35)
  • Vue-给element-ui的input输入框绑定键盘事件不生效

    在vue中使用elementui的input组件绑定回车事件生效。 el-input @keyup.enter=\\\'方法\\\' /el-input 在vue中如果直接使用 v-on或@ 监听事件的话, 监听的是 由组件中使用$emit自定义的事件 , 例如下面代码。 使用 .native 修饰符, 告诉vue这是触发的 原生事件 不是 自定义事件 , 比如下面这个监听 ele

    2024年02月13日
    浏览(37)
  • vue结合element-ui实现(按钮控制)动态增加减少input框功能。

    一、template部分 二、script部分 三、效果展示 这是初始页面  这是点击添加 这是删除的     四、详细说明 v-for=\\\"(item,index)in array\\\" :key = \\\"index\\\" 这个是重点!!! ! 通俗点将,就是用一个div(盒子)将input输入框包括起来,然后在div中使用 v-for=\\\"(item,index)in array\\\" :key = \\\"ind

    2024年02月12日
    浏览(42)
  • vue element-ui el-input输入框绑定@keyup.enter回车事件无效

    由于element-ui把input进行了封装,input外面是多一层div的。 在element-ui里有很多因为自身封装了几层标签导致事件和样式无法按想要的效果呈现,遇到后可以在网页中查看dom结构分析原因。 所以对于el-input,使用 @keyup.enter是无效的,需要加上 .native 限制符 .native修饰符的作用:

    2024年02月16日
    浏览(33)
  • 基于vue和element-ui的表格组件,主推数据渲染,支持内容和方法灵活绑定,提供动态具名插槽自定义内容

            组件名为commonTable,主要是基于element-ui中的表格组件进行二次封装的组件,集成了常用的表格功能,除默认内容的显示外,还包括以下几点:         1. 状态的筛选和显示;         2. 操作按钮的显示和方法绑定;         3. 自定义具名插槽内容的封装;      

    2024年02月07日
    浏览(37)
  • Vue3 + Element-UI 搭建一个后台管理系统框架模板

    本文将介绍如何基于Vue3和element-ui搭建一个后台管理系统框架模板。我们将详细讲解代码流程,并提供详细的说明。 Vue3 Element-ui Axios 本文假设读者已经熟悉Vue3和Element-ui的基本使用方法,并且对Axios有一定的了解。 步骤1:创建Vue3项目 我们可以使用Vue CLI来创建一个Vue3项目,

    2023年04月26日
    浏览(98)
  • 动态绑定表单的rules---element-ui

    在 Vue 3 中,你可以使用  refs  属性与  v-model  指令来动态绑定表单数据和验证规则。要动态删除绑定的验证规则,可以通过修改  ref  的 $rules 属性来实现。 例如,假设你有一个简单的表单组件,它使用  ref  来绑定表单数据和验证规则: 如果要动态删除  rules.name  的验

    2024年02月15日
    浏览(26)
  • Element-ui自定义组件:可折叠按钮列表

    1、工具栏的功能按钮要超宽不换行,宽度不够折叠进”更多“按钮; 2、下拉菜单按钮和纯图标按钮默认不折叠; 3、折叠前后按钮组顺序保持不变。 1、默认展开全量按钮,并对其宽度进行缓存; 2、循环计算展开按钮的总宽度 与 容器宽度 的差值,并进行按钮的折叠与释放

    2024年02月11日
    浏览(34)
  • 如何搭建一个基于vue2和element-ui的项目框架模板(两万四千字长文)

    使用vue script标签引入 如果只是单纯的使用vue,可以使用 script src=\\\"https://cdn.jsdelivr.net/npm/vue/dist/vue.js\\\"/script 直接引入 npm安装vue 使用npm安装vue需要先安装node.js,如果你的电脑未安装node,可以参考我的个人碰到的前端问题总结及解决方案2第15个问题先安装nvm(node version manager)

    2024年02月13日
    浏览(38)
  • 【Vue框架】Vue2中element-ui/mint-ui组件库——element-ui引入组件以及使用案例、mint-ui引入组件及使用案例

    element-ui 提供了大量的组件,如:布局组件、表单组件、JS组件等等。 Element-ui官网: https://element.eleme.cn/#/zh-CN 安装 Element-ui: npm i element-ui -S 1.1.1 引入组件 引入 Element 完整引入(在 main.js 中写入以下内容): 按需引入 借助 babel-plugin-component,我们可以只引入需要的组件,以达到

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包