golscontrol-frontend-v1/src/layouts/CoordinatorLayout.vue

62 lines
1.4 KiB
Vue

<script setup>
import { onMounted } from 'vue';
import { hasToken } from '@Services/Api';
import { reloadApp } from '@Services/Page';
import { useRouter } from 'vue-router';
import useLoader from '@Stores/Loader';
import Layout from '@Holos/Layout/App.vue';
import Link from '@Holos/Skeleton/Sidebar/Link.vue';
import Section from '@Holos/Skeleton/Sidebar/Section.vue';
/** Definidores */
const loader = useLoader()
const router = useRouter();
/** Propiedades */
defineProps({
title: String,
});
/** Ciclos */
onMounted(() => {
loader.boot()
if(!hasToken()) {
return router.push({ name: 'auth.index' })
} else {
reloadApp();
}
})
</script>
<template>
<Layout
:title="title"
>
<template #leftSidebar>
<Section name="Principal">
<Link
icon="monitoring"
name="Dashboard"
to="coordinator.dashboard.index"
/>
<Link
icon="calendar_month"
name="Vacaciones"
to="vacations.coordinator.index"
/>
</Section>
<Section
:name="$t('admin.title')"
>
</Section>
</template>
<!-- Contenido -->
<RouterView />
<!-- Fin contenido -->
</Layout>
</template>