<el-button title="向前移动到第一个" size="mini" type="primary" icon="el-icon-top" :disabled="tableData.length scope.row.value === tableData[0].value :true" @click.stop="moveToFirst(scope.row)" circle plain/> <el-button title="向前移动" size="mini" type="primary" icon="el-icon-arrow-up" :disabled="tableData.length scope.row.value === tableData[0].value :true" @click.stop="moveToPrev(scope.row)" circle plain/> <el-button title="向后移动" size="mini" type="primary" icon="el-icon-arrow-down" :disabled="tableData.length scope.row.value === tableData.slice(-1)[0].value :true" @click.stop="moveToNext(scope.row)" circle plain/> <el-button title="向后移动到最后一个" size="mini" type="primary" icon="el-icon-bottom" :disabled="tableData.length scope.row.value === tableData.slice(-1)[0].value :true" @click.stop="moveToLast(scope.row)" circle plain/>
方法
getIndex(d) { return this.tableData.findIndex(v => v.value == d.value); }, moveToFirst(d) { let idx = this.getIndex(d); this.tableData.splice(0, 0, this.tableData.splice(idx, 1)[0]); }, moveToPrev(d) { let idx = this.getIndex(d); this.tableData.splice(idx - 1, 0, this.tableData.splice(idx, 1)[0]); }, moveToNext(d) { let idx = this.getIndex(d); this.tableData.splice(idx + 1 > this.tableData.length - 1 ? 0 : idx + 1, 0, this.tableData.splice(idx, 1)[0]); }, moveToLast(d) { let idx = this.getIndex(d); this.tableData.splice(this.tableData.length - 1, 0, this.tableData.splice(idx, 1)[0]); },
扩展阅读类比置顶排序