|
%!s(int64=5) %!d(string=hai) anos | |
---|---|---|
dist | %!s(int64=6) %!d(string=hai) anos | |
libs | %!s(int64=5) %!d(string=hai) anos | |
public | %!s(int64=6) %!d(string=hai) anos | |
src | %!s(int64=5) %!d(string=hai) anos | |
.gitignore | %!s(int64=6) %!d(string=hai) anos | |
README.md | %!s(int64=6) %!d(string=hai) anos | |
babel.config.js | %!s(int64=6) %!d(string=hai) anos | |
package-lock.json | %!s(int64=6) %!d(string=hai) anos | |
package.json | %!s(int64=6) %!d(string=hai) anos | |
vue.config.js | %!s(int64=6) %!d(string=hai) anos | |
yarn.lock | %!s(int64=6) %!d(string=hai) anos |
Doesburg(杜斯伯格),是一个布局设计器,支持拖拽布局、拖拽设置大小。
<div>
<grid ref="grid"></grid>
</div>
import VueGrid from 'alt-vue-grid-layout'
let Grid = VueGrid.createGrid()
let layout = [
{"x":0,"y":0,"w":2,"h":2,"i":"0"},
{"x":2,"y":0,"w":2,"h":4,"i":"1"},
{"x":4,"y":0,"w":2,"h":5,"i":"2"},
{"x":6,"y":0,"w":2,"h":3,"i":"3"},
{"x":8,"y":0,"w":2,"h":3,"i":"4"}
]
new Vue({
components: {
Grid
},
mounted(){
this.$refs.grid.setLayout(layout)
}
}
属性 | 说明 | 默认值 -- | -- | -- isDraggable | Boolean类型,是否支持拖拽布局,true - 支持,false - 不支持 | true isResizable | Boolean类型,是否支持拖拽控制元素大小,true - 支持,false - 不支持 | true margin | Array类型,如 [3, 3],设置可拖拽模块左侧和下侧间距,最小值为[2, 2],表示没有间距 | [10, 10] verticalCompact | Boolean类型,设置垂直方向是否自动忽略空白向上填充 | true useCssTransforms | Boolean类型,是否使用css的transform属性 | true colNum | Number类型,栅格列数 | 12 rowHeight | Number类型,每一行的高度 | 150 maxRows | Number类型,设置布局设计器最大行数 | Infinity backgroundColor | String类型,css-like,设置所有卡片的背景颜色和透明度 | 'rgba(255,255,255,0.5)' gridItemClass | String类型,统一设置卡片的自定义class | <空> closeHandlerClass | String类型,统一设置关闭按钮的class | <空> resizeHandlerClass | String类型,统一设置 拖拽大小的class | <空> placeholderClass | String类型,统一设置占位符的class | <空> isShowOriginCloseBtn | Boolean类型,统一设置是否显示自带的关闭按钮,可以使用注册组件的this.altCardProps.close()来关闭组件 | true
addWidgetType
注册组件类型
注册单个组件: addWidgetType(name, widget)
示例:
import VueGrid from 'alt-vue-grid-layout'
import Type1 from './Type1.vue';
let Grid = VueGrid.createGrid()
Grid.addWidgetType('type1', Type1)
let layout = [
{x:0, y:0, w:2, h:2, i:"0", type:"Type1"}
]
批量注册组件: addWidgetType(typeMap)
示例:
import VueGrid from 'alt-vue-grid-layout'
import Type1 from './Type1.vue';
import Type2 from './Type2.vue';
let Grid = VueGrid.createGrid()
Grid.addWidgetType({
type1: Type1,
type2: Type2
})
let layout = [
{x:0, y:0, w:2, h:2, i:"0", type:"Type1"},
{x:0, y:0, w:2, h:2, i:"0", type:"Type2"}
]
setLayout(layout)
this.close()
来关闭卡片addItem(itemInfo)
deleteItem(id)
组件是一个Object,类vue对象结构,暂时不支持vue子类,如
let type1 = {
mounted(){
console.log('mounted')
}
}
组件内部支持vue的生命周期
组件内部可以通过this.$on('eventName', fn)来监听事件
组件内部可以通过this.altCardProps.close()
来关闭当前组件
组件内部可以通过this.altCardProps.card
获取layout中当前组件的参数
yarn install
yarn run serve
yarn run build
yarn run build-lib