详细讲解Element UI 中丰富的表单控件(图文解析)

news2024/12/25 23:25:04

目录

  • 前言
  • 1. 文本框、文本域
  • 2. 下拉框 (Select)
  • 3. 单选框 (Radio)
  • 4. 复选框 (Checkbox)
  • 5. 日期控件 (Date Picker)
  • 6. 图片上传 (Image Upload)
  • 7. 文件上传 (File Upload)
  • 8. 富文本控件 (Rich Text Editor)

前言

Element UI 一个基于 Vue.js 2.0 的桌面端组件库,提供许多常用的 UI 组件

该博客主要讲解如何使用 Element UI 创建各种表单控件,包括文本框、文本域、下拉框、单选框、复选框、日期控件、图片上传、文件上传和富文本控件

在这里插入图片描述

1. 文本框、文本域

文本框比较简易,也是用得比较多的一个控件
就是没有type: <el-input v-model="formData.description" placeholder="请输入描述" />

如果是文本域,则如下:

示例代码如下

<template>
  <el-form :model="formData" ref="form">
    <el-form-item label="描述" prop="description">
      <el-input type="textarea" v-model="formData.description" placeholder="请输入描述" />
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        description: ''
      }
    };
  }
};
</script>

主要的属性如下:

  • v-model:绑定输入值
  • type:设置为 textarea 以启用多行输入

如图所示:

在这里插入图片描述

2. 下拉框 (Select)

用于从预定义的选项中选择一个值

通过 el-selectel-option 组件实现

<template>
  <el-form :model="formData" ref="form">
    <el-form-item label="箱型" prop="boxType">
      <el-select v-model="formData.boxType" placeholder="请选择箱型">
        <el-option label="类型1" value="type1"></el-option>
        <el-option label="类型2" value="type2"></el-option>
      </el-select>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        boxType: ''
      }
    };
  }
};
</script>

主要属性和方法

  • v-model:绑定选中的值
  • placeholder:输入框为空时的占位文本
  • el-optionlabelvalue:分别表示选项的显示文本和实际值

实战中的代码示例如下:

<el-form-item label="预约类型" prop="appointmentType">
  <el-select v-model="formData.appointmentType" :disabled="formType === 'detail'" placeholder="请选择预约类型">
    <el-option
      v-for="dict in getStrDictOptions(DICT_TYPE.DANGEROUS_APPOINTMENT_TYPE)"
      :key="dict.value"
      :label="dict.label"
      :value="dict.value"
    />
  </el-select>
</el-form-item>

可以通过字典的形式进行存储

3. 单选框 (Radio)

用于从一组选项中选择一个值

通过 el-radioel-radio-group 组件实现

<template>
  <el-form :model="formData" ref="form">
    <el-form-item label="性别" prop="gender">
      <el-radio-group v-model="formData.gender">
        <el-radio label="male"></el-radio>
        <el-radio label="female"></el-radio>
      </el-radio-group>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        gender: ''
      }
    };
  }
};
</script>

主要属性和方法:

  • v-model:绑定选中的值
  • el-radiolabel:单选框的值

4. 复选框 (Checkbox)

用于从一组选项中选择多个值

通过 el-checkboxel-checkbox-group 组件实现

<template>
  <el-form :model="formData" ref="form">
    <el-form-item label="职位" prop="hobbies">
      <el-checkbox-group v-model="formData.hobbies">
        <el-checkbox label="reading">吗喽1</el-checkbox>
        <el-checkbox label="sports">吗喽2</el-checkbox>
        <el-checkbox label="music">吗喽3</el-checkbox>
      </el-checkbox-group>
    </el-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        hobbies: []
      }
    };
  }
};
</script>

主要属性和方法:

  • v-model:绑定选中的值
  • el-checkboxlabel:复选框的值

5. 日期控件 (Date Picker)

用于选择日期或日期范围

通过 el-date-picker 组件实现

<template>
  <el-form :model="formData" ref="form">
    <el-form-item label="日期" prop="date">
      <el-date-picker v-model="formData.date" type="date" placeholder="请选择日期"></el-date-picker>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        date: ''
      }
    };
  }
};
</script>

主要属性和方法:

  • v-model:绑定选中的日期
  • type:设置日期选择器类型,如 date、daterange、datetime 等
  • placeholder:输入框为空时的占位文本

对于这个日期原先写过一个组件,推荐阅读:【ElementUI】详细分析DatePicker 日期选择器

截图如下:

在这里插入图片描述

6. 图片上传 (Image Upload)

<template>
  <el-form :model="formData" ref="form">
    <el-form-item label="上传图片" prop="image">
      <el-upload
        action="https://jsonplaceholder.typicode.com/posts/"
        list-type="picture-card"
        :on-preview="handlePreview"
        :on-remove="handleRemove"
        v-model="formData.image">
        <i class="el-icon-plus"></i>
      </el-upload>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        image: []
      }
    };
  },
  methods: {
    handlePreview(file) {
      console.log(file);
    },
    handleRemove(file, fileList) {
      console.log(file, fileList);
    }
  }
};
</script>

