美文网首页
vue+element ui 列表行上下拖拽列表排序

vue+element ui 列表行上下拖拽列表排序

作者: 徐福瑞 | 来源:发表于2023-03-19 10:39 被阅读0次
image.png

1.下载 sortablejs 插件

npm install sortablejs

2.引入插件包

import Sortable from 'sortablejs'; // 列表拖拽插件

3.指定包裹容器的id

 <base-grid :data="tableData" :show-pagination="false" :loading="loading" row-key="placeGroupId">
        <el-table-column align="center" label="排序" width="100">
          <template slot-scope="">
            <i class="el-icon-s-fold"></i>
          </template>
        </el-table-column>
        <el-table-column label="楼层名称" prop="placeGroupName"></el-table-column>
        <el-table-column label="包含场所" prop="placeNameS"></el-table-column>
        <el-table-column label="操作" width="200px">
          <template slot-scope="scope">
            <span class="c-main mr-10 pointer" @click="updateStorey(scope.row)">修改楼层</span>
            <span class="c-main mr-10 pointer" @click="onSelectPlace(scope.row)">选择场所</span>

          </template>
        </el-table-column>
      </base-grid>
  mounted(){
    this.drag();
  }

methods:{
    /**
     * @desc拖动
     * */
     drag () {
      const tbody = document.querySelector('.el-table__body-wrapper tbody');
      const _this = this;
      Sortable.create(tbody, {
        onEnd({ newIndex, oldIndex }) {
          const currRow = _this.tableData.splice(oldIndex, 1)[0];
          _this.tableData.splice(newIndex, 0, currRow);
        //调用排序
          _this.setSortProjectLis();
        }
      });
    },
    /**
     * @desc产品排序
     * */
    setSortProjectLis(){
      let newData = [];
      this.tableData.forEach((item,i)=>{
        newData.push({
          orderNumber: i + 1,
          placeGroupId:item.placeGroupId
        });
      });
    //调用接口 传给后台
      updateOrderNumber(newData).then((res)=>{
        let { code,message } = res;
        if(code === 200){
          this.$notify({ title: '成功', message: '排序' + message, type: 'success' });
        }else {
    //更新列表数据
          this.getList();
          this.$notify.error( { title: '错误', message: message } );
        }
      });
    },
}

相关文章

  • 列表数据拖拽排序

    前言:很多时候我们都有这样的一种需求:在一个数据列表中,对数据进行排序,然后这个排序又希望用户体验好一点,页面不刷...

  • Angular cdk 学习之 drag-drop

    Angualr drag-drop里面的功能能让我们非常方便的处理页面上视图的拖拽(自由拖拽、列表排序拖拽、...

  • 可拖拽排序的列表

    依赖装一下; 引用用一下; main.js 一、单一列表项的拖拽排序 都是顾名思义的代码,不做解释;来看个高级点的...

  • react-sortable-hoc拖拽无法点击问题解决

    在使用react-sortable-hoc来实现列表拖拽排序时遇到一个问题: 首先看下业务场景,grid布局的拖拽...

  • HTML 基础 4

    有序列表、无序列表和自定义列表 示例 无序列表适合所有并列或没有上下级关系的条目的显示 有序列表适合有明确排序的条...

  • Python列表排序

    列表正序排序 sort()排序方法 此函数方法对列表内容进行正向排序,排序后的新列表会覆盖原列表(id不变),也就...

  • 拖拽列表

  • MOOC大学 实用Python程序设计 W6 列表

    6.1 列表的基本操作 6.2 列表基本应用 6.3 列表的排序算法 用排序函数对简单列表排序 复杂列表的自定义排...

  • 常见问题,排序值的插入以及对排序值的维护

    我们常常会遇到排序的需求。给列表的每一行一个排序值,如0-100,然后列表展示根据这个排序值来排序。排序值的变更我...

  • Recyclerview实现网格拖拽排序

    门禁列表拖拽排序 需求: 前两行是常用门禁,黄色显示,之后是普通门,白色显示。长按住一个门时,除了被按住的门,其他...

网友评论

      本文标题:vue+element ui 列表行上下拖拽列表排序

      本文链接:https://www.haomeiwen.com/subject/gityrdtx.html