create-iking-admin
Version:
金合技术中台脚手架
172 lines (168 loc) • 4.17 kB
text/typescript
/*
* @Author : wfl
* @LastEditors : wfl
* @description :
* @updateInfo :
* @Date : 2022-11-29 11:00:15
* @LastEditTime : 2022-12-15 14:15:19
*/
import type { PropType } from 'vue'
export const defaultOpts = {
animation: 200,
group: 'gl',
disabled: false,
ghostClass: 'ghost',
sort: true,
delay: 100,
showIcon: true,
itemStyle: {
radius: 4,
bottom: 8,
background: 'var(--ik-sub-sidebar-menu-bg)'
}
}
export interface TList {
label: String
order?: number
[key: string]: any
}
export const defaultProps = {
list: {
required: true,
type: Array as PropType<Array<TList>>,
default: []
},
// 如果一个页面有多个拖拽区域,通过设置group名称可以实现多个区域之间相互拖拽
// 或者 { name: "...", pull: [true, false, 'clone', array , function], put: [true, false, array , function] }
group: {
type: String,
default: 'draggable'
},
// 是否开启排序,如果设置为false,它所在组无法排序
sort: {
type: Boolean,
default: true
},
// 前置图标
showIcon: {
type: Boolean,
default: true
},
// 鼠标按下多少秒之后可以拖拽元素
delay: {
type: Number,
default: 0
},
// 鼠标按下移动多少px才能拖动元素
touchStartThreshold: {
type: Number,
default: 0
},
// 是否禁用用拖拽组件
disabled: {
type: Boolean,
default: false
},
// 拖动时的动画效果,如设置animation=1000表示1秒过渡动画效果
animation: {
type: Number,
default: 200
},
// 只有当鼠标在class为mover类的元素上才能触发拖到事件
handle: {
type: String,
default: '.mover'
},
// 设置了unmover样式的元素不允许拖动
filter: {
type: String,
default: '.unmover'
},
// 样式类为item的元素才能被拖动
draggable: {
type: String,
default: '.item'
},
// 设置拖动元素的占位符类名,你的自定义样式可能需要加!important才能生效,并把forceFallback属性设置成true
ghostClass: {
type: String,
default: 'ghost'
},
// 被选中目标的样式,你的自定义样式可能需要加!important才能生效,并把forceFallback属性设置成true
chosenClass: {
type: String,
default: 'chosen'
},
// 拖动元素的样式,你的自定义样式可能需要加!important才能生效,并把forceFallback属性设置成true
dragClass: {
type: String,
default: 'drag'
},
// 默认false,忽略HTML5的拖拽行为,因为h5里有个属性也是可以拖动,你要自定义ghostClass chosenClass dragClass样式时,建议forceFallback设置为true
forceFallback: {
type: Boolean,
default: false
},
// 默认false,克隆选中元素的样式到跟随鼠标的样式
fallbackClass: {
type: String,
default: 'fallback'
},
// 默认false,克隆的元素添加到文档的body中
fallbackOnBody: {
type: Boolean,
default: false
},
// 按下鼠标移动多少个像素才能拖动元素,:fallback-tolerance="8"
fallbackTolerance: {
type: Number,
default: 8
},
// 有滚动区域是否允许拖拽 默认true
scroll: {
type: Boolean,
default: true
},
// 滚动回调函数
scrollFn: {
type: Function,
default: () => { }
},
// 距离滚动区域多远时,滚动滚动条
scrollFensitivity: {
type: Number,
default: 30
},
// 滚动速度
scrollSpeed: {
type: Number,
default: 30
},
itemClass: {
type: String,
default: ''
},
groupClass: {
type: String,
default: ''
},
itemStyle: {
type: Object,
default: () => {
return {
radius: {
type: Number,
default: 30
},
bottom: {
type: Number,
default: 8
},
background: {
type: String,
default: 'var(--ik-sub-sidebar-menu-bg)'
}
}
}
}
}