# 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示例小程序码 |