element ui中的select多选问题

问题

在使用select下拉框多选时,在编辑用户角色时,编辑界面为select下拉框的model赋值了,选择的数据有问题,输入框中的值不能与下拉框的值对应上。
如图:
在这里插入图片描述
在这里插入图片描述

原因

点击编辑按钮拿到的用户角色的值类型为string类型,这个下拉框组件需要匹配数组类型 所以匹配类型不一致导致数据对应不上

解决

<el-select  ref="select" v-model="roles" placeholder="请选择用户角色" @change="$forceUpdate()" class="el-select" multiple clearable>
	<el-option v-for="item in roleData" :label="item.role" :value="item.serial" :key="item.serial"></el-option>
</el-select>
//编辑
editBtn(row) {
    this.addForm = { ...row }
    console.log(row);
    let arr = []
    for(const data of row.resourceList) {
        arr.push(data.serial)
    }
    console.log(arr)
    
    this.roles = arr;
    
    this.titleName = '编辑'
    this.dialogVisible = true;
},

下拉框中的数据源roleData是一个数组,选中后的值也是一个数组。但是在后端存储的时候是转换成字符串存到数据库中的,所以在编辑界面从后端获取的返回值是一个字符串,首选要把这个字符串转换成数组,绑定到selectv-model属性上(注意:选中的值就是下拉框数据源中的serial)。

@change="$forceUpdate()"这是强制刷新

在这里插入图片描述然后在提交的时候把这个数组转换成字符串赋给后台指定的字段传给后台就大功告成。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值