From cd8bb25c6b07c81d0740714e45c3ce77bf724054 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期三, 04 六月 2025 16:45:35 +0800 Subject: [PATCH] 公司切换功能开发 --- src/layout/components/Navbar.vue | 63 ++++++++++++++++++++++++++++++- 1 files changed, 60 insertions(+), 3 deletions(-) diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 08131c3..2574903 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -6,7 +6,24 @@ </div> <!-- <top-nav v-if="settingsStore.topNav" id="topmenu-container" class="topmenu-container" />--> <div class="center-menu"> - <span class="label">MIS绯荤粺锛堢鐞嗕俊鎭郴缁燂級</span> + <span class="label">{{userStore.currentFactoryName}}</span> + <el-dropdown @command="handleFactoryChange" class="right-menu-item hover-effect" trigger="click"> + <div class="avatar-wrapper"> + <el-icon><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,11 +64,14 @@ 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() } @@ -89,6 +109,43 @@ 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 => { + const query = route.query + const otherQueryParams = Object.keys(query).reduce((acc, cur) => { + if (cur !== "redirect") { + acc[cur] = query[cur] + } + return acc + }, {}) + router.push({ path: redirect.value || "/", query: otherQueryParams }) + }).catch(() => { + }) +} + +getUserLoginFacotryList(); </script> <style lang='scss' scoped> @@ -170,7 +227,7 @@ svg { transition: transform 0.3s; - + &:hover { transform: scale(1.15); } -- Gitblit v1.9.3