From 930d45addd344baf2c6706d996a50c029f0299d5 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 05 六月 2025 16:33:24 +0800
Subject: [PATCH] 刷新页面

---
 src/layout/components/Navbar.vue |   68 ++++++++++++++++++++++++++++++++-
 1 files changed, 65 insertions(+), 3 deletions(-)

diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 08131c3..a8e08a9 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -6,7 +6,23 @@
     </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>
+          <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 +63,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 +112,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>
@@ -103,10 +162,13 @@
     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 +232,7 @@
 
         svg {
           transition: transform 0.3s;
-          
+
           &:hover {
             transform: scale(1.15);
           }

--
Gitblit v1.9.3