Vue实现table上下移动功能示例


Posted in Javascript onFebruary 21, 2019

本文实例讲述了Vue实现table上下移动功能。分享给大家供大家参考,具体如下:

结合Element组件,scope中有三个参数(row,cow,$index)分别表示行内容、列内容、以及此行索引值,

table上绑定数组 :data="tableList"

<el-table :data="tableList">
</el-table>

添加一列,里面放上上移和下调两个按钮,并绑定上函数,将此行的索引值(scope.$index)作为参数,样式根据需求自己调整:

<el-button icon="el-icon-arrow-up" :disabled="scope.$index === 0" @click="upFieldOrder(scope.$index)"></el-button>
<el-button icon="el-icon-arrow-down" :disabled="scope.$index === tableList.length - 1" @click="downFieldOrder(scope.$index)"></el-button>

直接使用下面这种方式是错误的,虽然tableList的值变了,但是不会触发视图的更新:

upFieldOrder (index) {
  let temp = this.tableList[index-1];
  this.tableList[index-1] = this.tableList[index]
  this.tableList[index] = temp
 },

正确的上移函数:

upFieldOrder (index) {
  let temp = this.tableList[index-1];
  Vue.set(this.tableList, index-1, this.tableList[index])
  Vue.set(this.tableList, index, temp)
 },

同理,下移函数如下:

downFieldOrder (index) {
  let i = this.tableList[index+1];
  Vue.set(this.tableList, index+1, this.tableList[index])
  Vue.set(this.tableList, index, i)
 }

如此,前端的调整table顺序功能便做好了,我不是在每一次点击都与后台交互传入新Order,在页面销毁时,一并提交:

destroyed() {
 let param = {
  infos: []
 }
 this.tableList.forEach((dataItem,index) => {
  param.infos.push({
  参数1: dataItem.值1,
  参数1: dataItem.值2,
  参数顺序: index
  })
 });
 // 调用后台,并传入 param
 changeTableOrder(param).then(res => {
  if(res.success=== true) {
 alert('顺序调整成功')
  }
 })
 }

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
Array.slice()与Array.splice()的返回值类型
Oct 09 Javascript
JavaScript中Object和Function的关系小结
Sep 26 Javascript
jquery实现手机号码选号的方法
Jul 31 Javascript
微信小程序中显示html格式内容的方法
Apr 25 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
Sep 18 Javascript
不使用 JS 匿名函数理由
Nov 17 Javascript
分析JavaScript数组操作难点
Dec 18 Javascript
react 父子组件之间通讯props
Sep 08 Javascript
Vue递归实现树形菜单方法实例
Nov 06 Javascript
使用vue-cli webpack 快速搭建项目的代码
Nov 21 Javascript
在vue-cli3中使用axios获取本地json操作
Jul 30 Javascript
JavaScript读取本地文件常用方法流程解析
Oct 12 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
Feb 21 #Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 #Javascript
ES6基础之展开语法(Spread syntax)
Feb 21 #Javascript
ES6基础之默认参数值
Feb 21 #Javascript
微信小程序HTTP接口请求封装的实现
Feb 21 #Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
Feb 21 #Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 #Javascript
You might like
PHP mkdir()定义和用法
2009/01/14 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
Python2.7读取PDF文件的方法示例
2017/07/13 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
Python程序退出方式小结
2017/12/09 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
如何查找网页漏洞
2016/06/22 面试题
经典优秀个人求职自荐信格式
2013/09/25 职场文书
弘扬职业精神演讲稿
2014/03/20 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
体育运动口号
2014/06/09 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
老人节标语大全
2014/10/08 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
导游欢送词
2015/01/31 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电