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 相关文章推荐
jQuery ajax cache缓存问题
Jul 01 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
Apr 08 Javascript
让textarea自动调整大小的js代码
Apr 12 Javascript
html向js方法传递参数具体实现
Aug 08 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
Dec 27 Javascript
通过Jquery的Ajax方法读取将table转换为Json
May 31 Javascript
JavaScript通过元素的ID和name设置样式
Jul 08 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
Mar 04 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 Javascript
Bootstrap面板(Panels)的简单实现代码
Mar 17 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
Nov 19 Javascript
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
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中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php判断当前操作系统类型
2015/10/28 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
django中静态文件配置static的方法
2018/05/20 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
python绘制直方图和密度图的实例
2019/07/08 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
HTML5未来发展趋势
2016/02/01 HTML / CSS
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
摩顿布朗英国官方网上商店:奢华沐浴、身体和头发护理
2016/10/29 全球购物
三星美国官网:Samsung美国
2017/02/06 全球购物
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书
保管员岗位职责
2015/02/14 职场文书
新郎接新娘保证书
2015/05/08 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
python的变量和简单数字类型详解
2021/09/15 Python
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server
vue判断按钮是否可以点击
2022/04/09 Vue.js
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers