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 相关文章推荐
JS实现定时页面弹出类似QQ新闻的提示框
Nov 07 Javascript
JavaScript按位运算符的应用简析
Feb 04 Javascript
浅谈时钟的生成(js手写简洁代码)
Aug 20 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
Aug 24 jQuery
JavaScript门面模式详解
Oct 19 Javascript
微信web端后退强制刷新功能的实现代码
Mar 04 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
Apr 21 Javascript
vue中的过滤器实例代码详解
Jun 06 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
Sep 02 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
Apr 21 Javascript
JavaScript 常见的继承方式汇总
Sep 17 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集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
python psutil模块使用方法解析
2019/08/01 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
python读取ini配置文件过程示范
2019/12/23 Python
python绘制趋势图的示例
2020/09/17 Python
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
英国女士家居服网站:hush
2017/08/09 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
财政局长自荐信范文
2013/12/22 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
求职信需要的五点内容
2014/02/01 职场文书
英语专业自荐书
2014/06/13 职场文书
2014年教学工作总结
2014/11/13 职场文书
电力安全学习心得体会
2016/01/18 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
Html5生成验证码的示例代码
2021/05/10 Javascript