el-form动态增减数据的问题,编辑时候input输入不了

news2025/2/27 4:59:17

新增的时候可以展示,但是编辑在点+新增就没有效果
在这里插入图片描述
原因:改变了数组内的值,但是页面没有重新渲染

        <el-form-item label="信息:" required>
            <div style="display: flex; align-items: flex-end">
              <div>
                <el-form
                  :model="form"
                  ref="watchRef"
                  inline
                  :hide-required-asterisk="false"
                >
                  <div
                    v-for="(item, index) in form.supervisionList"
                    :key="item.key"
                    class="supervisionitem"
                  >
                    <!--  :prop="'supervisionList.' + index + '.supervisionLinkman'" -->
                    <el-form-item
                      :prop="'supervisionList.' + index + '.supervisionLinkman'"
                      :rules="{
                        required: true,
                        message: '请填写姓名',
                        trigger: 'blur',
                      }"
                    >
                      <el-input
                        v-model="item.supervisionLinkman"
                        style="width: 145px"
                        placeholder="姓名"
                        maxlength="10"
                        :disabled="!!id && !row.showOperation"
                      ></el-input>
                    </el-form-item>
                    <!-- prop="supervisionMobile" -->
                    <!-- {{ form.supervisionList[index].supervisionMobile }} -->
                    <!-- prop="supervisionMobile"  'supervisionList.' + index + '.supervisionMobile'-->
                    <el-form-item
                      :prop="'supervisionList.' + index + '.supervisionMobile'"
                      :rules="supervisionMobileRules"
                    >
                      <el-input
                        v-model="item.supervisionMobile"
                        style="width: 247px"
                        placeholder="联系电话"
                        :disabled="!!id && !row.showOperation"
                      ></el-input>
                      <span
                        class="del add pointer"
                        @click.prevent="delSupervision(item)"
                        v-if="index > 0"
                      >
                        -
                      </span>
                    </el-form-item>
                  </div>
                </el-form>
              </div>
              <div
                class="add pointer"
                @click="addSupervision"
                :style="
                  !!id && !row.showOperation ? 'pointer-events:none;' : ''
                "
              >
                +
              </div>
            </div>

            <!-- <el-form
              :model="form"
              :rules="watchRules"
              ref="watchRef"
              inline
              :hide-required-asterisk="false"
            >
              <el-form-item prop="supervisionLinkman">
                <el-input
                  v-model="form.supervisionLinkman"
                  style="width: 145px"
                  placeholder="姓名"
                  maxlength="10"
                  :disabled="!!id && !row.showOperation"
                ></el-input>
              </el-form-item>
              <el-form-item prop="supervisionMobile">
                <el-input
                  v-model="form.supervisionMobile"
                  style="width: 247px"
                  placeholder="联系电话"
                  :disabled="!!id && !row.showOperation"
                ></el-input>
              </el-form-item>
            </el-form> -->

            <!-- <div class="alignFlex">
              <el-input
                v-model="form.frName"
                style="width:145px;margin-right:8px"
                placeholder="姓名"
              ></el-input>
              <el-input
                v-model="form.frPhone"
                style="width:247px"
                placeholder="联系电话"
              ></el-input>
            </div> -->
          </el-form-item>
    addSupervision() {
      this.form.supervisionList.push({
        supervisionLinkman: "",
        supervisionMobile: "",
        key: Date.now(),
      });
       this.$forceUpdate();
    },
    delSupervision(item) {
      console.log(item, "item");
      console.log(this.form.supervisionList, "this.form.supervisionList");
      var index = this.form.supervisionList.indexOf(item);
      if (index !== -1) {
        this.form.supervisionList.splice(index, 1);
        this.$forceUpdate();
      }
    },

this.$forceUpdate()强制刷新
在新增就可以展示出来
在这里插入图片描述

