Buscar en la wiki...
/ 🚁 Framework / 🔧 Configuración /

🔧 Configuración

Todos los archivos de configuración estan alojados en la carpeta ./src/config/

Desde estos podremos configurar todo lo relacionado con el proyecto. Rutas, menu, opciones funcionales...etc

🎫 Menú de navegación

📁 Ruta del archivo: ./src/config/menu.js

Este fichero nos permite definir el menu de navegación del panel de administración:

export default [
    // Category
    {
        category: true, // Required for category mode
        title: 'General' // Category title
    },
    // Menu Item
    {
        title: 'Example', // Menu title
        key: 'example', // Primary key for active menu detection
        icon: ['fal', 'file'], // Font Awesome Icon
        url: {
            name: 'example' // Url Slug
        },
        auth: {
            strict: false, // Require all roles or not
            roles: ['view.example', 'view.mine.example'] // Required Roles
        },
        children: [ // Children items
            {
                title: 'Example SubMenu',
                key: 'example_submenu',
                icon: ['far', 'list'],
                url: {
                    name: 'example'
                },
                auth: {
                    strict: false,
                    roles: ['add.example', 'add.mod.example']
                }
            }
        ]
    }
];

A continuación pasamos a relatar los parametros:

PropiedadDescripcionTipo
categoryDefine si el item es una categoria o un menúBoolean
titleNombre del itemString
keyClave unica del menúString
iconIcono de FontAwesomeArray
urlParámetros de router-linkObject
authParámetros de autenticaciónObject
childrenArray con menús descendentes de esteArray

Propiedad auth

Desde aquí podemos definir si un usuario tiene acceso visual a dicho elemento, en base a una lista de roles definidos. Es posible precisar si el usuario necesita disponer de todos los permisos necesarios o por el contrario solo de uno.

🚨 Ten cuidado

Recuerda que la reestricción de permisos que se aplica solo afecta a la visualización del menú. Para impedir que un usuario acceda a una ruta en concreta es necesario definirlo también en la configuración de las rutas

PropiedadDescripcionTipo
strictFuerza la posesión de todos los roles especificadosBoolean
rolesListado de roles necesarios para que el menú sea accesibleArray

🚏 Rutas de navegación

📁 Ruta del archivo: ./src/config/router.js

Desde aquí podremos definir todas las rutas del aplicativo.

function loadView(path) { // Async component
    return () => import(`../views/${path}`);
}

export default [
    {
        name: '_home',
        path: '/',
        redirect: '/example',                           // Redirect to another url
        meta: {
            auth: true
        }
    },
    {
        name: 'example',                                // Primary route key
        path: '/example',                               // Slug
        component: loadView('example/index.vue'),       // Route's component
        meta: {
            title: 'Example',                           // Bread's title
            icon: ['fal', 'file'],                      // Bread's icon (FontAwesome)
            auth: true,                                 // Only auth users or not
            topbar: {
                buttons: [                              // Topbar Buttons
                    {
                        text: 'New Button',             // Button text
                        icon: ['far', 'plus-square'],   // Button icon
                        variant: 'primary',             // Button Variant (https://www.antdv.com/components/button/)
                        class: '',                      // Button classes
                        event: 'eventButton'            // $hub.$emit('XXXXX') Event called
                    }
                ]
            }
        }
    },
    {
        name: '_config',
        path: '/config',
        component: loadView('_config.vue'),
        meta: {
            title: 'Configuración',
            icon: ['far', 'wrench'],
            auth: {
                strict: false,
                roles: ['_BOSS']
            }
        }
    }
];

La configuración de estas se define en la documentación de Vue Router aunque pasaremos a explicar algunos parametros añadidos que son necesarios

PropiedadDescripcionTipoNecesario
nameNombre único de la páginaStringNecesario
pathRuta de la páginaStringNecesario
redirectRuta de la página a redirigir (Si se precisa)String
componentComponente que cargará la páginaComponenteNecesario
childrenArray con páginas descendentes de estaArray
metaInformación adicional de cada páginaComponenteNecesario

Propiedad meta

En esta propiedad definimos muchos aspectos de la página en concreto que vitaminan cada vista que definimos:

PropiedadDescripcionTipo
titleTítulo de la página para los breadcrumbsString
iconIcono FontAwesome para los breadcrumbsArray
authAutenticación necesaria para la vista. true/false o AuthBoolean Auth
topbar.buttonsArray de botones para los breadcrumbsObjecto

🔧 Configuraciones adicionales

📁 Ruta del archivo: ./src/config/settings.js

Cada proyecto tiene la posibilidad de definir una serie de funcionalidades tanto visuales como funcionales en este apartado:

PropiedadDescripcionTipo
slugPermalink del proyectoString
nameNombre visual del ProyectoString
versionVersion del aplicativoNumber String
globalSearchActiva en el topbar la búsqueda globalBoolean
configActiva el menú de configuracion personalizadaBoolean
iconIcono FontAwesome para el proyectoArray
keepaliveComponentes que van a ser cacheadosArray
👓 Recuerda

Todos los parámetros son obligatorios