elementUI中的table动态表单记录

news2024/9/24 7:24:38

form表单与table一起使用

之前一直以为form表单是单独使用,现在联动起来发现只是套了一层外壳,并不是很麻烦的事情

form的单独使用

<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  <el-form-item label="密码" prop="pass">
    <el-input type="password" v-model="ruleForm.pass" autocomplete="off"></el-input>
  </el-form-item>
  <el-form-item label="确认密码" prop="checkPass">
    <el-input type="password" v-model="ruleForm.checkPass" autocomplete="off"></el-input>
  </el-form-item>
  <el-form-item label="年龄" prop="age">
    <el-input v-model.number="ruleForm.age"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
    <el-button @click="resetForm('ruleForm')">重置</el-button>
  </el-form-item>
</el-form>

form与table的联合

在table的column中使用solot 将form-item放入。需要注意的还是数据格式与rules

form内使用的是input输入框,它所绑定的值当前行数据的属性  原来的写法是form表单绑定form后 使用form.xxx进行绑定。现在采用的是table,绑定值变成了scope.row.xxx.

因为我写的是动态添加表格数据,所以prop采用index拼接的方式


<el-form ref="ruleForm" :model="form" :rules="form.rules">
        <el-table class="box-table" :data="form.tableData" border >
          <el-table-column label="标题" align="center">
            <template slot-scope="scope">
              <el-form-item
                :prop="'tableData.' + scope.$index + '.title'"
                :rules="form.rules.title"
              >
                <el-input
                  v-model.trim="scope.row.title"
                  size="small"
                  placeholder="请输入标题名称"
                />
              </el-form-item>
            </template>
          </el-table-column>
       </el-table>
      </el-form>

数据格式

form{
    tableData:[],
    rules:{}
   }

el-table中的index

Table-column Attributes

参数说明类型可选值默认值
type对应列的类型。如果设置了 selection 则显示多选框;如果设置了 index 则显示该行的索引(从 1 开始计算);如果设置了 expand 则显示为一个可展开的按钮stringselection/index/expand
index如果设置了 type=index,可以通过传递 index 属性来自定义索引number, Function(index)-
   <el-table-column
            label="序号"
            align="center"
            type="index"
            width="70px"
            :index="indexMethod"
            sortable
          />
 // 将数字转换为A-Z 一直到AZ-ZZ的转换方法
    indexMethod(number) {
      var ordA = "A".charCodeAt(0);
      var ordZ = "Z".charCodeAt(0);
      var len = ordZ - ordA + 1;
      var s = "";
      while (number >= 0) {
        s = String.fromCharCode((number % len) + ordA) + s;
        number = Math.floor(number / len) - 1;
      }
      return s;
    },

可增删表格数据

点击当前行时候在当前行后面新增一条数据,点击当前行删除当前行,点击在最后添加一行

 // 增加一行
    addRow() {
      const row = {
        title: "",
      };
      this.form.tableData.push(row);
      // console.log(row);
    },
    // 删除指定行
    delRow(index) {
      this.form.tableData.splice(index, 1);
    },
    // 指定位置插入行
    addRowIndex(index) {
          const row = {
            title: "",
            this.form.tableData.splice(index + 1, 0, row);
        
      });
    },

表单校验

表单校验与原来的方式是一样的,需要将rules写在form表单中

 <el-form-item
                :prop="'tableData.' + scope.$index + '.select'"
                :rules="form.rules.select"
              >

因为后续进行动态添加表单,prop采用拼接index的方式,rules需要写全属性

但是存在一个问题,点击产生新表单后,例如index为 3,4,5的。点击验证后3表单存在错误提示,直接删除数据3,数据4的验证就会出现原来3号数据的错误提示。不会进行重新验证。

这里我采用的办法是在新增时候岁所有填入数据进行验证,验证成功后才可进行新增,删除行数据是直接进行删除。将错误信息也进行了删除不回影响数据显示。

如果有更好的方式希望能够提醒我下。我这没有使用el-table的新增。还是比较麻烦的写法

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

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

相关文章

前端进阶之——模块化

在做项目的时候越来越发现模块化的重要性&#xff0c;做好模块化开发不仅给后期的维护带来不少好处而且大大提升项目开发效率&#xff0c;接下来整理一下模块化相关知识吧。 模块化开发的优点 封装方法、提高代码的复用性、可维护性和可读性隔离作用域&#xff0c;避免污染全…

【SpringSecurity】十、JWT工具类

文章目录 1、jwt类库与相关依赖2、工具类3、总结 1、jwt类库与相关依赖 <!-- 添加jwt的依赖 --> <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.11.0</version> </dependency>…

如何看待中小企业实现数字化转型难的问题?有哪些工具可以降低企业数字化的门槛?

中小企业 (SME) 数字化转型的难度可能存在很大差异&#xff0c;具体取决于行业、现有技术基础设施、领导层的数字素养、预算限制以及变革的整体准备程度等因素。但总体而言&#xff0c;中小企业在进行数字化转型时往往面临以下几个挑战&#xff1a; 1.资源有限&#xff1a;与大…

Openlayer系列:利用GeoServer和Openlayer地图显示区域掩模

前言 利用GeoServer和Openlayer地图显示区域掩模 利用GeoServer进行图层发布 Openlayer地图显示区域掩模 对界面地图进行切换&#xff0c;卫星图利用GeoServer&#xff0c;水系等根据geojson文件生成图层&#xff0c;效果如下 卫星图部分代码如下&#xff1a; // 创建卫星图…

淘宝API接口,可以运用到多种业务场景中

淘宝API接口可以运用到多种业务场景中&#xff0c;以下列举了一些主要的场景&#xff1a; 商品信息展示&#xff1a;通过调用淘宝API详情接口&#xff0c;可以获取商品的详细信息&#xff0c;如商品标题、价格、库存、销量、评价等数据。这些信息可以用于在自己的网站或应用程…

@24计算机考研er,招生简章超全汇总来了!持续更新请收藏

今天是8月最后一天&#xff0c;大家复习进度如何&#xff1f;目前已经有多所计算机招生院校公布了24考研的研招通知&#xff0c;包含&#xff1a;招生简章、专业目录、参考书目、考试大纲等。学姐整理成了24计算机考研招生官方信息汇总表&#xff01;终于不用自己一个个去官网翻…

泼辣修图Ploarr5.11.7电脑最新简体中文版下载

泼辣修图专业版是一款强大的专业修图软件&#xff0c;拥有上百款调色工具还有丰富的图层素材&#xff0c; 更有智能的人像修饰面板&#xff0c;具备物体识别的智能蒙板&#xff0c;高效的滤镜管理系统和强大的文字工具&#xff0c;支持批量处理。一切围绕摄影&#xff0c;无论是…

XSS漏洞及分析·

XSS漏洞和分析 知识点模板字符串定时器焦点jquerydom破坏 漏洞复现 xss测试网站&#xff1a;https://xss.pwnfunction.com/ 知识点 模板字符串 模板字面量是用反引号&#xff08;&#xff09;分隔的字面量&#xff0c;允许多行字符串、带嵌入表达式的字符串插值和一种叫带标签…

LLM - LLaMA-2 获取文本向量并计算 Cos 相似度

目录 一.引言 二.获取文本向量 1.hidden_states 与 last_hidden_states ◆ hidden_states ◆ last_hidden_states 2.LLaMA-2 获取 hidden_states ◆ model config ◆ get Embedding 三.获取向量 Cos 相似度 1.向量选择 2.Cos 相似度 3.BERT-whitening 特征白化 …

用户体验地图是什么?UX设计心得分享