如果是在对象中添加属性修改属性this.$set(this.object,'age',21)
如果是对数组的操作:
1.数组splice方法
2.this.$forceUpdate()强制刷新
3.this.$set使用如下

      this.$set(this.form.supervisionList, this.form.supervisionList.length, {
        supervisionLinkman: "",
        supervisionMobile: "",
        key: Date.now(),
      });

但是我的好像只能用this.$forceUpdate()强制刷新,具体啥原因我也不太清楚

但是this.$forceUpdate()会导致校验失效

最后发现是在详情赋值时出问题了

详情接口
this.form = res.data;
  this.form.supervisionList = res.data.supervisionManList.map((v) => ({
              supervisionLinkman: v.userName,
              supervisionMobile: v.phone,
            }));

就会导致编辑时候input不能编辑,恶性循环网上查询都是强制刷新,导致问题一直没有解决
上来给input赋值会导致vue数据双向绑定失效
以后有动态增加的时候,需要先赋值给新的变量,在新的变量上处理,再赋值给this.form,不破坏数据双向绑定
el-form动态增加跟vue配合的一个坑【具体为啥不太清楚,只知道解决方法】

详情接口
let temp = res.data;
  this.form.supervisionList = res.data.supervisionManList.map((v) => ({
              supervisionLinkman: v.userName,
              supervisionMobile: v.phone,
            }));
this.form = temp

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

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

相关文章

Spring MVC常用十大注解

Spring MVC常用十大注解 一&#xff0c;什么要使用注解 使用注解可以简化配置&#xff0c;提高代码的可读性和可维护性。通过注解可以实现依赖注入&#xff0c;减少手动管理对象的代码量。注解还支持面向切面编程&#xff0c;实现切面、切入点和通知等。此外&#xff0c;注解提…

maven仓库改国内源

今天准备复现漏洞环境&#xff0c;发现太慢&#xff0c;需要配置国内源 file -> settings 搜索maven 修改settings.xml&#xff0c;这里的需要修改两个文件 1.上图的settings.xml文件 2.idea的maven模块 settings.xml文件将原来的注释掉&#xff0c;然后把阿里的添加上&…

【机器学习合集】激活函数合集 ->(个人学习记录笔记)

文章目录 1. S激活函数(sigmoid&Tanh)2. ReLU激活函数3. ReLU激活函数的改进4. 近似ReLU激活函数5. Maxout激活函数6. 自动搜索的激活函数Swish 1. S激活函数(sigmoid&Tanh) Sigmoid函数在机器学习中经常用作激活函数&#xff0c;但它在某些情况下容易出现梯度消失问题…

QWidget快速美化-蓝色边框圆角按钮

