ElementUI中两个Select选择联动效果实现方法

 更新时间:2023年08月03日 11:28:11   作者:祁一枝  
这篇文章主要给大家介绍了关于ElementUI中两个Select选择联动效果实现的相关资料,在前端项目开发中,经常会遇到省市县三级联动的下拉列表框组的问题,需要的朋友可以参考下

实现ElementUI中两个Select选择联动效果

先上图

通过赋值的方式实现 即子级下拉选项循环数组为空 将所需的值对空数组重新赋值

代码如下

第一个循环数组为procedureType 第二个是causeGroup 暂且称之为父级与子级

  <el-select 
     v-model="ruleForm.procedure_type" 
     placeholder="请选择" 
     @change="changeSelect"
     >
      <el-option
        v-for="(item,i) in procedureType"
        :key="i"
        :label="item"
        :value="item"
      >
      </el-option>
    </el-select>
    <el-select 
      v-model="ruleForm.cause_group" 
      placeholder="请选择" 
      style="margin-left: 30px"
      >
      <el-option
        v-for="(item,i) in causeGroup"
        :key="i"
        :label="item"
        :value="item"
      >
      </el-option>
    </el-select>

须注意的是父级下拉绑定的change事件 要对子级作出滞空操作 也就是清空子选项的值不然会出现切换选项1 或者 选项2的时候子级选项值保留的问题 如下所示

 methods: {
    changeSelect() {
      // 联动子级滞空
      this.ruleForm.cause_group = "";
      // 循环遍历父级
      for (const k in this.procedureType) {
        if (this.ruleForm.procedure_type === this.procedureType[k]) {
        // 核心代码在这里 进行赋值操作
          this.causeGroup = this.TypeObj[this.ruleForm.procedure_type];
        }
      }
    },
  },
  data() {
    return {
    // 在这里定义所需的值
      procedureType: ["选项a", "选项b"],
      TypeObj: {
        选项a: ["连级选项a1", "连级选项a2", "连级选项a3"],
        选项b: ["连级选项b1", "连级选项b2", "连级选项b3"],
      },
      ruleForm: {
        procedure_type: "",
        cause_group: "",
      },
      // 由 changeSelect 接管 causeGroup 的值
      causeGroup: [],
    };
  },

到这里已经实现了两个Select下拉联动的效果 关键就在于将定义好的值赋值给子级数组本文是模拟假数据 所以直接在数组定义数据 如果是从接口拿值 在接口请求处将数据赋给procedureTypeTypeObj即可其实还有更简单的写法 子级数组直接循环 不进行赋值操作 但仍需保留滞空操作

<el-select
      v-model="ruleForm.cause_group"
      placeholder="请选择"
      style="margin-left: 30px"
    >
      <el-option
        v-for="(item, i) in TypeObj[ruleForm.procedure_type]"
        :key="i"
        :label="item"
        :value="item"
      >
      </el-option>
    </el-select>

总结 

到此这篇关于ElementUI中两个Select选择联动效果实现的文章就介绍到这了,更多相关ElementUI Select选择联动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue实现input宽度随文字长度自适应操作

    Vue实现input宽度随文字长度自适应操作

    这篇文章主要介绍了Vue实现input宽度随文字长度自适应操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue 使用v-for进行循环的实例代码详解

    vue 使用v-for进行循环的实例代码详解

    这篇文章主要介绍了vue 使用v-for进行循环的实例代码详解,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Vue中key的具体使用

    Vue中key的具体使用

    在vue中,key是dom对象的标识,本文主要介绍了Vue中key的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • VUE页面中加载外部HTML的示例代码

    VUE页面中加载外部HTML的示例代码

    本篇文章主要介绍了VUE页面中加载外部HTML的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Vue3中样式渗透:deep()无效的原因分析

    Vue3中样式渗透:deep()无效的原因分析

    今天学习 /deep/ 样式穿透,因为vue3中已经使用:deep()取代了/deep/ ,所以直接用:deep()练习,这篇文章主要介绍了Vue3中样式渗透:deep()为什么无效,需要的朋友可以参考下
    2022-11-11
  • Vue项目如何部署到Tomcat服务器上

    Vue项目如何部署到Tomcat服务器上

    这篇文章主要介绍了Vue项目如何部署到Tomcat服务器上,Vue中自带webpack,可以通过一行命令将项目打包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • Element-ui Image图片按需引入大图预览

    Element-ui Image图片按需引入大图预览

    这篇文章主要为大家介绍了Element-ui Image图片按需引入大图预览实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)

    压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)

    大家都知道,Vuejs的 CLI工具 是基于 webpack 来实现的,所以在项目打包后,会生成的文件会很大。 主要原因是 webpack 将我们所有文件都打包成一个js文件,即使再小的项目,打包之后文件都会变得很大。 下面讲讲最近我遇到的相同问题。
    2020-02-02
  • vue3如何使用postcss-px-to-viewport适配屏幕

    vue3如何使用postcss-px-to-viewport适配屏幕

    这篇文章主要介绍了vue3如何使用postcss-px-to-viewport适配屏幕问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • vue中使用protobuf的过程记录

    vue中使用protobuf的过程记录

    由于目前公司采用了ProtoBuf做前后端数据交互,进公司以来一直用的是公司大神写好的基础库,完全不了解底层是如何解析的。下面小编给大家分享vue中使用protobuf的过程记录,需要的朋友参考下吧
    2018-10-10

最新评论