1.1.8 • Published 5 years ago

vue-all-tools v1.1.8

Weekly downloads
2
License
ISC
Repository
github
Last release
5 years ago

Vue-all-tools Version 1.0.1 (02/07/19)

Introducción

Para utilizar se debe incluir la libreria a main.js y configurar el HostUrl.

Los componentes datatable y paginator solo funcionan con Fraravel y compatibildad con laravel no segura.

require("./components/vue-all-tools");
let hostUrl = "https://deb.boutiquemanagement.com/api";
Request.setUrl(hostUrl, hostUrl);

Prop vue para DataTable -

name = requerido para identificar las tablas.
history = indica si la tabla genera un historial en la URL.

Configuración.

Se debe añadir el componente display-dialog y context-menu al inicio de la aplicación vue.

<template>
    <div id="app">
        <router-view />
        <context-menu></context-menu>
        <display-dialog />
    </div>
</template>

Usar Display Dialog.

Para crear un instancia de un dialogo utilizar Dialog.open, esto retorna una promesa.

Dialog.open("Title", "Content", ["Button 1", "Button 2"]);

Configuraciónes

Dialog.open("Title", "Content", ["Cancel", "Button 2"])
.then(e => {
    e.state.code // Cancel == 1
    e.state.code // Button 2 == 2
    e.state.text // Text of button

    e.preventDefault() // Prevent close dialog
});

Usar un componente de manera dinamica dentro de un dialogo.

Dialog.open("Title", import("component/path/index.vue"), ["Accept"])
.onLoadComponent(component => {
    component.getValueCustomMethod();
})

Desactivar un boton.

Dialog.open("Title", import("component/path/index.vue"), ["Accept"])
    .setActiveButton(1, false);

Utilizar un estilo personalizado para todos los dialogos.

//Name of style
Dialog.setTheme("black/default");
//or Custom
//Class of stylesheet and path of stylesheet
Dialog.setTheme("class-stylesheet", "@/styles/dialog_theme.scss");

Cambiar el estilo de una instancia de dialogo.

Dialog.open("Title", "content", ["btn1"]).setTheme("black");
Dialog.open("Title", "content", ["btn1"]).setTheme("class-stylesheet", "@/styles/dialog_theme.scss");

#default
{
    > section
    {
        border: 2px solid var(--color-1);

        > .title
        {
            text-align: left;
            background-color: var(--color-1);
            color: var(--color-white);
            padding-left: 5px;
        }

        > .content
        {
            margin: 10px 5px;
            text-align: center;
            padding: 2px;
        }

        > .actions
        {
            justify-content: flex-end;
        }
    }
}

Extras

Se puede manejar multiples mensajes a la vez, manejando la profundidad con sendFront();

Se puede cerrar un mensaje desde una referencia con la funcion close();

Se puede obtener el componente de un dialogo mediante getComponent();

Datatable

Para utilizar la tabla se debe usar la etiqueta datatable. Para hacer referencia a la tabla utilizar el atributo ref de vue.js.

Archivo de configuración.

export default {
    config: {
        path: "product_color",
        path_update: "product_color_select" // si no se especifica, la funcion actualizar toma como URL la variable PATH.
    },
    header: [
        {
            text: "Id",
            key: "id",
            useFilter: true,
            style: {
                width: "50px",
                "justify-content": "center"
            }
        },

        {
            text: "Name",
            key: "name",
            useFilter: true,
            style: {
                width: "100%",
            }
        }
    ]
}

Eventos.

//Se llama cuando se carga información.
dataloaded (lista de elementos)

//Se llama cuando se presiona boton derecho sobre una fila.
contextmenu (row_data, header_cell)

//Se llama cuando se hace click sobre una celda de la fila.
cellclick (row_data, header_cell, row_index, cell_index)

//Se llama cuando se hace doble click sobre una celda de la fila.
celldblclick (row_data, header_cell)

//Se llama cuando se selecciona una nueva fila.
select (row_data, row_index)

//Se llama cuando se hace doble click sobre una fila.
rowdblclick (row_data, row_index)

// Se utiliza para actualizar una fila desde la base de datos.
async updateRow(index)

ContextMenu

Para utilizar context menu se debe llamar ContextMenu.show(optiones) y retornara una promesa, si se cumple recibe el indice de la opción seleccionada.

ContextMenu.show(["Ver", "Editar", "Eliminar"]).then(option => {
    console.log(option);
})

Paginator

Para utilizar paginator se debe crear una instancia utilzar __class

let paginator = new __class.Paginator("http://miweb.com/api");
paginator.confi.perPage = 10; //Resultados por pág.
console.log(paginator.info); //Información del paginado de Fraravel.
console.log(paginator.getCurrentPage()) //Obtener pagina actual.
paginator.request(); //Obtener datos.
paginator.requestNext(); //Obtener datos de la siguiente pag.
paginator.requestBack(); //Obtener datos de la anterior pag.
paginator.requestMore(); //Obtener datos de la siguiente pag. y agregarlo a los datos actuales.
paginator.requestPage(); //Obtener datos de la pag. indicada.
paginator.availableData(); //Comprobar que existen datos.
paginator.isLoading(); //Comprobar si esta trabajando.
paginator.onReceiverData(r => console.log(r)); //Callback al recibir información.
console.log(paginator.data); //Obtener todos los datos del paginador.

readParametersOfUrl(id) // Leer la url.
moveParametersToUrl(id) // Escribir la url.

:triangular_flag_on_post: ¡Desde la versión 1.0.24^ ya no esta disponible paginator.query!

