From e03b2546f020327bf9fd414d8869a9ccd2270c2d Mon Sep 17 00:00:00 2001 From: 曹睿 <360930172@qq.com> Date: 星期二, 17 六月 2025 17:31:14 +0800 Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/product-inventory-management into dev --- src/layout/components/Navbar.vue | 73 ++++++++++++++++++++++++++++++++++-- 1 files changed, 68 insertions(+), 5 deletions(-) diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 41bc17c..1f0d385 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -1,12 +1,27 @@ <template> <div class="navbar"> <div> - <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" /> + <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" + @toggleClick="toggleSideBar" /> <breadcrumb v-if="!settingsStore.topNav" id="breadcrumb-container" class="breadcrumb-container" /> </div> -<!-- <top-nav v-if="settingsStore.topNav" id="topmenu-container" class="topmenu-container" />--> + <!-- <top-nav v-if="settingsStore.topNav" id="topmenu-container" class="topmenu-container" />--> <div class="center-menu"> - <span class="label">绯荤粺鍚嶇О绯荤粺鍚嶇О</span> + <span class="label">{{ userStore.currentFactoryName }}</span> + <el-dropdown @command="handleFactoryChange" class="right-menu-item hover-effect" trigger="click"> + <div> + <el-icon size="20"> + <Switch /> + </el-icon> + </div> + <template #dropdown> + <el-dropdown-menu> + <el-dropdown-item v-for="item in factoryList" :key="item.deptId" :command="item"> + {{ item.deptName }} + </el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> </div> <div class="right-menu"> <div class="avatar-container"> @@ -47,14 +62,21 @@ import useAppStore from '@/store/modules/app' import useUserStore from '@/store/modules/user' import useSettingsStore from '@/store/modules/settings' +import { userLoginFacotryList } from "@/api/system/user.js" +import Cookies from "js-cookie"; +import { decrypt } from "@/utils/jsencrypt" const appStore = useAppStore() const userStore = useUserStore() const settingsStore = useSettingsStore() - +const factoryList = ref([]) function toggleSideBar() { appStore.toggleSideBar() } +// const redirect = ref(undefined) +// watch(route, (newRoute) => { +// redirect.value = newRoute.query && newRoute.query.redirect +// }, { immediate: true }) function handleCommand(command) { switch (command) { @@ -89,6 +111,42 @@ function toggleTheme() { settingsStore.toggleTheme() } + +function getUserLoginFacotryList() { + if (userStore.id) { + userLoginFacotryList({ userId: userStore.id }).then(res => { + console.log('res', res) + factoryList.value = res.data + }) + } else { + factoryList.value = [] + } +} + +function handleFactoryChange(command) { + console.log('command', command) + handleLogin(command.deptId); +} + +function handleLogin(currentFatoryId) { + const loginForm = { + username: Cookies.get("username"), + password: Cookies.get("password") === undefined ? null : decrypt(Cookies.get("password")), + currentFatoryId: currentFatoryId + } + userStore.loginCheckFactory(loginForm).then(res => { + forceReload(); + }).catch((err) => { + console.log(err) + }) +} +function forceReload() { + const currentUrl = window.location.origin + window.location.pathname; + const timestamp = new Date().getTime(); + window.location.href = `${currentUrl}?reload=${timestamp}`; +} + +getUserLoginFacotryList(); </script> <style lang='scss' scoped> @@ -98,15 +156,20 @@ position: relative; background: var(--navbar-bg); box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + .center-menu { line-height: 50px; position: absolute; left: 50%; transform: translateX(-50%); + display: flex; + align-items: center; + .label { font-weight: bold; font-size: 18px; color: #333333; + margin-right: 10px; } } @@ -170,7 +233,7 @@ svg { transition: transform 0.3s; - + &:hover { transform: scale(1.15); } -- Gitblit v1.9.3