主要属性和方法:

  • action:上传的地址
  • list-type:文件列表的类型,可选值为 text、picture 和 picture-card
  • on-preview:点击文件列表中已上传的文件时的钩子
  • on-remove:文件列表移除文件时的钩子

7. 文件上传 (File Upload)

通过 el-upload 组件实现

<template>
  <el-form :model="formData" ref="form">
    <el-form-item label="上传文件" prop="file">
      <el-upload
        action="https://jsonplaceholder.typicode.com/posts/"
        :on-preview="handlePreview"
        :on-remove="handleRemove"
        v-model="formData.file">
        <el-button type="primary">点击上传</el-button>
      </el-upload>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        file: []
      }
    };
  },
  methods: {
    handlePreview(file) {
      console.log(file);
    },
    handleRemove(file, fileList) {
      console.log(file, fileList);
    }
  }
};
</script>

主要属性和方法

  • action:上传的地址
  • on-preview:点击文件列表中已上传的文件时的钩子
  • on-remove:文件列表移除文件时的钩子

8. 富文本控件 (Rich Text Editor)

用于编辑和格式化文本内容

通过第三方库如 vue-quill-editor 实现:npm install vue-quill-editor

<template>
  <el-form :model="formData" ref="form">
    <el-form-item label="内容" prop="content">
      <quill-editor v-model="formData.content" ref="quillEditor"></quill-editor>
    </el-form-item>
  </el-form>
</template>

<script>
import { quillEditor } from 'vue-quill-editor';
import 'quill/dist/quill.core.css';
import 'quill/dist/quill.snow.css';
import 'quill/dist/quill.bubble.css';

export default {
  components: {
    quillEditor
  },
  data() {
    return {
      formData: {
        content: ''
      }
    };
  }
};
</script>

主要属性和方法:

  • v-model:绑定编辑器内容
  • quillEditor:富文本编辑器组件

这个控件比较丰富,我使用的是Editor

<el-form-item label="货物描述" prop="descriptionGoods">
  <Editor v-model="formData.descriptionGoods" height="150px" />
</el-form-item>

截图如下:

在这里插入图片描述

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

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

相关文章

数据库并发控制技术

1.数据库中为什么要采用并发控制&#xff1f;并发控制技术能保证事务的哪些特性&#xff1f; 因为多个事务的并发操作会对数据库产生影响&#xff0c;当多个事务同时访问一个数据时就会互相干扰。并发控制技术能保证事务的一致性&#xff0c;隔离性。一致性是指事务要么全部运…

如何恢复苹果手机数据?盘点3个实用恢复方法!

苹果手机数据丢失固然是一件很痛心的事&#xff0c;但是在这个信息发达的网络时代&#xff0c;想要恢复数据其实也并不复杂。只要用对方法&#xff0c;是有很大概率能够恢复的。那么针对iPhone用户来说&#xff0c;苹果数据恢复的方法是什么呢&#xff1f;下来让我们一起来看看…

GPT-4系列模型,在文档理解中的多维度评测

著名云数据平台Snowflake的研究人员发布了一篇论文&#xff0c;主要对OpenAI的GPT-4系列模型进行了研究&#xff0c;查看其文本生成、图像理解、文档摘要等能力。 在DocVQA、InfographicsVQA、SlideVQA和DUDE数据集上对GPT-4、GPT-4 V、GPT-4 Turbo V OCR等进行了多维度测试。…

【QT】

通信服务端实现 widget.h文件 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QTcpServer>//服务器类 #include <QMessageBox>//消息 #include <QTcpServer> #include <QList> #include <QTcpSocket> QT_BEGIN_NAMESPAC…

室内农场种植之新型LED照明技术的研究:AS7341光谱控制器

一、功能说明 单片机采用STC8H1K17型号&#xff0c;搭载51内核&#xff0c;配备OLED显示屏&#xff0c;用于展示波长与定时时间信息。设备支持手动与定时两种操作模式&#xff0c;定时时间范围设定为5至99秒之间。用户可通过按键实现手动模式与定时模式之间的切换。 在手动模…

EOS Black灵魂回响黑色联机需要加速吗 超好用的联机加速器推荐

灵魂回响黑色是一款全新的MMORPG游戏&#xff0c;游戏在提供沉浸感超强的剧情的同时&#xff0c;也带来了压倒性的游戏画质。同时&#xff0c;游戏的职业系统十分自由&#xff0c;从人物属性到装备属性、到技能搭配、甚至到职业都可以任意DIY&#xff0c;把角色养成发挥到了极致…

本地大模型服务 Ollama:从安装到使用

