iView ui Table表格拖拽排序

需求目的:拖动表格数据自定义排序,然后保存提交给后台就行了
iview table

请添加图片描述

1.在 Table 标签上设置draggable="true"或者draggable属性,开启拖拽功能
2.添加 @on-drag-drop="changeTableSort1"方法,实现拖拽逻辑

<Table height="580" :data="data1" :columns="tbColumns" highlight-row draggable @on-drag-drop="changeTableSort1" border > </Table>

js

data() {
    return {
    	dataItem1: { id: '0', exportFieldName: '', systemFieldName: '', fieldLocation: '', valueLocation: '', serialNo: '1' },
		data1: [
	        { id: '1', exportFieldName: 'FBA ID', systemFieldName: '', fieldLocation: 'A1', valueLocation: 'B1~D1', serialNo: '1' },
	        { id: '2', exportFieldName: '服务', systemFieldName: '', fieldLocation: 'A2', valueLocation: 'B2~D2', serialNo: '1' },
	        { id: '3', exportFieldName: '地址库编码', systemFieldName: '', fieldLocation: 'A3', valueLocation: 'B3~D3', serialNo: '1' },
	        { id: '4', exportFieldName: '收件人姓名', systemFieldName: '', fieldLocation: 'A4', valueLocation: 'B4~D4', serialNo: '1' },
	        { id: '5', exportFieldName: '收件人公司', systemFieldName: '', fieldLocation: 'A5', valueLocation: 'B5~D5', serialNo: '1' },
	        { id: '6', exportFieldName: '收件人地址一', systemFieldName: '', fieldLocation: 'A6', valueLocation: 'B6~D6', serialNo: '1' },
	        { id: '7', exportFieldName: '收件人地址二', systemFieldName: '', fieldLocation: 'A7', valueLocation: '', serialNo: '1' },
	        { id: '8', exportFieldName: '收件人地址三', systemFieldName: '', fieldLocation: 'A8', valueLocation: '', serialNo: '1' },
	        { id: '9', exportFieldName: '收件人城市', systemFieldName: '', fieldLocation: 'A9', valueLocation: '', serialNo: '1' },
	        { id: '10', exportFieldName: '收件人省份/州', systemFieldName: '', fieldLocation: 'A10', valueLocation: '', serialNo: '1' },
	        { id: '2', exportFieldName: '收件人邮编', systemFieldName: '', fieldLocation: 'A11', valueLocation: '', serialNo: '1' },
	        { id: '2', exportFieldName: '收件人国家代码', systemFieldName: '', fieldLocation: 'A12', valueLocation: '', serialNo: '1' },
	        { id: '2', exportFieldName: '收件人电话', systemFieldName: '', fieldLocation: 'A13', valueLocation: '', serialNo: '1' },
	        { id: '2', exportFieldName: '收件人邮箱', systemFieldName: '', fieldLocation: 'A14', valueLocation: '', serialNo: '1' },
	        { id: '2', exportFieldName: 'reference ID', systemFieldName: '', fieldLocation: 'A15', valueLocation: '', serialNo: '1' },
	        { id: '2', exportFieldName: '申报币种', systemFieldName: '', fieldLocation: 'A16', valueLocation: '', serialNo: '1' },
	        { id: '2', exportFieldName: '箱数', systemFieldName: '', fieldLocation: 'A17', valueLocation: '', serialNo: '1' }
	      ],
	      tbColumns: [
	        {
	          type: 'selection',
	          width: 50,
	          align: 'center'
	        }, {
	          title: '序号',
	          width: 50,
	          align: 'center',
	          type: 'index'
	        },
	        {
	          title: '导出字段',
	          key: 'exportFieldName',
	          align: 'center'
	        },
	        {
	          title: '系统字段',
	          key: 'systemFieldName',
	          align: 'center',
	          width: 120
	        },
	        {
	          title: '字段在Excel表格在列或行数',
	          key: 'fieldLocation',
	          align: 'center',
	          width: 100
	        },
	        {
	          title: '值在Excel表格在列或行数',
	          key: 'valueLocation',
	          align: 'center',
	          width: 100
	        },
	        {
	          title: '操作',
	          align: 'center',
	          width: 130,
        	}
      	],
     }
}
	      
methods: {
	changeTableSort1(first, end) {
      console.log('changeOrder1', first, end)
      /* 前端互换2条数据index 和 orderid */
      first = parseInt(first)
      end = parseInt(end)
      let tmp = this.data1[first]
      if (first < end) {
        for (var i = first + 1; i <= end; i++) {
          this.data1.splice(i - 1, 1, this.data1[i])
        }
        this.data1.splice(end, 1, tmp)
      }
      if (first > end) {
        for (var j = first; j > end; j--) {
          this.data1.splice(j, 1, this.data1[j - 1])
        }
        this.data1.splice(end, 1, tmp)
      }
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值