需求-----选中角色后,在input框中显示,同时需要获取该用户的基本信息对象
data () {
return {
receiveUser:{ },
userList:[ ]
}
}
组件使用
<el-select
v-model="receiveUser"
placeholder="请选择"
clearable
value-key="userId"
@change="selectValue"
>
<el-option
v-for="item in userList"
:key="item.userId"
:label="item.username"
:value="item"
></el-option>
</el-select>
select绑定对象,必须绑定 value-key属性,可以查看文档说明,不过说明上讲解的不详细,
userList是请求接口获取到的用户信息数组,value-key作为对象的唯一标识,是与:key="item.userId"对应的
最后可以查看打印结果
//选中分配人后
selectValue () {
console.log(this.receiveUser) //选中人对象信息
},
而select框中显示的角色名
2020-10-17
另一种解决思路—通过filter来筛选
select不需要绑定对象,而是通过遍历数组来筛选
data () {
return {
receiveUserName:' ',
userList:[ ]
}
}
<el-select
v-model="receiveUserName"
placeholder="请选择"
clearable
@change="selectValue"
>
<el-option
v-for="item in userList"
:key="item.userId"
:label="item.username"
:value="item.username"
></el-option>
</el-select>
selectValue () {
let choosenItem = this.userList.filter(item => item.username=== this.receiveUserName)[0];
console.log('choosenItem', choosenItem)
},