| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { queryNewFuncmenu } from '@/services/api/common'
- import { queryAccountMenu } from '@/services/api/account'
- import { createStore } from '../base'
- import { sessionData } from '../storage'
- export const menuStore = createStore({
- state() {
- return {
- loading: false,
- userRoutes: sessionData.getRef('userRoutes'),
- }
- },
- actions: {
- /** 获取用户菜单列表 */
- getUserMenuList() {
- this.state.loading = true
- return queryAccountMenu({
- success: (res) => {
- this.state.userRoutes = res.data
- },
- complete: () => {
- this.state.loading = false
- }
- })
- return queryNewFuncmenu({
- data: {
- menutype: '5',
- },
- success: (res) => {
- // 扁平列表树形化
- const arrayToTree = (list: Ermcp.NewFuncmenuRsp[], code: null | string = null) => {
- const getChildren = (parent: null | string) => {
- const result: Ermcp.UserRoutes[] = []
- list.forEach((e) => {
- if (e.parentcode === parent) {
- const item = {
- id: 0,
- authType: e.authtype,
- title: e.resourcename,
- code: e.resourcecode,
- urlType: e.urltype,
- url: e.url || '',
- component: e.component,
- icon: e.iconame,
- buttonName: e.buttonname,
- buttonType: e.buttontype,
- className: '',
- sort: e.sort,
- hidden: Boolean(e.hidden),
- remark: e.remark,
- children: getChildren(e.resourcecode),
- }
- result.push(item)
- }
- })
- return result
- }
- return getChildren(code)
- }
- this.state.userRoutes = arrayToTree(res.data)
- },
- complete: () => {
- this.state.loading = false
- }
- })
- },
- /** 重置数据 */
- reset() {
- this.state.userRoutes = []
- }
- }
- })
|