el-select实现拖拽下拉重新排序
时间: 2023-07-27 15:15:16 浏览: 262
要实现el-select的拖拽下拉重新排序,你需要以下步骤:
1. 首先,在el-select中添加一个vuedraggable组件,它可以实现拖拽排序的功能。
2. 然后,将el-select的options数组作为vuedraggable组件的绑定值,并设置其可拖拽和可排序属性。
3. 接下来,在vuedraggable组件的change事件中,获取新的排序后的options数组,并将其赋值给el-select的options属性。
4. 最后,在el-select的change事件中,将选中的值与新的options数组中对应的值进行匹配,以获取正确的选项。
下面是一个示例代码:
```
<template>
<div>
<el-select v-model="value" @change="handleChange">
<draggable v-model="options" @change="handleSort" :options="{draggable:'.el-option', animation: 180}">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
</draggable>
</el-select>
</div>
</template>
<script>
import draggable from 'vuedraggable'
export default {
components: {
draggable
},
data() {
return {
value: '',
options: [
{ value: 'option1', label: 'Option 1' },
{ value: 'option2', label: 'Option 2' },
{ value: 'option3', label: 'Option 3' },
{ value: 'option4', label: 'Option 4' }
]
}
},
methods: {
handleSort() {
this.options = [...this.options]
},
handleChange() {
const selectedOption = this.options.find(option => option.value === this.value)
console.log(selectedOption)
}
}
}
</script>
```
阅读全文