UNPKG

@opentiny/tiny-toolkit-pro

Version:

TinyPro Vue:开箱即用、前后端分离的 Vue 后台管理模板

37 lines (35 loc) 925 B
import { defineStore } from 'pinia'; import { getRoleMenu } from '@/api/menu'; import useUserStore from './user'; export const useMenuStore = defineStore('menu', { state() { return { menuList: [] as any[], flatMenuList: [] as any[], }; }, actions: { async getMenuList() { const userStore = useUserStore(); if (!userStore.email) { return []; } const { data } = await getRoleMenu(userStore.email); this.menuList = data; this.menuListFlat(); return data; }, menuListFlat() { this.flatMenuList = []; const dfs = (item: any) => { this.flatMenuList.push(item); for (let i = 0; i < item.children.length; i += 1) { dfs(item.children[i]); } }; for (let i = 0; i < this.menuList.length; i += 1) { dfs(this.menuList[i]); } }, }, });