大家好&#xff0c;我是设计师l1m0身。本篇文章是关于UX设计中的用户体验地图。 对于新手设计师来说&#xff0c;建立用户体验地图会有一些难度。本篇文章中&#xff0c;我会以简单、易懂的语言分享UX设计师如何制作用户体验地图&#xff0c;希望对你的日常项目体验提升有所帮…

私有化部署无忧企业文档2.1.7版本功能清单已更新!

无忧企业文档是软开企服研发的一款基于云端的在线文档管理工具&#xff0c;适用于团队内部协作、知识管理、项目管理等多个领域。与其他在线文档工具相比&#xff0c;无忧企业文档更注重团队协作和安全性&#xff0c;适合企业和团队使用。并且它还提供了丰富的API接口&#xff…

使用Dbeaver连接GaussDB

1.下载DBeaver&#xff0c;官网地址 2.安装软件&#xff0c;打开软件&#xff0c;点击数据库->驱动管理器&#xff0c;具体操作如下图&#xff1a; 3、选择新建后进行参数设置&#xff0c;如下图&#xff1a; 具体参数如下图 驱动名称: GS #随便定义 驱动类型&#…

Pytorch 的基本概念和使用场景介绍

文章目录 一、基本概念1. 张量&#xff08;Tensor&#xff09;2. 自动微分&#xff08;Autograd&#xff09;3. 计算图&#xff08;Computation Graph&#xff09;4. 动态计算图&#xff08;Dynamic Computation Graph&#xff09;5. 变量&#xff08;Variable&#xff09; 二、…

Nodejs入门 token校验

Nodejs入门token校验之jsonwebtoken的使用 前言 token校验作为项目里的必要项&#xff0c;其重要性不言而喻&#xff0c;今天介绍一个在Node.js中备受推崇的神奇工具——jsonwebtoken 一、token是什么jsonwebtoken是什么&#xff1f; 在互联网世界中&#xff0c;Token是一种用于…

路由技术介绍

路由技术介绍 一、路由概述1.1、为什么需要路由1.2、路由的定义1.3、直接路由数据通信分析1.4、间接路由数据通信分析1.5、认识路由设备1.6、路由的下一跳1.7、路由表的构成与维护1.8、路由表的构成1.9、路由表的度量值1.10、路由表的内容1.11、管理距离1.12、路由加表原则1.13…

ESP32在线仿真器

1. Wokwi是一个电子在线仿真平台&#xff0c;支持的芯片有ESP32,STM32,树莓派&#xff0c;Arduino 网址&#xff1a; https://wokwi.com ; 而且支持在vscode内置插件仿真 2. ESP32可以使用microPython开发&#xff0c;相关sdk说明MicroPython&#xff08;ESP32&#xff09;快…

IndexDB

1 新建一个数据库 (1)在utils文件中新建一个indexedDB.ts export default class DB {private dbName: string // 数据库名称constructor(dbName: string){this.dbName dbName}// 打开数据库public openStore() {const request window.indexedDB.open(this.dbName,1)request…

关于linux openssl的自签证书认证与nginx配置

自签文档链接 重点注意这块&#xff0c;不能写一样的&#xff0c;要是一样的话登录界面锁会报不安全 域名这块跟最后发布的一致 nginx配置的话 server {listen 443 ssl; //ssl 说明为https 默认端口为443server_name www.skyys.com; //跟openssl设置的域名保持一致s…

GD32F4_CAN1无法进入接收中断

Q、GD32F450/470的外设CAN1按正常的初始化顺序配置后在正常和回环模式下都无法进入接收中断。 A、注意以下两点 【1】要使用CAN1的接收中断必须要开启CAN0的时钟 【2】CAN1的接收过滤序号应设置为15

肖sir__linux详解__001

linux详解: 1、ifconfig 查看ip地址 2、6版本&#xff1a;防火墙的命令&#xff1a; service iptables status 查看防火墙状态 service iptables statrt 开启防火墙 service iptables stop 关闭防火墙 service iptables restart 重启防火墙状态 7版本&#xff1a; systemctl s…