文章目录 前言一、下载安装1.1 官网安装1.2 压缩包安装1.3 docker 安装二、命令行使用2.1 常用命令2.2 模型列表2.3 使用三、Open-WebUI3.1 安装3.2 修改语言3.3 使用参考前言 Ollama 是专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的开源框架,它有如下几个特点…

【Kafka】Kafka生产者数据重复、数据有序、数据乱序-07

【Kafka】Kafka生产者数据重复、数据有序、数据乱序-07 1. 数据重复1.1 数据传递语义1.2 幂等性1.2.1 如何开启幂等性1.2.2 同一个消息&#xff0c;多个分区都会存在吗&#xff1f; 1.3 事务1.3.1 Kafka 事务原理1.3.2 Kafka事务的作用和意义作用具体应用场景 2. 数据有序3. 数…

LogicFlow 学习笔记——10. LogicFlow 进阶 边

我们可以基于 Vue 组件自定义边&#xff0c;可以在边上添加任何想要的 Vue 组件&#xff0c;甚至将原有的边通过样式隐藏&#xff0c;重新绘制。 如 Example3 中所示&#xff1a; 锚点 默认情况下&#xff0c;LogicFlow 只记录节点与节点的信息。但是在一些业务场景下&#…

易兆微电子_嵌入式软件工程师笔试题

易先电子 嵌入式软件工程师笔试题(十七) 1.关键字 extern是什么含义, 请举例说明。 修饰符extern用在变量或者函数的声明前&#xff0c;用来说明 “ 此变量 / 函数是在别处定义的&#xff0c;要在此处引用 ”。 //main.c #include <stdio.h>int main() {extern int num…

HTML播放flv

页面效果&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" …

Object类hashCode方法和equals方法源码

hashCode方法 顶级类Object里面的方法&#xff0c;所有类都是继承Object的&#xff0c;返回值int类型 根据一定的hash规则&#xff08;存储地址、字段、或者长度等&#xff09;&#xff0c;映射成一个数值&#xff0c;即散列值 public static int hashCode(Object a[]) {if (a…

windows系统下安装redis,并进行密码配置

一、windows系统下安装redis Redis&#xff08;Remote Dictionary Server &#xff0c;远程字典服务&#xff09; 是一个高性能的key-value数据格式的内存数据库&#xff0c;是NoSQL数据库。redis的出现主要是为了替代早起的Memcache缓存系统的。 内存型(数据存放在内存中)的非…

MPI并行计算关键点讲解及使用入门

MPI&#xff08;Message Passing Interface&#xff09;是并行计算领域的一个关键标准&#xff0c;它定义了一套用于在多个计算节点间进行高效消息传递和数据交换的通信协议和库。在高性能计算&#xff08;HPC&#xff09;领域&#xff0c;MPI尤为重要&#xff0c;特别是在处理…

Nuxt3 实战 (十一):添加路由 Transition 过渡效果和 Loading 动画

页面过渡效果 Nuxt3 利用 Vue 的 组件 在页面和布局之间应用过渡效果。 nuxt.config.ts 文件配置&#xff1a; export default defineNuxtConfig({app: {pageTransition: { name: page, mode: out-in }}, })在页面之间添加过渡效果&#xff0c;在 app.vue 文件中添加以下 CS…

opencv 打开图片后,cv::mat存入共享内存的代码,实现消费者与生产者模型。XSI信号量和POSIX 信号量

文章目录 基于 sys 系统信号量(XSI信号量)常用api参考 基于 POSIX 信号量有名信号量常用 api 无名信号量常用 api 参考 实践-基于POSIX有名信号量生产者消费者模型任务说明同步关系互斥关系 设置一个互斥信号量&#xff0c;实现对共享内存的互斥访问设置两个信号量&#xff0c;…

ESP32 矩阵键盘 4*3状态机

简洁高效的ESP32处理矩阵键盘代码… /**********矩阵键盘IO映射***************3(9) 1(8) 5(4)2(13)7(12)6(18)4(19)*************************************/ uint8_t Trg0,Cont0; void Key_Task(void) {uint8_t ReadData,ColumnData,RowData;pinMode(9,INPUT_PULLUP);pin…

[面试题]RabbitMQ

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

候选键的确定方法-如何判断属性集U的子集K是否为候选键、如何找到关系模式的候选键

一、候选键的定义 在关系模式R(U,F)中&#xff0c;若&#xff0c;且K满足&#xff0c;则K为关系模式R的候选键 关系模式R的候选键必须满足以下两个条件&#xff1a; &#xff08;1&#xff09;必须是属性集U的子集 &#xff08;2&#xff09;完全函数决定属性集U 二、如何…

使用opencv合并两个图像

本节的目的 linear blending&#xff08;线性混合&#xff09;使用**addWeighted()**来添加两个图像 原理 (其实我也没太懂&#xff0c;留个坑&#xff0c;感觉本科的时候线代没学好。不对&#xff0c;我本科就没学线代。) 源码分析 源码链接 #include "opencv2/imgc…