vue+element el-select动态加减框数量及验证下拉框选项动态置灰(选中行的下拉框换个值后,原值没办法监控这个问题也解决了)

1效果:

2部分主要(HTML):

         1:这个位置主要就是看看方法什么的吧,还有大概的结构

         2:@change="sort_Change(item,tablelists.orderbyList)这两个参数(都有大用):

                        (1)item:代表每次你操作的这个数据

                        (2)tablelists.orderbyList:代表你这一共有几行数据(上边这个例子就会得到一个数组包4个对象)

<el-form-item prop="name" label="">
                      <el-row>
                        <el-col :span="20" style="display:flex">
                          <el-select v-model="item.name" class="borputsel" style="width:19%" @change="sort_Change(item,tablelists.orderbyList)">   
 <!-- 这个位置就是看看方法什么的吧 -->
                            <el-option
                              v-for="fieldNameListitem in fieldNameLists"
                              :key="fieldNameListitem.name"
                              :label="fieldNameListitem.name"
                              :value="fieldNameListitem.name"
                              :disabled="fieldNameListitem.disabled"
                            ></el-option>
                          </el-select>
                          <el-select v-model="item.value" class="sort_class" style="width:100%">
                            <el-option
                              v-for="item in sort_radio"
                              :key="item.value"
                              :label="item.name"
                              :value="item.value"
                            ></el-option>
                          </el-select>
                        </el-col>
                        <el-col :span="3">
                          <el-button
                            v-if="index === 0"
                            type="text"
                            icon="el-icon-document-add"
                            class="icon"
                            @click="addNum_sort(tablelists.orderbyList)"
                          ></el-button>  <!-- 这是添加的按钮 -->
                          <el-button
                            type="text"
                            icon="el-icon-delete"
                            class="icon"
                            @click="delNum_sort(tablelists.orderbyList, index)"
                          ></el-button>  <!-- 这是删除的按钮 -->
                        </el-col>
                      </el-row>
                    </el-form-item>

3方法:

        3-1: 下拉框的change方法:(这个好难,写了一天才把逻辑捋顺,那家伙各种尝试呀,最终还是选择了最笨的办法,不过也是最好理解的,注释也都有仔细看看就理解了)

 sort_Change(item,itemList) {
      var itemList_copy = []
      itemList.forEach(item=>{
      itemList_copy.push(item.name)          //定义空数组后把所有选中的(值的name)放到这里边 , 每次进来都是从新循环进去所以每次都只有 选中的几项  为了解决同样条数换select值的问题
      })
      if (item.name) {
        item.value = 'ASC'                  //设 "排序" 默认值用的 (前边选了 对应的后边默认填一个)
          this.fieldNameLists.forEach((items, index) => {
          if (itemList_copy.includes(items.name)) {      //循环下拉框数组  把选中行的值添加disabled置灰(下次不可再选,避免出现重复)
             items.disabled = true
          }else{
            delete items.disabled                         //没选中的 或换下来的选项 disabled 解除
          }
        })
      } else {
        item.value = ''         //刚打开的时候什么都没选  不用设默认值
      }
    },

        3-2 添加删除方法:(之所以放一起是因为,添加很简单就一行,删除复杂点但也不难)

 // 新增
    addNum_sort(item) {
     item.push({ name: '', value: '' })
    },
    // 删除
    delNum_sort(item, index) {
      this.fieldNameLists.forEach(items => {
        if (items.name === item[index].name) { delete items.disabled } //把删除的这一条  在 下拉框中 disabled 解除
      })
      if (index === 0 && item.length === 1) {     
        item.splice(index, 1, { name: '', value: '' })     //如果只有一条的时候  只把值清空  不把 本条框框删除
      } else {
     item.splice(index, 1)            //正常的页面删除
      }
    },

这次的东西可不是  直接搬过去就能用了,需要理解着搬    (不过注释还是标的挺明白的 ,仔细看看吧,别着急)

