From 9aae2af6f3937a7d99ec619b51f457002cef969f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 03 十一月 2025 14:29:37 +0800
Subject: [PATCH] 档案管理-添加导出功能
---
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 08131c3..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">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 +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