fix: 修改新增编辑等单页面路由层级
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ const search = (val) => {
|
||||
const handleAdd = () => {
|
||||
//新增
|
||||
router.push({
|
||||
name: 'Requirement/add',
|
||||
name: 'Requirement/edit',
|
||||
query: {
|
||||
isAdd: 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user