弹窗表单的使用,基于element-ui二次封装

news2025/5/12 21:52:54

el-dialog-form

介绍

基于element-ui封装的弹窗式表单组件


示例
git地址

https://gitee.com/chenfency/el-dialog-form.git

更新日志

2021-8-12

  • 版本1.0.0

2021-8-17

  • 优化组件,兼容element原组件所有Attributes及Events

2021-9-9

  • 新增tip提示
安装教程
  1. npm install el-dialog-form --save
使用说明
  1. 插件基于element-ui开发:element-ui文档
  2. 安装前请先确保已经安装element-ui
  3. npm install element-ui --save
  4. 验证器文档地址:https://github.com/yiminghe/async-validator
参数说明
参数名说明类型可选值默认值
visible是否显示dialogBooleantruefalse
title标题String--
width表单宽度String--
items表单项,详细见下方说明Array-[]
form初始表单值Object-{}
items参数说明
参数名说明类型可选值默认值
type表单项的类型,必填Stringinput/input-number/radio-group/checkbox-group/select/switch/time-picker/date-picker-
spanel-col的span值Number-20
label表单项labelString--
prop表单项keyString--
tip文字提示String--
rules表单验证规则,验证器文档地址:https://github.com/yiminghe/async-validator Array--
hidden隐藏条件函数,返回true/false来控制显示隐藏Function--
options选择项数组,仅type等于radio-group/checkbox-group/select生效,详细见下方说明Array--
on事件监听,key->value形式,key值同element-ui的Events,value为一个函数,详见element-ui文档Object--
attrs属性参数,key->value形式,key值同element-ui的Attributes,详见element-ui文档Object--
options参数说明
参数名说明类型可选值默认值
label显示的labelString--
value选中的valueAny--
示例代码
<template>
    <div class="app-container">
        <el-button @click="dialog = true">打开表单</el-button>
        <!-- 表单 -->
        <el-dialog-form :visible.sync="dialog" title="表单标题" width="500px" :items="items" :form="form"
            @submit="onSubmit">
        </el-dialog-form>
    </div>
</template>

<script>
    import elDialogForm from 'el-dialog-form'
    export default {
        components: {
            elDialogForm
        },
        data() {
            return {
                form: {
                    input: '',
                    inputNumber:0,
                    switch:false,
                    timePicker:'',
                    datePicker:'',
                    radioGroup:1,
                    checkboxGroup:[],
                    select:[],
                    checkbox:true
                },
                dialog: false,
                items: [
                    {
                        type: 'input',
                        label: '普通输入',
                        prop: 'input',
                        rules: [{
                            required: true,
                            message: "请输入名称",
                            trigger: 'blur'
                        }],
                        attrs:{
                            placeholder:'请输入名称'
                        },
                        on: {
                            blur: (e) => {
                                console.log(e);
                            }
                        },
                    },
                    {
                        type: 'input-number',
                        label: '计数器',
                        prop: 'inputNumber',
                        on: {
                            
                        }
                    },
                    {
                        type: 'switch',
                        label: '开关',
                        prop: 'switch',
                        on: {
                            
                        }
                    },
                    {
                        type: 'time-picker',
                        label: '时间选择',
                        prop: 'timePicker',
                        on: {
                            
                        }
                    },
                    {
                        type: 'date-picker',
                        label: '日期选择',
                        prop: 'datePicker',
                        attrs:{
                            
                        },
                    },
                    {
                        type: 'radio-group',
                        label: '单选框组',
                        prop: 'radioGroup',
                        tip:'radio-group说明',
                        options:[
                            {
                                label:'苹果',
                                value:1
                            },
                            {
                                label:'西瓜',
                                value:2
                            }
                        ],
                        on:{
                            change:(e)=>{
                                console.log('-----------');
                                console.log(e);
                            }
                        }
                    },
                    {
                        type: 'checkbox-group',
                        label: '多选框组',
                        prop: 'checkboxGroup',
                        options:[
                            {
                                label:'金毛',
                                value:1
                            },
                            {
                                label:'哈士奇',
                                value:2
                            }
                        ],
                        on:{
                            change:(e)=>{
                                console.log('-----------');
                                console.log(e);
                            }
                        }
                    },
                    {
                        type: 'select',
                        label: '下拉选择',
                        prop: 'select',
                        options:[
                            {
                                label:'鼠标',
                                value:1
                            },
                            {
                                label:'键盘',
                                value:2
                            }
                        ],
                        attrs:{
                            placeholder:'请输入名称'
                        },
                        on:{
                            change:(e)=>{
                                console.log('-----------');
                                console.log(e);
                            }
                        }
                    },
                    {
                        type: 'checkbox',
                        label: '选择',
                        prop: 'checkbox',
                        attrs:{
                            label:"我同意"
                        },
                        on:{
                            change:(e)=>{
                                console.log('-----------');
                                console.log(e);
                            }
                        }
                    },
                ]
            }
        },
        methods: {
            onSubmit(form) {
                console.log(form);
            }
        },
    }
