// 绑定对象时设置了value-key,再次点击时不会高亮,找了源码发现key需要一致;
// 相关源码
isEqual(a, b) {
if (!this.isObject) {
return a === b;
} else {
const valueKey = this.select.valueKey;
return getValueByPath(a, valueKey) === getValueByPath(b, valueKey);
}
}
// =============================
// 于是需要在list 或 row 统一一个key,把scope.row.des,改成scope.row即可
// 它会用scope.row.des 比较item.des,这时选中的就显示label
<el-select
@change="handleChange(scope.row, $event)"
value-key="des"
:value="scope.row"
placeholder="请选择"
clearable
size="small"
>
<el-option v-for="item in list" :key="item.id" :label="item.name"
:value="item"
/>
</el-select>
// ==============================
handleChange(row,obj) {
row.id = obj.id;
row.des = obj.des
}