iview table的sort排序显示不对

发布于 2022-09-11 23:44:10 字数 197 浏览 11 评论 0

image.png
我每点一下,他都会触发一次,这个没有问题。但是我每点3次都会有一次
image.png
上下都置灰的状态?这个怎么处理,每次点击都是上下切换的??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

温馨耳语 2022-09-18 23:44:11

默认的情况下是三个状态进行切换,你可以自定义状态,写排序逻辑。文档

clipboard.png

夏见 2022-09-18 23:44:11

这种设计才是正确的交互体验,不然想取消排序怎么操作?目前绝大多数表格排序也都是这种设计。

你的需求属于特殊需求,那就需要特殊对待,光靠看文档已经解决不了了,因为文档只给出了on-sort-change事件,显然这个是改变事件,不能作为前提条件影响排序,所以我看了下源码,发现点击表头会触发表格的handleSort方法
handleSort

所以我们可以在on-sort-change事件中调用table组件中的handleSort来手动排序

sortChange(data){
    //如果点击后排序为normal,即无排序,就手动排序为asc
    if(data.order == 'normal'){
      let index = -1
      //handleSort需要index参数来确定是第几列,使用columns和data.column的key值对比来查询
      this.columns.some((item, i) => {
        if(item.key == data.column.key){
          index = i
          return true
        }
      });
      //index不为-1,则手动调用handleSort,这里this.$refs.table指向表格组件,需要在表格中写ref
      ~index && this.$refs.table.handleSort(index, 'asc')
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文