当前位置:首页 » 《我的小黑屋》 » 正文

前端基于VUE+ElementUI实现table行上移或下移(支持跨页移动)

15 人参与  2024年04月25日 10:59  分类 : 《我的小黑屋》  评论

点击全文阅读


最近在做后台管理遇见了一个这样的需求:table列表需要支持上下移动数据,并且也需要满足跨页移动,前端把数据移动整理之后,提交给后端进行保存(平常这种数据移动都是调用后端的接口,然后在查询数据就可以完成了,但是这次显然不能这么做,因为后端只有一个保存数据的接口,所以这就需要前端自己处理数据了,废话少说,上效果图和源码!

静态效果图

在这里插入图片描述

动态效果图
在这里插入图片描述实现源码(HTML)
  <el-table :data="paginatedData">    <el-table-column label="操作" prop="operate">      <template slot-scope="scope">        <el-button-group>          <el-button            title="下移"            :disabled="isDown(scope.row)"            @click="moveupOrmovedown(scope.row, scope.$index, 'down')"          >          </el-button>          <el-button            title="上移"            :disabled="scope.$index === 0 && currentPage === 1"            @click="moveupOrmovedown(scope.row, scope.$index, 'up')"          >          </el-button>        </el-button-group>      </template>    </el-table-column>  </el-table>  <!-- 页码参考(此处不涉及该功能的任何逻辑,可忽略 -->  <el-pagination     background     :page-size="pageSize"     :current-page="currentPage"     layout="total, prev, pager, next, jumper"     :total="totalSize"     @current-change="(val) => (currentPage = val)"   > </el-pagination>
实现源码(JS)
   moveupOrmovedown(row, index, type) {     let arr = this.filteredData     const findIndex = this.filteredData.findIndex(       (item) => item.date === row.date     )     index = findIndex > this.pageSize - 1 ? findIndex : index     type === 'up'       ? arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1]))       : arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index]))   }
详情源码(仅展示参数)
<script>export default {  data() {    return {      totalSize: 0,      currentPage: 1,      pageSize: 10,      filteredData: [],      paginatedData: [],      tableData: []    }  },  methods: {    isDown(row) {      const findIndex = this.filteredData.findIndex(        (item) => item.date === row.date      )      return findIndex === this.filteredData.length - 1     },    moveupOrmovedown(row, index, type) {      let arr = this.filteredData      const findIndex = this.filteredData.findIndex(        (item) => item.date === row.date      )      index = findIndex > this.pageSize - 1 ? findIndex : index      type === 'up'        ? arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1]))        : arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index]))    },    handleCurrentChange(val) {      this.currentPage = val    },    selectCheckBox(selectCheckBox) {      const newFilterData = this.filterDataByDate(        this.tableData,        selectCheckBox      )      this.filteredData = [...this.filteredData, ...newFilterData]    },    paginateData(data, pageSize, currentPage) {      if (data.length < 11) return data      const startIndex = (currentPage - 1) * pageSize      const endIndex = startIndex + pageSize      const dataToShow = data.slice(startIndex, endIndex)      return dataToShow    },    updatePaginatedData() {      this.totalSize = this.filteredData.length      // 分页(前端处理)     // this.paginatedData = this.$util.paginateData(      this.paginatedData = this.paginateData(        this.filteredData,        this.pageSize,        this.currentPage      )    }  },  created() {    // 调后端接口返回的全部数据(后面前端自己分页)    this.tableData = tableData  },  mounted() {},  watch: {    currentPage: {      handler(newPage) {        this.updatePaginatedData()      },      immediate: true,    },    filteredData: {      handler(newArray) {        this.updatePaginatedData()      },      immediate: true,    }  },  computed: {},  filters: {}}</script>

点击全文阅读


本文链接:http://zhangshiyu.com/post/99914.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 京圈佛子破戒后,我改嫁京圈纨绔(沈墨渊,白晶晶)
  • 前世被闺蜜害死,重生后我让她从太子妃变疯女苏婉儿,清歌完本_前世被闺蜜害死,重生后我让她从太子妃变疯女(苏婉儿,清歌)
  • 全书浏览七零军嫂太彪悍,带三宝上军区离婚(沈清落,陈桂花,陆有为)_七零军嫂太彪悍,带三宝上军区离婚(沈清落,陈桂花,陆有为)全书结局
  • 今天也没变成昨天(周扬陈默)全书免费_(周扬陈默)今天也没变成昨天后续(周扬陈默)
  • 重生后,秦总非要父以子贵(许沐晴,秦越泽)全书浏览_重生后,秦总非要父以子贵全书浏览
  • 他嫌弃我喝两块钱豆浆上不了台面,我结婚后他又哭又闹全书万照,白青青在线
  • 昭然若梦前尘烬列表_昭然若梦前尘烬(温昭然方池雲)
  • 导师借我股票账号,我倒欠五十万(孟潇潇,宁薇)_导师借我股票账号,我倒欠五十万孟潇潇,宁薇
  • 拒绝把外卖券给舍友,竹马送我到迪拜捡垃圾(周钰泽,蒋清清,思源)全书浏览_拒绝把外卖券给舍友,竹马送我到迪拜捡垃圾全书浏览
  • 我的人生,你已出局(程森凌古楚文)_我的人生,你已出局程森凌古楚文
  • 穿书成病娇女配,睁眼就签下离婚协议书(朱楼)_穿书成病娇女配,睁眼就签下离婚协议书
  • 老婆逼我给白月光捐肾,我死后她悔疯了(宋逸晨沈墨白)全书浏览_老婆逼我给白月光捐肾,我死后她悔疯了全书浏览

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1