首页改版,增加全部操作页面,新增店铺装修页面

This commit is contained in:
2025-05-28 17:00:29 +08:00
parent 6cc53db443
commit bb84b49ddc
23 changed files with 1817 additions and 558 deletions

63
store/menus.js Normal file
View 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
}
},
});