useMultipleTabs.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import useTabsStore from '@/stores/modules/multipleTabs'
  2. import useSettingStore from '@/stores/modules/setting'
  3. export default function useMultipleTabs() {
  4. const router = useRouter()
  5. const route = useRoute()
  6. const tabsStore = useTabsStore()
  7. const settingStore = useSettingStore()
  8. const tabsLists = computed(() => {
  9. return tabsStore.getTabList
  10. })
  11. const currentTab = computed(() => {
  12. return route.fullPath
  13. })
  14. const addTab = () => {
  15. if (!settingStore.openMultipleTabs) return
  16. tabsStore.addTab(router)
  17. }
  18. const removeTab = (fullPath?: any) => {
  19. if (!settingStore.openMultipleTabs) return
  20. fullPath = fullPath ?? route.fullPath
  21. tabsStore.removeTab(fullPath, router)
  22. }
  23. const removeOtherTab = () => {
  24. if (!settingStore.openMultipleTabs) return
  25. tabsStore.removeOtherTab(route)
  26. }
  27. const removeAllTab = () => {
  28. if (!settingStore.openMultipleTabs) return
  29. tabsStore.removeAllTab(router)
  30. }
  31. return {
  32. tabsLists,
  33. currentTab,
  34. addTab,
  35. removeTab,
  36. removeOtherTab,
  37. removeAllTab
  38. }
  39. }