Files
boursecu_admin/src/main.ts
T

124 lines
3.7 KiB
TypeScript

import { createApp } from 'vue'
import App from './App.vue'
import { basicMain } from '@core/basicMain'
import VueApexCharts from 'vue3-apexcharts'
//todo use custom style and use core style added
import '@/assets/style.less'
//import './index.css'
import { getToken } from '@/utils'
//import { useStaticApiListsStore } from '@/store/staticApisStore'
//import { setupPinia } from '@core/plugins/pinia'
import { setupRoutes } from '@/router'
//import { useRouterStore } from '@core/stores/router'
//import { resetRouter } from '@core/router'
import { useUserStore } from '@/store/userStore'
import { setupPinia } from '@core/plugins/pinia'
import { initStoreModeFromSettings } from '@/utils/config'
import { message } from 'ant-design-vue'
import {
canOpenRoute,
firstAllowedInBranch,
firstAllowedRouteName,
notifyPageDenied
} from '@/utils/adminPageAccess'
import { setCurrentAdminRoute } from '@/utils/adminAccessState'
const init = async () => {
const app = createApp(App)
app.use(VueApexCharts)
setupPinia(app)
try {
/*if (isToken()) {
await userStore.getMe()
setupRoutes()
}*/
const userStore = useUserStore()
const token = getToken()
if (token) {
await userStore.getMyInfo()
await initStoreModeFromSettings()
setupRoutes(['*'], undefined, userStore.userInfo?.mobile)
const { refreshAppModeMenu } = await import('@/router')
refreshAppModeMenu(userStore.userInfo?.mobile)
//setupRoutes(['project'])
/*router.removeRoute('usersMain')
router.removeRoute('users')*/
//debugger
//resetRouter(app, router)
} else setupRoutes(['login'])
/* if (userStore.isAdmin) {
setupRoutes(['*'])
} else {
setupRoutes(userStore.permissions)
}*/
//setupRoutes()
const { router } = basicMain(app)
//console.log('aaaa', router)
//console.log('this is route', router.getRoutes())
//console.log('this is store', useRouterStore().routes)
//const _temp = useRouter()
//console.log('this is temp', _temp)
//resetRouter(app, router)
router.beforeEach((to, from, next) => {
const token = getToken()
if (token) {
if (to.name == 'login') {
return next({ name: firstAllowedRouteName() || 'dashboardMain' })
}
if (canOpenRoute(to.name)) {
setCurrentAdminRoute(String(to.name || ''))
return next()
}
const redirectedFrom = to.redirectedFrom?.name
if (redirectedFrom) {
const branchTarget = firstAllowedInBranch(String(redirectedFrom))
if (branchTarget && branchTarget !== String(to.name)) {
return next({ name: branchTarget })
}
}
if (from.name && String(from.name) !== 'login') {
notifyPageDenied()
return next(false)
}
const first = firstAllowedRouteName()
if (first && first !== String(to.name)) {
return next({ name: first })
}
message.warning({ content: 'شما به این صفحه دسترسی ندارید', key: 'admin-page-denied' })
return next(false)
} else {
if (['login', '404'].includes(to.name as string)) {
return next()
}
// console.log('salam')
return next({ name: 'login' })
}
})
//console.log('this is tes final', router.getRoutes())
//console.log('this is tessssssss')
} catch (e) {
console.error(e)
} finally {
//setupRoutes()
//app.use(router)
//router.hasRoute()
//app.use(router)
app.mount('#app')
}
}
init()
/*const store = useStaticApiListsStore()
const token = getToken()
if (token) store.getMyInfo()*/
/*
console.log('thisi s router', router.getRoutes())
router.removeRoute('customers')
*/
//app.mount('#app')