element-ui select多选绑定回显值问题

 更新时间:2023年04月05日 16:07:22   作者:小瓶子  
这篇文章主要介绍了element-ui select多选绑定回显值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

element-ui select多选绑定回显值

在这里插入图片描述

这是要最后实现的效果。

 <el-form-item label="机组名称" prop="unitName">
	<el-select
	     v-model="unitName"
	     multiple
	     placeholder="请选择"
	    @change="unitChange"
	>
	   <el-option
	       v-for="item in jzmcOption"
	       :key="item.unitId"
	       :label="item.unitName"
	       :value="item.unitId"
	    ></el-option>
	</el-select>
</el-form-item>

unitName 绑定的值是一个数组,jzmcOption是根据接口查出来的下拉框的数据。

后台要接收的是一个逗号分隔开的字符串,要接收id值和name值

unitName:[],
jzmcOption:[],
  unitChange(val) {
      console.log(val);
      let str = val.join(',');
      let name = '';
      this.jzmcOption.map((v, i) => {
        val.map((a, b) => {
          if (a == v.unitId) {
            name += ',' + v.unitName;
          }
        });
      });
      name = name.substring(1);
      this.jydyForm.unitName = name;
      this.jydyForm.unitId = str;
    },
    

在这里插入图片描述

这个是下拉框数据变化时获取到的数据。

在jzmcOption里找到他的name值拼起来用逗号隔开。

回显部分,逻辑是已经选中过的值,后台不会再返回了,所以我们需要将现在已经选中的数据跟后台查出来的数据拼起来,组成编辑时可选的新的下拉框。

    // 查看 编辑
    handleCheckLxr(row, status) {   
      //将id值赋值给下拉框绑定的值
      this.unitName = this.jydyForm.unitId.split(',');      

      let i = this.jydyForm.unitId.split(',');
      let n = this.jydyForm.unitName.split(',');
      let list = [];
      i.map((v, i) => {
        list.push({ unitId: v, unitName: n[i] });
      });
      
      this.jzmcOption = [];
      getChooseByCustomerId(this.currentCustomerId).then(res => {
        
        if (res.rel) {
          let list_o = res.data.rows;
          this.jzmcOption = [...list_o,...list];        
        }
      });
    },

回显时可能会遇到已经选中的值,没有在下拉数据中选择,可能是数据类型的问题,需要处理下。

element-ui下拉多选数据回显时无法进行修改

解决方案

在el-select添加@change事件,执行强制刷新this.$forceUpdate()。

示例:

<el-select @change="selectChangeHandle" ...>...</el-select>
selectChangeHandle(){
    this.$forceUpdate()
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue中的计算属性传参

    vue中的计算属性传参

    这篇文章主要介绍了vue中的计算属性传参,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vue3中setup的作用及使用场景分析

    vue3中setup的作用及使用场景分析

    本文主要介绍了Vue 3.0中的setup函数,包括其概述、使用场景和具体用法,通过本文的介绍,我们可以看到,setup函数是用来将组件的状态和行为进行分离的一个重要工具,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • 详解如何在Vue中动态添加类名

    详解如何在Vue中动态添加类名

    本文主要介绍了如何在Vue中动态添加类名,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • vue 国际化 vue-i18n 双语言 语言包

    vue 国际化 vue-i18n 双语言 语言包

    这篇文章主要介绍了vue 国际化 vue-i18n 双语言 语言包的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • 使用Vue和Firebase实现后台数据存储的示例代码

    使用Vue和Firebase实现后台数据存储的示例代码

    在现代 web 应用开发中,前端和后端的无缝协作至关重要,借助 Firebase 等云计算解决方案,前端开发者可以轻松实现数据存储与实时更新,本文将为大家详细介绍如何利用 Vue 3 的 Composition API 和 Firebase 实现后台数据存储,需要的朋友可以参考下
    2024-10-10
  • 关掉vue插件Vetur格式化的时候自动添加的样式操作

    关掉vue插件Vetur格式化的时候自动添加的样式操作

    这篇文章主要介绍了关掉vue插件Vetur格式化的时候自动添加的样式操作,文章围绕主题展开操作过程,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-05-05
  • vue-cli5.0 webpack 采用 copy-webpack-plugin 打包复制文件的方法

    vue-cli5.0 webpack 采用 copy-webpack-plugin 打包复制文件的方法

    今天就好好说说vue-cli5.0种使用copy-webpack-plugin插件该如何配置的问题。这里我们安装的 copy-webpack-plugin 的版本是 ^11.0.0,感兴趣的朋友一起看看吧
    2022-06-06
  • VUE3+mqtt封装解决多页面使用需重复连接等问题(附实例)

    VUE3+mqtt封装解决多页面使用需重复连接等问题(附实例)

    最近了解到mqtt这样一个协议,可以在web上达到即时通讯的效果,下面这篇文章主要给大家介绍了关于VUE3+mqtt封装解决多页面使用需重复连接等问题的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • vue中各组件之间传递数据的方法示例

    vue中各组件之间传递数据的方法示例

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据。必须使用特定的方法才能实现组件之间的数据传递。下面这篇文章主要给大家介绍了关于vue中各组件之间传递数据的方法示例,需要的朋友可以参考学习。
    2017-07-07
  • 浅析Vue中method与computed的区别

    浅析Vue中method与computed的区别

    在new Vue的配置参数中的computed和methods都可以处理大量的逻辑代码,但是什么时候用哪个属性,要好好区分一下才能做到正确的运用vue。这篇文章主要介绍了Vue中method与computed的区别,需要的朋友可以参考下
    2018-03-03

最新评论