</script>



喜欢的朋友记得点赞、收藏、关注哦!!!

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

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

相关文章

实践005-Gitlab CICD全项目整合

文章目录 环境准备环境准备集成Kubernetes Gitlab CICD项目整合项目整合整合设计 后端Java项目部署后端Java项目静态检查后端Java项目镜像构建创建Java项目部署文件创建完整流水线 前端webui项目部署前端webui项目镜像构建创建webui项目部署文件创建完整流水线 构建父子类型流水…

懒人美食帮SpringBoot订餐系统开发实现

概述 快速构建一个订餐系统&#xff0c;今天&#xff0c;我们将通过”懒人美食帮”这个基于SpringBoot的订餐系统项目&#xff0c;为大家详细解析从用户登录到多角色权限管理的完整实现方案。本教程特别适合想要学习企业级应用开发的初学者。 主要内容 1. 用户系统设计与实现…

MySQL 从入门到精通(六):视图全面详解 —— 虚拟表的灵活运用

在数据库开发中&#xff0c;我们经常需要重复执行复杂的多表查询&#xff0c;或是需要限制用户只能访问特定数据。这时候&#xff0c;MySQL 的 视图&#xff08;View&#xff09;就能大显身手。作为一种 “虚拟表”&#xff0c;视图不存储实际数据&#xff0c;却能基于 SQL 查询…

手机隐私数据彻底删除工具:回收或弃用手机前防数据恢复

软件介绍 有这样一款由吾爱网友chenwangjun 原创开发的数据处理软件&#xff0c;名为 AndroidDiskClear。它的核心功能十分强大&#xff0c;能够将你手机里已经删除的各类文件&#xff0c;像图片、普通文件、文字信息等彻底清除干净&#xff0c;有效杜绝数据恢复类软件的二次恢…

数据压缩实现案例

在driver中修改代码 package com.root.mapreduce.compress; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.…

FlySecAgent:——MCP全自动AI Agent的实战利器

最近&#xff0c;出于对人工智能在网络安全领域应用潜力的浓厚兴趣&#xff0c;我利用闲暇时间进行了深入研究&#xff0c;并成功开发了一款小型轻量化的AI Agent安全客户端FlySecAgent。 什么是 FlySecAgent&#xff1f; 这是一个基于大语言模型和MCP&#xff08;Model-Contr…

ideal创建Springboot项目(Maven,yml)

以下是使用 IntelliJ IDEA 创建基于 Maven 的 Spring Boot 项目并使用 YAML 配置文件的详细步骤&#xff1a; 一、创建 Spring Boot 项目 启动项目创建向导 打开 IntelliJ IDEA&#xff0c;点击“File”->“New”->“Project”。 在弹出的“New Project”窗口中&#…

Pycharm(十九)深度学习

一、深度学习概述 1.1 什么是深度学习 深度学习是机器学习中的一种特殊方法,它使用称为神经网络的复杂结构,特别是“深层”的神经网络,来学习和做出预测。深度学习特别适合处理大规模和高维度的数据,如图像、声音和文本。深度学习、机器学习和人工智能之间的关系如下图所…

Scrapyd 详解:分布式爬虫部署与管理利器

Scrapyd 是 Scrapy 官方提供的爬虫部署与管理平台&#xff0c;支持分布式爬虫部署、定时任务调度、远程管理爬虫等功能。本文将深入讲解 Scrapyd 的核心功能、安装配置、爬虫部署流程、API 接口使用&#xff0c;以及如何结合 Scrapy-Redis 实现分布式爬虫管理。通过本文&#x…

驱动开发硬核特训 · 专题篇:Vivante GPU 与 DRM 图形显示体系全解析(i.MX8MP 平台实战)

