二次封装一个比较通用的elementUI表单

2023-11-09

 一下代码仅添加input和select,如有需要还可以加入单选多选日期等

<template>
  <el-form :inline="inline" label-width="130px" :model="commonForm" ref="refCommonForm"  class="demo-dynamic">
    <div v-for="val in formLabel" :key="val.prop" :class="val.class">
        <!-- input -->
          <el-form-item
          :prop="val.prop"
          :label="val.label" v-if="val.type == ('input' || 'textarea')" 
          :rules="{ required: val.required, message: '该项为必填项',trigger: 'blur'}"
          >
          <el-input :type="val.type" v-model="commonForm[val.prop]" autocomplete="off" ></el-input>
        </el-form-item>

        <!-- select -->
        <el-form-item
          :prop="val.prop" 
          :label="val.label" v-if="val.type == 'select'"
          :rules="[{ required: val.required, message: '该项为必填项',trigger: 'change'}]" 
          >
          <el-select v-model="commonForm[val.prop]" :filterable="val.isSearch" placeholder="请选择">
            <el-option v-for="item in val.config.options" :key="item.value" :label="item.label" :value="item.value"></el-option>
          </el-select>
        </el-form-item>
    </div>
    <slot></slot>
    <div class="t_c">
      <slot name="formOperate"></slot>
    </div>
  </el-form>
</template>


props: {
    inline: {Type: Boolean,default:false},
    commonForm:{Type:Object,default:()=>{} },
    formLabel:{Type:Array,default:()=>[] }
  },


handleSubmit(callback){
      this.$refs.refCommonForm.validate((valid) => {
        if (valid) {
          callback(this.commonForm)
        } else {
          return false;
        }
      });
    },
    resetForm() {
      this.$refs.refCommonForm.resetFields();
    },

如何使用:

​
<common-form ref="dialogForm" :commonForm="commonForm" :formLabel="formLabel">
   <template slot="formOperate">
       <el-button type="primary" @click="saveInfo">提交</el-button>
   </template>
</common-form>


-------------data---------------
commonForm:{name:'',type:''},
formLabel:[
   {prop:'name',label:'捕捞记录名称',type:'input',required:true,class:'form_inline'},
   {prop:'type',label:'捕捞种类',type:'input',required:true,class:'form_inline',config:{
        options:[
            {value:'鲤鱼',label:'鲤鱼'},
            {value:'小黄鱼',label:'黄鱼'},
        ]}
    }
]


-----------methods-----------
// 保存--修改/添加----调用表单的提交方法并得到返回的数据
    saveInfo(){
      this.$refs.dialogForm.handleSubmit(result=>{
        // 有id是修改,没有id是添加,result是弹出框中表单提交的数据
        if(result.id){
          //此处自己使用的是自己封装的http请求
          this.$http.post('updateCatchRecord',result,(res)=>{
            if(res.code == 200){
              this.dialogVisible = false;
              this.$message.success('修改成功!')
            }
          })
        }else{
          this.$http.post('addCatchRecord',result,(res)=>{
            if(res.code == 200){
              this.dialogVisible = false;
              this.$message.success('添加成功!')
            }
          })
        }
      });
    },

--------------css------------
/* 一行放两个,不加该class为一行一个的表单,
    此处封装方式不太好,有好的方法可以找我沟通哦 */
.form_inline{
  width:50%; display:inline-block
}

​

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二次封装一个比较通用的elementUI表单 的相关文章

