ElementUI实现表格(table) 行上下移动的效果

简介: ElementUI实现表格(table) 行上下移动的效果

参考地址


https://blog.csdn.net/sunshine0508/article/details/88390155


看大佬的地址


<div id="app">
    <el-table :data="URLModles" :show-header="false" highlight-current-row style="width: 100%"
      @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55px">
      </el-table-column>
      <el-table-column type="index" width="55px">
      </el-table-column>
      <el-table-column prop="expressCode" label="快递代码" width="100px">
      </el-table-column>
      <el-table-column prop="expressName" label="快递名称" width="100px">
      </el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button size="mini" :disabled="scope.$index===0" @click="moveUp(scope.$index,scope.row)"><i
              class="el-icon-arrow-up"></i></el-button>
          <el-button size="mini" :disabled="scope.$index===(URLModles.length-1)"
            @click="moveDown(scope.$index,scope.row)"><i class="el-icon-arrow-down"></i></el-button>
          <el-button type="info" size="mini" round v-if="scope.$index===0">默认</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>


var vm = new Vue({
    el: "#app",
    data() {
      return {
        URLModles: [{
          index: '1',
          expressCode: 'SF',
          expressName: '顺丰快递',
          status: true,
        }, {
          index: '2',
          expressCode: 'YTO',
          expressName: '圆通快递',
          status: true,
        }, {
          index: '3',
          expressCode: 'UC',
          expressName: '优速快递',
          status: true,
        }],
        multipleSelection: []
      }
    },
    methods: {
      //选择复选框数据
      handleSelectionChange(val) {
        this.multipleSelection = val;
      },
      //上移
      moveUp(index, row) {
        var that = this;
        console.log('上移', index, row);
        console.log(that.URLModles[index]);
        if (index > 0) {
          let upDate = that.URLModles[index - 1];
          that.URLModles.splice(index - 1, 1);
          that.URLModles.splice(index, 0, upDate);
        } else {
          alert('已经是第一条,不可上移');
        }
      },
      //下移
      moveDown(index, row) {
        var that = this;
        console.log('下移', index, row);
        if ((index + 1) === that.URLModles.length) {
          alert('已经是最后一条,不可下移');
        } else {
          console.log(index);
          // 保存下一条数据
          let downDate = that.URLModles[index + 1];
          // 删除下一条数据
          that.URLModles.splice(index + 1, 1);
          // 增添被删除的那一条数据
          that.URLModles.splice(index, 0, downDate);
        }
      }
    }
  })
</script>


1425695-20200331232302588-1475340185.png



相关文章
|
4月前
Vue2表格(Table)
这是一个基于 Vue3 的表格组件,提供了灵活的数据展示与分页功能。主要接收表格列配置 `columns`、数据源 `dataSource`、分页器配置 `pagination` 等参数,并支持加载状态显示及单页隐藏分页器等特性。组件内置了加载中组件 `Spin` 和分页组件 `Pagination`,样式参考 ant-design。使用时需在目标页面引入组件并设置相关属性即可实现丰富的表格展示效果。
276 1
Vue2表格(Table)
|
4月前
|
数据格式
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
本文介绍了在ElementUI和ElementPlus中使用`el-table`组件实现合并行功能的技巧,包括多列合并和单列合并的方法,并提供了相应的示例代码和运行效果。
3765 1
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
|
4月前
Vue3表格(Table)
这是一个基于 Vue2 的表格组件,支持自定义列配置、数据绑定、加载中提示、空状态提示及分页功能。主要属性包括表格列配置 `columns`、数据源 `dataSource`、加载状态 `loading` 及分页配置等。组件内置了 Spin、Empty 和 Pagination 等子组件以实现丰富的交互效果。通过简单的属性绑定即可实现数据展示、加载动画和无数据提示等功能。
123 0
Vue3表格(Table)
|
5月前
HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)
HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)
289 0
HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)
|
5月前
|
JavaScript
ElementPlus的el-table-column如何添加超链接的代码
ElementPlus的el-table-column如何添加超链接的代码
|
7月前
elementUI 写一个表头列名、表体单元格样式、翻页器相对较为动态的表格el-table
elementUI 写一个表头列名、表体单元格样式、翻页器相对较为动态的表格el-table
elementUI 写一个表头列名、表体单元格样式、翻页器相对较为动态的表格el-table
Element-ui 表格 (Table) 组件中动态合并单元格
Element-ui 表格 (Table) 组件中动态合并单元格
1019 0
Element-ui 表格 (Table) 组件中动态合并单元格
|
容器
css3 table表格
css3 table表格
62 0
|
前端开发 JavaScript 容器
Bootstrap 表格样式-Table
Bootstrap 表格样式-Table
88 0