LayoutGrid
Vue Layout Gridster
Install / Use
/learn @0x8f701/LayoutGridREADME
LayoutGrid
Layout grid system in VueJs, see also:
Introduction
This component is for creating a dashboard more simply. All config of the dashboard will be saved in the vuex module LayoutGrid. In any component of
your SPA, you can add a new item or delete one. I've also added some new features:
table modejson/csv downloadUI design
This component use jbaysolutions/vue-grid-layout internally and makes it simpler to use, that means the layout is controlled in vuex and every time
when we need to add a new item. We just need to specify the title, is, w, h and data. It will calculate automatically the next position and
also the identifier i .
Installation
npm i -S vue-layout-grid
Usage
main.js
import Vue from 'vue';
import Vuex from 'vuex';
import LayoutGrid from 'vue-layout-grid';
import Buefy from 'buefy';
import 'buefy/lib/buefy.min.css';
const store = new Vuex.Store();
Vue.use(Vuex);
Vue.use(LayoutGrid, { store });
new Vue({
store,
...
});
index.html
<link rel="stylesheet" href="//cdn.materialdesignicons.com/2.0.46/css/materialdesignicons.min.css">
template
<layout-grid
:editable="editable"
:margin="margin"
:row-height="rowHeight"
:min-w="minW">
</layout-grid>
Props
|prop|description|type|default|
|:---|:---|:---|:---|
|editable|show border or not|boolean|true|
|margin|margin between layout grid item|[number, number]|[0, 0]|
|row-height|layout grid item height unit|number|100|
|min-w|min w|number|1|
Vuex Module
This component has a vuex module which is registered as LayoutGrid.
store
this.$store.state.LayoutGrid.layout
mutations
// For example, here I need to add a new item to the layout
// This item is the `d3-timeline` component of [Vs](https://github.com/GopherJ/Vs)
// I just need to do:
this.$store.commit('LayoutGrid/ADD_LAYOUT_ITEM', {
title: 'Alerts',
is: 'd3-timeline',
w: 12,
h: 3,
data: {
// props of d3-timeline
data: [...],
options: {...},
width: '100%',
height: '100%'
}
});
// EDIT
// This is used to replace/update an item
// For example we change the d3-timeline to d3-timelion
this.$store.commit('LayoutGrid/EDIT_LAYOUT_ITEM', {
i: '0', // indentifier of d3-timeline, it's generated automatically
title: 'Entries Over Time',
is: 'd3-timelion',
w: 12,
h: 3,
data: {
// props of d3-timelion
data: [...],
options: {...},
width: '100%',
height: '100%'
}
});
Special Thanks
Screen Shots
###UI
###Dashboard
Related Skills
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