4 赠送篇:

初始的数据结构大概长这样(因为这个页面正常一打开,最少也得有一行吧而且数据是空的,要不怎么++出第二第三行呀)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kettle学习(利用jsonPath定位,json文件转换)

kettle学习&#xff08;利用jsonPath定位&#xff0c;json文件转换&#xff09; 于数据处理的广袤天地间&#xff0c;我们时常需应对各类繁杂状况与各式格式。Kettle 作为极具威力的数据集成利器&#xff0c;赋予了我们诸多功能与无限可能此次博客里&#xff0c;我们将重点投向…

【介绍下Pandas,什么是Pandas?】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

【验收支撑文档】软件验收计划书

软件系统验收计划书是确保新开发的软件系统符合预期要求并稳定运行的关键步骤。本计划书概述了验收过程的主要环节&#xff0c;包括系统功能的详细测试、性能评估、用户接受度测试以及文档完整性的核查。验收团队将依据项目需求规格说明书和合同要求&#xff0c;对系统进行全面…

Java课程设计:基于Java+Swing+MySQL的图书管理系统(内附源码)

文章目录 一、项目介绍二、项目展示三、源码展示四、源码获取 一、项目介绍 图书管理系统是一个常见的软件项目,广泛应用于图书馆、学校、企业等需要管理图书资源的场景。该系统通常涵盖图书信息录入、查询、借阅、归还等核心功能,是实现图书资源高效管理的重要工具。 随着信…

linux系统安装anaconda,并通过java程序调用python程序

虚拟环境准备 首先准备一块空的分区&#xff0c;安装anaconda至少要20g以上才能执行简单程序&#xff0c;这里准备20G的磁盘空间 创建分区,执行以下步骤&#xff0c;之后执行reboot重启 fdisk /dev/sda p n 回车 回车 w查看当前系统创建的分区&#xff0c;我这里是名为sda3的…

JWT攻击手册(非常详细)零基础入门到精通,收藏这一篇就够了

JSON Web Token&#xff08;JWT&#xff09;对于渗透测试人员而言可能是一种非常吸引人的攻击途径&#xff0c;因为它们不仅是让你获得无限访问权限的关键&#xff0c;而且还被视为隐藏了通往以下特权的途径&#xff1a;特权升级&#xff0c;信息泄露&#xff0c;SQLi&#xff…

Pytorch 实现简单的 线性回归 算法

Pytorch实现简单的线性回归算法 简单 tensor的运算 Pytorch涉及的基本数据类型是tensor&#xff08;张量&#xff09;和Autograd&#xff08;自动微分变量&#xff09; import torch x torch.rand(5, 3) #产生一个5*3的tensor&#xff0c;在 [0,1) 之间随机取值 y torch.o…

按位拆分+前缀和,CF 1879D - Sum of XOR Functions

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1879D - Sum of XOR Functions 二、解题报告 1、思路分析 朴素暴力O(N^2)&#xff0c;考虑优化 由于要求的是异或值乘长度&#xff0c;那么我们可以按位考虑每一位异或值的贡献 我们枚举每一位 每次遍历…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第六周) - 预训练模型

预训练模型 1. 预训练模型介绍 1.1. ELMo1.2. GPT1.3. BERT 2. Seq2Seq 2.1. T52.2. BART 3. Tokenization 1. 预训练模型介绍 在预训练语言模型出现之前&#xff0c;统计语言模型&#xff08;如N-gram模型&#xff09;是主流方法。这些模型利用统计方法来预测文本中的下一个…

JVM 常量池汇总

Tips JVM常量池分为静态常量池和运行时常量池&#xff0c;因为Jdk1.7后字符串常量池从运行时常量池存储位置剥离&#xff0c;故很多博客也是区分开来&#xff0c;存储位置和内容注意区别&#xff01; 字符串常量池底层是由C实现&#xff0c;是一个类似于HashTable的数据结构&am…

