vue使用iVew表格插件 + Sortable.js进行拖拽,拖拽后表格表头数据显示不对怎么解决?

发布于 2022-09-12 13:45:39 字数 906 浏览 30 评论 0

<template>
  <Table :columns="col" row-key="id" :data="tableData"></Table>
</template>
<script>
import Sortable from "sortablejs";
export default {
  props: {
    tableData: Array,
    col: Array
  },
  mounted() {
    this.columnDrop();
  },
  methods: {
    // 列拖拽
    columnDrop() {
      const wrapperTr = document.querySelector(".ivu-table-header tr");
      Sortable.create(wrapperTr, {
        animation: 150,
        delay: 0,
        onEnd: evt => {
          const oldItem = this.col[evt.oldIndex];
          this.col.splice(evt.oldIndex, 1);
          this.col.splice(evt.newIndex, 0, oldItem);
        }
      });
    }
  }
};
</script>

目前效果是可以进行拖拽,但是拖拽之后会出现显示错误,数据对应不上,但是打印出的数据是正确的,请问一下这种情况下如何解决?
image.png
image.png

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

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

发布评论

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

评论(3

悲喜皆因你 2022-09-19 13:45:39

看起来像是动态响应的问题,最后一句改成这样试试看?

this.col.splice(evt.newIndex, 0, JSON.parse(JSON.stringify(oldItem)))
尾戒 2022-09-19 13:45:39

this.col.splice(evt.newIndex, 0, this.col.splice(evt.oldIndex, 1)[0]);
var newArray1 = this.col.slice(0);
this.col = [];
this.$nextTick(function () {

this.col = newArray1;

});

这样设置表头与表里面的内容就行了,亲测有效

月牙弯弯 2022-09-19 13:45:39

iview 表头 使用sortablejs 那个问题你是怎么解决的,看到了一定要回复啊,感谢

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文