首页改版,增加全部操作页面,新增店铺装修页面
This commit is contained in:
63
store/menus.js
Normal file
63
store/menus.js
Normal file
@@ -0,0 +1,63 @@
|
||||
// stores/counter.js
|
||||
import {
|
||||
defineStore
|
||||
} from 'pinia';
|
||||
import * as menusApi from '@/http/api/menu.js'
|
||||
import pagesJSON from '@/pages.json'
|
||||
const allPages = pagesJSON.pages.concat(pagesJSON.subPackages.reduce((prve, cur) => {
|
||||
const childPages = cur.pages.map(v => {
|
||||
return {
|
||||
...v,
|
||||
allPath: cur.root + '/' + v.path
|
||||
}
|
||||
})
|
||||
prve.push(...childPages)
|
||||
return prve
|
||||
}, []))
|
||||
|
||||
function flattenNestedChildren(data) {
|
||||
const result = [];
|
||||
|
||||
function traverse(nodeArray) {
|
||||
if (!Array.isArray(nodeArray)) return;
|
||||
|
||||
for (const node of nodeArray) {
|
||||
// 复制当前节点(不含children)
|
||||
const flatNode = {
|
||||
...node
|
||||
};
|
||||
delete flatNode.children;
|
||||
result.push(flatNode);
|
||||
|
||||
// 递归处理子节点
|
||||
traverse(node.children);
|
||||
}
|
||||
}
|
||||
|
||||
traverse(data);
|
||||
return result;
|
||||
}
|
||||
|
||||
export const useMenusStore = defineStore('menus', {
|
||||
state: () => {
|
||||
return {
|
||||
originMenus: [],
|
||||
menuList: [],
|
||||
allPages: allPages
|
||||
};
|
||||
},
|
||||
actions: {
|
||||
async getMenus() {
|
||||
const data = await menusApi.getMenus()
|
||||
this.originMenus = data;
|
||||
const arr = flattenNestedChildren(data).filter(v => v.miniPath)
|
||||
this.menuList = this.allPages.filter(v => {
|
||||
const findItem = arr.find(item => item.miniPath == v.pageId || item.miniPath
|
||||
.replace(/^\/+|\/+$/g, '') == v.allPath)
|
||||
return findItem
|
||||
})
|
||||
return this.originMenus
|
||||
|
||||
}
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user