fix: 修改新增编辑等单页面路由层级

This commit is contained in:
lilinyuan
2024-05-24 14:24:36 +08:00
parent 5b85abd219
commit a8e56fe985
2 changed files with 26 additions and 5 deletions

View File

@@ -1,10 +1,11 @@
import { defineStore } from "pinia"; import { defineStore } from "pinia";
import { defineAsyncComponent, ref } from "vue"; import { defineAsyncComponent, ref, toRaw } from "vue";
import { getRouters } from "@/api/system/menu"; import { getRouters } from "@/api/system/menu";
import Layout from '@/layout/index.vue' import Layout from '@/layout/index.vue'
import ParentView from '@/components/ParentView.vue' import ParentView from '@/components/ParentView.vue'
import router from "../router"; import router from "../router";
const VueComUrl = import.meta.glob('../views/**/*.vue') const VueComUrl = import.meta.glob('../views/**/*.vue')
console.log(VueComUrl, 'VueComUrl');
export const usePermisstionStroe = defineStore('permisstion', () => { export const usePermisstionStroe = defineStore('permisstion', () => {
const asyncRouters = ref([]) const asyncRouters = ref([])
@@ -21,6 +22,8 @@ export const usePermisstionStroe = defineStore('permisstion', () => {
} }
} }
]) ])
// 二级页面路由list
const slRouters = ref([])
const setIsLoadRoutes = (status) => { const setIsLoadRoutes = (status) => {
return isLoadRoutes.value = status return isLoadRoutes.value = status
@@ -30,7 +33,10 @@ export const usePermisstionStroe = defineStore('permisstion', () => {
if (res.code === 1000) { if (res.code === 1000) {
const sRouter = JSON.parse(JSON.stringify(res.data)) const sRouter = JSON.parse(JSON.stringify(res.data))
const mData = 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)] menuList.value = [...menuList.value, ...generateMenu(mData)]
addAsyncRouters(asyncRouters.value) addAsyncRouters(asyncRouters.value)
isLoadRoutes.value = false 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) => { const formatAsyncRouters = (routers) => {
return routers.filter(route => { return routers.filter(route => {
if (route.component) { if (route.component) {
@@ -48,8 +69,8 @@ export const usePermisstionStroe = defineStore('permisstion', () => {
route.component = Layout route.component = Layout
} else if (route.component === 'ParentView') { } else if (route.component === 'ParentView') {
route.component = ParentView route.component = ParentView
} } else {
else { console.log(route.component, 'route.component');
route.component = loadView(route.component) route.component = loadView(route.component)
} }
} }

View File

@@ -149,7 +149,7 @@ const search = (val) => {
const handleAdd = () => { const handleAdd = () => {
//新增 //新增
router.push({ router.push({
name: 'Requirement/add', name: 'Requirement/edit',
query: { query: {
isAdd: 1 isAdd: 1
} }