【Linux】运维小脚本:登录即自动显示系统信息

作为Linux运维工程师&#xff0c;我们经常需要快速掌握系统的状态&#xff0c;包括内存使用、CPU负载等关键信息。手动检查这些信息不仅繁琐&#xff0c;而且效率低下。今天&#xff0c;我要给大家介绍一个实用的小技巧&#xff0c;通过一个简单的脚本&#xff0c;每次登录Linu…

基于振弦采集仪的高层建筑结构安全监测技术研究

基于振弦采集仪的高层建筑结构安全监测技术研究 高层建筑的结构安全监测一直是建筑工程领域的重要课题&#xff0c;振弦采集仪作为一种新兴的监测技术&#xff0c;为解决这一问题提供了有力的工具。本文将从振弦采集仪的原理、应用场景以及优势等方面探讨其在高层建筑结构安全…

Windows 如何查看内核数量?这三种方法都可以查看

任务管理器查看 第一种方法是利用任务管理器来查看 CPU 的内核数量&#xff0c;我们可以使用搜索栏输入任务管理器直接打开&#xff0c;或者在使用快捷键“WinX”打开选项框&#xff0c;选择任务管理器。 然后点击性能模块。 在性能界面&#xff0c;我们点击 CPU 模块&#xf…

在ComfyUI中用LoRA换脸,实现超高相似度

准备工作 首先&#xff0c;确保您拥有一个已经训练好的LoRA。如果你不知道如何训练LoRA&#xff0c;可以看看我之前的文章。 这个LoRA可以仅使用被训练人物的大头照。我们的目标是使用LoRA生成与被训练人物高度相似的脸部&#xff0c;然后将其换到任何身体上&#xff0c;实现…

mysql中 事务的隔离级别与MVCC

大家好。今天我们来讲一下事务的隔离级别和MVCC。在讲之前&#xff0c;我们先创建一张表&#xff0c;方便我们的讲解&#xff1a; CREATE TABLE hero ( number INT, name VARCHAR(100), country varchar(100), PRIMARY KEY (number) ) EngineInnoDB CHARSETutf8;创建完毕后我…

【FreeRTOS】软件定时器 software timer(上)

我们在手机上添加闹钟时&#xff0c;需要指定时间、指定类型(一次性的&#xff0c;还是周期性的)、指定做什么事&#xff1b;还有 一些过时的、不再使用的闹钟。如下图所示&#xff1a; 使用定时器跟使用手机闹钟是类似的&#xff1a; 指定时间&#xff1a;启动定时器和运行回…

GenAI-Arena:首个多模态生成 AI 排名开放平台

生成式 AI 指的是能够生成新内容&#xff08;如图像、视频、文本等&#xff09;的人工智能技术。近年来&#xff0c;生成式 AI 在图像和视频生成领域取得了突破性进展&#xff0c;例如&#xff1a; 艺术创作&#xff1a;生成式 AI 可以根据文本描述生成各种风格的艺术作品&…

10.3 Go 同步与通信

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

爬虫案例:建设库JS逆向

爬虫流程 1. 确定目标网址和所需内容 https://www.jiansheku.com/search/enterprise/ 只是个学习案例&#xff0c;所以目标就有我自己来选择&#xff0c;企业名称&#xff0c;法定代表人&#xff0c;注册资本&#xff0c;成立日期 2. 对目标网站&#xff0c;进行分析 动态…

甲板上的战舰|模拟?|每日一题|chatgpt结合更正

文章目录 我的天免费的4o太好用了我的天免费的4o太好用了我的天免费的4o太好用了题目详情思路&#xff1a;关键&#xff1a;chatGPT配合纠正错误思路正确代码&#xff1a; 我的天免费的4o太好用了 我的天免费的4o太好用了 我的天免费的4o太好用了 重要的事情说三遍 题目详情…