将代码复制进QPushButton的样式表 效果: 代码: QPushButton{ color:#52DCFE;border:2px solid #52DCFE;border-radius:5px; }QPushButton::hover{background-color:#52DCFE;color:#ffffff; }QPushButton::pressed,QPushButton::checked{background-color:#52DCFE;color:#ffff…

学习vue3

一、入门 1.引入外部库 ①直接将所有的js都通过script标签引入到html文件中&#xff0c;所有的js资源在web页面中都能通用。 ②使用js引用js&#xff08;ES6&#xff09;&#xff0c;模块导入与导出 2.模块是只读引用 这段话是在解释 Vue.js 中的概念和用法。在 Vue.js 中&a…

​​​​​​​Python---练习:使用while嵌套循环打印 9 x 9乘法表

案例 使用while嵌套循环打印 9 x 9乘法表 思考 之前做过打印出三角形&#xff0c;那个三角形是5行的&#xff0c;这次打印9行的三角形。可以先使用while嵌套循环打印9行的直角三角形 相关链接Python---练习&#xff1a;打印直角三角形&#xff08;利用wihle循环嵌套&#xf…

Ubuntu下载、安装QGIS软件的方法

本文介绍在Linux操作系统Ubuntu版本中&#xff0c;通过命令行的方式&#xff0c;配置QGIS软件的方法。 在Ubuntu等Linux系统中&#xff0c;可以对空间信息加以可视化的遥感、GIS软件很少&#xff0c;比如ArcGIS下属的ArcMap就没有对应的Linux版本&#xff08;虽然有ArcGIS Serv…

Kafka简单入门02——ISR机制

目录 ISR机制 ISR 关键概念 HW和LEO Java使用Kafka通信 Kafka 生产者示例 Kafka 消费者示例 ISR机制 Kafka 中的 ISR&#xff08;In-Sync Replicas&#xff09;机制是一种用于确保数据可靠性和一致性的重要机制。ISR 是一组副本&#xff0c;它包括分区的领导者&#xff…

CCF CSP认证历年题目自练Day38

题目 试题编号&#xff1a; 201409-3 试题名称&#xff1a; 字符串匹配 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 256.0MB 问题描述&#xff1a; 问题描述   给出一个字符串和多行文字&#xff0c;在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感…

进程之操作系统的概念

再小的努力&#xff0c;乘以365都很明显。文章目录 操作系统操作系统的概念设计操作系统的目的 管理 ps:如何理解管理如何进行管理 操作系统管理软硬件资源小总结系统调用和库函数的概念小总结 操作系统 在讲述进程的时候我们先讲述一下操作系统&#xff08;os&#xff09;,因…

基于Java的小说下载网站管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

支持多用户协作的API测试工具:Apipost

在当今快速发展的数字化时代&#xff0c;API已成为企业与开发者实现数据互通、应用集成的重要桥梁。然而&#xff0c;随着API数量的不断增加&#xff0c;API开发、调试、测试、文档等工作也变得越来越复杂。为了解决这一痛点&#xff0c;一款名为Apipost的API协同研发工具应运而…

Python基础入门例程6-NP6 牛牛的小数输出

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 示例1 解答&#xff1a; 说明&#xff1a; 描述 牛牛正在学习Python的输出&#xff0c;他想要使用print函数控制小数的位数&#xff0c;你能帮助它把所有读入的数据都保留两位小数输出吗&#xff1f; 输入描述&a…

006:vue使用lottie-web实现web动画

文章目录 1. 简介2. 优点3. 效果4. 安装使用5. lottie-web 常用方法6. Lottie-web 常用的事件 1. 简介 官方介绍&#xff1a;Lottie 是一个库&#xff0c;可以解析使用AE制作的动画&#xff08;需要用bodymovie导出为json格式&#xff09;,支持web、ios、android、flutter和re…

LeetCode 22. 括号生成【字符串,回溯;动态规划】中等

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

基于Java的线上花店管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

OJ题之反转链表

hello ~~~每日一练的分享来了。 今天up主将为大家分享一个 OJ题之反转链表 题目&#xff1a;将链表实现如下的变化 1.思路的讲解&#xff1a;对于原链表我们只需改变指针的指向&#xff08;箭头&#xff09;即可 那么问题就来了&#xff0c;我们如何实现此操作&#xff1f;…

Redis设计与实现(2)链表和链表节点

每一个链表节点 typedef struct listNode{//前置节点struct listNode *prev;//后置节点struct listNode *next;//节点值void *value }lisNode; 多个listNode可以通过pre和next指针组成双端链表 虽然只要使用多个listNode结构就可以组成链表&#xff0c;但使用adlist.h/list来…

NLP入门——语言结构/语言建模

一、Linguistics 语言学 wordsmorphology 形态学&#xff1a;词的构成和内部结构研究。如英语的dog、dogs和dog-catcher有相当的关系morpheme 语素&#xff1a;最小的语法单位&#xff0c;是最小的音义结合体lexeme 词位&#xff1a;词的意义的基本抽象单位&#xff0c;是一组…

C语言_字符串和内存函数

文章目录 前言一. strlen二. strcpy三.strcat四. strcmp &#xff08;字符串比较&#xff09;五. strncpy六. strncmp七. strstr八. strtok九 . strerror perror十. 字符分类函数十一. memcpy (内存拷贝&#xff09;十二. memmove(可以重叠拷贝 也可以实现不重叠的内存拷贝) 前…