视频教程请关注 B 站&#xff1a;“嵌入式Jerry”。 一、背景导读&#xff1a;GPU 与 DRM 到底谁负责“显示”&#xff1f; 在嵌入式 Linux 图形系统中&#xff0c;“画面怎么显示出来”的问题&#xff0c;表面看似简单&#xff0c;实则涉及多个内核子系统与用户态组件的协同&…

C——猜数字游戏

前面我们已经学习了C语言常见概念&#xff0c;数据类型和变量以及分置于循环的内容&#xff0c;现在我们可以将这些内容结合起来写一个有趣的小游戏。下面正式开始我们今天的主题——猜数字游戏的实现。 猜数字游戏的要求&#xff1a; 1.电脑自动生成1~100的随机数。 2.玩家…

C/C++实践(三)深入理解 C++ 三大特性之一:封装

一、封装的概念与核心思想 封装&#xff08;Encencapsulation&#xff09;是 C 面向对象编程&#xff08;OOP&#xff09;的三大核心特性之一&#xff0c;其本质是将数据&#xff08;成员变量&#xff09;和对数据的操作&#xff08;成员函数&#xff09;捆绑在一个逻辑单元&a…

1、RocketMQ 核心架构拆解

1. 为什么要使用消息队列&#xff1f; 消息队列&#xff08;MQ&#xff09;是分布式系统中不可或缺的中间件&#xff0c;主要解决系统间的解耦、异步和削峰填谷问题。 解耦&#xff1a;生产者和消费者通过消息队列通信&#xff0c;彼此无需直接依赖&#xff0c;极大提升系统灵…

vue3 element-plus 输入框回车跳转页面问题处理

问题描述&#xff1a; 当页面搜索条件只有一个的情况下&#xff0c;输入框不管有没有值&#xff0c;回车后会跳转页面 解决办法&#xff0c;给表单添加 submit.prevent <el-form ref"ruleForm" :model"search" label-width"120px" class&qu…

快速入门深度学习系列(2)----损失函数、逻辑回归、向量化

针对深度学习入门新手目标不明确 知识体系杂乱的问题 拟开启快速入门深度学习系列文章的创作 旨在帮助大家快速的入门深度学习 写在前面&#xff1a; 本系列按照吴恩达系列课程顺序发布(说明一下为什么不直接看原笔记 因为内容太多 没有大量时间去阅读 所有作者需要一次梳理…

[超详细,推荐!!!]前端性能优化策略详解

学习记录&#xff0c;部分内容版权归妙码学院 1.优化内容包括那些 其实前端的优化&#xff0c;整体粗略概括下来&#xff0c;白话之&#xff1a; 打开速度怎么变快再次打开速度怎么变快操作怎么才顺滑动画怎么保证流畅 2.性能优化 2.1首屏加载优化 在了解优化方法和策略之…

数据提取之BeautifulSoup4快速使用

文章目录 一、前言二、概述2.1 安装2.2 初始化2.3 对象类型 三、遍历文档树3.1 子节点3.2 父节点3.3 兄弟节点3.4 前后节点3.5 节点内容3.5.1 文本内容3.5.2 属性值3.5.3 标签删除 四、搜索文档树4.1 find_all4.2 find4.3 CSS选择器4.4 更多 一、前言 官方文档&#xff1a;http…

list类的详细讲解

【本节目标】 1. list的介绍及使用 2. list的深度剖析及模拟实现 3. list与vector的对比 1. list的介绍及使用 1.1 list的介绍 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list 的底层是双向链表结构&a…

Linux系统下安装mongodb

1. 配置MongoDB的yum仓库 创建仓库文件 sudo vi /etc/yum.repos.d/mongodb-org.repo添加仓库配置 根据系统版本选择配置&#xff08;以下示例为CentOS 7和CentOS 9的配置&#xff09;&#xff1a; CentOS 7&#xff08;安装MongoDB 5.0/4.2等旧版本&#xff09;&#xff1a; In…

kuka, fanuc, abb机器人和移动相机的标定

基础知识 : 一, 9点标定之固定相机标定: 图1: 固定位置相机拍照 因为相机和机器人的基坐标系是固定的, 所以在海康威视相机的9点标定功能栏中, 填上海康使用“圆查找”捕捉到的坐标值, 再将机器人显示的工具坐标系在基坐标系的实时位置pos_act值填入物理坐标X, Y中即可 图2:…