import { defineStore } from 'pinia'
|
import { ref } from 'vue'
|
import { getFirstMenuPath } from '@/utils'
|
import { HOME_PAGE_PATH } from '@/router'
|
const useMenuStore = defineStore('menuStore', () => {
|
const homePath = ref(HOME_PAGE_PATH)
|
const menuList = ref([])
|
const menuWidth = ref('')
|
const removeRouteFns = ref([])
|
const setMenuList = (list) => {
|
menuList.value = list
|
setHomePath(HOME_PAGE_PATH || getFirstMenuPath(list))
|
}
|
const getHomePath = () => homePath.value
|
const setHomePath = (path) => {
|
homePath.value = path
|
}
|
const addRemoveRouteFns = (fns) => {
|
removeRouteFns.value.push(...fns)
|
}
|
const removeAllDynamicRoutes = () => {
|
removeRouteFns.value.forEach((fn) => fn())
|
removeRouteFns.value = []
|
}
|
const clearRemoveRouteFns = () => {
|
removeRouteFns.value = []
|
}
|
return {
|
menuList,
|
menuWidth,
|
removeRouteFns,
|
setMenuList,
|
getHomePath,
|
setHomePath,
|
addRemoveRouteFns,
|
removeAllDynamicRoutes,
|
clearRemoveRouteFns
|
}
|
})
|
export { useMenuStore }
|