From 3c52f39678034ce21c1158a01b4885e3afde4443 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 04 一月 2025 17:08:00 +0800 Subject: [PATCH] #平库入库功能 --- zy-asrs-admin/src/views/IndexView.vue | 43 +++++++++++++++++++++++++++++++++++++------ 1 files changed, 37 insertions(+), 6 deletions(-) diff --git a/zy-asrs-admin/src/views/IndexView.vue b/zy-asrs-admin/src/views/IndexView.vue index e9b44a0..10cdd64 100644 --- a/zy-asrs-admin/src/views/IndexView.vue +++ b/zy-asrs-admin/src/views/IndexView.vue @@ -1,10 +1,13 @@ <script setup> -import { nextTick, ref, inject, onMounted } from 'vue'; +import { nextTick, ref, inject, onMounted, h, reactive } from 'vue'; import { useRouter } from "vue-router"; import { get, post, postForm } from '@/utils/request.js' import { logout } from '@/config.js'; import * as Icons from "@ant-design/icons-vue"; import { message } from 'ant-design-vue'; +// import type { MenuMode, MenuTheme } from 'ant-design-vue'; +// import { ItemType } from 'ant-design-vue'; + import { MenuUnfoldOutlined, MenuFoldOutlined, @@ -37,6 +40,8 @@ ...Icons, }; + + onMounted(() => { let name = router.currentRoute.value.name; let path = router.currentRoute.value.path; @@ -59,10 +64,23 @@ } }) + +const state = reactive({ + rootSubmenuKeys: [], + openKeys: ["/"], + selectedKeys: [], +}); + getMenu() function getMenu() { get('/api/auth/menu', {}).then((result) => { menuCache.value = result.data.data; + let routes = menuCache.value.map(item =>{ + return item.route + }) + routes.unshift('/') + state.rootSubmenuKeys = routes + console.log(state.rootSubmenuKeys) }) } @@ -150,9 +168,9 @@ selectedKeys.value = [item.key] // open menu - let arr = item.key.split("/"); - let key = '/' + arr[1]; - openKeys.value = [key] + // let arr = item.key.split("/"); + // let key = '/' + arr[1]; + // openKeys.value = [key] } const switchLocale = async (locale) => { @@ -223,6 +241,19 @@ } } +const onOpenChange = (openKeys) => { + const latestOpenKey = openKeys.find( + (key) => state.openKeys.indexOf(key) === -1 + ); + if (state.rootSubmenuKeys.indexOf(latestOpenKey) === -1) { + state.openKeys = openKeys + } else { + state.openKeys = latestOpenKey ? [latestOpenKey] : []; + } + console.log(state.openKeys) +} + + </script> <template> @@ -230,8 +261,8 @@ <div class="sider-style"> <a-layout-sider class="main-sider" v-model:collapsed="collapsed" :trigger="null" theme="dark"> <div class="logo" /> - <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" @select="menuSelect" theme="dark" - mode="inline" > + <a-menu v-model:openKeys="state.openKeys" v-model:selectedKeys="state.selectedKeys" @select="menuSelect" theme="dark" + mode="inline" @openChange="onOpenChange"> <div> <a-menu-item key="/" name="涓婚〉"> <HomeOutlined /> {{ formatMessage('common.home', '涓婚〉') }} -- Gitblit v1.9.1