main.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import './assets/main.css'
  2. import { createApp, computed } from 'vue'
  3. import { createPinia } from 'pinia'
  4. import { useUserStore } from '@/stores/user'
  5. import PrimeVue from 'primevue/config'
  6. import ToastService from 'primevue/toastservice'
  7. import ConfirmService from 'primevue/confirmationservice'
  8. import Tooltip from 'primevue/tooltip'
  9. import Aura from '@primeuix/themes/aura'
  10. import 'primeicons/primeicons.css'
  11. import App from './App.vue'
  12. import router from './router'
  13. const app = createApp(App)
  14. app.use(createPinia())
  15. app.use(router)
  16. app.use(PrimeVue, { ripple: true, theme: { preset: Aura } })
  17. app.use(ToastService)
  18. app.use(ConfirmService)
  19. app.directive('tooltip', Tooltip)
  20. app.provide(
  21. 'isAdmin',
  22. computed(() => {
  23. if (!(useUserStore().userInfo && useUserStore().userInfo.role)) return false
  24. return useUserStore().userInfo.role === 'admin'
  25. })
  26. )
  27. app.provide(
  28. 'isManager',
  29. computed(() => {
  30. if (!(useUserStore().userInfo && useUserStore().userInfo.role)) return false
  31. return useUserStore().userInfo.role === 'manager'
  32. })
  33. )
  34. app.provide(
  35. 'isUser',
  36. computed(() => {
  37. if (!(useUserStore().userInfo && useUserStore().userInfo.role)) return false
  38. return useUserStore().userInfo.role === 'user'
  39. })
  40. )
  41. app.mount('#app')