Commit 072a1325 by ningjihai

路由切换

parent 84203e28
......@@ -334,7 +334,7 @@ const router = useRouter()
sessionStorage.setItem('navList', JSON.stringify(data))
},
setallNav(data) {
this.allnavList = data
this.allnavList = deepCloneRoutes(data)
sessionStorage.setItem('allnavList', JSON.stringify(data))
},
......@@ -376,7 +376,15 @@ const router = useRouter()
})
}
}
}
})
},
// 安全的深拷贝方法(保留组件引用)
})
function deepCloneRoutes(routes) {
return routes.map(route => ({
...route,
component: route.component, // 直接保留引用
children: route.children ? deepCloneRoutes(route.children) : []
}))
}
export default useAppStore
\ No newline at end of file
import useAppStore from '@/store/modules/app'
import usePermissionStore from '@/store/modules/permission'
const appStore = useAppStore()
const permissionStore = usePermissionStore()
export function changeRoute() {
let menus = appStore.allnavList
console.log('allnavList',menus)
let type = appStore.navStatus.type === 'manage' ? 'project' : 'manage'
let filterMenus = type === 'manage' ? menus.filter(item => item.type === '1') : menus.filter(item => item.type === '2')
console.log('filterMenus',filterMenus)
appStore.setallNav(menus)
appStore.setNavStatus({type: type})
permissionStore.setSidebarRouters(filterMenus)
}
\ No newline at end of file
......@@ -8,6 +8,7 @@ import TableInfoTab from './modules/TableInfoTab.vue'
import StructureTab from './modules/StructureTab.vue'
import EncryptionTab from './modules/EncryptionTab.vue'
import { changeRoute } from '@/utils/switchRoute'
import { useDict } from '@/utils/dict'
......@@ -138,18 +139,10 @@ const openDecrypt = ref(false)
function pageProjectManage() {
let filterMenus = appStore.navStatus.type === 'manage' ? appStore.allnavList.filter(item => item.type === '1') : appStore.allnavList.filter(item => item.type === '2')
// 设置导航菜单
appStore.setNav(filterMenus)
permissionStore.setSidebarRouters(filterMenus)
let type = appStore.navStatus.type === 'manage' ? 'project' : 'manage'
appStore.setNavStatus({type: type})
changeRoute()
router.push({
path: '/projectManage'
path: '/project/Project'
})
}
defineExpose({
......
......@@ -2,9 +2,7 @@
import { getCurrentInstance, reactive, ref, toRefs } from 'vue'
import { ElMessage } from 'element-plus'
import QueryForm from './QueryForm.vue'
// import ProjectEditDialog from './ProjectEditDialog.vue'
// import DownloadPluginDialog from './DownloadPluginDialog.vue'
// import ExportDialog from './ExportDialog.vue'
import { changeRoute } from '@/utils/switchRoute'
import { useRouter } from 'vue-router'
import useAppStore from '@/store/modules/app'
......@@ -83,18 +81,10 @@ const tableData = ref([
]);
function pageProjectManage() {
let filterMenus = appStore.navStatus.type === 'manage' ? appStore.allnavList.filter(item => item.type === '1') : appStore.allnavList.filter(item => item.type === '2')
// 设置导航菜单
appStore.setNav(filterMenus)
permissionStore.setSidebarRouters(filterMenus)
let type = appStore.navStatus.type === 'manage' ? 'project' : 'manage'
appStore.setNavStatus({type: type})
changeRoute()
router.push({
path: '/projectManage'
path: '/project/Project'
})
}
/**
......
......@@ -6,7 +6,7 @@ import AddStrategyDialog from './modules/AddStrategyDialog.vue'
import { useRouter } from 'vue-router'
import useAppStore from '@/store/modules/app'
import usePermissionStore from '@/store/modules/permission'
import { changeRoute } from '@/utils/switchRoute'
const appStore = useAppStore()
const permissionStore = usePermissionStore()
const router = useRouter()
......@@ -54,19 +54,10 @@ function getList() {
}
function pageProjectManage() {
let filterMenus = appStore.navStatus.type === 'manage' ?
appStore.allnavList.filter(item => item.type === '1') :
appStore.allnavList.filter(item => item.type === '2')
// 设置导航菜单
appStore.setNav(filterMenus)
permissionStore.setSidebarRouters(filterMenus)
let type = appStore.navStatus.type === 'manage' ? 'project' : 'manage'
appStore.setNavStatus({type: type})
changeRoute()
router.push({
path: '/projectManage'
path: '/project/Project'
})
}
......
<script setup name="ProjectHome">
import { ref, toRefs, reactive, getCurrentInstance, proxyRefs, onMounted } from 'vue'
import { useDict } from '@/utils/dict'
import { changeRoute } from '@/utils/switchRoute'
import biao from '@/assets/images/project/biao.png'
import jiamibiao from '@/assets/images/project/jiamibiao.png'
import jiamiziduan from '@/assets/images/project/jiamiziduan.png'
......@@ -83,18 +83,9 @@ getInfo()
function pageProjectManage() {
let filterMenus = appStore.navStatus.type === 'manage' ? appStore.allnavList.filter(item => item.type === '1') : appStore.allnavList.filter(item => item.type === '2')
// 设置导航菜单
appStore.setNav(filterMenus)
permissionStore.setSidebarRouters(filterMenus)
let type = appStore.navStatus.type === 'manage' ? 'project' : 'manage'
appStore.setNavStatus({type: type})
changeRoute()
router.push({
path: '/projectManage'
path: '/project/Project'
})
}
......
......@@ -143,7 +143,7 @@ function handleLogin() {
appStore.setNav(filterMenus)
appStore.setallNav(menus)
console.log('appStore.nav',appStore.allnavList)
// console.log('menus',filterMenus)
// permissionStore.allsidebarRouters(menus)
......
......@@ -6,6 +6,7 @@ import ProjectEditDialog from './ProjectEditDialog.vue'
import DownloadPluginDialog from './DownloadPluginDialog.vue'
import ExportDialog from './ExportDialog.vue'
import { useRouter } from 'vue-router'
import {changeRoute} from '@/utils/switchRoute'
const router = useRouter()
const emit = defineEmits(['page'])
const { proxy } = getCurrentInstance()
......@@ -115,9 +116,8 @@ const handleCommandProject = (command, project) => {
// 具体操作方法
const handleEnterProject = (project) => {
console.log('进入项目:', project)
// // ElMessage.success(`进入项目 ${project.projectName}`)
// emit('page', 'detail', { projectId: project.id})
router.push({ path:'/projectHome',query: { projectId: project.id } })
changeRoute()
router.push({ path:'/indexManage/ItemManage',query: { projectId: project.id } })
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论