vue+elementUI table表格嵌套表单,功能包含联动下拉框、动态增加行

2023-11-01

一、需求说明:


vue+elementUI table表格里嵌套表单:

支持动态增加一行和删除一行
含checkbox复选框,联动下拉框。不同的活动名称,所对应的活动选项下拉框的值不同
针对不同的选项,值的表现形式也要发生对应的变化,如:日期形式时,值要从文本框变为日期选择框。字典形式就变为下拉框

二、效果图:

在这里插入图片描述

在这里插入图片描述

三、实现

(一)Dom代码:

<el-card >
  <div slot="header" >
    <div style="display: inline;">
      <el-button type="info" @click="resetDataList">清空</el-button>
      <el-button type="warning" @click="handleDataAdd">新增一行</el-button>
    </div>
    <el-button style="float: right;" type="primary" @click="handleDataSave">保存</el-button>
  </div>
  <!--  条件表格 -->
  <div>
    <el-table
      :data="dataList"
      style="width: 100%"
      highlight-current-row>
      <el-table-column label="序号" width="55" type="index"></el-table-column>
      <el-table-column label="亲子活动" width="100">
        <template slot-scope="scope">
          <el-checkbox v-model="scope.row.亲子活动"></el-checkbox>
        </template>
      </el-table-column>
      <el-table-column label="活动名称" width="280">
        <template slot-scope="scope">
          <el-select v-model="scope.row.活动名称" placeholder="请选择"
                     filterable clearable @change="nameChange(scope.row.活动名称, scope.$index)">
            <el-option v-for="item in queryFields" 
            	:label="item.key" :value="item.key">
            </el-option>
          </el-select>
        </template>
      </el-table-column>
      <el-table-column label="活动选项" width="170">
        <template  slot-scope="scope">
          <el-select v-model="scope.row.活动选项" placeholder="请选择" clearable>
            <el-option
              v-for="item in scope.row.conditionOptions"
              :label="item" :value="item">
            </el-option>
          </el-select>
        </template>
      </el-table-column>
      <el-table-column label="值" width="250">
        <template slot-scope="scope">
          <!-- 通过v-if、v-if-else、v-else来控制值的表现形式是文本框、日期选择框、下拉框的一种 -->
          <el-date-picker v-if="scope.row.isDate" v-model="scope.row.值" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"></el-date-picker>
          <el-select v-else-if="scope.row.isDict" v-model="scope.row.值" placeholder="请输入内容" clearable filterable allow-create default-first-option>
            <el-option
              v-for="item in scope.row.valueOptions"
              :key = "item.value" :label="item.label" :value="item.value">
            </el-option>
          </el-select>
          <el-input v-else v-model="scope.row.值" placeholder="请输入内容" clearable></el-input>
        </template>
      </el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button size="mini" type="danger"
            @click="handleDataDelete(scope.$index, scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</el-card>

(二)拿活动选项下拉框举例 说明(值下拉框选项一样)

1.在方法里面直接使用row.conditionOptions接收接口返回的值

2.页面渲染直接使用 v-for="item in scope.row.conditionOptions"

3.在data里面不用定义 conditionOptions


四、说明and踩过的坑


1、整个表格的数据其实就是一个对象列表,里面每一个对象其实就是一行的数据

2、新增一行和删除是通过 “ 增加 / 删除dataList的元素 ” 来实现

3、级联下拉框,用到的思想是:给每一行数据都配上一个option,不同行的option不一样,使用el-option时 v-for="item in scope.row.conditionOptions"


————————————————
版权声明:本文为CSDN博主「小佩丫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38118138/article/details/124634628

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

vue+elementUI table表格嵌套表单,功能包含联动下拉框、动态增加行 的相关文章

随机推荐

  • 8. unity脚本参数输入、键盘控制、组件脚本调用

    1 脚本参数 在脚本文件中可以定义一些公开的属性 这时对应的属性也会在编辑器中显示出来 可以在编辑器中直接改动属性的值 如下代码 将 rotateSpeed 属性使用 public 修饰后 using System Collections
  • ChatGPT引发的人机交互发展历程与升级思考

    ChatGPT自从去年12月火爆以来一直热度不减 最近正好研读了科技之巅 书中详细阐述了人机交互 人工智能 算力算法等技术的发展历史 本文主要围绕ChatGPT引发的人机交互方面的思考 在讨论人机交互之前 首先需要说明的一点 目前计算机发展
  • AndroidStudio启动模拟器 Emulator: emulator: ERROR: x86 emulation currently requires hardware acceleration

    配置完Androidstudio 第一次启动模拟器 启动不了报错 错误 Emulator emulator ERROR x86 emulation currently requires hardware acceleration 错误原因
  • Windows Vista介绍概要

    正文 Windows Vista介绍概要 关键日程表 Beta 1 2005年7月27日 1 CTP 由2005年12月20日 Build 5270 開始 每兩至三個月推出新版本 Beta 2 2006年5月23日 Build 5384 4
  • Java 通过JDBC连接Mysql数据库的方法和实例

    之前有两篇文章讲了安装mysql ubuntu和windows 和可视化工具workbench的使用 这篇文章就讲一下java程序是如何连接MySQL数据库的 Java是通过JDBC连接Mysql数据库的 JDBC Java Data Ba
  • Linux运维常见面试题之精华收录

    1 什么是运维 什么是游戏运维 1 运维是指大型组织已经建立好的网络软硬件的维护 就是要保证业务的上线与运作的正常 在他运转的过程中 对他进行维护 他集合了网络 系统 数据库 开发 安全 监控于一身的技术 运维又包括很多种 有DBA运维 网
  • webrtc android版本的编译及release版本的获取

    本文主要介绍如何在ubuntu16 0 4平台下编译android版本的webrtc 对于刚开始使用webrtc的人来说 本篇博客可能对你有所帮助 对于健忘的我来说 也算是一种学习笔记 当有需要的时候 回头过来翻看一下也是极好的 好了 进入
  • JDK8辅助学习(四):Stream流 collect() 方法的详细使用介绍

    Stream流 collect 方法的使用介绍 1
  • linux配置jdk,jenkins,python3,git

    一 安装jdk 自动化测试的主要目的是为了执行回归测试 当然 为了模拟真实的用户操作 一般都是在UAT或者生产环境进行回归测试 为了尽量避免内网和外网解析对测试结果的影响 将自动化测试服务部署在外网的服务器是比较好的选择 今天申请的测试服务
  • java中instanceof用法

    java 中的instanceof 运算符是用来在运行时 color red b 指出对象是否是特定类的一个实例 b color instanceof通过返回一个布尔值来指出 这个对象是否是这个特定类或者是它的子类的一个实例 用法 resu
  • 马尔科夫区制转换matlab,马尔科夫区制转移混频向量自回归(MS-MF-VAR)模型及其Gauss实现...

    导读 马尔科夫区制转移向量自回归模型可以进行实时 real time 预测分析 扩展容纳混合频率和锯齿数据 可以看作是MF VAR模型的马尔科夫区制转移 Markov switching 扩展 从经验上讲 该模型能够非常准确地捕捉到美国的经
  • Python3.0 基础系列教程(目录)

    准备写一篇python的系列教程 目录暂定如下 如果有更好的建议 麻烦下方留言 如无意外 大约一周2 3篇 敬请期待 环境安装篇 1 下载并安装Python3 0 2 第一个python程序 3 安装集成开发环境ide 基础知识篇 基本数据
  • go:chan分为阻塞和非阻塞

    一句话总结 ch make chan int 由于没有缓冲发送和接收需要同步 ch make chan int 2 有缓冲不要求发送和接收操作同步 1 无缓冲时 发送阻塞直到数据被接收 接收阻塞直到读到数据 package main imp
  • 【华为OD机试真题】单核CPU任务调度

    单核CPU任务调度 考察的知识的点就一个优先队列 队列排序 题目描述 现在有一个CPU和一些任务需要处理 已提前获知每个任务的任务D 优先级 所需执行时间和到达时间 CPU同时只能运行一个任务 请编写一个任务调度程序 采用 可抢占优先权调度
  • Scala 的安装教程

    Scala 语言可以运行在Window Linux Unix Mac OS X等系统上 Scala是基于java之上 大量使用java的类库和变量 使用 Scala 之前必须先安装 Java gt 1 5版本 Mac OS X 和 Linu
  • git 提交新的工程

    git cmd exe 环境 windows git 提交新的工程 查看版本号 E software Git gt git version git version 2 15 1 windows 2 添加用户配置 E software Git
  • Error: EBUSY: resource busy or locked, lstat ‘D:\DumpStack.log.tmp‘

    问题 vue项目启动成功后报错 Error EBUSY resource busy or locked lstat D DumpStack log tmp 解决 1 npm cache clean force 2 npm install
  • 关于Apache/Tomcat/JBOSS/Nginx/lighttpd/Jetty等一些常见服务器的区别比较和理解

    今天是个很丰富的日子 早上一上班 第一个听到的惊爆消息就是楷子得了肠胃炎 一大早去医院挂水了 随后风胜和笑虎也没来 后来得知他们俩去去华星现代产业园参加培训 内容是关于Apache与Nginx的 于是乎 我非常感兴趣地查了一下培训用的PPT
  • C#按钮事件中有循环,用另一个按钮控制停止,暂停,继续程序执行

    首先在窗体上有 lable1 运行显示 button1 开始 button2 暂停和继续 button3 停止 窗体上还放Timer控件timer1 代码实现如下 using System using System Collections
  • vue+elementUI table表格嵌套表单,功能包含联动下拉框、动态增加行

    一 需求说明 vue elementUI table表格里嵌套表单 支持动态增加一行和删除一行 含checkbox复选框 联动下拉框 不同的活动名称 所对应的活动选项下拉框的值不同 针对不同的选项 值的表现形式也要发生对应的变化 如 日期形