vue配合mybatis进行升降排序,vue点击向上箭头就升序,点击向下箭头就降序
时间: 2023-07-22 09:33:12 浏览: 151
Vue实现点击箭头上下移动效果
5星 · 资源好评率100%
你可以在Vue中为向上箭头和向下箭头分别绑定不同的排序函数。例如,你可以为向上箭头绑定一个ascendingSort函数,为向下箭头绑定一个descendingSort函数。这两个函数可以通过axios调用mybatis的接口来实现升降排序。
以下是一个简单的示例代码:
```html
<template>
<div>
<table>
<thead>
<tr>
<th @click="ascendingSort('columnName')">向上箭头</th>
<th @click="descendingSort('columnName')">向下箭头</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in sortedList" :key="index">
<td>{{ item.columnName }}</td>
<td>{{ item.otherColumnName }}</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
list: [],
sortType: 'asc', // 排序类型,默认为升序
sortColumn: 'columnName', // 排序的列名,默认为columnName
};
},
mounted() {
this.getData();
},
methods: {
// 获取数据
getData() {
axios.get('/api/getData').then(res => {
this.list = res.data;
});
},
// 升序排序
ascendingSort(columnName) {
this.sortType = 'asc';
this.sortColumn = columnName;
this.sortList();
},
// 降序排序
descendingSort(columnName) {
this.sortType = 'desc';
this.sortColumn = columnName;
this.sortList();
},
// 排序
sortList() {
axios
.post('/api/sortData', {
sortColumn: this.sortColumn,
sortType: this.sortType,
})
.then(res => {
this.list = res.data;
});
},
},
computed: {
sortedList() {
return this.list.sort((a, b) => {
// 根据sortColumn进行排序
if (a[this.sortColumn] < b[this.sortColumn]) {
return this.sortType === 'asc' ? -1 : 1;
} else if (a[this.sortColumn] > b[this.sortColumn]) {
return this.sortType === 'asc' ? 1 : -1;
} else {
// 如果sortColumn相等,则根据其他列进行排序
if (a.otherColumnName < b.otherColumnName) {
return -1;
} else if (a.otherColumnName > b.otherColumnName) {
return 1;
} else {
return 0;
}
}
});
},
},
};
</script>
```
在这个示例中,我们为表头的向上箭头和向下箭头分别绑定了ascendingSort和descendingSort函数。这两个函数会设置sortType和sortColumn的值,并调用sortList函数进行排序。sortList函数会通过axios调用mybatis的接口,将sortColumn和sortType作为参数传递给后端进行排序。最后,我们通过computed属性sortedList来获取排序后的数据,并在表格中进行展示。
阅读全文