From a8e56fe985ac9f8fae768097c09549f65a23e3c1 Mon Sep 17 00:00:00 2001 From: lilinyuan <1084668738@qq.com> Date: Fri, 24 May 2024 14:24:36 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E7=AD=89=E5=8D=95=E9=A1=B5=E9=9D=A2=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E5=B1=82=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stores/permisstion.js | 29 ++++++++++++++++--- src/views/project-demand/collection/index.vue | 2 +- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/stores/permisstion.js b/src/stores/permisstion.js index e1864fe..473b1b8 100644 --- a/src/stores/permisstion.js +++ b/src/stores/permisstion.js @@ -1,10 +1,11 @@ import { defineStore } from "pinia"; -import { defineAsyncComponent, ref } from "vue"; +import { defineAsyncComponent, ref, toRaw } from "vue"; import { getRouters } from "@/api/system/menu"; import Layout from '@/layout/index.vue' import ParentView from '@/components/ParentView.vue' import router from "../router"; const VueComUrl = import.meta.glob('../views/**/*.vue') +console.log(VueComUrl, 'VueComUrl'); export const usePermisstionStroe = defineStore('permisstion', () => { const asyncRouters = ref([]) @@ -21,6 +22,8 @@ export const usePermisstionStroe = defineStore('permisstion', () => { } } ]) + // 二级页面路由list + const slRouters = ref([]) const setIsLoadRoutes = (status) => { return isLoadRoutes.value = status @@ -30,7 +33,10 @@ export const usePermisstionStroe = defineStore('permisstion', () => { if (res.code === 1000) { const sRouter = JSON.parse(JSON.stringify(res.data)) const mData = JSON.parse(JSON.stringify(res.data)) - asyncRouters.value = formatAsyncRouters(sRouter) + console.log(JSON.parse(JSON.stringify(sRouter)), 'sRouter'); + const firstFormat = setRouterLevel(JSON.parse(JSON.stringify(sRouter))) + console.log(firstFormat, 'firstFormat'); + asyncRouters.value = formatAsyncRouters(JSON.parse(JSON.stringify(firstFormat))) menuList.value = [...menuList.value, ...generateMenu(mData)] addAsyncRouters(asyncRouters.value) isLoadRoutes.value = false @@ -41,6 +47,21 @@ export const usePermisstionStroe = defineStore('permisstion', () => { }) } + const setRouterLevel = (routers) => { + return routers.filter(item=>{ + if(item.component === 'Layout') { + item.children.forEach(v=>{ + if(v.children) { + slRouters.value = [...toRaw(slRouters.value), ...v.children] + delete v.children + } + }) + item.children = [...item.children, ...toRaw(slRouters.value)] + } + return true + }) + } + const formatAsyncRouters = (routers) => { return routers.filter(route => { if (route.component) { @@ -48,8 +69,8 @@ export const usePermisstionStroe = defineStore('permisstion', () => { route.component = Layout } else if (route.component === 'ParentView') { route.component = ParentView - } - else { + } else { + console.log(route.component, 'route.component'); route.component = loadView(route.component) } } diff --git a/src/views/project-demand/collection/index.vue b/src/views/project-demand/collection/index.vue index 4d4d90d..d462fd6 100644 --- a/src/views/project-demand/collection/index.vue +++ b/src/views/project-demand/collection/index.vue @@ -149,7 +149,7 @@ const search = (val) => { const handleAdd = () => { //新增 router.push({ - name: 'Requirement/add', + name: 'Requirement/edit', query: { isAdd: 1 }