随机推荐

  • WFQ-加权公平排队

    WFQ是一个复杂的排队过程 可以保证相同优先级业务间公平 不同优先级业务间加权 队列的数目可预先配置 范围是 16 4096 WFQ 在保证公平 带宽 延迟 的基础上体现权值 权值大小依赖于JP报文头中携带的IP优先级 Precedence
  • java的面向对象的基础

    面向对象基础 一 类和对象 1 1 什么是对象 1 2 面向对象 1 3 类 1 3 1 什么是类 1 3 2 类的特点 1 3 3 类的组成 1 3 4 类的定义 1 4 对象的属性 1 5 对象的行为 1 6 类和对象的关系 1 7 对
  • 编程陷阱_变量被莫名修改

    编程陷阱 变量被莫名修改 源代码 错误点 通道号更新 导致情况 原工程作用 QT中查询10个通道的数据 定义个数组记录每个通道的时间戳 轮询每个通道 源代码 错误点 CHANNEM NUM MAX 定义为 10 通道号更新 目标是轮询通道号
  • 系统架构设计专业技能 · 软件工程之系统分析与设计

    系列文章目录 系统架构设计专业技能 软件工程 一 系统架构设计师 系统架构设计高级技能 软件架构概念 架构风格 ABSD 架构复用 DSSA 一 系统架构设计师 系统架构设计高级技能 系统质量属性与架构评估 二 系统架构设计师 系统架构设计
  • 若依项目整合百度(Ueditor)富文本编辑器

    若依项目整合百度 Ueditor 富文本编辑器 最近项中有用到富文本编辑器 若依自带的功能太过简单 闲来无事整合了百度的富文本编辑器 一路踩坑终是成功了 呜呼 UEditor文档 http fex baidu com ueditor 点击演
  • Golang两款编辑器:Goland 2020 和国产的LiteIDE

    Goland 2020 http www opdown com soft 220835 html 国产的LiteIDE http liteide org cn
  • MERN技术栈实现CRUD的小项目(万字长文;使用React、Express、Mongodb、node实现前后端结合的增删查改)

    预期效果 使用React Express Mongodb node 可以前后端交互 实现增删查改 成品 实施过程 1 创建项目 前端部分的创建 前端依然使用 react create app 来创建 这次用到的依赖有如下的 classnam
  • VBA基础 - 分支和循环

    概要 编程语言的基础除了数据类型 就是控制结构了 所谓控制结构 主要就是分支和循环 分支 废话不说 直接示例代码 单条件判断 1 Sub Test 2 If 2 gt 1 Then 3 Debug Print xxxx 4 End If 5
  • 未完成---VBA的键盘事件相关

    试了几个地方 有的有些 有的问题很多 1 workbook open时调用 不好用 Private Sub Workbook Open Load UserForm6 UserForm6 Show Application OnKey a wb
  • WordPress(4)关于网站的背景图片更换

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 更改的位置 1 红色区域是要更换的随机的图片 二 替换图片位置 三 开启随机数量 四 结束 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智
  • Java 访问权限控制

    使用访问权限控制的原因 使用户不要触碰到那些不该触碰的部分 类库设计者可以更改类的内部工作模式 而不必担心整体程序造成影响 访问权限修饰词 Java具有三种访问权限修饰词 public private protected 划分出了四种访问权
  • 使用Django完成一个系统(上)

    文章目录 可重用注册登录系统 1 思考 2 搭建项目环境 3 设计数据库模型 4 路由 视图函数及模板的框架搭建 5 前端界面设计与优化 6 完善登录的视图函数 7 session会话与登录的视图函数 可重用注册登录系统 1 思考 需求分析
  • UE 4.19 安卓平台配置和测试

    以前使用UE4打包一个很简单的场景都要几百兆 最近据说这几个版本UE4对移动平台的大小进行了较大的优化 测试一下 附按照环境打包 解压后直接在项目中指定即可 链接 https pan baidu com s 1tAfMjY s56ehjud
  • c语言中两种常见代码编写错误,“写入位置 0x00000000 时发生访问冲突”和“语法错误 : 缺少“;”(在“{”的前面)”

    编程工作者在编程的时候 由于编程不够细心经常出现这样或那样的错误 今天 我在这里说下我所遇到的错误 如下面这个代码就出现了文章标题中的俩个错误 define CRT SECURE NO DEPRECATE include
  • Linux Capabilities

    Linux Capabilities是一种细粒度的权限管理机制 用于将root用户的特权划分为具体的功能集 它允许将部分root特权授予非root进程 可以在shell中运行 man capabilities 将显示capability m
  • 格式化数据库字段驼峰式

    public static String format String name if name contains String split name split name split 0 for int m 1 m lt split len
  • pyautogui问题解决方案记录(因为使用了:pyautogui.locateCenterOnScreen(img, confidence=0.9))

    本人环境 win10 1909 Python 3 9 13 不想多余看 只想直接解决 直接安装下面的库 pip install pyautogui pip install pillow pip install opencv python 我
  • 服务器如何发挥最好的性能,一篇文章告诉你怎么发挥固态硬盘最大性能

    对于使用固态硬盘相信大多数玩家对于其性能是否良好没有一个客观上的认知 今天就给大家详细介绍下如何让自己的固态硬盘保持良好的性能状态 从东芝TR200看固态硬盘满盘性能与读取延迟 固态硬盘的性能与很多因素有关 其中空间使用情况也会给固态硬盘的
  • Windows 下设置自定义域名解析到指定 IP

    Windows 下设置自定义域名解析到指定 IP 一 操作步骤 1 定位到 host文件 2 编辑 host文件属性 3 添加解析文件 域名 4 重启电脑 5 在命令行中测试域名即可 导言 记录一下 Windows下设置域名解析到指定 IP
  • 二次封装一个比较通用的elementUI表单

    一下代码仅添加input和select 如有需要还可以加入单选多选日期等