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 相关文章推荐
ExtJs扩展之GroupPropertyGrid代码
Mar 05 Javascript
js 多种变量定义(对象直接量,数组直接量和函数直接量)
May 24 Javascript
JavaScript中为元素加上name属性的方法
May 09 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 Javascript
JavaScript通过RegExp实现客户端验证处理程序
May 07 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
Jan 27 Javascript
Bootstrap基本组件学习笔记之列表组(11)
Dec 07 Javascript
js编写三级联动简单案例
Dec 21 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
Mar 10 Javascript
JavaScript this关键字的深入详解
Jan 14 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将文本文件转换csv输出的方法
2014/12/31 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
php实现URL加密解密的方法
2016/11/17 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
php实现每日签到功能
2018/11/29 PHP
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
React-native桥接Android原生开发详解
2018/01/17 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
python实现五子棋小程序
2019/06/18 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
婴儿地球:Baby Earth
2018/12/25 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
聘用意向书范本
2014/04/01 职场文书
中学生家长评语大全
2014/04/16 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
详解Python描述符的工作原理
2021/06/11 Python
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL