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 { 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)
}
}

View File

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