From 98898b9bce6a6ef390c4957461dccbb5edad9533 Mon Sep 17 00:00:00 2001 From: jingna <1264204245@qq.com> Date: Tue, 17 Jun 2025 10:20:02 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=8A=A0=E8=BD=BD=E8=8F=9C?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../viewsnew/application/PreviewSystem.vue | 73 ++++++++++++------- .../SfcEditor/NavbarEditor/Navbar.vue | 12 ++- .../SfcEditor/NavbarEditor/assocPage.vue | 72 +++++++----------- 3 files changed, 83 insertions(+), 74 deletions(-) diff --git a/core/core-frontend/src/viewsnew/application/PreviewSystem.vue b/core/core-frontend/src/viewsnew/application/PreviewSystem.vue index cc772f7..9d162bc 100644 --- a/core/core-frontend/src/viewsnew/application/PreviewSystem.vue +++ b/core/core-frontend/src/viewsnew/application/PreviewSystem.vue @@ -5,48 +5,67 @@ import { useRoute, useRouter } from 'vue-router' import { getMenuTree } from '@/api/permission/menu' import { moduleList } from '@/api/application/module' const route = useRoute() -const applicationId:any = ref('') +const applicationId: any = ref('') const menuList = ref([]) const isNavbar = ref(false) -const projectName:any = ref('') -const projectList:any = ref({}) -onMounted(()=>{ +const projectName: any = ref('') +const projectList: any = ref({}) +onMounted(() => { if (route.query.id) { applicationId.value = route.query.id projectName.value = route.query.name getmenuinfo() } }) -function getmenuinfo() { - const params = { - appId: applicationId.value, - name:'', - isdisplay:'' - } - getMenuTree(params).then(res => { - menuList.value = res.data - const paramss = {appId:applicationId.value} - moduleList(paramss).then(ress => { - var arr = ress.data.data - let list:any = {} - arr.forEach((item:any) => { - if(item.type == '02' && item.node_type == '02'){ - list = item +const processMenuTree = (menuNodes: any[], moduleData: any[]) => { + const typeMap = new Map( + moduleData.map(({ id, type }) => [id, type]) + ); + + const traverseMenu = (nodes: any[]) => { + for (const node of nodes) { + if (node.module_id && typeMap.has(node.module_id)) { + node.module_type = typeMap.get(node.module_id); + } + if (node.children?.length) { + traverseMenu(node.children); + } } + }; + traverseMenu(menuNodes); + return menuNodes; +}; +function getmenuinfo() { + const params = { + appId: applicationId.value, + name: '', + isdisplay: '' + } + getMenuTree(params).then(res => { + menuList.value = res.data + const paramss = { appId: applicationId.value } + moduleList(paramss).then(ress => { + var arr = ress.data.data + let list: any = {} + menuList.value = processMenuTree(menuList.value, arr) + arr.forEach((item: any) => { + if (item.type == '02' && item.node_type == '02') { + list = item + } + }) + if (list.id) { + projectList.value = list + isNavbar.value = true + } }) - if(list.id){ - projectList.value = list - isNavbar.value = true - } }) - }) } diff --git a/core/core-frontend/src/viewsnew/application/SfcEditor/NavbarEditor/Navbar.vue b/core/core-frontend/src/viewsnew/application/SfcEditor/NavbarEditor/Navbar.vue index 3040674..1385b8c 100644 --- a/core/core-frontend/src/viewsnew/application/SfcEditor/NavbarEditor/Navbar.vue +++ b/core/core-frontend/src/viewsnew/application/SfcEditor/NavbarEditor/Navbar.vue @@ -43,7 +43,13 @@ function menuclick(index: any) { return } currentMoudleId.value = navmenulist.value[index].module_id - showmodule.value = true + if (navmenulist.value[index].module_id && navmenulist.value[index].module_id !== '') { + currentMoudleId.value = navmenulist.value[index].module_id + currentrow.value = navmenulist.value[index] + showmodule.value = true + showermission.value = false + showUserInfo.value = false + } } } function childmenuclick(item: any) { @@ -54,8 +60,8 @@ function childmenuclick(item: any) { showmodule.value = false showUserInfo.value = false if (item.module_id && item.module_id !== '') { + currentrow.value = item currentMoudleId.value = item.module_id - console.log('传递给 Assocmodule 的 props:',item) showmodule.value = true } else { showmodule.value = false @@ -179,7 +185,7 @@ function userdetails(){
+ :moduleinfo="currentrow" />
diff --git a/core/core-frontend/src/viewsnew/application/SfcEditor/NavbarEditor/assocPage.vue b/core/core-frontend/src/viewsnew/application/SfcEditor/NavbarEditor/assocPage.vue index 02cd1c2..fa33025 100644 --- a/core/core-frontend/src/viewsnew/application/SfcEditor/NavbarEditor/assocPage.vue +++ b/core/core-frontend/src/viewsnew/application/SfcEditor/NavbarEditor/assocPage.vue @@ -1,5 +1,5 @@ - \ No newline at end of file + \ No newline at end of file