Parameters es el nuevo sistema de Querys para el Paginador.
paginator.getParameter(key); //Obtener objecto parametro.
paginator.setParameter(key, val); //crear o actualizar parametro.
paginator.setParameterRange(array); //crear o actualizar multiples parametros.
paginator.removeParameter(key); // eliminar parametro
paginator.clearParameter(); // eliminar todos los parametros
paginator.getParameterQuery(); // obtener query de los parametros.

Request

Require AXIOS

Request.setUrl("productionUrl", "debUrl");

Request.getMetric() //Retorna el estado de consultas.

Request.onStart(callback); //Se llama cuando se inicia un conjunto de consultas.

Request.onEnd(callback); //Se llama cuando se finaliza un conjunto de consultas.

Request.isWorking(); //Retorna estado.

Request.appendHeader(key, value); //Añadir header para las consultas.

Request.send(query, method, data); //Envia la consulta mediante XHR usando AXIOS y retorna una promesa.
Data puede ser FormData o un objeto comun, que sera convertido automaticamente a FormData. Solo se admiten metodos GET y POST para Fraravel.

Request.toFormData(obj); // Convertir objeto a FormData.

Request.getBaseUrl(optionalAppend); //Obtiene la ruta según el contexto.

Request.isLocal(); //Verificar si se esta trabajando en ambito de desarrollo.

Request.currentHost(); //Retorna el host actual.

Router (Opcional)

Router sirve para VUE router. para utilizar se debe agregar lo siguiente en el inicio de la aplicación. main.js.

Router.init(router);

Configuración de handlers para la validación y seguridad de las rutas.

Router.handlerAvailablePath((to) => {
    return new Promise(r => {
        setTimeout(() => r(false), 4500);
    });
});

Router.handlerAvailablePath((to) => { return false; });
//Se puede retornar un valor booleano o una promesa con  resultado booleano.

Si se necesita cargar información antes de que se haga la validación de la ruta utilizar

Router.handlerBeforeEnterPath(callback)

Router.handlerBeforeEnterPath(() => {
    return new Promise(r => {
        setTimeout(() => {
        r(true);
        }, 1000);
    });
});
Utilizar validaciones en las rutas con redirección.
 path: '/control',
meta: {
    validate: new Promise(r => setTimeout(() => r(false), 5000)),
    redirect: "login"
},
component: () => import('@/views/control')



path: '/control',
meta: {
    validate: () => DataStore.get("api_token") != undefined,
    redirect: "login"
},
component: () => import('@/views/control')

Bloquear una ruta por permisos.

Si el usuarios no contiene los permisos la navegación no continua.

path: '/control',
meta: { permissions: [100, 105, 700]  },
component: () => import('@/views/control')

Extras

Automaticamente se agregaran todas las rutas que esten especificadas en archivos .js dentro de src/rutes.


Las rutas tienen una barra de carga en la parte superior de la pagina.

Utilizar Querys

Las querys sirven para mantener estados de la aplicación en la URL.

Router.getQuery() //Obtiene objeto de la query
Router.setGroupQuery(name, querys) //Setear un grupo de querys
Router.getGroupQuery(querys) //Obtiene el grupo completo de querys.
Router.deleteGroupQuery(name, ?query_key) // Eliminar grupo de querys, si no se especifica el query_key se elimina el grupo completo, de lo contrario solo la llave indicada.
Router.setQuery(querys); // Setear objeto de query.
Router.deleteQuery(name); // Elimina Query

DataStore (VUEX)

Para utilizar DataStore se require instalar VUEX, se cargaran todos los modulos que se encuentren dentro de @/datastore/modules. El nombre de los modulos se define con el nombre del archivos .js Para configurar en el inicio de Vue utilizar DataStore.store.

new Vue({
    router,
    store: DataStore.store,
    render: function (h) { return h(App); },
}).$mount('#app')
DataStore tambien sirve para manejar los localStorage.

Soporta todo tipo de formato que pueda ser serializado a JSON.stringfy -

 DataStore.delete(key)
 DataStore.save(key, data)
 DataStore.get(key)
 DataStore.clearAll()

Task y TaskController

Task es una promesa, cuenta con un controlador para manejar multiples tareas a la vez.

var pc = new TaskController();
for (var i = 0; i < files.length; i++) pc.add(this.addFile(files[i]));
pc.then(() => this.eventAdd(files));
La tarea no inicia si no se utiliza then()
var t = new Task((success) => {success("resultado")});
//La tarea esta creada pero no inicia.
t.then() // INICIA la tarea.

Tambien se puede forzar un inicio mediante.
new Task((success) => {success("resultado")}).start();

Inputs

Aqui se var a ir agregando todos los componentes de tipo entrada.

Input-File

Input file sirve para trabajar con la carga de archivos, tiene vista preview en imagenes y otros archivos.

<input-file></input-file>
Configuraciónes
config: {
    max_files: 3,
    accept: ['.jpg', '.png', '.docx'],
}
Eventos
onadd(files[]) // Se llama cuando se agregan archivos.

ondelete(files[]); // Se llama cuando se eliminan archvios

input-textarea

Crear un componente de edición de texto (richt)

usar <input-textarea>

El v-model funciona solo en una dirección, para modificar el contenido del textarea utilizar .setContent("TEXT")

1.1.8

5 years ago

1.1.7

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.38

5 years ago

1.0.3-7.2

5 years ago

1.0.3-7.1

5 years ago

1.0.37

5 years ago

1.0.36

5 years ago

1.0.35

5 years ago

1.0.34

5 years ago

1.0.32

5 years ago

1.0.31

5 years ago

1.0.30

5 years ago

1.0.29

5 years ago

1.0.28

5 years ago

1.0.27

5 years ago

1.0.26

5 years ago

1.0.25

5 years ago

1.0.24

5 years ago

1.0.23

5 years ago

1.0.22

5 years ago

1.0.21

5 years ago

1.0.20

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago