项目中的el-select
开始设计为多选,所以后端属性对应是集合类型,但是现在需要改为单选
,但是后端不愿意改,因为涉及到的地方多,所以像知道能不能单纯前端处理,就是前后端对应的属性还是集合类型,但是当用户选中一项时,覆盖掉之前选中的,这不就变成单选了吗?能否做到呢?
<template><el-select v-model="selectedValues" multiple @change="handleSelectChange"placeholder="请选择"><el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option></el-select>
</template><script>
export default {data() {return {// 保持数组类型,符合后端期望selectedValues: [],options: [{ value: '1', label: '选项1' },{ value: '2', label: '选项2' },{ value: '3', label: '选项3' }]}},methods: {handleSelectChange(val) {// 关键点:始终只保留最后选择的项if (val.length > 0) {// 取用户最后选择的值const lastSelected = val[val.length - 1];// 重置为只包含一个元素的数组this.selectedValues = [lastSelected];}}}
}
</script>