欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

element Select 选择器多选时获取对应的code和name

程序员文章站 2024-02-21 17:18:10
...
2、element Select 选择器多选时获取对应的code和name
2.1、在页面中使用el-select,此处是多选。道理都一样
<el-select
                    @change="cityChooseData"
                    size="small"
                    v-model="cityLimitData"
                    multiple
                    placeholder="请选择城市,可多选">
                    <el-option
                      v-for="item in cityOptions"
                      :key="item.code"
                      :label="item.name"
                      :value="item.code">
                    </el-option>
                    </el-select>

这里使用时,在el-select绑定其change事件,触发cityChooseData方法
选项循环的数据是cityOptions

2.2、data里面定义需要的数据
// 城市选择
cityOptions: [
{
    name:'成都',
    code:'chengdu'
},
{
    name:'宜宾',
    code:'yibin'
}
],
2.3、methods定义对应的方法
 // 城市选择结果
    cityChooseData(val) {
      // val是el-option里面的:value="item.code"这里绑定的对应的code的值
      let codeData = val
      // 由于是多选,所以这里是一个数组,里面存了多个val
      let codeDataLength = codeData.length
      // 定义一个空数组用于存储处理过后包含code和name的数据
      let obj = []
      // 第一层for循环遍历,拿到codeData数组里面的每一个val,就是对应的多选里面的每一个code
      for (let i = 0; i < codeDataLength; i++) {
        // 这里value就是对应的每一个code
        let value = codeData[i]
        // this.cityOptions就是你在el-option里面遍历的数组
        this.cityOptions.map((item) => {
          //  item就是this.cityOptions这个数组里面的每一个对象
          // 通过每一个对象的code与value也就是对应的每一个选中的code对比
          if (item.code === value) {
            // 符合的对象添加进之前定义的新新数组里面
            obj.push(item)
          }
        })
      }
      // 获得包含对应的code的数组,赋值用到对应的地方即可
      this.publishActivityData.citys = obj
    },