IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 解决el-table表格下select框数据回显id问题 -> 正文阅读

[JavaScript知识库]解决el-table表格下select框数据回显id问题

解决el-table表格下select框数据回显id问题

  1. 其实之前是有遇到类似问题,但是没有做总结,一时半会儿遇到重复的问题也想不出是什么原因导致的,现在做个总结,提出原因且给出解决方案;

在这里插入图片描述

截图只是简单描述一下bug;

  1. 之所以更改首条数据会影响到下条数据的id回显或者更改下条数据会影响到首条数据id回显i就是因为它们没有针对当前行的数据去取值和拿值,所以解决方案就是:拿到表格当前行数据,对当前行数据进行数据更新
  2. 废话不多说,上代码:
  <el-table-column label="建议供应商" align="center" min-width="160px" prop="proposedSupplierId">
            <template slot-scope="scope">
              <el-form-item
                :prop="'tableData.' + scope.$index + '.proposedSupplierId'"
                :rules="[
                  { required: false, message: '请选择', trigger: 'change' }
                ]"
                style="padding-top: 25px"
              >
                <el-select
                  size="mini"
                  filterable
                  v-model="scope.row.proposedSupplierId"
                  placeholder="请选择"
                  @focus="getSupplyList(scope.row.materialId, scope.$index)"
                >
                  <el-option
                    v-for="(item, index) in scope.row.supplyList"
                    :key="index"
                    :label="item.supplierFullName"
                    :value="item.id"
                  ></el-option>
                </el-select>
              </el-form-item>
            </template>
          </el-table-column>

@focus事件是拿到当前行的id去触发下拉框数据,getSupplyList事件中拿到id和当前索引,scope.row.supplyList是当前行的下拉框数据,看下方法下如何赋值:

//根据物料id调取供应商列表数据
    getSupplyList(materialId, index) {
      supplierList({ materialId: materialId }).then((response) => {
        this.$set(this.tableForm.tableData[index], 'supplyList', response.rows)
      })
    },

这里用到了vue.$set方法,不了解 $ s e t 方 法 的 可 以 上 百 度 查 看 下 用 法 , 这 里 不 做 set方法的可以上百度查看下用法,这里不做 setset的使用解析;
通过getSupplyList防范去调取接口数据,用 s e t 方 法 , 按 着 V u e . s e t ( o b j e c t , k e y , v a l u e ) 调 用 方 式 去 赋 值 , t h i s . set方法,按着 Vue.set(object, key, value) 调用方式去赋值,this. setVue.set(object,key,value)this.set(当前行的数据,当前行的下拉框数组,接口返回的数据)进行赋值

  1. 问题解决,截图如下
    在这里插入图片描述
    以上只是个人的一个总结。
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:24:58  更:2021-09-04 17:27:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:46:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码