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