🎁 Apis
参数类型
ts
interface LayoutItem {
id: string
x: number
y: number
h: number
w: number
static?: boolean
}
type Layout = LayoutItem[]
GridLayout
Props
ts
interface PropsData {
data: Layout // 布局数据
col?: number | string, // 列数
rowH?: number | string // 行高
gutter?: number | string // 网格间距
drage?: boolean // 是否可拖拽
resize?: boolean // 是否可拖拽
remove?: boolean // 是否可拖拽
isDrawGridLines?: boolean // 是否绘制网格线
isCollision?: boolean // 是否碰撞
}
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
data | Layout | [] | 布局数据,支持双向绑定(v-model:data="layoutData") |
col | number/string | 12 | 列数 |
rowH | number/string | 50 | 行高 |
gutter | number/string | 10 | 网格间距 |
drage | boolean | true | 是否可拖拽 |
resize | boolean | true | 是否可缩放 |
remove | boolean | true | 是否可删除 |
isDrawGridLines | boolean | true | 是否绘制网格线 |
isCollision | boolean | true | 是否碰撞 |
🪢 事件
事件名 | 说明 | 类型 |
---|---|---|
draggableStart | 拖拽开始时触发 | (index: string) => void |
draggableHandle | 拖拽中触发 | (id: string, newItem: LayoutItem) => void |
draggableEnd | 拖拽结束时触发 | (id: string, newItem: LayoutItem) => void |
remove | 删除方块时触发 | (index: string) => void |
GridItem
Props
ts
interface GridItem {
id: string // 唯一标识
draggableFrom?: string // 拖拽源,触发拖拽的元素id
}
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
id | string | `` | 子元素的唯一标识 |
draggableFrom | string | `` | 触发拖拽的元素id |
🎍 插槽
名称 | 说明 |
---|---|
default | 自定义每个元素的内容 |
resize | 自定义缩放 |
remove | 自定义删除 |