From f801f4fb11ff8ca08417a9ddf0231fb570fa26e3 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 24 七月 2023 16:47:51 +0800 Subject: [PATCH] fix 修复 固定页面header穿模问题 --- src/layout/components/Navbar.vue | 90 ++++++++++++++++++++++++++------------------ 1 files changed, 53 insertions(+), 37 deletions(-) diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 9e4f470..d001ea8 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -11,7 +11,7 @@ clearable filterable reserve-keyword - placeholder="璇烽�夋嫨绉熸埛" + :placeholder="$t('navbar.selectTenant')" v-if="userId === 1 && tenantEnabled" @change="dynamicTenantEvent" @clear="dynamicClearEvent" @@ -20,21 +20,30 @@ <template #prefix><svg-icon icon-class="company" class="el-input__icon input-icon" /></template> </el-select> - <header-search id="header-search" class="right-menu-item" /> - - <el-tooltip content="婧愮爜鍦板潃" effect="dark" placement="bottom"> + <!-- <header-search id="header-search" class="right-menu-item" /> --> + <search-menu ref="searchMenuRef" /> + <el-tooltip content="鎼滅储" effect="dark" placement="bottom"> + <div class="right-menu-item hover-effect" @click="openSearchMenu"> + <svg-icon class-name="search-icon" icon-class="search" /> + </div> + </el-tooltip> + <el-tooltip content="Github" effect="dark" placement="bottom"> <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" /> </el-tooltip> - <el-tooltip content="鏂囨。鍦板潃" effect="dark" placement="bottom"> + <el-tooltip :content="$t('navbar.document')" effect="dark" placement="bottom"> <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" /> </el-tooltip> - <el-tooltip content="鍏ㄥ睆" effect="dark" placement="bottom"> + <el-tooltip :content="$t('navbar.full')" effect="dark" placement="bottom"> <screenfull id="screenfull" class="right-menu-item hover-effect" /> </el-tooltip> - <el-tooltip content="甯冨眬澶у皬" effect="dark" placement="bottom"> + <el-tooltip :content="$t('navbar.language')" effect="dark" placement="bottom"> + <lang-select id="lang-select" class="right-menu-item hover-effect" /> + </el-tooltip> + + <el-tooltip :content="$t('navbar.layoutSize')" effect="dark" placement="bottom"> <size-select id="size-select" class="right-menu-item hover-effect" /> </el-tooltip> </template> @@ -47,13 +56,13 @@ <template #dropdown> <el-dropdown-menu> <router-link to="/user/profile" v-if="!dynamic"> - <el-dropdown-item>涓汉涓績</el-dropdown-item> + <el-dropdown-item>{{ $t('navbar.personalCenter') }}</el-dropdown-item> </router-link> <el-dropdown-item command="setLayout"> - <span>甯冨眬璁剧疆</span> + <span>{{ $t('navbar.layoutSetting') }}</span> </el-dropdown-item> <el-dropdown-item divided command="logout"> - <span>閫�鍑虹櫥褰�</span> + <span>{{ $t('navbar.logout') }}</span> </el-dropdown-item> </el-dropdown-menu> </template> @@ -64,17 +73,18 @@ </template> <script setup lang="ts"> -import useAppStore from '@/store/modules/app' -import useUserStore from '@/store/modules/user' -import useSettingsStore from '@/store/modules/settings' +import SearchMenu from './topBar/search.vue'; +import useAppStore from '@/store/modules/app'; +import useUserStore from '@/store/modules/user'; +import useSettingsStore from '@/store/modules/settings'; import { getTenantList } from "@/api/login"; import { dynamicClear, dynamicTenant } from "@/api/system/tenant"; import { ComponentInternalInstance } from "vue"; import { TenantVO } from "@/api/types"; -const appStore = useAppStore() -const userStore = useUserStore() -const settingsStore = useSettingsStore() +const appStore = useAppStore(); +const userStore = useUserStore(); +const settingsStore = useSettingsStore(); const { proxy } = getCurrentInstance() as ComponentInternalInstance; @@ -85,46 +95,52 @@ const dynamic = ref(false); // 绉熸埛寮�鍏� const tenantEnabled = ref(true); +// 鎼滅储鑿滃崟 +const searchMenuRef = ref<InstanceType<typeof SearchMenu>>(); + +const openSearchMenu = () => { + searchMenuRef.value?.openSearch(); +} // 鍔ㄦ�佸垏鎹� const dynamicTenantEvent = async (tenantId: string) => { - if (companyName.value != null && companyName.value !== '') { - await dynamicTenant(tenantId); - dynamic.value = true; - proxy?.$tab.closeAllPage(); - proxy?.$router.push('/'); - } + if (companyName.value != null && companyName.value !== '') { + await dynamicTenant(tenantId); + dynamic.value = true; + proxy?.$tab.closeAllPage(); + proxy?.$router.push('/'); + } } const dynamicClearEvent = async () => { - await dynamicClear(); - dynamic.value = false; - proxy?.$tab.closeAllPage(); - proxy?.$router.push('/') + await dynamicClear(); + dynamic.value = false; + proxy?.$tab.closeAllPage(); + proxy?.$router.push('/'); } /** 绉熸埛鍒楄〃 */ const initTenantList = async () => { - const { data } = await getTenantList(); - tenantEnabled.value = data.tenantEnabled === undefined ? true : data.tenantEnabled; - if (tenantEnabled.value) { - tenantList.value = data.voList; - } + const { data } = await getTenantList(); + tenantEnabled.value = data.tenantEnabled === undefined ? true : data.tenantEnabled; + if (tenantEnabled.value) { + tenantList.value = data.voList; + } } defineExpose({ - initTenantList, + initTenantList, }) const toggleSideBar = () => { - appStore.toggleSideBar() + appStore.toggleSideBar(false); } const logout = async () => { await ElMessageBox.confirm('纭畾娉ㄩ攢骞堕��鍑虹郴缁熷悧锛�', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' }) await userStore.logout() location.href = import.meta.env.VITE_APP_CONTEXT_PATH + 'index'; @@ -165,7 +181,7 @@ height: 50px; overflow: hidden; position: relative; - background: #fff; + //background: #fff; box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); .hamburger-container { -- Gitblit v1.9.3