0.3.4 • Published 4 years ago

vue-layout-grid v0.3.4

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

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 mode
  • json/csv download
  • UI 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

propdescriptiontypedefault
editableshow border or notbooleantrue
marginmargin between layout grid item[number, number][0, 0]
row-heightlayout grid item height unitnumber100
min-wmin wnumber1

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

jbaysolutions

Screen Shots

###UI Alerts Table

###Dashboard Dashboard

0.3.4

4 years ago

0.3.3

4 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.9

5 years ago

0.2.5

6 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.9

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago