el-select multiple 数据回显问题

v-model接收的数据应该是数组,而已数组里的参数必须是number:[0,1,2] 的形式,才能正确显示。数据库里存的"1,2,9",后端返回回来的是字符串所以对数据进行重构,先酱字符串转换为数组,再去遍历,将item的值转换为number,最后重新push。

<template>
<div>
  <el-select v-model="value1" multiple placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
  <br />
  {{value1}}
  <br />
  <el-button @click="btnClick">点击</el-button>
</div>
</template>

<script>
export default {
  name: "Vue6",
  data(){
    return{
      // options: [{value: '1',label: 'label1' }, {value: '2',label: 'label2'},
      //   {value: '3',label: 'label3' }, { value: '4', label: 'label4'},
      //   {value: '5',label: 'label5' }],
      options: [{value: 1,label: 'label1' }, {value: 2,label: 'label2'},
        {value: 3,label: 'label3' }, { value: 4, label: 'label4'}],


      value1: [],
    }
  },
  methods:{
    btnClick(){
      let l1= "1,4";
      // this.value1 = l1.split(',')
      this.value1 = this.getLstInteger(l1);

    },

    getLstInteger(str){
      let lStrTemp = [];
      str.split(',').map(u=>{lStrTemp.push(parseInt(u))});
      return lStrTemp;
    }

  }
}
</script>
posted @ 2021-10-28 21:27  寒冷的雨呢  阅读(3783)  评论(0编辑  收藏  举报