80 lines
2.2 KiB
JavaScript
80 lines
2.2 KiB
JavaScript
import './css/base.css'
|
|
|
|
import axios from 'axios';
|
|
import { createPinia } from 'pinia'
|
|
import { createApp } from 'vue'
|
|
import { useRoute, ZiggyVue } from 'ziggy-js';
|
|
import { i18n, lang } from '@Lang/i18n.js';
|
|
import router from '@Router/Index'
|
|
import Notify from '@Plugins/Notify'
|
|
import { bootPermissions, bootRoles } from '@Plugins/RolePermission';
|
|
import TailwindScreen from '@Plugins/TailwindScreen'
|
|
import { pagePlugin } from '@Services/Page';
|
|
import { defineApp, reloadApp, view } from '@Services/Page';
|
|
import { apiURL } from '@Services/Api';
|
|
import VueApexCharts from "vue3-apexcharts";
|
|
import VCalendar from 'v-calendar'
|
|
import 'v-calendar/style.css';
|
|
|
|
import App from '@Components/App.vue'
|
|
import Error503 from '@Pages/Errors/503.vue'
|
|
import { hasToken } from './services/Api';
|
|
|
|
// Configurar axios
|
|
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
|
|
|
// Elementos globales
|
|
window.axios = axios;
|
|
window.Lang = lang;
|
|
window.Notify = new Notify();
|
|
window.TwScreen = new TailwindScreen();
|
|
|
|
async function boot() {
|
|
let initRoutes = false;
|
|
|
|
// Iniciar rutas
|
|
try {
|
|
const routes = await axios.get(apiURL('resources/routes'));
|
|
const appData = await axios.get(apiURL('resources/app'));
|
|
|
|
window.Ziggy = routes.data;
|
|
defineApp(appData.data);
|
|
window.route = useRoute();
|
|
window.view = view;
|
|
initRoutes = true;
|
|
} catch (error) {
|
|
window.Notify.error(window.Lang('server.api.noAvailable'));
|
|
}
|
|
|
|
if(initRoutes) {
|
|
// Iniciar permisos
|
|
if(hasToken()) {
|
|
await bootPermissions();
|
|
await bootRoles();
|
|
|
|
// Iniciar broadcast
|
|
if(import.meta.env.VITE_REVERB_ACTIVE === 'true') {
|
|
await import('@Services/Broadcast')
|
|
}
|
|
}
|
|
|
|
reloadApp();
|
|
|
|
createApp(App)
|
|
.use(createPinia())
|
|
.use(i18n)
|
|
.use(pagePlugin)
|
|
.use(router)
|
|
.use(ZiggyVue)
|
|
.use(VCalendar, {})
|
|
.use(VueApexCharts)
|
|
.mount('#app');
|
|
} else {
|
|
createApp(Error503)
|
|
.mount('#app');
|
|
}
|
|
}
|
|
|
|
// Iniciar aplicación
|
|
boot();
|