Element-05.组件-Form表单

news2024/11/15 12:16:59

 一.Form表单组件

Form表单组件可以定义在Dialog对话框组件中

与Dialog对话框组件中的属性dialogTableVisible相似,dialogFormVisible的默认值也为false,这也说明了Dialog对话框中的Form表单默认是不显示的,只有当绑定的click事件发生后才会将false改为true,从而显示。

参数:visible.sync    说明:是否显示Dialog,支持 .sync 修饰符    类型:boolean    默认值:false

<el-button type="text" @click="dialogFormVisible = true">打开嵌套表单的 Dialog</el-button> 
        <!-- 参数:visible.sync    说明:是否显示Dialog,支持 .sync 修饰符    类型:boolean    默认值:false -->
        <el-dialog title="表单" :visible.sync="dialogFormVisible">   

在表单提交时触发submit方法,因此要在vue对象中声明submit方法。用于提交数据,而submit所提交的表单对象form还未定义,因此要在vue对象的数据模型中定义form对象。通过v-model将表单元素上创建双向数据绑定,将数据模型中的数据与视图中的数据进行绑定。

<el-select v-model="form.region" placeholder="请选择活动区域">  

export default {
    data() {
        return {
            form: {   /*  一旦通过v-bind或者v-model绑定的变量,必须在数据模型中声明   在这里form是一个对象 */
                name: '',
                region: '',
                date1: '',
                date2: ''
            },

submit方法所提交的是form对象,使用alert在浏览器中弹出会显示[object Object]而无法显示出所提交的内容,因此要使用将JSON格式的对象转换成string字符串的方法,即使用JSON.stringify(JSON格式对象)来将JSON格式的对象转换为字符串。

 methods: {
        onSubmit:function() {
            alert(JSON.stringify(this.form))  // this代表当前vue对象,但是是JS对象,因此alert中只显示Object,因此要使用JSON的stringify(jsObject)转为字符串
        }
    }

this代表当前vue对象,通过this拿到当前vue对象的表单对象,因此为this.form。 

二.完整代码

<template>
    <div> <!-- div是根标签,一个<template>标签中只能有一个根标签,也即只能有一个<template>标签 -->
        <!-- Button按钮组件 -->
        <el-row>
            <el-button>默认按钮</el-button>
            <el-button type="primary">主要按钮</el-button>
            <el-button type="success">成功按钮</el-button>
            <el-button type="info">信息按钮</el-button>
            <el-button type="warning">警告按钮</el-button>
            <el-button type="danger">危险按钮</el-button>
        </el-row>

        <br>

        <!-- Table表格组件 -->
        <el-table :data="tableData" border style="width: 100%">
            <el-table-column prop="date" label="日期" width="180"> </el-table-column>
            <el-table-column prop="name" label="姓名" width="180"> </el-table-column>
            <el-table-column prop="address" label="地址"> </el-table-column>
        </el-table>

        <!-- Pagination分页组件 -->
        <!-- background	是否为分页按钮添加背景色	boolean     有background即添加,没有则不添加 -->
        <!-- layout	组件布局,子组件名用逗号分隔	String	sizes, prev, pager, next, jumper, ->, total, slot -->
        <!-- sizes 控制每页能够显示多少条 -->
        <!-- prev   显示前一页箭头 -->
        <!-- pager  显示页码    -->
        <!-- next   显示后一页箭头      -->
        <!-- jumper     显示跳转到某一页     -->
        <!-- total      显示总条数       -->
        <!-- ->     布局中所有位于 -> 后面的元素都会被移到分页组件的右侧  -->
        <!-- slot   自定义组件   -->
        <!-- 可以更改layout组件布局顺序来控制展示顺序 -->
        <el-pagination background layout="sizes, prev, pager, next, jumper, total, slot" @size-change="handleSizeChange"
            @current-change="handleCurrentChange" :total="1000">
            <!-- :total="1000", 写全 v-bind:total="1000", ":"语法是 v-bind: 的简写,用于绑定一个动态的值到属性 -->
            <!-- size-change	pageSize 改变时会触发	回调参数:每页条数 -->
            <!-- current-change	currentPage 改变时会触发	回调参数:当前页 -->
            <!-- @:v-on的简写 v-on为el-button标签绑定了一个事件click-->
        </el-pagination>

        <br>
        <br>

        <!-- Dialog对话框组件 -->
        <!-- @click="dialogTableVisible = true" 当点击操作触发时,dialogTableVisible为true,显示对话框中的内容 -->
        <el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialog</el-button> 
        <!-- 参数:visible.sync    说明:是否显示Dialog,支持 .sync 修饰符    类型:boolean    默认值:false -->
        <el-dialog title="收货地址" :visible.sync="dialogTableVisible">   
            <el-table :data="gridData">
                <el-table-column property="date" label="日期" width="150"></el-table-column>
                <el-table-column property="name" label="姓名" width="200"></el-table-column>
                <el-table-column property="address" label="地址"></el-table-column>
            </el-table>
        </el-dialog>

        <br>

        <!-- Dialog对话框组件-Form表单组件 -->
        <!-- @click="dialogFormVisible = true" 当点击操作触发时,dialogFormVisible为true,显示对话框中的内容 -->
        <el-button type="text" @click="dialogFormVisible = true">打开嵌套表单的 Dialog</el-button> 
        <!-- 参数:visible.sync    说明:是否显示Dialog,支持 .sync 修饰符    类型:boolean    默认值:false -->
        <el-dialog title="表单" :visible.sync="dialogFormVisible">   
            <el-form ref="form" :model="form" label-width="80px">   <!-- :=v-bind 为该标签绑定一个变量名为model,是一个form对象 -->
                <el-form-item label="活动名称">
                    <el-input v-model="form.name"></el-input>   <!-- 一旦通过v-bind或者v-model绑定的变量,必须在数据模型中声明 -->
                </el-form-item>
                <el-form-item label="活动区域">
                    <!-- v-model   在表单元素上创建双向数据绑定,将数据模型中的数据与视图中的数据进行绑定 -->
                    <el-select v-model="form.region" placeholder="请选择活动区域">  
                    <el-option label="区域一" value="shanghai"></el-option>
                    <el-option label="区域二" value="beijing"></el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="活动时间">
                    <el-col :span="11">
                    <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
                    </el-col>
                    <el-col class="line" :span="2">-</el-col>
                    <el-col :span="11">
                    <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
                    </el-col>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="onSubmit">提交</el-button>  <!-- 当点击提交按钮时触发onSubmit方法 -->
                    <el-button>取消</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
    </div>
</template>

<script>
export default {
    data() {
        return {
            form: {   /*  一旦通过v-bind或者v-model绑定的变量,必须在数据模型中声明   在这里form是一个对象 */
                name: '',
                region: '',
                date1: '',
                date2: ''
            },
            gridData: [{
                date: '2016-05-02',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1518 弄'
            }, {
                date: '2016-05-04',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1518 弄'
            }, {
                date: '2016-05-01',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1518 弄'
            }, {
                date: '2016-05-03',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1518 弄'
            }],
            dialogTableVisible: false,  // 定义一个表格属性,表示是否显示表格
            dialogFormVisible: false,   // 定义一个表单属性,表示是否显示表单
            tableData: [
                {
                    date: "2016-05-02",
                    name: "王小虎",
                    address: "上海市普陀区金沙江路 1518 弄",
                },
                {
                    date: "2016-05-04",
                    name: "王小虎",
                    address: "上海市普陀区金沙江路 1517 弄",
                },
                {
                    date: "2016-05-01",
                    name: "王小虎",
                    address: "上海市普陀区金沙江路 1519 弄",
                },
                {
                    date: "2016-05-03",
                    name: "王小虎",
                    address: "上海市普陀区金沙江路 1516 弄",
                },
            ],
        };
    },
    methods: {
        handleSizeChange: function (val) {
            alert("当前页面条数为:" + val)
        },
        handleCurrentChange: function (val) {
            alert("当前页为:" + val)
        },
        onSubmit:function() {
            alert(JSON.stringify(this.form))  // this代表当前vue对象,但是是JS对象,因此alert中只显示Object,因此要使用JSON的stringify(jsObject)转为字符串
        }
    }
};
</script>

<style></style>

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

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

相关文章

解决麒麟 V10 SP1 升级 Python 后 yum dnf不可用问题

目录 一、前提概要 二、解决办法 1、卸载原有的 python 2、安装 Python 3.7.9 rpm 3、安装一系列 yum 相关 rpm 4、rpm 包下载 一、前提概要 在部署 gaussDB 的时候&#xff0c;安装代理时要求 python 版本满足 3.7.9&#xff0c;但已安装的麒麟 V10 内集成的 python 版…

探索工业互联网智能赋能智能制造算法综述

概述 文档地址&#xff1a;https://arxiv.org/pdf/2312.16174 源码地址&#xff1a;https://github.com/microsoft/Cream.git 由于激烈的竞争环境和日益增长的个性化定制需求&#xff0c;制造业面临着数字化转型和升级的压力。为我们指明了前进的方向。然而&#xff0c;现有研…

stable diffusion inapinting(img2img+inpaint/inapint-model)

https://zhuanlan.zhihu.com/p/681250295https://zhuanlan.zhihu.com/p/681250295AIGC专栏4——Stable Diffusion原理解析-inpaint修复图片为例_diffusion inpaint-CSDN博客文章浏览阅读1.7w次,点赞42次,收藏79次。Inpaint是Stable Diffusion中的常用方法,一起简单学习一下。…

python之pandas (5 画图)

画图 Series画图 import pandas as pd import numpy as np import matplotlib.pyplot as pltdatapd.Series(np.random.randn(1000),indexnp.arange(1000)) #randn生成服从标准正态分布&#xff08;均值为0&#xff0c;标准差为1&#xff09;的随机样本&#xff0c;1000表示10…

复现YOLOv8语义分割训练自己的数据集

一、YOLOv8源码下载&#xff1a;https://github.com/ultralytics/ultralytics/tree/v8.2.76 我下载的是最新版本8.2.76 接着下载权重 下载源码后解压 二、配置虚拟环境 创建虚拟环境 conda create -n yolov8 python3.9 激活环境 conda activate yolov8 下载pytorch,官网地…

数据结构——关于栈

1.栈 1.1栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作 进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出的原则 比如&#xff1a;羽毛球桶&#xff0c;弹夹等等 压…

【C++面经】

1 2 因为ptr还记录了对象的个数&#xff0c;通过中括号标识&#xff0c;就知道药一一调用数组的每个对象的析构函数 3 4 5 6

【C语言】二叉树链式结构的实现,详解

0.前言 二叉树的基本操作的实现基本离不开一个思想——分治算法。 分治算法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题&#xff0c;这些子问题相互独立且与原问题相同。递归地解这些子问题&#xff0c;然后将各子问题的解合并得到原问题的解。这样&#xff0…

mysql主从复制同步、mysql5.7版本安装配置、python操作mysql数据库、mycat读写分离实现

一、mysql主从复制及同步 1、mysql主从自动开机同步 2、配置mysql5.7版本 mysql-5.7.44-linux-glibc2.12-x86_64.tar 启动服务、登录 对数据库进行基本操作 3、使用python操纵mysql数据库 4、编辑python脚本自动化操纵mysql数据库 二、mycat读写分离实现 1.上传jdk和mycat安装包…

项目简介:pyiqa-sal | 图像质量评价代码库

项目地址&#xff1a;https://github.com/Alexkkir/pyiqa-sal/tree/main 这是一个纯python和pytorch编写的图像质量评估工具箱&#xff0c;提供了许多主流全参考&#xff08;FR&#xff09;和无参考&#xff08;NR&#xff09;指标的重新实现&#xff08;如果有的话&#xff0…

MES系统从哪几方面提升企业制造水平?

在当今这个快速变化的制造环境中&#xff0c;企业对于提升制造水平的追求从未停止。制造执行系统&#xff08;MES&#xff09;作为连接企业战略规划与车间实际操作的核心工具&#xff0c;其重要性日益凸显。盘古信息MES系统&#xff0c;凭借其独特的功能模块和创新的设计理念&a…

数据库-DDL语言-数据定义语言

DDL语言-数据定义语言 对数据库对象进行操作的语言, 涉及到的关键字CREATE,ALTER,DROP 对数据库的操作 新建一个数据库 语法 CREATE DATABASE 数据库名 [charset字符集]例 新建一个数据库:mydb CREATE DATABASE mydb;注:SQL语句不区分大小写&#xff0c;但是好的书写习惯…

【考研数学】题目类型:出现两次积分限,但实际上是一次积分。

考研中&#xff0c;有一类题目是出现了两次积分限&#xff08;尤其是人为对题目进行变换、化简时&#xff09;&#xff0c;但解题方法不是利用二重积分方法&#xff0c;而是一次积分。常用凑微分、分部积分法。 以武忠祥老师严选题的两道题目为例&#xff1a; 这两道题就是“披…

模拟实现字符串相关函数(第二十七天)

&#xff01;&#xff01;assert---断言在函数中非常有用&#xff0c;能明确的指出哪里出了错误&#xff0c;然后后续自己方便进行更改 const不能通过直接赋值来改变&#xff0c;但是&#xff01;&#xff01;但是可以通过改地址的方式来改值&#xff01;&#xff01;这时只需要…

如何进军海外短剧市场?从了解海外短剧CPS开始

随着国内土味短剧在各大短视频平台爆火&#xff0c;从初期的蓝海红利到现在的如日中天&#xff0c;其中不乏有人将眼光瞄准了海外市场&#xff0c;预计将在未来几年打造出短剧出海的百亿市场&#xff0c;早期入局海外市场相当于小白一样&#xff0c;而现在和你们分享如何跻身海…

OpenCV图像滤波(15)梯度计算函数Scharr()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 函数使用 Scharr 运算符计算图像的第一个 x- 或 y- 空间导数。 调用 Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType) \texttt{Sc…

数据库(六):事务和索引

一、事务 &#xff08;一&#xff09;概念 1、事务是一组操作集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事物会把所有操作作为一个整体一起向系统提交或者撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失效。 2、默认MySQL的事务是自动…

用关系图和示例解释异步/等待

**解释在各种场景中使用等待时的程序执行流**本文原文 前言 这个文档解释了 Async/Await 是如何工作的。这可能是一个令人困惑的话题。我们将从一些简单的基本概念开始&#xff0c;然后慢慢地向更高级的概念发展。希望这些可视化图表能够帮助那些学习者。 下面的讨论主要是从…

从Retrofit支持suspend协程请求说开去

在现代Android开发中&#xff0c;异步请求已经成为不可或缺的一部分。传统的异步请求往往涉及大量的回调逻辑&#xff0c;使代码难以维护和调试。随着Kotlin协程的引入&#xff0c;异步编程得到了极大的简化。而作为最流行的网络请求库之一&#xff0c;Retrofit早在Kotlin协程的…

【JavaEE】深入探索SpringBoot的日志管理功能与实践应用

目录 SpringBoot 日志日志概述日志使用打印日志在程序中得到⽇志对象使用日志对象打印日志 ⽇志框架介绍(了解)⻔⾯模式(外观模式)SLF4J 框架介绍日志格式的说明⽇志级别日志级别的分类日志级别的使用 ⽇志配置配置⽇志级别⽇志持久化配置⽇志⽂件分割配置⽇志格式 更简单的⽇志…