vue element table中多选下拉框,下拉框有一个选了后面不能在选前面选的值,通过table中删除按钮删除被选了得值后面能选删除的值
时间: 2024-02-09 16:08:31 浏览: 153
对于多选下拉框,可以通过在选项中添加一个 `disabled` 属性来实现被选中的选项在下拉框中不能再次被选中。可以通过监听下拉框的 `change` 事件,在选中某个选项时,判断该选项是否已经被选中,如果已经被选中,则将该选项的 `disabled` 属性设置为 `true`,使其在下拉框中不能再次被选中。
在删除按钮的点击事件中,可以将被删除选项的 `disabled` 属性设置为 `false`,使其在下拉框中可以再次被选中。具体实现可以参考以下代码:
```html
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="danger" size="mini" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="多选下拉框">
<template slot-scope="scope">
<el-select v-model="scope.row.selectedOptions" multiple>
<el-option v-for="option in options" :label="option.label" :value="option.value" :disabled="option.disabled">{{ option.label }}</el-option>
</el-select>
</template>
</el-table-column>
```
```javascript
data() {
return {
options: [
{ label: '选项1', value: 'option1', disabled: false },
{ label: '选项2', value: 'option2', disabled: false },
{ label: '选项3', value: 'option3', disabled: false },
{ label: '选项4', value: 'option4', disabled: false },
],
tableData: [
{ selectedOptions: [], ... },
{ selectedOptions: [], ... },
{ selectedOptions: [], ... },
]
}
},
methods: {
handleDelete(row) {
for (let option of this.options) {
if (row.selectedOptions.includes(option.value)) {
option.disabled = false;
}
}
this.tableData.splice(this.tableData.indexOf(row), 1);
}
}
```
阅读全文