Table 表格实现上移下移功能

Table 表格实现上移下移功能

置顶 2019-10-08 14:19:31 小伙子。 阅读数 208更多

分类专栏: js

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_44096448/article/details/102383743

js实现table表格上下移动功能,需要交换行与行的数据内容,即a,b=b,a(一行代码)

 
  1. <template slot="operation" slot-scope="text, record, index">

  2. <a @click="delRow(index,record)">

  3. <a-icon type="delete" theme="twoTone" title="删除"/>

  4. </a>

  5. <span style="margin: 0px 15px">|</span><a @click="aMoveUp(index)"

  6. :disabled="index === 0">上移</a>

  7. <span style="margin: 0px 15px">|</span><a @click="aMoveDown(index)"

  8. :disabled="index === dataSource.length-1">下移</a>

  9. </template>

js实现数据互换方式(很多,本文推荐三种)

1.声明一个数组,存放上下两行的数据,特别注意,直接用等号赋值会导致视图不及时渲染,值发生了交换,但视图没响应

 
  1. const data = [this.dataSource[index], this.dataSource[index + 1]]

  2. // this.dataSource[index] = data[1]

  3. // this.dataSource[index + 1] = data[0]

  4. this.$set(this.dataSource, index, data[1])

  5. this.$set(this.dataSource, index + 1, data[0])

 
  1. // 上移

  2. aMoveUp (index) {

  3. const data = [this.dataSource[index], this.dataSource[index - 1]]

  4. this.$set(this.dataSource, index, data[1])

  5. this.$set(this.dataSource, index - 1, data[0])

  6. },

 
  1. // 下移

  2. aMoveDown (index) {

  3. const data = [this.dataSource[index], this.dataSource[index + 1]]

  4. this.$set(this.dataSource, index, data[1])

  5. this.$set(this.dataSource, index + 1, data[0])

  6. }

2.ES6的解构赋值,[a,b] = [b,a]。试图不渲染需要使用this.$set()

[this.dataSource[index], this.dataSource[index + 1]] = [this.dataSource[index+1], this.dataSource[index]]

3.运用运算符优先级。a=[b,b=a][0]

this.dataSource[index] = [this.dataSource[index+1], [this.dataSource[index+1] = [this.dataSource[index]][0]
 
  1. // 上移

  2. aMoveUp (index) {

  3. this.$set(this.dataSource, index, [this.dataSource[index - 1], this.dataSource[index - 1] = this.dataSource[index]][0])

  4. }

 
  1. // 下移

  2. aMoveDown (index) {

  3. this.$set(this.dataSource, index, [this.dataSource[index + 1], this.dataSource[index + 1] = this.dataSource[index]][0])

  4. }

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值