# tui-drag 拖拽排序

介绍

拖拽排序,长按进行拖拽操作。

# 引入

# uni-app引入

第一种,手动引入(可全局引入)

import tuiDrag from "@/components/thorui/tui-drag/tui-drag.vue"
export default {
	components:{
		tuiDrag
	}
}

第二种,开启easycom组件模式,如果不了解如何配置,可先查看 官网文档 (opens new window)

# uni-app版本平台差异说明

App-Nvue App-vue H5 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
升级中 √(暂不支持使用在分包页面中)

# 微信小程序引入(可在app.json中全局引入)

{
  "usingComponents": {
    "tui-drag": "/components/thorui/tui-drag/tui-drag"
  }
}

# 代码演示

部分功能演示,具体可参考示例程序以及文档API。

设置columns

通过 listData 属性传入数据,columns 属性设置展示列数,默认为3,插槽具体使用介绍请前往 进阶用法

<!--uni-app-->
<tui-drag ref="drag" @change="change" @sortend="sortEnd" :listData="list" :scrollTop="scrollTop" :itemHeight="itemHeight"
 :columns="columns">
	<template slot-scope="{entity,height}">
		<view class="tui-image__item" :style="{height:height+'rpx'}">
			<image :src="entity.src" :style="{height:height+'rpx'}" mode="widthFix"></image>
		</view>
	</template>
</tui-drag>

<!--微信小程序-->
<tui-drag  bindchange="change" bindsortend="sortEnd" listData="{{list}}" scrollTop="{{scrollTop}}" itemHeight="{{itemHeight}}"
 columns="{{columns}}" generic:item="drag-item">
</tui-drag>
固定项不可拖动

listData 属性传入数据格式为Array<Object>,其中Object对象的数据内容可自定义。

当需要设置固定项时,需要在Object对象中加入属性fixed,并且值设为true。

# Slots

名称 说明
default 拖拽列表内容,微信小程序此处使用的是item 抽象节点 (opens new window)

# Props

参数 类型 说明 默认值
listData Array<Object> 数据源,Object约定属性 fixed(是否固定,表示此内容不可拖拽,也不可换位置) []
columns Number 列数 3
topSize Number 顶部固定高度 0
bottomSize Number 底部固定高度 0
itemHeight Number 每个item高度, 用于计算drag-wrap 高度,单位rpx 0
scrollTop Number 页面滚动距离 0
isEdit Boolean 编辑状态,为true时才可拖拽 true

# Events

事件名 说明 回调参数
sortend 拖拽结束的时候触发 {listData: 排序后的数据}
change 排序发生改变的时候触发 {listData: 排序后的数据}

# 预览

请以移动端 (opens new window)效果为准,touch事件目前尚未在PC端做兼容。

# 线上程序扫码预览

ThorUI组件库 H5二维码 ThorUI示例
ThorUI组件库小程序码 H5二维码 ThorUI示例小程序码